]> git.karo-electronics.de Git - karo-tx-linux.git/commit
libsas: fix failure to revalidate domain for anything but the first expander child.
authorMark Salyzyn <mark_salyzyn@us.xyratex.com>
Thu, 1 Sep 2011 13:11:17 +0000 (06:11 -0700)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Fri, 17 Aug 2012 19:35:21 +0000 (15:35 -0400)
commit78d645ad7c66e81342cfde0e90a701c32c11eee6
treea520ec7806fee353be87393d4f06a71c30b620b1
parentbd37804641016140043d6d1970b2667c534b01ae
libsas: fix failure to revalidate domain for anything but the first expander child.

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 <msalyzyn@us.xyratex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
drivers/scsi/libsas/sas_expander.c