<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/scsi/libsas, branch linux-2.6.33.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.33.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.33.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2011-11-07T21:47:12Z</updated>
<entry>
<title>libsas: set sas_address and device type of rphy</title>
<updated>2011-11-07T21:47:12Z</updated>
<author>
<name>Jack Wang</name>
</author>
<published>2011-09-23T06:32:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=32b7ba7b018e2da23eff126a6307710307a65773'/>
<id>urn:sha1:32b7ba7b018e2da23eff126a6307710307a65773</id>
<content type='text'>
commit bb041a0e9c31229071b6e56e1d0d8374af0d2038 upstream.

Libsas forget to set the sas_address and device type of rphy lead to file
under /sys/class/sas_x show wrong value, fix that.

Signed-off-by: Jack Wang &lt;jack_wang@usish.com&gt;
Tested-by: Crystal Yu &lt;crystal_yu@usish.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libsas: fix panic when single phy is disabled on a wide port</title>
<updated>2011-11-07T21:47:06Z</updated>
<author>
<name>Mark Salyzyn</name>
</author>
<published>2011-09-22T15:32:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=719ec0da4043a1520190de771f91c17ea5967b71'/>
<id>urn:sha1:719ec0da4043a1520190de771f91c17ea5967b71</id>
<content type='text'>
commit a73914c35b05d80f8ce78288e10056c91090b666 upstream.

When a wide port is being utilized to a target, if one disables only one
of the
phys, we get an OS crash:

