diff options
| author | Sergey Senozhatsky <senozhatsky@chromium.org> | 2026-01-29 12:10:30 +0900 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-01-30 18:51:11 -0800 |
| commit | 6d06bc83a5ae8777a5f7a81c32dd75b8d9b2fe04 (patch) | |
| tree | 143117d8f647b6edb57168bdee2ad9a9a3f41cc8 /tools/perf/scripts/python/export-to-postgresql.py | |
| parent | macvlan: fix error recovery in macvlan_common_newlink() (diff) | |
| download | linux-6d06bc83a5ae8777a5f7a81c32dd75b8d9b2fe04.tar.gz linux-6d06bc83a5ae8777a5f7a81c32dd75b8d9b2fe04.zip | |
net: usb: r8152: fix resume reset deadlock
rtl8152 can trigger device reset during reset which
potentially can result in a deadlock:
**** DPM device timeout after 10 seconds; 15 seconds until panic ****
Call Trace:
<TASK>
schedule+0x483/0x1370
schedule_preempt_disabled+0x15/0x30
__mutex_lock_common+0x1fd/0x470
__rtl8152_set_mac_address+0x80/0x1f0
dev_set_mac_address+0x7f/0x150
rtl8152_post_reset+0x72/0x150
usb_reset_device+0x1d0/0x220
rtl8152_resume+0x99/0xc0
usb_resume_interface+0x3e/0xc0
usb_resume_both+0x104/0x150
usb_resume+0x22/0x110
The problem is that rtl8152 resume calls reset under
tp->control mutex while reset basically re-enters rtl8152
and attempts to acquire the same tp->control lock once
again.
Reset INACCESSIBLE device outside of tp->control mutex
scope to avoid recursive mutex_lock() deadlock.
Fixes: 4933b066fefb ("r8152: If inaccessible at resume time, issue a reset")
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Link: https://patch.msgid.link/20260129031106.3805887-1-senozhatsky@chromium.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions
