<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/nvme/target/fc.c, branch linux-5.1.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.1.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.1.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-03-13T18:57:34Z</updated>
<entry>
<title>nvmet-fc: bring Disconnect into compliance with FC-NVME spec</title>
<updated>2019-03-13T18:57:34Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2019-03-13T17:55:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=404ec31df434fdae515202952b5e230c1b983ee1'/>
<id>urn:sha1:404ec31df434fdae515202952b5e230c1b983ee1</id>
<content type='text'>
The FC-NVME spec, when finally approved, modified the disconnect LS
such that the only scope available is the association.

Rework the Disconnect LS processing to be in accordance with the
change.

Signed-off-by: Nigel Kirkland &lt;nigel.kirkland@broadcom.com&gt;
Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Reviewed-by: Ewan D. Milne &lt;emilne@redhat.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: fix issues with targetport assoc_list list walking</title>
<updated>2019-03-13T18:57:30Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2019-03-13T17:55:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0191e7405b687339a5540c1562acdecefd70eb3f'/>
<id>urn:sha1:0191e7405b687339a5540c1562acdecefd70eb3f</id>
<content type='text'>
There are two changes:

1) The logic in the __nvmet_fc_free_assoc() routine is bad. It uses
"safe" routines assuming pointers will come back valid.  However, the
intervening next structure being linked can be removed from the list and
the resulting safe pointers are bad, resulting in NULL ptrs being hit.

Correct by scheduling a work element to perform the association delete,
which can be done while under lock.

2) Prior patch that added the work element scheduling left a possible
reference on the object if the work element couldn't be scheduled.

Correct by doing the put on a failing schedule_work() call.

Signed-off-by: Nigel Kirkland &lt;nigel.kirkland@broadcom.com&gt;
Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Reviewed-by: Ewan D. Milne &lt;emilne@redhat.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: convert to SPDX identifiers</title>
<updated>2019-02-20T14:22:31Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2019-02-18T10:35:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4f80fc77fc14d0d1da28573f5116aded2932f5ad'/>
<id>urn:sha1:4f80fc77fc14d0d1da28573f5116aded2932f5ad</id>
<content type='text'>
Update license to use SPDX-License-Identifier instead of verbose license
text.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: remove the IN_ISR deferred scheduling options</title>
<updated>2018-12-08T05:26:57Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2018-11-14T23:57:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6e2e312ea7ff73acfafaa5c9851e151e9483c761'/>
<id>urn:sha1:6e2e312ea7ff73acfafaa5c9851e151e9483c761</id>
<content type='text'>
All target lldd's call the cmd receive and op completions in non-isr
thread contexts. As such the IN_ISR options are not necessary.
Remove the functionality and flags, which also removes cpu assignments
to queues.

Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: fix kernel-doc headers</title>
<updated>2018-10-17T06:58:30Z</updated>
<author>
<name>Bart Van Assche</name>
</author>
<published>2018-10-08T21:28:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1c4665272ca73335a662a0fb6a9604ec76983756'/>
<id>urn:sha1:1c4665272ca73335a662a0fb6a9604ec76983756</id>
<content type='text'>
This patch avoids that the kernel-doc tool complains about two function
headers when building with W=1.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Reviewed-by: James Smart &lt;james.smart@broadcom.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet_fc: support target port removal with nvmet layer</title>
<updated>2018-10-01T21:16:10Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2018-08-09T23:48:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ea96d6496ff59b2b26dc9e13dc8f57d77731eb37'/>
<id>urn:sha1:ea96d6496ff59b2b26dc9e13dc8f57d77731eb37</id>
<content type='text'>
Currently, if a targetport has been connected to via the nvmet config
(in other words, the add_port() transport routine called, and the nvmet
port pointer stored for using in upcalls on new io), and if the
targetport is then removed (say the lldd driver decides to unload or
fully reset its hardware) and then re-added (the lldd driver reloads or
reinits its hardware), the port pointer has been lost so there's no way
to continue to post commands up to nvmet via the transport port.

Correct by allocating a small "port context" structure that will be
linked to by the targetport. The context will save the targetport WWN's
and the nvmet port pointer to use for it.  Initial allocation will occur
when the targetport is bound to via add_port.  The context will be
deallocated when remove_port() is called.  If a targetport is removed
while nvmet has the active port context, the targetport will be unlinked
from the port context before removal.  If a new targetport is registered,
the port contexts without a binding are looked through and if the WWN's
match (so it's the same as nvmet's port context) the port context is
linked to the new target port.  Thus new io can be received on the new
targetport and operation resumes with nvmet.

Additionally, this also resolves nvmet configuration changing out from
underneath of the nvme-fc target port (for example: a nvmetcli clear).

Signed-off-by: James Smart &lt;james.smart@broadcom.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvme-fc: fix for a minor typos</title>
<updated>2018-10-01T21:16:09Z</updated>
<author>
<name>Milan P. Gandhi</name>
</author>
<published>2018-08-10T09:24:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d4e4230c8f5646a19a0e58765a30fb2bab5f1dcc'/>
<id>urn:sha1:d4e4230c8f5646a19a0e58765a30fb2bab5f1dcc</id>
<content type='text'>
Signed-off-by: Milan P. Gandhi &lt;mgandhi@redhat.com&gt;
Reviewed-by: James Smart &lt;james.smart@broadcom.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: fix target sgl list on large transfers</title>
<updated>2018-07-24T11:44:09Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2018-07-16T21:38:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d082dc1562a2ff0947b214796f12faaa87e816a9'/>
<id>urn:sha1:d082dc1562a2ff0947b214796f12faaa87e816a9</id>
<content type='text'>
The existing code to carve up the sg list expected an sg element-per-page
which can be very incorrect with iommu's remapping multiple memory pages
to fewer bus addresses. To hit this error required a large io payload
(greater than 256k) and a system that maps on a per-page basis. It's
possible that large ios could get by fine if the system condensed the
sgl list into the first 64 elements.

This patch corrects the sg list handling by specifically walking the
sg list element by element and attempting to divide the transfer up
on a per-sg element boundary. While doing so, it still tries to keep
sequences under 256k, but will exceed that rule if a single sg element
is larger than 256k.

Fixes: 48fa362b6c3f ("nvmet-fc: simplify sg list handling")
Cc: &lt;stable@vger.kernel.org&gt; # 4.14
Signed-off-by: James Smart &lt;james.smart@broadcom.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: increase LS buffer count per fc port</title>
<updated>2018-05-25T14:50:12Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2018-05-21T23:27:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17d78252ee568ecf94df6829c81578c0602991eb'/>
<id>urn:sha1:17d78252ee568ecf94df6829c81578c0602991eb</id>
<content type='text'>
Todays limit on concurrent LS's is very small - 4 buffers. With large
subsystem counts or large numbers of initiators connecting, the limit
may be exceeded.

Raise the LS buffer count to 256.

Signed-off-by: James Smart &lt;james.smart@broadcom.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet: constify struct nvmet_fabrics_ops</title>
<updated>2018-03-26T14:53:43Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2018-03-20T19:41:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e929f06d9eaab4dba14e730ef18aa85b76465db9'/>
<id>urn:sha1:e929f06d9eaab4dba14e730ef18aa85b76465db9</id>
<content type='text'>
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Keith Busch &lt;keith.busch@intel.com&gt;
Signed-off-by: Jens Axboe &lt;axboe@kernel.dk&gt;
</content>
</entry>
</feed>
