diff mbox

PCI/msi: don't warn on irq_create_affinity_masks NULL return

Message ID 20170823115459.2058-1-hch@lst.de (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Christoph Hellwig Aug. 23, 2017, 11:54 a.m. UTC
irq_create_affinity_masks can easily return NULL when there are not
enough "free" vectors available to spread, while the memory allocation
failure for the CPU masks not only is unlikely, but also relatively
harmless as the system will work just fine except for non-optimally
spread vectors.  Thus remove the warnings.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/pci/msi.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

Comments

Meelis Roos Aug. 23, 2017, 2:24 p.m. UTC | #1
> irq_create_affinity_masks can easily return NULL when there are not
> enough "free" vectors available to spread, while the memory allocation
> failure for the CPU masks not only is unlikely, but also relatively
> harmless as the system will work just fine except for non-optimally
> spread vectors.  Thus remove the warnings.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Yes, this makes the warning go away but driver still loads.


> ---
>  drivers/pci/msi.c | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 253d92409bb3..2225afc1cbbb 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -538,12 +538,9 @@ msi_setup_entry(struct pci_dev *dev, int nvec, const struct irq_affinity *affd)
>  	struct msi_desc *entry;
>  	u16 control;
>  
> -	if (affd) {
> +	if (affd)
>  		masks = irq_create_affinity_masks(nvec, affd);
> -		if (!masks)
> -			dev_err(&dev->dev, "can't allocate MSI affinity masks for %d vectors\n",
> -				nvec);
> -	}
> +
>  
>  	/* MSI Entry Initialization */
>  	entry = alloc_msi_entry(&dev->dev, nvec, masks);
> @@ -679,12 +676,8 @@ static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
>  	struct msi_desc *entry;
>  	int ret, i;
>  
> -	if (affd) {
> +	if (affd)
>  		masks = irq_create_affinity_masks(nvec, affd);
> -		if (!masks)
> -			dev_err(&dev->dev, "can't allocate MSI-X affinity masks for %d vectors\n",
> -				nvec);
> -	}
>  
>  	for (i = 0, curmsk = masks; i < nvec; i++) {
>  		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
>
David Miller Aug. 23, 2017, 6:47 p.m. UTC | #2
From: Christoph Hellwig <hch@lst.de>
Date: Wed, 23 Aug 2017 13:54:59 +0200

> irq_create_affinity_masks can easily return NULL when there are not
> enough "free" vectors available to spread, while the memory allocation
> failure for the CPU masks not only is unlikely, but also relatively
> harmless as the system will work just fine except for non-optimally
> spread vectors.  Thus remove the warnings.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Acked-by: David S. Miller <davem@davemloft.net>
Bjorn Helgaas Aug. 26, 2017, midnight UTC | #3
On Wed, Aug 23, 2017 at 01:54:59PM +0200, Christoph Hellwig wrote:
> irq_create_affinity_masks can easily return NULL when there are not
> enough "free" vectors available to spread, while the memory allocation
> failure for the CPU masks not only is unlikely, but also relatively
> harmless as the system will work just fine except for non-optimally
> spread vectors.  Thus remove the warnings.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

I applied this with David's ack to for-linus for v4.13.  It's not
strictly speaking a bug fix, but I think the warnings would cause
needless alarm for v4.13 users.

> ---
>  drivers/pci/msi.c | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index 253d92409bb3..2225afc1cbbb 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -538,12 +538,9 @@ msi_setup_entry(struct pci_dev *dev, int nvec, const struct irq_affinity *affd)
>  	struct msi_desc *entry;
>  	u16 control;
>  
> -	if (affd) {
> +	if (affd)
>  		masks = irq_create_affinity_masks(nvec, affd);
> -		if (!masks)
> -			dev_err(&dev->dev, "can't allocate MSI affinity masks for %d vectors\n",
> -				nvec);
> -	}
> +
>  
>  	/* MSI Entry Initialization */
>  	entry = alloc_msi_entry(&dev->dev, nvec, masks);
> @@ -679,12 +676,8 @@ static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
>  	struct msi_desc *entry;
>  	int ret, i;
>  
> -	if (affd) {
> +	if (affd)
>  		masks = irq_create_affinity_masks(nvec, affd);
> -		if (!masks)
> -			dev_err(&dev->dev, "can't allocate MSI-X affinity masks for %d vectors\n",
> -				nvec);
> -	}
>  
>  	for (i = 0, curmsk = masks; i < nvec; i++) {
>  		entry = alloc_msi_entry(&dev->dev, 1, curmsk);
> -- 
> 2.11.0
>
diff mbox

Patch

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 253d92409bb3..2225afc1cbbb 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -538,12 +538,9 @@  msi_setup_entry(struct pci_dev *dev, int nvec, const struct irq_affinity *affd)
 	struct msi_desc *entry;
 	u16 control;
 
-	if (affd) {
+	if (affd)
 		masks = irq_create_affinity_masks(nvec, affd);
-		if (!masks)
-			dev_err(&dev->dev, "can't allocate MSI affinity masks for %d vectors\n",
-				nvec);
-	}
+
 
 	/* MSI Entry Initialization */
 	entry = alloc_msi_entry(&dev->dev, nvec, masks);
@@ -679,12 +676,8 @@  static int msix_setup_entries(struct pci_dev *dev, void __iomem *base,
 	struct msi_desc *entry;
 	int ret, i;
 
-	if (affd) {
+	if (affd)
 		masks = irq_create_affinity_masks(nvec, affd);
-		if (!masks)
-			dev_err(&dev->dev, "can't allocate MSI-X affinity masks for %d vectors\n",
-				nvec);
-	}
 
 	for (i = 0, curmsk = masks; i < nvec; i++) {
 		entry = alloc_msi_entry(&dev->dev, 1, curmsk);