18 Feb, 2010
4 commits
-
Signed-off-by Bo Yang
Signed-off-by: James Bottomley -
driver fixed the device update issue after get the AEN PD delete/ADD
and LD add/delete from FW.Signed-off-by Bo Yang
Signed-off-by: James Bottomley -
Driver issue the get ld list to fw to get the logic drive list.
Driver will keep the logic drive list for the internal use after
driver load.Signed-off-by Bo Yang
Signed-off-by: James Bottomley -
Add the pad_0 in mfi frame structure to 0 to fix the context value
larger than 32bit value issue.Signed-off-by Bo Yang
Signed-off-by: James Bottomley
09 Feb, 2010
34 commits
-
Update Driver version to 8.3.8
Signed-off-by: James Smart
Signed-off-by: James Bottomley -
Add the following new vendor specific BSG commands.
- Add LPFC_BSG_VENDOR_GET_MGMT_REV command
- Add LPFC_BSG_VENDOR_MBOX command
- Add LPFC_BSG_VENDOR_DIAG_MODE command
- Add LPFC_BSG_VENDOR_DIAG_TEST commandSigned-off-by: James Smart
Signed-off-by: James Bottomley -
Modify the following BSG commands to operate asynchronously.
- FC_BSG_RPT_ELS
- FC_BSG_RPT_CT
- LPFC_BSG_VENDOR_GET_CT_EVENT
- LPFC_BSG_VENDOR_SET_CT_EVENTSigned-off-by: James Smart
Signed-off-by: James Bottomley -
Create lpfc_bsg.h
- structures, etc used by bsg-related routines.Signed-off-by: James Smart
Signed-off-by: James Bottomley -
Update BSG infrastructure to handle new vendor specific BSG commands.
Signed-off-by: James Smart
Signed-off-by: James Bottomley -
Display Logical Link Speed when supported and is non-zero.
Signed-off-by: James Smart
Signed-off-by: James Bottomley -
Discovery relates changes:
- Separated VPI_REGISTERED state of physical port into VFI_REGISTERED and
VPI_REGISTERED state so that driver can unregister physical port VPI
independent of VFI.
- Add code to unregister, re-init and re-register physical port VPI
when physical port NportID change.
- Add code to unregister and re-register VPI of a vport when its Nport
ID change.
- Add code in FDISC completion path to re-start FLOGI discovery when
a FDISC complete with LOGIN_REQUIRED reason code.
- Fix a memory leak in lpfc_init_vpi_cmpl
- Add code to start a timer for vport to retry FDISC when CVL is received
by a vport or physical port. If all Nports receive CVLs, then all timers
are cancelled and a logical link level discovery will be started after
one second.
- Flush ELS commands after killing all delayed ELS commands.Signed-off-by: James Smart
Signed-off-by: James Bottomley -
Fix hardware/SLI relates issues:
- Handle XB bit so that ELS XRIs are not prematurely released.
- Handle XB bit so that FCP XRIs are not prematurely released.
- Define new security SLI Commands.
- Remove unused security SLI commands
- Skip receive data size parameter check on received FLOGI.
- Added LPFC_USE_FCPWQIDX flag to iocb to force SLI layer
to submit abort WQE on same WQ as the command WQE.Signed-off-by: James Smart
Signed-off-by: James Bottomley -
request_firmware() may sleep and it appears to be safe to release the
spinlock here.Signed-off-by: Ben Hutchings
Cc: stable@kernel.org
Signed-off-by: James Bottomley -
This patch correct the math done for num_cxn_wrb
Signed-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
This patch corrects the chipopcode for text and chooses
correct paramters for that commandSigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
This patch ensures that wrb is cleanly resued for io path
and is memset to zero for non io pathSigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
This patch fixes an issue where return was not called properly.
Thanks to Mike Christie for spotting thisSigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
This patch adds proper checking of value in for hba state.
We would be adding more states later onSigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
This patch fixes the first_burst being modified
instead of max_burstSigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
This patch replaces 2009 with 2010 in copyright statement
Signed-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
Ring mode is not used. This patch removes the code.
Signed-off-by: Mike Christie
Signed-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
pvscsi_setup_msix() expects 'irq' argument to be an int but is being
passed unsigned int. Unsigned int is more proper type for IRQ number
so let's use it. This shuts off a compile warning with recent
compilers.Signed-off-by: Dmitry Torokhov
Acked-by: Alok Kataria
Signed-off-by: James Bottomley -
DIF and DIX errors are handled identically at this point. Collapse the
switch cases into one and let scsi_io_completion print result and sense
data.Signed-off-by: Martin K. Petersen
Signed-off-by: James Bottomley -
Regardless of the flag state, the branches execute the same code
Signed-off-by: Roel Kluin
Acked-by: James Smart
Signed-off-by: James Bottomley -
This fix allows the driver to load when the FW allows more cids
than than the driver supports. The driver will limit the number of cid
to what it can support. There was no reason to fail the driver load,so,
correcting thatSigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
The number of SGE's supported is fixed to what the
chip expects. Also, the max sectors set to tested valuesSigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
The patch fixes a but where the sg_next is not assigned and hence
the first sge was being resused wronglySigned-off-by: Jayamohan Kallickal
Signed-off-by: James Bottomley -
Version upgraded to 04.100.01.00.
Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
If TLR is supported for end device, MPT2SAS driver will enable the TLR
bit in the SCSI_IO for every request. If there is a response with
MPI2_SCSITASKMGMT_RSP_INVALID_FRAME, the driver will turn off the TLR
logic.[jejb: updated to new transport class TLR API]
Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
Update header to latest MPI SPEC revision.
Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
Added new callbacks phy_enable and set_phy_speed in the
mpt2sas_transport_functions template. This will allow end user to
enable/disable phys and change links rates using the SysFS interface.
Current implementation only supports direct attached phys, but we
could in the future add support for expander based phys.
A new subroutine mpt2sas_config_set_sas_iounit_pg1 was added;
this wrapper function used to send request to controller firmware to modify
the phys and link rates. A new subroutine _transport_find_local_phy was added;
a function for easly obtaining the local phy object for direct attached.Example to disable a phy
echo 0 > /sys/class/phy3:0/enableExample to enable the same phy
echo 1 > /sys/class/phy3:0/enableExample to change the link rate to 1.5
#echo "1.5 Gbit" > /sys/class/phy3:0/maximum_linkrate
#cat /sys/class/phy3:0/negotiated_linkrate
1.5 GbitExample to change the link rate to 3.0
#echo "3.0 Gbit" > /sys/class/phy3:0/maximum_linkrate
#cat /sys/class/phy3:0/negotiated_linkrate
3.0 GbitExample to change the link rate to 6.0
#echo "6.0 Gbit" > /sys/class/phy3:0/maximum_linkrate
#cat /sys/class/phy3:0/negotiated_linkrate
6.0 GbitSigned-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
Adding support for raid transport layer. This will provide sysfs attributes
containing raid level, state, and resync rate.MPT2SAS module will select RAID_ATTRS.
Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
On ppc64, an 32bit application was failing due to data buffers not being
copied properly from user to kernel memory. The problem due to improper
conversion of 32 to 64 bit pointers. The fix is to use compat_ptr to
setup the pointer compatibility in the routine _ctl_compat_mpt_command.Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
(1) change the formentioned string from logging_level to fwfault_debug
(2) set ioc->fwfault_debug to the command line option mpt2sas_fwfault_debug
setting at driver load time.Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
Use resource_size_t to define the type resource for the system interface
register set.
The existing implementation was using "unsigned long" which would be 32 bit
in 32 bit OS. If 32 bit OS is using 64 bit physical
address space for the system interface register set, we need to shift to
using resource_size_t which takes care of physical address space.Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
The driver was modified to return -ENODATA when there is a timeout
via ioctl path.Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
The driver hangs when doing `rmmod mpt2sas` if there are any
IR volumes present.The hang is due the scsi midlayer trying to access the
IR volumes after the driver releases controller resources. Perhaps when
scsi_remove_host is called,the scsi mid layer is sending some request.
This doesn't occur for bare drives becuase the driver is already reporting
those drives deleted prior to calling mpt2sas_base_detach.
To solve this issue, we need to delete the volumes as well.Signed-off-by: Kashyap Desai
Reviewed-by: Eric Moore
Signed-off-by: James Bottomley -
The mpt2sas driver wants to use transport layer retries (TLR) so the
simplest thing to do seems to be to add the enabling flags and checks
to the SAS transport class, since they're a SAS specific protocol
feature.Signed-off-by: James Bottomley
19 Jan, 2010
2 commits
-
A Gentoo bug report [1] showed that as of 2.6.31 lpfc only uses INTx interrupts.
This patch restores lpfc's ability to support MSI-X/MSI interrupts that the
"Addition of SLI4 Interface - Base Support" patch [2] broke.
It reestablishes MSI-X as the default interrupt method and in case MSI-X is not
supported lpfc_sli{4,}_enable_intr fallbacks to MSI and then to INTx.[1]: http://bugs.gentoo.org/show_bug.cgi?id=296319
[2]: commit da0436e915a5c17ee79e72c1bf978a4ebb1cbf4d[James Smart:
Background:
Nothing Broke. This was intended.We had originally enabled MSI-X by default, but in qualification within the
last 12 months, we encountered a major catch-22:There were at least 4 platforms, from 2 major OEMs, that :
- Say they support MSI-X - platform routines work and act as if they do.
- We enable it, generate a test interrupt to check they really do deliver it,
and it works.
- But shortly after attachment, the system hangs or loses interrupts,
resulting in a bad system behavior.Given the distro's picking up the 2.6.32 kernel, we had to stick with a
default of MSI-X off, with user-enabled MSI-X as these platforms couldn't get
fixed.However, we're also now encountering platforms that require MSI-X and never
INTx, so we must change. It's desired also for also for performance reasons.So - now (2.6.33) is the right time to re-enable MSI-X by default.
]
[jejb: fix up comment on default values]Signed-off-by: George Kadianakis
Acked-by: James Smart
Signed-off-by: James Bottomley -
Signed-off-by: Giridhar Malavali
Signed-off-by: James Bottomley