瀏覽代碼

[PATCH] libata: fix missing classes[] initialization in ata_bus_probe()

ata_bus_probe() didn't initialize classes[] properly with
ATA_DEV_UNKNOWN.  As ->probe_reset() is allowed to leave @classes
alone when no device is present, this results in garbage class values.
ATM, the only affected driver is ata_piix.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Tejun Heo 19 年之前
父節點
當前提交
2061a47a9b
共有 1 個文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/scsi/libata-core.c

+ 3 - 0
drivers/scsi/libata-core.c

@@ -1346,6 +1346,9 @@ static int ata_bus_probe(struct ata_port *ap)
 
 	/* reset */
 	if (ap->ops->probe_reset) {
+		for (i = 0; i < ATA_MAX_DEVICES; i++)
+			classes[i] = ATA_DEV_UNKNOWN;
+
 		rc = ap->ops->probe_reset(ap, classes);
 		if (rc) {
 			printk("ata%u: reset failed (errno=%d)\n", ap->id, rc);