diff options
Diffstat (limited to 'drivers/scsi/aic94xx/aic94xx_init.c')
-rw-r--r-- | drivers/scsi/aic94xx/aic94xx_init.c | 42 |
1 files changed, 18 insertions, 24 deletions
diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c index 63bcde246447..b70d6e7f96e9 100644 --- a/drivers/scsi/aic94xx/aic94xx_init.c +++ b/drivers/scsi/aic94xx/aic94xx_init.c | |||
@@ -583,7 +583,7 @@ static int __devinit asd_pci_probe(struct pci_dev *dev, | |||
583 | asd_ha = kzalloc(sizeof(*asd_ha), GFP_KERNEL); | 583 | asd_ha = kzalloc(sizeof(*asd_ha), GFP_KERNEL); |
584 | if (!asd_ha) { | 584 | if (!asd_ha) { |
585 | asd_printk("out of memory\n"); | 585 | asd_printk("out of memory\n"); |
586 | goto Err; | 586 | goto Err_put; |
587 | } | 587 | } |
588 | asd_ha->pcidev = dev; | 588 | asd_ha->pcidev = dev; |
589 | asd_ha->sas_ha.dev = &asd_ha->pcidev->dev; | 589 | asd_ha->sas_ha.dev = &asd_ha->pcidev->dev; |
@@ -600,14 +600,12 @@ static int __devinit asd_pci_probe(struct pci_dev *dev, | |||
600 | shost->max_cmd_len = 16; | 600 | shost->max_cmd_len = 16; |
601 | 601 | ||
602 | err = scsi_add_host(shost, &dev->dev); | 602 | err = scsi_add_host(shost, &dev->dev); |
603 | if (err) { | 603 | if (err) |
604 | scsi_host_put(shost); | ||
605 | goto Err_free; | 604 | goto Err_free; |
606 | } | ||
607 | 605 | ||
608 | err = asd_dev->setup(asd_ha); | 606 | err = asd_dev->setup(asd_ha); |
609 | if (err) | 607 | if (err) |
610 | goto Err_free; | 608 | goto Err_remove; |
611 | 609 | ||
612 | err = -ENODEV; | 610 | err = -ENODEV; |
613 | if (!pci_set_dma_mask(dev, DMA_64BIT_MASK) | 611 | if (!pci_set_dma_mask(dev, DMA_64BIT_MASK) |
@@ -618,14 +616,14 @@ static int __devinit asd_pci_probe(struct pci_dev *dev, | |||
618 | ; | 616 | ; |
619 | else { | 617 | else { |
620 | asd_printk("no suitable DMA mask for %s\n", pci_name(dev)); | 618 | asd_printk("no suitable DMA mask for %s\n", pci_name(dev)); |
621 | goto Err_free; | 619 | goto Err_remove; |
622 | } | 620 | } |
623 | 621 | ||
624 | pci_set_drvdata(dev, asd_ha); | 622 | pci_set_drvdata(dev, asd_ha); |
625 | 623 | ||
626 | err = asd_map_ha(asd_ha); | 624 | err = asd_map_ha(asd_ha); |
627 | if (err) | 625 | if (err) |
628 | goto Err_free; | 626 | goto Err_remove; |
629 | 627 | ||
630 | err = asd_create_ha_caches(asd_ha); | 628 | err = asd_create_ha_caches(asd_ha); |
631 | if (err) | 629 | if (err) |
@@ -692,9 +690,12 @@ Err_free_cache: | |||
692 | asd_destroy_ha_caches(asd_ha); | 690 | asd_destroy_ha_caches(asd_ha); |
693 | Err_unmap: | 691 | Err_unmap: |
694 | asd_unmap_ha(asd_ha); | 692 | asd_unmap_ha(asd_ha); |
693 | Err_remove: | ||
694 | scsi_remove_host(shost); | ||
695 | Err_free: | 695 | Err_free: |
696 | kfree(asd_ha); | 696 | kfree(asd_ha); |
697 | scsi_remove_host(shost); | 697 | Err_put: |
698 | scsi_host_put(shost); | ||
698 | Err: | 699 | Err: |
699 | pci_disable_device(dev); | 700 | pci_disable_device(dev); |
700 | return err; | 701 | return err; |
@@ -829,22 +830,15 @@ static struct sas_domain_function_template aic94xx_transport_functions = { | |||
829 | }; | 830 | }; |
830 | 831 | ||
831 | static const struct pci_device_id aic94xx_pci_table[] __devinitdata = { | 832 | static const struct pci_device_id aic94xx_pci_table[] __devinitdata = { |
832 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR10), | 833 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x410),0, 0, 1}, |
833 | 0, 0, 1}, | 834 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x412),0, 0, 1}, |
834 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR12), | 835 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x416),0, 0, 1}, |
835 | 0, 0, 1}, | 836 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x41E),0, 0, 1}, |
836 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR1E), | 837 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x41F),0, 0, 1}, |
837 | 0, 0, 1}, | 838 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x430),0, 0, 2}, |
838 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR1F), | 839 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x432),0, 0, 2}, |
839 | 0, 0, 1}, | 840 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x43E),0, 0, 2}, |
840 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR30), | 841 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x43F),0, 0, 2}, |
841 | 0, 0, 2}, | ||
842 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR32), | ||
843 | 0, 0, 2}, | ||
844 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR3E), | ||
845 | 0, 0, 2}, | ||
846 | {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, PCI_DEVICE_ID_ADAPTEC2_RAZOR3F), | ||
847 | 0, 0, 2}, | ||
848 | {} | 842 | {} |
849 | }; | 843 | }; |
850 | 844 | ||