From: Tejun Heo Date: Wed, 30 Jan 2008 09:18:26 +0000 (+0900) Subject: libata: make EH fail gracefully if no reset method is available X-Git-Tag: v2.6.26-rc1~1150^2~9 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=4f7faa3f2b99f8fb246c8cdeef971e55ceda4e52;p=~shefty%2Frdma-dev.git libata: make EH fail gracefully if no reset method is available When no reset method is available, libata currently oopses. Although the condition can't happen unless there's a bug in a low level driver, oopsing isn't the best way to report the error condition. Complain, dump stack and fail reset instead. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik --- diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index ecbb8e90cb8..d94359a24d4 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -2137,9 +2137,14 @@ int ata_eh_reset(struct ata_link *link, int classify, if (hardreset) { reset = hardreset; ehc->i.action = ATA_EH_HARDRESET; - } else { + } else if (softreset) { reset = softreset; ehc->i.action = ATA_EH_SOFTRESET; + } else { + ata_link_printk(link, KERN_ERR, "BUG: no reset method, " + "please report to linux-ide@vger.kernel.org\n"); + dump_stack(); + return -EINVAL; } if (prereset) {