linux-stable/drivers
Fei Li 167c810e9d tun: wake up waitqueues after IFF_UP is set
[ Upstream commit 72b319dc08 ]

Currently after setting tap0 link up, the tun code wakes tx/rx waited
queues up in tun_net_open() when .ndo_open() is called, however the
IFF_UP flag has not been set yet. If there's already a wait queue, it
would fail to transmit when checking the IFF_UP flag in tun_sendmsg().
Then the saving vhost_poll_start() will add the wq into wqh until it
is waken up again. Although this works when IFF_UP flag has been set
when tun_chr_poll detects; this is not true if IFF_UP flag has not
been set at that time. Sadly the latter case is a fatal error, as
the wq will never be waken up in future unless later manually
setting link up on purpose.

Fix this by moving the wakeup process into the NETDEV_UP event
notifying process, this makes sure IFF_UP has been set before all
waited queues been waken up.

Signed-off-by: Fei Li <lifei.shirley@bytedance.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-07-10 09:55:41 +02:00
..
accessibility
acpi x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:19:34 +02:00
amba
android binder: replace "%p" with "%pK" 2019-06-11 12:22:44 +02:00
ata libata: Extend quirks for the ST1000LM024 drives with NOLPM quirk 2019-06-22 08:17:18 +02:00
atm atm: he: fix sign-extension overflow on large shift 2019-02-27 10:06:59 +01:00
auxdisplay
base PM / core: Propagate dev->power.wakeup_path when no callbacks 2019-05-31 06:48:26 -07:00
bcma
block virtio-blk: limit number of hw queues by nr_cpu_ids 2019-05-10 17:52:09 +02:00
bluetooth Revert "Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV" 2018-11-27 16:09:40 +01:00
bus bus: arm-cci: remove unnecessary unreachable() 2018-12-05 19:42:41 +01:00
cdrom cdrom: Fix race condition in cdrom_sysctl_register 2019-04-05 22:29:12 +02:00
char virtio_console: initialize vtermno value for ports 2019-05-31 06:48:29 -07:00
clk clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288 2019-06-22 08:17:15 +02:00
clocksource clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown 2019-03-23 13:19:46 +01:00
connector
cpufreq cpufreq: pmac32: fix possible object reference leak 2019-05-31 06:48:27 -07:00
cpuidle cpuidle: big.LITTLE: fix refcount leak 2019-02-12 19:44:55 +01:00
crypto crypto: vmx - ghash: do nosimd fallback manually 2019-06-11 12:22:35 +02:00
dax
dca
devfreq
dio
dma dmaengine: idma64: Use actual device for DMA transfers 2019-06-22 08:17:17 +02:00
dma-buf
edac EDAC, skx_edac: Fix logical channel intermediate decoding 2018-11-13 11:16:56 -08:00
eisa
extcon extcon: arizona: Disable mic detect if running when driver is removed 2019-05-31 06:48:26 -07:00
firewire
firmware efi/libstub: Unify command line param parsing 2019-06-11 12:22:45 +02:00
fmc
fpga
gpio gpio: fix gpio-adp5588 build errors 2019-06-22 08:17:23 +02:00
gpu drm/arm/hdlcd: Allow a bit of clock tolerance 2019-07-10 09:55:30 +02:00
hid HID: core: move Usage Page concatenation to Main item 2019-05-31 06:48:29 -07:00
hsi
hv Drivers: hv: vmbus: Return -EINVAL for the sys files for unopened channels 2018-12-29 13:40:15 +01:00
hwmon hwmon: (pmbus/core) Treat parameters as paged if on multiple pages 2019-07-10 09:55:32 +02:00
hwspinlock
hwtracing intel_th: msu: Fix single mode with IOMMU 2019-05-25 18:26:46 +02:00
i2c i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr 2019-06-22 08:17:23 +02:00
ide ide: pmac: add of_node_put() 2018-12-21 14:11:37 +01:00
idle x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:19:34 +02:00
iio iio: common: ssp_sensors: Initialize calculated_time in ssp_common_process_data 2019-05-31 06:48:27 -07:00
infiniband IB/hfi1: Avoid hardlockup with flushlist_lock 2019-07-10 09:55:36 +02:00
input Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD 2019-07-10 09:55:28 +02:00
iommu iommu/vt-d: Set intel_iommu_gfx_mapped correctly 2019-06-22 08:17:14 +02:00
ipack
irqchip Revert "MIPS: perf: ath79: Fix perfcount IRQ assignment" 2019-06-11 12:22:48 +02:00
isdn mISDN: make sure device name is NUL terminated 2019-06-22 08:17:22 +02:00
leds leds: pca9532: fix a potential NULL pointer dereference 2019-05-04 08:49:10 +02:00
lguest
lightnvm
macintosh macintosh/rack-meter: Convert cputime64_t use to u64 2018-10-20 09:51:32 +02:00
mailbox
mcb
md bcache: fix stack corruption by PRECEDING_KEY() 2019-06-22 08:17:19 +02:00
media media: v4l2-ioctl: clear fields in s_parm 2019-06-22 08:17:18 +02:00
memory memory: tegra: Fix integer overflow on tick value calculation 2019-05-25 18:26:49 +02:00
memstick memstick: Prevent memstick host from getting runtime suspended during card detection 2019-02-12 19:44:55 +01:00
message
mfd mfd: twl6040: Fix device init errors for ACCCTL register 2019-06-22 08:17:13 +02:00
misc Drivers: misc: fix out-of-bounds access in function param_set_kgdbts_var 2019-06-22 08:17:19 +02:00
mmc mmc: sdhci-of-esdhc: add erratum eSDHC-A001 and A-008358 support 2019-05-31 06:48:25 -07:00
mtd mtd: rawnand: gpmi: fix MX28 bus master lockup problem 2019-02-15 08:07:37 +01:00
net tun: wake up waitqueues after IFF_UP is set 2019-07-10 09:55:41 +02:00
nfc spi: ST ST95HF NFC: declare missing of table 2019-05-16 19:43:43 +02:00
ntb
nubus
nvdimm libnvdimm/namespace: Fix label tracking error 2019-05-31 06:48:11 -07:00
nvme nvme: Fix u32 overflow in the number of namespace list calculation 2019-07-10 09:55:32 +02:00
nvmem nvmem: core: fix read buffer in place 2019-06-22 08:17:15 +02:00
of of: add helper to lookup compatible child node 2018-12-01 09:44:21 +01:00
oprofile
parisc parisc: Use implicit space register selection for loading the coherence index of I/O pdirs 2019-06-11 12:22:47 +02:00
parport parport: Fix mem leak in parport_register_dev_model 2019-07-10 09:55:29 +02:00
pci PCI: xilinx: Check for __get_free_pages() failure 2019-06-22 08:17:17 +02:00
pcmcia pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges 2018-11-13 11:16:46 -08:00
perf
phy phy: tegra: remove redundant self assignment of 'map' 2019-02-27 10:07:03 +01:00
pinctrl pinctrl: pistachio: fix leaked of_node references 2019-05-31 06:48:18 -07:00
platform platform/x86: intel_pmc_ipc: adding error handling 2019-06-22 08:17:16 +02:00
pnp
power power: supply: sysfs: prevent endless uevent loop with CONFIG_POWER_SUPPLY_DEBUG 2019-05-25 18:26:56 +02:00
powercap x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:19:34 +02:00
pps
ps3
ptp ptp: check gettime64 return code in PTP_SYS_OFFSET ioctl 2019-02-12 19:44:52 +01:00
pwm pwm: Fix deadlock warning when removing PWM device 2019-06-22 08:17:17 +02:00
rapidio rapidio: fix a NULL pointer dereference when create_workqueue() fails 2019-06-22 08:17:11 +02:00
ras
regulator regulator: act8865: Fix act8600_sudcdc_voltage_ranges setting 2019-04-05 22:29:14 +02:00
remoteproc
reset reset: make device_reset_optional() really optional 2018-12-08 13:05:08 +01:00
rpmsg rpmsg: smd: fix memory leak on channel create 2018-11-13 11:17:03 -08:00
rtc rtc: pcf8523: don't return invalid date when battery is low 2019-06-22 08:17:21 +02:00
s390 s390/qeth: fix VLAN attribute in bridge_hostnotify udev event 2019-07-10 09:55:32 +02:00
sbus drivers/sbus/char: add of_node_put() 2018-12-21 14:11:36 +01:00
scsi scsi: vmw_pscsi: Fix use-after-free in pvscsi_queue_lck() 2019-07-10 09:55:39 +02:00
sfi
sh
sn
soc soc: mediatek: pwrap: Zero initialize rdata in pwrap_init_cipher 2019-06-22 08:17:15 +02:00
spi dmaengine: idma64: Use actual device for DMA transfers 2019-06-22 08:17:17 +02:00
spmi
ssb ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit 2019-05-31 06:48:12 -07:00
staging Revert "staging: vc04_services: prevent integer overflow in create_pagelist()" 2019-06-22 08:17:22 +02:00
target scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock 2019-03-23 13:19:47 +01:00
tc TC: Set DMA masks for devices 2018-11-13 11:17:02 -08:00
thermal drivers: thermal: tsens: Don't print error message on -EPROBE_DEFER 2019-06-22 08:17:13 +02:00
thunderbolt
tty sunhv: Fix device naming inconsistency between sunhv_console and sunhv_reg 2019-06-22 08:17:22 +02:00
uio uio: Fix an Oops on load 2018-11-27 16:09:41 +01:00
usb usb: chipidea: udc: workaround for endpoint conflict issue 2019-07-10 09:55:28 +02:00
uwb uwb: hwa-rc: fix memory leak at probe 2018-10-03 17:01:42 -07:00
vfio vfio/pci: use correct format characters 2019-05-08 07:19:10 +02:00
vhost vhost: reject zero size iova range 2019-04-27 09:34:40 +02:00
video video: imsttfb: fix potential NULL pointer dereferences 2019-06-22 08:17:17 +02:00
virt drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl 2019-05-16 19:43:47 +02:00
virtio virtio: Honour 'may_reduce_num' in vring_create_virtqueue 2019-04-17 08:36:47 +02:00
vlynq
vme
w1 w1: fix the resume command API 2019-05-31 06:48:15 -07:00
watchdog watchdog: fix compile time error of pretimeout governors 2019-06-22 08:17:14 +02:00
xen fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock 2019-06-11 12:22:49 +02:00
zorro
Kconfig
Makefile