bug in mmc driver

From: Kamal R. Prasad <kamalpr_at_gmail.com>
Date: Fri, 29 Oct 2021 04:32:14 UTC
hello,

if i run a stress test on a freebsd system booted from a micron mmc
device, and run a script which in a loop opens the same mmc device in
read-only mode, it causes a problem in acquiring the bus and panics
the box. both the stress test and a script to open the mmc device in
read only mode are in user space and so kernel should not have
panic'ed. Pl see stack trace from our freebsd derived os.

thanks
-kamal
--------------

panic: mmc: host bridge didn't serialize us.

cpuid = 2

time = 1635445326

KDB: stack backtrace:

db_trace_self() at db_trace_self_wrapper+0x28

pc = 0xffff00000032d114  lr = 0xffff0000000757cc

sp = 0xffff00006a09b590  fp = 0xffff00006a09b790


db_trace_self_wrapper() at kdb_backtrace+0x38

pc = 0xffff0000000757cc  lr = 0xffff000000200d04

sp = 0xffff00006a09b7a0  fp = 0xffff00006a09b850


kdb_backtrace() at vpanic+0x18c

pc = 0xffff000000200d04  lr = 0xffff0000001baf6c

sp = 0xffff00006a09b860  fp = 0xffff00006a09b8b0


vpanic() at panic+0x44

pc = 0xffff0000001baf6c  lr = 0xffff0000001bad24

sp = 0xffff00006a09b8c0  fp = 0xffff00006a09b970


panic() at mmc_acquire_bus+0x524

pc = 0xffff0000001bad24  lr = 0xffff00000008ad1c

sp = 0xffff00006a09b980  fp = 0xffff00006a09b9c0


mmc_acquire_bus() at mmcsd_task+0x184

pc = 0xffff00000008ad1c  lr = 0xffff000000092f54

sp = 0xffff00006a09b9d0  fp = 0xffff00006a09baf0


mmcsd_task() at fork_exit+0xb4

pc = 0xffff000000092f54  lr = 0xffff000000182460

sp = 0xffff00006a09bb00  fp = 0xffff00006a09bb60


fork_exit() at fork_trampoline+0x10

pc = 0xffff000000182460  lr = 0xffff000000349b6c

sp = 0xffff00006a09bb70  fp = 0x0000000000000000


KDB: Current process: mmcsd0: mmc/sd card

KDB: enter: kdb_dbbe 0xffff000001094088, kdb_active 0

KDB: enter: panic

###Entering boot mastership relinquish phase

[ thread pid 35 tid 100092 ]

Stopped at      0

db>