提交 e005f01d 编写于 作者: J Jeff Garzik

[libata ahci] minor remove/unplug path cleanup

Don't bother calling a hook, to call our own module, to call a helper
than simply calls ionumap().

If you unroll all that convolution, you get a simple kfree()+iounmap()
pair of calls.
上级 1fdab81e
...@@ -189,7 +189,6 @@ static void ahci_irq_clear(struct ata_port *ap); ...@@ -189,7 +189,6 @@ static void ahci_irq_clear(struct ata_port *ap);
static void ahci_eng_timeout(struct ata_port *ap); static void ahci_eng_timeout(struct ata_port *ap);
static int ahci_port_start(struct ata_port *ap); static int ahci_port_start(struct ata_port *ap);
static void ahci_port_stop(struct ata_port *ap); static void ahci_port_stop(struct ata_port *ap);
static void ahci_host_stop(struct ata_host_set *host_set);
static void ahci_tf_read(struct ata_port *ap, struct ata_taskfile *tf); static void ahci_tf_read(struct ata_port *ap, struct ata_taskfile *tf);
static void ahci_qc_prep(struct ata_queued_cmd *qc); static void ahci_qc_prep(struct ata_queued_cmd *qc);
static u8 ahci_check_status(struct ata_port *ap); static u8 ahci_check_status(struct ata_port *ap);
...@@ -242,7 +241,6 @@ static struct ata_port_operations ahci_ops = { ...@@ -242,7 +241,6 @@ static struct ata_port_operations ahci_ops = {
.port_start = ahci_port_start, .port_start = ahci_port_start,
.port_stop = ahci_port_stop, .port_stop = ahci_port_stop,
.host_stop = ahci_host_stop,
}; };
static struct ata_port_info ahci_port_info[] = { static struct ata_port_info ahci_port_info[] = {
...@@ -301,14 +299,6 @@ static inline void *ahci_port_base (void *base, unsigned int port) ...@@ -301,14 +299,6 @@ static inline void *ahci_port_base (void *base, unsigned int port)
return (void *) ahci_port_base_ul((unsigned long)base, port); return (void *) ahci_port_base_ul((unsigned long)base, port);
} }
static void ahci_host_stop(struct ata_host_set *host_set)
{
struct ahci_host_priv *hpriv = host_set->private_data;
kfree(hpriv);
ata_host_stop(host_set);
}
static int ahci_port_start(struct ata_port *ap) static int ahci_port_start(struct ata_port *ap)
{ {
struct device *dev = ap->host_set->dev; struct device *dev = ap->host_set->dev;
...@@ -1089,7 +1079,8 @@ static void ahci_remove_one (struct pci_dev *pdev) ...@@ -1089,7 +1079,8 @@ static void ahci_remove_one (struct pci_dev *pdev)
scsi_host_put(ap->host); scsi_host_put(ap->host);
} }
host_set->ops->host_stop(host_set); kfree(hpriv);
iounmap(host_set->mmio_base);
kfree(host_set); kfree(host_set);
if (have_msi) if (have_msi)
...@@ -1106,7 +1097,6 @@ static int __init ahci_init(void) ...@@ -1106,7 +1097,6 @@ static int __init ahci_init(void)
return pci_module_init(&ahci_pci_driver); return pci_module_init(&ahci_pci_driver);
} }
static void __exit ahci_exit(void) static void __exit ahci_exit(void)
{ {
pci_unregister_driver(&ahci_pci_driver); pci_unregister_driver(&ahci_pci_driver);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册