<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/nvme/target/fc.c, branch linux-5.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-05-25T07:59:01Z</updated>
<entry>
<title>nvmet: use a private workqueue instead of the system workqueue</title>
<updated>2022-05-25T07:59:01Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2022-03-21T11:57:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=84026f8c9357c62a9d3e4c554ffd10ccab813654'/>
<id>urn:sha1:84026f8c9357c62a9d3e4c554ffd10ccab813654</id>
<content type='text'>
[ Upstream commit 8832cf922151e9dfa2821736beb0ae2dd3968b6e ]

Any attempt to flush kernel-global WQs has possibility of deadlock
so we should simply stop using them, instead introduce nvmet_wq
which is the generic nvmet workqueue for work elements that
don't explicitly require a dedicated workqueue (by the mere fact
that they are using the system_wq).

Changes were done using the following replaces:

 - s/schedule_work(/queue_work(nvmet_wq, /g
 - s/schedule_delayed_work(/queue_delayed_work(nvmet_wq, /g
 - s/flush_scheduled_work()/flush_workqueue(nvmet_wq)/g

Reported-by: Tetsuo Handa &lt;penguin-kernel@I-love.SAKURA.ne.jp&gt;
Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Reviewed-by: Chaitanya Kulkarni &lt;kch@nvidia.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: do not check for invalid target port in nvmet_fc_handle_fcp_rqst()</title>
<updated>2021-06-17T13:51:19Z</updated>
<author>
<name>Hannes Reinecke</name>
</author>
<published>2021-05-25T12:54:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2a4a910aa4f0acc428dc8d10227c42e14ed21d10'/>
<id>urn:sha1:2a4a910aa4f0acc428dc8d10227c42e14ed21d10</id>
<content type='text'>
When parsing a request in nvmet_fc_handle_fcp_rqst() we should not
check for invalid target ports; if we do the command is aborted
from the fcp layer, causing the host to assume a transport error.
Rather we should still forward this request to the nvmet layer, which
will then correctly fail the command with an appropriate error status.

Signed-off-by: Hannes Reinecke &lt;hare@suse.de&gt;
Reviewed-by: James Smart &lt;jsmart2021@gmail.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: simplify nvmet_fc_alloc_hostport</title>
<updated>2021-04-15T06:12:53Z</updated>
<author>
<name>Amit Engel</name>
</author>
<published>2021-03-22T19:57:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0d8ddeea11d00010c8b0ecbe9d3b90811cd19867'/>
<id>urn:sha1:0d8ddeea11d00010c8b0ecbe9d3b90811cd19867</id>
<content type='text'>
Once a host is already created, avoid allocate additional hostports that
will be thrown away. add an helper function to handle host search.

Reviewed-by: Himanshu Madhani &lt;himanshu.madhani@oracle.com&gt;
Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Signed-off-by: Amit Engel &lt;amit.engel@dell.com&gt;
Reviewed-by: Chaitanya Kulkarni &lt;chaitanya.kulkarni@wdc.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: update function documentation</title>
<updated>2021-04-02T16:48:27Z</updated>
<author>
<name>Chaitanya Kulkarni</name>
</author>
<published>2021-03-01T02:06:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b53d47418d98dbf5cd082e756a9e4e2a426492d7'/>
<id>urn:sha1:b53d47418d98dbf5cd082e756a9e4e2a426492d7</id>
<content type='text'>
Add minimum description of the hosthandle parameter for
nvmet_fc_rcv_ls_req() so that we can get rid of the following warning.

drivers/nvme//target/fc.c:2009: warning: Function parameter or member 'hosthandle' not described in 'nvmet_fc_rcv_ls_req

Signed-off-by: Chaitanya Kulkarni &lt;chaitanya.kulkarni@wdc.com&gt;
Reviewed-by: James Smart &lt;jsmart2021@gmail.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: add a missing __rcu annotation to nvmet_fc_tgt_assoc.queues</title>
<updated>2021-02-10T15:38:04Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2021-02-07T16:17:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5df8e79a293739f031f25eb45de350165033ea4'/>
<id>urn:sha1:b5df8e79a293739f031f25eb45de350165033ea4</id>
<content type='text'>
Make sparse happy after the recent conversion to RCU lookups.

Fixes: 4e2f02bf77da ("nvmet-fc: use RCU proctection for assoc_list")
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Reviewed-by: Chaitanya Kulkarni &lt;chaitanya.kulkarni@wdc.com&gt;
Reviewed-by: James Smart &lt;james.smart@broadcom.com&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: use RCU proctection for assoc_list</title>
<updated>2021-02-02T09:26:10Z</updated>
<author>
<name>Leonid Ravich</name>
</author>
<published>2021-01-03T18:12:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4e2f02bf77dac7b8c841f93ae5a71556d733cb04'/>
<id>urn:sha1:4e2f02bf77dac7b8c841f93ae5a71556d733cb04</id>
<content type='text'>
searching assoc_list protected by rcu_read_lock if list not changed inline.
and according to the rcu list rules.

queue array embedded into nvmet_fc_tgt_assoc protected by rcu_read_lock
according to rcu dereference/assign rules.

queue and assoc object freed after grace period by call_rcu.

tgtport lock taken for changing assoc_list.

Reviewed-by: Eldad Zinger &lt;Eldad.Zinger@dell.com&gt;
Reviewed-by: Elad Grupi &lt;Elad.Grupi@dell.com&gt;
Reviewed-by: James Smart &lt;james.smart@broadcom.com&gt;
Signed-off-by: Leonid Ravich &lt;Leonid.Ravich@emc.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: fix missing check for no hostport struct</title>
<updated>2020-09-27T07:14:19Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2020-09-22T21:54:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ddd3d1051797b9f907ab9799f5ba50398c530676'/>
<id>urn:sha1:ddd3d1051797b9f907ab9799f5ba50398c530676</id>
<content type='text'>
A hostport port pointer is allowed to be NULL as it is not allocated if
the lldd does not support the new interfaces for NVME LS request support.
The hostport free routine validates the handle but forgot to validate the
hostport pointer.

Validate the hostport pointer before using it to validate the handle.

Signed-off-by: James Smart &lt;james.smart@broadcom.com&gt;
Reviewed-by: Himanshu Madhani &lt;himanshu.madhani@oracle.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: Fix a missed _irqsave version of spin_lock in 'nvmet_fc_fod_op_done()'</title>
<updated>2020-08-28T23:43:57Z</updated>
<author>
<name>Christophe JAILLET</name>
</author>
<published>2020-08-21T07:58:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=70e37988db94aba607d5491a94f80ba08e399b6b'/>
<id>urn:sha1:70e37988db94aba607d5491a94f80ba08e399b6b</id>
<content type='text'>
The way 'spin_lock()' and 'spin_lock_irqsave()' are used is not consistent
in this function.

Use 'spin_lock_irqsave()' also here, as there is no guarantee that
interruptions are disabled at that point, according to surrounding code.

Fixes: a97ec51b37ef ("nvmet_fc: Rework target side abort handling")
Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: remove redundant del_work_active flag</title>
<updated>2020-07-29T05:45:20Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2020-07-24T16:40:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ece0278c1c96905c53a6cbb253927530fc707cfa'/>
<id>urn:sha1:ece0278c1c96905c53a6cbb253927530fc707cfa</id>
<content type='text'>
The transport has a del_work_active flag to avoid duplicate scheduling
of the del_work item. This is redundant with the checks that
schedule_work() makes.

Remove the del_work_active flag.

Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>nvmet-fc: check successful reference in nvmet_fc_find_target_assoc</title>
<updated>2020-07-29T05:45:20Z</updated>
<author>
<name>James Smart</name>
</author>
<published>2020-07-24T16:40:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=34efa23234c8b55dd178bba2216ca9ae9b50e1c9'/>
<id>urn:sha1:34efa23234c8b55dd178bba2216ca9ae9b50e1c9</id>
<content type='text'>
When searching for an association based on an association id, when there
is a match, the code takes a reference. However, it is not validating
that the reference taking was successful.

Check the status of the reference. If unsuccessful, the device is being
deleted and should be ignored.

Signed-off-by: James Smart &lt;jsmart2021@gmail.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
</feed>
