sata_sis: SCR accessors return -EINVAL when requested SCR isn't available
authorTejun Heo <htejun@gmail.com>
Thu, 24 Apr 2008 01:52:44 +0000 (10:52 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 25 Apr 2008 03:42:47 +0000 (23:42 -0400)
commit8e5443a09851d99084098ecc4066805aa2610d92
tree8a8046ac3eef4bf1f817451097d540eecbf0c488
parent2b4221bb545899b05872e7b51f55567c10b3894b
sata_sis: SCR accessors return -EINVAL when requested SCR isn't available

sis_scr_cfg_read() can't access SError and was incorrectly returning
-1 instead of -EINVAL.  This went unnoticed because SError used to be
cleared in @postreset() and it didn't care about how scr_read() failed
but commit ac371987 moved SError clearing into sata_link_resume() and
SCR access failure other than -EINVAL is considered an error condition
and exposes the incorrect return value bug as detection failure.  Fix
it.

Also, scsi_scr_cfg_write() was incorrectly returning 0 after it
ignored the request to write to SError.  Make it also return -EINVAL.

This was bisected and reported by Patrick McHardy.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Patrick McHardy <kaber@trash.net>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/sata_sis.c