From: Linus Torvalds Date: Mon, 15 Oct 2007 19:46:16 +0000 (-0700) Subject: scsi/gdth: fix crash in gdth_timeout if no gdth controllers found X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=c596cc46ba1c5769866efe586daff3422bc31afe;p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git scsi/gdth: fix crash in gdth_timeout if no gdth controllers found If the gdth module is loaded (or compiled in), the gdth_timeout function gets started even if no actual gdth controllers are found b the probing. That ends up not only being unnecessary, but also causes a crash due to the function blindly just trying to pick the first entry off the "gdth_instances" list, and accessing it - which obviously doesn't work if the list is empty! Noticed by Ingo Molnar. Tested-by: Ingo Molnar Signed-off-by: Linus Torvalds --- diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index e8010a702e73..3ac080ee6e2f 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c @@ -5213,6 +5213,10 @@ static int __init gdth_init(void) #endif /* CONFIG_PCI */ TRACE2(("gdth_detect() %d controller detected\n", gdth_ctr_count)); + + if (list_empty(&gdth_instances)) + return -ENODEV; + #ifdef GDTH_STATISTICS TRACE2(("gdth_detect(): Initializing timer !\n")); init_timer(&gdth_timer);