<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/scsi, branch v3.16</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/scsi?h=v3.16</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/scsi?h=v3.16'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-07-17T19:56:34Z</updated>
<entry>
<title>scsi: handle flush errors properly</title>
<updated>2014-07-17T19:56:34Z</updated>
<author>
<name>James Bottomley</name>
<email>JBottomley@Parallels.com</email>
</author>
<published>2014-07-03T17:17:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=89fb4cd1f717a871ef79fa7debbe840e3225cd54'/>
<id>urn:sha1:89fb4cd1f717a871ef79fa7debbe840e3225cd54</id>
<content type='text'>
Flush commands don't transfer data and thus need to be special cased
in the I/O completion handler so that we can propagate errors to
the block layer and filesystem.

Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Reported-by: Steven Haber &lt;steven@qumulo.com&gt;
Tested-by: Steven Haber &lt;steven@qumulo.com&gt;
Reviewed-by: Martin K. Petersen &lt;martin.petersen@oracle.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi</title>
<updated>2014-07-06T19:08:30Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-07-06T19:08:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8addf0c713061aad2fc256181be3ceac221ac215'/>
<id>urn:sha1:8addf0c713061aad2fc256181be3ceac221ac215</id>
<content type='text'>
Pull SCSI fixes from James Bottomley:
 "This is a set of 13 fixes, a MAINTAINERS update and a sparse update.
  The fixes are mostly correct value initialisations, avoiding NULL
  derefs and some uninitialised pointer avoidance.

  All the patches have been incubated in -next for a few days.  The
  final patch (use the scsi data buffer length to extract transfer size)
  has been rebased to add a cc to stable, but only the commit message
  has changed"

* tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  [SCSI] use the scsi data buffer length to extract transfer size
  virtio-scsi: fix various bad behavior on aborted requests
  virtio-scsi: avoid cancelling uninitialized work items
  ibmvscsi: Add memory barriers for send / receive
  ibmvscsi: Abort init sequence during error recovery
  qla2xxx: Fix sparse warning in qla_target.c.
  bnx2fc: Improve stats update mechanism
  bnx2fc: do not scan uninitialized lists in case of error.
  fc: ensure scan_work isn't active when freeing fc_rport
  pm8001: Fix potential null pointer dereference and memory leak.
  MAINTAINERS: Update LSILOGIC MPT FUSION DRIVERS (FC/SAS/SPI) maintainers Email IDs
  be2iscsi: remove potential junk pointer free
  be2iscsi: add an missing goto in error path
  scsi_error: set DID_TIME_OUT correctly
  scsi_error: fix invalid setting of host byte
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'scsi-queue/drivers-for-3.16' into for-linus</title>
<updated>2014-07-03T18:04:27Z</updated>
<author>
<name>James Bottomley</name>
<email>JBottomley@Parallels.com</email>
</author>
<published>2014-07-03T18:04:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=77ae174ddb84800611f5339a8bd53d49df6cd740'/>
<id>urn:sha1:77ae174ddb84800611f5339a8bd53d49df6cd740</id>
<content type='text'>
</content>
</entry>
<entry>
<title>usb-storage/SCSI: Add broken_fua blacklist flag</title>
<updated>2014-07-01T05:47:18Z</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2014-06-30T15:04:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b14bf2d0c0358140041d1c1805a674376964d0e0'/>
<id>urn:sha1:b14bf2d0c0358140041d1c1805a674376964d0e0</id>
<content type='text'>
Some buggy JMicron USB-ATA bridges don't know how to translate the FUA
bit in READs or WRITEs.  This patch adds an entry in unusual_devs.h
and a blacklist flag to tell the sd driver not to use FUA.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Reported-by: Michael Büsch &lt;m@bues.ch&gt;
Tested-by: Michael Büsch &lt;m@bues.ch&gt;
Acked-by: James Bottomley &lt;James.Bottomley@HansenPartnership.com&gt;
CC: Matthew Dharm &lt;mdharm-usb@one-eyed-alien.net&gt;
CC: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>virtio-scsi: fix various bad behavior on aborted requests</title>
<updated>2014-06-25T11:29:33Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2014-06-04T11:34:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8faeb529b2dabb9df691d614dda18910a43d05c9'/>
<id>urn:sha1:8faeb529b2dabb9df691d614dda18910a43d05c9</id>
<content type='text'>
Even though the virtio-scsi spec guarantees that all requests related
to the TMF will have been completed by the time the TMF itself completes,
the request queue's callback might not have run yet.  This causes requests
to be completed more than once, and as a result triggers a variety of
BUGs or oopses.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Reviewed-by: Venkatesh Srinivas &lt;venkateshs@google.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>virtio-scsi: avoid cancelling uninitialized work items</title>
<updated>2014-06-25T11:29:33Z</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2014-06-04T11:34:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cdda0e5acbb78f7b777049f8c27899e5c5bb368f'/>
<id>urn:sha1:cdda0e5acbb78f7b777049f8c27899e5c5bb368f</id>
<content type='text'>
Calling the workqueue interface on uninitialized work items isn't a
good idea even if they're zeroed. It's not failing catastrophically only
through happy accidents.

Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
Reviewed-by: Stefan Hajnoczi &lt;stefanha@redhat.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>ibmvscsi: Add memory barriers for send / receive</title>
<updated>2014-06-25T11:29:32Z</updated>
<author>
<name>Brian King</name>
<email>brking@linux.vnet.ibm.com</email>
</author>
<published>2014-05-23T15:52:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7114aae02742d6b5c5a0d39a41deb61d415d3717'/>
<id>urn:sha1:7114aae02742d6b5c5a0d39a41deb61d415d3717</id>
<content type='text'>
Add a memory barrier prior to sending a new command to the VIOS
to ensure the VIOS does not receive stale data in the command buffer.
Also add a memory barrier when processing the CRQ for completed commands.

