diff options
author | Jon Mason <jon.mason@intel.com> | 2013-07-29 16:31:18 -0700 |
---|---|---|
committer | Jon Mason <jon.mason@intel.com> | 2014-04-07 10:59:19 -0700 |
commit | 403c63cb6d7ec2caca2f9222ff843ac89d7d700a (patch) | |
tree | 52fc7c3baff78ed964a24f9a98b8b4921b60601e /drivers/net/ntb_netdev.c | |
parent | 717e8e8bfe5fdb87e849cd46b03d7877b9d77729 (diff) |
NTB: client event cleanup
Provide a better event interface between the client and transport
Signed-off-by: Jon Mason <jon.mason@intel.com>
Diffstat (limited to 'drivers/net/ntb_netdev.c')
-rw-r--r-- | drivers/net/ntb_netdev.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/net/ntb_netdev.c b/drivers/net/ntb_netdev.c index 8e6752fd89a..14570b28d52 100644 --- a/drivers/net/ntb_netdev.c +++ b/drivers/net/ntb_netdev.c @@ -78,11 +78,19 @@ static void ntb_netdev_event_handler(void *data, int status) netdev_dbg(ndev, "Event %x, Link %x\n", status, ntb_transport_link_query(dev->qp)); - /* Currently, only link status event is supported */ - if (status) - netif_carrier_on(ndev); - else + switch (status) { + case NTB_LINK_DOWN: netif_carrier_off(ndev); + break; + case NTB_LINK_UP: + if (!ntb_transport_link_query(dev->qp)) + return; + + netif_carrier_on(ndev); + break; + default: + netdev_warn(ndev, "Unsupported event type %d\n", status); + } } static void ntb_netdev_rx_handler(struct ntb_transport_qp *qp, void *qp_data, |