<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers, branch v3.4.13</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers?h=v3.4.13</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers?h=v3.4.13'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-10-07T15:32:29Z</updated>
<entry>
<title>SCSI: scsi_dh_alua: Enable STPG for unavailable ports</title>
<updated>2012-10-07T15:32:29Z</updated>
<author>
<name>Bart Van Assche</name>
<email>bvanassche@acm.org</email>
</author>
<published>2012-08-24T09:08:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ead94148559d54f0aae235dda91dfb98dfb1eae7'/>
<id>urn:sha1:ead94148559d54f0aae235dda91dfb98dfb1eae7</id>
<content type='text'>
commit e47f8976d8e573928824a06748f7bc82c58d747f upstream.

A quote from SPC-4: "While in the unavailable primary target port
asymmetric access state, the device server shall support those of
the following commands that it supports while in the active/optimized
state: [ ... ] d) SET TARGET PORT GROUPS; [ ... ]". Hence enable
sending STPG to a target port group that is in the unavailable state.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Reviewed-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Acked-by: Hannes Reinecke &lt;hare@suse.de&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>SCSI: scsi_remove_target: fix softlockup regression on hot remove</title>
<updated>2012-10-07T15:32:29Z</updated>
<author>
<name>Dan Williams</name>
<email>djbw@fb.com</email>
</author>
<published>2012-08-29T05:12:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b8d54c01874da4e548a531b77a29c21236ce8a31'/>
<id>urn:sha1:b8d54c01874da4e548a531b77a29c21236ce8a31</id>
<content type='text'>
commit bc3f02a795d3b4faa99d37390174be2a75d091bd upstream.

John reports:
 BUG: soft lockup - CPU#2 stuck for 23s! [kworker/u:8:2202]
 [..]
 Call Trace:
  [&lt;ffffffff8141782a&gt;] scsi_remove_target+0xda/0x1f0
  [&lt;ffffffff81421de5&gt;] sas_rphy_remove+0x55/0x60
  [&lt;ffffffff81421e01&gt;] sas_rphy_delete+0x11/0x20
  [&lt;ffffffff81421e35&gt;] sas_port_delete+0x25/0x160
  [&lt;ffffffff814549a3&gt;] mptsas_del_end_device+0x183/0x270

...introduced by commit 3b661a9 "[SCSI] fix hot unplug vs async scan race".

Don't restart lookup of more stargets in the multi-target case, just
arrange to traverse the list once, on the assumption that new targets
are always added at the end.  There is no guarantee that the target will
change state in scsi_target_reap() so we can end up spinning if we
restart.

Acked-by: Jack Wang &lt;jack_wang@usish.com&gt;
LKML-Reference: &lt;CAEhu1-6wq1YsNiscGMwP4ud0Q+MrViRzv=kcWCQSBNc8c68N5Q@mail.gmail.com&gt;
Reported-by: John Drescher &lt;drescherjm@gmail.com&gt;
Tested-by: John Drescher &lt;drescherjm@gmail.com&gt;
Signed-off-by: Dan Williams &lt;djbw@fb.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>isci: fix isci_pci_probe() generates warning on efi failure path</title>
<updated>2012-10-07T15:32:29Z</updated>
<author>
<name>Dan Williams</name>
<email>dan.j.williams@intel.com</email>
</author>
<published>2012-06-22T18:31:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b4d4dc33a372aaee2205d4506b4c7ead6275067d'/>
<id>urn:sha1:b4d4dc33a372aaee2205d4506b4c7ead6275067d</id>
<content type='text'>
commit 6d70a74ffd616073a68ae0974d98819bfa8e6da6 upstream.

The oem parameter image embedded in the efi variable is at an offset
from the start of the variable.  However, in the failure path we try to
free the 'orom' pointer which is only valid when the paramaters are
being read from the legacy option-rom space.

Since failure to load the oem parameters is unlikely and we keep the
memory around in the success case just defer all de-allocation to devm.

