Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
We got slightly different patches removing a double word
in a comment in net/ipv4/raw.c - picked the version from net.
Simple conflict in drivers/net/ethernet/ibm/ibmvnic.c. Use cached
values instead of VNIC login response buffer (following what
commit 507ebe6444 ("ibmvnic: Fix use-after-free of VNIC login
response buffer") did).
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -4690,10 +4690,10 @@ static u32 netif_receive_generic_xdp(struct sk_buff *skb,
|
||||
break;
|
||||
default:
|
||||
bpf_warn_invalid_xdp_action(act);
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
case XDP_ABORTED:
|
||||
trace_xdp_exception(skb->dev, xdp_prog, act);
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
case XDP_DROP:
|
||||
do_drop:
|
||||
kfree_skb(skb);
|
||||
@@ -6612,12 +6612,13 @@ void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
|
||||
netdev_err_once(dev, "%s() called with weight %d\n", __func__,
|
||||
weight);
|
||||
napi->weight = weight;
|
||||
list_add(&napi->dev_list, &dev->napi_list);
|
||||
napi->dev = dev;
|
||||
#ifdef CONFIG_NETPOLL
|
||||
napi->poll_owner = -1;
|
||||
#endif
|
||||
set_bit(NAPI_STATE_SCHED, &napi->state);
|
||||
set_bit(NAPI_STATE_NPSVC, &napi->state);
|
||||
list_add_rcu(&napi->dev_list, &dev->napi_list);
|
||||
napi_hash_add(napi);
|
||||
}
|
||||
EXPORT_SYMBOL(netif_napi_add);
|
||||
|
||||
@@ -322,7 +322,7 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
|
||||
err = net_hwtstamp_validate(ifr);
|
||||
if (err)
|
||||
return err;
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
|
||||
/*
|
||||
* Unknown or private ioctl
|
||||
@@ -478,7 +478,7 @@ int dev_ioctl(struct net *net, unsigned int cmd, struct ifreq *ifr, bool *need_c
|
||||
case SIOCSIFTXQLEN:
|
||||
if (!capable(CAP_NET_ADMIN))
|
||||
return -EPERM;
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
/*
|
||||
* These ioctl calls:
|
||||
* - require local superuser power.
|
||||
@@ -503,7 +503,7 @@ int dev_ioctl(struct net *net, unsigned int cmd, struct ifreq *ifr, bool *need_c
|
||||
case SIOCSHWTSTAMP:
|
||||
if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
|
||||
return -EPERM;
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
case SIOCBONDSLAVEINFOQUERY:
|
||||
case SIOCBONDINFOQUERY:
|
||||
dev_load(net, ifr->ifr_name);
|
||||
|
||||
@@ -6199,8 +6199,8 @@ devlink_trap_action_get_from_info(struct genl_info *info,
|
||||
|
||||
val = nla_get_u8(info->attrs[DEVLINK_ATTR_TRAP_ACTION]);
|
||||
switch (val) {
|
||||
case DEVLINK_TRAP_ACTION_DROP: /* fall-through */
|
||||
case DEVLINK_TRAP_ACTION_TRAP: /* fall-through */
|
||||
case DEVLINK_TRAP_ACTION_DROP:
|
||||
case DEVLINK_TRAP_ACTION_TRAP:
|
||||
case DEVLINK_TRAP_ACTION_MIRROR:
|
||||
*p_trap_action = val;
|
||||
break;
|
||||
|
||||
@@ -1189,7 +1189,7 @@ static int net_dm_alert_mode_get_from_info(struct genl_info *info,
|
||||
val = nla_get_u8(info->attrs[NET_DM_ATTR_ALERT_MODE]);
|
||||
|
||||
switch (val) {
|
||||
case NET_DM_ALERT_MODE_SUMMARY: /* fall-through */
|
||||
case NET_DM_ALERT_MODE_SUMMARY:
|
||||
case NET_DM_ALERT_MODE_PACKET:
|
||||
*p_alert_mode = val;
|
||||
break;
|
||||
|
||||
@@ -9625,7 +9625,7 @@ sk_reuseport_is_valid_access(int off, int size,
|
||||
case bpf_ctx_range(struct sk_reuseport_md, eth_protocol):
|
||||
if (size < sizeof_field(struct sk_buff, protocol))
|
||||
return false;
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
case bpf_ctx_range(struct sk_reuseport_md, ip_protocol):
|
||||
case bpf_ctx_range(struct sk_reuseport_md, bind_inany):
|
||||
case bpf_ctx_range(struct sk_reuseport_md, len):
|
||||
|
||||
@@ -162,7 +162,7 @@ static void poll_napi(struct net_device *dev)
|
||||
struct napi_struct *napi;
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
list_for_each_entry(napi, &dev->napi_list, dev_list) {
|
||||
list_for_each_entry_rcu(napi, &dev->napi_list, dev_list) {
|
||||
if (cmpxchg(&napi->poll_owner, -1, cpu) == -1) {
|
||||
poll_one_napi(napi);
|
||||
smp_store_release(&napi->poll_owner, -1);
|
||||
|
||||
@@ -3430,7 +3430,7 @@ xmit_more:
|
||||
net_info_ratelimited("%s xmit error: %d\n",
|
||||
pkt_dev->odevname, ret);
|
||||
pkt_dev->errors++;
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
case NETDEV_TX_BUSY:
|
||||
/* Retry it next time */
|
||||
refcount_dec(&(pkt_dev->skb->users));
|
||||
@@ -3699,7 +3699,7 @@ static int __net_init pktgen_create_thread(int cpu, struct pktgen_net *pn)
|
||||
cpu_to_node(cpu),
|
||||
"kpktgend_%d", cpu);
|
||||
if (IS_ERR(p)) {
|
||||
pr_err("kernel_thread() failed for cpu %d\n", t->cpu);
|
||||
pr_err("kthread_create_on_node() failed for cpu %d\n", t->cpu);
|
||||
list_del(&t->th_list);
|
||||
kfree(t);
|
||||
return PTR_ERR(p);
|
||||
|
||||
@@ -820,6 +820,7 @@ void skb_tx_error(struct sk_buff *skb)
|
||||
}
|
||||
EXPORT_SYMBOL(skb_tx_error);
|
||||
|
||||
#ifdef CONFIG_TRACEPOINTS
|
||||
/**
|
||||
* consume_skb - free an skbuff
|
||||
* @skb: buffer to free
|
||||
@@ -837,6 +838,7 @@ void consume_skb(struct sk_buff *skb)
|
||||
__kfree_skb(skb);
|
||||
}
|
||||
EXPORT_SYMBOL(consume_skb);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* consume_stateless_skb - free an skbuff, assuming it is stateless
|
||||
|
||||
@@ -794,7 +794,6 @@ static void sk_psock_verdict_apply(struct sk_psock *psock,
|
||||
sk_psock_skb_redirect(skb);
|
||||
break;
|
||||
case __SK_DROP:
|
||||
/* fall-through */
|
||||
default:
|
||||
out_free:
|
||||
kfree_skb(skb);
|
||||
|
||||
@@ -995,7 +995,7 @@ set_sndbuf:
|
||||
break;
|
||||
case SO_TIMESTAMPING_NEW:
|
||||
sock_set_flag(sk, SOCK_TSTAMP_NEW);
|
||||
/* fall through */
|
||||
fallthrough;
|
||||
case SO_TIMESTAMPING_OLD:
|
||||
if (val & ~SOF_TIMESTAMPING_MASK) {
|
||||
ret = -EINVAL;
|
||||
@@ -3240,7 +3240,7 @@ void sk_common_release(struct sock *sk)
|
||||
sk->sk_prot->destroy(sk);
|
||||
|
||||
/*
|
||||
* Observation: when sock_common_release is called, processes have
|
||||
* Observation: when sk_common_release is called, processes have
|
||||
* no access to socket. But net still has.
|
||||
* Step one, detach it from networking:
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user