Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61c9471e authored by Alexander Gordeev's avatar Alexander Gordeev Committed by David S. Miller
Browse files

forcedeth: Fix invalid errno reporting in nv_request_irq()



Signed-off-by: default avatarAlexander Gordeev <agordeev@redhat.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Patrick McHardy <kaber@trash.net>
Cc: netdev@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9644cdcd
Loading
Loading
Loading
Loading
+14 −8
Original line number Original line Diff line number Diff line
@@ -3952,8 +3952,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)
			if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT && !intr_test) {
			if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT && !intr_test) {
				/* Request irq for rx handling */
				/* Request irq for rx handling */
				sprintf(np->name_rx, "%s-rx", dev->name);
				sprintf(np->name_rx, "%s-rx", dev->name);
				if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector,
				ret = request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector,
						nv_nic_irq_rx, IRQF_SHARED, np->name_rx, dev) != 0) {
						  nv_nic_irq_rx, IRQF_SHARED, np->name_rx, dev);
				if (ret) {
					netdev_info(dev,
					netdev_info(dev,
						    "request_irq failed for rx %d\n",
						    "request_irq failed for rx %d\n",
						    ret);
						    ret);
@@ -3963,8 +3964,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)
				}
				}
				/* Request irq for tx handling */
				/* Request irq for tx handling */
				sprintf(np->name_tx, "%s-tx", dev->name);
				sprintf(np->name_tx, "%s-tx", dev->name);
				if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector,
				ret = request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector,
						nv_nic_irq_tx, IRQF_SHARED, np->name_tx, dev) != 0) {
						  nv_nic_irq_tx, IRQF_SHARED, np->name_tx, dev);
				if (ret) {
					netdev_info(dev,
					netdev_info(dev,
						    "request_irq failed for tx %d\n",
						    "request_irq failed for tx %d\n",
						    ret);
						    ret);
@@ -3974,8 +3976,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)
				}
				}
				/* Request irq for link and timer handling */
				/* Request irq for link and timer handling */
				sprintf(np->name_other, "%s-other", dev->name);
				sprintf(np->name_other, "%s-other", dev->name);
				if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector,
				ret = request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector,
						nv_nic_irq_other, IRQF_SHARED, np->name_other, dev) != 0) {
						  nv_nic_irq_other, IRQF_SHARED, np->name_other, dev);
				if (ret) {
					netdev_info(dev,
					netdev_info(dev,
						    "request_irq failed for link %d\n",
						    "request_irq failed for link %d\n",
						    ret);
						    ret);
@@ -3991,7 +3994,9 @@ static int nv_request_irq(struct net_device *dev, int intr_test)
				set_msix_vector_map(dev, NV_MSI_X_VECTOR_OTHER, NVREG_IRQ_OTHER);
				set_msix_vector_map(dev, NV_MSI_X_VECTOR_OTHER, NVREG_IRQ_OTHER);
			} else {
			} else {
				/* Request irq for all interrupts */
				/* Request irq for all interrupts */
				if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector, handler, IRQF_SHARED, dev->name, dev) != 0) {
				ret = request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector,
						  handler, IRQF_SHARED, dev->name, dev);
				if (ret) {
					netdev_info(dev,
					netdev_info(dev,
						    "request_irq failed %d\n",
						    "request_irq failed %d\n",
						    ret);
						    ret);
@@ -4011,7 +4016,8 @@ static int nv_request_irq(struct net_device *dev, int intr_test)
		ret = pci_enable_msi(np->pci_dev);
		ret = pci_enable_msi(np->pci_dev);
		if (ret == 0) {
		if (ret == 0) {
			np->msi_flags |= NV_MSI_ENABLED;
			np->msi_flags |= NV_MSI_ENABLED;
			if (request_irq(np->pci_dev->irq, handler, IRQF_SHARED, dev->name, dev) != 0) {
			ret = request_irq(np->pci_dev->irq, handler, IRQF_SHARED, dev->name, dev);
			if (ret) {
				netdev_info(dev, "request_irq failed %d\n",
				netdev_info(dev, "request_irq failed %d\n",
					    ret);
					    ret);
				pci_disable_msi(np->pci_dev);
				pci_disable_msi(np->pci_dev);