Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from David Miller:
"Some merge window fallout, some longer term fixes:
1) Handle headroom properly in lapbether and x25_asy drivers, from
Xie He.
2) Fetch MAC address from correct r8152 device node, from Thierry
Reding.
3) In the sw kTLS path we should allow MSG_CMSG_COMPAT in sendmsg,
from Rouven Czerwinski.
4) Correct fdputs in socket layer, from Miaohe Lin.
5) Revert troublesome sockptr_t optimization, from Christoph Hellwig.
6) Fix TCP TFO key reading on big endian, from Jason Baron.
7) Missing CAP_NET_RAW check in nfc, from Qingyu Li.
8) Fix inet fastreuse optimization with tproxy sockets, from Tim
Froidcoeur.
9) Fix 64-bit divide in new SFC driver, from Edward Cree.
10) Add a tracepoint for prandom_u32 so that we can more easily
perform usage analysis. From Eric Dumazet.
11) Fix rwlock imbalance in AF_PACKET, from John Ogness"
* git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (49 commits)
net: openvswitch: introduce common code for flushing flows
af_packet: TPACKET_V3: fix fill status rwlock imbalance
random32: add a tracepoint for prandom_u32()
Revert "ipv4: tunnel: fix compilation on ARCH=um"
net: accept an empty mask in /sys/class/net/*/queues/rx-*/rps_cpus
net: ethernet: stmmac: Disable hardware multicast filter
net: stmmac: dwmac1000: provide multicast filter fallback
ipv4: tunnel: fix compilation on ARCH=um
vsock: fix potential null pointer dereference in vsock_poll()
sfc: fix ef100 design-param checking
net: initialize fastreuse on inet_inherit_port
net: refactor bind_bucket fastreuse into helper
net: phy: marvell10g: fix null pointer dereference
net: Fix potential memory leak in proto_register()
net: qcom/emac: add missed clk_disable_unprepare in error path of emac_clks_phase1_init
ionic_lif: Use devm_kcalloc() in ionic_qcq_alloc()
net/nfc/rawsock.c: add CAP_NET_RAW check.
hinic: fix strncpy output truncated compile warnings
drivers/net/wan/x25_asy: Added needed_headroom and a skb->len check
net/tls: Fix kmap usage
...
This commit is contained in:
@@ -3414,6 +3414,16 @@ static void sock_inuse_add(struct net *net, int val)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void tw_prot_cleanup(struct timewait_sock_ops *twsk_prot)
|
||||
{
|
||||
if (!twsk_prot)
|
||||
return;
|
||||
kfree(twsk_prot->twsk_slab_name);
|
||||
twsk_prot->twsk_slab_name = NULL;
|
||||
kmem_cache_destroy(twsk_prot->twsk_slab);
|
||||
twsk_prot->twsk_slab = NULL;
|
||||
}
|
||||
|
||||
static void req_prot_cleanup(struct request_sock_ops *rsk_prot)
|
||||
{
|
||||
if (!rsk_prot)
|
||||
@@ -3484,7 +3494,7 @@ int proto_register(struct proto *prot, int alloc_slab)
|
||||
prot->slab_flags,
|
||||
NULL);
|
||||
if (prot->twsk_prot->twsk_slab == NULL)
|
||||
goto out_free_timewait_sock_slab_name;
|
||||
goto out_free_timewait_sock_slab;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3492,15 +3502,15 @@ int proto_register(struct proto *prot, int alloc_slab)
|
||||
ret = assign_proto_idx(prot);
|
||||
if (ret) {
|
||||
mutex_unlock(&proto_list_mutex);
|
||||
goto out_free_timewait_sock_slab_name;
|
||||
goto out_free_timewait_sock_slab;
|
||||
}
|
||||
list_add(&prot->node, &proto_list);
|
||||
mutex_unlock(&proto_list_mutex);
|
||||
return ret;
|
||||
|
||||
out_free_timewait_sock_slab_name:
|
||||
out_free_timewait_sock_slab:
|
||||
if (alloc_slab && prot->twsk_prot)
|
||||
kfree(prot->twsk_prot->twsk_slab_name);
|
||||
tw_prot_cleanup(prot->twsk_prot);
|
||||
out_free_request_sock_slab:
|
||||
if (alloc_slab) {
|
||||
req_prot_cleanup(prot->rsk_prot);
|
||||
@@ -3524,12 +3534,7 @@ void proto_unregister(struct proto *prot)
|
||||
prot->slab = NULL;
|
||||
|
||||
req_prot_cleanup(prot->rsk_prot);
|
||||
|
||||
if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) {
|
||||
kmem_cache_destroy(prot->twsk_prot->twsk_slab);
|
||||
kfree(prot->twsk_prot->twsk_slab_name);
|
||||
prot->twsk_prot->twsk_slab = NULL;
|
||||
}
|
||||
tw_prot_cleanup(prot->twsk_prot);
|
||||
}
|
||||
EXPORT_SYMBOL(proto_unregister);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user