tg3: Fix INTx fallback when MSI fails
Subsystems (2)
PATCH 1/1 tg3: Fix INTx fallback when MSI fails
tg3: Fix INTx fallback when MSI fails
MSI setup changes the value of some key attributes of struct tg3 *tp. These attributes must be taken into account and restored before we try to do a new request_irq for INTx fallback.
In powerpc, the original code was leading to an EINVAL return within request_irq, because the driver was trying to use the disabled MSI virtual irq number instead of tp->pdev->irq.
---
Tested on powerpc, but should be safe for other architectures as well.
drivers/net/tg3.c +3 -0
@@ -8633,6 +8633,9 @@ static int tg3_test_msi(struct tg3 *tp)pci_disable_msi (tp->pdev); tp->tg3_flags2 &= ~TG3_FLG2_USING_MSI ; + tp->irq_cnt =1 ; + tp->napi[0 ].irq_vec = tp->pdev->irq; + tp->dev->real_num_tx_queues =1 ; err =tg3_request_irq (tp,0 );if (err)
David Miller
maintainerFrom: Andre Detsch <[email protected]>
Date: Fri, 16 Apr 2010 10:15:11 -0300
Quoted 11 lines
tg3: Fix INTx fallback when MSI fails
MSI setup changes the value of some key attributes of struct tg3 *tp. These attributes must be taken into account and restored before we try to do a new
request_irqfor INTx fallback.In powerpc, the original code was leading to an EINVAL return within
request_irq, because the driver was trying to use the disabled MSI virtual irq number instead oftp->pdev->irq.Signed-off-by Andre Detsch <[email protected]>
Broadcom folks, please review, thanks.
PATCH v2 1/1 tg3: Fix INTx fallback when MSI fails
tg3: Fix INTx fallback when MSI fails
MSI setup changes the value of irq_vec in struct tg3 *tp. This attribute must be taken into account and restored before we try to do a new request_irq for INTx fallback.
In powerpc, the original code was leading to an EINVAL return within request_irq, because the driver was trying to use the disabled MSI virtual irq number instead of tp->pdev->irq.
---
Tested on powerpc, but should be safe for other architectures as well.
v2: removed unnecessary changes
drivers/net/tg3.c +1 -0
@@ -8633,6 +8633,7 @@ static int tg3_test_msi(struct tg3 *tp)pci_disable_msi (tp->pdev); tp->tg3_flags2 &= ~TG3_FLG2_USING_MSI ; + tp->napi[0 ].irq_vec = tp->pdev->irq; err =tg3_request_irq (tp,0 );if (err)
David Miller
maintainerFrom: Andre Detsch <[email protected]>
Date: Mon, 26 Apr 2010 14:27:07 -0300
Quoted 11 lines
tg3: Fix INTx fallback when MSI fails
MSI setup changes the value of
irq_vecin struct tg3 *tp. This attribute must be taken into account and restored before we try to do a newrequest_irqfor INTx fallback.In powerpc, the original code was leading to an EINVAL return within
request_irq, because the driver was trying to use the disabled MSI virtual irq number instead oftp->pdev->irq.Signed-off-by Andre Detsch <[email protected]>
Broadcom folks, I've already asked you to review Andre's original patch.
If you can't be bothered to look at and ACK/NACK a simple fix like this for 10 days, then I'm just going to apply Andre's patch as-is since it looks right to me.
If the idea was to bundle this up into a set of 15 patches you guys already have ready to bomb at me, I absolutely do not want you guys to operate that way. It doesn't work. You should be able to ACK a simple patch like this as soon as possible so it can be integrated upstream in the most expediant manner possible.
Thanks.
Michael Chan
Acked-byQuoted 21 lines · David Miller
From: Andre Detsch <[email protected]>
Date: Mon, 26 Apr 2010 14:27:07 -0300Quoted 11 lines
tg3: Fix INTx fallback when MSI fails
MSI setup changes the value of
irq_vecin struct tg3 *tp. This attribute must be taken into account and restored before we try to do a newrequest_irqfor INTx fallback.In powerpc, the original code was leading to an EINVAL return within
request_irq, because the driver was trying to use the disabled MSI virtual irq number instead oftp->pdev->irq.Signed-off-by Andre Detsch <[email protected]>Broadcom folks, I've already asked you to review Andre's original patch.
If you can't be bothered to look at and ACK/NACK a simple fix like this for 10 days, then I'm just going to apply Andre's patch as-is since it looks right to me.
Quoted 8 lines
If the idea was to bundle this up into a set of 15 patches you guys already have ready to bomb at me, I absolutely do not want you guys to operate that way. It doesn't work. You should be able to ACK a simple patch like this as soon as possible so it can be integrated upstream in the most expediant manner possible.
Thanks.
Sorry, Matt just got back from vacation. I discussed with Andre earlier today to come up with the new v2 patch. So this patch has my:
David Miller
maintainerFrom: "Michael Chan" <[email protected]>
Date: Mon, 26 Apr 2010 11:01:21 -0700
Quoted 5 lines
Sorry, Matt just got back from vacation. I discussed with Andre earlier today to come up with the new v2 patch. So this patch has my:
Acked-by Michael Chan <[email protected]>
Thanks a lot, applied.