Lines Matching +full:hw +full:- +full:device +full:- +full:address
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright(c) 1999 - 2024 Intel Corporation. */
7 /* On Hyper-V, to reset, we need to read from this offset
9 * Hyper-V to support PF/VF communication.
13 static inline s32 ixgbevf_write_msg_read_ack(struct ixgbe_hw *hw, u32 *msg, in ixgbevf_write_msg_read_ack() argument
16 s32 retval = ixgbevf_write_mbx(hw, msg, size); in ixgbevf_write_msg_read_ack()
21 return ixgbevf_poll_mbx(hw, retmsg, size); in ixgbevf_write_msg_read_ack()
25 * ixgbevf_start_hw_vf - Prepare hardware for Tx/Rx
26 * @hw: pointer to hardware structure
29 * all on chip counters, initializes receive address registers, multicast
33 static s32 ixgbevf_start_hw_vf(struct ixgbe_hw *hw) in ixgbevf_start_hw_vf() argument
36 hw->adapter_stopped = false; in ixgbevf_start_hw_vf()
42 * ixgbevf_init_hw_vf - virtual function hardware initialization
43 * @hw: pointer to hardware structure
48 static s32 ixgbevf_init_hw_vf(struct ixgbe_hw *hw) in ixgbevf_init_hw_vf() argument
50 s32 status = hw->mac.ops.start_hw(hw); in ixgbevf_init_hw_vf()
52 hw->mac.ops.get_mac_addr(hw, hw->mac.addr); in ixgbevf_init_hw_vf()
58 * ixgbevf_reset_hw_vf - Performs hardware reset
59 * @hw: pointer to hardware structure
64 static s32 ixgbevf_reset_hw_vf(struct ixgbe_hw *hw) in ixgbevf_reset_hw_vf() argument
66 struct ixgbe_mbx_info *mbx = &hw->mbx; in ixgbevf_reset_hw_vf()
73 hw->mac.ops.stop_adapter(hw); in ixgbevf_reset_hw_vf()
76 hw->api_version = ixgbe_mbox_api_10; in ixgbevf_reset_hw_vf()
77 hw->mbx.ops.init_params(hw); in ixgbevf_reset_hw_vf()
78 memcpy(&hw->mbx.ops, &ixgbevf_mbx_ops_legacy, in ixgbevf_reset_hw_vf()
81 IXGBE_WRITE_REG(hw, IXGBE_VFCTRL, IXGBE_CTRL_RST); in ixgbevf_reset_hw_vf()
82 IXGBE_WRITE_FLUSH(hw); in ixgbevf_reset_hw_vf()
85 while (!mbx->ops.check_for_rst(hw) && timeout) { in ixgbevf_reset_hw_vf()
86 timeout--; in ixgbevf_reset_hw_vf()
94 mbx->timeout = IXGBE_VF_MBX_INIT_TIMEOUT; in ixgbevf_reset_hw_vf()
97 ixgbevf_write_mbx(hw, msgbuf, 1); in ixgbevf_reset_hw_vf()
103 * on the mac address in word 3 in ixgbevf_reset_hw_vf()
105 ret_val = ixgbevf_poll_mbx(hw, msgbuf, IXGBE_VF_PERMADDR_MSG_LEN); in ixgbevf_reset_hw_vf()
110 * to indicate that no MAC address has yet been assigned for in ixgbevf_reset_hw_vf()
118 ether_addr_copy(hw->mac.perm_addr, addr); in ixgbevf_reset_hw_vf()
120 hw->mac.mc_filter_type = msgbuf[IXGBE_VF_MC_TYPE_WORD]; in ixgbevf_reset_hw_vf()
126 * ixgbevf_hv_reset_hw_vf - reset via Hyper-V
127 * @hw: pointer to private hardware struct
129 * Hyper-V variant; the VF/PF communication is through the PCI
132 static s32 ixgbevf_hv_reset_hw_vf(struct ixgbe_hw *hw) in ixgbevf_hv_reset_hw_vf() argument
135 struct ixgbevf_adapter *adapter = hw->back; in ixgbevf_hv_reset_hw_vf()
139 pci_read_config_byte(adapter->pdev, in ixgbevf_hv_reset_hw_vf()
141 &hw->mac.perm_addr[i]); in ixgbevf_hv_reset_hw_vf()
144 pr_err("PCI_MMCONFIG needs to be enabled for Hyper-V\n"); in ixgbevf_hv_reset_hw_vf()
145 return -EOPNOTSUPP; in ixgbevf_hv_reset_hw_vf()
150 * ixgbevf_stop_hw_vf - Generic stop Tx/Rx units
151 * @hw: pointer to hardware structure
158 static s32 ixgbevf_stop_hw_vf(struct ixgbe_hw *hw) in ixgbevf_stop_hw_vf() argument
167 hw->adapter_stopped = true; in ixgbevf_stop_hw_vf()
170 number_of_queues = hw->mac.max_rx_queues; in ixgbevf_stop_hw_vf()
172 reg_val = IXGBE_READ_REG(hw, IXGBE_VFRXDCTL(i)); in ixgbevf_stop_hw_vf()
175 IXGBE_WRITE_REG(hw, IXGBE_VFRXDCTL(i), reg_val); in ixgbevf_stop_hw_vf()
179 IXGBE_WRITE_FLUSH(hw); in ixgbevf_stop_hw_vf()
182 IXGBE_WRITE_REG(hw, IXGBE_VTEIMC, IXGBE_VF_IRQ_CLEAR_MASK); in ixgbevf_stop_hw_vf()
185 IXGBE_READ_REG(hw, IXGBE_VTEICR); in ixgbevf_stop_hw_vf()
188 number_of_queues = hw->mac.max_tx_queues; in ixgbevf_stop_hw_vf()
190 reg_val = IXGBE_READ_REG(hw, IXGBE_VFTXDCTL(i)); in ixgbevf_stop_hw_vf()
193 IXGBE_WRITE_REG(hw, IXGBE_VFTXDCTL(i), reg_val); in ixgbevf_stop_hw_vf()
201 * ixgbevf_mta_vector - Determines bit-vector in multicast table to set
202 * @hw: pointer to hardware structure
203 * @mc_addr: the multicast address
205 * Extracts the 12 bits, from a multicast address, to determine which
206 * bit-vector to set in the multicast table. The hardware uses 12 bits, from
207 * incoming Rx multicast addresses, to determine the bit-vector to check in
208 * the MTA. Which of the 4 combination, of 12-bits, the hardware uses is set
212 static s32 ixgbevf_mta_vector(struct ixgbe_hw *hw, u8 *mc_addr) in ixgbevf_mta_vector() argument
216 switch (hw->mac.mc_filter_type) { in ixgbevf_mta_vector()
217 case 0: /* use bits [47:36] of the address */ in ixgbevf_mta_vector()
220 case 1: /* use bits [46:35] of the address */ in ixgbevf_mta_vector()
223 case 2: /* use bits [45:34] of the address */ in ixgbevf_mta_vector()
226 case 3: /* use bits [43:32] of the address */ in ixgbevf_mta_vector()
233 /* vector can only be 12-bits or boundary will be exceeded */ in ixgbevf_mta_vector()
239 * ixgbevf_get_mac_addr_vf - Read device MAC address
240 * @hw: pointer to the HW structure
241 * @mac_addr: pointer to storage for retrieved MAC address
243 static s32 ixgbevf_get_mac_addr_vf(struct ixgbe_hw *hw, u8 *mac_addr) in ixgbevf_get_mac_addr_vf() argument
245 ether_addr_copy(mac_addr, hw->mac.perm_addr); in ixgbevf_get_mac_addr_vf()
250 static s32 ixgbevf_set_uc_addr_vf(struct ixgbe_hw *hw, u32 index, u8 *addr) in ixgbevf_set_uc_addr_vf() argument
269 ret_val = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_set_uc_addr_vf()
275 return -ENOMEM; in ixgbevf_set_uc_addr_vf()
281 static s32 ixgbevf_hv_set_uc_addr_vf(struct ixgbe_hw *hw, u32 index, u8 *addr) in ixgbevf_hv_set_uc_addr_vf() argument
283 return -EOPNOTSUPP; in ixgbevf_hv_set_uc_addr_vf()
287 * ixgbevf_get_reta_locked - get the RSS redirection table (RETA) contents.
288 * @hw: pointer to hardware structure
295 * if API doesn't support this operation - (-EOPNOTSUPP).
297 int ixgbevf_get_reta_locked(struct ixgbe_hw *hw, u32 *reta, int num_rx_queues) in ixgbevf_get_reta_locked() argument
313 * is not supported for this device type. in ixgbevf_get_reta_locked()
315 switch (hw->api_version) { in ixgbevf_get_reta_locked()
322 if (hw->mac.type < ixgbe_mac_X550_vf) in ixgbevf_get_reta_locked()
326 return -EOPNOTSUPP; in ixgbevf_get_reta_locked()
331 err = ixgbevf_write_mbx(hw, msgbuf, 1); in ixgbevf_get_reta_locked()
336 err = ixgbevf_poll_mbx(hw, msgbuf, dwords + 1); in ixgbevf_get_reta_locked()
343 /* If the operation has been refused by a PF return -EPERM */ in ixgbevf_get_reta_locked()
345 return -EPERM; in ixgbevf_get_reta_locked()
366 * ixgbevf_get_rss_key_locked - get the RSS Random Key
367 * @hw: pointer to the HW structure
373 * if API doesn't support this operation - (-EOPNOTSUPP).
375 int ixgbevf_get_rss_key_locked(struct ixgbe_hw *hw, u8 *rss_key) in ixgbevf_get_rss_key_locked() argument
384 * or if the operation is not supported for this device type. in ixgbevf_get_rss_key_locked()
386 switch (hw->api_version) { in ixgbevf_get_rss_key_locked()
393 if (hw->mac.type < ixgbe_mac_X550_vf) in ixgbevf_get_rss_key_locked()
397 return -EOPNOTSUPP; in ixgbevf_get_rss_key_locked()
401 err = ixgbevf_write_mbx(hw, msgbuf, 1); in ixgbevf_get_rss_key_locked()
406 err = ixgbevf_poll_mbx(hw, msgbuf, 11); in ixgbevf_get_rss_key_locked()
413 /* If the operation has been refused by a PF return -EPERM */ in ixgbevf_get_rss_key_locked()
415 return -EPERM; in ixgbevf_get_rss_key_locked()
430 * ixgbevf_set_rar_vf - set device MAC address
431 * @hw: pointer to hardware structure
432 * @index: Receive address register to write
433 * @addr: Address to put into receive address register
436 static s32 ixgbevf_set_rar_vf(struct ixgbe_hw *hw, u32 index, u8 *addr, in ixgbevf_set_rar_vf() argument
447 ret_val = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_set_rar_vf()
451 /* if nacked the address was rejected, use "perm_addr" */ in ixgbevf_set_rar_vf()
454 ixgbevf_get_mac_addr_vf(hw, hw->mac.addr); in ixgbevf_set_rar_vf()
462 * ixgbevf_hv_set_rar_vf - set device MAC address Hyper-V variant
463 * @hw: pointer to hardware structure
464 * @index: Receive address register to write
465 * @addr: Address to put into receive address register
468 * We don't really allow setting the device MAC address. However,
469 * if the address being set is the permanent MAC address we will
472 static s32 ixgbevf_hv_set_rar_vf(struct ixgbe_hw *hw, u32 index, u8 *addr, in ixgbevf_hv_set_rar_vf() argument
475 if (ether_addr_equal(addr, hw->mac.perm_addr)) in ixgbevf_hv_set_rar_vf()
478 return -EOPNOTSUPP; in ixgbevf_hv_set_rar_vf()
482 * ixgbevf_update_mc_addr_list_vf - Update Multicast addresses
483 * @hw: pointer to the HW structure
484 * @netdev: pointer to net device structure
488 static s32 ixgbevf_update_mc_addr_list_vf(struct ixgbe_hw *hw, in ixgbevf_update_mc_addr_list_vf() argument
497 * 16 bit words available in our HW msg buffer (minus 1 for the in ixgbevf_update_mc_addr_list_vf()
501 * It would be unusual for a server to request that many multi-cast in ixgbevf_update_mc_addr_list_vf()
515 if (is_link_local_ether_addr(ha->addr)) in ixgbevf_update_mc_addr_list_vf()
518 vector_list[i++] = ixgbevf_mta_vector(hw, ha->addr); in ixgbevf_update_mc_addr_list_vf()
521 return ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_update_mc_addr_list_vf()
526 * ixgbevf_hv_update_mc_addr_list_vf - stub
527 * @hw: unused
530 * Hyper-V variant - just a stub.
532 static s32 ixgbevf_hv_update_mc_addr_list_vf(struct ixgbe_hw *hw, in ixgbevf_hv_update_mc_addr_list_vf() argument
535 return -EOPNOTSUPP; in ixgbevf_hv_update_mc_addr_list_vf()
539 * ixgbevf_update_xcast_mode - Update Multicast mode
540 * @hw: pointer to the HW structure
545 static s32 ixgbevf_update_xcast_mode(struct ixgbe_hw *hw, int xcast_mode) in ixgbevf_update_xcast_mode() argument
550 switch (hw->api_version) { in ixgbevf_update_xcast_mode()
554 return -EOPNOTSUPP; in ixgbevf_update_xcast_mode()
563 return -EOPNOTSUPP; in ixgbevf_update_xcast_mode()
569 err = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_update_xcast_mode()
576 return -EPERM; in ixgbevf_update_xcast_mode()
582 * ixgbevf_hv_update_xcast_mode - stub
583 * @hw: unused
586 * Hyper-V variant - just a stub.
588 static s32 ixgbevf_hv_update_xcast_mode(struct ixgbe_hw *hw, int xcast_mode) in ixgbevf_hv_update_xcast_mode() argument
590 return -EOPNOTSUPP; in ixgbevf_hv_update_xcast_mode()
594 * ixgbevf_get_link_state_vf - Get VF link state from PF
595 * @hw: pointer to the HW structure
600 static s32 ixgbevf_get_link_state_vf(struct ixgbe_hw *hw, bool *link_state) in ixgbevf_get_link_state_vf() argument
609 err = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, 2); in ixgbevf_get_link_state_vf()
622 * ixgbevf_hv_get_link_state_vf - * Hyper-V variant - just a stub.
623 * @hw: unused
626 * Hyper-V variant; there is no mailbox communication.
628 static s32 ixgbevf_hv_get_link_state_vf(struct ixgbe_hw *hw, bool *link_state) in ixgbevf_hv_get_link_state_vf() argument
630 return -EOPNOTSUPP; in ixgbevf_hv_get_link_state_vf()
634 * ixgbevf_get_pf_link_state - Get PF's link status
635 * @hw: pointer to the HW structure
642 * -EOPNOTSUPP if the op is not supported or 0 on success.
644 static int ixgbevf_get_pf_link_state(struct ixgbe_hw *hw, ixgbe_link_speed *speed, in ixgbevf_get_pf_link_state() argument
650 switch (hw->api_version) { in ixgbevf_get_pf_link_state()
655 return -EOPNOTSUPP; in ixgbevf_get_pf_link_state()
660 err = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_get_pf_link_state()
677 * ixgbevf_negotiate_features_vf - negotiate supported features with PF driver
678 * @hw: pointer to the HW structure
682 * -EOPNOTSUPP if the op is not supported or 0 on success.
684 static int ixgbevf_negotiate_features_vf(struct ixgbe_hw *hw, u32 *pf_features) in ixgbevf_negotiate_features_vf() argument
689 switch (hw->api_version) { in ixgbevf_negotiate_features_vf()
693 return -EOPNOTSUPP; in ixgbevf_negotiate_features_vf()
699 err = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_negotiate_features_vf()
713 * ixgbevf_set_vfta_vf - Set/Unset VLAN filter table address
714 * @hw: pointer to the HW structure
719 static s32 ixgbevf_set_vfta_vf(struct ixgbe_hw *hw, u32 vlan, u32 vind, in ixgbevf_set_vfta_vf() argument
730 err = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_set_vfta_vf()
747 * ixgbe_read_vflinks - Read VFLINKS register
748 * @hw: pointer to the HW structure
754 static void ixgbe_read_vflinks(struct ixgbe_hw *hw, ixgbe_link_speed *speed, in ixgbe_read_vflinks() argument
757 u32 vflinks = IXGBE_READ_REG(hw, IXGBE_VFLINKS); in ixgbe_read_vflinks()
768 if (hw->mac.type == ixgbe_mac_82599_vf) { in ixgbe_read_vflinks()
771 vflinks = IXGBE_READ_REG(hw, IXGBE_VFLINKS); in ixgbe_read_vflinks()
799 * ixgbevf_hv_set_vfta_vf - * Hyper-V variant - just a stub.
800 * @hw: unused
805 static s32 ixgbevf_hv_set_vfta_vf(struct ixgbe_hw *hw, u32 vlan, u32 vind, in ixgbevf_hv_set_vfta_vf() argument
808 return -EOPNOTSUPP; in ixgbevf_hv_set_vfta_vf()
812 * ixgbevf_setup_mac_link_vf - Setup MAC link settings
813 * @hw: pointer to hardware structure
821 static s32 ixgbevf_setup_mac_link_vf(struct ixgbe_hw *hw, in ixgbevf_setup_mac_link_vf() argument
829 * ixgbevf_check_mac_link_vf - Get link/speed status
830 * @hw: pointer to hardware structure
837 static s32 ixgbevf_check_mac_link_vf(struct ixgbe_hw *hw, in ixgbevf_check_mac_link_vf() argument
842 struct ixgbevf_adapter *adapter = hw->back; in ixgbevf_check_mac_link_vf()
843 struct ixgbe_mbx_info *mbx = &hw->mbx; in ixgbevf_check_mac_link_vf()
844 struct ixgbe_mac_info *mac = &hw->mac; in ixgbevf_check_mac_link_vf()
849 if (!mbx->ops.check_for_rst(hw) || !mbx->timeout) in ixgbevf_check_mac_link_vf()
850 mac->get_link_status = true; in ixgbevf_check_mac_link_vf()
852 if (!mac->get_link_status) in ixgbevf_check_mac_link_vf()
855 if (hw->mac.type == ixgbe_mac_e610_vf) { in ixgbevf_check_mac_link_vf()
856 ret_val = ixgbevf_get_pf_link_state(hw, speed, link_up); in ixgbevf_check_mac_link_vf()
860 ixgbe_read_vflinks(hw, speed, link_up); in ixgbevf_check_mac_link_vf()
868 if (mbx->ops.read(hw, &in_msg, 1)) { in ixgbevf_check_mac_link_vf()
869 if (adapter->pf_features & IXGBEVF_PF_SUP_ESX_MBX) in ixgbevf_check_mac_link_vf()
870 mac->get_link_status = false; in ixgbevf_check_mac_link_vf()
877 ret_val = -1; in ixgbevf_check_mac_link_vf()
882 if (!mbx->timeout) { in ixgbevf_check_mac_link_vf()
883 ret_val = -1; in ixgbevf_check_mac_link_vf()
890 mac->get_link_status = false; in ixgbevf_check_mac_link_vf()
893 *link_up = !mac->get_link_status; in ixgbevf_check_mac_link_vf()
898 * ixgbevf_hv_check_mac_link_vf - check link
899 * @hw: pointer to private hardware struct
904 * Hyper-V variant; there is no mailbox communication.
906 static s32 ixgbevf_hv_check_mac_link_vf(struct ixgbe_hw *hw, in ixgbevf_hv_check_mac_link_vf() argument
911 struct ixgbe_mbx_info *mbx = &hw->mbx; in ixgbevf_hv_check_mac_link_vf()
912 struct ixgbe_mac_info *mac = &hw->mac; in ixgbevf_hv_check_mac_link_vf()
916 if (!mbx->ops.check_for_rst(hw) || !mbx->timeout) in ixgbevf_hv_check_mac_link_vf()
917 mac->get_link_status = true; in ixgbevf_hv_check_mac_link_vf()
919 if (!mac->get_link_status) in ixgbevf_hv_check_mac_link_vf()
923 links_reg = IXGBE_READ_REG(hw, IXGBE_VFLINKS); in ixgbevf_hv_check_mac_link_vf()
930 if (mac->type == ixgbe_mac_82599_vf) { in ixgbevf_hv_check_mac_link_vf()
935 links_reg = IXGBE_READ_REG(hw, IXGBE_VFLINKS); in ixgbevf_hv_check_mac_link_vf()
957 mac->get_link_status = false; in ixgbevf_hv_check_mac_link_vf()
960 *link_up = !mac->get_link_status; in ixgbevf_hv_check_mac_link_vf()
965 * ixgbevf_set_rlpml_vf - Set the maximum receive packet length
966 * @hw: pointer to the HW structure
969 static s32 ixgbevf_set_rlpml_vf(struct ixgbe_hw *hw, u16 max_size) in ixgbevf_set_rlpml_vf() argument
977 ret_val = ixgbevf_write_msg_read_ack(hw, msgbuf, msgbuf, in ixgbevf_set_rlpml_vf()
989 * ixgbevf_hv_set_rlpml_vf - Set the maximum receive packet length
990 * @hw: pointer to the HW structure
992 * Hyper-V variant.
994 static s32 ixgbevf_hv_set_rlpml_vf(struct ixgbe_hw *hw, u16 max_size) in ixgbevf_hv_set_rlpml_vf() argument
998 /* If we are on Hyper-V, we implement this functionality in ixgbevf_hv_set_rlpml_vf()
1001 reg = IXGBE_READ_REG(hw, IXGBE_VFRXDCTL(0)); in ixgbevf_hv_set_rlpml_vf()
1004 IXGBE_WRITE_REG(hw, IXGBE_VFRXDCTL(0), reg); in ixgbevf_hv_set_rlpml_vf()
1010 * ixgbevf_negotiate_api_version_vf - Negotiate supported API version
1011 * @hw: pointer to the HW structure
1014 static int ixgbevf_negotiate_api_version_vf(struct ixgbe_hw *hw, int api) in ixgbevf_negotiate_api_version_vf() argument
1024 err = ixgbevf_write_msg_read_ack(hw, msg, msg, ARRAY_SIZE(msg)); in ixgbevf_negotiate_api_version_vf()
1031 hw->api_version = api; in ixgbevf_negotiate_api_version_vf()
1042 * ixgbevf_hv_negotiate_api_version_vf - Negotiate supported API version
1043 * @hw: pointer to the HW structure
1045 * Hyper-V version - only ixgbe_mbox_api_10 supported.
1047 static int ixgbevf_hv_negotiate_api_version_vf(struct ixgbe_hw *hw, int api) in ixgbevf_hv_negotiate_api_version_vf() argument
1049 /* Hyper-V only supports api version ixgbe_mbox_api_10 */ in ixgbevf_hv_negotiate_api_version_vf()
1056 int ixgbevf_get_queues(struct ixgbe_hw *hw, unsigned int *num_tcs, in ixgbevf_get_queues() argument
1063 switch (hw->api_version) { in ixgbevf_get_queues()
1080 err = ixgbevf_write_msg_read_ack(hw, msg, msg, ARRAY_SIZE(msg)); in ixgbevf_get_queues()
1092 hw->mac.max_tx_queues = msg[IXGBE_VF_TX_QUEUES]; in ixgbevf_get_queues()
1093 if (hw->mac.max_tx_queues == 0 || in ixgbevf_get_queues()
1094 hw->mac.max_tx_queues > IXGBE_VF_MAX_TX_QUEUES) in ixgbevf_get_queues()
1095 hw->mac.max_tx_queues = IXGBE_VF_MAX_TX_QUEUES; in ixgbevf_get_queues()
1097 hw->mac.max_rx_queues = msg[IXGBE_VF_RX_QUEUES]; in ixgbevf_get_queues()
1098 if (hw->mac.max_rx_queues == 0 || in ixgbevf_get_queues()
1099 hw->mac.max_rx_queues > IXGBE_VF_MAX_RX_QUEUES) in ixgbevf_get_queues()
1100 hw->mac.max_rx_queues = IXGBE_VF_MAX_RX_QUEUES; in ixgbevf_get_queues()
1104 if (*num_tcs > hw->mac.max_rx_queues) in ixgbevf_get_queues()
1108 /* default to queue 0 on out-of-bounds queue number */ in ixgbevf_get_queues()
1109 if (*default_tc >= hw->mac.max_tx_queues) in ixgbevf_get_queues()