diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-09-25 21:56:33 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-09-25 21:56:33 -0400 |
commit | 29da9f6d9cc3685ae7f6c8b817f6ed8864c78a4c (patch) | |
tree | 3c99d228ea364fb9c85f50227a49aa8264589ede /drivers/ata | |
parent | c32a8fd7cb33f30bcd855188dc8e243b144c5cee (diff) |
[libata] Fix oops introduced in non-uniform port handling fix
Noticed by several people.
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/sata_nv.c | 6 | ||||
-rw-r--r-- | drivers/ata/sata_sis.c | 6 | ||||
-rw-r--r-- | drivers/ata/sata_uli.c | 6 | ||||
-rw-r--r-- | drivers/ata/sata_via.c | 7 |
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) | |||
484 | static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) | 484 | static 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, | |||
318 | static struct ata_probe_ent *vt6420_init_probe_ent(struct pci_dev *pdev) | 318 | static 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 | ||