w1: omap-hdq: fix missing bus unregister at removal
commit
a007734618fee1bf35556c04fa498d41d42c7301 upstream.
The bus master was not removed after unloading the module
or unbinding the driver. That lead to oopses like this
[ 127.842987] Unable to handle kernel paging request at virtual address
bf01d04c
[ 127.850646] pgd =
70e3cd9a
[ 127.853698] [
bf01d04c] *pgd=
8f908811, *pte=
00000000, *ppte=
00000000
[ 127.860412] Internal error: Oops:
80000007 [#1] PREEMPT SMP ARM
[ 127.866668] Modules linked in: bq27xxx_battery overlay [last unloaded: omap_hdq]
[ 127.874542] CPU: 0 PID: 1022 Comm: w1_bus_master1 Not tainted
4.19.0-rc4-00001-g2d51da718324 #12
[ 127.883819] Hardware name: Generic OMAP36xx (Flattened Device Tree)
[ 127.890441] PC is at 0xbf01d04c
[ 127.893798] LR is at w1_search_process_cb+0x4c/0xfc
[ 127.898956] pc : [<
bf01d04c>] lr : [<
c05f9580>] psr:
a0070013
[ 127.905609] sp :
cf885f48 ip :
bf01d04c fp :
ddf1e11c
[ 127.911132] r10:
cf8fe040 r9 :
c05f8d00 r8 :
cf8fe040
[ 127.916656] r7 :
000000f0 r6 :
cf8fe02c r5 :
cf8fe000 r4 :
cf8fe01c
[ 127.923553] r3 :
c05f8d00 r2 :
000000f0 r1 :
cf8fe000 r0 :
dde1ef10
[ 127.930450] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
[ 127.938018] Control:
10c5387d Table:
8f8f0019 DAC:
00000051
[ 127.944091] Process w1_bus_master1 (pid: 1022, stack limit = 0x9135699f)
[ 127.951171] Stack: (0xcf885f48 to 0xcf886000)
[ 127.955810] 5f40:
cf8fe000 00000000 cf884000 cf8fe090 000003e8 c05f8d00
[ 127.964477] 5f60:
dde5fc34 c05f9700 ddf1e100 ddf1e540 cf884000 cf8fe000 c05f9694 00000000
[ 127.973114] 5f80:
dde5fc34 c01499a4 00000000 ddf1e540 c0149874 00000000 00000000 00000000
[ 127.981781] 5fa0:
00000000 00000000 00000000 c01010e8 00000000 00000000 00000000 00000000
[ 127.990447] 5fc0:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 127.999114] 5fe0:
00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 128.007781] [<
c05f9580>] (w1_search_process_cb) from [<
c05f9700>] (w1_process+0x6c/0x118)
[ 128.016479] [<
c05f9700>] (w1_process) from [<
c01499a4>] (kthread+0x130/0x148)
[ 128.024047] [<
c01499a4>] (kthread) from [<
c01010e8>] (ret_from_fork+0x14/0x2c)
[ 128.031677] Exception stack(0xcf885fb0 to 0xcf885ff8)
[ 128.037017] 5fa0:
00000000 00000000 00000000 00000000
[ 128.045684] 5fc0:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 128.054351] 5fe0:
00000000 00000000 00000000 00000000 00000013 00000000
[ 128.061340] Code: bad PC value
[ 128.064697] ---[ end trace
af066e33c0e14119 ]---
Cc: <stable@vger.kernel.org>
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>