From 94d7198543d6887dd718c319b7d3954acb692818 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Thu, 24 Jul 2008 22:53:25 +0200 Subject: [PATCH] --- yaml --- r: 105719 b: refs/heads/master c: fe3825808ad67af02bd826a0d2ca6831e947e80e h: refs/heads/master i: 105717: 809942f26ac0675d3d0b73596a5196dee413707b 105715: 0653e7a8ec82fdcb503fa84ae8c98d5e1e51695c 105711: 0b53cd7c9d436fd87dc0d7b93ac46b8a779aef36 v: v3 --- [refs] | 2 +- trunk/drivers/ide/pci/siimage.c | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 78362d9ec8dc..fc9b7dfa9899 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bc2c9a8025921972f0774859b8f19b324734e824 +refs/heads/master: fe3825808ad67af02bd826a0d2ca6831e947e80e diff --git a/trunk/drivers/ide/pci/siimage.c b/trunk/drivers/ide/pci/siimage.c index 1388ffa97644..f2e4dac9b719 100644 --- a/trunk/drivers/ide/pci/siimage.c +++ b/trunk/drivers/ide/pci/siimage.c @@ -800,6 +800,24 @@ static int __devinit siimage_init_one(struct pci_dev *dev, return rc; } +static void __devexit siimage_remove(struct pci_dev *dev) +{ + struct ide_host *host = pci_get_drvdata(dev); + void __iomem *ioaddr = host->host_priv; + + ide_pci_remove(dev); + + if (ioaddr) { + resource_size_t bar5 = pci_resource_start(dev, 5); + unsigned long barsize = pci_resource_len(dev, 5); + + iounmap(ioaddr); + release_mem_region(bar5, barsize); + } + + pci_disable_device(dev); +} + static const struct pci_device_id siimage_pci_tbl[] = { { PCI_VDEVICE(CMD, PCI_DEVICE_ID_SII_680), 0 }, #ifdef CONFIG_BLK_DEV_IDE_SATA @@ -814,6 +832,7 @@ static struct pci_driver driver = { .name = "SiI_IDE", .id_table = siimage_pci_tbl, .probe = siimage_init_one, + .remove = siimage_remove, }; static int __init siimage_ide_init(void) @@ -821,7 +840,13 @@ static int __init siimage_ide_init(void) return ide_pci_register_driver(&driver); } +static void __exit siimage_ide_exit(void) +{ + pci_unregister_driver(&driver); +} + module_init(siimage_ide_init); +module_exit(siimage_ide_exit); MODULE_AUTHOR("Andre Hedrick, Alan Cox"); MODULE_DESCRIPTION("PCI driver module for SiI IDE");