diff options
Diffstat (limited to 'drivers/infiniband/hw/nes/nes_hw.c')
-rw-r--r-- | drivers/infiniband/hw/nes/nes_hw.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c index 1980a461c499..2b89b06ca7c3 100644 --- a/drivers/infiniband/hw/nes/nes_hw.c +++ b/drivers/infiniband/hw/nes/nes_hw.c | |||
@@ -2608,6 +2608,13 @@ static void nes_process_mac_intr(struct nes_device *nesdev, u32 mac_number) | |||
2608 | netif_start_queue(nesvnic->netdev); | 2608 | netif_start_queue(nesvnic->netdev); |
2609 | nesvnic->linkup = 1; | 2609 | nesvnic->linkup = 1; |
2610 | netif_carrier_on(nesvnic->netdev); | 2610 | netif_carrier_on(nesvnic->netdev); |
2611 | |||
2612 | spin_lock(&nesvnic->port_ibevent_lock); | ||
2613 | if (nesdev->iw_status == 0) { | ||
2614 | nesdev->iw_status = 1; | ||
2615 | nes_port_ibevent(nesvnic); | ||
2616 | } | ||
2617 | spin_unlock(&nesvnic->port_ibevent_lock); | ||
2611 | } | 2618 | } |
2612 | } | 2619 | } |
2613 | } else { | 2620 | } else { |
@@ -2633,6 +2640,13 @@ static void nes_process_mac_intr(struct nes_device *nesdev, u32 mac_number) | |||
2633 | netif_stop_queue(nesvnic->netdev); | 2640 | netif_stop_queue(nesvnic->netdev); |
2634 | nesvnic->linkup = 0; | 2641 | nesvnic->linkup = 0; |
2635 | netif_carrier_off(nesvnic->netdev); | 2642 | netif_carrier_off(nesvnic->netdev); |
2643 | |||
2644 | spin_lock(&nesvnic->port_ibevent_lock); | ||
2645 | if (nesdev->iw_status == 1) { | ||
2646 | nesdev->iw_status = 0; | ||
2647 | nes_port_ibevent(nesvnic); | ||
2648 | } | ||
2649 | spin_unlock(&nesvnic->port_ibevent_lock); | ||
2636 | } | 2650 | } |
2637 | } | 2651 | } |
2638 | } | 2652 | } |