linux/drivers/scsi
Denis V. Lunev cd40b7d398 [NET]: make netlink user -> kernel interface synchronious
This patch make processing netlink user -> kernel messages synchronious.
This change was inspired by the talk with Alexey Kuznetsov about current
netlink messages processing. He says that he was badly wrong when introduced 
asynchronious user -> kernel communication.

The call netlink_unicast is the only path to send message to the kernel
netlink socket. But, unfortunately, it is also used to send data to the
user.

Before this change the user message has been attached to the socket queue
and sk->sk_data_ready was called. The process has been blocked until all
pending messages were processed. The bad thing is that this processing
may occur in the arbitrary process context.

This patch changes nlk->data_ready callback to get 1 skb and force packet
processing right in the netlink_unicast.

Kernel -> user path in netlink_unicast remains untouched.

EINTR processing for in netlink_run_queue was changed. It forces rtnl_lock
drop, but the process remains in the cycle until the message will be fully
processed. So, there is no need to use this kludges now.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-10-10 21:15:29 -07:00
..
aacraid [SCSI] aacraid: prevent panic on adapter resource failure 2007-08-04 09:46:43 -05:00
aic7xxx [SCSI] aic7xxx: cap maxsync according to correct card limits 2007-07-31 10:44:26 -05:00
aic7xxx_old
aic94xx aic94xx: fix DMA data direction for SMP requests 2007-10-02 13:16:10 -04:00
arcmsr Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
arm Remove the arm26 port 2007-07-31 15:39:39 -07:00
dpt [SCSI] dpt: whitespace cleanup 2007-04-01 10:10:04 -05:00
ibmvscsi [SCSI] ibmvscsi: use shost_priv 2007-07-31 10:34:34 -05:00
libsas [SCSI] libsas: fix build dependencies on libata 2007-07-31 10:40:48 -05:00
lpfc [SCSI] lpfc : scsi command accessor fix for 8.2.2 2007-08-03 11:30:09 -05:00
megaraid some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
pcmcia Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-22 11:36:49 -07:00
qla2xxx [SCSI] qla2xxx: Update version number to 8.02.00-k3. 2007-08-15 13:03:57 -05:00
qla4xxx mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
sym53c8xx_2 [SCSI] sym53c8xx: don't claim cpqarray device 2007-07-24 18:38:46 -04:00
.gitignore
3w-9xxx.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-22 11:36:49 -07:00
3w-9xxx.h [SCSI] 3w-9xxx: add support for 9690SA 2007-07-21 08:57:40 -05:00
3w-xxxx.c [SCSI] 3w-xxxx: convert to use the data buffer accessors 2007-05-30 23:29:32 -05:00
3w-xxxx.h [SCSI] 3ware 8000 serialize reset code 2007-01-06 09:18:00 -06:00
53c700_d.h_shipped
53c700.c [SCSI] 53c700: Remove printk, which triggers because of low scsi clock on SNI RMs 2007-07-14 19:12:43 -05:00
53c700.h [SCSI] 53c700: m68k support for the 53c700 SCSI core 2007-06-17 16:15:56 -05:00
53c700.scr
a100u2w.c [SCSI] a100u2w: Convert into Linux style 2007-06-17 16:09:29 -05:00
a100u2w.h [SCSI] a100u2w: Convert into Linux style 2007-06-17 16:09:29 -05:00
a2091.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
a2091.h [SCSI] wd33c93: Scsi_Cmnd convertion 2006-09-12 17:12:31 -05:00
a3000.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
a3000.h [SCSI] wd33c93: Scsi_Cmnd convertion 2006-09-12 17:12:31 -05:00
a4000t.c [SCSI] a4000t, zorro7xx, mvme16x, bvme6000,sim710: xxx_device_remove seems buggy 2007-07-18 11:17:57 -05:00
advansys.c [SCSI] advansys: lindent and other large, uninteresting changes 2007-07-27 11:41:40 -04:00
aha152x.c [SCSI] aha152x: use data accessors and !use_sg cleanup 2007-08-04 09:14:49 -05:00
aha152x.h [SCSI] aha152x: fix debug mode symbol conflict 2007-08-04 09:11:06 -05:00
aha1542.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
aha1542.h
aha1740.c [SCSI] aha1740: convert to use the data buffer accessors 2007-05-26 19:12:56 -05:00
aha1740.h
aic7xxx_old.c [SCSI] aic7xxx_old: remove redundant GFP_ATOMIC from kmalloc 2007-07-15 09:34:45 -05:00
atari_dma_emul.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
atari_NCR5380.c [SCSI] atari_NCR5380: update_timeout removal 2007-06-04 09:55:15 -05:00
atari_scsi.c m68k: Atari SCSI driver compile fixes 2007-05-04 17:59:05 -07:00
atari_scsi.h m68k: Atari SCSI driver compile fixes 2007-05-04 17:59:05 -07:00
atp870u.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
atp870u.h
blz1230.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
blz2060.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
BusLogic.c [SCSI] BusLogic: convert to use the data buffer accessors 2007-05-26 19:21:37 -05:00
BusLogic.h [SCSI] BusLogic: Replace 'boolean' by 'bool' 2007-02-07 18:32:29 -05:00
bvme6000_scsi.c [SCSI] a4000t, zorro7xx, mvme16x, bvme6000,sim710: xxx_device_remove seems buggy 2007-07-18 11:17:57 -05:00
ch.c [SCSI] ch: kmalloc/memset->kzalloc 2007-05-06 09:33:11 -05:00
constants.c [SCSI] constants.c: Update ASC list and make it const 2007-03-11 11:21:25 -05:00
cyberstorm.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
cyberstormII.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
dc395x.c [SCSI] dc395x: convert to use the data buffer accessors 2007-07-15 10:04:49 -05:00
dc395x.h
dec_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
dmx3191d.c [SCSI] pci_module_init conversion in scsi subsystem 2006-09-26 11:35:32 -07:00
dpt_i2o.c [SCSI] dpt_i2o: convert to SCSI hotplug model 2007-07-31 10:49:58 -05:00
dpti.h [SCSI] dpt_i2o: convert to SCSI hotplug model 2007-07-31 10:49:58 -05:00
dtc.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
dtc.h
eata_generic.h [SCSI] eata_pio: Remove FALSE/TRUE defines 2007-03-20 11:27:03 -05:00
eata_pio.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
eata_pio.h
eata.c [SCSI] eata: convert to use the data buffer accessors 2007-05-26 19:13:55 -05:00
esp_scsi.c [SCSI] esp: fix instance numbering. 2007-09-25 20:55:02 -05:00
esp_scsi.h [SCSI] ESP: Revert ESP_BUS_TIMEOUT back down to 250 2007-07-31 10:51:25 -05:00
fastlane.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
fcal.c [SCSI] Improve inquiry printing 2006-08-06 15:59:26 -05:00
fcal.h
fd_mcs.c [SCSI] minor bug fixes and cleanups 2006-11-15 16:41:27 -06:00
fdomain.c [SCSI] fdomain: fix PCMCIA-related warnings 2007-05-27 12:59:28 -05:00
fdomain.h
FlashPoint.c [SCSI] BusLogic: Replace 'boolean' by 'bool' 2007-02-07 18:32:29 -05:00
g_NCR5380_mmio.c
g_NCR5380.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
g_NCR5380.h
gdth_ioctl.h
gdth_kcompat.h
gdth_proc.c
gdth_proc.h
gdth.c [SCSI] gdth: remove redundant PCI stuff 2007-07-31 10:36:30 -05:00
gdth.h [SCSI] gdth: remove redundant PCI stuff 2007-07-31 10:36:30 -05:00
gvp11.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
gvp11.h [SCSI] wd33c93: Scsi_Cmnd convertion 2006-09-12 17:12:31 -05:00
hosts.c [SCSI] initialize shost_data to zero 2007-08-01 08:51:32 -05:00
hptiop.c [SCSI] hptiop: convert to use the data buffer accessors 2007-06-17 18:35:14 -05:00
hptiop.h
ibmmca.c [SCSI] ibmmca: convert to use the data buffer accessors 2007-05-26 16:30:17 -05:00
ide-scsi.c drivers/scsi/ide-scsi.c: kmalloc + memset conversion to kzalloc 2007-08-01 23:46:45 +02:00
imm.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
imm.h Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
in2000.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
in2000.h
initio.c [SCSI] initio: convert to use the data buffer accessors 2007-05-26 19:13:27 -05:00
initio.h [SCSI] initio: Convert into a real Linux driver and update to modern style 2007-05-22 11:08:56 -05:00
ipr.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
ipr.h [SCSI] ipr: Use PCI-E reset API for new ipr adapter 2007-05-08 11:54:40 -05:00
ips.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
ips.h [SCSI] ips: remove kernel 2.4 code 2007-05-24 09:14:41 -05:00
iscsi_tcp.c [SCSI] iscsi_tcp: Turn off bounce buffers 2007-07-27 09:12:54 -04:00
iscsi_tcp.h [SCSI] iscsi_tcp: fix handling of data buffer padding 2007-06-02 15:35:10 -04:00
jazz_esp.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
Kconfig Introduce CONFIG_CHECK_SIGNATURE 2007-08-22 19:52:45 -07:00
lasi700.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
libiscsi.c [SCSI] libiscsi: sync up iscsi and scsi eh's access to the connection 2007-08-15 13:09:21 -05:00
libsrp.c [SCSI] tgt: fix a rdma indirect transfer error bug 2007-05-16 12:45:17 -04:00
mac53c94.c [SCSI] mac53c94: convert to use the data buffer accessors 2007-05-26 19:07:50 -05:00
mac53c94.h
mac_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
mac_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mac_scsi.h
Makefile ps3: BD/DVD/CD-ROM Storage Driver 2007-07-21 17:49:16 -07:00
mca_53c9x.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
megaraid.c [SCSI] megaraid_old: fix READ_CAPACITY 2007-10-04 12:08:49 -04:00
megaraid.h [SCSI] megaraid: fix warnings when CONFIG_PROC_FS=n 2007-05-08 11:15:08 -05:00
mesh.c [SCSI] mesh: convert to use the data buffer accessors 2007-06-07 08:49:10 -05:00
mesh.h
mvme16x_scsi.c [SCSI] a4000t, zorro7xx, mvme16x, bvme6000,sim710: xxx_device_remove seems buggy 2007-07-18 11:17:57 -05:00
mvme147.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
mvme147.h [SCSI] wd33c93: Scsi_Cmnd convertion 2006-09-12 17:12:31 -05:00
ncr53c8xx.c [SCSI] ncr53c8xx: convert to use the data buffer accessors 2007-07-15 10:03:03 -05:00
ncr53c8xx.h Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
NCR53c406a.c [SCSI] NCR53c406a: convert to use the data buffer accessors 2007-05-26 19:08:20 -05:00
NCR53C9x.c m68k: missing exports 2007-07-20 08:24:49 -07:00
NCR53C9x.h [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
NCR5380.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
NCR5380.h [SCSI] ncr5380 warning fixes 2007-05-24 09:13:25 -05:00
NCR_D700.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
NCR_D700.h
NCR_Q720.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
nsp32.h [SCSI] drivers/scsi/nsp32.h: removal of old scsi code 2006-09-26 10:39:00 -07:00
oktagon_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
oktagon_io.S
osst_detect.h
osst_options.h
osst.c [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
osst.h [PATCH] osst endianness annotations 2007-02-09 09:14:07 -08:00
pas16.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
pas16.h
pluto.c [SCSI] pluto: Use wait_for_completion_timeout. 2007-05-29 02:49:05 -07:00
pluto.h
ppa.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
ppa.h Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
ps3rom.c ps3: BD/DVD/CD-ROM Storage Driver 2007-07-21 17:49:16 -07:00
psi240i.c [SCSI] psi240i.c: fix an array overrun 2006-11-10 10:01:42 +09:00
psi240i.h [SCSI] Scsi_Cmnd conversion in psi240i driver 2006-10-25 15:12:38 -07:00
psi_chip.h
ql1040_fw.h
ql1280_fw.h
ql12160_fw.h
qla1280.c [SCSI] qla1280: use DMA_64BIT_MASK instead of ~ 0ULL 2007-05-06 09:33:11 -05:00
qla1280.h
qlogicfas408.c [SCSI] qlogicfas408: convert to use the data buffer accessors 2007-05-26 19:21:09 -05:00
qlogicfas408.h [SCSI] Scsi_Cmnd conversion in qlogicfas408 driver 2006-10-25 15:11:55 -07:00
qlogicfas.c
qlogicpti_asm.c [SPARC]: Fix some section mismatch warnings in sparc drivers. 2006-10-17 19:28:51 -07:00
qlogicpti.c [SCSI] qlogicpti: Some cosmetic changes 2007-08-02 09:02:42 -05:00
qlogicpti.h
raid_class.c [SCSI] raid class: handle component-add errors 2006-10-04 13:27:26 -05:00
script_asm.pl
scsi_debug.c [SCSI] Make scsi_host_template::proc_name const char * instead of char *. 2007-07-19 12:06:26 -05:00
scsi_debug.h
scsi_devinfo.c [SCSI] add easyRAID to the no report luns blacklist 2007-07-28 10:00:28 -04:00
scsi_error.c Freezer: make kernel threads nonfreezable by default 2007-07-17 10:23:02 -07:00
scsi_ioctl.c [PATCH] scsi: kill overeager "not-ready" messages 2006-07-28 09:04:09 +02:00
scsi_lib_dma.c [SCSI] don't build scsi_dma_{map,unmap} for !HAS_DMA 2007-07-14 19:28:10 -05:00
scsi_lib.c [SCSI] sd: disentangle barriers in SCSI 2007-08-04 08:37:04 -05:00
scsi_logging.h
scsi_module.c
scsi_netlink.c [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
scsi_priv.h [SCSI] scsi_error.c: Export some scsi_eh_* functions 2007-01-27 10:06:34 -06:00
scsi_proc.c [SCSI] scsi_proc.c: display sdev->scsi_level correctly 2007-02-16 11:12:07 -06:00
scsi_sas_internal.h
scsi_scan.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
scsi_sysctl.c [SCSI] small cleanups 2007-07-18 11:16:32 -05:00
scsi_sysfs.c [SCSI] bsg: make class backlinks 2007-07-21 08:58:23 -05:00
scsi_tgt_if.c [SCSI] tgt: fix sesnse buffer problems 2007-03-11 11:39:27 -05:00
scsi_tgt_lib.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
scsi_tgt_priv.h [SCSI] tgt: fix sesnse buffer problems 2007-03-11 11:39:27 -05:00
scsi_transport_api.h
scsi_transport_fc.c [SCSI] small cleanups 2007-07-18 11:16:32 -05:00
scsi_transport_iscsi.c [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
scsi_transport_sas.c [SCSI] bsg: make class backlinks 2007-07-21 08:58:23 -05:00
scsi_transport_spi.c [SCSI] scsi_transport_spi: fix domain validation failure from incorrect width setting 2007-09-22 08:52:12 -05:00
scsi_typedefs.h
scsi_wait_scan.c [SCSI] Add ability to scan scsi busses asynchronously 2006-10-11 13:44:25 -05:00
scsi.c mm: Remove slab destructors from kmem_cache_create(). 2007-07-20 10:11:58 +09:00
scsi.h [SCSI] remove unnecessary includes of linux/config.h from drivers/scsi/ 2006-08-19 13:39:11 -07:00
scsicam.c
sd.c [SCSI] sd: disentangle barriers in SCSI 2007-08-04 08:37:04 -05:00
seagate.c [SCSI] seagate: make seagate_st0x_detect() static 2007-07-18 11:16:46 -05:00
sg.c [SCSI] sg: remove unnecessary check 2007-05-28 09:08:32 -05:00
sgiwd93.c Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sim710.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-22 11:36:49 -07:00
sni_53c710.c [SCSI] sni_53c710: Cleanup 2007-07-14 19:12:15 -05:00
sr_ioctl.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sr_vendor.c [PATCH] getting rid of all casts of k[cmz]alloc() calls 2006-12-13 09:05:58 -08:00
sr.c [BLOCK] Get rid of request_queue_t typedef 2007-07-24 09:28:11 +02:00
sr.h
st_options.h
st.c [SCSI] st: Use mutex instead of semaphore 2007-07-31 10:44:01 -05:00
st.h [SCSI] st: Use mutex instead of semaphore 2007-07-31 10:44:01 -05:00
stex.c [SCSI] stex: use resid for xfer len information 2007-07-14 18:59:10 -05:00
sun3_NCR5380.c [PATCH] m68k trivial build fixes 2006-12-17 10:21:53 -08:00
sun3_scsi_vme.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_scsi.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sun3_scsi.h [PATCH] Sun3 SCSI: Make sun3 scsi drivers compile/work again 2006-12-09 09:41:18 -08:00
sun3x_esp.c [TC] dec_esp: Driver model for the PMAZ-A 2007-02-09 16:23:17 +00:00
sun_esp.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
sym53c416.c [SCSI] sym53c416: convert to use the data buffer accessors 2007-05-26 19:08:50 -05:00
sym53c416.h
t128.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
t128.h [SCSI] scsi: t128 scsi_cmnd convertion 2006-11-15 16:43:50 -06:00
tmscsim.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
tmscsim.h [SCSI] tmscsim: Further clean-up of the driver 2007-07-14 18:56:33 -05:00
u14-34f.c [SCSI] u14-34f: convert to use the data buffer accessors 2007-05-26 19:19:04 -05:00
ultrastor.c [SCSI] ultrastor: convert to use the data buffer accessors 2007-05-26 19:18:38 -05:00
ultrastor.h [SCSI] scsi-driver ultrastore replace Scsi_Cmnd with struct scsi_cmnd 2006-09-07 12:39:34 -05:00
wd33c93.c [SCSI] wd33c93: cleanups 2007-07-18 11:16:38 -05:00
wd33c93.h [SCSI] wd33c93: Fast SCSI with WD33C93B 2007-02-16 09:22:11 -06:00
wd7000.c [SCSI] wd7000: convert to use the data buffer accessors 2007-05-26 19:18:10 -05:00
zalon.c
zorro7xx.c [SCSI] a4000t, zorro7xx, mvme16x, bvme6000,sim710: xxx_device_remove seems buggy 2007-07-18 11:17:57 -05:00