|
@@ -1930,6 +1930,16 @@ static void ixgbevf_set_rx_mode(struct net_device *netdev)
|
|
|
(flags & (IFF_BROADCAST | IFF_MULTICAST)) ?
|
|
(flags & (IFF_BROADCAST | IFF_MULTICAST)) ?
|
|
|
IXGBEVF_XCAST_MODE_MULTI : IXGBEVF_XCAST_MODE_NONE;
|
|
IXGBEVF_XCAST_MODE_MULTI : IXGBEVF_XCAST_MODE_NONE;
|
|
|
|
|
|
|
|
|
|
+ /* request the most inclusive mode we need */
|
|
|
|
|
+ if (flags & IFF_PROMISC)
|
|
|
|
|
+ xcast_mode = IXGBEVF_XCAST_MODE_PROMISC;
|
|
|
|
|
+ else if (flags & IFF_ALLMULTI)
|
|
|
|
|
+ xcast_mode = IXGBEVF_XCAST_MODE_ALLMULTI;
|
|
|
|
|
+ else if (flags & (IFF_BROADCAST | IFF_MULTICAST))
|
|
|
|
|
+ xcast_mode = IXGBEVF_XCAST_MODE_MULTI;
|
|
|
|
|
+ else
|
|
|
|
|
+ xcast_mode = IXGBEVF_XCAST_MODE_NONE;
|
|
|
|
|
+
|
|
|
spin_lock_bh(&adapter->mbx_lock);
|
|
spin_lock_bh(&adapter->mbx_lock);
|
|
|
|
|
|
|
|
hw->mac.ops.update_xcast_mode(hw, xcast_mode);
|
|
hw->mac.ops.update_xcast_mode(hw, xcast_mode);
|
|
@@ -2071,7 +2081,8 @@ static void ixgbevf_init_last_counter_stats(struct ixgbevf_adapter *adapter)
|
|
|
static void ixgbevf_negotiate_api(struct ixgbevf_adapter *adapter)
|
|
static void ixgbevf_negotiate_api(struct ixgbevf_adapter *adapter)
|
|
|
{
|
|
{
|
|
|
struct ixgbe_hw *hw = &adapter->hw;
|
|
struct ixgbe_hw *hw = &adapter->hw;
|
|
|
- int api[] = { ixgbe_mbox_api_12,
|
|
|
|
|
|
|
+ int api[] = { ixgbe_mbox_api_13,
|
|
|
|
|
+ ixgbe_mbox_api_12,
|
|
|
ixgbe_mbox_api_11,
|
|
ixgbe_mbox_api_11,
|
|
|
ixgbe_mbox_api_10,
|
|
ixgbe_mbox_api_10,
|
|
|
ixgbe_mbox_api_unknown };
|
|
ixgbe_mbox_api_unknown };
|
|
@@ -2373,6 +2384,7 @@ static void ixgbevf_set_num_queues(struct ixgbevf_adapter *adapter)
|
|
|
switch (hw->api_version) {
|
|
switch (hw->api_version) {
|
|
|
case ixgbe_mbox_api_11:
|
|
case ixgbe_mbox_api_11:
|
|
|
case ixgbe_mbox_api_12:
|
|
case ixgbe_mbox_api_12:
|
|
|
|
|
+ case ixgbe_mbox_api_13:
|
|
|
adapter->num_rx_queues = rss;
|
|
adapter->num_rx_queues = rss;
|
|
|
adapter->num_tx_queues = rss;
|
|
adapter->num_tx_queues = rss;
|
|
|
default:
|
|
default:
|
|
@@ -4117,6 +4129,7 @@ static int ixgbevf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
|
switch (adapter->hw.api_version) {
|
|
switch (adapter->hw.api_version) {
|
|
|
case ixgbe_mbox_api_11:
|
|
case ixgbe_mbox_api_11:
|
|
|
case ixgbe_mbox_api_12:
|
|
case ixgbe_mbox_api_12:
|
|
|
|
|
+ case ixgbe_mbox_api_13:
|
|
|
netdev->max_mtu = IXGBE_MAX_JUMBO_FRAME_SIZE -
|
|
netdev->max_mtu = IXGBE_MAX_JUMBO_FRAME_SIZE -
|
|
|
(ETH_HLEN + ETH_FCS_LEN);
|
|
(ETH_HLEN + ETH_FCS_LEN);
|
|
|
break;
|
|
break;
|