Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: "This looks like a lot but it's a mixture of regression fixes as well as fixes for longer standing issues. 1) Fix on-channel cancellation in mac80211, from Johannes Berg. 2) Handle CHECKSUM_COMPLETE properly in xt_TCPMSS netfilter xtables module, from Eric Dumazet. 3) Avoid infinite loop in UDP SO_REUSEPORT logic, also from Eric Dumazet. 4) Avoid a NULL deref if we try to set SO_REUSEPORT after a socket is bound, from Craig Gallek. 5) GRO key comparisons don't take lightweight tunnels into account, from Jesse Gross. 6) Fix struct pid leak via SCM credentials in AF_UNIX, from Eric Dumazet. 7) We need to set the rtnl_link_ops of ipv6 SIT tunnels before we register them, otherwise the NEWLINK netlink message is missing the proper attributes. From Thadeu Lima de Souza Cascardo. 8) Several Spectrum chip bug fixes for mlxsw switch driver, from Ido Schimmel 9) Handle fragments properly in ipv4 easly socket demux, from Eric Dumazet. 10) Don't ignore the ifindex key specifier on ipv6 output route lookups, from Paolo Abeni" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (128 commits) tcp: avoid cwnd undo after receiving ECN irda: fix a potential use-after-free in ircomm_param_request net: tg3: avoid uninitialized variable warning net: nb8800: avoid uninitialized variable warning net: vxge: avoid unused function warnings net: bgmac: clarify CONFIG_BCMA dependency net: hp100: remove unnecessary #ifdefs net: davinci_cpdma: use dma_addr_t for DMA address ipv6/udp: use sticky pktinfo egress ifindex on connect() ipv6: enforce flowi6_oif usage in ip6_dst_lookup_tail() netlink: not trim skb for mmaped socket when dump vxlan: fix a out of bounds access in __vxlan_find_mac net: dsa: mv88e6xxx: fix port VLAN maps fib_trie: Fix shift by 32 in fib_table_lookup net: moxart: use correct accessors for DMA memory ipv4: ipconfig: avoid unused ic_proto_used symbol bnxt_en: Fix crash in bnxt_free_tx_skbs() during tx timeout. bnxt_en: Exclude rx_drop_pkts hw counter from the stack's rx_dropped counter. bnxt_en: Ring free response from close path should use completion ring net_sched: drr: check for NULL pointer in drr_dequeue ...
This commit is contained in:
@@ -512,7 +512,6 @@ static inline void napi_enable(struct napi_struct *n)
|
||||
clear_bit(NAPI_STATE_NPSVC, &n->state);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/**
|
||||
* napi_synchronize - wait until NAPI is not running
|
||||
* @n: napi context
|
||||
@@ -523,12 +522,12 @@ static inline void napi_enable(struct napi_struct *n)
|
||||
*/
|
||||
static inline void napi_synchronize(const struct napi_struct *n)
|
||||
{
|
||||
while (test_bit(NAPI_STATE_SCHED, &n->state))
|
||||
msleep(1);
|
||||
if (IS_ENABLED(CONFIG_SMP))
|
||||
while (test_bit(NAPI_STATE_SCHED, &n->state))
|
||||
msleep(1);
|
||||
else
|
||||
barrier();
|
||||
}
|
||||
#else
|
||||
# define napi_synchronize(n) barrier()
|
||||
#endif
|
||||
|
||||
enum netdev_queue_state_t {
|
||||
__QUEUE_STATE_DRV_XOFF,
|
||||
|
@@ -252,6 +252,12 @@ struct l2cap_conn_rsp {
|
||||
#define L2CAP_PSM_3DSP 0x0021
|
||||
#define L2CAP_PSM_IPSP 0x0023 /* 6LoWPAN */
|
||||
|
||||
#define L2CAP_PSM_DYN_START 0x1001
|
||||
#define L2CAP_PSM_DYN_END 0xffff
|
||||
#define L2CAP_PSM_AUTO_END 0x10ff
|
||||
#define L2CAP_PSM_LE_DYN_START 0x0080
|
||||
#define L2CAP_PSM_LE_DYN_END 0x00ff
|
||||
|
||||
/* channel identifier */
|
||||
#define L2CAP_CID_SIGNALING 0x0001
|
||||
#define L2CAP_CID_CONN_LESS 0x0002
|
||||
|
@@ -44,6 +44,24 @@ static inline bool skb_valid_dst(const struct sk_buff *skb)
|
||||
return dst && !(dst->flags & DST_METADATA);
|
||||
}
|
||||
|
||||
static inline int skb_metadata_dst_cmp(const struct sk_buff *skb_a,
|
||||
const struct sk_buff *skb_b)
|
||||
{
|
||||
const struct metadata_dst *a, *b;
|
||||
|
||||
if (!(skb_a->_skb_refdst | skb_b->_skb_refdst))
|
||||
return 0;
|
||||
|
||||
a = (const struct metadata_dst *) skb_dst(skb_a);
|
||||
b = (const struct metadata_dst *) skb_dst(skb_b);
|
||||
|
||||
if (!a != !b || a->u.tun_info.options_len != b->u.tun_info.options_len)
|
||||
return 1;
|
||||
|
||||
return memcmp(&a->u.tun_info, &b->u.tun_info,
|
||||
sizeof(a->u.tun_info) + a->u.tun_info.options_len);
|
||||
}
|
||||
|
||||
struct metadata_dst *metadata_dst_alloc(u8 optslen, gfp_t flags);
|
||||
struct metadata_dst __percpu *metadata_dst_alloc_percpu(u8 optslen, gfp_t flags);
|
||||
|
||||
|
@@ -64,8 +64,16 @@ static inline bool rt6_need_strict(const struct in6_addr *daddr)
|
||||
|
||||
void ip6_route_input(struct sk_buff *skb);
|
||||
|
||||
struct dst_entry *ip6_route_output(struct net *net, const struct sock *sk,
|
||||
struct flowi6 *fl6);
|
||||
struct dst_entry *ip6_route_output_flags(struct net *net, const struct sock *sk,
|
||||
struct flowi6 *fl6, int flags);
|
||||
|
||||
static inline struct dst_entry *ip6_route_output(struct net *net,
|
||||
const struct sock *sk,
|
||||
struct flowi6 *fl6)
|
||||
{
|
||||
return ip6_route_output_flags(net, sk, fl6, 0);
|
||||
}
|
||||
|
||||
struct dst_entry *ip6_route_lookup(struct net *net, struct flowi6 *fl6,
|
||||
int flags);
|
||||
|
||||
|
@@ -79,12 +79,10 @@ print_tuple(struct seq_file *s, const struct nf_conntrack_tuple *tuple,
|
||||
const struct nf_conntrack_l3proto *l3proto,
|
||||
const struct nf_conntrack_l4proto *proto);
|
||||
|
||||
#ifdef CONFIG_LOCKDEP
|
||||
# define CONNTRACK_LOCKS 8
|
||||
#else
|
||||
# define CONNTRACK_LOCKS 1024
|
||||
#endif
|
||||
#define CONNTRACK_LOCKS 1024
|
||||
|
||||
extern spinlock_t nf_conntrack_locks[CONNTRACK_LOCKS];
|
||||
void nf_conntrack_lock(spinlock_t *lock);
|
||||
|
||||
extern spinlock_t nf_conntrack_expect_lock;
|
||||
|
||||
|
@@ -756,7 +756,6 @@ struct sctp_transport {
|
||||
|
||||
/* Reference counting. */
|
||||
atomic_t refcnt;
|
||||
__u32 dead:1,
|
||||
/* RTO-Pending : A flag used to track if one of the DATA
|
||||
* chunks sent to this address is currently being
|
||||
* used to compute a RTT. If this flag is 0,
|
||||
@@ -766,7 +765,7 @@ struct sctp_transport {
|
||||
* calculation completes (i.e. the DATA chunk
|
||||
* is SACK'd) clear this flag.
|
||||
*/
|
||||
rto_pending:1,
|
||||
__u32 rto_pending:1,
|
||||
|
||||
/*
|
||||
* hb_sent : a flag that signals that we have a pending
|
||||
@@ -955,7 +954,7 @@ void sctp_transport_route(struct sctp_transport *, union sctp_addr *,
|
||||
void sctp_transport_pmtu(struct sctp_transport *, struct sock *sk);
|
||||
void sctp_transport_free(struct sctp_transport *);
|
||||
void sctp_transport_reset_timers(struct sctp_transport *);
|
||||
void sctp_transport_hold(struct sctp_transport *);
|
||||
int sctp_transport_hold(struct sctp_transport *);
|
||||
void sctp_transport_put(struct sctp_transport *);
|
||||
void sctp_transport_update_rto(struct sctp_transport *, __u32);
|
||||
void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32);
|
||||
|
@@ -1035,18 +1035,6 @@ struct proto {
|
||||
struct list_head node;
|
||||
#ifdef SOCK_REFCNT_DEBUG
|
||||
atomic_t socks;
|
||||
#endif
|
||||
#ifdef CONFIG_MEMCG_KMEM
|
||||
/*
|
||||
* cgroup specific init/deinit functions. Called once for all
|
||||
* protocols that implement it, from cgroups populate function.
|
||||
* This function has to setup any files the protocol want to
|
||||
* appear in the kmem cgroup filesystem.
|
||||
*/
|
||||
int (*init_cgroup)(struct mem_cgroup *memcg,
|
||||
struct cgroup_subsys *ss);
|
||||
void (*destroy_cgroup)(struct mem_cgroup *memcg);
|
||||
struct cg_proto *(*proto_cgroup)(struct mem_cgroup *memcg);
|
||||
#endif
|
||||
int (*diag_destroy)(struct sock *sk, int err);
|
||||
};
|
||||
|
@@ -16,7 +16,7 @@ struct sock_reuseport {
|
||||
};
|
||||
|
||||
extern int reuseport_alloc(struct sock *sk);
|
||||
extern int reuseport_add_sock(struct sock *sk, const struct sock *sk2);
|
||||
extern int reuseport_add_sock(struct sock *sk, struct sock *sk2);
|
||||
extern void reuseport_detach_sock(struct sock *sk);
|
||||
extern struct sock *reuseport_select_sock(struct sock *sk,
|
||||
u32 hash,
|
||||
|
@@ -216,7 +216,7 @@ void tcp_time_wait(struct sock *sk, int state, int timeo);
|
||||
/* TCP thin-stream limits */
|
||||
#define TCP_THIN_LINEAR_RETRIES 6 /* After 6 linear retries, do exp. backoff */
|
||||
|
||||
/* TCP initial congestion window as per draft-hkchu-tcpm-initcwnd-01 */
|
||||
/* TCP initial congestion window as per rfc6928 */
|
||||
#define TCP_INIT_CWND 10
|
||||
|
||||
/* Bit Flags for sysctl_tcp_fastopen */
|
||||
|
Reference in New Issue
Block a user