Re: CURRENT crashes at early boot on Lenovo T540p: rtsx to blame - 13.0-RELEASE crashes same way!

From: Gary Jennejohn <gljennjohn_at_gmail.com>
Date: Thu, 13 May 2021 20:52:05 +0200
On Thu, 13 May 2021 20:55:20 +0300
Lev Serebryakov <lev_at_FreeBSD.org> wrote:

> On 13.05.2021 18:56, Henri Hennebert wrote:
> 
> > So if I understand correctly, your problem is solved.  
>   Stupid me. I didn't check card insertion/removal after boot.
> 
> Card REMOVAL when boot was WITH CARD:
>   Instant panic:
> 
> rtsx0: Interrupt card inserted/removed
> rtsx0: Card absent
> panic: mutex Giant not owned at /usr/src/sys/kern/subr_bus.c:3045
> cpuid = 3
> time = 1620928154
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00c6a989c0
> vpanic() at vpanic+0x181/frame 0xfffffe00c6a98a10
> panic() at panic+0x43/frame 0xfffffe00c6a98a70
> __mtx_assert() at __mtx_assert+0xb0/frame 0xfffffe00c6a98a80
> device_detach() at device_detach+0x2e/frame 0xfffffe00c6a98ac0
> device_delete_child() at device_delete_child+0x15/frame 0xfffffe00c6a98ae0
> rtsx_card_task() at rtsx_card_task+0xfa/frame 0xfffffe00c6a98b00
> taskqueue_run_locked() at taskqueue_run_locked+0xaa/frame 0xfffffe00c6a98b80
> taskqueue_thread_loop() at taskqueue_thread_loop+0x94/frame 0xfffffe00c6a98bb0
> fork_exit() at fork_exit+0x80/frame 0xfffffe00c6a98bf0
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00c6a98bf0
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> KDB: enter: panic
> 
> Card INSERTION when boot was WITHOUT CARD:
>   Instant panic:
> 
> rtsx0: Interrupt card inserted/removed
> rtsx0: Card present
> panic: mutex Giant not owned at /usr/src/sys/kern/subr_bus.c:2944
> cpuid = 1
> time = 1620928312
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00c6a98a10
> vpanic() at vpanic+0x181/frame 0xfffffe00c6a98a60
> panic() at panic+0x43/frame 0xfffffe00c6a98ac0
> __mtx_assert() at __mtx_assert+0xb0/frame 0xfffffe00c6a98ad0
> device_probe_and_attach() at device_probe_and_attach+0x2a/frame 0xfffffe00c6a98b00
> taskqueue_run_locked() at taskqueue_run_locked+0xaa/frame 0xfffffe00c6a98b80
> taskqueue_thread_loop() at taskqueue_thread_loop+0x94/frame 0xfffffe00c6a98bb0
> fork_exit() at fork_exit+0x80/frame 0xfffffe00c6a98bf0
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00c6a98bf0
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> KDB: enter: panic
> 
> Both panics are "debuggable", as keyboard is working in ddb and crash dump could be created. And I'm not sure, that GIANT in 2021 is good thing.
> 

Yeah, I was wondering about that myself when looked at the code today.
The driver was originally developed when current was what is now 12 or
13, I think.

Might be worth looking at dwmmc.c (where I got the card insertion/removal
code) to see whether there are any recent changes there.

-- 
Gary Jennejohn
Received on Thu May 13 2021 - 16:52:09 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:28 UTC