]> www.infradead.org Git - users/jedix/linux-maple.git/commit
SCSI: libsas: fix sas_discover_devices return code handling
authorDan Williams <dan.j.williams@intel.com>
Fri, 22 Jun 2012 06:36:20 +0000 (23:36 -0700)
committerJerry Snitselaar <jerry.snitselaar@oracle.com>
Sun, 7 Oct 2012 06:22:16 +0000 (23:22 -0700)
commit7defde7b24abb6c7d0ccf64411daa5aca5ffe71d
tree448fb884a2f8921e9edba72ba48dd76cc45be3a5
parent45e1962889a04444b4d6a6e679dec4a2a3046a05
SCSI: libsas: fix sas_discover_devices return code handling

commit b17caa174a7e1fd2e17b26e210d4ee91c4c28b37 upstream.

commit 198439e4 [SCSI] libsas: do not set res = 0 in sas_ex_discover_dev()
commit 19252de6 [SCSI] libsas: fix wide port hotplug issues

The above commits seem to have confused the return value of
sas_ex_discover_dev which is non-zero on failure and
sas_ex_join_wide_port which just indicates short circuiting discovery on
already established ports.  The result is random discovery failures
depending on configuration.

Calls to sas_ex_join_wide_port are the source of the trouble as its
return value is errantly assigned to 'res'.  Convert it to bool and stop
returning its result up the stack.

Tested-by: Dan Melnic <dan.melnic@amd.com>
Reported-by: Dan Melnic <dan.melnic@amd.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Jack Wang <jack_wang@usish.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 3f67ec4b517d985ac6961a1a03f91339e62657c0)

Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
drivers/scsi/libsas/sas_expander.c