TencentOS-kernel/drivers
Tong Zhang 6d0fa667f6 atm: eni: dont release is never initialized
[ Upstream commit 4deb550bc3b698a1f03d0332cde3df154d1b6c1e ]

label err_eni_release is reachable when eni_start() fail.
In eni_start() it calls dev->phy->start() in the last step, if start()
fail we don't need to call phy->stop(), if start() is never called, we
neither need to call phy->stop(), otherwise null-ptr-deref will happen.

In order to fix this issue, don't call phy->stop() in label err_eni_release

[    4.875714] ==================================================================
[    4.876091] BUG: KASAN: null-ptr-deref in suni_stop+0x47/0x100 [suni]
[    4.876433] Read of size 8 at addr 0000000000000030 by task modprobe/95
[    4.876778]
[    4.876862] CPU: 0 PID: 95 Comm: modprobe Not tainted 5.11.0-rc7-00090-gdcc0b49040c7 #2
[    4.877290] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-48-gd94
[    4.877876] Call Trace:
[    4.878009]  dump_stack+0x7d/0xa3
[    4.878191]  kasan_report.cold+0x10c/0x10e
[    4.878410]  ? __slab_free+0x2f0/0x340
[    4.878612]  ? suni_stop+0x47/0x100 [suni]
[    4.878832]  suni_stop+0x47/0x100 [suni]
[    4.879043]  eni_do_release+0x3b/0x70 [eni]
[    4.879269]  eni_init_one.cold+0x1152/0x1747 [eni]
[    4.879528]  ? _raw_spin_lock_irqsave+0x7b/0xd0
[    4.879768]  ? eni_ioctl+0x270/0x270 [eni]
[    4.879990]  ? __mutex_lock_slowpath+0x10/0x10
[    4.880226]  ? eni_ioctl+0x270/0x270 [eni]
[    4.880448]  local_pci_probe+0x6f/0xb0
[    4.880650]  pci_device_probe+0x171/0x240
[    4.880864]  ? pci_device_remove+0xe0/0xe0
[    4.881086]  ? kernfs_create_link+0xb6/0x110
[    4.881315]  ? sysfs_do_create_link_sd.isra.0+0x76/0xe0
[    4.881594]  really_probe+0x161/0x420
[    4.881791]  driver_probe_device+0x6d/0xd0
[    4.882010]  device_driver_attach+0x82/0x90
[    4.882233]  ? device_driver_attach+0x90/0x90
[    4.882465]  __driver_attach+0x60/0x100
[    4.882671]  ? device_driver_attach+0x90/0x90
[    4.882903]  bus_for_each_dev+0xe1/0x140
[    4.883114]  ? subsys_dev_iter_exit+0x10/0x10
[    4.883346]  ? klist_node_init+0x61/0x80
[    4.883557]  bus_add_driver+0x254/0x2a0
[    4.883764]  driver_register+0xd3/0x150
[    4.883971]  ? 0xffffffffc0038000
[    4.884149]  do_one_initcall+0x84/0x250
[    4.884355]  ? trace_event_raw_event_initcall_finish+0x150/0x150
[    4.884674]  ? unpoison_range+0xf/0x30
[    4.884875]  ? ____kasan_kmalloc.constprop.0+0x84/0xa0
[    4.885150]  ? unpoison_range+0xf/0x30
[    4.885352]  ? unpoison_range+0xf/0x30
[    4.885557]  do_init_module+0xf8/0x350
[    4.885760]  load_module+0x3fe6/0x4340
[    4.885960]  ? vm_unmap_ram+0x1d0/0x1d0
[    4.886166]  ? ____kasan_kmalloc.constprop.0+0x84/0xa0
[    4.886441]  ? module_frob_arch_sections+0x20/0x20
[    4.886697]  ? __do_sys_finit_module+0x108/0x170
[    4.886941]  __do_sys_finit_module+0x108/0x170
[    4.887178]  ? __ia32_sys_init_module+0x40/0x40
[    4.887419]  ? file_open_root+0x200/0x200
[    4.887634]  ? do_sys_open+0x85/0xe0
[    4.887826]  ? filp_open+0x50/0x50
[    4.888009]  ? fpregs_assert_state_consistent+0x4d/0x60
[    4.888287]  ? exit_to_user_mode_prepare+0x2f/0x130
[    4.888547]  do_syscall_64+0x33/0x40
[    4.888739]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[    4.889010] RIP: 0033:0x7ff62fcf1cf7
[    4.889202] Code: 48 89 57 30 48 8b 04 24 48 89 47 38 e9 1d a0 02 00 48 89 f8 48 89 f71
[    4.890172] RSP: 002b:00007ffe6644ade8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[    4.890570] RAX: ffffffffffffffda RBX: 0000000000f2ca70 RCX: 00007ff62fcf1cf7
[    4.890944] RDX: 0000000000000000 RSI: 0000000000f2b9e0 RDI: 0000000000000003
[    4.891318] RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000001
[    4.891691] R10: 00007ff62fd55300 R11: 0000000000000246 R12: 0000000000f2b9e0
[    4.892064] R13: 0000000000000000 R14: 0000000000f2bdd0 R15: 0000000000000001
[    4.892439] ==================================================================

