<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/lpfc/lpfc_init.c, branch linux-3.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2018-01-01T20:50:48Z</updated>
<entry>
<title>scsi: lpfc: Don't return internal MBXERR_ERROR code from probe function</title>
<updated>2018-01-01T20:50:48Z</updated>
<author>
<name>Stefano Brivio</name>
</author>
<published>2017-09-06T09:02:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=84e35fd3c942c65affe7634ed69f978110695c21'/>
<id>urn:sha1:84e35fd3c942c65affe7634ed69f978110695c21</id>
<content type='text'>
commit 5c756065e47dc3e84b00577bd109f0a8e69903d7 upstream.

Internal error codes happen to be positive, thus the PCI driver core
won't treat them as failure, but we do. This would cause a crash later
on as lpfc_pci_remove_one() is called (e.g. as shutdown function).

Fixes: 6d368e532168 ("[SCSI] lpfc 8.3.24: Add resource extent support")
Signed-off-by: Stefano Brivio &lt;sbrivio@redhat.com&gt;
Reviewed-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Acked-by: Dick Kennedy &lt;dick.kennedy@broadcom.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
[bwh: Backported to 3.2: adjust context, indentation]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>scsi: lpfc: Add shutdown method for kexec</title>
<updated>2017-07-18T17:38:30Z</updated>
<author>
<name>Anton Blanchard</name>
</author>
<published>2017-02-12T21:49:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4fb228ae24ec90d8dd5e030fa25effcac0664724'/>
<id>urn:sha1:4fb228ae24ec90d8dd5e030fa25effcac0664724</id>
<content type='text'>
commit 85e8a23936ab3442de0c42da97d53b29f004ece1 upstream.

We see lpfc devices regularly fail during kexec. Fix this by adding a
shutdown method which mirrors the remove method.

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Reviewed-by: Mauricio Faria de Oliveira &lt;mauricfo@linux.vnet.ibm.com&gt;
Tested-by: Mauricio Faria de Oliveira &lt;mauricfo@linux.vnet.ibm.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>lpfc: fix misleading indentation</title>
<updated>2016-04-30T22:05:20Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2016-03-14T14:29:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=567d4fb42c192875472d0455e4f2ab5611088771'/>
<id>urn:sha1:567d4fb42c192875472d0455e4f2ab5611088771</id>
<content type='text'>
commit aeb6641f8ebdd61939f462a8255b316f9bfab707 upstream.

gcc-6 complains about the indentation of the lpfc_destroy_vport_work_array()
call in lpfc_online(), which clearly doesn't look right:

drivers/scsi/lpfc/lpfc_init.c: In function 'lpfc_online':
drivers/scsi/lpfc/lpfc_init.c:2880:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
   lpfc_destroy_vport_work_array(phba, vports);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/lpfc/lpfc_init.c:2863:2: note: ...this 'if' clause, but it is not
  if (vports != NULL)
  ^~

Looking at the patch that introduced this code, it's clear that the
behavior is correct and the indentation is wrong.

This fixes the indentation and adds curly braces around the previous
if() block for clarity, as that is most likely what caused the code
to be misindented in the first place.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Fixes: 549e55cd2a1b ("[SCSI] lpfc 8.2.2 : Fix locking around HBA's port_list")
Reviewed-by: Sebastian Herbszt &lt;herbszt@gmx.de&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Reviewed-by: Ewan D. Milne &lt;emilne@redhat.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>scsi: Fix up files implicitly depending on module.h inclusion</title>
<updated>2011-10-31T23:31:24Z</updated>
<author>
<name>Paul Gortmaker</name>
</author>
<published>2011-05-27T13:47:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=acf3368ffb75fc4a83726655d697e79646fe4eb3'/>
<id>urn:sha1:acf3368ffb75fc4a83726655d697e79646fe4eb3</id>
<content type='text'>
The module.h header was implicitly present everywhere, so files
with no explicit include of the module infrastructure would build
anyway.  We are now removing the implicit include, and so we need
to call out the module.h file that we need explicitly.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] lpfc 8.3.27: Fix queue allocation failure recovery</title>
<updated>2011-10-16T16:32:17Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2011-10-11T01:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5350d872c19a59ef8eadab1e70db83064c134cfa'/>
<id>urn:sha1:5350d872c19a59ef8eadab1e70db83064c134cfa</id>
<content type='text'>
Fix queue allocation failure recovery

- Move the allocation of the Queues closer to the creation of the queues.
- If there is a problem with creation, or if the HBA is reset, the queues
  will be completely freed and re allocated.
- Only allocate fcp_eq_hdl if cfg_fcp_eq_count is non-zero.

Signed-off-by: Alex Iannicelli &lt;alex.iannicelli@emulex.com&gt;
Signed-off-by: James Smart &lt;james.smart@emulex.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] lpfc 8.3.27: Change algorithm for getting physical port name</title>
<updated>2011-10-16T16:31:56Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2011-10-11T01:33:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cd1c8301db15ee52bfc5a0e5bc16b52bab8475aa'/>
<id>urn:sha1:cd1c8301db15ee52bfc5a0e5bc16b52bab8475aa</id>
<content type='text'>
Implemented new algorithm for getting physical port name for all SLI4 devices

