lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 12 Sep 2016 07:55:47 -0700 From: kan.liang@...el.com To: davem@...emloft.net, linux-kernel@...r.kernel.org, netdev@...r.kernel.org Cc: jeffrey.t.kirsher@...el.com, mingo@...hat.com, peterz@...radead.org, kuznet@....inr.ac.ru, jmorris@...ei.org, yoshfuji@...ux-ipv6.org, kaber@...sh.net, akpm@...ux-foundation.org, keescook@...omium.org, viro@...iv.linux.org.uk, gorcunov@...nvz.org, john.stultz@...aro.org, aduyck@...antis.com, ben@...adent.org.uk, decot@...glers.com, fw@...len.de, alexander.duyck@...il.com, daniel@...earbox.net, tom@...bertland.com, rdunlap@...radead.org, xiyou.wangcong@...il.com, hannes@...essinduktion.org, stephen@...workplumber.org, alexei.starovoitov@...il.com, jesse.brandeburg@...el.com, andi@...stfloor.org, Kan Liang <kan.liang@...el.com> Subject: [RFC V3 PATCH 14/26] net/netpolicy: handle channel changes From: Kan Liang <kan.liang@...el.com> User can uses ethtool to set the channel number. This patch handles the channel changes by rebuilding the object list. Signed-off-by: Kan Liang <kan.liang@...el.com> --- include/linux/netpolicy.h | 8 ++++++++ net/core/ethtool.c | 8 +++++++- net/core/netpolicy.c | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/include/linux/netpolicy.h b/include/linux/netpolicy.h index f60331d..d6ba9f6 100644 --- a/include/linux/netpolicy.h +++ b/include/linux/netpolicy.h @@ -80,4 +80,12 @@ struct netpolicy_info { struct list_head obj_list[NETPOLICY_RXTX][NET_POLICY_MAX]; }; +#ifdef CONFIG_NETPOLICY +extern void update_netpolicy_sys_map(void); +#else +static inline void update_netpolicy_sys_map(void) +{ +} +#endif + #endif /*__LINUX_NETPOLICY_H*/ diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 9774898..e1f8bd0 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c @@ -1703,6 +1703,7 @@ static noinline_for_stack int ethtool_set_channels(struct net_device *dev, { struct ethtool_channels channels, max; u32 max_rx_in_use = 0; + int ret; if (!dev->ethtool_ops->set_channels || !dev->ethtool_ops->get_channels) return -EOPNOTSUPP; @@ -1726,7 +1727,12 @@ static noinline_for_stack int ethtool_set_channels(struct net_device *dev, (channels.combined_count + channels.rx_count) <= max_rx_in_use) return -EINVAL; - return dev->ethtool_ops->set_channels(dev, &channels); + ret = dev->ethtool_ops->set_channels(dev, &channels); +#ifdef CONFIG_NETPOLICY + if (!ret) + update_netpolicy_sys_map(); +#endif + return ret; } static int ethtool_get_pauseparam(struct net_device *dev, void __user *useraddr) diff --git a/net/core/netpolicy.c b/net/core/netpolicy.c index 3bf0a44..a739ac7 100644 --- a/net/core/netpolicy.c +++ b/net/core/netpolicy.c @@ -893,6 +893,7 @@ unlock: } } } +EXPORT_SYMBOL(update_netpolicy_sys_map); static int netpolicy_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) -- 2.5.5
Powered by blists - more mailing lists