summaryrefslogtreecommitdiffstats
path: root/drivers/scsi (follow)
Commit message (Collapse)AuthorAgeFilesLines
* [SCSI] fcoe, libfc: adds per cpu exch pool within exchange manager(EM)Vasu Dev2009-09-052-4/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds per cpu exch pool for these reasons:- 1. Currently an EM instance is shared across all cpus to manage all exches for all cpus. This required em_lock across all cpus for an exch alloc, free, lookup and reset each frame and that made em_lock expensive, so instead having per cpu exch pool with their own per cpu pool lock will likely reduce locking contention in fast path for an exch alloc, free and lookup. 2. Per cpu exch pool will likely improve cache hit ratio since all frames of an exch will be processed on the same cpu on which exch originated. This patch is only prep work to help in keeping complexity of next patch low, so this patch only sets up per cpu exch pool and related helper funcs to be used by next patch. The next patch fully makes use of per cpu exch pool in all code paths ie. tx, rx and reset. Divides per EM exch id range equally across all cpus to setup per cpu exch pool. This division is such that lower bits of exch id carries cpu number info on which exch originated, later a simple bitwise AND operation on exch id of incoming frame with fc_cpu_mask retrieves cpu number info to direct all frames to same cpu on which exch originated. This required a global fc_cpu_mask and fc_cpu_order initialized to max possible cpus number nr_cpu_ids rounded up to 2's power, this will be used in mapping exch id and exch ptr array index in pool during exch allocation, find or reset code paths. Adds a check in fc_exch_mgr_alloc() to ensure specified min_xid lower bits are zero since these bits are used to carry cpu info. Adds and initializes struct fc_exch_pool with all required fields to manage exches in pool. Allocates per cpu struct fc_exch_pool with memory for exches array for range of exches per pool. The exches array memory is followed by struct fc_exch_pool. Adds fc_exch_ptr_get/set() helper functions to get/set exch ptr in pool exches array at specified array index. Increases default FCOE_MAX_XID to 0x0FFF from 0x07EF, so that more exches are available per cpu after above described exch id range division across all cpus to each pool. Signed-off-by: Vasu Dev <vasu.dev@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] fcoe: libfcoe: extra semicolon in CHECK_LOGGING macros causes compile ↵Joe Eykholt2009-09-052-2/+2
| | | | | | | | | | | | | | | | | | | | error If using code like this: if (foo) FCOE_DBG("foo\n); else FCOE_DBG("bar\n"); one gets compile errors because FCOE_DBG expands with its own semicolon, making one too many for the if-statement. Remove the offending semicolon in fcoe.h and also a similar case in libfcoe.c. Signed-off-by: Joe Eykholt <jeykholt@cisco.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] libfc: Fix misleading debug statementRobert Love2009-09-051-1/+3
| | | | | | | | | | | | | | | The statement reads, "Exchange timed out, notifying the upper layer", however, this statement is printed whenever the timer is armed. This is confusing to someone debugging the code because every time an exchange is initialized, there is an incorrect statement stating that the timer has already timed out. This patch changes the statement to read, "Exchange timer armed" which is more accurate. This patch also adds a debug statement in the timeout handler to properly indicate that the exchange has timed out. Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] fcoe: Add format spacing to FCOE_NETDEV_DBG debug macroRobert Love2009-09-051-1/+1
| | | | | | | | | | | | There's currently no space between the interface name and the user specified format/string. This patch adds a space and a colon to the output to separate the interface name and the user specified string. So, instead of "ethXfoo" it will read "ethX: foo". Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] libiscsi, iscsi_tcp: check suspend bit before each call to xmit_taskMike Christie2009-09-051-9/+10
| | | | | | | | | | | | | | | | If we had multiple tasks on the cmd or requeue lists, and iscsi_tcp returns a error, the write_space function can still run and queue iscsi_data_xmit. If it was a legetimate problem and iscsi_conn_failure was run but we raced and iscsi_data_xmit was run first it could miss the suspend bit checks, and start trying to send data again and hit another timeout. A similar problem is present when using cxgb3i. This has libiscsi check the suspend bit before calling the xmit task callout, so we at least do not try sending multiple tasks (one could be sent). Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] iscsi_tcp: add new conn error to indicate tcp conn closedMike Christie2009-09-051-14/+9
| | | | | | | | | | | If a target closed the connection, we will detect it in the state_changed or data_ready callout. This adds a new conn error value to use for this problem, so it is not confused with when the initiator throws a conn error and drops the connection. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] iscsi class: Add logging to scsi_transport_iscsi.cMike Christie2009-09-051-2/+71
| | | | | | | | | | Logging for connections and sessions in the scsi_transport_iscsi module is now controlled by module parameters. Signed-off-by: Erez Zilber <erezzi.list@gmail.com> [Mike Christie: newline fixups and modification of some dbg statements] Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla4xxx: Removed residual from overrun debug printMike Christie2009-09-051-4/+4
| | | | | | | | | | The residual variable is only valid for udnerrun so do not print it out for the overrun case. Signed-off-by: Karen Higgins <karen.higgins@qlogic.com> [Mike Christie: Fix coding style issues in patch] Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] libiscsi: handle immediate command rejectionsMike Christie2009-09-051-19/+87
| | | | | | | | | | | | | If we sent multiple pdus as immediate the target could be rejecting some and we have just been dropping the rejection notification. This adds code to handle nop-out rejections, so if a nop-out was sent as a ping and rejected we do not mark the connection bad. Instead we just clean up the timers since we have pdu making a rount trip we know the connection is good. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] libiscsi: don't increment cmdsn if cmd is not sentMike Christie2009-09-051-2/+3
| | | | | | | | | | | | | | | We increment session->cmdsn at the top of iscsi_prep_scsi_cmd_pdu, but if the prep ecb or prep bidi or init_task calls fails then we leave the session->cmdsn incremented. This moves the cmdsn manipulation to the end of the function when we know it has succeeded. It also adds a session->cmdsn--; in queuecommand for if a driver like bnx2i tries to send a a task from that context but it fails. We do not have to do this in the xmit thread context because that code will retry the same task if the initial call fails. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] iscsi_tcp: Evaluate socket state in data_ready()Hannes Reinecke2009-09-051-3/+25
| | | | | | | | | | | | The network core will call the state_change() callback prior to the data_ready() callback, which might cause us to lose a connection state change. So we have to evaluate the socket state at the end of the data_ready() callback, too. Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Add asynchronous-login support.Andrew Vasquez2009-09-057-9/+784
| | | | | | | | ISPs which support this feature include 23xx and above. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Generalize srb structure usage.Andrew Vasquez2009-09-053-2/+14
| | | | | | | | | | | | | | | Lay groundwork for adding alternative asynchronous operations by generalize and extending the SRB structure. This allows for follow-on patches to add support for: - Asynchronous logins. - ELS/CT passthru requests. - Loopback requests. - Non-blocking mailbox commands (ABTS, Task Management, etc). Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] mpt2sas: Bump driver version 01.100.06.00Kashyap, Desai2009-09-051-2/+2
| | | | | | | | Bump version to 01.100.06.00 Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by:: Eric Moore <Eric.moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] mpt2sas: cleanup interrupt routine and config_request optimizationKashyap, Desai2009-09-054-753/+234
| | | | | | | | | | | Cleaned up base_interrupt routine to be more effiecent. Deleted about a third of the config page API by moving redundant code from all the calling functions to _config_request. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by: Eric Moore <Eric.moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesgKashyap, Desai2009-09-054-4/+109
| | | | | | | | | | | | | | | This patch modifies the slave_configure callback so the messages that get sent to system log for RAID1E volumes contain the string "RAID10" instead of "RAID1E". These messages contain information regarding what kind of scsi device is being added. Certain OEMS can enable displaying the RAID10 string instead of RAID1E via manufacturing page 10. The driver will read this config page at driver load time, then determine from the GenericFlags0 bits whether display the RAID10 or RAID1E string, also even drive count is taken into consideration. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by: Eric Moore <Eric.moore@lsi.com> Cc: Stable Tree <stable@kernel.org> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] mpt2sas: setting SDEV into RUNNING state from Interrupt contextKashyap, Desai2009-09-052-6/+13
| | | | | | | | | | | | | | | | Changing SDEV Running state from interrupt context. Previously It was handle in work queue thread. With this change It will not wait for work queue thread to execute scsih_ublock_io_device to put SDEV into Running state. This will reduce delay for Device becoming RUNNING. Modified this patch considering James comment "Not to change SDEV state using scsi_device_set_state API, instead use scsi_internal_device_unblock scsi_internal_device_block API" Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by: Eric Moore <Eric.moore@lsi.com> Cc: Stable Tree <stable@kernel.org> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] mpt2sas: Removed wrapper funtions _scsih_link_change.Kashyap, Desai2009-09-053-33/+17
| | | | | | | | | | | | Deleted the wrapper function called _scsih_link_change. This function was implemented for compatibility reasons only, between different kernel versions. Currently this function is no longer needed. The calling function are converted to calling mpt2sas_transport_update_phy_link_change directly in the transport layer. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by: Eric Moore <Eric.moore@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] mpt2sas: Prevent sending command to FW while Host ResetKashyap, Desai2009-09-055-54/+47
| | | | | | | | | | | | | | | This patch renames the flag for indicating host reset from ioc_reset_in_progress to shost_recovery. It also removes the spin locks surrounding the setting of this flag, which are unnecessary. Sanity checks on the shost_recovery flag were added thru out the code so as to prevent sending firmware commands during host reset. Also, the setting of the shost state to SHOST_RECOVERY was removed to prevent deadlocks, this is actually better handled by the shost_recovery flag. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by: Eric Moore <Eric.moore@lsi.com> Cc: Stable Tree <stable@kernel.org> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] mpt2sas : Rescan topology from Interrupt context instead of work threadKashyap, Desai2009-09-053-89/+57
| | | | | | | | | | | | | | Following host reset its possible that the controller firmware could assign new handles for devices, as well as adding or deleting devices. There is code in the driver that will rescan the topology folowing host reset; updating device handles, and remove devices that are no longer responding. This patch will improve the responsivness by moving this rescaning from the delayed hotplug worker thread to immediately following the host reset. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Reviewed-by: Eric Moore <Eric.moore@lsi.com> Cc: Stable Tree <stable@kernel.org> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] stex: Add reset code for st_yel (v2)Ed Lin2009-09-051-4/+29
| | | | | | | | | | | Add reset related code for st_yel. 1. Set the SS_H2I_INT_RESET bit. 2. Wait for the SS_MU_OPERATIONAL flag. This is also part of normal handshake process so move it to handshake routine. 3. Continue handshake with the firmware. Signed-off-by: Ed Lin <ed.lin@promise.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] scsi_dh_rdac: add support for next generation of Dell PV arrayYanqing_Liu@Dell.com2009-09-051-0/+2
| | | | | | | | | This patch is to add DM support for next generation of Dell PowerVault storage array. Signed-off-by: Yanqing Liu <Yanqing_Liu@Dell.com> Acked-by: Chandra Seetharaman <sekharan@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] scsi_dh: add two SUN devices to the list of devices supported by defaultChandra Seetharaman2009-08-231-0/+2
| | | | | | Reported-by: Rice Brown <rick.brown@oit.gatech.edu> Signed-Off-by: Chandra Seetharaman <sekharan@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] fix bugs in scsi_vpd_inquiry()James Bottomley2009-08-231-6/+7
| | | | | | | | | | | | | Universally, SCSI functions assume the lengths fed in are those of the buffer to DMA data to, not the lengths of the data minus the header. scsi_vpd_inquiry() assumed the latter and got it wrong, so fix up all the functions to use the correct assumption (and fix a bug where INQUIRY in SCSI-2 dcannot go over 255). [jejb: Matthew posted an identical version of this at the same time I did] Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] reservation conflict after timeout causes device to be taken offlineMichael Reed2009-08-231-1/+5
| | | | | | | | | | | | | | | | | | | | An IBM tape drive failed to complete a PERSISTENT RESERVE IN within the scsi cmd timeout. Error recovery was initiated and it sequenced from abort through taking the tape drive offline. The device was taken offline because it repeatedly responded to the TUR command issued by error recovery with a RESERVATION CONFLICT status. The tape drive was reserved to another system. This is perfectly legitimate response to TUR, and is one that an escalation of recovery is unlikely to clear. Further, escalation of recovery can have undesirable side effects on the operation of tape drives shared with other initiators. Instead of escalating recovery, error recovery should treat the RESERVATION CONFLICT response to the TUR as a good status, giving the issuer of the command the opportunity to handle the timeout and reservation conflict. Signed-off-by: Michael reed <mdr@sgi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] nsp_cs: fix buf overflowJiri Slaby2009-08-231-1/+1
| | | | | | | | | | In nsp_cs_config there is a wrong struct nsp_cs_configdata allocation. It allocates only sizeof(pointer to nsp_cs_configdata) for a whole structure. Add a dereference to the sizeof to allocate sizeof(nsp_cs_configdata). Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] ch: Check NULL for kmalloc() returnDavidlohr Bueso A2009-08-231-0/+6
| | | | | | | Verify that ch->dt is not NULL before using it. Signed-off-by: Davidlohr Bueso <dave@gnu.org> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] ibmvscsi: avoid unnecessary use of kzalloc_poolSage Weil2009-08-231-1/+1
| | | | | | | | | | The allocated struct is manually zeroed after allocation, so avoid using the (broken) kzalloc mempool (which does not re-zero previously used items when they are returned to the pool). Acked-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: Sage Weil <sage@newdream.net> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Update version number to 8.03.01-k5Giridhar Malavali2009-08-231-1/+1
| | | | | | Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Fix to ensure driver works in sinlge queue mode if ↵Anirban Chakraborty2009-08-236-12/+27
| | | | | | | | | | | | multiqueue fails When the multiqueue mode fails to work, the driver falls back on single queue mode. This ensures that the firmware is reinitialized with single queue options and all the resources are readjusted accordingly. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Correct display of vp_count in debug printk.Andrew Vasquez2009-08-231-1/+2
| | | | | | | Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Fix a bug that clears the interrupt status register for the ↵Anirban Chakraborty2009-08-231-2/+4
| | | | | | | | | | | | | | | base queue The interrupt handler clears the interrupt status register for response updates in the base queue while working in the multique mode. This could lead to missing interrupt for async events, mail box completions etc. as these are also handled in the base queue. The fix ensures that the interrupt bit is not cleared for response updates in the ISR when the driver is working in multiqueue mode. Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: ISP21xx/22xx do not support FDMI registrations.Andrew Vasquez2009-08-231-0/+4
| | | | | | | Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Pad IOCB structure for size requirements.Shyam Sundar2009-08-231-1/+1
| | | | | | | | | | One byte added to make the IOCB structure satisfy size requirements. Signed-off-by: Shyam Sundar <shyam.sundar@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Handle RSCN's per master/slave vn-port basis.Santosh Vernekar2009-08-231-1/+1
| | | | | | | Signed-off-by: Santosh Vernekar <santosh.vernekar@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Process DPC requests within valid Fabric topologies.Lalit Chandivade2009-08-231-0/+3
| | | | | | | | | | | If vports are created and topology is changed to Loop only, the driver continuously gets a LIP reset occurred and keeps trying to enable the vport. Only manage requests during F_Port. Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Mark all devices lost on loss of fc port.Santosh Vernekar2009-08-231-0/+1
| | | | | | | Signed-off-by: Santosh Vernekar <santosh.vernekar@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Skip RSCN processing on vha if event is global.Santosh Vernekar2009-08-231-4/+20
| | | | | | | | | The RSCN processing is skipped if the event received is global and vha is not recipient. Signed-off-by: Santosh Vernekar <santosh.vernekar@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Correctly handle 'global port-unavailable' AEN.Andrew Vasquez2009-08-231-1/+29
| | | | | | | | | | | | Treat a global port-unavailable PORT_UPDATE (8014h) AEN as a loop-down event. For this case, within the FCoE domain, the 'logical' interface has been terminated, but the driver will not receive the classic LOOP_DOWN AEN. Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] qla2xxx: Pass the command's data residual to upper-layer callers.Ravi Anand2009-08-231-0/+1
| | | | | | | Signed-off-by: Ravi Anand <ravi.anand@qlogic.com> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] scsi_dh: Provide set_params interface in emc device handlerChandra Seetharaman2009-08-231-3/+56
| | | | | | | | | | | | | | | Handle the parameters provided by user thru multipath. This handler expects only 2 parameters and their value can either be 0 or 1. This code originates from the old dm-emc.c file. Appropriate changes have been made to make it work in the new design. Reported-by: Eddie Williams <Eddie.Williams@steeleye.com> Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Tested-by: Eddie Williams <Eddie.Williams@steeleye.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] scsi_dh: add the interface scsi_dh_set_params()Chandra Seetharaman2009-08-231-0/+33
| | | | | | | | | | | | | | | | | | | | | When we moved the device handler functionality from dm layer to SCSI layer we dropped the parameter functionality. This path adds an interface to scsi dh layer to set device handler parameters. Basically, multipath layer need to create a string with all the parameters and call scsi_dh_set_params() after it called scsi_dh_attach() on a device. If a device handler provides such an interface it will handle the parameters as it expects them. Reported-by: Eddie Williams <Eddie.Williams@steeleye.com> Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Tested-by: Eddie Williams <Eddie.Williams@steeleye.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] ses: update enclosure data on hot addJames Bottomley2009-08-231-71/+97
| | | | | | | | | Now that hot add works correctly, if a new device is added, we're still operating on stale enclosure data, so fix that by updating the enclosure diagnostic pages when we get notified of a device hot add Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] ses: add support for enclosure component hot removalJames Bottomley2009-08-231-7/+26
| | | | | | | | | | | | Right at the moment, hot removal of a device within an enclosure does nothing (because the intf_remove only copes with enclosure removal not with component removal). Fix this by adding a function to remove the component. Also needed to fix the prototype of enclosure_remove_device, since we know the device we've removed but not the internal component number Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] ses: fix hotplug with multiple devices and expandersJames Bottomley2009-08-231-4/+6
| | | | | | | | | | | | In a situation either with expanders or with multiple enclosure devices, hot add doesn't always work. This is because we try to find a single enclosure device attached to the host. Fix this by looping over all enclosure devices attached to the host and also by making the find loop recognise that the enclosure devices may be expander remote (i.e. not parented by the host). Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] ipr: fix buffer overflowBrian King2009-08-231-1/+1
| | | | | | | | | ipr_cmd_label[] isn't big enough for an eight byte string plus terminator. Fix by shortening the string to seven bytes. Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] bnx2i : Fix "cid #n not valid" issueAnil Veerabhadrappa2009-08-231-2/+1
| | | | | | | | | | | | When bnx2i_adapter_ready() fails, connection handle(cid) = 0 is wrongly freed because 'cid' is not yet allocated for the endpoint. Fix is to initialize bnx2i_ep->ep_iscsi_cid to '-1' in bnx2i_alloc_ep() and not in bnx2i_ep_connect() to avoid releasing invalid 'cid'. There is already a check in bnx2i_free_iscsi_cid() not to free invalid iscsi connection handle (-1) Signed-off-by: Anil Veerabhadrappa <anilgv@broadcom.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] bnx2i : Fix command session number jump issue seen during cable pull testAnil Veerabhadrappa2009-08-231-3/+0
| | | | | | | | | | | | | | | | Without the fix bnx2i would fail tt->xmit_task() when link is down and libiscsi would have already incremented session->cmdsn before calling bnx2i's xmit_task() entry point and will just return the command to SCSI-ML when xmit_task() fails. libiscsi does not retract the session->cmdsn as the command was never sent on wire. It is generally good idea for LLD, bnx2i to accept the scsi cmnd/nopout and let upper layer timeout and go though normal session recovery process. When link is down, unsolicited nopout will not be accepted by bnx2i and connection will never enter recovery state. This fix is required for MPIO to work corectly Signed-off-by: Anil Veerabhadrappa <anilgv@broadcom.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] fcoe: removes phys_dev and renames real_dev to netdev.Vasu Dev2009-08-232-47/+51
| | | | | | | | | | | | | | | | | | | | The phys_dev was used only to locate common offload EM instance for all FCoE instances on a eth devices in function fcoe_em_config, so just updated fcoe_em_config to look for actual real eth device in locating common offload EM instance and then no need to store phys_dev in fcoe_softc, so removes phys_dev from fcoe_softc also. Renames fcoe_softc real_dev to netdev and updates all its uses to use netdev. So effectively no functional change, use of single netdev instead phys_dev and real_dev saves one pointer memory in fcoe_softc, also real_dev used here was confusing with vlan driver terminology since real_dev in vlan driver is referred to physical eth device. Signed-off-by: Vasu Dev <vasu.dev@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
* [SCSI] libfc: Remove page flags check for sglistYi Zou2009-08-231-27/+0
| | | | | | | | | | | I don't believe this check is needed any more in the current kernel, which, if I understand correctly, is for compound page where only the first page is supposed to get ref-counted. Signed-off-by: Yi Zou <yi.zou@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>