bnx2x: remove references to intr_sem
It's not needed any more since device always operates in interrupt-driven mode Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com> Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@conan.davemloft.net>
This commit is contained in:
parent
8eef2af182
commit
4b7ed8978d
|
@ -925,8 +925,6 @@ struct bnx2x {
|
||||||
struct iro *iro_arr;
|
struct iro *iro_arr;
|
||||||
#define IRO (bp->iro_arr)
|
#define IRO (bp->iro_arr)
|
||||||
|
|
||||||
atomic_t intr_sem;
|
|
||||||
|
|
||||||
bnx2x_recovery_state_t recovery_state;
|
bnx2x_recovery_state_t recovery_state;
|
||||||
int is_leader;
|
int is_leader;
|
||||||
struct msix_entry *msix_table;
|
struct msix_entry *msix_table;
|
||||||
|
|
|
@ -739,12 +739,6 @@ static irqreturn_t bnx2x_msix_fp_int(int irq, void *fp_cookie)
|
||||||
struct bnx2x_fastpath *fp = fp_cookie;
|
struct bnx2x_fastpath *fp = fp_cookie;
|
||||||
struct bnx2x *bp = fp->bp;
|
struct bnx2x *bp = fp->bp;
|
||||||
|
|
||||||
/* Return here if interrupt is disabled */
|
|
||||||
if (unlikely(atomic_read(&bp->intr_sem) != 0)) {
|
|
||||||
DP(NETIF_MSG_INTR, "called but intr_sem not 0, returning\n");
|
|
||||||
return IRQ_HANDLED;
|
|
||||||
}
|
|
||||||
|
|
||||||
DP(BNX2X_MSG_FP, "got an MSI-X interrupt on IDX:SB "
|
DP(BNX2X_MSG_FP, "got an MSI-X interrupt on IDX:SB "
|
||||||
"[fp %d fw_sd %d igusb %d]\n",
|
"[fp %d fw_sd %d igusb %d]\n",
|
||||||
fp->index, fp->fw_sb_id, fp->igu_sb_id);
|
fp->index, fp->fw_sb_id, fp->igu_sb_id);
|
||||||
|
@ -1289,18 +1283,11 @@ static void bnx2x_napi_disable(struct bnx2x *bp)
|
||||||
|
|
||||||
void bnx2x_netif_start(struct bnx2x *bp)
|
void bnx2x_netif_start(struct bnx2x *bp)
|
||||||
{
|
{
|
||||||
int intr_sem;
|
if (netif_running(bp->dev)) {
|
||||||
|
bnx2x_napi_enable(bp);
|
||||||
intr_sem = atomic_dec_and_test(&bp->intr_sem);
|
bnx2x_int_enable(bp);
|
||||||
smp_wmb(); /* Ensure that bp->intr_sem update is SMP-safe */
|
if (bp->state == BNX2X_STATE_OPEN)
|
||||||
|
netif_tx_wake_all_queues(bp->dev);
|
||||||
if (intr_sem) {
|
|
||||||
if (netif_running(bp->dev)) {
|
|
||||||
bnx2x_napi_enable(bp);
|
|
||||||
bnx2x_int_enable(bp);
|
|
||||||
if (bp->state == BNX2X_STATE_OPEN)
|
|
||||||
netif_tx_wake_all_queues(bp->dev);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1285,10 +1285,6 @@ void bnx2x_int_disable_sync(struct bnx2x *bp, int disable_hw)
|
||||||
int msix = (bp->flags & USING_MSIX_FLAG) ? 1 : 0;
|
int msix = (bp->flags & USING_MSIX_FLAG) ? 1 : 0;
|
||||||
int i, offset;
|
int i, offset;
|
||||||
|
|
||||||
/* disable interrupt handling */
|
|
||||||
atomic_inc(&bp->intr_sem);
|
|
||||||
smp_wmb(); /* Ensure that bp->intr_sem update is SMP-safe */
|
|
||||||
|
|
||||||
if (disable_hw)
|
if (disable_hw)
|
||||||
/* prevent the HW from sending interrupts */
|
/* prevent the HW from sending interrupts */
|
||||||
bnx2x_int_disable(bp);
|
bnx2x_int_disable(bp);
|
||||||
|
@ -1411,12 +1407,6 @@ irqreturn_t bnx2x_interrupt(int irq, void *dev_instance)
|
||||||
}
|
}
|
||||||
DP(NETIF_MSG_INTR, "got an interrupt status 0x%x\n", status);
|
DP(NETIF_MSG_INTR, "got an interrupt status 0x%x\n", status);
|
||||||
|
|
||||||
/* Return here if interrupt is disabled */
|
|
||||||
if (unlikely(atomic_read(&bp->intr_sem) != 0)) {
|
|
||||||
DP(NETIF_MSG_INTR, "called but intr_sem not 0, returning\n");
|
|
||||||
return IRQ_HANDLED;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef BNX2X_STOP_ON_ERROR
|
#ifdef BNX2X_STOP_ON_ERROR
|
||||||
if (unlikely(bp->panic))
|
if (unlikely(bp->panic))
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
|
@ -3771,12 +3761,6 @@ static void bnx2x_sp_task(struct work_struct *work)
|
||||||
struct bnx2x *bp = container_of(work, struct bnx2x, sp_task.work);
|
struct bnx2x *bp = container_of(work, struct bnx2x, sp_task.work);
|
||||||
u16 status;
|
u16 status;
|
||||||
|
|
||||||
/* Return here if interrupt is disabled */
|
|
||||||
if (unlikely(atomic_read(&bp->intr_sem) != 0)) {
|
|
||||||
DP(NETIF_MSG_INTR, "called but intr_sem not 0, returning\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
status = bnx2x_update_dsb_idx(bp);
|
status = bnx2x_update_dsb_idx(bp);
|
||||||
/* if (status == 0) */
|
/* if (status == 0) */
|
||||||
/* BNX2X_ERR("spurious slowpath interrupt!\n"); */
|
/* BNX2X_ERR("spurious slowpath interrupt!\n"); */
|
||||||
|
@ -3820,12 +3804,6 @@ irqreturn_t bnx2x_msix_sp_int(int irq, void *dev_instance)
|
||||||
struct net_device *dev = dev_instance;
|
struct net_device *dev = dev_instance;
|
||||||
struct bnx2x *bp = netdev_priv(dev);
|
struct bnx2x *bp = netdev_priv(dev);
|
||||||
|
|
||||||
/* Return here if interrupt is disabled */
|
|
||||||
if (unlikely(atomic_read(&bp->intr_sem) != 0)) {
|
|
||||||
DP(NETIF_MSG_INTR, "called but intr_sem not 0, returning\n");
|
|
||||||
return IRQ_HANDLED;
|
|
||||||
}
|
|
||||||
|
|
||||||
bnx2x_ack_sb(bp, bp->igu_dsb_id, USTORM_ID, 0,
|
bnx2x_ack_sb(bp, bp->igu_dsb_id, USTORM_ID, 0,
|
||||||
IGU_INT_DISABLE, 0);
|
IGU_INT_DISABLE, 0);
|
||||||
|
|
||||||
|
@ -3859,9 +3837,6 @@ static void bnx2x_timer(unsigned long data)
|
||||||
if (!netif_running(bp->dev))
|
if (!netif_running(bp->dev))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (atomic_read(&bp->intr_sem) != 0)
|
|
||||||
goto timer_restart;
|
|
||||||
|
|
||||||
if (poll) {
|
if (poll) {
|
||||||
struct bnx2x_fastpath *fp = &bp->fp[0];
|
struct bnx2x_fastpath *fp = &bp->fp[0];
|
||||||
|
|
||||||
|
@ -3896,7 +3871,6 @@ static void bnx2x_timer(unsigned long data)
|
||||||
if (bp->state == BNX2X_STATE_OPEN)
|
if (bp->state == BNX2X_STATE_OPEN)
|
||||||
bnx2x_stats_handle(bp, STATS_EVENT_UPDATE);
|
bnx2x_stats_handle(bp, STATS_EVENT_UPDATE);
|
||||||
|
|
||||||
timer_restart:
|
|
||||||
mod_timer(&bp->timer, jiffies + bp->current_interval);
|
mod_timer(&bp->timer, jiffies + bp->current_interval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4470,9 +4444,6 @@ void bnx2x_nic_init(struct bnx2x *bp, u32 load_code)
|
||||||
bnx2x_init_ind_table(bp);
|
bnx2x_init_ind_table(bp);
|
||||||
bnx2x_stats_init(bp);
|
bnx2x_stats_init(bp);
|
||||||
|
|
||||||
/* At this point, we are ready for interrupts */
|
|
||||||
atomic_set(&bp->intr_sem, 0);
|
|
||||||
|
|
||||||
/* flush all before enabling interrupts */
|
/* flush all before enabling interrupts */
|
||||||
mb();
|
mb();
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -8648,10 +8619,6 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp)
|
||||||
int timer_interval;
|
int timer_interval;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/* Disable interrupt handling until HW is initialized */
|
|
||||||
atomic_set(&bp->intr_sem, 1);
|
|
||||||
smp_wmb(); /* Ensure that bp->intr_sem update is SMP-safe */
|
|
||||||
|
|
||||||
mutex_init(&bp->port.phy_mutex);
|
mutex_init(&bp->port.phy_mutex);
|
||||||
mutex_init(&bp->fw_mb_mutex);
|
mutex_init(&bp->fw_mb_mutex);
|
||||||
spin_lock_init(&bp->stats_lock);
|
spin_lock_init(&bp->stats_lock);
|
||||||
|
@ -10169,9 +10136,6 @@ static int bnx2x_register_cnic(struct net_device *dev, struct cnic_ops *ops,
|
||||||
if (ops == NULL)
|
if (ops == NULL)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (atomic_read(&bp->intr_sem) != 0)
|
|
||||||
return -EBUSY;
|
|
||||||
|
|
||||||
bp->cnic_kwq = kzalloc(PAGE_SIZE, GFP_KERNEL);
|
bp->cnic_kwq = kzalloc(PAGE_SIZE, GFP_KERNEL);
|
||||||
if (!bp->cnic_kwq)
|
if (!bp->cnic_kwq)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
Loading…
Reference in New Issue