From cabe7e2bb1b77ddc4e5894f1553caae24aecdcb0 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 18 Jun 2018 15:49:41 +0200 Subject: [PATCH] 4.17-stable patches added patches: net-aquantia-fix-unsigned-numvecs-comparison-with-less-than-zero.patch --- ...mvecs-comparison-with-less-than-zero.patch | 51 +++++++++++++++++++ queue-4.17/series | 1 + 2 files changed, 52 insertions(+) create mode 100644 queue-4.17/net-aquantia-fix-unsigned-numvecs-comparison-with-less-than-zero.patch diff --git a/queue-4.17/net-aquantia-fix-unsigned-numvecs-comparison-with-less-than-zero.patch b/queue-4.17/net-aquantia-fix-unsigned-numvecs-comparison-with-less-than-zero.patch new file mode 100644 index 00000000000..a0e56f6798f --- /dev/null +++ b/queue-4.17/net-aquantia-fix-unsigned-numvecs-comparison-with-less-than-zero.patch @@ -0,0 +1,51 @@ +From 58d813afbe89658a5972747460a5fe19dec4dbcb Mon Sep 17 00:00:00 2001 +From: Colin Ian King +Date: Thu, 7 Jun 2018 17:54:37 -0400 +Subject: net: aquantia: fix unsigned numvecs comparison with less than zero + +From: Colin Ian King + +commit 58d813afbe89658a5972747460a5fe19dec4dbcb upstream. + +This was originally mistakenly submitted to net-next. Resubmitting to net. + +The comparison of numvecs < 0 is always false because numvecs is a u32 +and hence the error return from a failed call to pci_alloc_irq_vectores +is never detected. Fix this by using the signed int ret to handle the +error return and assign numvecs to err. + +Detected by CoverityScan, CID#1468650 ("Unsigned compared against 0") + +Fixes: a09bd81b5413 ("net: aquantia: Limit number of vectors to actually allocated irqs") +Signed-off-by: Colin Ian King +Signed-off-by: Igor Russkikh +Signed-off-by: David S. Miller +Cc: Holger Hoffstätte +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +--- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c ++++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +@@ -267,14 +267,13 @@ static int aq_pci_probe(struct pci_dev * + numvecs = min(numvecs, num_online_cpus()); + /*enable interrupts */ + #if !AQ_CFG_FORCE_LEGACY_INT +- numvecs = pci_alloc_irq_vectors(self->pdev, 1, numvecs, +- PCI_IRQ_MSIX | PCI_IRQ_MSI | +- PCI_IRQ_LEGACY); ++ err = pci_alloc_irq_vectors(self->pdev, 1, numvecs, ++ PCI_IRQ_MSIX | PCI_IRQ_MSI | ++ PCI_IRQ_LEGACY); + +- if (numvecs < 0) { +- err = numvecs; ++ if (err < 0) + goto err_hwinit; +- } ++ numvecs = err; + #endif + self->irqvecs = numvecs; + diff --git a/queue-4.17/series b/queue-4.17/series index e69de29bb2d..a76e1427c23 100644 --- a/queue-4.17/series +++ b/queue-4.17/series @@ -0,0 +1 @@ +net-aquantia-fix-unsigned-numvecs-comparison-with-less-than-zero.patch -- 2.47.3