android_kernel_sony_sdm845/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Martin Willi 3ec3f89169 can: dev: Move device back to init netns on owning netns delete
commit 3a5ca857079ea022e0b1b17fc154f7ad7dbc150f upstream.

When a non-initial netns is destroyed, the usual policy is to delete
all virtual network interfaces contained, but move physical interfaces
back to the initial netns. This keeps the physical interface visible
on the system.

CAN devices are somewhat special, as they define rtnl_link_ops even
if they are physical devices. If a CAN interface is moved into a
non-initial netns, destroying that netns lets the interface vanish
instead of moving it back to the initial netns. default_device_exit()
skips CAN interfaces due to having rtnl_link_ops set. Reproducer:

  ip netns add foo
  ip link set can0 netns foo
  ip netns delete foo

WARNING: CPU: 1 PID: 84 at net/core/dev.c:11030 ops_exit_list+0x38/0x60
CPU: 1 PID: 84 Comm: kworker/u4:2 Not tainted 5.10.19 #1
Workqueue: netns cleanup_net
[<c010e700>] (unwind_backtrace) from [<c010a1d8>] (show_stack+0x10/0x14)
[<c010a1d8>] (show_stack) from [<c086dc10>] (dump_stack+0x94/0xa8)
[<c086dc10>] (dump_stack) from [<c086b938>] (__warn+0xb8/0x114)
[<c086b938>] (__warn) from [<c086ba10>] (warn_slowpath_fmt+0x7c/0xac)
[<c086ba10>] (warn_slowpath_fmt) from [<c0629f20>] (ops_exit_list+0x38/0x60)
[<c0629f20>] (ops_exit_list) from [<c062a5c4>] (cleanup_net+0x230/0x380)
[<c062a5c4>] (cleanup_net) from [<c0142c20>] (process_one_work+0x1d8/0x438)
[<c0142c20>] (process_one_work) from [<c0142ee4>] (worker_thread+0x64/0x5a8)
[<c0142ee4>] (worker_thread) from [<c0148a98>] (kthread+0x148/0x14c)
[<c0148a98>] (kthread) from [<c0100148>] (ret_from_fork+0x14/0x2c)

To properly restore physical CAN devices to the initial netns on owning
netns exit, introduce a flag on rtnl_link_ops that can be set by drivers.
For CAN devices setting this flag, default_device_exit() considers them
non-virtual, applying the usual namespace move.

The issue was introduced in the commit mentioned below, as at that time
CAN devices did not have a dellink() operation.

