linux/drivers
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
..
acorn/char
acpi ACPI: CONFIG_ACPI_SLEEP=n power off regression in 2.6.23-rc8 (NOT in rc7) 2007-09-25 17:58:52 -04:00
amba
ata sata_mv: correct S/G table limits 2007-10-09 12:38:26 -07:00
atm [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
auxdisplay
base Driver core: fix SYSF_DEPRECATED breakage for nested classdevs 2007-10-07 16:42:22 -07:00
block [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
bluetooth
cdrom cdrom_open() forgets to unlock on -EROFS failure exits 2007-09-26 08:20:44 +02:00
char Correct Makefile rule for generating custom keymap 2007-10-08 16:06:51 -07:00
clocksource
connector [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
cpufreq
crypto [CRYPTO] sha: Add header file for SHA definitions 2007-10-10 16:55:50 -07:00
dio
dma
edac
eisa
fc4
firewire firewire: point to migration document 2007-10-07 13:48:41 +02:00
firmware
hid
hwmon
i2c
ide Fix non-terminated PCI match table in PowerMac IDE 2007-10-06 09:32:56 -07:00
ieee1394 [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
infiniband [INET]: local port range robustness 2007-10-10 17:30:46 -07:00
input Input: xpad - fix dependancy on LEDS class 2007-09-28 15:38:12 -07:00
isdn [ISDN]: Change I4L to use alloc_netdev(). 2007-10-10 16:54:57 -07:00
kvm KVM: Fix virtualization menu help text 2007-09-22 12:55:18 -07:00
leds
lguest fix modules oopsing in lguest guests 2007-09-25 08:51:04 -07:00
macintosh
mca
md raid5: fix 2 bugs in ops_complete_biofill 2007-09-24 13:23:35 -07:00
media [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
message [NET]: Nuke SET_MODULE_OWNER macro. 2007-10-10 16:51:13 -07:00
mfd
misc Pull thinkpad into release branch 2007-09-17 00:58:40 -04:00
mmc
mtd pci: fix unterminated pci_device_id lists 2007-09-19 11:24:17 -07:00
net [TG3]: Update version to 3.83 2007-10-10 18:03:56 -07:00
nubus
of
oprofile
parisc [NET]: Make the device list and device lookups per namespace. 2007-10-10 16:49:10 -07:00
parport
pci Fix bogus PCI quirk for e100 2007-09-28 16:21:10 -07:00
pcmcia
pnp
power [PATCH] missing null termination in power supply uevent 2007-09-21 01:22:23 +04:00
ps3
rapidio
rtc rtc: rtc-ds1553.c should use resource_size_t for base address 2007-09-19 11:24:17 -07:00
s390 qeth: discard inbound packets with unknown header id 2007-10-10 16:54:42 -07:00
sbus
scsi [NET]: make netlink user -> kernel interface synchronious 2007-10-10 21:15:29 -07:00
serial Add manufacturer and card id of teltonica pcmcia modems 2007-10-07 16:28:43 -07:00
sh
sn
spi
ssb [SSB]: Sparse fixes. 2007-10-10 16:52:21 -07:00
tc
telephony
uio
usb [NET]: Nuke SET_MODULE_OWNER macro. 2007-10-10 16:51:13 -07:00
video intelfb: Fix bug in DPLL disable 2007-09-19 11:24:18 -07:00
w1 missing null termination in one wire uevent 2007-09-25 08:51:04 -07:00
xen
zorro
Kconfig [SSB]: add Sonics Silicon Backplane bus support 2007-10-10 16:51:36 -07:00
Makefile [SSB]: add Sonics Silicon Backplane bus support 2007-10-10 16:51:36 -07:00