The patch titled Blackfin SPI Driver: add timeout while waiting for SPIF in dma irq handler has been removed from the -mm tree. Its filename was blackfin-spi-driver-add-timeout-while-waiting-for-spif-in-dma-irq-handler.patch This patch was dropped because it was merged into mainline or a subsystem tree The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: Blackfin SPI Driver: add timeout while waiting for SPIF in dma irq handler From: Mike Frysinger <vapier.adi@xxxxxxxxx> The "while" endless loop will cause the system hang if hardware error, so we add timeout control to make the system alive. Signed-off-by: Mike Frysinger <vapier.adi@xxxxxxxxx> Signed-off-by: Bryan Wu <cooloney@xxxxxxxxxx> Cc: David Brownell <david-b@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- drivers/spi/spi_bfin5xx.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff -puN drivers/spi/spi_bfin5xx.c~blackfin-spi-driver-add-timeout-while-waiting-for-spif-in-dma-irq-handler drivers/spi/spi_bfin5xx.c --- a/drivers/spi/spi_bfin5xx.c~blackfin-spi-driver-add-timeout-while-waiting-for-spif-in-dma-irq-handler +++ a/drivers/spi/spi_bfin5xx.c @@ -557,6 +557,7 @@ static irqreturn_t dma_irq_handler(int i struct driver_data *drv_data = dev_id; struct chip_data *chip = drv_data->cur_chip; struct spi_message *msg = drv_data->cur_msg; + unsigned long timeout; unsigned short dmastat = get_dma_curr_irqstat(drv_data->dma_channel); u16 spistat = read_STAT(drv_data); @@ -582,8 +583,17 @@ static irqreturn_t dma_irq_handler(int i cpu_relax(); } + dev_dbg(&drv_data->pdev->dev, + "in dma_irq_handler dmastat:0x%x spistat:0x%x\n", + dmastat, read_STAT(drv_data)); + + timeout = jiffies + HZ; while (!(read_STAT(drv_data) & SPIF)) - cpu_relax(); + if (!time_before(jiffies, timeout)) { + dev_warn(&drv_data->pdev->dev, "timeout waiting for SPIF"); + break; + } else + cpu_relax(); if ((dmastat & DMA_ERR) && (spistat & RBSY)) { msg->state = ERROR_STATE; _ Patches currently in -mm which might be from vapier.adi@xxxxxxxxx are origin.patch linux-next.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html