浏览代码

ahci: fix nvec check

commit 17a51f12 ("ahci: only try to use multi-MSI mode if there is more
than 1 port") lead to a case where nvec isn't initialized before it's
used.  Fix this by moving the check into the n_ports conditional.

Reported-and-reviewed-by Colin Ian King <colin.king@canonical.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Tejun Heo <tj@kernel.org>
Christoph Hellwig 8 年之前
父节点
当前提交
a478b09747
共有 1 个文件被更改,包括 7 次插入7 次删除
  1. 7 7
      drivers/ata/ahci.c

+ 7 - 7
drivers/ata/ahci.c

@@ -1436,14 +1436,14 @@ static int ahci_init_msi(struct pci_dev *pdev, unsigned int n_ports,
 				"ahci: MRSM is on, fallback to single MSI\n");
 				"ahci: MRSM is on, fallback to single MSI\n");
 			pci_free_irq_vectors(pdev);
 			pci_free_irq_vectors(pdev);
 		}
 		}
-	}
 
 
-	/*
-	 * -ENOSPC indicated we don't have enough vectors.  Don't bother trying
-	 * a single vectors for any other error:
-	 */
-	if (nvec < 0 && nvec != -ENOSPC)
-		return nvec;
+		/*
+		 * -ENOSPC indicated we don't have enough vectors.  Don't bother
+		 * trying a single vectors for any other error:
+		 */
+		if (nvec < 0 && nvec != -ENOSPC)
+			return nvec;
+	}
 
 
 	/*
 	/*
 	 * If the host is not capable of supporting per-port vectors, fall
 	 * If the host is not capable of supporting per-port vectors, fall