From e2f368a4bfde2a3e2da54ca5021208d9261c3183 Mon Sep 17 00:00:00 2001 From: Wenzhuo Lu Date: Sun, 14 Feb 2016 16:55:02 +0800 Subject: [PATCH] ixgbe/base: fix setting flow director flag twice Do not set FDIRCTRL.DROP_NO_MATCH in ixgbe_init_fdir_perfect_82599(), this bit is already set in ixgbe_set_fdir_drop_queue_82599() which makes more sense for drivers that call that function. This resolves an issue where packets were being dropped when switching to perfect filters mode. Setting this bit makes no sense in perfect filters mode for the driver as we do not want to route all packets that don't match an FDIR rule to a single queue and instead fall back to RSS. Drivers that need this bit set can call ixgbe_set_fdir_drop_queue_82599() and the ones that don't, can preserve the old behavior. Fixes: 2241ce281646 ("ixgbe/base: add flow director drop queue") Signed-off-by: Wenzhuo Lu --- doc/guides/rel_notes/release_16_04.rst | 5 +++++ drivers/net/ixgbe/base/ixgbe_82599.c | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/guides/rel_notes/release_16_04.rst b/doc/guides/rel_notes/release_16_04.rst index 6500dc7df5..3e5aa76f2f 100644 --- a/doc/guides/rel_notes/release_16_04.rst +++ b/doc/guides/rel_notes/release_16_04.rst @@ -188,6 +188,11 @@ Drivers driver is loaded while the PF interface is down. The solution is to only set it when we get an ACK from the PF. +* **ixgbe: Fixed setting flow director flag twice.** + + Resolved an issue where packets were being dropped when switching to perfect + filters mode. + * **aesni_mb: Fixed wrong return value when creating a device.** cryptodev_aesni_mb_init() was returning the device id of the device created, diff --git a/drivers/net/ixgbe/base/ixgbe_82599.c b/drivers/net/ixgbe/base/ixgbe_82599.c index 85114e9f0c..154c1f10d1 100644 --- a/drivers/net/ixgbe/base/ixgbe_82599.c +++ b/drivers/net/ixgbe/base/ixgbe_82599.c @@ -1380,9 +1380,6 @@ s32 ixgbe_init_fdir_perfect_82599(struct ixgbe_hw *hw, u32 fdirctrl, (0x6 << IXGBE_FDIRCTRL_FLEX_SHIFT) | (0xA << IXGBE_FDIRCTRL_MAX_LENGTH_SHIFT) | (4 << IXGBE_FDIRCTRL_FULL_THRESH_SHIFT); - if ((hw->mac.type == ixgbe_mac_X550) || - (hw->mac.type == ixgbe_mac_X550EM_x)) - fdirctrl |= IXGBE_FDIRCTRL_DROP_NO_MATCH; if (cloud_mode) fdirctrl |=(IXGBE_FDIRCTRL_FILTERMODE_CLOUD << -- 2.20.1