<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/lpfc/lpfc_init.c, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-12-21T09:35:33Z</updated>
<entry>
<title>scsi: lpfc: Cap NPIV vports to 256</title>
<updated>2019-12-21T09:35:33Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2018-11-30T00:09:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e7276d3f923bae3827db4489ed7be76a623f0e82'/>
<id>urn:sha1:e7276d3f923bae3827db4489ed7be76a623f0e82</id>
<content type='text'>
[ Upstream commit 8b47ae69e049ae0b3373859d901f0334322f9fe9 ]

Depending on the chipset, the number of NPIV vports may vary and be in
excess of what most switches support (256). To avoid confusion with the
users, limit the reported NPIV vports to 256.

Additionally correct the 16G adapter which is reporting a bogus NPIV vport
number if the link is down.

Signed-off-by: Dick Kennedy &lt;dick.kennedy@broadcom.com&gt;
Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>scsi: lpfc: fcoe: Fix link down issue after 1000+ link bounces</title>
<updated>2019-11-28T17:26:06Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2018-10-23T20:41:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9d4c8d7bae138e26698d445b1bf3f455eb3bc56d'/>
<id>urn:sha1:9d4c8d7bae138e26698d445b1bf3f455eb3bc56d</id>
<content type='text'>
[ Upstream commit 036cad1f1ac9ce03e2db94b8460f98eaf1e1ee4c ]

On FCoE adapters, when running link bounce test in a loop, initiator
failed to login with switch switch and required driver reload to
recover. Switch reached a point where all subsequent FLOGIs would be
LS_RJT'd. Further testing showed the condition to be related to not
performing FCF discovery between FLOGI's.

Fix by monitoring FLOGI failures and once a repeated error is seen
repeat FCF discovery.

Signed-off-by: Dick Kennedy &lt;dick.kennedy@broadcom.com&gt;
Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>scsi: lpfc: Add shutdown method for kexec</title>
<updated>2017-03-26T10:13:19Z</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=82bd06aba880215dadd3e33dc3d583d32df9dbbb'/>
<id>urn:sha1:82bd06aba880215dadd3e33dc3d583d32df9dbbb</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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>lpfc: Fix driver crash when module parameter lpfc_fcp_io_channel set to 16</title>
<updated>2016-09-15T06:27:42Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2015-12-16T23:11:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7cf5c223ccf949e6d5ef6b87c33edcad67a8ebbe'/>
<id>urn:sha1:7cf5c223ccf949e6d5ef6b87c33edcad67a8ebbe</id>
<content type='text'>
[ Upstream commit 6690e0d4fc5cccf74534abe0c9f9a69032bc02f0 ]

Fix driver crash when module parameter lpfc_fcp_io_channel set to 16

Signed-off-by: Dick Kennedy &lt;dick.kennedy@avagotech.com&gt;
Signed-off-by: James Smart &lt;james.smart@avagotech.com&gt;
Reviewed-by: Hannes Reinicke &lt;hare@suse.de&gt;
Signed-off-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>lpfc: fix misleading indentation</title>
<updated>2016-05-11T09:21:12Z</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=8e9a156140f9fb568ffcbdaaf390862bbfb09d83'/>
<id>urn:sha1:8e9a156140f9fb568ffcbdaaf390862bbfb09d83</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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>lpfc: Add support for Lancer G6 and 32G FC links</title>
<updated>2015-10-27T01:17:51Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2015-08-31T20:48:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d38dd52c79bc117a2ba7c27949d50721adc9d1d3'/>
<id>urn:sha1:d38dd52c79bc117a2ba7c27949d50721adc9d1d3</id>
<content type='text'>
Signed-off-by: Dick Kennedy &lt;dick.kennedy@avagotech.com&gt;
Signed-off-by: James Smart &lt;james.smart@avagotech.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>lpfc: remove set but not used variables</title>
<updated>2015-10-27T01:06:00Z</updated>
<author>
<name>Sebastian Herbszt</name>
</author>
<published>2015-08-31T20:48:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=db6f1c2f900b536d23de386dc7f2a53aa80d7307'/>
<id>urn:sha1:db6f1c2f900b536d23de386dc7f2a53aa80d7307</id>
<content type='text'>
Remove set but not used variables.

