Skip to content

Commit

Permalink
atl1: add value to check ability of reenabling IRQs
Browse files Browse the repository at this point in the history
Unfortunately it is not clear from code is usage of
IMR register possible or not. So, to prevent possible
side-effects of reading this register i prefer store
interrupts enable flag separately.

Signed-off-by: Tony Zelenoff <antonz@parallels.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Tony Zelenoff authored and David S. Miller committed Apr 15, 2012
1 parent 02d5d11 commit aa45ba9
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/net/ethernet/atheros/atlx/atl1.h
Original file line number Diff line number Diff line change
Expand Up @@ -783,6 +783,12 @@ struct atl1_adapter {
u16 ict; /* interrupt clear timer (2us resolution */
struct mii_if_info mii; /* MII interface info */

/*
* Use this value to check is napi handler allowed to
* enable ints or not
*/
bool int_enabled;

u32 bd_number; /* board number */
bool pci_using_64;
struct atl1_hw hw;
Expand Down
2 changes: 2 additions & 0 deletions drivers/net/ethernet/atheros/atlx/atlx.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ static inline void atlx_imr_set(struct atlx_adapter *adapter,
static void atlx_irq_enable(struct atlx_adapter *adapter)
{
atlx_imr_set(adapter, IMR_NORMAL_MASK);
adapter->int_enabled = true;
}

/*
Expand All @@ -177,6 +178,7 @@ static void atlx_irq_enable(struct atlx_adapter *adapter)
*/
static void atlx_irq_disable(struct atlx_adapter *adapter)
{
adapter->int_enabled = false;
atlx_imr_set(adapter, 0);
synchronize_irq(adapter->pdev->irq);
}
Expand Down

0 comments on commit aa45ba9

Please sign in to comment.