summaryrefslogtreecommitdiff
path: root/drivers/scsi
AgeCommit message (Collapse)AuthorFilesLines
2006-08-09Merge branch 'upstream-fixes' into upstreamJeff Garzik2-2/+15
2006-08-09[PATCH] libata: clear sdev->locked on door lock failureTejun Heo1-0/+13
SCSI EH locks door if sdev->locked is set. Sometimes door lock command fails continuously (e.g. when medium is not present) and as libata uses EH to acquire sense data, this easily creates a loop where a failed lock door invokes EH and EH issues lock door on completion. This patch clears sdev->locked on door lock failure to break this loop. This problem has been spotted and diagnosed by Unicorn Chang <uchang@tw.ibm.com>. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-09[PATCH] Fix compile problem when sata debugging is onKeith Owens1-2/+2
Fix a sata debug print statement that still uses an old variable name. Signed-off-by: Keith Owens <kaos@ocs.com.au> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-09[PATCH] ahci: remove IRQ mask clearing from init_controller()Tejun Heo1-2/+1
Initial IRQ mask clearing is done by libata-core by freezing all ports prior to requesting IRQ. Remove redundant IRQ clearing from init_controller(). Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-09[PATCH] libata: Add support for SATA attachment to SAS adaptersBrian King3-1/+151
The following patch enhances libata to allow SAS device drivers to utilize libata to talk to SATA devices. It introduces some new APIs which allow libata to be used without allocating a virtual scsi host. New APIs: ata_sas_port_alloc - Allocate an ata_port ata_sas_port_init - Initialize an ata_port (probe device, etc) ata_sas_port_destroy - Free an ata_port allocated by ata_sas_port_alloc ata_sas_slave_configure - configure scsi device ata_sas_queuecmd - queue a scsi command, similar to ata_scsi_queuecomand These new APIs can be used either directly by a SAS LLDD or could be used by the SAS transport class. Possible usage for a SAS LLDD would be: scsi_scan_host target_alloc ata_sas_port_alloc slave_alloc ata_sas_port_init slave_configure ata_sas_slave_configure Commands received by the LLDD for SATA devices would call ata_sas_queuecmd. Device teardown would occur with: slave_destroy port_disable target_destroy ata_sas_port_destroy Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-09[PATCH] libata: Move ata_probe_ent_alloc to libata_coreBrian King3-26/+27
Move ata_probe_ent_alloc to libata-core. It will also be used by future SAS/SATA integration patches. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-09[PATCH] libata: Add ata_port_initBrian King2-15/+36
Separate out the ata_port initialization from ata_host_init so that it can be used in future SAS patches. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-09[PATCH] libata: Add ata_host_set_initBrian King1-4/+24
Add ata_host_set_init in preparation for SAS attached SATA. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-09Merge branch 'upstream-fixes' into upstreamJeff Garzik3-27/+9
2006-08-04[PATCH] libata: fix ata_device_add() error pathTejun Heo1-4/+4
In the error path, ata_device_add() * dereferences null host_set->ports[] element. * calls scsi_remove_host() on not-yet-added shost. This patch fixes both bugs. The first problem was spotted and initial patch submitted by Dave Jones <davej@redhat.com>. The second problem was mentioned and fixed by Jeff Garzik <jgarzik@pobox.com> in a larger cleanup patch. Cc: Dave Jones <davej@redhat.com> Cc: Jeff Garzik <jgarzik@pobox.com> Signed-off-by: Tejun Heo <htejun@gmail.com>
2006-08-04[PATCH] [libata] manually inline ata_host_remove()Jeff Garzik1-25/+6
(tj: this is for the following ata_device_add() fix) Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Tejun Heo <htejun@gmail.com>
2006-08-04[PATCH] sata_sil24: don't set probe_ent->mmio_baseTejun Heo1-1/+0
sata_sil24 doesn't make use of probe_ent->mmio_base and setting this field causes the area to be released twice on detach. Don't set probe_ent->mmio_base. Signed-off-by: Tejun Heo <htejun@gmail.com>
2006-08-04[PATCH] ata_piix: fix host_set private_data intializationTejun Heo1-0/+1
To get host_set->private_data initialized reliably, all pinfos need to point to the same hpriv. Restore pinfo->private_data after pata pinfo assignment. Signed-off-by: Tejun Heo <htejun@gmail.com>
2006-08-04[PATCH] libata: fix ata_port_detach() for old EH portsTejun Heo1-1/+2
ata_prot_detach() did nothing for old EH ports and thus SCSI hosts associated with those ports are left dangling after they are detached leaving stale devices and causing oops eventually. Make ata_port_detach() remove SCSI hosts for old EH ports. Signed-off-by: Tejun Heo <htejun@gmail.com>
2006-08-04Merge branch 'upstream-fixes' into upstreamJeff Garzik2-8/+4
2006-08-04[PATCH] ahci: skip protocol test altogether in spurious interrupt codeUnicorn Chang1-8/+2
Skip protocol test altogether in spurious interrupt code. If PIOS is received when it shouldn't, ahci will raise protocol violation. Signed-off-by: Unicorn Chang <uchang@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-08-01kbuild: hardcode value of YACC&LEX for aic7-triple-xSam Ravnborg1-0/+2
When we introduced -rR then aic7xxx no loger could pick up definition of YACC&LEX from make - so do it explicit now. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2006-07-29[libata] ahci: add SiS PCI IDsJeff Garzik1-0/+8
Signed-off-by: David Wang <touch@sis.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29[PATCH] libata: cosmetic changes to PM functionsTejun Heo2-10/+10
Unify pm_message_t argument to the new-style @mesg. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29[PATCH] ahci: implement Power Management supportTejun Heo1-0/+84
Implement power management support. Original implementation is from Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29[PATCH] ahci: separate out ahci_reset_controller() and ahci_init_controller()Tejun Heo1-77/+94
Separate out ahci_reset_controller() and ahci_init_controller() from ata_host_init(). These will be used by PM callbacks. This patch doesn't introduce any behavior change. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29[PATCH] libata: improve driver initialization and deinitializationTejun Heo1-51/+151
Implement ahci_[de]init_port() and use it during initialization and de-initialization. ahci_[de]init_port() are supersets of what used to be done during driver [de-]initialization. This patch makes the following behavior changes. * Per-port IRQ mask is cleared on driver load as done in other drivers. The mask will be configured properly during probe. * During init_one(), HOST_IRQ_STAT is cleared after masking port IRQs such that there is no race window. * CMD_SPIN_UP is cleared during init_one() instead of being set. It is set in port_start(). This is more consistent with overall structure of initialization. Note that CMD_SPIN_UP simply controls PHY activation. * Slumber and staggered spin-up are handled properly. * All init/deinit operations are done in step-by-step manner as described in the spec instead of issued as single merged command. Original implementation is from Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29[PATCH] ahci: simplify ahci_start_engine()Tejun Heo1-19/+2
Simplify ahci_start_engine() by killing prerequisite condition checks. Rationales are.. * No user checks error return from ahci_start_engine() * Code flow guarantees the prerequisite conditions unless the controller is malfunctioning. In such cases, the driver had chances to learn about the problem _before_ calling this function. * Closely related to the above two, driver calls into this function even when prerequisites fail hoping for the best. Basically, ahci_start_engine() should only do the operation itself. It isn't the right place to check for prerequisites. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29[PATCH] ahci: cosmetic changes to ahci_start/stop_engine()Tejun Heo1-18/+9
* fascist-format comments according to comment style used in libata core layer. * if() -> if () Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29[PATCH] ahci: relocate several internal functionsTejun Heo1-129/+126
* move ahci_port_start/stop() below EH functions. This makes ahci more consistent with other drivers and makes prototypes for ahci_start/stop_engine() unnecessary. * swap positions between ahci_start_engine() and ahci_stop_engine() for readability. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Zhao, Forrest <forrest.zhao@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-29Merge branch 'upstream-fixes' into upstreamJeff Garzik4-24/+11
2006-07-29Merge branch 'master' into upstream-fixesJeff Garzik4-24/+11
2006-07-28[PATCH] scsi: kill overeager "not-ready" messagesJens Axboe1-4/+1
HAL and friends have a tendency to trigger this one all the time. It's not really interesting, so kill it. The vendor kernels all do anyways. Signed-off-by: Jens Axboe <axboe@suse.de>
2006-07-26[PATCH] fix compile regression for a few scsi driversChristoph Hellwig2-12/+6
This fixes three drivers to compile again after my patch that removes the data_cmnd member from struct scsi_cmnd. The fas216 change is trivial, it should have been using ->cmnd all the time. NCR53C9 (which seem to be mostly duplicate driver with esp.c!) is doing something odd, it should only have looked at ->cmnd before not the saved copy that is kept for the error handlers sake. Note that it really should deal with the sync setting themselves but use the generic domain validation code that get this right - but that's for later let's push this simple compile fix for now. And sorry for the late fix for this, I have been busy with OLS and associated activities last week. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-25[SCSI] esp: Fix build.David S. Miller1-8/+4
The data_cmd[] member got deleted, so do not use it any more. Scsi commands do not have their ->cmd[] overwritten temporary to probe for status after an error before retrying. Signed-off-by: David S. Miller <davem@davemloft.net>
2006-07-24Merge branch 'upstream-fixes' into upstreamJeff Garzik42-500/+573
2006-07-24Merge branch 'master' into upstream-fixesJeff Garzik42-500/+573
2006-07-24Merge branch 'upstream-fixes' into upstreamJeff Garzik1-0/+7
2006-07-24[libata] sata_promise: comment out duplicate PCI IDJeff Garzik1-0/+7
This is just the for-RC fix. A 'TODO' command is added, describing what's needed for the more-complete fix.
2006-07-21Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6Linus Torvalds42-500/+573
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: (38 commits) [SCSI] More buffer->request_buffer changes [SCSI] mptfusion: bump version to 3.04.01 [SCSI] mptfusion: misc fix's [SCSI] mptfusion: firmware download boot fix's [SCSI] mptfusion: task abort fix's [SCSI] mptfusion: sas nexus loss support [SCSI] mptfusion: sas loginfo update [SCSI] mptfusion: mptctl panic when loading [SCSI] mptfusion: sas enclosures with smart drive [SCSI] NCR_D700: misc fixes (section and argument ordering) [SCSI] scsi_debug: must_check fixes [SCSI] scsi_transport_sas: kill the use of channel [SCSI] scsi_transport_sas: add expander backlink [SCSI] hide EH backup data outside the scsi_cmnd [SCSI] ibmvscsi: handle inactive SCSI target during probe [SCSI] ibmvscsi: allocate lpevents for ibmvscsi on iseries [SCSI] aic7[9x]xx: Remove last vestiges of reverse_scan [SCSI] aha152x: stop poking at saved scsi_cmnd members [SCSI] st.c: Improve sense output [SCSI] lpfc 8.1.7: Change version number to 8.1.7 ...
2006-07-20[PATCH] The redefinition of ahci_start_engine() and ahci_stop_engine()zhao, forrest1-25/+57
- Make ahci_start_engine() and ahci_stop_engine() more consistent with AHCI spec 1.1 - Change their input parameter from ap to port_mmio - Update the existing users of ahci_start_engine() and ahci_stop_engine() Signed-off-by: Forrest Zhao <forrest.zhao@intel.com> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-19[PATCH] libata: improve EH action and EHI flag handlingTejun Heo1-5/+28
Update ata_eh_about_to_do() and ata_eh_done() to improve EH action and EHI flag handling. * There are two types of EHI flags - one which expires on successful EH and the other which expires on a successful reset. Make this distinction clear. * Unlike other EH actions, reset actions are represented by two EH action masks and a EHI modifier. Implement correct about_to_do/done semantics for resets. That is, prior to reset, related EH info is sucked in from ehi and cleared, and after reset is complete, related EH info in ehc is cleared. These changes improve consistency and remove unnecessary EH actions caused by stale EH action masks and EHI flags. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-19[PATCH] libata: fix eh_skip_recovery conditionTejun Heo1-3/+4
* (ata_dev_absent() || ata_dev_ready()) test doesn't indicate SUSPENDED state properly. Fix it. * Link resuming resets shouldn't be skipped. Don't skip recovery on EHI_RESUME_LINK. This doesn't matter for host ports as EHI_RESUME always coincides with EHI_HOTPLUGGED which makes attached disabled devices vacant. However, PMP reset causes non-hotplug link-resuming resets which shouldn't be skipped. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-19[PATCH] libata: fix autopsy ehc->i.action and ehc->i.dev handlingTejun Heo1-17/+12
Commit 0662c58b3265f52f708a6d59476bc7862b01f9c0 updated ata_eh_autopsy() to OR determined action to ehc->i.action to preserve action mask set directly into ehc->i.action by nested functions. This broke action mask clearing on SENSE_VALID case causing revalidation and EH complete message on successful ATAPI CC. This patch removes two local variables - action and failed_dev - which cache ehc->i.action and ehc->i.dev respectively, and make the function directly modify ehc->i.* fields to remove aliasing issues. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-16[libata] ata_piix: correct 'invalid MAP value' typo-caused errorJeff Garzik1-1/+1
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-16[libata] ata_piix: minor cleanups noticed in prior patch runJeff Garzik1-11/+7
* delete unused PIIX_FLAG_COMBINED* * port_enable should be u16 rather than u32 Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-16[libata] ata_piix: attempt to fix ICH8 supportJeff Garzik1-4/+38
Take into account the fact that ICH8 changed the register layout of the MAP and PCS register bits. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-16[libata] ata_piix: Consolidate PCS register writingJeff Garzik1-25/+28
Prior to this patch, the driver would do this for each port: read 8-bit PCS write 8-bit PCS read 8-bit PCS write 8-bit PCS In the field, flaky behavior has been observed related to this register. In particular, these overzealous register writes can cause misdetection problems. Update to do the following once (not once per port) at boot: read 16-bit PCS if needs changing, write 16-bit PCS And thereafter, we only perform a 'read 16-bit PCS' per port. This should eliminate all PCS writes in many cases, and be more friendly in the cases where we do need to enable ports. Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-16[PATCH] ata_piix: add host_set private structureTejun Heo1-16/+40
Add host_set private structure piix_host_priv. Currently the only field is ->map which used to be stored directly at host_set->private_data. This change allows more host_set private fields to be added. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-07-14[SCSI] More buffer->request_buffer changesChristoph Hellwig13-19/+17
Seem like quite a few splipped through the cracks. Here's a patch to update all references I could find: Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-07-12[SCSI] NCR_D700: misc fixes (section and argument ordering)James Bottomley1-7/+7
Apparently the D700 has had an argument ordering issue for quite a while which can cause it to get the wrong scsi_id (I just got an unbootable voyager system because of this). Hopefully this patch also fixes up all the sectional mismatches within the driver. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-07-12[SCSI] scsi_debug: must_check fixesRandy Dunlap1-18/+54
Check all __must_check warnings in scsi_debug. Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Douglas Gilbert <dougg@torque.net> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-07-12[SCSI] scsi_transport_sas: kill the use of channel James Bottomley1-5/+3
Using the port_id for the channel is completely unnecessary since the host_id/target_id are constructed to be globally unique. Also move the mptsas driver on to virtual channel 1 for its raid devices. Acked-by: "Moore, Eric" <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-07-12[SCSI] scsi_transport_sas: add expander backlinkJames Bottomley1-0/+20
This patch adds the ability to add a backlink to a particular port. The idea is to represent properly ports on expanders that are used specifically for linking to the parent device in the topology. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2006-07-11[PATCH] FDPIC: Move roundup() into linux/kernel.hDavid Howells1-1/+0
Move the roundup() macro from binfmt_elf.c into linux/kernel.h as it's generally useful. [akpm@osdl.org: nuke all the other implementations] Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>