Reported-by: Don Morris &lt;don.morris@hp.com&gt;
Signed-off-by: Dan Williams &lt;dan.j.williams@intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>IB/srp: Avoid having aborted requests hang</title>
<updated>2012-10-07T15:32:29Z</updated>
<author>
<name>Bart Van Assche</name>
<email>bvanassche@acm.org</email>
</author>
<published>2012-08-24T10:29:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=22fb582405002812d8fb89d0ed1264e97d3d25ad'/>
<id>urn:sha1:22fb582405002812d8fb89d0ed1264e97d3d25ad</id>
<content type='text'>
commit d8536670916a685df116b5c2cb256573fd25e4e3 upstream.

We need to call scsi_done() for commands after we abort them.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Acked-by: David Dillow &lt;dillowda@ornl.gov&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>IB/srp: Fix use-after-free in srp_reset_req()</title>
<updated>2012-10-07T15:32:29Z</updated>
<author>
<name>Bart Van Assche</name>
<email>bvanassche@acm.org</email>
</author>
<published>2012-08-24T10:27:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0e4765fd9c0f8df577e0b8cbea927c2051710f27'/>
<id>urn:sha1:0e4765fd9c0f8df577e0b8cbea927c2051710f27</id>
<content type='text'>
commit 9b796d06d5d1b1e85ae2316a283ea11dd739ef96 upstream.

srp_free_req() uses the scsi_cmnd structure contents to unmap
buffers, so we must invoke srp_free_req() before we release
ownership of that structure.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Acked-by: David Dillow &lt;dillowda@ornl.gov&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>IPoIB: Fix use-after-free of multicast object</title>
<updated>2012-10-07T15:32:28Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2012-08-30T07:01:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=350f3edb0a05c340853c75f4c5007a72ebd9e32f'/>
<id>urn:sha1:350f3edb0a05c340853c75f4c5007a72ebd9e32f</id>
<content type='text'>
commit bea1e22df494a729978e7f2c54f7bda328f74bc3 upstream.

Fix a crash in ipoib_mcast_join_task().  (with help from Or Gerlitz)

