From: Li Yang Date: Wed, 31 Oct 2007 11:27:55 +0000 (+0800) Subject: ata/sata_fsl: save irq in private data for irq unmapping X-Git-Tag: v2.6.24-rc2~48^2~20 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79b3edc97e31d7016c957af653cd3d459917dea0;p=linux-2.6 ata/sata_fsl: save irq in private data for irq unmapping Powerpc uses virtual irq which has to be unmapped. Signed-off-by: Li Yang Signed-off-by: Jeff Garzik --- diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c index 4c8c820166..f8d8614a51 100644 --- a/drivers/ata/sata_fsl.c +++ b/drivers/ata/sata_fsl.c @@ -265,6 +265,7 @@ struct sata_fsl_host_priv { void __iomem *hcr_base; void __iomem *ssr_base; void __iomem *csr_base; + int irq; }; static inline unsigned int sata_fsl_tag(unsigned int tag, @@ -1399,6 +1400,7 @@ static int sata_fsl_probe(struct of_device *ofdev, dev_printk(KERN_ERR, &ofdev->dev, "invalid irq from platform\n"); goto error_exit_with_cleanup; } + host_priv->irq = irq; /* allocate host structure */ host = ata_host_alloc_pinfo(&ofdev->dev, ppi, SATA_FSL_MAX_PORTS); @@ -1445,7 +1447,7 @@ static int sata_fsl_remove(struct of_device *ofdev) dev_set_drvdata(&ofdev->dev, NULL); - irq_dispose_mapping(host->irq); + irq_dispose_mapping(host_priv->irq); iounmap(host_priv->hcr_base); kfree(host_priv);