On Tue, 11 Jul 2017, Sebastian Reichel wrote:
> There you go (this is basically 9967468c0a10). The referenced
> cpcap is a PMIC, that uses one of OMAP's GPIOs to generate
> interrupts and (among other things) provides an interrupt
> controller.
> 
> [    1.328521] cpcap-core spi1.0: CPCAP vendor: ST rev: 2.10 (1a)
> [    1.336334] Unhandled fault: imprecise external abort (0x1406) at 
> 0x00000000
> [    1.343536] pgd = c0004000
> [    1.346282] [00000000] *pgd=00000000
> [    1.349914] Internal error: : 1406 [#1] SMP ARM
> [    1.354492] Modules linked in:
> [    1.357574] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 
> 4.12.0-10625-gcb473a1c6f03 #531
> [    1.365447] Hardware name: Generic OMAP4 (Flattened Device Tree)
> [    1.371520] task: ee8aae00 task.stack: ee8ac000
> [    1.376098] PC is at do_raw_spin_unlock+0x58/0x120
> [    1.380920] LR is at _raw_spin_unlock_irqrestore+0x24/0x44
> [    1.386444] pc : [<c01a02d8>]    lr : [<c0afa6f4>]    psr: 60000093
> [    1.392761] sp : ee8adba0  ip : c10fe40c  fp : eea0ac10
> [    1.398040] r10: eea0ac00  r9 : c061f764  r8 : eea0ad04
> [    1.403289] r7 : 00000007  r6 : eea07e64  r5 : ffffe000  r4 : eea07e64
> [    1.409881] r3 : ffffffff  r2 : 00000000  r1 : ee8aae00  r0 : eea07e64
> [    1.416442] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment 
> none
> [    1.423736] Control: 10c5387d  Table: 8000404a  DAC: 00000051
> [    1.429534] Process swapper/0 (pid: 1, stack limit = 0xee8ac218)
> [    1.435577] Stack: (0xee8adba0 to 0xee8ae000)

> [    1.728546] [<c01a02d8>] (do_raw_spin_unlock) from [<c0afa6f4>] 
> (_raw_spin_unlock_irqrestore+0x24/0x44)
> [    1.738037] [<c0afa6f4>] (_raw_spin_unlock_irqrestore) from [<c051ce58>] 
> (omap_gpio_get_direction+0x38/0x44)
> [    1.747955] [<c051ce58>] (omap_gpio_get_direction) from [<c0515e90>] 
> (gpiochip_lock_as_irq+0x98/0xe4)
> [    1.757232] [<c0515e90>] (gpiochip_lock_as_irq) from [<c05163c0>] 
> (gpiochip_irq_reqres+0x2c/0x6c)
> [    1.766174] [<c05163c0>] (gpiochip_irq_reqres) from [<c01ac450>] 
> (__setup_irq+0x478/0x6ec)
> [    1.774536] [<c01ac450>] (__setup_irq) from [<c01ac81c>] 
> (request_threaded_irq+0xcc/0x14c)

So this crashes in do_raw_spin_unlock_irqrestore() !?! I just have to
wonder how the raw_spin_lock() succeeded. That does not make any sense.

Thanks,

        tglx



Reply via email to