Signed-off-by: Alex Iannicelli &lt;alex.iannicelli@emulex.com&gt;
Signed-off-by: James Smart &lt;james.smart@emulex.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] lpfc 8.3.27: Changed worst case mailbox timeout</title>
<updated>2011-10-16T16:31:19Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2011-10-11T01:32:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a183a15f88a6803476abf4c7f097df33f6ca6f92'/>
<id>urn:sha1:a183a15f88a6803476abf4c7f097df33f6ca6f92</id>
<content type='text'>
Changed the timeout value for flash-based SLI_CONFIG (0x9B)
mailbox command to 300 seconds for worst case flash delays.

Signed-off-by: Alex Iannicelli &lt;alex.iannicelli@emulex.com&gt;
Signed-off-by: James Smart &lt;james.smart@emulex.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes</title>
<updated>2011-10-16T16:28:48Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2011-10-11T01:32:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=73d91e503a60bd164b636258ae9f558b72010602'/>
<id>urn:sha1:73d91e503a60bd164b636258ae9f558b72010602</id>
<content type='text'>
Miscellanous logic and interface fixes

- Fix lpfc_init_vfi_cmpl to check the interface type for interface type 0
  before parsing the results.
- Cast uint32_t values that are multiplied to uint64_t before the
  multiplication.
- Instead of "break" statement when PCI read returned error, use the goto
  statement to the end of the routine after setting return value
- moved the msleep(10) to the beginning of the wait loop for checking the
  SLIPort_Status register
- Added the code to follow the existing wait for SLIPort_Status register RDY,
  ERR, and RN bits to be set by the port before proceeding to perform PCI
  function reset.
- Do not override ulpCt_h and ulpCt_l for SLI 4 ports.
- For vport delete, call lpfc_nlp_put when the vport's vpi state is not
  marked with VPI_REGISTERED.
- Added missed fields into the driver's Controller Attributes Structure
- Changed ringing EQ/CQ/RQ doorbell register to be dependent on the size
  of the queue.
- Return -EACCES in issue_reset if cfg_enable_hba_reset is zero.
- Added new logging flag LOG_FCP_UNDER 0x00040000 to qualify underrun logging.
- Add a check in the fabric name display routine to display 0 if the port
  state is &lt;= FLOGI.
- Add a check to the switch statement in lpfc_decode_firmware_rev to check
  for an 'X'.

Signed-off-by: Alex Iannicelli &lt;alex.iannicelli@emulex.com&gt;
Signed-off-by: James Smart &lt;james.smart@emulex.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] lpfc 8.3.26: Fix SYSFS interface issues</title>
<updated>2011-08-29T07:16:19Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2011-08-22T01:49:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f7a919b4cd048f345c07c2235d0fb8ac93d24cca'/>
<id>urn:sha1:f7a919b4cd048f345c07c2235d0fb8ac93d24cca</id>
<content type='text'>
Fix SYSFS interface issues.

- In the lpfc_sli4_pdev_status_reg_wait() routine, after initial 100ms delay
  following write to PHYSDEV_CONTROL register for the firmware reaction, check
  the RN bit and ERR bit of the SLIPORT_STATUS register. If none of them
  became 1, the previous PHYSDEV_CONTROL register should be considered failed
  due to lack of privilege and error for no permission should be returned
  immediately without getting into the wait for RDY bits on the SLIPORT_STATUS
  register.
- Remove the driver check on dev-&gt;is_physfn before proceed to perform the
  PHYSDEV_CONTROL register write, and let the PCI function's privilege
  setting and driver handling of PHYSDEV_CONTROL register write failure to
  handle the reset-ability through the SLI port.
- Added key to ctlreg_write to prevent unauthorized or unexpected write to
  the control register.
- Change return to EACCES for sysfs access that are failed because hba_reset
  is disabled.

Signed-off-by: Alex Iannicelli &lt;alex.iannicelli@emulex.com&gt;
Signed-off-by: James Smart &lt;james.smart@emulex.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
<entry>
<title>[SCSI] lpfc 8.3.26: Fix HBA initialization issues</title>
<updated>2011-08-29T07:16:18Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2011-08-22T01:48:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=079b5c916d19e7533c060b32d4a31ce45c3552d2'/>
<id>urn:sha1:079b5c916d19e7533c060b32d4a31ce45c3552d2</id>
<content type='text'>
Fix HBA initialization issues

- Swap all values that come from the firmware image on little endian systems.
  Created a new bf_get_be macro that does the same as the bf_get_le macro but
  for big endian data instead of little endian data.
- Moved the incrementing of temp_offset after the copy
  fixed the write object loop to use temp_offset to figure out where the end
  of the image is instead of offset.
- Added the necessary codes for properly bringing the driver instance offline
  and then trying to bring the port back online with the PCI function IP reset.
  If it fails to bring the SLI port back online, it will fall through to
  bringing the SLI port to HBA error offline.
- Add a call in the probe_one_s3 and probe_one_s4 routines to get the Modeldesc
- Change OCe50100 to OCe15100
- Made the error log also include the PCI BAR bitmap returned from kernel call
  pci_select_bars().

Signed-off-by: Alex Iannicelli &lt;alex.iannicelli@emulex.com&gt;
Signed-off-by: James Smart &lt;james.smart@emulex.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
</content>
</entry>
</feed>
