On Tuesday 01 March 2016 22:19:07 Andrew Lunn wrote:
batman-adv tries to prevent the user from placing a batX soft interface into another batman mesh as a hard interface. It does this by walking up the devices list of parents and ensures they are all none batX interfaces. iflink can point to an interface in a different namespace, so also retrieve the parents name space when finding the parent and use it when doing the comparison.
Signed-off-by: Andrew Lunn andrew@lunn.ch Acked-by: Antonio Quartulli a@untable.cc
net/batman-adv/hard-interface.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-)
Include missing in net/batman-adv/hard-interface.c
#include <net/rtnetlink.h>
Does anyone (not only Andrew) have a proposal regarding the compat code? Patch 1+2 should be unproblematic (maybe these can already be applied?).
This patch here is the first problematic one because it uses get_link_net which was first introduced in v4.0 with d37512a277df ("rtnl: add link netns id to interface messages"). I personally see some function substractions coming at us. But then it would be better to have this code in a smaller function to make "patching" easier (but I don't have a complete solution right now):
dev_parent_net = default_net; if (dev->rtnl_link_ops && dev->rtnl_link_ops->get_link_net) dev_parent_net = dev->rtnl_link_ops->get_link_net(dev);
The next problematic part in regards of compat stuff is the patch 4. linux/ns_common.h is missing (can be added without a problem in compat-includes). More problematic is the net::ns substruct (to be more precise the net::ns.inum) which was first introduced in 3.19 with 435d5f4bb2cc ("common object embedded into various struct ....ns") and was previously called net::proc_inum (3.8-3.18) and did not exist before v3.8 98f842e675f9 ("proc: Usable inode numbers for the namespace file descriptors.").
Kind regards, Sven