]> www.infradead.org Git - users/jedix/linux-maple.git/log
users/jedix/linux-maple.git
13 years agoqla2xxx: Handle device mapping changes due to device logout.
Arun Easi [Wed, 11 Apr 2012 06:55:38 +0000 (12:25 +0530)]
qla2xxx: Handle device mapping changes due to device logout.

A device logout sent in the delete path of a fcport would clear the
port handle binding inside the firmware. This could lead to queued
work items for the fcport, if any, getting incorrect results. This
patch fixes the issue by checking for device name changes after a
call to get port database.

JIRA Key: V2632FC-131

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Avoid invalid request queue dereference for bad response packets.
Arun Easi [Wed, 11 Apr 2012 06:38:48 +0000 (12:08 +0530)]
qla2xxx: Avoid invalid request queue dereference for bad response packets.

JIRA Key: V2632FC-144

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Stop iteration after first failure in *_id functions.
Arun Easi [Thu, 19 Jan 2012 20:59:41 +0000 (12:59 -0800)]
qla2xxx: Stop iteration after first failure in *_id functions.

JIRA Key: V2632FC-153

13 years agoqla2xxx: Fix incorrect register access in qla2x00_start_iocbs().
Arun Easi [Sat, 14 Jan 2012 00:21:43 +0000 (05:51 +0530)]
qla2xxx: Fix incorrect register access in qla2x00_start_iocbs().

JIRA Key: V2632FC-147

13 years agoqla2xxx: Fix to update proper command completion upon command retries.
Andrew Vasquez [Mon, 16 Jan 2012 19:52:25 +0000 (11:52 -0800)]
qla2xxx: Fix to update proper command completion upon command retries.

Pass right completion om processing continuation status IOCB.

JIRA Key: V2632FC-149

13 years agoqla2xxx: Hard code the number of loop entries at 128.
Chad Dupuis [Fri, 13 Jan 2012 15:08:35 +0000 (09:08 -0600)]
qla2xxx: Hard code the number of loop entries at 128.

Do not use ha->max_fibre_devices in loop topology since the maximum number of
entries will always be 128 and so we don't have to worry about changing
ha->max_fibre_devices back.

JIRA Key: V2632FC-146

13 years agoRevert "qla2xxx: Return N-port id to firmware on logout."
Giridhar Malavali [Wed, 11 Apr 2012 06:14:16 +0000 (11:44 +0530)]
Revert "qla2xxx: Return N-port id to firmware on logout."

This reverts commit b6c09482a0c1f7aaa3f84fb83908f131ae7a3736.

13 years agoqla2xxx: Reference proper scsi_qla_host structure for processing non-scsi SRB commands.
Giridhar Malavali [Sat, 24 Dec 2011 06:44:16 +0000 (22:44 -0800)]
qla2xxx: Reference proper scsi_qla_host structure for processing non-scsi SRB commands.

JIRA Key: V2632FC-137

13 years agoqla2xxx: Fix wrong decrement, null sp access.
Arun Easi [Tue, 20 Dec 2011 17:48:04 +0000 (09:48 -0800)]
qla2xxx: Fix wrong decrement, null sp access.

JIRA Key: V2632FC-135

13 years agoqla2xxx: Further consolidation of SRB related code changes.
Giridhar Malavali [Wed, 11 Apr 2012 06:03:27 +0000 (11:33 +0530)]
qla2xxx: Further consolidation of SRB related code changes.

JIRA Key: V2632FC-134

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Complete mailbox command timedout to avoid initialization failures during...
Giridhar Malavali [Wed, 14 Dec 2011 01:17:47 +0000 (17:17 -0800)]
qla2xxx: Complete mailbox command timedout to avoid initialization failures during next reset cycle.

Complete the mailbox command timed out before initiating another abort cycle
to recover so that mailbox commands issued during next reset cycle don't fail
due to pending mailbox access timeout.

JIRA Key: V2632FC-122

13 years agoqla2xxx: Add ha->max_fibre_devices to keep track of the maximum number of targets.
Chad Dupuis [Tue, 10 Apr 2012 11:54:05 +0000 (17:24 +0530)]
qla2xxx: Add ha->max_fibre_devices to keep track of the maximum number of targets.

Add a field to the qla_hw_data struct to allow us to set the maximum number of
fabric devices on a per adapter basis based on ISP type.

JIRA Key: V2632FC-125

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Cache swl during fabric discovery.
Andrew Vasquez [Tue, 10 Apr 2012 11:52:14 +0000 (17:22 +0530)]
qla2xxx: Cache swl during fabric discovery.

Rather than continuously allocating and freeing swl within the discovery
process, simply pre-allocate it the first time that it's needed, cache it
through the rest of the lifecycle of the driver and free it at module unload.

JIRA Key: V2632FC-124

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Remove EDC sysfs interface.
Joe Carnuccio [Tue, 10 Apr 2012 11:50:36 +0000 (17:20 +0530)]
qla2xxx: Remove EDC sysfs interface.

Since the new firmware periodically resets the EDC, the EDC is now
not able to be flashed while the firmware is running, so the user
applications must be prevented from flashing the EDC, and this is
achieved by removing the EDC sysfs interface.

JIRA Key: V2632FC-112

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Perform firmware dump procedure on mailbox command timeout.
Chad Dupuis [Wed, 7 Dec 2011 21:51:34 +0000 (15:51 -0600)]
qla2xxx: Perform firmware dump procedure on mailbox command timeout.

JIRA Key: V2632FC-39

