[SCSI] advansys: fix regression with request_firmware change
authorHerton Ronaldo Krzesinski <herton@mandriva.com.br>
Fri, 19 Mar 2010 22:37:26 +0000 (19:37 -0300)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 27 Mar 2010 19:12:37 +0000 (15:12 -0400)
commitcf7474451c3a3cf07811abbf2a39536d33046c36
tree7e9336395862432e8f2146f490fbc936705ac610
parent89162e9c21de3cb3b7e9e29d50cb7c3e88a09e2b
[SCSI] advansys: fix regression with request_firmware change

On newer kernels users of advansys module are reporting system hang when
trying to load it without firmware files present. After looking closely
at description on https://qa.mandriva.com/show_bug.cgi?id=53220, I think
this is related to commit "[SCSI] advansys: use request_firmware". The
problem is that after switch to request_firmware, asc_dvc->err_code
isn't being set when firmware files aren't found or loading fails.

err_code is used by the driver to judge if there was a fatal error or
not, as can be seen for example on advansys_board_found, which will only
return -ENODEV when err_code is set. Because err_code isn't being set
when request_firmware fails, this is a change of behaviour of the code
before request_firmware addition, making it continue to load and it
fails later as the firmware wasn't really loaded.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/advansys.c