]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnxt_en: Change bp->state to bitmap.
authorMichael Chan <mchan@broadcom.com>
Thu, 10 Dec 2015 00:35:42 +0000 (19:35 -0500)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 7 Jul 2016 00:36:36 +0000 (17:36 -0700)
Orabug: 23221795

This allows multiple independent bits to be set for various states.
Subsequent patches to implement tx timeout reset will require this.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit caefe526d7b5af11d9b5977b2862eb144fa45537)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c

index 1f9eac66af1ca6f178a3e2ec2770ad1956b49c90..fcbd3df7b087b875c96888554285415a9d2d263c 100644 (file)
@@ -4619,7 +4619,7 @@ static int __bnxt_open_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
                        bp->nge_port_cnt = 1;
        }
 
-       bp->state = BNXT_STATE_OPEN;
+       set_bit(BNXT_STATE_OPEN, &bp->state);
        bnxt_enable_int(bp);
        /* Enable TX queues */
        bnxt_tx_enable(bp);
@@ -4695,7 +4695,7 @@ int bnxt_close_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
        /* Change device state to avoid TX queue wake up's */
        bnxt_tx_disable(bp);
 
-       bp->state = BNXT_STATE_CLOSED;
+       clear_bit(BNXT_STATE_OPEN, &bp->state);
        cancel_work_sync(&bp->sp_task);
 
        /* Flush rings before disabling interrupts */
@@ -5097,7 +5097,7 @@ static void bnxt_sp_task(struct work_struct *work)
        struct bnxt *bp = container_of(work, struct bnxt, sp_task);
        int rc;
 
-       if (bp->state != BNXT_STATE_OPEN)
+       if (!test_bit(BNXT_STATE_OPEN, &bp->state))
                return;
 
        if (test_and_clear_bit(BNXT_RX_MASK_SP_EVENT, &bp->sp_event))
@@ -5202,7 +5202,7 @@ static int bnxt_init_board(struct pci_dev *pdev, struct net_device *dev)
        bp->timer.function = bnxt_timer;
        bp->current_interval = BNXT_TIMER_INTERVAL;
 
-       bp->state = BNXT_STATE_CLOSED;
+       clear_bit(BNXT_STATE_OPEN, &bp->state);
 
        return 0;
 
index 674bc5159b91c7cd4972561fae11dd1bbed7d53c..a8b688151e0c8343da0acff8cd9f12b589cb5624 100644 (file)
@@ -925,9 +925,8 @@ struct bnxt {
 
        struct timer_list       timer;
 
-       int                     state;
-#define BNXT_STATE_CLOSED      0
-#define BNXT_STATE_OPEN                1
+       unsigned long           state;
+#define BNXT_STATE_OPEN                0
 
        struct bnxt_irq *irq_tbl;
        u8                      mac_addr[ETH_ALEN];
index 7a9af2887d8ed83f6a8672f8c1b6e18cd572c28a..ea044bbcd384886413cea2e2415aea8d25d28cf1 100644 (file)
@@ -21,7 +21,7 @@
 #ifdef CONFIG_BNXT_SRIOV
 static int bnxt_vf_ndo_prep(struct bnxt *bp, int vf_id)
 {
-       if (bp->state != BNXT_STATE_OPEN) {
+       if (!test_bit(BNXT_STATE_OPEN, &bp->state)) {
                netdev_err(bp->dev, "vf ndo called though PF is down\n");
                return -EINVAL;
        }