aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
Commit message (Collapse)AuthorAge
* [libata scsi] improve scsi error handling with ata_scsi_set_sense()Douglas Gilbert2005-10-09
| | | | | | | | | | | | | | - change "xlat" and "fill" actors in libata-scsi so they are responsible for SCSI status and sense data when they return 1. This allows GOOD status or a specialized error to be set. - yield an error for mode sense requests for saved values [sat-r06] - remove static inlines for ata_bad_scsiop() and ata_bad_cdb() which are no longer used Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* [libata scsi] add ata_scsi_set_sense helperDouglas Gilbert2005-10-09
| | | | | | | | - add extern ata_scsi_set_sense() to build SCSI fixed sense data and corresponding SCSI status Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* Merge branch 'master'Jeff Garzik2005-10-08
|\
| * [PATCH] missing include in megaraid_sasAl Viro2005-10-04
| | | | | | | | | | | | | | | | megaraid_sas depends on arch-specific indirect includes pulling fs.h in; on alpha they do not. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| * Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6Linus Torvalds2005-10-03
| |\
| | * [SCSI] Legacy MegaRAID: Fix READ CAPACITYJames Bottomley2005-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some Legacy megaraid cards can't actually cope with the scatter/gather version of the READ CAPACITY command (which is what we now send them since altering all SCSI internal I/O to go via the block layer). Fix this (and a few other broken megaraid driver assumptions) by sending the non-sg version of the command if the sg list only has a single element. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aic7xxx/aic79xx: fix module removal path not to panicJames Bottomley2005-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In these drivers, scsi_remove_host() is called too late, at the point it is called, the driver has already shut down too far to accept any I/O that the shutdown might generate. Any generated I/O actually triggers a panic. Fix this by calling scsi_remove_host() as early as possible and not calling scsi_host_put() until just before we kfree the ahc_softc. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] fix potential panic with proc on module removalJames Bottomley2005-10-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's a problem in our host release in that it calls scsi_proc_hostdir_rm(). However, if you hold a reference to the host as you remove the module, the host template (which proc uses) will be freed and the system will panic when the host device is finally released. Fix this by moving scsi_proc_hostdir_rm() to where it should be: in scsi_remove_host(). Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aacraid: remove aac_insert_entryMark Haverkamp2005-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Received from Mark Salyzyn from Adaptec. High Priority Queues have *never* been used in the entire history of the aac based adapters. Associated with this, aac_insert_entry can be removed, SavedIrql can be removed & padding variable can be removed. With the movement of SavedIrql out & replaced with an automatic variable qflags, the locking can be refined somewhat. The sparse warnings did not catch the need for byte swapping in the 'dprintk' debugging print macros, so fixed this up when this code was moved outside of the now refined locking. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aacraid: fib size math fixMark Haverkamp2005-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Received from Mark Salyzyn from Adaptec. The size of the command packet's scatter gather list maximum size was miscalculated in the low range leading to the driver initialization limiting the maximum i/o size that could go to the Adapter. There were no negative operational side effects resulting from this bad math, only a subtle limit in performance of the Adapter at the top end of the range. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aacraid: initialization timeoutMark Haverkamp2005-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Received from Mark Salyzyn from Adaptec. In the rare instances where the adapter, or the motherboard, is misbehaving; driver initialization or shutdown becomes problematic. By introducing a 3 minute timeout on the first interrupt driven command during initialization, or the issuance of the adapter shutdown command during driver unload, we can resolve the lockup problems induced by common (but rare) hardware misbehaviors. The timeout during initialization, should it occur, is accompanied by a message presented to the console and the logs indicating that the user should inspect and resolve problems with interrupt routing. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aacraid: error return checkingMark Haverkamp2005-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds some additional error return checking and error return value propagation during initialization. Also, the deprecation of pci_module_init with pci_register_driver along with the change in return values. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aacraid: handle AIF hotplug events (update)Mark Haverkamp2005-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Received from Mark Salyzyn from Adaptec. Hotplug sniffs the AIFs (events) from the adapter and if a container change resulting in the device going offline (container zero), online (container zero completed) or changing capacity (morph) it will take actions by calling the appropriate API. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aacraid: aacraid: AIF preallocation (update)Mark Haverkamp2005-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recevied from Mark Salyzyn from Adaptec. Aif pre-allocation is used to pull the kmalloc outside of the locks. Applies to the scsi-misc-2.6 git tree. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] aacraid: Greater than 2TB capacity supportMark Haverkamp2005-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Received from Mark Salyzyn from Adaptec. There are a few adapters that are capable of creating devices with this large of a capacity, but now that we have the large fib support in, the management applications will be capable of generating them. The problem is, once they are created, the driver will not be able to access the devices correctly without this patch. Signed-off-by: Mark Haverkamp <markh@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] MegaRAID SAS RAID: new driverBagalkote, Sreenivas2005-09-26
| | | | | | | | | | | | | | | Signed-off-by: Sreenivas Bagalkote <Sreenivas.Bagalkote@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] sas: fix remote phy removalChristoph Hellwig2005-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Brown paperbag bug: sas_rphy_delete was ordered completely wrong. Fix it up to be the same order as sas_phy_delete or fc_rport_terminate and fix rphy objects that leaked after module removal. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] qla2xxx: fix remote port timeout with qla2xxx driverAndrew Vasquez2005-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a hole in the rport unblock handling when processing fabric events via the ADISC/PLOGI device state machine. Original code would not properly 'unblock' the port upon the port reloging into the fabric. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] allow REPORT LUN scanning even for LUN 0 PQ of 3James Bottomley2005-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we just ignore the device, which means there are a few arrays out there that we don't find. This patch updates the scsi_report_lun_scan() to take a target instead of a device so it can be called on a return of SCSI_SCAN_TARGET_PRESENT, which is what a PQ 3 device returns. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] 3ware 9000: Add support for 9550SX controllersadam radford2005-09-25
| | | | | | | | | | | | | | | Signed-off-by: Adam Radford <linuxraid@amcc.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
| | * [SCSI] lpfc build fixAndrew Morton2005-09-21
| | | | | | | | | | | | | | | | | | | | | gcc-2.95.x doesn't do anonymous unions. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
* | | libata: minor cleanupsJeff Garzik2005-10-05
| | | | | | | | | | | | | | | | | | | | | A few code shuffles, to make merging future code easier. Add (DRIVER_SENSE << 24) to certain result codes, as noted by Douglas Gilbert.
* | | [libata sata_mv] fix warningJeff Garzik2005-10-05
| | | | | | | | | | | | | | | shuffle ifdef location to fix the following warning: drivers/scsi/sata_mv.c:471: warning: 'mv_dump_mem' defined but not used
* | | [PATCH] libata: Marvell function headersBrett Russ2005-10-05
| | | | | | | | | | | | | | | | | | | | | adds helpful function header comments. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | [PATCH] libata: Marvell spinlock fixes and simplificationBrett Russ2005-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | This should fix up lockups that people were seeing due to improper spinlock placement. Also, the start/stop DMA routines put guarded trust in the cached state of DMA. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | libata: move atapi_request_sense() to libata-scsi moduleJeff Garzik2005-10-05
| | | | | | | | | | | | No content changes, just moving code around.
* | | libata: ATAPI command completion tweaks and notesJeff Garzik2005-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) note urgent bug, that completes command twice 2) only fix up INQUIRY data if the SCSI version is zero (typically indicates ATAPI MMC-ish device) 3) if there is a problem on the ATA bus, don't bother with REQUEST SENSE, just directly handle the error based on Status/Error registers.
* | | libata: add ata_ratelimit(), use it in AHCI driver irq handlerJeff Garzik2005-10-05
| | |
* | | Merge branch 'scsi-scan'Jeff Garzik2005-10-04
|\ \ \
| * | | [libata] improve device scan even moreJeff Garzik2005-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since our max_lun is unconditionally set to 1, we might as well hardcode a LUN 0 probe, rather than a wildcard LUN scan. The ide-scsi driver sets max_lun to a value greater than under certain conditions: if ((drive->id->last_lun & 0x7) != 7) host->max_lun = (drive->id->last_lun & 0x7) + 1; else host->max_lun = 1; last_lun is Word 126 of IDENTIFY PACKET DEVICE, marked as obsolete and undocumented in non-ancient specs. We'll leave it out for now. Should the need arise to support multi-LUN ATAPI devices, we'll probably want to add the above code. Finally, there have been reports of REPORT LUNS commands locking up ATAPI drives. Eliminating the wildcard LUN scan could help reduce the trouble from problematic drives.
| * | | [libata] improve device scanJeff Garzik2005-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace SCSI's legacy "bang at the door" method of probing with one directly controlled by the underlying ATA transport layer. We now only call scsi_scan_target() for devices we find, rather than probing every possible channel/id within a certain range.
* | | | [libata scsi] add CHS support to ata_scsi_start_stop_xlat()Albert Lee2005-10-04
| | | |
* | | | [libata scsi] tidy up SCSI lba and xfer len calculationsAlbert Lee2005-10-04
| | | | | | | | | | | | | | | | | | | | move the redundant SCSI lba and transfer length calculation code from ata_scsi_verify_xlat() and ata_scsi_rw_xlat() to common functions.
* | | | libata: minor whitespace, comment, debug message updatesAlbert Lee2005-10-04
| | | |
* | | | libata: bitmask based pci init functions for one or two portsAlan Cox2005-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This redoes the n_ports logic I proposed before as a bitmask. ata_pci_init_native_mode is now used with a mask allowing for mixed mode stuff later on. ata_pci_init_legacy_port is called with port number and does one port now not two. Instead it is called twice by the ata init logic which cleans both of them up. There are stil limits in the original code left over - IRQ/port mapping for legacy mode should be arch specific values - You can have one legacy mode IDE adapter per PCI root bridge on some systems - Doesn't handle mixed mode devices yet (but is now a lot closer to it)
* | | | [PATCH] libata: Marvell SATA support (DMA mode) (resend: v0.22)Brett Russ2005-10-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is my libata compatible low level driver for the Marvell SATA family. Currently it runs in DMA mode on a 6081 chip. The 5xxx series parts are not yet DMA capable in this driver because the registers have differences that haven't been accounted for yet. Basically, I'm focused on the 6xxx series right now. I apologize for those seeing problems on the 5xxx series, I've not had a chance to look at those problems yet. For those curious, the previous bug causing the SCSI timeout and subsequent panics was caused by an improper clear of hc_irq_cause in mv_host_intr(). This version is running well in my environment (6081 chips, with/without SW raid1) and is showing equal or better performance compared to the Marvell driver (mv_sata) in my initial tests (timed dd's of reads/writes to/from memory/disk). I still need to look at the causes of occasional problems such as this: ata11: translating stat 0x35 err 0x00 to sense ata11: status=0x35 { DeviceFault SeekComplete CorrectedError Error } SCSI error : <10 0 0 0> return code = 0x8000002 Current sda: sense key Hardware Error end_request: I/O error, dev sda, sector 3155010 and this, seen at init time: ATA: abnormal status 0x80 on port 0xE093911C but they aren't showstoppers. Signed-off-by: Brett Russ <russb@emc.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | | Merge branch 'master'Jeff Garzik2005-10-03
|\ \ \ \ | | |/ / | |/| |
| * | | [PATCH] proc_mkdir() should be used to create procfs directoriesAl Viro2005-09-29
| |/ / | | | | | | | | | | | | | | | | | | | | | A bunch of create_proc_dir_entry() calls creating directories had crept in since the last sweep; converted to proc_mkdir(). Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | | /spare/repo/libata-dev branch 'chs-support'Jeff Garzik2005-09-28
|\ \ \
| * | | Merge /spare/repo/linux-2.6/Jeff Garzik2005-09-24
| |\| |
| * | | Merge /spare/repo/linux-2.6/ Jeff Garzik2005-09-14
| |\ \ \
| * \ \ \ Merge /spare/repo/linux-2.6/ Jeff Garzik2005-09-08
| |\ \ \ \
| * \ \ \ \ /spare/repo/libata-dev branch 'master'Jeff Garzik2005-08-30
| |\ \ \ \ \
| * \ \ \ \ \ Merge libata branch 'chs-support' to latest upstream kernel.Jeff Garzik2005-08-29
| |\ \ \ \ \ \
| * \ \ \ \ \ \ /spare/repo/libata-dev branch 'v2.6.13'Jeff Garzik2005-08-29
| |\ \ \ \ \ \ \
| * \ \ \ \ \ \ \ Merge upstream kernel changes into 'C/H/S support' branch of libata.Jeff Garzik2005-06-22
| |\ \ \ \ \ \ \ \
| * | | | | | | | | [libata] C/H/S support, for older devicesAlbert Lee2005-05-12
| | | | | | | | | |
* | | | | | | | | | [PATCH] libata: rename host statesAlbert Lee2005-09-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes: s/PIO_ST_/HSM_ST_/ and s/pio_task_state/hsm_task_state/. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | | | | | | | | [PATCH] libata: indent and whitespace changeAlbert Lee2005-09-28
| |_|_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
* | | | | | | | | Merge branch 'upstream' from ↵Linus Torvalds2005-09-23
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev