aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/libata-bmdma.c15
-rw-r--r--drivers/scsi/libata-core.c4
2 files changed, 17 insertions, 2 deletions
diff --git a/drivers/scsi/libata-bmdma.c b/drivers/scsi/libata-bmdma.c
index 4bc05371737c..13fab97c840e 100644
--- a/drivers/scsi/libata-bmdma.c
+++ b/drivers/scsi/libata-bmdma.c
@@ -1076,10 +1076,21 @@ int ata_pci_init_one (struct pci_dev *pdev, struct ata_port_info **port_info,
1076 1076
1077 /* FIXME: check ata_device_add return */ 1077 /* FIXME: check ata_device_add return */
1078 if (legacy_mode) { 1078 if (legacy_mode) {
1079 if (legacy_mode & (1 << 0)) 1079 struct device *dev = &pdev->dev;
1080 struct ata_host_set *host_set = NULL;
1081
1082 if (legacy_mode & (1 << 0)) {
1080 ata_device_add(probe_ent); 1083 ata_device_add(probe_ent);
1081 if (legacy_mode & (1 << 1)) 1084 host_set = dev_get_drvdata(dev);
1085 }
1086
1087 if (legacy_mode & (1 << 1)) {
1082 ata_device_add(probe_ent2); 1088 ata_device_add(probe_ent2);
1089 if (host_set) {
1090 host_set->next = dev_get_drvdata(dev);
1091 dev_set_drvdata(dev, host_set);
1092 }
1093 }
1083 } else 1094 } else
1084 ata_device_add(probe_ent); 1095 ata_device_add(probe_ent);
1085 1096
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 014855e5a43a..d73cb3672d6a 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -5621,8 +5621,12 @@ void ata_pci_remove_one (struct pci_dev *pdev)
5621{ 5621{
5622 struct device *dev = pci_dev_to_dev(pdev); 5622 struct device *dev = pci_dev_to_dev(pdev);
5623 struct ata_host_set *host_set = dev_get_drvdata(dev); 5623 struct ata_host_set *host_set = dev_get_drvdata(dev);
5624 struct ata_host_set *host_set2 = host_set->next;
5624 5625
5625 ata_host_set_remove(host_set); 5626 ata_host_set_remove(host_set);
5627 if (host_set2)
5628 ata_host_set_remove(host_set2);
5629
5626 pci_release_regions(pdev); 5630 pci_release_regions(pdev);
5627 pci_disable_device(pdev); 5631 pci_disable_device(pdev);
5628 dev_set_drvdata(dev, NULL); 5632 dev_set_drvdata(dev, NULL);