Skip to contentSkip to conversation

Patch "macvlan: filter out unsupported feature flags" has been added to the 4.14-stable tree

PATCH [email protected] 1 participant 1 message Mar 28, 2018

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

macvlan: filter out unsupported feature flags

to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
macvlan-filter-out-unsupported-feature-flags.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Wed Mar 28 18:38:30 CEST 2018

From: Shannon Nelson <[email protected]>
Date: Thu, 8 Mar 2018 16:17:23 -0800
Subject: macvlan: filter out unsupported feature flags

From: Shannon Nelson <[email protected]>

[ Upstream commit 13fbcc8dc573482dd3f27568257fd7087f8935f4 ]

Adding a macvlan device on top of a lowerdev that supports the xfrm offloads fails with a new regression:

  # ip link add link ens1f0 mv0 type macvlan
  RTNETLINK answers: Operation not permitted

Tracing down the failure shows that the macvlan device inherits the NETIF_F_HW_ESP and NETIF_F_HW_ESP_TX_CSUM feature flags from the lowerdev, but with no dev->xfrmdev_ops API filled in, it doesn't actually support xfrm. When the request is made to add the new macvlan device, the XFRM listener for NETDEV_REGISTER calls xfrm_api_check() which fails the new registration because dev->xfrmdev_ops is NULL.

The macvlan creation succeeds when we filter out the ESP feature flags in macvlan_fix_features(), so let's filter them out like we're already filtering out ~NETIF_F_NETNS_LOCAL. When XFRM support is added in the future, we can add the flags into MACVLAN_FEATURES.

This same problem could crop up in the future with any other new feature flags, so let's filter out any flags that aren't defined as supported in macvlan.

Fixes d77e38e612a0 ("xfrm: Add an IPsec hardware offloading API")
---
 drivers/net/macvlan.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/macvlan.c +1 -1
@@ -1037,7 +1037,7 @@ static netdev_features_t macvlan_fix_fea
 	lowerdev_features &= (features | ~NETIF_F_LRO);
 	features = netdev_increment_features(lowerdev_features, features, mask);
 	features |= ALWAYS_ON_FEATURES;
-	features &= ~NETIF_F_NETNS_LOCAL;
+	features &= (ALWAYS_ON_FEATURES | MACVLAN_FEATURES);
 
 	return features;
 }

Patches currently in stable-queue which might be from [email protected] are

queue-4.14/macvlan-filter-out-unsupported-feature-flags.patch