Signed-off-by: Sebastian Herbszt &lt;herbszt@gmx.de&gt;
Signed-off-by: James Smart &lt;james.smart@avagotech.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>Fix kmalloc overflow in LPFC driver at large core count</title>
<updated>2015-10-27T01:00:53Z</updated>
<author>
<name>Ian Mitchell</name>
</author>
<published>2015-08-31T20:48:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c0365c0692d6ea038bb4feda308eec69e11292a3'/>
<id>urn:sha1:c0365c0692d6ea038bb4feda308eec69e11292a3</id>
<content type='text'>
This patch allows the LPFC to start up without a fatal kernel bug based
on an exceeded KMALLOC_MAX_SIZE and a too large NR_CPU-based maskbits
field. The bug was based on the number of CPU cores in a system.
Using the get_cpu_mask() function declared in kernel/cpu.c allows the
driver to load on the community kernel 4.2 RC1.

Below is the kernel bug reproduced:

8&lt;--------------------------------------------------------------------
2199382.828437 (    0.005216)| lpfc 0003:02:00.0: enabling device (0140 -&gt; 0142)
2199382.999272 (    0.170835)| ------------[ cut here ]------------
2199382.999337 (    0.000065)| WARNING: CPU: 84 PID: 404 at mm/slab_common.c:653 kmalloc_slab+0x2f/0x89()
2199383.004534 (    0.005197)| Modules linked in: lpfc(+) usbcore(+) mptctl scsi_transport_fc sg lpc_ich i2c_i801 usb_common tpm_tis mfd_core tpm acpi_cpufreq button scsi_dh_alua scsi_dh_rdacusbcore: registered new device driver usb
2199383.020568 (    0.016034)|
2199383.020581 (    0.000013)|  scsi_dh_hp_sw scsi_dh_emc scsi_dh gru thermal sata_nv processor piix fan thermal_sysehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
2199383.035288 (    0.014707)|
2199383.035306 (    0.000018)|  hwmon ata_piix
2199383.035336 (    0.000030)| CPU: 84 PID: 404 Comm: kworker/84:0 Not tainted 3.18.0-rc2-gat-00106-ga7ca10f-dirty #178
2199383.047077 (    0.011741)| ehci-pci: EHCI PCI platform driver
2199383.047134 (    0.000057)| Hardware name: SGI UV2000/ROMLEY, BIOS SGI UV 2000/3000 series BIOS 01/15/2013
2199383.056245 (    0.009111)| Workqueue: events work_for_cpu_fn
2199383.066174 (    0.009929)|  000000000000028d ffff88eef827bbe8 ffffffff815a542f 000000000000028d
2199383.069545 (    0.003371)|  ffffffff810ea142 ffff88eef827bc28 ffffffff8104365c ffff88eefe4006c8
2199383.076214 (    0.006669)|  0000000000000000 00000000000080d0 0000000000000000 0000000000000004
2199383.079213 (    0.002999)| Call Trace:
2199383.084084 (    0.004871)|  [&lt;ffffffff815a542f&gt;] dump_stack+0x49/0x62
2199383.087283 (    0.003199)|  [&lt;ffffffff810ea142&gt;] ? kmalloc_slab+0x2f/0x89
2199383.091415 (    0.004132)|  [&lt;ffffffff8104365c&gt;] warn_slowpath_common+0x77/0x92
2199383.095197 (    0.003782)|  [&lt;ffffffff8104368c&gt;] warn_slowpath_null+0x15/0x17
2199383.103336 (    0.008139)|  [&lt;ffffffff810ea142&gt;] kmalloc_slab+0x2f/0x89
2199383.107082 (    0.003746)|  [&lt;ffffffff8110fd9e&gt;] __kmalloc+0x13/0x16a
2199383.112531 (    0.005449)|  [&lt;ffffffffa01a8ed9&gt;] lpfc_pci_probe_one_s4+0x105b/0x1644 [lpfc]
2199383.115316 (    0.002785)|  [&lt;ffffffff81302b92&gt;] ? pci_bus_read_config_dword+0x75/0x87
2199383.123431 (    0.008115)|  [&lt;ffffffffa01a951f&gt;] lpfc_pci_probe_one+0x5d/0xcb5 [lpfc]
2199383.127364 (    0.003933)|  [&lt;ffffffff81497119&gt;] ? dbs_check_cpu+0x168/0x177
2199383.136438 (    0.009074)|  [&lt;ffffffff81496fa5&gt;] ? gov_queue_work+0xb4/0xc0
2199383.140407 (    0.003969)|  [&lt;ffffffff8130b2a1&gt;] local_pci_probe+0x1e/0x52
2199383.143105 (    0.002698)|  [&lt;ffffffff81052c47&gt;] work_for_cpu_fn+0x13/0x1b
2199383.147315 (    0.004210)|  [&lt;ffffffff81054965&gt;] process_one_work+0x222/0x35e
2199383.151379 (    0.004064)|  [&lt;ffffffff81054e76&gt;] worker_thread+0x3d5/0x46e
2199383.159402 (    0.008023)|  [&lt;ffffffff81054aa1&gt;] ? process_one_work+0x35e/0x35e
2199383.163097 (    0.003695)|  [&lt;ffffffff810599c6&gt;] kthread+0xc8/0xd2
2199383.167476 (    0.004379)|  [&lt;ffffffff810598fe&gt;] ? kthread_freezable_should_stop+0x5b/0x5b
2199383.176434 (    0.008958)|  [&lt;ffffffff815a8cac&gt;] ret_from_fork+0x7c/0xb0
2199383.180086 (    0.003652)|  [&lt;ffffffff810598fe&gt;] ? kthread_freezable_should_stop+0x5b/0x5b
2199383.192333 (    0.012247)| ehci-pci 0000:00:1a.0: EHCI Host Controller
--------------------------------------------------------------------&gt;8

