From: Wei Yongjun <weiyongjun1@xxxxxxxxxx> free_irq() expects the same device identity that was passed to corresponding request_irq(), otherwise the IRQ is not freed. Signed-off-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx> Signed-off-by: Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> --- Rebased on jejb-scsi/misc. diff --git a/drivers/scsi/mac_esp.c b/drivers/scsi/mac_esp.c index 26c67c4..999699d 100644 --- a/drivers/scsi/mac_esp.c +++ b/drivers/scsi/mac_esp.c @@ -587,7 +587,7 @@ static int esp_mac_probe(struct platform_device *dev) esp_chips[dev->id] = NULL; if (esp_chips[!dev->id] == NULL) { spin_unlock(&esp_chips_lock); - free_irq(host->irq, esp); + free_irq(host->irq, NULL); } else spin_unlock(&esp_chips_lock); fail_free_priv: