]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/platform/goldfish/pdev_bus.c
goldfish: Sanitize the broken interrupt handler
[linux-beck.git] / drivers / platform / goldfish / pdev_bus.c
index 1f52462f4cdd4b7e1431723ca37b32c267da68a1..dd9ea463c2a4a547c2d26e32ed61c5990832a9e5 100644 (file)
@@ -157,23 +157,26 @@ static int goldfish_new_pdev(void)
 static irqreturn_t goldfish_pdev_bus_interrupt(int irq, void *dev_id)
 {
        irqreturn_t ret = IRQ_NONE;
+
        while (1) {
                u32 op = readl(pdev_bus_base + PDEV_BUS_OP);
-               switch (op) {
-               case PDEV_BUS_OP_DONE:
-                       return IRQ_NONE;
 
+               switch (op) {
                case PDEV_BUS_OP_REMOVE_DEV:
                        goldfish_pdev_remove();
+                       ret = IRQ_HANDLED;
                        break;
 
                case PDEV_BUS_OP_ADD_DEV:
                        goldfish_new_pdev();
+                       ret = IRQ_HANDLED;
                        break;
+
+               case PDEV_BUS_OP_DONE:
+               default:
+                       return ret;
                }
-               ret = IRQ_HANDLED;
        }
-       return ret;
 }
 
 static int goldfish_pdev_bus_probe(struct platform_device *pdev)