diff options
author | Lino Sanfilippo <LinoSanfilippo@gmx.de> | 2012-03-30 03:36:16 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-03 17:06:38 -0400 |
commit | ede7193d4fdca98178240500d8684dbc139ca26f (patch) | |
tree | 7e8e7123e40bfaa10a6eb0d43513675ccac10ef4 /drivers/net/ethernet/marvell | |
parent | eb6a24816b247c0be6b2e97e68933072874bbe54 (diff) |
sky2: fix missing register reset on error path in sky2_test_msi()
In sky2_test_msi() the temporarily set SW IRQ in B0 register is not reset in case
that request_irq() fails.
With this patch we only set the interrupt mask if request_irq() was successful.
Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/marvell')
-rw-r--r-- | drivers/net/ethernet/marvell/sky2.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index 423a1a2a702e..20a59322c79d 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c | |||
@@ -4804,14 +4804,14 @@ static int __devinit sky2_test_msi(struct sky2_hw *hw) | |||
4804 | 4804 | ||
4805 | init_waitqueue_head(&hw->msi_wait); | 4805 | init_waitqueue_head(&hw->msi_wait); |
4806 | 4806 | ||
4807 | sky2_write32(hw, B0_IMSK, Y2_IS_IRQ_SW); | ||
4808 | |||
4809 | err = request_irq(pdev->irq, sky2_test_intr, 0, DRV_NAME, hw); | 4807 | err = request_irq(pdev->irq, sky2_test_intr, 0, DRV_NAME, hw); |
4810 | if (err) { | 4808 | if (err) { |
4811 | dev_err(&pdev->dev, "cannot assign irq %d\n", pdev->irq); | 4809 | dev_err(&pdev->dev, "cannot assign irq %d\n", pdev->irq); |
4812 | return err; | 4810 | return err; |
4813 | } | 4811 | } |
4814 | 4812 | ||
4813 | sky2_write32(hw, B0_IMSK, Y2_IS_IRQ_SW); | ||
4814 | |||
4815 | sky2_write8(hw, B0_CTST, CS_ST_SW_IRQ); | 4815 | sky2_write8(hw, B0_CTST, CS_ST_SW_IRQ); |
4816 | sky2_read8(hw, B0_CTST); | 4816 | sky2_read8(hw, B0_CTST); |
4817 | 4817 | ||