Commit 644bca1d authored by Jakub Kicinski's avatar Jakub Kicinski

Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next

There's a fix which landed in net-next, pull it in along
with the couple of minor cleanups.
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 93e0401e cb9e6e58
...@@ -141,17 +141,6 @@ ...@@ -141,17 +141,6 @@
/*#define CMX_DELAY_DEBUG * gives rx-buffer delay overview */ /*#define CMX_DELAY_DEBUG * gives rx-buffer delay overview */
/*#define CMX_TX_DEBUG * massive read/write on tx-buffer with content */ /*#define CMX_TX_DEBUG * massive read/write on tx-buffer with content */
static inline int
count_list_member(struct list_head *head)
{
int cnt = 0;
struct list_head *m;
list_for_each(m, head)
cnt++;
return cnt;
}
/* /*
* debug cmx memory structure * debug cmx memory structure
*/ */
...@@ -1672,7 +1661,7 @@ dsp_cmx_send(void *arg) ...@@ -1672,7 +1661,7 @@ dsp_cmx_send(void *arg)
mustmix = 0; mustmix = 0;
members = 0; members = 0;
if (conf) { if (conf) {
members = count_list_member(&conf->mlist); members = list_count_nodes(&conf->mlist);
#ifdef CMX_CONF_DEBUG #ifdef CMX_CONF_DEBUG
if (conf->software && members > 1) if (conf->software && members > 1)
#else #else
...@@ -1695,7 +1684,7 @@ dsp_cmx_send(void *arg) ...@@ -1695,7 +1684,7 @@ dsp_cmx_send(void *arg)
/* loop all members that require conference mixing */ /* loop all members that require conference mixing */
list_for_each_entry(conf, &conf_ilist, list) { list_for_each_entry(conf, &conf_ilist, list) {
/* count members and check hardware */ /* count members and check hardware */
members = count_list_member(&conf->mlist); members = list_count_nodes(&conf->mlist);
#ifdef CMX_CONF_DEBUG #ifdef CMX_CONF_DEBUG
if (conf->software && members > 1) { if (conf->software && members > 1) {
#else #else
......
...@@ -1789,6 +1789,26 @@ static void bond_ether_setup(struct net_device *bond_dev) ...@@ -1789,6 +1789,26 @@ static void bond_ether_setup(struct net_device *bond_dev)
bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING; bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING;
} }
void bond_xdp_set_features(struct net_device *bond_dev)
{
struct bonding *bond = netdev_priv(bond_dev);
xdp_features_t val = NETDEV_XDP_ACT_MASK;
struct list_head *iter;
struct slave *slave;
ASSERT_RTNL();
if (!bond_xdp_check(bond)) {
xdp_clear_features_flag(bond_dev);
return;
}
bond_for_each_slave(bond, slave, iter)
val &= slave->dev->xdp_features;
xdp_set_features_flag(bond_dev, val);
}
/* enslave device <slave> to bond device <master> */ /* enslave device <slave> to bond device <master> */
int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev, int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
...@@ -2236,6 +2256,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev, ...@@ -2236,6 +2256,8 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
bpf_prog_inc(bond->xdp_prog); bpf_prog_inc(bond->xdp_prog);
} }
bond_xdp_set_features(bond_dev);
slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n", slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n",
bond_is_active_slave(new_slave) ? "an active" : "a backup", bond_is_active_slave(new_slave) ? "an active" : "a backup",
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down"); new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
...@@ -2483,6 +2505,7 @@ static int __bond_release_one(struct net_device *bond_dev, ...@@ -2483,6 +2505,7 @@ static int __bond_release_one(struct net_device *bond_dev,
if (!netif_is_bond_master(slave_dev)) if (!netif_is_bond_master(slave_dev))
slave_dev->priv_flags &= ~IFF_BONDING; slave_dev->priv_flags &= ~IFF_BONDING;
bond_xdp_set_features(bond_dev);
kobject_put(&slave->kobj); kobject_put(&slave->kobj);
return 0; return 0;
...@@ -3930,6 +3953,9 @@ static int bond_slave_netdev_event(unsigned long event, ...@@ -3930,6 +3953,9 @@ static int bond_slave_netdev_event(unsigned long event,
/* Propagate to master device */ /* Propagate to master device */
call_netdevice_notifiers(event, slave->bond->dev); call_netdevice_notifiers(event, slave->bond->dev);
break; break;
case NETDEV_XDP_FEAT_CHANGE:
bond_xdp_set_features(bond_dev);
break;
default: default:
break; break;
} }
...@@ -5874,6 +5900,9 @@ void bond_setup(struct net_device *bond_dev) ...@@ -5874,6 +5900,9 @@ void bond_setup(struct net_device *bond_dev)
if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP)
bond_dev->features |= BOND_XFRM_FEATURES; bond_dev->features |= BOND_XFRM_FEATURES;
#endif /* CONFIG_XFRM_OFFLOAD */ #endif /* CONFIG_XFRM_OFFLOAD */
if (bond_xdp_check(bond))
bond_dev->xdp_features = NETDEV_XDP_ACT_MASK;
} }
/* Destroy a bonding device. /* Destroy a bonding device.
......
...@@ -877,6 +877,8 @@ static int bond_option_mode_set(struct bonding *bond, ...@@ -877,6 +877,8 @@ static int bond_option_mode_set(struct bonding *bond,
netdev_update_features(bond->dev); netdev_update_features(bond->dev);
} }
bond_xdp_set_features(bond->dev);
return 0; return 0;
} }
......
...@@ -336,7 +336,7 @@ static int aq_a2_fw_get_mac_permanent(struct aq_hw_s *self, u8 *mac) ...@@ -336,7 +336,7 @@ static int aq_a2_fw_get_mac_permanent(struct aq_hw_s *self, u8 *mac)
static void aq_a2_fill_a0_stats(struct aq_hw_s *self, static void aq_a2_fill_a0_stats(struct aq_hw_s *self,
struct statistics_s *stats) struct statistics_s *stats)
{ {
struct hw_atl2_priv *priv = (struct hw_atl2_priv *)self->priv; struct hw_atl2_priv *priv = self->priv;
struct aq_stats_s *cs = &self->curr_stats; struct aq_stats_s *cs = &self->curr_stats;
struct aq_stats_s curr_stats = *cs; struct aq_stats_s curr_stats = *cs;
bool corrupted_stats = false; bool corrupted_stats = false;
...@@ -378,7 +378,7 @@ do { \ ...@@ -378,7 +378,7 @@ do { \
static void aq_a2_fill_b0_stats(struct aq_hw_s *self, static void aq_a2_fill_b0_stats(struct aq_hw_s *self,
struct statistics_s *stats) struct statistics_s *stats)
{ {
struct hw_atl2_priv *priv = (struct hw_atl2_priv *)self->priv; struct hw_atl2_priv *priv = self->priv;
struct aq_stats_s *cs = &self->curr_stats; struct aq_stats_s *cs = &self->curr_stats;
struct aq_stats_s curr_stats = *cs; struct aq_stats_s curr_stats = *cs;
bool corrupted_stats = false; bool corrupted_stats = false;
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config 9P_FS config 9P_FS
tristate "Plan 9 Resource Sharing Support (9P2000)" tristate "Plan 9 Resource Sharing Support (9P2000)"
depends on INET && NET_9P depends on NET_9P
select NETFS_SUPPORT select NETFS_SUPPORT
help help
If you say Y here, you will get experimental support for If you say Y here, you will get experimental support for
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include <linux/file.h> #include <linux/file.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/inet.h>
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/swap.h> #include <linux/swap.h>
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/inet.h>
#include <linux/namei.h> #include <linux/namei.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/slab.h> #include <linux/slab.h>
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/inet.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/uio.h> #include <linux/uio.h>
#include <linux/fscache.h> #include <linux/fscache.h>
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <linux/file.h> #include <linux/file.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/inet.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/utsname.h> #include <linux/utsname.h>
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/inet.h>
#include <linux/namei.h> #include <linux/namei.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/slab.h> #include <linux/slab.h>
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/inet.h>
#include <linux/namei.h> #include <linux/namei.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/slab.h> #include <linux/slab.h>
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include <linux/file.h> #include <linux/file.h>
#include <linux/stat.h> #include <linux/stat.h>
#include <linux/string.h> #include <linux/string.h>
#include <linux/inet.h>
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/mount.h> #include <linux/mount.h>
#include <linux/sched.h> #include <linux/sched.h>
......
...@@ -659,6 +659,7 @@ void bond_destroy_sysfs(struct bond_net *net); ...@@ -659,6 +659,7 @@ void bond_destroy_sysfs(struct bond_net *net);
void bond_prepare_sysfs_group(struct bonding *bond); void bond_prepare_sysfs_group(struct bonding *bond);
int bond_sysfs_slave_add(struct slave *slave); int bond_sysfs_slave_add(struct slave *slave);
void bond_sysfs_slave_del(struct slave *slave); void bond_sysfs_slave_del(struct slave *slave);
void bond_xdp_set_features(struct net_device *bond_dev);
int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev, int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
struct netlink_ext_ack *extack); struct netlink_ext_ack *extack);
int bond_release(struct net_device *bond_dev, struct net_device *slave_dev); int bond_release(struct net_device *bond_dev, struct net_device *slave_dev);
......
...@@ -17,6 +17,8 @@ if NET_9P ...@@ -17,6 +17,8 @@ if NET_9P
config NET_9P_FD config NET_9P_FD
default NET_9P default NET_9P
imply INET
imply UNIX
tristate "9P FD Transport" tristate "9P FD Transport"
help help
This builds support for transports over TCP, Unix sockets and This builds support for transports over TCP, Unix sockets and
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment