[lkml]   [2011]   [Feb]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[051/115] rapidio: fix hang on RapidIO doorbell queue full condition
    2.6.32-longterm review patch.  If anyone has any objections, please let us know.


    From: Thomas Taranowski <>

    commit 12a4dc43911785f51a596f771ae0701b18d436f1 upstream.

    In fsl_rio_dbell_handler() the code currently simply acknowledges the QFI
    queue full interrupt, but does nothing to resolve the queue full
    condition. Instead, it jumps to the end of the isr. When a queue full
    condition occurs, the isr is then re-entered immediately and continually,

    The fix is to just fall through and read out current doorbell entries.

    Signed-off-by: Thomas Taranowski <>
    Cc: Alexandre Bounine <>
    Cc: Kumar Gala <>
    Cc: Matt Porter <>
    Cc: Li Yang <>
    Cc: Thomas Moll <>
    Cc: Micha Nelissen <>
    Cc: Benjamin Herrenschmidt <>
    Cc: Grant Likely <>
    Signed-off-by: Andrew Morton <>
    Signed-off-by: Linus Torvalds <>
    Signed-off-by: Greg Kroah-Hartman <>

    arch/powerpc/sysdev/fsl_rio.c | 1 -
    1 file changed, 1 deletion(-)

    --- a/arch/powerpc/sysdev/fsl_rio.c
    +++ b/arch/powerpc/sysdev/fsl_rio.c
    @@ -832,7 +832,6 @@ fsl_rio_dbell_handler(int irq, void *dev
    if (dsr & DOORBELL_DSR_QFI) {
    pr_info("RIO: doorbell queue full\n");
    out_be32(&priv->msg_regs->dsr, DOORBELL_DSR_QFI);
    - goto out;

    /* XXX Need to check/dispatch until queue empty */

     \ /
      Last update: 2011-02-16 03:09    [W:0.019 / U:6.620 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site