13 years agoqla2xxx: Change the log message when previous dump is available to retrieve for ISP82xx.
Giridhar Malavali [Thu, 1 Dec 2011 18:31:01 +0000 (12:31 -0600)]
qla2xxx: Change the log message when previous dump is available to retrieve for ISP82xx.

JIRA Key: V2632FC-103

13 years agoqla2xxx: Log messages to use correct vha.
Arun Easi [Tue, 10 Apr 2012 11:46:39 +0000 (17:16 +0530)]
qla2xxx: Log messages to use correct vha.

JIRA Key: V2632FC-99

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Add new message when a new loopid is assigned.
Chad Dupuis [Tue, 10 Apr 2012 11:42:19 +0000 (17:12 +0530)]
qla2xxx: Add new message when a new loopid is assigned.

JIRA Key: V2632FC-98

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Fix ql_dbg arguments.
Arun Easi [Wed, 2 Nov 2011 02:03:13 +0000 (19:03 -0700)]
qla2xxx: Fix ql_dbg arguments.

JIRA Key: V2632FC-96

13 years agoqla2xxx: Use ql_log* #define's in ql_log() and ql_log_pci().
Chad Dupuis [Tue, 10 Apr 2012 11:40:10 +0000 (17:10 +0530)]
qla2xxx: Use ql_log* #define's in ql_log() and ql_log_pci().

JIRA Key: V2632FC-127

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Convert remaining printk's to ql_log format.
Chad Dupuis [Tue, 10 Apr 2012 11:35:01 +0000 (17:05 +0530)]
qla2xxx: Convert remaining printk's to ql_log format.

JIRA Key: V2632FC-126

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Print mailbox command opcode and return code when a command times out.
Chad Dupuis [Tue, 10 Apr 2012 11:27:25 +0000 (16:57 +0530)]
qla2xxx: Print mailbox command opcode and return code when a command times out.

JIRA Key: V2632FC-102

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Remove check for null fcport from host reset handler.
Michael Christie [Tue, 10 Apr 2012 11:20:23 +0000 (16:50 +0530)]
qla2xxx: Remove check for null fcport from host reset handler.

Remove the check for a NULL fcport so that the host reset will run
unconditionally to unwedge any commands before the device is offlined and to
prevent a quick runthrough of the SCSI error handling.

JIRA Key: V2632FC-89

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Correct out of bounds read of ISP2200 mailbox registers.
Andrew Vasquez [Fri, 28 Oct 2011 21:40:44 +0000 (14:40 -0700)]
qla2xxx: Correct out of bounds read of ISP2200 mailbox registers.

From Olatunji:

A tool that I m building for finding memory faults in
Linux drivers is reporting that the following loop, in
qla2x00_mbx_completion(), reads outside the allocated io memory
while reading ISP2200 mailbox registers.  I would appreciate your
help in confirming this bug.

...
  wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 1);
 for (cnt = 1; cnt < ha->mbx_count; cnt++) {
    if (IS_QLA2200(ha) && cnt == 8)
wptr = (uint16_t __iomem *)MAILBOX_REG(ha, reg, 8);
    if (cnt == 4 || cnt == 5)
ha->mailbox_out[cnt] = qla2x00_debounce_register(wptr);
    else
       ha->mailbox_out[cnt] = RD_REG_WORD(wptr);
     wptr++;
  }
...

During isp2200 initialization (qla2x00_probe_one), ha->mbx_count
is set to 32, even though isp2200 has 24 mailbox registers
(mailbox0 ... mailbox23).  Therefore the loop runs for
cnt=[1..31], wptr walks off the allocated mailbox register region
at cnt==24, and results in out-of-bounds reads.

Although I observed this problem in linux2.6.17.1, I
confirmed that it also exists in 2.6.37 and 3.1-rc4.

Fortunately, the reads outside the 24 mailbox registers are
benign.  For correctness, limit the driver's read to 24.

JIRA Key: V2632FC-95

13 years agoqla2xxx: Remove errant clearing of MBX_INTERRUPT flag during CT-IOCB processing.
Andrew Vasquez [Thu, 20 Oct 2011 23:29:49 +0000 (16:29 -0700)]
qla2xxx: Remove errant clearing of MBX_INTERRUPT flag during CT-IOCB processing.

This can cause instability in mailbox command state machine handling.

JIRA Key: V2632FC-94

13 years agoqla2xxx: Reduce mbx-command timeout for Login/Logout requests.
Andrew Vasquez [Thu, 20 Oct 2011 22:49:13 +0000 (15:49 -0700)]
qla2xxx: Reduce mbx-command timeout for Login/Logout requests.

Don't use default 30 second mailbox-command timeout for these
serial requests, instead, limit the TMO to the standard 2*RATOV
plus some fudge-factor.

JIRA Key: V2632FC-93

13 years agoqla2xxx: Clear options-flags while issuing stop-firmware mbx command.
Andrew Vasquez [Thu, 20 Oct 2011 17:14:16 +0000 (10:14 -0700)]
qla2xxx: Clear options-flags while issuing stop-firmware mbx command.

Not clearing the options flags in mbx1 could lead the firmware
into interpreting old data in mbx1 through mbx8.  This could
lead to inadvertent DMA read/write operations to stale memory.

JIRA Key: V2632FC-92

13 years agoqla2xxx: Prep zero-length BSG data-transfer requests.
Andrew Vasquez [Tue, 10 Apr 2012 11:09:30 +0000 (16:39 +0530)]
qla2xxx: Prep zero-length BSG data-transfer requests.

During command failure/non-recognition, the upper-layer
FC-transport expects the drivers to set
job-reply->reply_payload_rcv_len.  Do this in a consistent manner
to avoid duplication.