The proposed solution was approved by James Smart at Emulex and tested
on a UV2 machine with 6144 cores. With the fix, the LPFC module loads
with no unwanted effects on the system.

Signed-off-by: Ian Mitchell &lt;imitchell@sgi.com&gt;
Signed-off-by: Alex Thorlton &lt;athorlton@sgi.com&gt;
Suggested-by: Robert Elliot &lt;elliott@hp.com&gt;
[james.smart: resolve unused variable warning]
Signed-off-by: James Smart &lt;james.smart@avagotech.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>lpfc: Destroy lpfc_hba_index IDR on module exit</title>
<updated>2015-10-27T00:58:37Z</updated>
<author>
<name>Johannes Thumshirn</name>
</author>
<published>2015-08-31T20:48:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7973967f803da922af10599fb2bf4d66889e40d1'/>
<id>urn:sha1:7973967f803da922af10599fb2bf4d66889e40d1</id>
<content type='text'>
Destroy lpfc_hba_index IDR on module exit, reclaiming the allocated memory.

This was detected by the following semantic patch (written by Luis Rodriguez
&lt;mcgrof@suse.com&gt;)
&lt;SmPL&gt;
@ defines_module_init @
declarer name module_init, module_exit;
declarer name DEFINE_IDR;
identifier init;
@@

module_init(init);

@ defines_module_exit @
identifier exit;
@@

module_exit(exit);

@ declares_idr depends on defines_module_init &amp;&amp; defines_module_exit @
identifier idr;
@@

DEFINE_IDR(idr);

@ on_exit_calls_destroy depends on declares_idr &amp;&amp; defines_module_exit @
identifier declares_idr.idr, defines_module_exit.exit;
@@

exit(void)
{
 ...
 idr_destroy(&amp;idr);
 ...
}

@ missing_module_idr_destroy depends on declares_idr &amp;&amp; defines_module_exit &amp;&amp; !on_exit_calls_destroy @
identifier declares_idr.idr, defines_module_exit.exit;
@@

exit(void)
{
 ...
 +idr_destroy(&amp;idr);
}
&lt;/SmPL&gt;

Signed-off-by: Johannes Thumshirn &lt;jthumshirn@suse.de&gt;
Signed-off-by: James Smart &lt;james.smart@avagotech.com&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
<entry>
<title>lpfc: in sli3 use configured sg_seg_cnt for sg_tablesize</title>
<updated>2015-10-27T00:57:40Z</updated>
<author>
<name>Bodo Stroesser</name>
</author>
<published>2015-08-31T20:48:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5f406fae01e4243d128956421815518d00212c3a'/>
<id>urn:sha1:5f406fae01e4243d128956421815518d00212c3a</id>
<content type='text'>
Currently the module parameter lpfc_sg_seg_count does not have effect
for sli3 devices.

In lpfc_sli_driver_resource_setup(), which is used for sli3, the code
writes the configured sg_seg_cnt into lpfc_template.sg_tablesize.
But lpfc_template is the template used for sli4 only. Thus the value should
correctly be written to lpfc_template_s3-&gt;sg_tablesize.

This patch is for kernel 4.1-rc5, but is tested with lpfc 10.2.405.26 only.

Signed-off-by: Bodo Stroesser &lt;bstroesser@ts.fujitsu.com&gt;
Signed-off-by: James Smart &lt;james.smart@avagotech.com&gt;
Reviewed-by: Sebastian Herbszt &lt;herbszt@gmx.de&gt;
Reviewed-by: Hannes Reinecke &lt;hare@suse.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Odin.com&gt;
</content>
</entry>
</feed>
