mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-11 21:14:07 +08:00
[media] sir_ir: infinite loop in interrupt handler
Since this driver does no detection of hardware, it might be used with a non-sir port. Escape out if we are spinning. Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
dd8245f445
commit
592ddc9f7d
@ -183,9 +183,15 @@ static irqreturn_t sir_interrupt(int irq, void *dev_id)
|
||||
static unsigned long delt;
|
||||
unsigned long deltintr;
|
||||
unsigned long flags;
|
||||
int counter = 0;
|
||||
int iir, lsr;
|
||||
|
||||
while ((iir = inb(io + UART_IIR) & UART_IIR_ID)) {
|
||||
if (++counter > 256) {
|
||||
dev_err(&sir_ir_dev->dev, "Trapped in interrupt");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (iir & UART_IIR_ID) { /* FIXME toto treba preriedit */
|
||||
case UART_IIR_MSI:
|
||||
(void)inb(io + UART_MSR);
|
||||
|
Loading…
Reference in New Issue
Block a user