aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_mv.c
diff options
context:
space:
mode:
authorSaeed Bishara <saeed@marvell.com>2008-02-18 13:42:28 -0500
committerJeff Garzik <jeff@garzik.org>2008-02-20 12:20:46 -0500
commitf1cb0ea12fee23018ad1865bf789cbd463f13747 (patch)
tree0809e8fd543ecf8bbc3eaa285139d3a8180cb786 /drivers/ata/sata_mv.c
parent5d44b414daa8c1d8551aed6130d86d54175db43f (diff)
sata_mv: remove iounmap in mv_platform_remove and use devm_iomap
this will fix crash bug when doing rmmod to the driver, this is because the port_stop function get called later and it could access the device's registers. Signed-off-by: Saeed Bishara <saeed@marvell.com> Acked-by: Mark Lord <mlord@pobox.com> Acked-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/sata_mv.c')
-rw-r--r--drivers/ata/sata_mv.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index eb97dde28d47..6ebebde8454a 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -2947,7 +2947,8 @@ static int mv_platform_probe(struct platform_device *pdev)
2947 hpriv->n_ports = n_ports; 2947 hpriv->n_ports = n_ports;
2948 2948
2949 host->iomap = NULL; 2949 host->iomap = NULL;
2950 hpriv->base = ioremap(res->start, res->end - res->start + 1); 2950 hpriv->base = devm_ioremap(&pdev->dev, res->start,
2951 res->end - res->start + 1);
2951 hpriv->base -= MV_SATAHC0_REG_BASE; 2952 hpriv->base -= MV_SATAHC0_REG_BASE;
2952 2953
2953 rc = mv_create_dma_pools(hpriv, &pdev->dev); 2954 rc = mv_create_dma_pools(hpriv, &pdev->dev);
@@ -2979,11 +2980,8 @@ static int __devexit mv_platform_remove(struct platform_device *pdev)
2979{ 2980{
2980 struct device *dev = &pdev->dev; 2981 struct device *dev = &pdev->dev;
2981 struct ata_host *host = dev_get_drvdata(dev); 2982 struct ata_host *host = dev_get_drvdata(dev);
2982 struct mv_host_priv *hpriv = host->private_data;
2983 void __iomem *base = hpriv->base;
2984 2983
2985 ata_host_detach(host); 2984 ata_host_detach(host);
2986 iounmap(base);
2987 return 0; 2985 return 0;
2988} 2986}
2989 2987