Fixes: e008b5fc8d ("net: Simplfy default_device_exit and improve batching.")
Link: https://lore.kernel.org/r/20210302122423.872326-1-martin@strongswan.org
Signed-off-by: Martin Willi <martin@strongswan.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-03-30 14:41:42 +02:00
..
accessibility
acpi ACPI: scan: Use unique number for instance_no 2021-03-30 14:41:41 +02:00
amba amba: Fix resource leak for drivers without .remove 2021-03-03 17:44:38 +01:00
android binder: Prevent context manager from incrementing ref 0 2020-08-21 11:01:55 +02:00
ata ata: ahci_brcm: Add back regulators management 2021-03-03 17:44:35 +01:00
atm atm: idt77252: fix null-ptr-dereference 2021-03-30 14:41:39 +02:00
auxdisplay
base Revert "device property: Keep secondary firmware node secondary by type" 2021-01-12 19:49:05 +01:00
bcma bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA 2020-01-29 10:24:31 +01:00
block block: rsxx: fix error return code of rsxx_pci_probe() 2021-03-17 16:10:18 +01:00
bluetooth Bluetooth: btusb: fix PM leak in error case of setup 2020-01-12 11:24:16 +01:00
bus bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD 2021-03-30 14:41:40 +02:00
cdrom cdrom: respect device capabilities during opening action 2020-01-04 13:41:02 +01:00
char random: fix the RNDRESEEDCRNG ioctl 2021-03-03 17:44:32 +01:00
clk clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL 2021-03-03 17:44:36 +01:00
clocksource clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined 2021-03-03 17:44:37 +01:00
connector
cpufreq cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get() 2021-01-17 13:57:54 +01:00
cpuidle cpuidle: Fix three reference count leaks 2020-06-20 10:24:18 +02:00
crypto crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe 2020-12-29 13:44:55 +01:00
dax
dca
devfreq PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out 2020-10-01 20:40:02 +02:00
dio
dma dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function 2021-03-03 17:44:36 +01:00
dma-buf dma-buf: Fix memory leak in sync_file_merge() 2019-12-21 10:42:32 +01:00
edac EDAC/i5100: Fix error handling order in i5100_init_one() 2020-10-29 09:05:32 +01:00
eisa
extcon extcon: max77693: Fix modalias string 2020-12-29 13:45:00 +01:00
firewire net: add annotations on hh->hh_len lockless accesses 2020-01-12 11:24:19 +01:00
firmware efi: Make it possible to disable efivar_ssdt entirely 2020-07-09 09:35:57 +02:00
fmc
fpga
gpio gpio: pcf857x: Fix missing first interrupt 2021-03-03 17:44:44 +01:00
gpu drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY) 2021-03-03 17:44:39 +01:00
hid HID: core: detect and skip invalid inputs to snto32() 2021-03-03 17:44:36 +01:00
hsi HSI: omap_ssi: Don't jump to free ID in ssi_add_controller() 2020-12-29 13:44:56 +01:00
hv Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload 2020-09-23 08:46:15 +02:00
hwmon hwmon: (lm90) Fix max6658 sporadic wrong temperature reading 2021-03-17 16:10:18 +01:00
hwspinlock
hwtracing stm class: Fix module init return on allocation failure 2021-01-30 13:27:14 +01:00
i2c i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition 2021-03-03 17:44:40 +01:00
ide block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h> 2020-09-12 11:47:36 +02:00
idle
iio iio: adis16400: Fix an error code in adis16400_initial_setup() 2021-03-24 10:59:24 +01:00
infiniband RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server 2021-03-30 14:41:41 +02:00
input Input: i8042 - add ASUS Zenbook Flip to noselftest list 2021-03-03 17:44:41 +01:00
iommu iommu/amd: Fix sleeping in atomic in increase_address_space() 2021-03-11 13:48:03 +01:00
ipack
irqchip irqchip/alpine-msi: Fix freeing of interrupts on allocation error path 2020-12-29 13:45:00 +01:00
isdn misdn: dsp: select CONFIG_BITREVERSE 2021-01-23 15:38:17 +01:00
leds leds: trigger: fix potential deadlock with libata 2021-02-03 23:19:50 +01:00
lguest
lightnvm
macintosh drivers/macintosh: Fix memleak in windfarm_pm112 driver 2020-06-20 10:24:21 +02:00
mailbox
mcb
md dm table: fix DAX iterate_devices based device capability checks 2021-03-11 13:48:03 +01:00
media media: usbtv: Fix deadlock on suspend 2021-03-17 16:10:14 +01:00
memory memory: emif: Remove bogus debugfs error handling 2020-11-10 10:23:55 +01:00
memstick memstick: r592: Fix error return in r592_probe() 2020-12-29 13:44:58 +01:00
message scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove() 2020-11-10 10:23:57 +01:00
mfd mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq() 2021-03-03 17:44:38 +01:00
misc misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom 2021-03-11 13:48:03 +01:00
mmc mmc: core: Fix partition switch time for eMMC 2021-03-17 16:10:15 +01:00
mtd mtd: spi-nor: hisi-sfc: Put child node np on error path 2021-03-03 17:44:43 +01:00
net can: dev: Move device back to init netns on owning netns delete 2021-03-30 14:41:42 +02:00
nfc nfc: s3fwrn5: Release the nfc firmware 2020-12-29 13:45:00 +01:00
ntb NTB: hw: amd: fix an issue about leak system resources 2020-10-29 09:05:41 +01:00
nubus
nvdimm libnvdimm/dimm: Avoid race between probe and available_slots_show() 2021-03-03 17:44:44 +01:00
nvme nvmet: don't check iosqes,iocqes for discovery controllers 2021-03-24 10:59:23 +01:00
nvmem nvmem: qfprom: remove incorrect write support 2020-06-11 09:22:22 +02:00
of of/fdt: Make sure no-map does not remove already reserved regions 2021-03-03 17:44:37 +01:00
oprofile
parisc parisc: mask out enable and reserved bits from sba imask 2020-08-21 11:02:06 +02:00
parport parport: load lowlevel driver if ports not found 2020-01-04 13:39:55 +01:00
pci PCI: rpadlpar: Fix potential drc_name corruption in store functions 2021-03-24 10:59:24 +01:00
pcmcia
perf
phy phy: tegra: xusb: Fix dangling pointer on probe failure 2020-12-02 08:31:27 +01:00
pinctrl pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe() 2020-12-29 13:44:58 +01:00
platform platform/x86: acer-wmi: Add new force_caps module parameter 2021-03-11 13:48:03 +01:00
pnp
power power: reset: at91-sama5d2_shdwc: fix wkupdbc mask 2021-03-03 17:44:37 +01:00
powercap powercap: restrict energy meter to root access 2020-11-10 21:04:57 +01:00
pps
ps3 powerpc/ps3: use dma_mapping_error() 2020-12-29 13:45:00 +01:00
ptp ptp: free ptp device pin descriptors properly 2020-05-20 08:15:33 +02:00
pwm pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare() 2021-03-03 17:44:39 +01:00
rapidio rapidio: fix the missed put_device() for rio_mport_add_riodev 2020-10-29 09:05:39 +01:00
ras
regulator regulator: axp20x: Fix reference cout leak 2021-03-03 17:44:37 +01:00
remoteproc remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load 2021-02-23 13:59:14 +01:00
reset
rpmsg
rtc rtc: rx8010: don't modify the global rtc ops 2020-11-10 10:23:59 +01:00
s390 s390/dasd: fix hanging DASD driver unbind 2021-03-17 16:10:15 +01:00
sbus
scsi scsi: lpfc: Fix some error codes in debugfs 2021-03-24 10:59:24 +01:00
sfi
sh
sn
soc soc: qcom: smp2p: Safely acquire spinlock without IRQs 2020-12-29 13:45:07 +01:00
spi spi: pxa2xx: Fix the controller numbering for Wildcat Point 2021-03-03 17:44:38 +01:00
spmi
ssb
staging staging: comedi: pcl818: Fix endian problem for AI command data 2021-03-17 16:10:17 +01:00
target target: add XCOPY target/segment desc sense codes 2021-01-17 13:57:53 +01:00
tc
thermal thermal: ti-soc-thermal: Fix bogus thermal shutdowns for omap4430 2020-09-12 11:47:34 +02:00
thunderbolt
tty vt/consolemap: do font sum unsigned 2021-03-07 11:25:57 +01:00
uio uio_pdrv_genirq: fix use without device tree and no interrupt 2020-07-22 09:10:53 +02:00
usb idr: add ida_is_empty 2021-03-30 14:41:41 +02:00
uwb
vfio vfio/pci: Move dummy_resources_list init in vfio_pci_probe() 2021-01-09 13:35:48 +01:00
vhost vhost_net: fix ubuf refcount incorrectly when sendmsg fails 2021-01-12 19:49:02 +01:00
video fbdev: aty: SPARC64 requires FB_ATY_CT 2021-03-03 17:44:34 +01:00
virt drivers/virt/fsl_hypervisor: Fix error handling path 2020-10-29 09:05:35 +01:00
virtio virtio_ring: Avoid loop when vq is broken in virtqueue_poll 2020-08-26 10:29:05 +02:00
vlynq
vme vme: bridges: reduce stack usage 2020-02-28 15:42:33 +01:00
w1 w1: mxc_w1: Fix timeout resolution problem leading to bus error 2020-11-10 10:23:57 +01:00
watchdog watchdog: qcom: Avoid context switch in restart handler 2020-12-29 13:45:01 +01:00
xen xen/events: avoid handling the same event on two cpus at the same time 2021-03-17 16:10:19 +01:00
zorro
Kconfig
Makefile