aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi
AgeCommit message (Collapse)AuthorFilesLines
2009-12-04[SCSI] libfcoe: Allow FIP to be disabled by the driverJoe Eykholt1-2/+4
Allow FIP to be disabled by the driver for devices that want to use libfcoe in non-FIP mode. The driver merely sets the fcoe_ctlr mode to the state which should be entered when the link comes up. The default is auto. No change is needed for fcoe.c which uses auto mode. Signed-off-by: Joe Eykholt <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: adds can_queue ramp upVasu Dev1-19/+59
Adds last_can_queue_ramp_down_time and updates this on every ramp down. If last_can_queue_ramp_down_time is not zero then do ramp up on any IO completion in added fc_fcp_can_queue_ramp_up. Reset last_can_queue_ramp_down_time to zero once can_queue is ramped up to added max_can_queue limit, this is to avoid any more ramp up attempts on subsequent IO completion. The ramp down and up are skipped for FC_CAN_QUEUE_PERIOD to avoid infrequent changes to can_queue, this required keeping track of ramp up time also in last_can_queue_ramp_up_time. Adds code to ramp down can_queue if lp->qfull is set, with added new ramp up code the can_queue will be increased after FC_CAN_QUEUE_PERIOD, therefore it is safe to do ramp down without fsp in this case and will avoid thrash. This required fc_fcp_can_queue_ramp_down locking change so that it can be called with Scsi_Host lock held. Removes si->throttled and fsp state FC_SRB_NOMEM, not needed with added ramp up code. Signed-off-by: Vasu Dev <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: reduce can_queue for all FCP frame allocation failuresVasu Dev1-43/+59
Currently can_queue is reduced only if frame alloc fails during fc_fcp_send_data but frame alloc can fail at several other places in FCP data path and can_queue needs to be reduced for any FCP frame alloc failure. This patch adds fc_fcp_frame_alloc for all FCP frame allocations and if fc_frame_alloc fails in fc_fcp_frame_alloc then reduce can_queue in fc_fcp_frame_alloc, this will reduce can_queue for all FCP frame alloc failures. This required moving fc_fcp_reduce_can_queue up, to build without adding its prototype. Also renamed fc_fcp_reduce_can_queue to fc_fcp_can_queue_ramp_down. Removes fc_fcp_reduce_can_queue calling from fc_fcp_recv since not needed with added fc_fcp_frame_alloc reducing can_queue. Signed-off-by: Vasu Dev <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fcoe, libfc: use single frame allocation APIVasu Dev2-14/+7
Cleans up frame allocation APIs to have just single fc_frame_alloc API. Removes _fc_frame_alloc, renames __fc_frame_alloc to _fc_frame_alloc. Modifies fc_fcp_send_data for removed _fc_frame_alloc, fc_fcp_send_data was the only user of removed _fc_frame_alloc. Also Adds check in fc_frame_alloc to do mod by 4 for only non-zero len value. This patch is prep work to fix can_queue reducing in next patch. Single fc_frame_alloc API helps in fixing can_queue reducing in next patch. Signed-off-by: Vasu Dev <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fcoe: Formatting cleanups and commentingRobert Love2-356/+441
Added kernel-doc comment blocks to all structures and functions. Renamed fc_lport instances rom lp to lport to be inline with our naming convention. Renamed all misnamed net_device instances to netdev to be inline with our naming convention. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfcoe: formatting and comment cleanupsRobert Love1-105/+111
Ensures that there are kernel-doc style comments for all routines and structures. There were also a few instances of fc_lport's named 'lp' which were switched to 'lport' as per the libfc/libfcoe/fcoe naming convention. Also, emacs 'indent-region' and 'tabify' were ran on libfcoe.c. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Formatting cleanups across libfcRobert Love8-766/+1119
This patch makes a variety of cleanup changes to all libfc files. This patch adds kernel-doc headers to all functions lacking them and attempts to better format existing headers. It also add kernel-doc headers to structures. This patch ensures that the current naming conventions for local ports, remote ports and remote port private data is upheld in the following manner. struct instance (i.e. variable name) -------------------------------------------------- fc_lport lport fc_rport rport fc_rport_libfc_priv rpriv fc_rport_priv rdata I also renamed dns_rp and ptp_rp to dns_rdata and ptp_rdata respectively. I used emacs 'indent-region' and 'tabify' on all libfc files to correct spacing alignments. I feel sorry for anyone attempting to review this patch. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc, fcoe: Add FC passthrough supportSteve Ma2-0/+271
This is the Open-FCoE implementation of the FC passthrough support via bsg interface. Passthrough support is added to both N_Ports and VN_Ports. Signed-off-by: Steve Ma <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Add routine to copy data from a buffer to a SG listRobert Love3-46/+78
When handling the multi-frame responses of fc pass-thru requests, a code segment similar to fc_fcp_recv_data (routine to receive inbound SCSI data) is used in the response handler. This patch is to add a routine, called fc_copy_buffer_to_sglist(), to handle the common function of copying data from a buffer to a scatter- gather list in order to avoid code duplication. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fcoe: vport symbolic name supportChris Leech2-0/+34
Allow a vport specific string to be appended to the port symbolic name. The new symbolic name is sent to the name server after it is set. This currently messes with libhbalinux, which is looking for the fcoe "fcoe <ver> over <ethX>" string and expects whatever comes after the "over" to be a network interface name only. Adds an EXPORT_SYMBOL to libfc for fc_frame_alloc_fill, which is needed to allow fcoe to allocate a frame of variable length for the RSPN request. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: combine name server registration request functionsChris Leech1-122/+42
Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: combine name server registration response handlersChris Leech1-175/+30
They all do the same thing, so combine them into a single function. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Register Symbolic Port Name (RSPN_ID)Chris Leech1-0/+90
Register the fc_host symbolic name as the symbolic port name with the fabric name server. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Register Symbolic Node Name (RSNN_NN)Chris Leech2-3/+94
Register the fc_host symbolic name as the symbolic node name with the fabric name server. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: RNN_ID may be required before RSNN_NN with some switchesChris Leech1-1/+90
One could interpret FC-GS-5 to say that an explicit RNN_ID is required before RSNN_NN is allowed to succeed, which is why RNN_ID was not obsoleted along with RPN_ID acording to this document: ftp://ftp.t11.org/t11/member/fc/gs-5/05-546v2.pdf Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: RPN_ID is obsolete and unnecessaryChris Leech1-92/+3
RPN_ID has been obsolete per FC-GS-5 for several years. The port name is registered implicitly as part of FLOGI, and it is undesirable for ports to change a registered port name using RPN_ID while logged into the fabric. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fcoe: NPIV vport create/destroyChris Leech1-23/+139
Add NPIV vport create and destroy handlers and register them with the FC transport. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fcoe: add a separate scsi transport template for NPIV vportsChris Leech1-7/+47
Right now it's exactly the same as the physical port template, and there is no way to create a port on anything other than the netdev. When the vport_create entry point gets hooked up it will create lports on top of vport devices, which will use this. Rename scsi_transport_fcoe_sw to fcoe_transport_template to be more clear with naming now that there are two templates. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfcoe, fcoe: libfcoe NPIV supportChris Leech5-55/+184
The FIP code in libfcoe needed several changes to support NPIV 1) dst_src_addr needs to be managed per-n_port-ID for FPMA fabrics with NPIV enabled. Managing the MAC address is now handled in fcoe, with some slight changes to update_mac() and a new get_src_addr() function pointer. 2) The libfc elsct_send() hook is used to setup FCoE specific response handlers for FIP encapsulated ELS exchanges. This lets the FCoE specific handling know which VN_Port the exchange is for, and doesn't require tracking OX_IDs. It might be possible to roll back to the full FIP frame in these, but for now I've just stashed the contents of the MAC address descriptor in the skb context block for later use. Also, because fcoe_elsct_send() just passes control on to fc_elsct_send(), all transmits still come through the normal frame_send() path. 3) The NPIV changes added a mutex hold in the keep alive sending, the lport mutex is protecting the vport list. We can't take a mutex from a timer, so move the FIP keep alive logic to the link work struct. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc, libfcoe: FDISC ELS for NPIVChris Leech2-4/+8
Add FDISC ELS handling to libfc and libfcoe, treat it the same as FLOGI where appropriate. Add checking for NPIV support in the FLOGI LS_ACC service parameters. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: vport link handling and fc_vport state managmentChris Leech2-15/+132
NPIV vports are managed in libfc by changing their virtual link state when the parent N_Ports internal state changes. The vport link is only online when the N_Port is in a ready state (logged into the fabric). vport_state is updated as needed in this patch as well, currently the states LINKDOWN, INITIALIZING, ACTIVE, DSIABLED, and NO_FABRIC_SUPP are used. This also changes the fc_host port_state handling to differentiate between LINKDOWN and OFFLINE. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: add some generic NPIV support routines to libfcChris Leech3-1/+117
Adds a function to create a new VN_Port instances, which share the EM list with the N_Port, VN_Port lookup by fabric ID when responding to a new request (otherwise the exchange lookup from the N_Ports EM list is trusted to return an exchange with a cached lport value for the correct VN_Port), a pointer to a fc_vport structure for VN_Ports, and flags to indicate if an N_Port supports NPIV and if the switch/fabric allows it. Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: changes to libfc_host_alloc to consolidate initialization with ↵Chris Leech3-12/+7
allocation I'd like to keep basic initialization together with allocation, which means this can't just be a tail-call to scsi_host_alloc. This is needed to create a generic libfc host allocation routine for NPIV VN_Ports, which will share the exchange ID space (through sharing exchange manager structures) with the parent lport. In order to clone the exchange manager list when the lport is allocated, the list head must be initialized earlier. Also, update fnic to use the libfc_host_alloc so that later changes do not break it. (contribution by Joe Eykholt) Signed-off-by: Chris Leech <[email protected]> Signed-off-by: Joe Eykholt <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Move libfc_init and libfc_exit to fc_libfc.cRobert Love3-40/+64
These routines are for the libfc kernel module and should be in the libfc .c file. Moving the libfc __init routine into fc_libfc.c caused the creation of the fc_setup_fcp() and fc_destroy_fcp() routines so that scsi_pkt_cachep was not exposed outside of fc_fcp.c. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Add libfc/fc_libfc.[ch] for libfc internal routinesRobert Love8-7/+147
include/scsi/libfc.h is currently loaded with common code shared between libfc's sub-modules as well as shared between libfc and fcoe. Previous patches attempted to move out non-common code. This patch creates two files for common libfc routines that will not be shared with fcoe, fnic or any other LLDs. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Remove fc_fcp_completeRobert Love1-17/+0
This function is never used, let's remove it. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: Move non-common routines and prototypes out of libfc.hRobert Love1-152/+177
This patch moves all non-common routines and function prototypes out of libfc.h and into the appropriate .c files. It makes these routines 'static' when necessary and removes any unnecessary EXPORT_SYMBOL statements. A result of moving the fc_exch_seq_send, fc_seq_els_rsp_send, fc_exch_alloc and fc_seq_start_next prototypes out of libfc.h is that they were no longer being imported into fc_exch.c when libfc.h was included. This caused errors where routines in fc_exch.c were looking for undefined symbols. To fix this this patch reorganizes fc_seq_alloc, fc_seq_start_next and fc_seq_start_next_locked. This move also made it so that fc_seq_start_next_locked did not need to be prototyped at the top of fc_exch.c. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fcoe: Increase FCOE_MAX_LUN to 0xFFFF (65535)Robert Love1-1/+1
The maximum number of LUNs was far too low. This value is what most other FC HBAs are using. Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fnic: Allocate OS interrupt resources just before enabling interruptsAbhijeet Joglekar1-11/+10
The OS interrupt vectors were getting allocated before the interrupt resources were mapped from hardware. For Legacy interrupts, since they are shared with other devices, as soon as an interrupt is registered with the OS, it can fire while the fnic isr resource is still unmapped. This can cause crash because of access to unmapped resources. For MSIX and MSI, since interrupts are not shared with other devices, this problem didnt happen, because the interrupt is enabled as the last step before returning from _probe. For Legacy however, since the interrupt is shared, the handler can be called as soon as it is registered. Solution is to register interrupt handlers with OS as last step before enabling device interrupts. Signed-off-by: Abhijeet Joglekar <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi_transport_fc: Introduce helper function for blocking scsi_ehChristof Schmitt4-65/+36
Move the duplicated code from FC LLDs to SCSI FC transport class. Acked-by: James Smart <[email protected]> Acked-by: Giridhar Malavali <[email protected]> Acked-by: Abhijeet Joglekar <[email protected]> Signed-off-by: Christof Schmitt <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi_lib: fix potential NULL dereferenceJiri Slaby1-3/+6
Stanse found a potential NULL dereference in scsi_kill_request. Instead of triggering BUG() in 'if (unlikely(cmd == NULL))' branch, the kernel will Oops earlier on cmd dereference. Move the dereferences after the if. Signed-off-by: Jiri Slaby <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] 3w-sas: Add new driver for LSI 3ware 9750adam radford4-0/+2332
[jejb: fix up for new queue depth code] Signed-off-by: Adam Radford <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi_debug: fix Thin provisioning supportDouglas Gilbert1-4/+9
While testing scsi_debug with these patches I found a problem with the Block Limits VPD page function. The length returned by the inquiry_evpd_b0() function was too short. A patch to fix that and a cosmetic change (that the form factor of scsi_debug is less than 1.8 inches) is attached. Signed-off-by: Douglas Gilbert <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA.Alok Kataria4-0/+1813
This is a driver for VMware's paravirtualized SCSI device, which should improve disk performance for guests running under control of VMware hypervisors that support such devices. Signed-off-by: Alok N Kataria <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi_dh: Make alua hardware handler's activate() asyncChandra Seetharaman1-59/+73
Make the activate function asynchronous by using blk_execute_rq_nowait() Signed-off-by: Chandra Seetharaman <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi_dh: Make hp hardware handler's activate() asyncChandra Seetharaman1-33/+54
Make the activate function asynchronous by using blk_execute_rq_nowait() Signed-off-by: Chandra Seetharaman <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi_dh: Make rdac hardware handler's activate() asyncChandra Seetharaman1-8/+100
Batch up MODE_SELECT in rdac device handler. LSI RDAC storage has the capability of handling mode selects for multiple luns in a same command. Make use of that ability to send as few MODE SELECTs as possible to the storage controller as possible. This patch creates a work queue and queues up activate requests when a MODE SELECT is sent down the wire. When that MODE SELECT completes, it compiles queued up activate requests for multiple luns into a single MODE SELECT. This reduces the time to do failover/failback of large number of LUNS. Signed-off-by: Babu Moger <[email protected]> Signed-off-by: Chandra Seetharaman <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi_dh: Change the scsidh_activate interface to be asynchronousChandra Seetharaman5-13/+32
Make scsi_dh_activate() function asynchronous, by taking in two additional parameters, one is the callback function and the other is the data to call the callback function with. Signed-off-by: Chandra Seetharaman <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: add queue_depth ramp upVasu Dev1-0/+3
Adjust queue_depth on fc_change_queue_depth call back with reason SCSI_QDEPTH_RAMP_UP, no additional resource adjustments necessary for libfc. Signed-off-by: Vasu Dev <[email protected]> Acked-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] add queue_depth ramp up codeVasu Dev4-4/+88
Current FC HBA queue_depth ramp up code depends on last queue full time. The sdev already has last_queue_full_time field to track last queue full time but stored value is truncated by last four bits. So this patch updates last_queue_full_time without truncating last 4 bits to store full value and then updates its only current usages in scsi_track_queue_full to ignore last four bits to keep current usages same while also use this field in added ramp up code. Adds scsi_handle_queue_ramp_up to ramp up queue_depth on successful completion of IO. The scsi_handle_queue_ramp_up will do ramp up on all luns of a target, just same as ramp down done on all luns on a target. The ramp up is skipped in case the change_queue_depth is not supported by LLD or already reached to added max_queue_depth. Updates added max_queue_depth on every new update to default queue_depth value. The ramp up is also skipped if lapsed time since either last queue ramp up or down is less than LLD specified queue_ramp_up_period. Adds queue_ramp_up_period to sysfs but only if change_queue_depth is supported since ramp up and queue_ramp_up_period is needed only in case change_queue_depth is supported first. Initializes queue_ramp_up_period to 120HZ jiffies as initial default value, it is same as used in existing lpfc and qla2xxx. -v2 Combined all ramp code into this single patch. -v3 Moves max_queue_depth initialization after slave_configure is called from after slave_alloc calling done. Also adjusted max_queue_depth check to skip ramp up if current queue_depth is >= max_queue_depth. -v4 Changes sdev->queue_ramp_up_period unit to ms when using sysfs i/f to store or show its value. Signed-off-by: Vasu Dev <[email protected]> Tested-by: Christof Schmitt <[email protected]> Tested-by: Giridhar Malavali <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fcoe, libfc: fix an libfc issue with queue ramp down in libfcVasu Dev2-9/+7
The cmd_per_lun value is used by scsi-ml as fall back lowest queue_depth value but in case of libfc cmd_per_lun is set to same value as max queue_depth = 32. So this patch reduces cmd_per_lun value to 3 and configures each lun with default max queue_depth 32 in fc_slave_alloc. Signed-off-by: Vasu Dev <[email protected]> Acked-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: convert to scsi_track_queue_fullMike Christie1-18/+9
This converts the libfc using scsi_track_queue_full to track the queue full from the change_queue_depth callback. Signed-off-by: Mike Christie <[email protected]> Signed-off-by: Vasu Dev <[email protected]> Acked-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] scsi error: have scsi-ml call change_queue_depth to handle QUEUE_FULLMike Christie1-1/+26
This has scsi-ml call the change_queue_depth functions when we get a QUEUE_FULL. It will only change the queue depth if change_queue_depth is set because the LLD may have to modify some internal resources, so I thought this would be the safest route. Signed-off-by: Mike Christie <[email protected]> -v2 Limits change_queue_depth to only all luns of target by adding channel check while iterating for all luns of Scsi_Host. This is same as currently qla2xxx FC HBA does on QUEUE_FULL event. Signed-off-by: Vasu Dev <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] modify change_queue_depth to take in reason why it is being calledMike Christie17-21/+85
This patch modifies scsi_host_template->change_queue_depth so that it takes an argument indicating why it is being called. This will be used so that if a LLD needs to do some extra processing when handling queue fulls or later ramp ups, it can do so. This is a simple port of the drivers setting a change_queue_depth callback. In the patch I just have these LLDs adjust the queue depth if the user was requesting it. Signed-off-by: Mike Christie <[email protected]> [Vasu.Dev: v2 Also converted pmcraid_change_queue_depth and then verified all modules compile using "make allmodconfig" for any new build warnings on X86_64. Updated original description after combing two original patches from Mike to make this patch git bisectable.] Signed-off-by: Vasu Dev <[email protected]> [jejb: fixed up 53c700] Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] pm8001: add SAS/SATA HBA driverjack wang12-0/+8716
This driver supports PMC-Sierra PCIe SAS/SATA 8x6G SPC 8001 chip based host adapters. Signed-off-by: Jack Wang <[email protected]> Signed-off-by: Lindar Liu <[email protected]> Signed-off-by: Tom Peng <[email protected]> Signed-off-by: Kevin Ao <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] be2iscsi: Adding Ring Mode Wrb's V3Jayamohan Kallickal3-48/+169
This patch adds support for ring based wrbs Signed-off-by: Jayamohan Kallickal <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] be2iscsi: Adding msix and mcc_rings V3Jayamohan Kallickal8-331/+1030
This patch enables msix for be2iscsi. It also enables use of mcc_rings for fw commands. Since the mcc eq creation is dependent on msix I am sending as one patch Signed-off-by: Jayamohan Kallickal <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] libfc: fix free of fc_rport_priv with timer pendingJoe Eykholt1-19/+50
Timer crashes were caused by freeing a struct fc_rport_priv with a timer pending, causing the timer facility list to be corrupted. This was during FC uplink flap tests with a lot of targets. After discovery, we were doing an PLOGI on an rdata that was in DELETE state but not yet removed from the lookup list. This moved the rdata from DELETE state to PLOGI state. If the PLOGI exchange allocation failed and needed to be retried, the timer scheduling could race with the free being done by fc_rport_work(). When fc_rport_login() is called on a rport in DELETE state, move it to a new state RESTART. In fc_rport_work, when handling a LOGO, STOPPED or FAILED event, look for restart state. In the RESTART case, don't take the rdata off the list and after the transport remote port is deleted and exchanges are reset, re-login to the remote port. Note that the new RESTART state also corrects a problem we had when re-discovering a port that had moved to DELETE state. In that case, a new rdata was created, but the old rdata would do an exchange manager reset affecting the FC_ID for both the new rdata and old rdata. With the new state, the new port isn't logged into until after any old exchanges are reset. Signed-off-by: Joe Eykholt <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fnic: Pad the unused bytes of CDB to 0sAbhijeet Joglekar2-2/+5
Signed-off-by: Abhijeet Joglekar <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2009-12-04[SCSI] fnic: Set max_cmd_len to driver supported CDB lengthAbhijeet Joglekar2-1/+2
Signed-off-by: Abhijeet Joglekar <[email protected]> Signed-off-by: Robert Love <[email protected]> Signed-off-by: James Bottomley <[email protected]>