JIRA Key: V2632FC-90

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Perform implicit logout during rport tear-down.
Andrew Vasquez [Fri, 4 Nov 2011 14:31:51 +0000 (09:31 -0500)]
qla2xxx: Perform implicit logout during rport tear-down.

During rport tear-down, make sure we do an implicit LOGO of the fcport in our
firmware to try to clear any residual commands associated with that fcport.

JIRA Key: V2632FC-88

13 years agoqla2xxx: Return N-port id to firmware on logout.
Joe Carnuccio [Tue, 11 Oct 2011 23:47:36 +0000 (16:47 -0700)]
qla2xxx: Return N-port id to firmware on logout.

When logging out a port, return the N-port id to the firmware for
recycling to avoid running out of N-port id's.

JIRA Key: V2632FC-83

13 years agoqla2xxx: Handle failure cases during fabric_login
Chad Dupuis [Tue, 10 Apr 2012 11:00:12 +0000 (16:30 +0530)]
qla2xxx: Handle failure cases during fabric_login

Make sure that all calls to ha->isp_ops->fabric_login() check the
return value for failure.

JIRA Key: V2632FC-84

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Increase speed of flash access in ISP82xx adapters to improve firmware load...
Chad Dupuis [Tue, 10 Apr 2012 10:55:28 +0000 (16:25 +0530)]
qla2xxx: Increase speed of flash access in ISP82xx adapters to improve firmware load speed.

JIRA Key: V2632FC-78

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Handle change notifications based on switch scan results.
Arun Easi [Mon, 8 Aug 2011 07:06:36 +0000 (00:06 -0700)]
qla2xxx: Handle change notifications based on switch scan results.

Instead of processing each RSCN individually, use only the name server results
from the switch to tell the existance of a given fcport.

JIRA Key: V2632FC-41

13 years agoqla2xxx: Correct print format for edc ql_log() calls.
Joe Carnuccio [Thu, 13 Oct 2011 18:25:12 +0000 (13:25 -0500)]
qla2xxx: Correct print format for edc ql_log() calls.

JIRA Key: V2632FC-77

13 years agoqla2xxx: Use consistent DL mask for ELS/CT passthru requests.
Andrew Vasquez [Fri, 23 Sep 2011 22:00:21 +0000 (15:00 -0700)]
qla2xxx: Use consistent DL mask for ELS/CT passthru requests.

Driver is logging a slew of 'good' status requests:

[ 9178.507535] qla2xxx [0000:19:00.1]-503f:15: ELS-CT pass-through-ct pass-through error hdl=379 comp_status-status=0x15 error subcode 1=0x1820 error subcode 2=0x81c8 total_byte = 0x10.
[ 9178.525950] qla2xxx [0000:19:00.1]-503f:15: ELS-CT pass-through-ct pass-through error hdl=37c comp_status-status=0x15 error subcode 1=0x1820 error subcode 2=0x81c8 total_byte = 0x10.
[ 9178.543461] qla2xxx [0000:19:00.1]-503f:15: ELS-CT pass-through-ct pass-through error hdl=37f comp_status-status=0x15 error subcode 1=0x1820 error subcode 2=0x81c8 total_byte = 0x10.
[ 9178.555836] qla2xxx [0000:19:00.1]-503f:15: ELS-CT pass-through-ct pass-through error hdl=382 comp_status-status=0x15 error subcode 1=0x1820 error subcode 2=0x81c8 total_byte = 0x10.

Change from

* ql_log() -> ql_dbg()
* ql_log_info -> ql_dbg_user

Chad/Saurav, does this require a renumbering?

JIRA Key: V2632FC-76

13 years agoqla2xxx: Consolidation of SRB processing.
Giridhar Malavali [Tue, 10 Apr 2012 10:51:33 +0000 (16:21 +0530)]
qla2xxx: Consolidation of SRB processing.

Rework the structures related to SRB processing to minimize the memor
allocations per I/O and manage resources associated with and completions
from common routines.

JIRA Key: V2632FC-132

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Use proper VPD/NVRAM regions with ISP8031 parts.
Andrew Vasquez [Fri, 23 Dec 2011 20:09:55 +0000 (12:09 -0800)]
qla2xxx: Use proper VPD/NVRAM regions with ISP8031 parts.

JIRA key: V2632FC-142.

13 years agoqla2xxx: Remove ql2xfwloadbin assignment to 0.
Chad Dupuis [Wed, 14 Dec 2011 16:39:15 +0000 (08:39 -0800)]
qla2xxx: Remove ql2xfwloadbin assignment to 0.

JIRA Key: V2632FC-123

13 years agoqla2xxx: Call MPI reset for 81xx adapters only.
Andrew Vaquez [Wed, 14 Dec 2011 14:21:53 +0000 (08:21 -0600)]
qla2xxx: Call MPI reset for 81xx adapters only.

JIRA Key: V2632FC-129

13 years agoqla2xxx: Driver need to do HotReset instead of FundamentalReset for ISP83XX
Andrew Vasquez [Tue, 10 Apr 2012 09:42:21 +0000 (15:12 +0530)]
qla2xxx: Driver need to do HotReset instead of FundamentalReset for ISP83XX

JIRA Key: V2632FC-115.

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Use default semantic for firmware load.
Saurav Kashyap [Thu, 8 Dec 2011 15:16:46 +0000 (07:16 -0800)]
qla2xxx: Use default semantic for firmware load.

JIRA Key: V2632FC-123

13 years agoqla2xxx: Enhancements to support ISP83xx.
Giridhar Malavali [Tue, 10 Apr 2012 09:36:06 +0000 (15:06 +0530)]
qla2xxx: Enhancements to support ISP83xx.

