diff options
Diffstat (limited to 'net/core')
| -rw-r--r-- | net/core/dev.c | 2 | ||||
| -rw-r--r-- | net/core/flow_dissector.c | 4 | ||||
| -rw-r--r-- | net/core/netpoll.c | 3 | ||||
| -rw-r--r-- | net/core/rtnetlink.c | 2 | ||||
| -rw-r--r-- | net/core/skbuff.c | 2 | ||||
| -rw-r--r-- | net/core/sock.c | 1 | 
6 files changed, 9 insertions, 5 deletions
| diff --git a/net/core/dev.c b/net/core/dev.c index 77d43ae2a7bb..0ffcbdd55fa9 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3272,7 +3272,7 @@ struct sk_buff *dev_hard_start_xmit(struct sk_buff *first, struct net_device *de  		}  		skb = next; -		if (netif_xmit_stopped(txq) && skb) { +		if (netif_tx_queue_stopped(txq) && skb) {  			rc = NETDEV_TX_BUSY;  			break;  		} diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c index 676f3ad629f9..588f475019d4 100644 --- a/net/core/flow_dissector.c +++ b/net/core/flow_dissector.c @@ -1166,8 +1166,8 @@ ip_proto_again:  		break;  	} -	if (dissector_uses_key(flow_dissector, -			       FLOW_DISSECTOR_KEY_PORTS)) { +	if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_PORTS) && +	    !(key_control->flags & FLOW_DIS_IS_FRAGMENT)) {  		key_ports = skb_flow_dissector_target(flow_dissector,  						      FLOW_DISSECTOR_KEY_PORTS,  						      target_container); diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 5da9552b186b..2b9fdbc43205 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -717,7 +717,8 @@ int netpoll_setup(struct netpoll *np)  				read_lock_bh(&idev->lock);  				list_for_each_entry(ifp, &idev->addr_list, if_list) { -					if (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL) +					if (!!(ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL) != +					    !!(ipv6_addr_type(&np->remote_ip.in6) & IPV6_ADDR_LINKLOCAL))  						continue;  					np->local_ip.in6 = ifp->addr;  					err = 0; diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index e01274bd5e3e..33d9227a8b80 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -3367,7 +3367,7 @@ static int rtnl_dump_all(struct sk_buff *skb, struct netlink_callback *cb)  			cb->seq = 0;  		}  		ret = dumpit(skb, cb); -		if (ret < 0) +		if (ret)  			break;  	}  	cb->family = idx; diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 946de0e24c87..b4ee5c8b928f 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -4944,6 +4944,8 @@ static unsigned int skb_gso_mac_seglen(const struct sk_buff *skb)   *   * This is a helper to do that correctly considering GSO_BY_FRAGS.   * + * @skb: GSO skb + *   * @seg_len: The segmented length (from skb_gso_*_seglen). In the   *           GSO_BY_FRAGS case this will be [header sizes + GSO_BY_FRAGS].   * diff --git a/net/core/sock.c b/net/core/sock.c index 6fcc4bc07d19..080a880a1761 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3279,6 +3279,7 @@ int sock_load_diag_module(int family, int protocol)  #ifdef CONFIG_INET  	if (family == AF_INET && +	    protocol != IPPROTO_RAW &&  	    !rcu_access_pointer(inet_protos[protocol]))  		return -ENOENT;  #endif | 
