Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 122836
b: refs/heads/master
c: 1486a61
h: refs/heads/master
v: v3
  • Loading branch information
Don Skidmore authored and David S. Miller committed Dec 22, 2008
1 parent 538fde5 commit 10717f5
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 28 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c2da953a46b18b7515ad476c1c1686640a12e93a
refs/heads/master: 1486a61ebcd2711532f8163d30babc40e11e7b40
52 changes: 29 additions & 23 deletions trunk/drivers/net/ixgbe/ixgbe_dcb_nl.c
Original file line number Diff line number Diff line change
Expand Up @@ -124,39 +124,45 @@ static u16 ixgbe_dcb_select_queue(struct net_device *dev, struct sk_buff *skb)
return 0;
}

static void ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state)
static u8 ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state)
{
u8 err = 0;
struct ixgbe_adapter *adapter = netdev_priv(netdev);

DPRINTK(DRV, INFO, "Set DCB Admin Mode.\n");

if (state > 0) {
/* Turn on DCB */
if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) {
return;
} else {
if (netif_running(netdev))
netdev->stop(netdev);
ixgbe_reset_interrupt_capability(adapter);
ixgbe_napi_del_all(adapter);
kfree(adapter->tx_ring);
kfree(adapter->rx_ring);
adapter->tx_ring = NULL;
adapter->rx_ring = NULL;
netdev->select_queue = &ixgbe_dcb_select_queue;
if (adapter->flags & IXGBE_FLAG_DCB_ENABLED)
goto out;

adapter->flags &= ~IXGBE_FLAG_RSS_ENABLED;
adapter->flags |= IXGBE_FLAG_DCB_ENABLED;
ixgbe_init_interrupt_scheme(adapter);
ixgbe_napi_add_all(adapter);
if (netif_running(netdev))
netdev->open(netdev);
if (!(adapter->flags & IXGBE_FLAG_MSIX_ENABLED)) {
DPRINTK(DRV, ERR, "Enable failed, needs MSI-X\n");
err = 1;
goto out;
}

if (netif_running(netdev))
netdev->netdev_ops->ndo_stop(netdev);
ixgbe_reset_interrupt_capability(adapter);
ixgbe_napi_del_all(adapter);
kfree(adapter->tx_ring);
kfree(adapter->rx_ring);
adapter->tx_ring = NULL;
adapter->rx_ring = NULL;
netdev->select_queue = &ixgbe_dcb_select_queue;

adapter->flags &= ~IXGBE_FLAG_RSS_ENABLED;
adapter->flags |= IXGBE_FLAG_DCB_ENABLED;
ixgbe_init_interrupt_scheme(adapter);
ixgbe_napi_add_all(adapter);
if (netif_running(netdev))
netdev->netdev_ops->ndo_open(netdev);
} else {
/* Turn off DCB */
if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) {
if (netif_running(netdev))
netdev->stop(netdev);
netdev->netdev_ops->ndo_stop(netdev);
ixgbe_reset_interrupt_capability(adapter);
ixgbe_napi_del_all(adapter);
kfree(adapter->tx_ring);
Expand All @@ -170,11 +176,11 @@ static void ixgbe_dcbnl_set_state(struct net_device *netdev, u8 state)
ixgbe_init_interrupt_scheme(adapter);
ixgbe_napi_add_all(adapter);
if (netif_running(netdev))
netdev->open(netdev);
} else {
return;
netdev->netdev_ops->ndo_open(netdev);
}
}
out:
return err;
}

static void ixgbe_dcbnl_get_perm_hw_addr(struct net_device *netdev,
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/net/dcbnl.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
*/
struct dcbnl_rtnl_ops {
u8 (*getstate)(struct net_device *);
void (*setstate)(struct net_device *, u8);
u8 (*setstate)(struct net_device *, u8);
void (*getpermhwaddr)(struct net_device *, u8 *);
void (*setpgtccfgtx)(struct net_device *, int, u8, u8, u8, u8);
void (*setpgbwgcfgtx)(struct net_device *, int, u8);
Expand Down
5 changes: 2 additions & 3 deletions trunk/net/dcb/dcbnl.c
Original file line number Diff line number Diff line change
Expand Up @@ -714,9 +714,8 @@ static int dcbnl_setstate(struct net_device *netdev, struct nlattr **tb,

value = nla_get_u8(tb[DCB_ATTR_STATE]);

netdev->dcbnl_ops->setstate(netdev, value);

ret = dcbnl_reply(0, RTM_SETDCB, DCB_CMD_SSTATE, DCB_ATTR_STATE,
ret = dcbnl_reply(netdev->dcbnl_ops->setstate(netdev, value),
RTM_SETDCB, DCB_CMD_SSTATE, DCB_ATTR_STATE,
pid, seq, flags);

return ret;
Expand Down

0 comments on commit 10717f5

Please sign in to comment.