JIRA Key: V2632FC-100

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Enhanced the dump routines to capture multiple request and response queues.
Giridhar Malavali [Thu, 13 Oct 2011 18:37:35 +0000 (13:37 -0500)]
qla2xxx: Enhanced the dump routines to capture multiple request and response queues.

JIRA Key: V2632FC-30

13 years agoqla2xxx: Update the driver version to 8.03.07.13.39.0-k.
Saurav Kashyap [Wed, 7 Mar 2012 04:57:03 +0000 (10:27 +0530)]
qla2xxx: Update the driver version to 8.03.07.13.39.0-k.

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Fixed typos and misc issues.
Saurav Kashyap [Mon, 27 Feb 2012 11:32:11 +0000 (17:02 +0530)]
qla2xxx: Fixed typos and misc issues.

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Fix byte swapping in IPE print statement.
Chad Dupuis [Mon, 27 Feb 2012 07:03:56 +0000 (12:33 +0530)]
qla2xxx: Fix byte swapping in IPE print statement.

Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Add an "is reset active" helper.
Andrew Vasquez [Mon, 27 Feb 2012 06:58:22 +0000 (12:28 +0530)]
qla2xxx: Add an "is reset active" helper.

Many locations within the driver would use an inconsistent set of
checks to determine ISP-reset state.  Consolidate the checks into
this inline-helper.

Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Disable generating pause frames when firmware hang detected for ISP82xx.
Giridhar Malavali [Mon, 27 Feb 2012 06:50:33 +0000 (12:20 +0530)]
qla2xxx: Disable generating pause frames when firmware hang detected for ISP82xx.

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
13 years agoqla2xxx: Use a valid enode-mac if none defined.
Andrew Vasquez [Fri, 23 Dec 2011 20:00:45 +0000 (12:00 -0800)]
qla2xxx: Use a valid enode-mac if none defined.

Original 'defaults' were not OUI valid.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
13 years agoqla2xxx: Remove resetting memory during device initialization for ISP82xx.
Shyam Sundar [Thu, 19 Jan 2012 21:02:23 +0000 (13:02 -0800)]
qla2xxx: Remove resetting memory during device initialization for ISP82xx.

With IOs running and PegHalt testing the system reboots when memory reset is
performed during device initialization.

Signed-off-by: Shyam Sundar <shyam.sundar@qlogic.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
13 years agoqla2xxx: Propagate up abort failures.
Arun Easi [Fri, 23 Dec 2011 19:57:13 +0000 (11:57 -0800)]
qla2xxx: Propagate up abort failures.

Signed-off-by: Arun Easi <arun.easi@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
13 years agoqla2xxx: Add check for null fcport references in qla2xxx_queuecommand.
Chad Dupuis [Thu, 13 Oct 2011 19:26:59 +0000 (14:26 -0500)]
qla2xxx: Add check for null fcport references in qla2xxx_queuecommand.

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
13 years agoMerge branch 'uek-2.6.39-200_lpfc8.3.5.68.4p.orabug14027969' of git://ca-git.us.oracl...
Maxim Uvarov [Wed, 9 May 2012 00:34:46 +0000 (17:34 -0700)]
Merge branch 'uek-2.6.39-200_lpfc8.3.5.68.4p.orabug14027969' of git://ca-git.us.oracle.com/linux-muvarov-public into uek-2.6.39-200

Orabug: 14027969

13 years agoMerge branch 'uek-2.6.39-200_be2netv2' of git://ca-git.us.oracle.com/linux-muvarov...
Maxim Uvarov [Wed, 9 May 2012 00:33:08 +0000 (17:33 -0700)]
Merge branch 'uek-2.6.39-200_be2netv2' of git://ca-git.us.oracle.com/linux-muvarov-public into uek-2.6.39-200

Orabug: 13448441

13 years ago[mpt2sas] Bump driver vesion to 13.100.00.00
Nagalakshmi Nandigama [Mon, 7 May 2012 20:42:49 +0000 (13:42 -0700)]
[mpt2sas] Bump driver vesion to 13.100.00.00

Orabug: 14040678
Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] fix NULL pointer at ioc->pfacts
Nagalakshmi Nandigama [Mon, 7 May 2012 20:40:00 +0000 (13:40 -0700)]
[mpt2sas] fix NULL pointer at ioc->pfacts

Orabug: 14040678
The ioc->pfacts member in the IOC structure is getting set to zero
following a call to _base_get_ioc_facts due to the memset in that routine.
So if the ioc->pfacts was read after a host reset, there would be a NULL
pointer dereference. The routine _base_get_ioc_facts is called from context
of host reset.  The problem in _base_get_ioc_facts  is the size of
Mpi2IOCFactsReply is 64, whereas the sizeof "struct mpt2sas_facts" is 60,
so there is a four byte overflow resulting from the memset.

Also, there is memset in _base_get_port_facts using the incorrect structure,
it should be "struct mpt2sas_port_facts" instead of Mpi2PortFactsReply.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] A hard drive is going OFFLINE when there is a hard reset issued
Nagalakshmi Nandigama [Mon, 7 May 2012 20:39:25 +0000 (13:39 -0700)]
[mpt2sas] A hard drive is going OFFLINE when there is a hard reset issued
and simultaneously another hard drive is hot unplugged

Orabug: 14040678
Following the host reset, the firmware discovery is reassigning another
hard drive in the topology to the same device handle as that device is
getting hot removed. Until the driver device removal routine is called,
there will be two hard drive with the matching device handle in the
internal device link list. In the device removal routine, a separate
function which moves the device from BLOCKED into OFFLINE state.
Since this routine is passed  with the device handle passed as input parameter,
the routine will be traversing the internal device link list searching for
matching device handle. This results in two devices with matching
device handle, therefore both devices goes OFFLINE.