Signed-off-by: Tong Zhang <ztong0001@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-12 12:53:21 +08:00
..
accessibility
acpi ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807 2021-04-12 12:52:54 +08:00
amba amba: Fix resource leak for drivers without .remove 2021-04-12 12:52:26 +08:00
android binder: add flag to clear buffer on txn complete 2021-03-16 16:43:28 +08:00
ata ata: ahci_brcm: Add back regulators management 2021-04-12 12:52:20 +08:00
atm atm: eni: dont release is never initialized 2021-04-12 12:53:21 +08:00
auxdisplay auxdisplay: ht16k33: Fix refresh rate handling 2021-04-12 12:52:25 +08:00
base Revert "PM: runtime: Update device status before letting suppliers suspend" 2021-04-12 12:53:15 +08:00
bcma
block zram: fix return value on writeback_store 2021-04-12 12:53:11 +08:00
bluetooth Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl 2021-04-12 12:52:46 +08:00
bus bus: fsl-mc: fix error return code in fsl_mc_object_allocate() 2021-03-16 16:43:09 +08:00
cdrom
char tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality() 2021-04-12 12:52:50 +08:00
clk clk: aspeed: Fix APLL calculate formula from ast2600-A2 2021-04-12 12:52:28 +08:00
clocksource clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined 2021-04-12 12:52:24 +08:00
connector
counter counter: stm32-timer-cnt: fix ceiling write max value 2021-04-12 12:53:20 +08:00
cpufreq cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if available 2021-04-12 12:52:40 +08:00
cpuidle cpuidle: Fixup IRQ state 2021-03-16 16:35:25 +08:00
crypto crypto: sun4i-ss - initialize need_fallback 2021-04-12 12:52:36 +08:00
dax device-dax/core: Fix memory leak when rmmod dax.ko 2021-03-16 16:43:45 +08:00
dca
devfreq PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out 2021-03-16 16:36:35 +08:00
dio
dma dmaengine: hsu: disable spurious interrupt 2021-04-12 12:52:24 +08:00
dma-buf dmabuf: fix use-after-free of dmabuf's file->f_inode 2021-04-12 12:51:14 +08:00
edac EDAC/amd64: Fix PCI component registration 2021-03-16 16:43:29 +08:00
eisa
extcon extcon: max77693: Fix modalias string 2021-03-16 16:43:12 +08:00
firewire
firmware firmware/efi: Fix a use after bug in efi_mem_reserve_persistent 2021-04-12 12:53:21 +08:00
fpga fpga: dfl: fix bug in port reset handshake 2021-03-16 16:32:23 +08:00
fsi
gnss
gpio gpio: pcf857x: Fix missing first interrupt 2021-04-12 12:52:39 +08:00
gpu drm/i915/gvt: Fix vfio_edid issue for BXT/APL 2021-04-12 12:53:14 +08:00
greybus
hid HID: logitech-dj: add support for the new lightspeed connection iteration 2021-04-12 12:53:03 +08:00
hsi HSI: Fix PM usage counter unbalance in ssi_hw_init 2021-04-12 12:52:22 +08:00
hv Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind() 2021-04-12 12:52:21 +08:00
hwmon hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values 2021-04-12 12:51:24 +08:00
hwspinlock
hwtracing stm class: Fix module init return on allocation failure 2021-04-12 12:51:37 +08:00
i2c i2c: rcar: optimize cacheline to minimize HW race condition 2021-04-12 12:53:02 +08:00
i3c i3c master: fix missing destroy_workqueue() on error in i3c_master_register 2021-03-16 16:43:55 +08:00
ide scsi: ide: Do not set the RQF_PREEMPT flag for sense requests 2021-04-12 12:51:06 +08:00
idle
iio iio: hid-sensor-temperature: Fix issues of timestamp channel 2021-04-12 12:53:19 +08:00
infiniband IB/mlx5: Add missing error code 2021-04-12 12:52:52 +08:00
input Input: applespi - don't wait for responses to commands indefinitely. 2021-04-12 12:53:03 +08:00
interconnect interconnect: qcom: qcs404: Remove GPU and display RPM IDs 2021-03-16 16:42:11 +08:00
iommu iommu/amd: Fix performance counter initialization 2021-04-12 12:53:03 +08:00
ipack
irqchip irqchip/mips-cpu: Set IPI domain parent chip 2021-04-12 12:51:37 +08:00
isdn misdn: dsp: select CONFIG_BITREVERSE 2021-04-12 12:51:24 +08:00
leds leds: trigger: fix potential deadlock with libata 2021-04-12 12:51:44 +08:00
lightnvm lightnvm: fix memory leak when submit fails 2021-04-12 12:51:39 +08:00
macintosh macintosh/via-macii: Access autopoll_devs when inside lock 2021-03-16 16:33:39 +08:00
mailbox mailbox: avoid timer start from callback 2021-03-16 16:38:59 +08:00
mcb
md dm table: fix zoned iterate_devices based device capability checks 2021-04-12 12:52:53 +08:00
media media: rc: compile rc-cec.c into rc-core 2021-04-12 12:53:01 +08:00
memory memory: ti-aemif: Drop child node when jumping out loop 2021-04-12 12:52:13 +08:00
memstick memstick: r592: Fix error return in r592_probe() 2021-03-16 16:43:02 +08:00
message scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove() 2021-03-16 16:39:58 +08:00
mfd mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq() 2021-04-12 12:52:27 +08:00
misc misc: fastrpc: restrict user apps from sending kernel RPC messages 2021-04-12 12:53:08 +08:00
mmc mmc: cqhci: Fix random crash when remove mmc module/card 2021-04-12 12:53:06 +08:00
mtd mtd: spi-nor: hisi-sfc: Put child node np on error path 2021-04-12 12:52:38 +08:00
mux
net net: fec: ptp: avoid register access when ipg clock is disabled 2021-04-12 12:53:21 +08:00
nfc nfc: s3fwrn5: Release the nfc firmware 2021-03-16 16:43:15 +08:00
ntb NTB: hw: amd: fix an issue about leak system resources 2021-03-16 16:39:10 +08:00
nubus
nvdimm libnvdimm/dimm: Avoid race between probe and available_slots_show() 2021-04-12 12:51:55 +08:00
nvme nvme-rdma: fix possible hang when failing to set io queues 2021-04-12 12:53:18 +08:00
nvmem nvmem: core: skip child nodes not matching binding 2021-04-12 12:52:30 +08:00
of of/fdt: Make sure no-map does not remove already reserved regions 2021-04-12 12:52:24 +08:00
opp opp: Reduce the size of critical section in _opp_table_kref_release() 2021-03-16 16:40:41 +08:00
oprofile
parisc parisc: mask out enable and reserved bits from sba imask 2021-03-16 16:33:54 +08:00
parport
pci PCI: rpadlpar: Fix potential drc_name corruption in store functions 2021-04-12 12:53:20 +08:00
pcmcia
perf drivers/perf: thunderx2_pmu: Fix memory resource error handling 2021-03-16 16:38:23 +08:00
phy phy: rockchip-emmc: emmc_phy_init() always return 0 2021-04-12 12:52:29 +08:00
pinctrl pinctrl: ingenic: Fix JZ4760 support 2021-04-12 12:51:38 +08:00
platform Platform: OLPC: Fix probe error handling 2021-04-12 12:53:02 +08:00
pnp
power power: reset: at91-sama5d2_shdwc: fix wkupdbc mask 2021-04-12 12:52:24 +08:00
powercap powercap: restrict energy meter to root access 2021-03-16 16:40:32 +08:00
pps
ps3 powerpc/ps3: use dma_mapping_error() 2021-03-16 16:43:15 +08:00
ptp
pwm pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare() 2021-04-12 12:52:30 +08:00
rapidio rapidio: fix the missed put_device() for rio_mport_add_riodev 2021-03-16 16:38:59 +08:00
ras
regulator regulator: qcom-rpmh: fix pm8009 ldo7 2021-04-12 12:52:28 +08:00
remoteproc remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio() 2021-03-16 16:43:11 +08:00
reset
rpmsg rpmsg: glink: Use complete_all for open states 2021-03-16 16:39:50 +08:00
rtc rtc: s5m: select REGMAP_I2C 2021-04-12 12:52:24 +08:00
s390 s390/dasd: fix hanging IO request during DASD driver unbind 2021-04-12 12:53:06 +08:00
sbus
scsi scsi: myrs: Fix a double free in myrs_cleanup() 2021-04-12 12:53:18 +08:00
sfi
sh
siox
slimbus slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI 2021-03-16 16:42:54 +08:00
soc soc: aspeed: snoop: Add clock control logic 2021-04-12 12:52:15 +08:00
soundwire soundwire: cadence: fix ACK/NAK handling 2021-04-12 12:52:29 +08:00
spi spi: stm32: make spurious and overrun interrupts visible 2021-04-12 12:53:02 +08:00
spmi spmi: spmi-pmic-arb: Fix hw_irq overflow 2021-04-12 12:52:39 +08:00
ssb
staging staging: comedi: pcl818: Fix endian problem for AI command data 2021-04-12 12:53:10 +08:00
target scsi: target: core: Prevent underflow for service actions 2021-04-12 12:53:04 +08:00
tc
tee tee: optee: replace might_sleep with cond_resched 2021-04-12 12:51:45 +08:00
thermal thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has changed 2021-03-16 16:43:48 +08:00
thunderbolt thunderbolt: Fix use-after-free in remove_unplugged_switch() 2021-03-16 16:42:03 +08:00
tty vt/consolemap: do font sum unsigned 2021-04-12 12:52:46 +08:00
uio uio: avoid to request_irq when the legacy irq is not connected 2021-03-16 16:43:58 +08:00
usb usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy- 2021-04-12 12:53:19 +08:00
vfio vfio: IOMMU_API should be selected 2021-04-12 12:53:17 +08:00
vhost vhost_net: fix ubuf refcount incorrectly when sendmsg fails 2021-04-12 12:51:09 +08:00
video udlfb: Fix memory leak in dlfb_usb_probe 2021-04-12 12:52:43 +08:00
virt virt: vbox: Do not use wait_event_interruptible when called from kernel context 2021-04-12 12:52:10 +08:00
virtio virtio_ring: Fix two use after free bugs 2021-03-16 16:43:19 +08:00
visorbus
vlynq
vme
w1 w1: mxc_w1: Fix timeout resolution problem leading to bus error 2021-03-16 16:39:58 +08:00
watchdog watchdog: mei_wdt: request stop on unregister 2021-04-12 12:52:38 +08:00
xen xen/events: avoid handling the same event on two cpus at the same time 2021-04-12 12:53:13 +08:00
zorro
Kconfig
Makefile