net/ixgbe: fix segfault in configuring VF VLAN strip
This patch fixes a segment fault in ixgbevf_vlan_offload_set( ) when a Rx queue with index < max_rx_queues is not setup. For such queue, rxq = dev->data->rx_queues[i] is null pointer. Fixes: 860a94d3c692 ("net/ixgbe: support VLAN strip per queue offloading in VF") Signed-off-by: Wei Dai <wei.dai@intel.com> Tested-by: Xueqin Lin <xueqin.lin@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
parent
03c81b55d8
commit
9a7a9072e7
@ -5184,15 +5184,13 @@ ixgbevf_vlan_strip_queue_set(struct rte_eth_dev *dev, uint16_t queue, int on)
|
|||||||
static int
|
static int
|
||||||
ixgbevf_vlan_offload_set(struct rte_eth_dev *dev, int mask)
|
ixgbevf_vlan_offload_set(struct rte_eth_dev *dev, int mask)
|
||||||
{
|
{
|
||||||
struct ixgbe_hw *hw =
|
|
||||||
IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
|
|
||||||
struct ixgbe_rx_queue *rxq;
|
struct ixgbe_rx_queue *rxq;
|
||||||
uint16_t i;
|
uint16_t i;
|
||||||
int on = 0;
|
int on = 0;
|
||||||
|
|
||||||
/* VF function only support hw strip feature, others are not support */
|
/* VF function only support hw strip feature, others are not support */
|
||||||
if (mask & ETH_VLAN_STRIP_MASK) {
|
if (mask & ETH_VLAN_STRIP_MASK) {
|
||||||
for (i = 0; i < hw->mac.max_rx_queues; i++) {
|
for (i = 0; i < dev->data->nb_rx_queues; i++) {
|
||||||
rxq = dev->data->rx_queues[i];
|
rxq = dev->data->rx_queues[i];
|
||||||
on = !!(rxq->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
|
on = !!(rxq->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
|
||||||
ixgbevf_vlan_strip_queue_set(dev, i, on);
|
ixgbevf_vlan_strip_queue_set(dev, i, on);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user