To fix this issue,the input parameter is changed from device handle to
SAS address, therefore only the device that is hot unplugged will be placed
in OFFLINE state.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] Set the phy identifier of the end device to to the phy number of the parent...
Nagalakshmi Nandigama [Mon, 7 May 2012 20:38:49 +0000 (13:38 -0700)]
[mpt2sas] Set the phy identifier of the end device to to the phy number of the parent device
it is linked to

Orabug: 14040678
The phy_identifier inside the routine _transport_set_identify()
is set to sas_device_page_zero->PhyNum. This returns the
phy number of the parent device this device is linked to.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] While enabling phy, read the current port number from sas iounit page 0
Nagalakshmi Nandigama [Mon, 7 May 2012 20:37:52 +0000 (13:37 -0700)]
[mpt2sas] While enabling phy, read the current port number from sas iounit page 0
instead of page 1

Orabug: 14040678
The port number is changing after disabling/enabling phys using the SysFS interface
This is because the firmware behavour changed where it would read the the port number
then set it to some different value even though Auto Port Config is turned on.
With this change of behavour in FW, it is possible that the expanders are moved
from one port to another after disabling /enabling phys. This is occuring because
the port number in sas iounit page 1 is not matching up to the current port in
page 0. In order to fix this the driver is modified to read the current
port number from sas iounit page 0 instead of page 1.  Also copy the
port and phy flags over from page 0 to page 1.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] Fix several endian issues found by runing sparse
Nagalakshmi Nandigama [Mon, 7 May 2012 20:37:24 +0000 (13:37 -0700)]
[mpt2sas] Fix several endian issues found by runing sparse

Orabug: 14040678
Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] Modify the source code as per the findings reported by the source
Nagalakshmi Nandigama [Mon, 7 May 2012 20:35:49 +0000 (13:35 -0700)]
[mpt2sas] Modify the source code as per the findings reported by the source
code analysis tool

Orabug: 14040678
Modified the source code as per the findings reported by the source
code analysis tool. Source code for the following functionalities
has been touched. None of the driver functionalities has changed.

- SMP Passthrough IOCTL
- Debug messages for MPT Replies (i.e. bit 9 of Logging Level)
- Task Management using sysfs
- Device removal, i.e. when a target device (including any PD within a volume) is removed, and Volume Deletion.
- Trace Buffer

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] Improvement were made to better protect the sas_device, raid_device,
Nagalakshmi Nandigama [Mon, 7 May 2012 20:29:11 +0000 (13:29 -0700)]
[mpt2sas] Improvement were made to better protect the sas_device, raid_device,
and expander_device lists

There were possible race conditions surrounding reading an object
from the link list while from another context in the driver was
removing it. The nature of this enhancement is to rearrange locking
so the link lists are better protected.

Change set:
(1) numerous routines were rearranged so spin locks are held through
the entire time a link list object is being read from or written to.
(2) added new routines for object deletion from link list.  Thus ensuring
lock was held during the deletion of the link list object, then and memory
for object freed outside the lock. The memory was freed outside the lock
so driver had access to device object info which was required for
notifying the scsi mid layer that a device was getting deleted.
(3) added the ioc->blocking_handles parameter.  This is a bitmask used
to identify which devices need blocking when there is device loss.  This was
introduced so that lock can be held for the entire time traversing the link
list objects, and the bitmask was set to indicate which device handles need
blocking. Oustide the lock the ioc->blocking_handles bitmask is traversed,
with the respective device handle the scsi mid layer is called for moving
devices into blocking state.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] Perform Target Reset instead of HBA reset when a SATA_PASSTHROUGH cmd
Nagalakshmi Nandigama [Mon, 7 May 2012 20:27:49 +0000 (13:27 -0700)]
[mpt2sas] Perform Target Reset instead of HBA reset when a SATA_PASSTHROUGH cmd
timeout happens

Orabug: 14040678
Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] Added multisegment mode support for Linux BSG Driver
Nagalakshmi Nandigama [Mon, 7 May 2012 20:27:04 +0000 (13:27 -0700)]
[mpt2sas] Added multisegment mode support for Linux BSG Driver

Orabug: 14040678
Added support for Block IO requests with multiple segments (vectors) in
the SMP handler of the SAS Transport Class. This is required by the
BSG driver. Multisegment support added for both, Request and Response.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] remove the global mutex
Nagalakshmi Nandigama [Mon, 7 May 2012 20:23:48 +0000 (13:23 -0700)]
[mpt2sas] remove the global mutex

Orabug: 14040678
When the lock_kernel and unlock_kernel routines were removed in the
2.6.39 kernel, a global mutex was added on top of the existing mutex
which already existed. With this implementation, only one IOCTL
will be active at any time no matter how many ever controllers
are present. This causes poor performance.

Removed the global mutex so that the driver can work with the existing
semaphore that was already part of the existing code.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years ago[mpt2sas] MPI next revision header update
Nagalakshmi Nandigama [Mon, 7 May 2012 20:22:18 +0000 (13:22 -0700)]
[mpt2sas] MPI next revision header update

