1
0
Fork 0
alistair23-linux/drivers
Jason Wang addf8fc4ac tuntap: correctly wake up process during uninit
We used to check dev->reg_state against NETREG_REGISTERED after each
time we are woke up. But after commit 9e641bdcfa ("net-tun:
restructure tun_do_read for better sleep/wakeup efficiency"), it uses
skb_recv_datagram() which does not check dev->reg_state. This will
result if we delete a tun/tap device after a process is blocked in the
reading. The device will wait for the reference count which was held
by that process for ever.

Fixes this by using RCV_SHUTDOWN which will be checked during
sk_recv_datagram() before trying to wake up the process during uninit.

Fixes: 9e641bdcfa ("net-tun: restructure tun_do_read for better
sleep/wakeup efficiency")
Cc: Eric Dumazet <edumazet@google.com>
Cc: Xi Wang <xii@google.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-05-20 19:28:37 -04:00
..
accessibility
acpi Merge branches 'acpi-pci', 'acpi-misc' and 'acpi-tools' 2016-05-16 16:45:48 +02:00
amba
android
ata SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
atm
auxdisplay
base Generic device properties framework update for v4.7-rc1 2016-05-16 19:51:04 -07:00
bcma
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-05-17 16:26:30 -07:00
bluetooth Bluetooth: Add USB ID 13D3:3487 to ath3k 2016-05-13 16:54:59 +02:00
bus Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
cdrom
char Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-05-17 16:26:30 -07:00
clk Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
clocksource ARC updates for 4.7-rc1 2016-05-19 09:46:18 -07:00
connector
cpufreq Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
cpuidle Merge back new cpuidle material for v4.7. 2016-05-06 22:08:46 +02:00
crypto crypto: qat - change the adf_ctl_stop_devices to void 2016-05-13 17:30:18 +08:00
dca
devfreq PM / devfreq: style/typo fixes 2016-05-03 11:22:10 +09:00
dio
dma Merge branch 'fix/edma' into fixes 2016-04-16 22:52:03 +05:30
dma-buf
edac Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-05-17 17:05:30 -07:00
eisa
extcon
firewire treewide: replace dev->trans_start update with helper 2016-05-04 14:16:49 -04:00
firmware Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
fmc
fpga
gpio This is the bulk of GPIO changes for kernel cycle v4.7: 2016-05-17 17:39:42 -07:00
gpu ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
hid Merge branch 'for-4.7/wacom' into for-linus 2016-05-17 12:42:27 +02:00
hsi
hv Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read() 2016-04-30 14:05:44 -07:00
hwmon hwmon: (sch5636) trivial fix of spelling mistake on revision 2016-04-25 07:26:29 -07:00
hwspinlock
hwtracing
i2c i2c: exynos5: Fix possible ABBA deadlock by keeping I2C clock prepared 2016-04-22 15:31:54 +02:00
ide ide-disk: update to using blk_queue_write_cache() 2016-04-12 16:00:39 -06:00
idle intel_idle: add BXT support 2016-04-09 02:17:43 +02:00
iio iio: imu: mpu6050: Fix name/chip_id when using ACPI 2016-05-04 08:44:27 +01:00
infiniband SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2016-05-18 17:12:23 -07:00
iommu Linux 4.6-rc6 2016-05-05 08:35:00 +02:00
ipack
irqchip Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
isdn ISDN: eicon: replace custom hex_asc_lo() / hex_pack_byte() 2016-05-08 23:52:13 -04:00
leds leds: gpio: Support the "panic-indicator" firmware property 2016-05-06 10:26:07 +02:00
lguest Merge branch 'x86/urgent' into x86/asm to pick up dependent fixes 2016-04-13 11:36:44 +02:00
lightnvm lightnvm: reserved space calculation incorrect 2016-05-06 12:51:10 -06:00
macintosh
mailbox Merge branch 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration 2016-04-14 18:40:47 -07:00
mcb
md - based on Jens' 'for-4.7/core' to have DM thinp's discard support use 2016-05-17 16:13:00 -07:00
media media updates for v4.7-rc1 2016-05-18 17:03:51 -07:00
memory memory: samsung: exynos-srom: Add support for bank configuration 2016-04-18 14:25:29 +02:00
memstick memstick: trivial fix of spelling mistake on management 2016-04-28 10:58:33 +02:00
message SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
mfd This is the bulk of GPIO changes for kernel cycle v4.7: 2016-05-17 17:39:42 -07:00
misc Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 16:46:03 -07:00
mmc Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
mtd ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
net tuntap: correctly wake up process during uninit 2016-05-20 19:28:37 -04:00
nfc NFC: pn533: handle interrupted commands in pn533_recv_frame 2016-05-10 00:01:47 +02:00
ntb
nubus
nvdimm libnvdimm, pfn: fix ARCH=alpha allmodconfig build failure 2016-05-06 10:20:10 -07:00
nvme Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
nvmem nvmem: mxs-ocotp: fix buffer overflow in read 2016-05-02 08:18:01 -07:00
of ARM: SoC cleanups and fixes for v4.7 2016-05-18 12:28:29 -07:00
oprofile
parisc
parport
pci ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
pcmcia
perf perf/arm: Special-case hetereogeneous CPUs 2016-05-05 10:13:59 +02:00
phy ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
pinctrl ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
platform Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
pnp x86, drivers/pnpbios: Replace paravirt_enabled() check with legacy device check 2016-04-22 10:29:05 +02:00
power PM / AVS: rockchip-io: make io-domains a child of the GRF 2016-04-26 19:12:28 +02:00
powercap Power management material for v4.7-rc1 2016-05-16 19:17:22 -07:00
pps
ps3
ptp
pwm Merge remote-tracking branches 'regulator/topic/pwm', 'regulator/topic/qcom-spmi', 'regulator/topic/rk808' and 'regulator/topic/s2mps11' into regulator-next 2016-05-13 14:23:46 +01:00
rapidio rapidio/mport_cdev: fix uapi type definitions 2016-05-05 17:38:53 -07:00
ras
regulator Merge remote-tracking branches 'regulator/topic/tps6524x' and 'regulator/topic/twl' into regulator-next 2016-05-13 14:23:49 +01:00
remoteproc remoteproc: Add additional crash reasons 2016-05-12 15:50:19 -07:00
reset
rpmsg rpmsg: add THIS_MODULE to rpmsg_driver in rpmsg core 2016-05-06 11:08:58 -07:00
rtc rtc: ds1307: Use irq when available for wakeup-source device 2016-04-21 23:21:00 +02:00
s390 SCSI misc on 20160517 2016-05-18 16:38:59 -07:00
sbus
scsi scsi_tcp: block BH in TCP callbacks 2016-05-19 11:36:49 -07:00
sfi
sh
sn
soc ARM: SoC driver updates for v4.7 2016-05-18 13:14:02 -07:00
spi Merge remote-tracking branches 'spi/fix/fsl-dspi', 'spi/fix/omap2-mcspi', 'spi/fix/pxa2xx' and 'spi/fix/ti-qspi' into spi-linus 2016-05-06 18:20:37 +01:00
spmi
ssb ssb: gpio_driver: use gpiochip data pointer 2016-04-26 15:34:49 +02:00
staging media updates for v4.7-rc1 2016-05-18 17:03:51 -07:00
target Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-05-17 17:05:30 -07:00
tc
thermal Thermal / ACPI / video: add INT3406 thermal driver 2016-05-11 02:15:31 +02:00
thunderbolt
tty Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
uio
usb Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
uwb
vfio
vhost
video ACPI material for v4.7-rc1 2016-05-16 19:41:41 -07:00
virt
virtio virtio: Silence uninitialized variable warning 2016-05-01 15:50:08 +03:00
vlynq
vme
w1 w1: comment spelling s/minmum/minimum/ 2016-04-18 12:52:38 +02:00
watchdog Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-05-19 10:02:26 -07:00
xen Merge branch 'linus' into efi/core, to pick up fixes 2016-05-07 07:00:07 +02:00
zorro
Kconfig
Makefile