Signed-off-by: Brian King &lt;brking@linux.vnet.ibm.com&gt;
Acked-by: Nathan Fontenot &lt;nfont@linux.vnet.ibm.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>ibmvscsi: Abort init sequence during error recovery</title>
<updated>2014-06-25T11:29:32Z</updated>
<author>
<name>Brian King</name>
<email>brking@linux.vnet.ibm.com</email>
</author>
<published>2014-05-23T15:52:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9ee755974bea2f9880e517ec985dc9dede1b3a36'/>
<id>urn:sha1:9ee755974bea2f9880e517ec985dc9dede1b3a36</id>
<content type='text'>
If a CRQ reset is triggered for some reason while in the middle
of performing VSCSI adapter initialization, we don't want to
call the done function for the initialization MAD commands as
this will only result in two threads attempting initialization
at the same time, resulting in failures.

Signed-off-by: Brian King &lt;brking@linux.vnet.ibm.com&gt;
Acked-by: Nathan Fontenot &lt;nfont@linux.vnet.ibm.com&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>qla2xxx: Fix sparse warning in qla_target.c.</title>
<updated>2014-06-25T11:29:31Z</updated>
<author>
<name>Quinn Tran</name>
<email>quinn.tran@qlogic.com</email>
</author>
<published>2014-06-24T04:22:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=33a5fcee7f5d4920ff33997169e02cc34cbab6e6'/>
<id>urn:sha1:33a5fcee7f5d4920ff33997169e02cc34cbab6e6</id>
<content type='text'>
Signed-off-by: Quinn Tran &lt;quinn.tran@qlogic.com&gt;
Signed-off-by: Saurav Kashyap &lt;saurav.kashyap@qlogic.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>bnx2fc: Improve stats update mechanism</title>
<updated>2014-06-25T11:29:31Z</updated>
<author>
<name>Neil Horman</name>
<email>nhorman@tuxdriver.com</email>
</author>
<published>2014-06-23T14:41:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2'/>
<id>urn:sha1:d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2</id>
<content type='text'>
Recently had this warning reported:

[  290.489047] Call Trace:
[  290.489053]  [&lt;ffffffff8169efec&gt;] dump_stack+0x19/0x1b
[  290.489055]  [&lt;ffffffff810ac7a9&gt;] __might_sleep+0x179/0x230
[  290.489057]  [&lt;ffffffff816a4ad5&gt;] mutex_lock_nested+0x55/0x520
[  290.489061]  [&lt;ffffffffa01b9905&gt;] ? bnx2fc_l2_rcv_thread+0xc5/0x4c0 [bnx2fc]
[  290.489065]  [&lt;ffffffffa0174c1a&gt;] fc_vport_id_lookup+0x3a/0xa0 [libfc]
[  290.489068]  [&lt;ffffffffa01b9a6c&gt;] bnx2fc_l2_rcv_thread+0x22c/0x4c0 [bnx2fc]
[  290.489070]  [&lt;ffffffffa01b9840&gt;] ? bnx2fc_vport_destroy+0x110/0x110 [bnx2fc]
[  290.489073]  [&lt;ffffffff8109e0cd&gt;] kthread+0xed/0x100
[  290.489075]  [&lt;ffffffff8109dfe0&gt;] ? insert_kthread_work+0x80/0x80
[  290.489077]  [&lt;ffffffff816b2fec&gt;] ret_from_fork+0x7c/0xb0
[  290.489078]  [&lt;ffffffff8109dfe0&gt;] ? insert_kthread_work+0x80/0x80

Its due to the fact that we call a potentially sleeping function from the bnx2fc
rcv path with preemption disabled (via the get_cpu call embedded in the per-cpu
variable stats lookup in bnx2fc_l2_rcv_thread.

Easy enough fix, we can just move the stats collection later in the function
where we are sure we won't preempt or sleep.  This also allows us to not have to
enable pre-emption when doing a per-cpu lookup, since we're certain not to get
rescheduled.

Signed-off-by: Neil Horman &lt;nhorman@tuxdriver.com&gt;
Acked-by:  Eddie Wai &lt;eddie.wai@broadcom.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
</feed>