Orabug: 14040678
Changeset in MPI headers:
1) Bumped MPI2_HEADER_VERSION_UNIT
2) Added 4K sectors supported bit to CapabilitiesFlags field of IOC Page 6.
3) Added UEFIVersion field to BIOS Page 1 and defined additional
    BiosOptions bits to control UEFI behavior.

Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoUpdate lpfc version for 8.3.5.68.4p driver release
Vaios Papadimitriou [Tue, 8 May 2012 22:01:28 +0000 (17:01 -0500)]
Update lpfc version for 8.3.5.68.4p driver release

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix bug with mailbox handling of REG_VFI and cable pull (CR 127762)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:28 +0000 (17:01 -0500)]
Fix bug with mailbox handling of REG_VFI and cable pull (CR 127762)

Additional checks were missing for interface type and mailbox status that
caused the vport state to be set as failed.

commit id: f5eca9be1424ffa76b36dce4a821c051b37a8ab9

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoUse PCI configure space read to flush PCI function reset register write to avoid...
Vaios Papadimitriou [Tue, 8 May 2012 22:01:28 +0000 (17:01 -0500)]
Use PCI configure space read to flush PCI function reset register write to avoid MMIO issues (CR 128101)

When adding PCI read following LPe16000 port PCI function reset PortControl
register write for flushing the PCI pipe, the LPe16000 PortStatus register was
used for the PCI readl(). However, it might be an issue on platforms which will
not allow MMIO reads to master abort as the PCI device was not expected to
respond to a readl() following the function reset.

commit id: 2b81f942e75abda20f753e69f7a5416930ea001f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed system panic when extents enabled with large number of small blocks (CR 128010)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:27 +0000 (17:01 -0500)]
Fixed system panic when extents enabled with large number of small blocks (CR 128010)

When LPe16000 port extents are enable with 24 extents of small blocks, the
system will crash at driver load time. This is because the total number of
sgls posted was not calculated correctly

commit id: 25090d398e97309931f87682174f377cf0ac1131

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed the system panic during EEH recovery (CR 127062)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:27 +0000 (17:01 -0500)]
Fixed the system panic during EEH recovery (CR 127062)

During the EEH recovery process while preparing for function reset, the
mbox_sys_shutdown routine  was invoked to shutdown driver's internal mailbox
queue, including the pending (outstanding) mailbox command. There is a window
for a race condition on the pending mailbox command handling when such mailbox
command was just released by the lpfc_sli4_post_async_mbox due to unable to
post such mailbox command because of PCI bus frozen.

commit id: d7069f09884ac3924dacaabbc769cc0b4ee6ad40

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix resource leak when acc fails for received plogi (CR 127847)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:27 +0000 (17:01 -0500)]
Fix resource leak when acc fails for received plogi (CR 127847)

When a port tries to respond to a plogi that it receives and the issue of the
acc fails the mailbox command that was allocated to register the RPI is not
freed. Now, if the issue for the acc or reject fails free the mailbox command
that was allocated to register the RPI.

commit id: 0a8a86facf359147b2d3ef796496a09b21984b03

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed SLI4 driver module load and unload test in a loop crashes the system (CR 126397)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:27 +0000 (17:01 -0500)]
Fixed SLI4 driver module load and unload test in a loop crashes the system (CR 126397)

Loading/unloading the lpfc driver overnight when an LPe16000 sees multiple
targets can result in a kernel panic. This is because the board was not
correctly being reset, now correctly clear the Status register so the proper
reset is done.

commit id: 8fcb8acd6cb1529c596c274a6d375cbe9a134dcb

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed missing CVL event causing round-robin FCF failover process to stop (CR 123367)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:27 +0000 (17:01 -0500)]
Fixed missing CVL event causing round-robin FCF failover process to stop (CR 123367)

It was found during virtual fabric testing that a virtual link mismatch was
created. This is because after a CVL was causing the driver to stop the FCF
failover process. The driver will now not break out of the failover process
if the flogi fails and the CVL event is expected.

commit id: 80c17849209e8773de122e58512c16c3fae3e29a

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix deadlock during adapter offline request (CR 127217)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:26 +0000 (17:01 -0500)]
Fix deadlock during adapter offline request (CR 127217)

The sli4_free_rpi call is being called while holding the host_lock with irq,
then the free_rpi takes the hba_lock with irq. This created a deadlock.

commit id: 401ee0c1d698e798a9317e2ed6207badae93e266

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix same RPI registered multiple times after HBA reset (CR 127176)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:26 +0000 (17:01 -0500)]
Fix same RPI registered multiple times after HBA reset (CR 127176)

After HBA reset I/Os never complete and system eventually hangs, this is
because the BE adapters need to have RPI headers reposted before rpis can be
assigned to NDLPs. By moving the call to lpfc_sli4_node_prep to be after the
call to post_all_rpi headers this posts the headers before the rpis are
assigned.

commit id: 97f2ecf1f401d689d4036f64c244fad3b39e5e0a

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix driver handling of XRI Aborted CQE response (CR 127345)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:26 +0000 (17:01 -0500)]
Fix driver handling of XRI Aborted CQE response (CR 127345)

When driver issued an ABTS, the aborted IO and ABTS WQE request would complete
as expected, but the XRI_ABORTED_CQE notification that the ABTS protocol
completed caused the driver to tear down the rport mapping for each completed
ABTS. Now process the status and extended status before making a decision to
tear down the target status.

commit id: 5c1db2accd4b3e21aa7440526af9d2d0ccf5241c

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed port and system failure in handling SLI4 FC port function reset (CR 126551)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:26 +0000 (17:01 -0500)]
Fixed port and system failure in handling SLI4 FC port function reset (CR 126551)

