• Murali Karicheri's avatar
    spi/davinci: use request_threaded_irq() to fix deadlock · 32310aaf
    Murali Karicheri authored
    With RT pre-empt patch applied to Linux kernel, the irq handler will be
    force converted to an irq thread. spi driver can get back to back messages
    from the slave device. In such cases, IRQ thread doesn't get a chance to
    run to read the slave data. Hence the irq handler must be run in hard irq
    context to read/write data from slave device. Otherwise, the kernel goes
    into a deadlock. This patch fixes this issue when PREEMPT_RT_FULL is
    enabled in the kernel. A dummy thread function is provided to satisfy the
    request_threaded_irq() API. Passing a NULL for function also causes the
    irq handler to be executed in the thread context.
    Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
    Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
    32310aaf
spi-davinci.c 27.2 KB