BUG: unable to handle kernel NULL pointer dereference at
0000000000000238
IP: [&lt;ffffffff814ca9b1&gt;] mutex_lock+0x21/0x50
PGD 4103f5067 PUD 41dba9067 PMD 0
Oops: 0002 [#1] SMP
last sysfs file: /sys/bus/pci/slots/5/address
CPU 0
Modules linked in: pm8001(U) ses enclosure fuse nfsd exportfs autofs4
ipmi_devintf ipmi_si ipmi_msghandler nfs lockd fscache nfs_acl
auth_rpcgss 8021q fcoe libfcoe garp libfc scsi_transport_fc stp scsi_tgt
llc sunrpc cpufreq_ondemand acpi_cpufreq freq_table ipv6 sr_mod cdrom
dm_mirror dm_region_hash dm_log uinput sg i2c_i801 i2c_core iTCO_wdt
iTCO_vendor_support e1000e mlx4_ib ib_mad ib_core mlx4_en mlx4_core ext3
jbd mbcache sd_mod crc_t10dif usb_storage ata_generic pata_acpi ata_piix
libsas(U) scsi_transport_sas dm_mod [last unloaded: pm8001]

Modules linked in: pm8001(U) ses enclosure fuse nfsd exportfs autofs4
ipmi_devintf ipmi_si ipmi_msghandler nfs lockd fscache nfs_acl
auth_rpcgss 8021q fcoe libfcoe garp libfc scsi_transport_fc stp scsi_tgt
llc sunrpc cpufreq_ondemand acpi_cpufreq freq_table ipv6 sr_mod cdrom
dm_mirror dm_region_hash dm_log uinput sg i2c_i801 i2c_core iTCO_wdt
iTCO_vendor_support e1000e mlx4_ib ib_mad ib_core mlx4_en mlx4_core ext3
jbd mbcache sd_mod crc_t10dif usb_storage ata_generic pata_acpi ata_piix
libsas(U) scsi_transport_sas dm_mod [last unloaded: pm8001]
Pid: 5146, comm: scsi_wq_5 Not tainted
2.6.32-71.29.1.el6.lustre.7.x86_64 #1 Storage Server
RIP: 0010:[&lt;ffffffff814ca9b1&gt;]  [&lt;ffffffff814ca9b1&gt;]
mutex_lock+0x21/0x50
RSP: 0018:ffff8803e4e33d30  EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000238 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffff8803e664c800 RDI: 0000000000000238
RBP: ffff8803e4e33d40 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000000
R13: 0000000000000238 R14: ffff88041acb7200 R15: ffff88041c51ada0
FS:  0000000000000000(0000) GS:ffff880028200000(0000)
knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000238 CR3: 0000000410143000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process scsi_wq_5 (pid: 5146, threadinfo ffff8803e4e32000, task
ffff8803e4e294a0)
Stack:
 ffff8803e664c800 0000000000000000 ffff8803e4e33d70 ffffffffa001f06e
&lt;0&gt; ffff8803e4e33d60 ffff88041c51ada0 ffff88041acb7200 ffff88041bc0aa00
&lt;0&gt; ffff8803e4e33d90 ffffffffa0032b6c 0000000000000014 ffff88041acb7200
Call Trace:
 [&lt;ffffffffa001f06e&gt;] sas_port_delete_phy+0x2e/0xa0 [scsi_transport_sas]
 [&lt;ffffffffa0032b6c&gt;] sas_unregister_devs_sas_addr+0xac/0xe0 [libsas]
 [&lt;ffffffffa0034914&gt;] sas_ex_revalidate_domain+0x204/0x330 [libsas]
 [&lt;ffffffffa00307f0&gt;] ? sas_revalidate_domain+0x0/0x90 [libsas]
 [&lt;ffffffffa0030855&gt;] sas_revalidate_domain+0x65/0x90 [libsas]
 [&lt;ffffffff8108c7d0&gt;] worker_thread+0x170/0x2a0
 [&lt;ffffffff81091ea0&gt;] ? autoremove_wake_function+0x0/0x40
 [&lt;ffffffff8108c660&gt;] ? worker_thread+0x0/0x2a0
 [&lt;ffffffff81091b36&gt;] kthread+0x96/0xa0
 [&lt;ffffffff810141ca&gt;] child_rip+0xa/0x20
 [&lt;ffffffff81091aa0&gt;] ? kthread+0x0/0xa0
 [&lt;ffffffff810141c0&gt;] ? child_rip+0x0/0x20
Code: ff ff 85 c0 75 ed eb d6 66 90 55 48 89 e5 48 83 ec 10 48 89 1c 24
4c 89 64 24 08 0f 1f 44 00 00 48 89 fb e8 92 f4 ff ff 48 89 df &lt;f0&gt; ff
0f 79 05 e8 25 00 00 00 65 48 8b 04 25 08 cc 00 00 48 2d
RIP  [&lt;ffffffff814ca9b1&gt;] mutex_lock+0x21/0x50
 RSP &lt;ffff8803e4e33d30&gt;
CR2: 0000000000000238

The following patch is admittedly a band-aid, and does not solve the
root cause, but it still is a good candidate for hardening as a pointer
check before reference.

Signed-off-by: Mark Salyzyn &lt;mark_salyzyn@us.xyratex.com&gt;
Tested-by: Jack Wang &lt;jack_wang@usish.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libsas: fix failure to revalidate domain for anything but the first expander child.</title>
<updated>2011-11-07T21:47:05Z</updated>
<author>
<name>Mark Salyzyn</name>
</author>
<published>2011-09-01T13:11:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8608c3131f166b628f6ccd49d508b682adc95827'/>
<id>urn:sha1:8608c3131f166b628f6ccd49d508b682adc95827</id>
<content type='text'>
commit 24926dadc41cc566e974022b0e66231b82c6375f upstream.

In an enclosure model where there are chaining expanders to a large body
of storage, it was discovered that libsas, responding to a broadcast
event change, would only revalidate the domain of first child expander
in the list.

The issue is that the pointer value to the discovered source device was
used to break out of the loop, rather than the content of the pointer.

This still remains non-compliant as the revalidate domain code is
supposed to loop through all child expanders, and not stop at the first
one it finds that reports a change count. However, the design of this
routine does not allow multiple device discoveries and that would be a
more complicated set of patches reserved for another day. We are fixing
the glaring bug rather than refactoring the code.

Signed-off-by: Mark Salyzyn &lt;msalyzyn@us.xyratex.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libsas: remove expander from dev list on error</title>
<updated>2011-08-08T17:35:56Z</updated>
<author>
<name>Luben Tuikov</name>
</author>
<published>2011-07-27T06:10:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d5777ffd658e4e576dca2d9e3fb5d31f439cbf68'/>
<id>urn:sha1:d5777ffd658e4e576dca2d9e3fb5d31f439cbf68</id>
<content type='text'>
commit 5911e963d3718e306bcac387b83e259aa4228896 upstream.

If expander discovery fails (sas_discover_expander()), remove the
expander from the port device list (sas_ex_discover_expander()),
before freeing it. Else the list is corrupted and, e.g., when we
attempt to send SMP commands to other devices, the kernel oopses.

Signed-off-by: Luben Tuikov &lt;ltuikov@yahoo.com&gt;
Reviewed-by: Jack Wang &lt;jack_wang@usish.com&gt;
Signed-off-by: James Bottomley &lt;JBottomley@Parallels.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libsas: fix runaway error handler problem</title>
<updated>2011-03-21T19:44:45Z</updated>
<author>
<name>James Bottomley</name>
</author>
<published>2011-01-20T23:26:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ac516aa27fabd38893f21eeb894dea16bee23a8c'/>
<id>urn:sha1:ac516aa27fabd38893f21eeb894dea16bee23a8c</id>
<content type='text'>
commit 9ee91f7fb550a4c82f82d9818e42493484c754af upstream.

libsas makes use of scsi_schedule_eh() but forgets to clear the
host_eh_scheduled flag in its error handling routine.  Because of this,
the error handler thread never gets to sleep; it's constantly awake and
trying to run the error routine leading to console spew and inability to
run anything else (at least on a UP system).  The fix is to clear the
flag as we splice the work queue.

Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>libsas: fix NCQ mixing with non-NCQ</title>
<updated>2011-03-21T19:43:37Z</updated>
<author>
<name>David Milburn</name>
</author>
<published>2010-09-03T22:13:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c960e1e3eafdf8b09b376dd15496c6447eee245d'/>
<id>urn:sha1:c960e1e3eafdf8b09b376dd15496c6447eee245d</id>
<content type='text'>
commit f0ad30d3d2dc924decc0e10b1ff6dc32525a5d99 upstream.

Some cards (like mvsas) have issue troubles if non-NCQ commands are
mixed with NCQ ones.  Fix this by using the libata default NCQ check
routine which waits until all NCQ commands are complete before issuing
a non-NCQ one.  The impact to cards (like aic94xx) which don't need
this logic should be minimal

Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>SCSI: fix locking around blk_abort_request()</title>
<updated>2010-05-12T22:03:11Z</updated>
<author>
<name>Tejun Heo</name>
</author>
<published>2010-04-15T00:00:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a904363da074781118bc161a1149494bf195128'/>
<id>urn:sha1:5a904363da074781118bc161a1149494bf195128</id>
<content type='text'>
commit 70b25f890ce9f0520c64075ce9225a5b020a513e upstream.

blk_abort_request() expects queue lock to be held by the caller.
Grab it before calling the function.

Lack of this synchronization led to infinite loop on corrupt
q-&gt;timeout_list.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6</title>
<updated>2009-12-10T03:42:25Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2009-12-10T03:42:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=382f51fe2f2276344d8a21447656778cdf6583b6'/>
<id>urn:sha1:382f51fe2f2276344d8a21447656778cdf6583b6</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (222 commits)
  [SCSI] zfcp: Remove flag ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP
  [SCSI] zfcp: Activate fc4s attributes for zfcp in FC transport class
  [SCSI] zfcp: Block scsi_eh thread for rport state BLOCKED
  [SCSI] zfcp: Update FSF error reporting
  [SCSI] zfcp: Improve ELS ADISC handling
  [SCSI] zfcp: Simplify handling of ct and els requests
  [SCSI] zfcp: Remove ZFCP_DID_MASK
  [SCSI] zfcp: Move WKA port to zfcp FC code
  [SCSI] zfcp: Use common code definitions for FC CT structs
  [SCSI] zfcp: Use common code definitions for FC ELS structs
  [SCSI] zfcp: Update FCP protocol related code
  [SCSI] zfcp: Dont fail SCSI commands when transitioning to blocked fc_rport
  [SCSI] zfcp: Assign scheduled work to driver queue
  [SCSI] zfcp: Remove STATUS_COMMON_REMOVE flag as it is not required anymore
  [SCSI] zfcp: Implement module unloading
  [SCSI] zfcp: Merge trace code for fsf requests in one function
  [SCSI] zfcp: Access ports and units with container_of in sysfs code
  [SCSI] zfcp: Remove suspend callback
  [SCSI] zfcp: Remove global config_mutex
  [SCSI] zfcp: Replace local reference counting with common kref
  ...
</content>
</entry>
<entry>
<title>[SCSI] modify change_queue_depth to take in reason why it is being called</title>
<updated>2009-12-04T18:00:41Z</updated>
<author>
<name>Mike Christie</name>
</author>
<published>2009-10-16T00:46:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e881a172dac4d9ea3b2a1540041d872963c269bd'/>
<id>urn:sha1:e881a172dac4d9ea3b2a1540041d872963c269bd</id>
<content type='text'>
This patch modifies scsi_host_template-&gt;change_queue_depth so that
it takes an argument indicating why it is being called. This will be
used so that if a LLD needs to do some extra processing when
handling queue fulls or later ramp ups, it can do so.

This is a simple port of the drivers setting a change_queue_depth
callback. In the patch I just have these LLDs adjust the queue depth
if the user was requesting it.

Signed-off-by: Mike Christie &lt;michaelc@cs.wisc.edu&gt;

[Vasu.Dev: v2
	Also converted pmcraid_change_queue_depth and then verified
all modules compile  using "make allmodconfig" for any new build
warnings on X86_64.

	Updated original description after combing two original
patches from Mike to make this patch git bisectable.]
Signed-off-by: Vasu Dev &lt;vasu.dev@intel.com&gt;
[jejb: fixed up 53c700]
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
<entry>
<title>[SCSI] libsas: do not set res = 0 in sas_ex_discover_dev()</title>
<updated>2009-11-06T19:10:42Z</updated>
<author>
<name>jack wang</name>
</author>
<published>2009-10-20T08:10:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=198439e4afec431d2fa2cab9a4dcca87e5adc7a5'/>
<id>urn:sha1:198439e4afec431d2fa2cab9a4dcca87e5adc7a5</id>
<content type='text'>
We should not set res to 0 in function sas_ex_discover_dev  in order to let
it discover it further when wide port hotplug in .

Signed-off-by: Tom Peng &lt;tom_peng@usish.com&gt;
Signed-off-by: Jack Wang &lt;jack_wang@usish.com&gt;
Signed-off-by: James Bottomley &lt;James.Bottomley@suse.de&gt;
</content>
</entry>
</feed>