Commit c8c2afe360b7 ("IPoIB: Use rtnl lock/unlock when changing device
flags") added a call to rtnl_lock() in ipoib_mcast_join_task(), which
is run from the ipoib_workqueue, and hence the workqueue can't be
flushed from the context of ipoib_stop().

In the current code, ipoib_stop() (which doesn't flush the workqueue)
calls ipoib_mcast_dev_flush(), which goes and deletes all the
multicast entries.  This takes place without any synchronization with
a possible running instance of ipoib_mcast_join_task() for the same
ipoib device, leading to a crash due to NULL pointer dereference.

Fix this by making sure that the workqueue is flushed before
ipoib_mcast_dev_flush() is called.  To make that possible, we move the
RTNL-lock wrapped code to ipoib_mcast_join_finish().

Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>remoteproc: fix a potential NULL-dereference on cleanup</title>
<updated>2012-10-07T15:32:28Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2012-09-25T07:01:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cbc7a8263c6e2d8f7354b4c06e21607d6dffd6bd'/>
<id>urn:sha1:cbc7a8263c6e2d8f7354b4c06e21607d6dffd6bd</id>
<content type='text'>
commit 7168d914a782086e217214c57ddfc7cc4b738c0c upstream.

We only need to allocate mapping if there is an IOMMU domain.

Otherwise, when the mappings are released, the assumption that
an IOMMU domain is there will crash and burn.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
[ohad: revise commit log]
Signed-off-by: Ohad Ben-Cohen &lt;ohad@wizery.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>remoteproc: select VIRTIO to avoid build breakage</title>
<updated>2012-10-07T15:32:28Z</updated>
<author>
<name>Ohad Ben-Cohen</name>
<email>ohad@wizery.com</email>
</author>
<published>2012-09-30T08:25:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=abe988511dc075dab47ba9283c791299f7285aaa'/>
<id>urn:sha1:abe988511dc075dab47ba9283c791299f7285aaa</id>
<content type='text'>
commit 2ed6d29c725c4aead510b5c23f563795b265acf5 upstream.

drivers/built-in.o: In function `rproc_virtio_finalize_features':
remoteproc_virtio.c:(.text+0x2f9a02): undefined reference to `vring_transport_features'
drivers/built-in.o: In function `rproc_virtio_del_vqs':
remoteproc_virtio.c:(.text+0x2f9a74): undefined reference to `vring_del_virtqueue'
drivers/built-in.o: In function `rproc_virtio_find_vqs':
remoteproc_virtio.c:(.text+0x2f9c44): undefined reference to `vring_new_virtqueue'
drivers/built-in.o: In function `rproc_add_virtio_dev':
(.text+0x2f9e2c): undefined reference to `register_virtio_device'
drivers/built-in.o: In function `rproc_vq_interrupt':
(.text+0x2f9db7): undefined reference to `vring_interrupt'
drivers/built-in.o: In function `rproc_remove_virtio_dev':
(.text+0x2f9e9f): undefined reference to `unregister_virtio_device'

Reported-by: Randy Dunlap &lt;rdunlap@xenotime.net&gt;
Signed-off-by: Ohad Ben-Cohen &lt;ohad@wizery.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>can: mscan-mpc5xxx: fix return value check in mpc512x_can_get_clock()</title>
<updated>2012-10-07T15:32:28Z</updated>
<author>
<name>Wei Yongjun</name>
<email>yongjun_wei@trendmicro.com.cn</email>
</author>
<published>2012-09-21T07:09:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0f0c5909d4cf6016c536fceddd5ca7bded0e5219'/>
<id>urn:sha1:0f0c5909d4cf6016c536fceddd5ca7bded0e5219</id>
<content type='text'>
commit f61bd0585dfc7d99db4936d7467de4ca8e2f7ea0 upstream.

In case of error, the function clk_get() returns ERR_PTR()
and never returns NULL pointer. The NULL test in the error
handling should be replaced with IS_ERR().

dpatch engine is used to auto generated this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun &lt;yongjun_wei@trendmicro.com.cn&gt;
Acked-by: Wolfgang Grandegger &lt;wg@grandegger.com&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>SCSI: hpsa: Use LUN reset instead of target reset</title>
<updated>2012-10-07T15:32:28Z</updated>
<author>
<name>Stephen M. Cameron</name>
<email>scameron@beardog.cce.hp.com</email>
</author>
<published>2012-07-26T16:34:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7b5c87e0163ad33aabb1a725b0b5444a7e0b5c73'/>
<id>urn:sha1:7b5c87e0163ad33aabb1a725b0b5444a7e0b5c73</id>
<content type='text'>
commit 21e89afd325849eb38adccf382df16cc895911f9 upstream.

It turns out Smart Array logical drives do not support target
reset and when the target reset fails, the logical drive will
be taken off line.  Symptoms look like this:

hpsa 0000:03:00.0: Abort request on C1:B0:T0:L0
hpsa 0000:03:00.0: resetting device 1:0:0:0
hpsa 0000:03:00.0: cp ffff880037c56000 is reported invalid (probably means target device no longer present)
hpsa 0000:03:00.0: resetting device failed.
sd 1:0:0:0: Device offlined - not ready after error recovery
sd 1:0:0:0: rejecting I/O to offline device
EXT3-fs error (device sdb1): read_block_bitmap:

LUN reset is supported though, and is what we should be using.
Target reset is also disruptive in shared SAS situations,
for example, an external MSA1210m which does support target
reset attached to Smart Arrays in multiple hosts -- a target
reset from one host is disruptive to other hosts as all LUNs
on the target will be reset and will abort all outstanding i/os
back to all the attached hosts.  So we should use LUN reset,
not target reset.

Tested this with Smart Array logical drives and with tape drives.
Not sure how this bug survived since 2009, except it must be very
rare for a Smart Array to require more than 30s to complete a request.

Signed-off-by: Stephen M. Cameron &lt;scameron@beardog.cce.hp.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
