mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-21 08:41:26 +00:00
Upon reusing the ptp_qoriq driver, the ptp_qoriq_free() function was
used on the remove path to free any allocated resources.
The ptp_qoriq IRQ is among these resources that are freed in
ptp_qoriq_free() even though it is also a managed one (allocated using
devm_request_threaded_irq).
Drop the resource managed version of requesting the IRQ in order to not
trigger a double free of the interrupt as below:
[ 226.731005] Trying to free already-free IRQ 126
[ 226.735533] WARNING: CPU: 6 PID: 749 at kernel/irq/manage.c:1707
__free_irq+0x9c/0x2b8
[ 226.743435] Modules linked in:
[ 226.746480] CPU: 6 PID: 749 Comm: bash Tainted: G W
5.4.0-03629-gfd7102c32b2c-dirty #912
[ 226.755857] Hardware name: NXP Layerscape LX2160ARDB (DT)
[ 226.761244] pstate: 40000085 (nZcv daIf -PAN -UAO)
[ 226.766022] pc : __free_irq+0x9c/0x2b8
[ 226.769758] lr : __free_irq+0x9c/0x2b8
[ 226.773493] sp : ffff8000125039f0
(...)
[ 226.856275] Call trace:
[ 226.858710] __free_irq+0x9c/0x2b8
[ 226.862098] free_irq+0x30/0x70
[ 226.865229] devm_irq_release+0x14/0x20
[ 226.869054] release_nodes+0x1b0/0x220
[ 226.872790] devres_release_all+0x34/0x50
[ 226.876790] device_release_driver_internal+0x100/0x1c0
Fixes:
|
||
|---|---|---|
| .. | ||
| dpaa2-eth-debugfs.c | ||
| dpaa2-eth-debugfs.h | ||
| dpaa2-eth-trace.h | ||
| dpaa2-eth.c | ||
| dpaa2-eth.h | ||
| dpaa2-ethtool.c | ||
| dpaa2-mac.c | ||
| dpaa2-mac.h | ||
| dpaa2-ptp.c | ||
| dpaa2-ptp.h | ||
| dpkg.h | ||
| dpmac-cmd.h | ||
| dpmac.c | ||
| dpmac.h | ||
| dpni-cmd.h | ||
| dpni.c | ||
| dpni.h | ||
| dprtc-cmd.h | ||
| dprtc.c | ||
| dprtc.h | ||
| Kconfig | ||
| Makefile | ||