When performing function reset to LPe16000 port which is connected to a fabric
and has targets (LUNs) discovered in the zone, sometimes the reset can fail and
end up in the port being unresponsive or system crash or hang. Now, when
reposting the SCSI SGL list after function reset, set the logical XRI allocated
bit in the logical XRI bmask to account for the XRIs posted, so duplicated
XRI will not be allocated later for new SGLs. Also, reset the used xri counts,
and updated them properly during function reset.

commit id: 41899be7e8b95c9c8b51ad4ff932769af508306f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix bug with driver not sending a LOGO with vport delete (CR 126625)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:26 +0000 (17:01 -0500)]
Fix bug with driver not sending a LOGO with vport delete (CR 126625)

Driver did not send LOGO during vport delete causing switch to hold on to the
resource. That LOGO is now sent.

commit id: bdcd2b926192c7f690a9cb4fb2de30eb820983fc

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix for SLI4 Port delivery for BLS ABORT ACC (CR 126289)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:26 +0000 (17:01 -0500)]
Fix for SLI4 Port delivery for BLS ABORT ACC (CR 126289)

An unsolicited ABTS recieved on an SLI4 port does not properly complete the
exchange.
Fix:
In __lpfc_sli_issue_iocb_s4, allow CMD_XMIT_BLS_RSP64_CX to allocate an SGL.
In lpfc_sli4_bpl2sgl, allow CMD_XMIT_BLS_RSP64_CX to just return the xri_tag.
In lpfc_sli4_iocb2wqe, setup CT context to use VPI for CMD_XMIT_BLS_RSP64_CX.
In lpfc_sli4_seq_abort_rsp_cmpl log port error.

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix ndlp nodelist not empty wait timeout during driver unloading (CR 127052)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:25 +0000 (17:01 -0500)]
Fix ndlp nodelist not empty wait timeout during driver unloading (CR 127052)

In lpfc_set_rrq_active the code allocates an RRQ while lock are held. The
driver either need to make this allocation ATOMIC or remove the allocation from
the lock. We choose to remove the locked version of lpfc_set_rrq_active since
there were no users of this function. Then rearrange the code so that the
allocation does not occur while the lock is held.

commit id: eff4a01b6e9f8cee3c541ab7f2ad18b5bbffd124

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix mailbox and vpi memory leaks (CR 126818)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:25 +0000 (17:01 -0500)]
Fix mailbox and vpi memory leaks (CR 126818)

The driver could hang or crash do to lack of memory. These memory leaks were
fixed.

commit id: 728599090a9bf3aefb1226cc063295886525cd0e

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix management communication issues by creating character device to take a reference...
Vaios Papadimitriou [Tue, 8 May 2012 22:01:25 +0000 (17:01 -0500)]
Fix management communication issues by creating character device to take a reference on the driver (CR 126082)

The management userspace applications have no way to take a lock on the driver
to prevent it from unloading. To remedy this a character device is created that
will up the reference count on lpfc by one when it is opened and decrement it by
one when it is closed.

commit id: 3ef6d24cd9f473518dd7941e86cc2a5f8992eed0

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix for FDISC failures after firmware reset or link bounce (CR 126779)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:25 +0000 (17:01 -0500)]
Fix for FDISC failures after firmware reset or link bounce (CR 126779)

The driver failed to discover target on vports after a link bounce. This is a
regression on SLI4 adapters where the SID in the FDISC was set to a non-zero
value. There is no use case for a non-zero SID in the FDISC. Thefix is to clear
fc_myDID to guarentee a zero SID

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix for driver using duplicate RPIs after LPe16000 port reset (CR 126723)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:25 +0000 (17:01 -0500)]
Fix for driver using duplicate RPIs after LPe16000 port reset (CR 126723)

The RPI bit map is reinitiatized in the adapter port 'online' path. SLI4 RPI are
designed to be 'long lived', so when the adapter port is taken offline, the
driver will reuse the RPI if the port is recovered within devloss tmo.
These stale RPI values can collide when new RPIs are allocated. We now free RPIs
on all active nodes and then allocate new RPIs

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix discovery problem when in pt2pt (CR 126887)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:25 +0000 (17:01 -0500)]
Fix discovery problem when in pt2pt (CR 126887)

When a target is direct connected in pt2pt topology it is not discovered by the
driver. The confirm nport routine is called during plogi completion. It will
look up the ndlp using the service parameter wwpn in the target response. If the
ndlp that is returned in the lookup does not match the ndlp that the plogi was
sent with confirm_nport updates the new ndlp with old ndlp's information.
Confirm nport has to make sure that only one ndlp with that wwpn is active
before returning so it sets the old ndlp's state to NPR. It set the state
before it copied the state to the new ndlp so both ndlp's end up in NPR. When
the plogi completion routine calls the state machine with the plogi complete
event and the ndlp in NPR the ndlp'd state stays in NPR. The state machine is
stopped for this ndlp. Because it was the only target discovery is completed.
The old ndlp state is now copied to the new ndlp before setting the old one to
NPR

commit id: eff4a01b6e9f8cee3c541ab7f2ad18b5bbffd124

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed failure in handling large CQ/EQ identifiers in an IOV environment (CR 126856)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:24 +0000 (17:01 -0500)]
Fixed failure in handling large CQ/EQ identifiers in an IOV environment (CR 126856)

In an SR-IOV environment, when creating virtual functions, the driver failed to
issue INIT_LINK mailbox commands properly when attaching to the virtual
functions. The driver will now write into CQ/EQ doorbell registers by taking
both the lower and the possible higher bit CQ/EQ identifier fields into
consideration to comply for with the spec for handling INIT_LINK mailbox
commands.

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix Locking code raising IRQ twice
Vaios Papadimitriou [Tue, 8 May 2012 22:01:24 +0000 (17:01 -0500)]
Fix Locking code raising IRQ twice

