09 Mar, 2010
1 commit
-
The issue occur while deleting 60 virtual ports through the sys
interface /sys/class/fc_vports/vport-X/vport_delete. It happen while in
a mistake each request sent twice for the same vport. This interface is
asynchronous, entering the delete request into a work queue, allowing
more than one request to enter to the delete work queue. The result is a
NULL pointer. The first request already delete the vport, while the
second request got a pointer to the vport before the device destroyed.
Re-create vport later cause system freeze.Solution: Check vport flags before entering the request to the work queue.
[jejb: fixed intlong problem on spinlock flags variable]
Signed-off-by: Gal Rosen
Acked-by: James Smart
Cc: Stable Tree
Signed-off-by: James Bottomley
07 Mar, 2010
22 commits
-
Upgrade the upstream driver from 2.0.0.0 to 2.1.2.1.
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
When IO is completed with underrun and with good SCSI status, check if
the transferred bytes against scsi_cmnd->underflow, which is set to
minimum number of bytes that must be transferred for this command, if
is less than required minimum, complete the IO with DID_ERROR.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
MS module did not invoke fdmi offline in all cases,
call fdmi offline when ms module receives a port offline,
so that fdmi offline is from one place in the ms module.Make changes to handle 10G speed in the conversion routine.
Replaced the usage of bfa_adapter_attr_s struct with specific API's.
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Modified the portstats get/clear logic for port physical/FCoE/QoS stats.
Added more stats to FC
Fixed some issues with FCoE stats collection.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
bfa_ioc_attr_s is a big structure and some times could cause
stack overflow if defined locally, so add specific APIs that
are needed to replace the use of ioc_attr local var.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Rename pport structures to fcport in BFA FCS, to resolve confusion
about the port structures in the firmware, and make sure the SG page
is setup correctly.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Currently BFA was not checking for IOC down condition when issuing
getstats/clearstatsAdd check to see if IOC is operational, before issuing
getstats/clearstats.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Use dummy interrupt handlers till chip initialization is complete.
Install real interrupt handlers after chip initialization.Also removed msix installation code in bfa_iocfc_init().
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Fixed the issue of not acknowledging the command queue
full-to-non-full interrupt. Implemented separate acknowledging
functions for different ASIC and interrupt mode.Fixed the case of missing CPE interrupt by always processing the
pending requests in the completion path.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
ioc_recover failed to work in fcmode.
Fixed the code to initialize the ioc_regs.err_set during the
notify_hbfail.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Replace enum types with int and rearrange the fields to fix some
alignment issue.Local var ioc_attr is causing the stack to overflow, so removed the
usage of the local ioc_attr var and now invoking an API to return the
ioc_type.Fix some AEN issues.
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Introduce a link notification state machine to handle next incoming
link events while the current event is being delivered to the driver.When the event has been processed by the driver, the link notification
state machine will queue the next event (if there is any) to the
driver.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Made FCS authentication related changes to state machines and header
files.Made changes in FCS state machines to handle the case when secret
string is NULL.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Changed PCI VPD to incorporate specific OEM vendors.
Added FCoE specific interrupt latency and delay params.
Added some variables needed by FIP 2.0.
Added some new logging and tracing definitions.
Added reserved members to make the structures (IOC, IOCFC) 64bit aligned.
Changed the module identifiers, as some files were moved.
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Copy fpma MAC when requested by user space application. Added FPMA
mac address to the lport attributes structure.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Make sure that in direct attach mode, we do not query the name server
after a target is marked offline.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Replace bfa_assert() with bfa_sm_fault() to get unhandled events for
debugging.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Clear LL_HALT and PSS_ERR bit in the interrupt status register on an IOC crash.
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Add support for faster IOC recovery after failure.
Split bfa_ioc.c into three files:
bfa_ioc.c: Common code shared between crossbow and catapult ASIC's.bfa_ioc_cb.c: Code specific to the crossbow, reg mapping and
interrupt related routines.bfa_ioc_ct.c: Code specific to the catapult, reg mapping and
interrupt related routines.Fix to make sure IOC reinitialize's properly on enable request -
update the ioc_fwstate reg with BFI_IOC_FAIL on ioc disable mbox cmd
timeout.Makefile changes to support the 2 newly added files bfa_ioc_cb.c and
bfa_ioc_ct.c.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley
04 Mar, 2010
8 commits
-
bfad.c & bfad_drv.h:
* Created a kernel thread from pci_probe that does the bfad start
operations after BFA init done on a firmware mismatch.
* The kernel thread on a fw mismatch waits for an event from IOC
call back and is woken up from bfa_cb_init() on BFA init success.
* In normal cases of no firmware mismatch this thread is terminated
in pci_probe.bfa_fcs_lport.c, fabric.c, fcs_lport.h & vport.c:
* Split the lport init to attach time and init time code, so that
proper config attributes are set after firmware mismatch.bfa_iocfc.c:
* Handle an IOC timer issue, where the IOC timer would expire before
the init completion and send Init fail event to the driver,
however IOC init continues and completes successfully at the later
stage. The bfa and driver were not handling this kind of deferred
init completion.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Brocade CNA currently supports only 190 vports (instead of 191),
since there are only 192 unicast cam entries reserved for FCoE.Brocade CNA has a total of 256 unicast cam entries (192 FCoE + 64 LL)
192 cam entries = 1 burned in mac + 1 baseport FPMA mac + 190 vport
FPMA macs.Made changes to the code to support only 190 vports.
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Split bfa_fcs_init() into bfa_fcs_attach() and bfa_fcs_init().
Removed empty function definitions in FCS modules
Modified driver to call bfa_fcs_attach() and bfa_fcs_init() as needed.
Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Added a FCS function to be called during driver init, to set the FDMI
Driver parameter.fdmi.c: Created a disabled state when fdmi is disabled.
bfad.c:
* Added fdmi_enable driver parameter.
* Added support to call bfa_fcs_set_fdmi_param() to initialize fcs
fdmi setting.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
bfa_intr.c: Enable new halt interrupt in BFA.
bfi_ctreg.h: Expose new halt interrupt bit definition to host.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
bfa_ioc.c:
- Enable IOC auto-recovery by default.
- When CNA is in FC mode, return IOC type as FC (not FCoE)bfa_iocfc.c:
- Set fcmode before pci initialization/setup.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Clear virtual links was not propagated upwards to bfa from fw.
This resulted in HBA and switch being in an inconsistent state.So defined a new LPS event for clear virtual link on a vport,
and also now clear virtual link on a baseport, is sent as a
link down event from the fw.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley -
Added separate MSI-X module parameters to selectively
enable / disable MSI-X interrupts for both Brocade HBA and CNA's.Signed-off-by: Krishna Gudipati
Signed-off-by: James Bottomley
03 Mar, 2010
9 commits
-
RAID attributes uses scsi_is_sdev_device() to gate some SCSI specific
checking code. This causes two problems. Firstly if SCSI == n just
defining scsi_is_sdev_device() to return false might not be enough to
prevent gcc from emitting the code (and thus referring to undefined
symbols), so this needs surrounding with an ifdef. Secondly, using
scsi_is_sdev_device() when SCSI is either y or m gives a subtle
problem in the m case: raid_attrs must also be m to use the symbol.
Do the usual Kconfig jiggery-pokery to fix this.Reported-by: Randy Dunlap
Signed-off-by: James Bottomley -
Doing CHECK="smatch --two-passes gives:
drivers/scsi/osd/osd_initiator.c +1435 osd_finalize_request warning: assignment to 'ret' was never usedWhich is an unchecked possible allocation failure, Fixed.
Reported-by: Dan Carpenter
Signed-off-by: Boaz Harrosh
Signed-off-by: James Bottomley -
Commit e3deec09 incorrectly assumed that the B0 and B1 page lengths were
limited to 32 bytes. The B0 VPD page length is defined to be 64 bytes
when the device supports thin provisioning. B1 is always defined to be
64 bytes.Signed-off-by: Martin K. Petersen
Reported-by: Dan Carpenter
Signed-off-by: James Bottomley -
Signed-off-by: James Smart
Signed-off-by: James Bottomley -
- Added round robin FCF failover on initial or FCF rediscovery FLOGI failure.
Signed-off-by: James Smart
Signed-off-by: James Bottomley -
- Prevent Vport discovery after reg_new_vport completes when physical
logged in using FDISC.
- Remove fast FCF failover fabric name matching. Allow failover to FCFs
connected to different fabrics.
- Added fast FCF failover in response to FCF DEAD event on current
FCF record.Signed-off-by: James Smart
Signed-off-by: James Bottomley -
Signed-off-by: James Smart
Signed-off-by: James Bottomley -
- Clear LPFC_DRIVER_ABORTED on FCP command completion.
- Clear exchange busy flag when I/O is aborted and found on aborted list.
- Free sglq when XRI_ABORTED event is processed before release of IOCB.
- Only process iocb as aborted when LPFC_DRIVER_ABORTED is set.Signed-off-by: James Smart
Signed-off-by: James Bottomley -
- Add Logging message for critial errors.
- Remove unused variable from lpfc_nodev_tmo_show
- Update supress_link_up parameter with #define values.Signed-off-by: James Smart
Signed-off-by: James Bottomley