aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-09-25 21:56:33 -0400
committerJeff Garzik <jeff@garzik.org>2006-09-25 21:56:33 -0400
commit29da9f6d9cc3685ae7f6c8b817f6ed8864c78a4c (patch)
tree3c99d228ea364fb9c85f50227a49aa8264589ede
parentc32a8fd7cb33f30bcd855188dc8e243b144c5cee (diff)
[libata] Fix oops introduced in non-uniform port handling fix
Noticed by several people. Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/ata/sata_nv.c6
-rw-r--r--drivers/ata/sata_sis.c6
-rw-r--r--drivers/ata/sata_uli.c6
-rw-r--r--drivers/ata/sata_via.c7
4 files changed, 13 insertions, 12 deletions
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index 27c22feebf30..8cd730fe5dd3 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -484,7 +484,7 @@ static void nv_error_handler(struct ata_port *ap)
484static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) 484static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
485{ 485{
486 static int printed_version = 0; 486 static int printed_version = 0;
487 struct ata_port_info *ppi; 487 struct ata_port_info *ppi[2];
488 struct ata_probe_ent *probe_ent; 488 struct ata_probe_ent *probe_ent;
489 int pci_dev_busy = 0; 489 int pci_dev_busy = 0;
490 int rc; 490 int rc;
@@ -520,8 +520,8 @@ static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
520 520
521 rc = -ENOMEM; 521 rc = -ENOMEM;
522 522
523 ppi = &nv_port_info[ent->driver_data]; 523 ppi[0] = ppi[1] = &nv_port_info[ent->driver_data];
524 probe_ent = ata_pci_init_native_mode(pdev, &ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY); 524 probe_ent = ata_pci_init_native_mode(pdev, ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY);
525 if (!probe_ent) 525 if (!probe_ent)
526 goto err_out_regions; 526 goto err_out_regions;
527 527
diff --git a/drivers/ata/sata_sis.c b/drivers/ata/sata_sis.c
index 9b17375d8056..18d49fff8dc4 100644
--- a/drivers/ata/sata_sis.c
+++ b/drivers/ata/sata_sis.c
@@ -240,7 +240,7 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
240 struct ata_probe_ent *probe_ent = NULL; 240 struct ata_probe_ent *probe_ent = NULL;
241 int rc; 241 int rc;
242 u32 genctl; 242 u32 genctl;
243 struct ata_port_info *ppi; 243 struct ata_port_info *ppi[2];
244 int pci_dev_busy = 0; 244 int pci_dev_busy = 0;
245 u8 pmr; 245 u8 pmr;
246 u8 port2_start; 246 u8 port2_start;
@@ -265,8 +265,8 @@ static int sis_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
265 if (rc) 265 if (rc)
266 goto err_out_regions; 266 goto err_out_regions;
267 267
268 ppi = &sis_port_info; 268 ppi[0] = ppi[1] = &sis_port_info;
269 probe_ent = ata_pci_init_native_mode(pdev, &ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY); 269 probe_ent = ata_pci_init_native_mode(pdev, ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY);
270 if (!probe_ent) { 270 if (!probe_ent) {
271 rc = -ENOMEM; 271 rc = -ENOMEM;
272 goto err_out_regions; 272 goto err_out_regions;
diff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c
index 8fc6e800011a..dd76f37be182 100644
--- a/drivers/ata/sata_uli.c
+++ b/drivers/ata/sata_uli.c
@@ -185,7 +185,7 @@ static int uli_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
185{ 185{
186 static int printed_version; 186 static int printed_version;
187 struct ata_probe_ent *probe_ent; 187 struct ata_probe_ent *probe_ent;
188 struct ata_port_info *ppi; 188 struct ata_port_info *ppi[2];
189 int rc; 189 int rc;
190 unsigned int board_idx = (unsigned int) ent->driver_data; 190 unsigned int board_idx = (unsigned int) ent->driver_data;
191 int pci_dev_busy = 0; 191 int pci_dev_busy = 0;
@@ -211,8 +211,8 @@ static int uli_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
211 if (rc) 211 if (rc)
212 goto err_out_regions; 212 goto err_out_regions;
213 213
214 ppi = &uli_port_info; 214 ppi[0] = ppi[1] = &uli_port_info;
215 probe_ent = ata_pci_init_native_mode(pdev, &ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY); 215 probe_ent = ata_pci_init_native_mode(pdev, ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY);
216 if (!probe_ent) { 216 if (!probe_ent) {
217 rc = -ENOMEM; 217 rc = -ENOMEM;
218 goto err_out_regions; 218 goto err_out_regions;
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index 7f087aef99de..a72a2389a11c 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -318,9 +318,10 @@ static void vt6421_init_addrs(struct ata_probe_ent *probe_ent,
318static struct ata_probe_ent *vt6420_init_probe_ent(struct pci_dev *pdev) 318static struct ata_probe_ent *vt6420_init_probe_ent(struct pci_dev *pdev)
319{ 319{
320 struct ata_probe_ent *probe_ent; 320 struct ata_probe_ent *probe_ent;
321 struct ata_port_info *ppi = &vt6420_port_info; 321 struct ata_port_info *ppi[2];
322 322
323 probe_ent = ata_pci_init_native_mode(pdev, &ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY); 323 ppi[0] = ppi[1] = &vt6420_port_info;
324 probe_ent = ata_pci_init_native_mode(pdev, ppi, ATA_PORT_PRIMARY | ATA_PORT_SECONDARY);
324 if (!probe_ent) 325 if (!probe_ent)
325 return NULL; 326 return NULL;
326 327