• Vakul Garg's avatar
    crypto: caam - fix job ring cleanup code · 3862de1f
    Vakul Garg authored
    The job ring init function creates a platform device for each job ring.
    While the job ring is shutdown, e.g. while caam module removal, its
    platform device was not being removed. This leads to failure while
    reinsertion and then removal of caam module second time.
    
    The following kernel crash dump appears when caam module is reinserted
    and then removed again. This patch fixes it.
    
    root@p4080ds:~# rmmod caam.ko
    Unable to handle kernel paging request for data at address 0x00000008
    Faulting instruction address: 0xf94aca18
    Oops: Kernel access of bad area, sig: 11 [#1]
    SMP NR_CPUS=8 P4080 DS
    Modules linked in: caam(-) qoriq_dbg(O) [last unloaded: caam]
    NIP: f94aca18 LR: f94aca18 CTR: c029f950
    REGS: eac47d60 TRAP: 0300   Tainted: G           O  (3.8.4-rt2)
    MSR: 00029002 <CE,EE,ME>  CR: 22022484  XER: 20000000
    DEAR: 00000008, ESR: 00000000
    TASK = e49dfaf0[2110] 'rmmod' THREAD: eac46000 CPU: 1
    GPR00: f94ad3f4 eac47e10 e49dfaf0 00000000 00000005 ea2ac210 ffffffff 00000000
    GPR08: c286de68 e4977ce0 c029b1c0 00000001 c029f950 10029738 00000000 100e0000
    GPR16: 00000000 10023d00 1000cbdc 1000cb8c 1000cbb8 00000000 c07dfecc 00000000
    GPR24: c07e0000 00000000 1000cbd8 f94e0000 ffffffff 00000000 ea53cd40 00000000
    NIP [f94aca18] caam_reset_hw_jr+0x18/0x1c0 [caam]
    LR [f94aca18] caam_reset_hw_jr+0x18/0x1c0 [caam]
    Call Trace:
    [eac47e10] [eac47e30] 0xeac47e30 (unreliable)
    [eac47e20] [f94ad3f4] caam_jr_shutdown+0x34/0x220 [caam]
    [eac47e60] [f94ac0e4] caam_remove+0x54/0xb0 [caam]
    [eac47e80] [c029fb38] __device_release_driver+0x68/0x120
    [eac47e90] [c02a05c8] driver_detach+0xd8/0xe0
    [eac47eb0] [c029f8e0] bus_remove_driver+0xa0/0x110
    [eac47ed0] [c00768e4] sys_delete_module+0x144/0x270
    [eac47f40] [c000e2f0] ret_from_syscall+0x0/0x3c
    Signed-off-by: default avatarVakul Garg <vakul@freescale.com>
    Signed-off-by: default avatarBharat Bhushan <bharat.bhushan@freescale.com>
    Reviewed-by: default avatarHoria Geanta <horia.geanta@freescale.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    3862de1f
intern.h 3.83 KB