diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:19:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:19:33 -0400 |
commit | df3d80f5a5c74168be42788364d13cf6c83c7b9c (patch) | |
tree | 892a964c2fd28d028f2fb7471e8543d3f4006a58 /drivers/scsi/aic94xx | |
parent | 3d06f7a5f74a813cee817c4b30b5e6f0398da0be (diff) | |
parent | c8e91b0a8fc8493e3bf3efcb3c8f866e9453cf1c (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (207 commits)
[SCSI] gdth: fix CONFIG_ISA build failure
[SCSI] esp_scsi: remove __dev{init,exit}
[SCSI] gdth: !use_sg cleanup and use of scsi accessors
[SCSI] gdth: Move members from SCp to gdth_cmndinfo, stage 2
[SCSI] gdth: Setup proper per-command private data
[SCSI] gdth: Remove gdth_ctr_tab[]
[SCSI] gdth: switch to modern scsi host registration
[SCSI] gdth: gdth_interrupt() gdth_get_status() & gdth_wait() fixes
[SCSI] gdth: clean up host private data
[SCSI] gdth: Remove virt hosts
[SCSI] gdth: Reorder scsi_host_template intitializers
[SCSI] gdth: kill gdth_{read,write}[bwl] wrappers
[SCSI] gdth: Remove 2.4.x support, in-kernel changelog
[SCSI] gdth: split out pci probing
[SCSI] gdth: split out eisa probing
[SCSI] gdth: split out isa probing
gdth: Make one abuse of scsi_cmnd less obvious
[SCSI] NCR5380: Use scsi_eh API for REQUEST_SENSE invocation
[SCSI] usb storage: use scsi_eh API in REQUEST_SENSE execution
[SCSI] scsi_error: Refactoring scsi_error to facilitate in synchronous REQUEST_SENSE
...
Diffstat (limited to 'drivers/scsi/aic94xx')
-rw-r--r-- | drivers/scsi/aic94xx/aic94xx_hwi.h | 12 | ||||
-rw-r--r-- | drivers/scsi/aic94xx/aic94xx_init.c | 42 | ||||
-rw-r--r-- | drivers/scsi/aic94xx/aic94xx_task.c | 2 |
3 files changed, 19 insertions, 37 deletions
diff --git a/drivers/scsi/aic94xx/aic94xx_hwi.h b/drivers/scsi/aic94xx/aic94xx_hwi.h index c6c3d18222fa..491e5d8a98bc 100644 --- a/drivers/scsi/aic94xx/aic94xx_hwi.h +++ b/drivers/scsi/aic94xx/aic94xx_hwi.h | |||
@@ -40,18 +40,6 @@ | |||
40 | #define ASD_MAX_PHYS 8 | 40 | #define ASD_MAX_PHYS 8 |
41 | #define ASD_PCBA_SN_SIZE 12 | 41 | #define ASD_PCBA_SN_SIZE 12 |
42 | 42 | ||
43 | /* Those are to be further named properly, the "RAZORx" part, and | ||
44 | * subsequently included in include/linux/pci_ids.h. | ||
45 | */ | ||
46 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR10 0x410 | ||
47 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR12 0x412 | ||
48 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR1E 0x41E | ||
49 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR1F 0x41F | ||
50 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR30 0x430 | ||
51 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR32 0x432 | ||
52 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR3E 0x43E | ||
53 | #define PCI_DEVICE_ID_ADAPTEC2_RAZOR3F 0x43F | ||
54 | |||
55 | struct asd_ha_addrspace { | 43 | struct asd_ha_addrspace { |
56 | void __iomem *addr; | 44 | void __iomem *addr; |
57 | unsigned long start; /* pci resource start */ | 45 | unsigned long start; /* pci resource start */ |
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 | ||
diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c index ab13824df856..f2b23e01401a 100644 --- a/drivers/scsi/aic94xx/aic94xx_task.c +++ b/drivers/scsi/aic94xx/aic94xx_task.c | |||
@@ -207,7 +207,7 @@ static void asd_get_response_tasklet(struct asd_ascb *ascb, | |||
207 | "stat(0x%x) is not CHECK_CONDITION" | 207 | "stat(0x%x) is not CHECK_CONDITION" |
208 | "\n", | 208 | "\n", |
209 | SAS_ADDR(task->dev->sas_addr), | 209 | SAS_ADDR(task->dev->sas_addr), |
210 | ts->stat); | 210 | iu->status); |
211 | } | 211 | } |
212 | } | 212 | } |
213 | } else { | 213 | } else { |