Remove the irq part of the locking and unlocking calls, this could have caused
a deadlock because the cpu could have interrupted this thread while the hbalock
was still held.

commit id: 728599090a9bf3aefb1226cc063295886525cd0e

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix driver not returning when bad ndlp found in abts error event handling (CR 126209)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:24 +0000 (17:01 -0500)]
Fix driver not returning when bad ndlp found in abts error event handling (CR 126209)

The abts should not be processed when whne a bad ndlp is found. The function
now returns properly rather then continuing.

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix bug with driver returning the wrong ndlp (CR 125743)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:24 +0000 (17:01 -0500)]
Fix bug with driver returning the wrong ndlp (CR 125743)

When searching for a matching rpi the driver was not checking the active state
of the ndlp. A check was added to see if the nldp is active.

commit id: eff4a01b6e9f8cee3c541ab7f2ad18b5bbffd124

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix driver behavior when receiving an ADISC (CR 126654)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:24 +0000 (17:01 -0500)]
Fix driver behavior when receiving an ADISC (CR 126654)

ADISC gets ACC'ed if RPI is not present. RESUME_RPI does not get envoked when
receiving ADISC.

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix bug with driver processing dump command type 4 using 16Gb FC Adapter (CR 126406)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:24 +0000 (17:01 -0500)]
Fix bug with driver processing dump command type 4 using 16Gb FC Adapter (CR 126406)

Dump Mbox commands fail to LPe16000 adapter, these commands were not recognized
by the driver, they are now allowed to pass through.

commit id: 3ef6d24cd9f473518dd7941e86cc2a5f8992eed0

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix driver does not reset port when reset is needed during fw_dump (CR 125807)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:23 +0000 (17:01 -0500)]
Fix driver does not reset port when reset is needed during fw_dump (CR 125807)

A port error was detacted during rest, this is because the driver was not
looking for a RN flag in the status reg. Now only fail the reset if ERR bit is
set and the reset needed flag is not.

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix ELS FDISC failing with local reject / invalid RPI (CR 126350)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:23 +0000 (17:01 -0500)]
Fix ELS FDISC failing with local reject / invalid RPI (CR 126350)

No FDISC seen on the wire when running with SLI4, the ELS command fails with
local reject / invalid RPI. Now allow the FDISC ELS command to use the
temporary RPI and the Destination DID for SLI4-FC.

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix SLI4 FC port internal loopback (CR 126409)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:23 +0000 (17:01 -0500)]
Fix SLI4 FC port internal loopback (CR 126409)

LPe16000s could fail internal loopback tests do to an issue with the serdes.
The loopback was properly changed to use internal rather then serdes internal.

commit id: 3ef6d24cd9f473518dd7941e86cc2a5f8992eed0

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix REG_RPI fails on SLI4 HBA putting NPort into NPR state (CR 126230)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:23 +0000 (17:01 -0500)]
Fix REG_RPI fails on SLI4 HBA putting NPort into NPR state (CR 126230)

When we receive a PLOGI, the ndlp unexpectedly goes into the NPR state.
This is because the ndlp was not properly being unregistered.

commit id: 6b5151fd7baec6812fece993ddd7a2cf9fd0125f

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix bug with driver processing an els command using 16Gb FC Adapter (CR 126345)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:23 +0000 (17:01 -0500)]
Fix bug with driver processing an els command using 16Gb FC Adapter (CR 126345)

ELS echo fails on an LPe16000 adapter because the driver was not setting up
the ulpContext correctly. The ulpContext is now properly set from the rpi_ids
table for SLI4 devices.

commit id: 3ef6d24cd9f473518dd7941e86cc2a5f8992eed0

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFix NMI seen due to CQE starvation (CR 126149)
Vaios Papadimitriou [Tue, 8 May 2012 22:01:23 +0000 (17:01 -0500)]
Fix NMI seen due to CQE starvation (CR 126149)

CQEs had to be upped in order to prevent NMI being issued. The firmware was
running of CQEs

commit id: ff78d8f97c85a568c0799b06137a4171db45b923

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed SLI4 FC port obtained link type and number dependent on link connection (CR...
Vaios Papadimitriou [Tue, 8 May 2012 22:01:22 +0000 (17:01 -0500)]
Fixed SLI4 FC port obtained link type and number dependent on link connection (CR 126264)

There are places in the driver diagnostic code space, which picked up
SLI4 FC port link type and number depend on link connection from asynchronous
link event. In those cases, instead of using the link type and link number
obtainedfrom the asynchronous link event, used the link type and link number
obtained from the READ_CONFIG mailbox command from SLI4 setup routine , which
will not depend on an external link or loopback plug present.

commit id: 1b51197d0fd0c06877c6df1bba84ac4008a7fc60

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>
13 years agoFixed SLI4 FC port internal loopback without SFP and external link/loopback plug...
Vaios Papadimitriou [Tue, 8 May 2012 22:01:22 +0000 (17:01 -0500)]
Fixed SLI4 FC port internal loopback without SFP and external link/loopback plug (CR 125843)

When performing internal loopback diagnostic test on LPe16000 port without SFP
present or without external link/loopback plug plugged in, internal loopback on
port1 failed. Instead of using the link type and link number obtained reported
from the asynchronous link event, used the link type and link number obtained
from the READ_CONFIG mailbox command from SLI4 setup routine , which will not
depend on an external link or loopback plug present.

commit id: 1b51197d0fd0c06877c6df1bba84ac4008a7fc60

Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com>