diff options
| author | Tony Luck <tony.luck@intel.com> | 2005-06-29 18:21:41 -0400 |
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2005-06-29 18:21:41 -0400 |
| commit | d18bfacff20f08aecf01bb971b110ca108eef3c7 (patch) | |
| tree | 255f862839c593c796e609328575b611e3f56cf3 /drivers/scsi | |
| parent | a68db763af9b676590c3fe9ec3f17bf18015eb2f (diff) | |
| parent | fd782a4a99d2d3e818b9465c427b10f7f027d7da (diff) | |
Auto merge with /home/aegl/GIT/linus
Diffstat (limited to 'drivers/scsi')
| -rw-r--r-- | drivers/scsi/3w-9xxx.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/3w-xxxx.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/ahci.c | 22 | ||||
| -rw-r--r-- | drivers/scsi/ipr.c | 10 | ||||
| -rw-r--r-- | drivers/scsi/libata-core.c | 6 | ||||
| -rw-r--r-- | drivers/scsi/megaraid.c | 8 | ||||
| -rw-r--r-- | drivers/scsi/scsi_lib.c | 2 |
7 files changed, 22 insertions, 42 deletions
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c index 34dbc37a79d4..bc6e4627c7a1 100644 --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c | |||
| @@ -1916,9 +1916,9 @@ static void __twa_shutdown(TW_Device_Extension *tw_dev) | |||
| 1916 | } /* End __twa_shutdown() */ | 1916 | } /* End __twa_shutdown() */ |
| 1917 | 1917 | ||
| 1918 | /* Wrapper for __twa_shutdown */ | 1918 | /* Wrapper for __twa_shutdown */ |
| 1919 | static void twa_shutdown(struct device *dev) | 1919 | static void twa_shutdown(struct pci_dev *pdev) |
| 1920 | { | 1920 | { |
| 1921 | struct Scsi_Host *host = pci_get_drvdata(to_pci_dev(dev)); | 1921 | struct Scsi_Host *host = pci_get_drvdata(pdev); |
| 1922 | TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; | 1922 | TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; |
| 1923 | 1923 | ||
| 1924 | __twa_shutdown(tw_dev); | 1924 | __twa_shutdown(tw_dev); |
| @@ -2140,9 +2140,7 @@ static struct pci_driver twa_driver = { | |||
| 2140 | .id_table = twa_pci_tbl, | 2140 | .id_table = twa_pci_tbl, |
| 2141 | .probe = twa_probe, | 2141 | .probe = twa_probe, |
| 2142 | .remove = twa_remove, | 2142 | .remove = twa_remove, |
| 2143 | .driver = { | 2143 | .shutdown = twa_shutdown |
| 2144 | .shutdown = twa_shutdown | ||
| 2145 | } | ||
| 2146 | }; | 2144 | }; |
| 2147 | 2145 | ||
| 2148 | /* This function is called on driver initialization */ | 2146 | /* This function is called on driver initialization */ |
diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index b6dc576da430..973c51fb0fe2 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c | |||
| @@ -2264,9 +2264,9 @@ static void __tw_shutdown(TW_Device_Extension *tw_dev) | |||
| 2264 | } /* End __tw_shutdown() */ | 2264 | } /* End __tw_shutdown() */ |
| 2265 | 2265 | ||
| 2266 | /* Wrapper for __tw_shutdown */ | 2266 | /* Wrapper for __tw_shutdown */ |
| 2267 | static void tw_shutdown(struct device *dev) | 2267 | static void tw_shutdown(struct pci_dev *pdev) |
| 2268 | { | 2268 | { |
| 2269 | struct Scsi_Host *host = pci_get_drvdata(to_pci_dev(dev)); | 2269 | struct Scsi_Host *host = pci_get_drvdata(pdev); |
| 2270 | TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; | 2270 | TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; |
| 2271 | 2271 | ||
| 2272 | __tw_shutdown(tw_dev); | 2272 | __tw_shutdown(tw_dev); |
| @@ -2451,9 +2451,7 @@ static struct pci_driver tw_driver = { | |||
| 2451 | .id_table = tw_pci_tbl, | 2451 | .id_table = tw_pci_tbl, |
| 2452 | .probe = tw_probe, | 2452 | .probe = tw_probe, |
| 2453 | .remove = tw_remove, | 2453 | .remove = tw_remove, |
| 2454 | .driver = { | 2454 | .shutdown = tw_shutdown, |
| 2455 | .shutdown = tw_shutdown | ||
| 2456 | } | ||
| 2457 | }; | 2455 | }; |
| 2458 | 2456 | ||
| 2459 | /* This function is called on driver initialization */ | 2457 | /* This function is called on driver initialization */ |
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index 9a547ca9c864..c5623694d10f 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c | |||
| @@ -304,26 +304,19 @@ static int ahci_port_start(struct ata_port *ap) | |||
| 304 | struct device *dev = ap->host_set->dev; | 304 | struct device *dev = ap->host_set->dev; |
| 305 | struct ahci_host_priv *hpriv = ap->host_set->private_data; | 305 | struct ahci_host_priv *hpriv = ap->host_set->private_data; |
| 306 | struct ahci_port_priv *pp; | 306 | struct ahci_port_priv *pp; |
| 307 | int rc; | ||
| 308 | void *mem, *mmio = ap->host_set->mmio_base; | 307 | void *mem, *mmio = ap->host_set->mmio_base; |
| 309 | void *port_mmio = ahci_port_base(mmio, ap->port_no); | 308 | void *port_mmio = ahci_port_base(mmio, ap->port_no); |
| 310 | dma_addr_t mem_dma; | 309 | dma_addr_t mem_dma; |
| 311 | 310 | ||
| 312 | rc = ata_port_start(ap); | ||
| 313 | if (rc) | ||
| 314 | return rc; | ||
| 315 | |||
| 316 | pp = kmalloc(sizeof(*pp), GFP_KERNEL); | 311 | pp = kmalloc(sizeof(*pp), GFP_KERNEL); |
| 317 | if (!pp) { | 312 | if (!pp) |
| 318 | rc = -ENOMEM; | 313 | return -ENOMEM; |
| 319 | goto err_out; | ||
| 320 | } | ||
| 321 | memset(pp, 0, sizeof(*pp)); | 314 | memset(pp, 0, sizeof(*pp)); |
| 322 | 315 | ||
| 323 | mem = dma_alloc_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, &mem_dma, GFP_KERNEL); | 316 | mem = dma_alloc_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, &mem_dma, GFP_KERNEL); |
| 324 | if (!mem) { | 317 | if (!mem) { |
| 325 | rc = -ENOMEM; | 318 | kfree(pp); |
| 326 | goto err_out_kfree; | 319 | return -ENOMEM; |
| 327 | } | 320 | } |
| 328 | memset(mem, 0, AHCI_PORT_PRIV_DMA_SZ); | 321 | memset(mem, 0, AHCI_PORT_PRIV_DMA_SZ); |
| 329 | 322 | ||
| @@ -373,12 +366,6 @@ static int ahci_port_start(struct ata_port *ap) | |||
| 373 | readl(port_mmio + PORT_CMD); /* flush */ | 366 | readl(port_mmio + PORT_CMD); /* flush */ |
| 374 | 367 | ||
| 375 | return 0; | 368 | return 0; |
| 376 | |||
| 377 | err_out_kfree: | ||
| 378 | kfree(pp); | ||
| 379 | err_out: | ||
| 380 | ata_port_stop(ap); | ||
| 381 | return rc; | ||
| 382 | } | 369 | } |
| 383 | 370 | ||
| 384 | 371 | ||
| @@ -404,7 +391,6 @@ static void ahci_port_stop(struct ata_port *ap) | |||
| 404 | dma_free_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, | 391 | dma_free_coherent(dev, AHCI_PORT_PRIV_DMA_SZ, |
| 405 | pp->cmd_slot, pp->cmd_slot_dma); | 392 | pp->cmd_slot, pp->cmd_slot_dma); |
| 406 | kfree(pp); | 393 | kfree(pp); |
| 407 | ata_port_stop(ap); | ||
| 408 | } | 394 | } |
| 409 | 395 | ||
| 410 | static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg_in) | 396 | static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg_in) |
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 80d022625c82..babd48363402 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
| @@ -6012,7 +6012,7 @@ static int __devinit ipr_probe(struct pci_dev *pdev, | |||
| 6012 | 6012 | ||
| 6013 | /** | 6013 | /** |
| 6014 | * ipr_shutdown - Shutdown handler. | 6014 | * ipr_shutdown - Shutdown handler. |
| 6015 | * @dev: device struct | 6015 | * @pdev: pci device struct |
| 6016 | * | 6016 | * |
| 6017 | * This function is invoked upon system shutdown/reboot. It will issue | 6017 | * This function is invoked upon system shutdown/reboot. It will issue |
| 6018 | * an adapter shutdown to the adapter to flush the write cache. | 6018 | * an adapter shutdown to the adapter to flush the write cache. |
| @@ -6020,9 +6020,9 @@ static int __devinit ipr_probe(struct pci_dev *pdev, | |||
| 6020 | * Return value: | 6020 | * Return value: |
| 6021 | * none | 6021 | * none |
| 6022 | **/ | 6022 | **/ |
| 6023 | static void ipr_shutdown(struct device *dev) | 6023 | static void ipr_shutdown(struct pci_dev *pdev) |
| 6024 | { | 6024 | { |
| 6025 | struct ipr_ioa_cfg *ioa_cfg = pci_get_drvdata(to_pci_dev(dev)); | 6025 | struct ipr_ioa_cfg *ioa_cfg = pci_get_drvdata(pdev); |
| 6026 | unsigned long lock_flags = 0; | 6026 | unsigned long lock_flags = 0; |
| 6027 | 6027 | ||
| 6028 | spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); | 6028 | spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); |
| @@ -6068,9 +6068,7 @@ static struct pci_driver ipr_driver = { | |||
| 6068 | .id_table = ipr_pci_table, | 6068 | .id_table = ipr_pci_table, |
| 6069 | .probe = ipr_probe, | 6069 | .probe = ipr_probe, |
| 6070 | .remove = ipr_remove, | 6070 | .remove = ipr_remove, |
| 6071 | .driver = { | 6071 | .shutdown = ipr_shutdown, |
| 6072 | .shutdown = ipr_shutdown, | ||
| 6073 | }, | ||
| 6074 | }; | 6072 | }; |
| 6075 | 6073 | ||
| 6076 | /** | 6074 | /** |
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 36b401fee1f1..cb535fa185b9 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
| @@ -1408,7 +1408,9 @@ void __sata_phy_reset(struct ata_port *ap) | |||
| 1408 | if (ap->flags & ATA_FLAG_SATA_RESET) { | 1408 | if (ap->flags & ATA_FLAG_SATA_RESET) { |
| 1409 | /* issue phy wake/reset */ | 1409 | /* issue phy wake/reset */ |
| 1410 | scr_write_flush(ap, SCR_CONTROL, 0x301); | 1410 | scr_write_flush(ap, SCR_CONTROL, 0x301); |
| 1411 | udelay(400); /* FIXME: a guess */ | 1411 | /* Couldn't find anything in SATA I/II specs, but |
| 1412 | * AHCI-1.1 10.4.2 says at least 1 ms. */ | ||
| 1413 | mdelay(1); | ||
| 1412 | } | 1414 | } |
| 1413 | scr_write_flush(ap, SCR_CONTROL, 0x300); /* phy wake/clear reset */ | 1415 | scr_write_flush(ap, SCR_CONTROL, 0x300); /* phy wake/clear reset */ |
| 1414 | 1416 | ||
| @@ -1920,6 +1922,7 @@ static const char * ata_dma_blacklist [] = { | |||
| 1920 | "HITACHI CDR-8335", | 1922 | "HITACHI CDR-8335", |
| 1921 | "HITACHI CDR-8435", | 1923 | "HITACHI CDR-8435", |
| 1922 | "Toshiba CD-ROM XM-6202B", | 1924 | "Toshiba CD-ROM XM-6202B", |
| 1925 | "TOSHIBA CD-ROM XM-1702BC", | ||
| 1923 | "CD-532E-A", | 1926 | "CD-532E-A", |
| 1924 | "E-IDE CD-ROM CR-840", | 1927 | "E-IDE CD-ROM CR-840", |
| 1925 | "CD-ROM Drive/F5A", | 1928 | "CD-ROM Drive/F5A", |
| @@ -1927,7 +1930,6 @@ static const char * ata_dma_blacklist [] = { | |||
| 1927 | "SAMSUNG CD-ROM SC-148C", | 1930 | "SAMSUNG CD-ROM SC-148C", |
| 1928 | "SAMSUNG CD-ROM SC", | 1931 | "SAMSUNG CD-ROM SC", |
| 1929 | "SanDisk SDP3B-64", | 1932 | "SanDisk SDP3B-64", |
| 1930 | "SAMSUNG CD-ROM SN-124", | ||
| 1931 | "ATAPI CD-ROM DRIVE 40X MAXIMUM", | 1933 | "ATAPI CD-ROM DRIVE 40X MAXIMUM", |
| 1932 | "_NEC DV5800A", | 1934 | "_NEC DV5800A", |
| 1933 | }; | 1935 | }; |
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index ec81532eb845..a70cdf31311c 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
| @@ -5036,9 +5036,9 @@ megaraid_remove_one(struct pci_dev *pdev) | |||
| 5036 | } | 5036 | } |
| 5037 | 5037 | ||
| 5038 | static void | 5038 | static void |
| 5039 | megaraid_shutdown(struct device *dev) | 5039 | megaraid_shutdown(struct pci_dev *pdev) |
| 5040 | { | 5040 | { |
| 5041 | struct Scsi_Host *host = pci_get_drvdata(to_pci_dev(dev)); | 5041 | struct Scsi_Host *host = pci_get_drvdata(pdev); |
| 5042 | adapter_t *adapter = (adapter_t *)host->hostdata; | 5042 | adapter_t *adapter = (adapter_t *)host->hostdata; |
| 5043 | 5043 | ||
| 5044 | __megaraid_shutdown(adapter); | 5044 | __megaraid_shutdown(adapter); |
| @@ -5070,9 +5070,7 @@ static struct pci_driver megaraid_pci_driver = { | |||
| 5070 | .id_table = megaraid_pci_tbl, | 5070 | .id_table = megaraid_pci_tbl, |
| 5071 | .probe = megaraid_probe_one, | 5071 | .probe = megaraid_probe_one, |
| 5072 | .remove = __devexit_p(megaraid_remove_one), | 5072 | .remove = __devexit_p(megaraid_remove_one), |
| 5073 | .driver = { | 5073 | .shutdown = megaraid_shutdown, |
| 5074 | .shutdown = megaraid_shutdown, | ||
| 5075 | }, | ||
| 5076 | }; | 5074 | }; |
| 5077 | 5075 | ||
| 5078 | static int __init megaraid_init(void) | 5076 | static int __init megaraid_init(void) |
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 621dee8b8cb2..10506f9cd0c9 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
| @@ -632,7 +632,7 @@ static void scsi_free_sgtable(struct scatterlist *sgl, int index) | |||
| 632 | { | 632 | { |
| 633 | struct scsi_host_sg_pool *sgp; | 633 | struct scsi_host_sg_pool *sgp; |
| 634 | 634 | ||
| 635 | BUG_ON(index > SG_MEMPOOL_NR); | 635 | BUG_ON(index >= SG_MEMPOOL_NR); |
| 636 | 636 | ||
| 637 | sgp = scsi_sg_pools + index; | 637 | sgp = scsi_sg_pools + index; |
| 638 | mempool_free(sgl, sgp->pool); | 638 | mempool_free(sgl, sgp->pool); |
