On Thu, Oct 2, 2014 at 8:56 AM, Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> wrote:
Oak scsi doesn't use any IRQ, but it sets irq = IRQ_NONE rather than SCSI_IRQ_NONE. Problem is, the core NCR5380 driver expects SCSI_IRQ_NONE if it is to issue IDENTIFY commands that prevent target disconnection. Other drivers, when they can't get an IRQ or can't use one, will set host->irq = SCSI_IRQ_NONE (that is, 255). But when they exit they will attempt to free IRQ 255 which was never requested. Fix these bugs by using IRQ_NONE in place of SCSI_IRQ_NONE. This means IRQ 0 is no longer probed by ISA drivers but I don't think this matters.
IRQ_NONE is part of enum irqreturn. I guess you meant NO_IRQ? But NO_IRQ is deprecated, and not available on all architectures. The recommended way is to just use 0, like in "if (instance->irq) ...". Note that some drivers do #ifndef NO_IRQ #define NO_IRQ (-1) #endif and others do #ifndef NO_IRQ #define NO_IRQ 0 #endif Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html