diff options
author | David S. Miller <davem@davemloft.net> | 2010-04-21 04:14:25 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-04-21 04:14:25 -0400 |
commit | 87eb367003887cdc81a5d183efea227b5b488961 (patch) | |
tree | 40f617e25a9364d573e3cd2189c9e7fa56c8a0fe /net | |
parent | ccb7c7732e2ceb4e81a7806faf1670be9681ccd2 (diff) | |
parent | 05d17608a69b3ae653ea5c9857283bef3439c733 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/wireless/iwlwifi/iwl-6000.c
net/core/dev.c
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/br_multicast.c | 2 | ||||
-rw-r--r-- | net/core/dev.c | 8 | ||||
-rw-r--r-- | net/ipv4/fib_trie.c | 4 | ||||
-rw-r--r-- | net/ipv4/ip_output.c | 2 | ||||
-rw-r--r-- | net/ipv6/ip6_output.c | 2 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 2 | ||||
-rw-r--r-- | net/mac80211/agg-tx.c | 1 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 2 | ||||
-rw-r--r-- | net/packet/af_packet.c | 2 | ||||
-rw-r--r-- | net/sunrpc/xprtrdma/svc_rdma_transport.c | 5 |
10 files changed, 19 insertions, 11 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 61e1d1094b85..81bfdfe14ce5 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c | |||
@@ -727,7 +727,7 @@ static int br_multicast_igmp3_report(struct net_bridge *br, | |||
727 | group = grec->grec_mca; | 727 | group = grec->grec_mca; |
728 | type = grec->grec_type; | 728 | type = grec->grec_type; |
729 | 729 | ||
730 | len += grec->grec_nsrcs * 4; | 730 | len += ntohs(grec->grec_nsrcs) * 4; |
731 | if (!pskb_may_pull(skb, len)) | 731 | if (!pskb_may_pull(skb, len)) |
732 | return -EINVAL; | 732 | return -EINVAL; |
733 | 733 | ||
diff --git a/net/core/dev.c b/net/core/dev.c index b31d5d69a467..e904c476b112 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2015,8 +2015,12 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev, | |||
2015 | if (dev->real_num_tx_queues > 1) | 2015 | if (dev->real_num_tx_queues > 1) |
2016 | queue_index = skb_tx_hash(dev, skb); | 2016 | queue_index = skb_tx_hash(dev, skb); |
2017 | 2017 | ||
2018 | if (sk && rcu_dereference_check(sk->sk_dst_cache, 1)) | 2018 | if (sk) { |
2019 | sk_tx_queue_set(sk, queue_index); | 2019 | struct dst_entry *dst = rcu_dereference_check(sk->sk_dst_cache, 1); |
2020 | |||
2021 | if (dst && skb_dst(skb) == dst) | ||
2022 | sk_tx_queue_set(sk, queue_index); | ||
2023 | } | ||
2020 | } | 2024 | } |
2021 | } | 2025 | } |
2022 | 2026 | ||
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index 59a838795e3e..c98f115fb0fd 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c | |||
@@ -209,7 +209,9 @@ static inline struct node *tnode_get_child_rcu(struct tnode *tn, unsigned int i) | |||
209 | { | 209 | { |
210 | struct node *ret = tnode_get_child(tn, i); | 210 | struct node *ret = tnode_get_child(tn, i); |
211 | 211 | ||
212 | return rcu_dereference(ret); | 212 | return rcu_dereference_check(ret, |
213 | rcu_read_lock_held() || | ||
214 | lockdep_rtnl_is_held()); | ||
213 | } | 215 | } |
214 | 216 | ||
215 | static inline int tnode_child_length(const struct tnode *tn) | 217 | static inline int tnode_child_length(const struct tnode *tn) |
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 512af81b750f..f0392191740b 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -120,7 +120,7 @@ static int ip_dev_loopback_xmit(struct sk_buff *newskb) | |||
120 | newskb->pkt_type = PACKET_LOOPBACK; | 120 | newskb->pkt_type = PACKET_LOOPBACK; |
121 | newskb->ip_summed = CHECKSUM_UNNECESSARY; | 121 | newskb->ip_summed = CHECKSUM_UNNECESSARY; |
122 | WARN_ON(!skb_dst(newskb)); | 122 | WARN_ON(!skb_dst(newskb)); |
123 | netif_rx(newskb); | 123 | netif_rx_ni(newskb); |
124 | return 0; | 124 | return 0; |
125 | } | 125 | } |
126 | 126 | ||
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 5129a16f482b..263d4cf5a8de 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -108,7 +108,7 @@ static int ip6_dev_loopback_xmit(struct sk_buff *newskb) | |||
108 | newskb->ip_summed = CHECKSUM_UNNECESSARY; | 108 | newskb->ip_summed = CHECKSUM_UNNECESSARY; |
109 | WARN_ON(!skb_dst(newskb)); | 109 | WARN_ON(!skb_dst(newskb)); |
110 | 110 | ||
111 | netif_rx(newskb); | 111 | netif_rx_ni(newskb); |
112 | return 0; | 112 | return 0; |
113 | } | 113 | } |
114 | 114 | ||
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index a92b4a5cd8bf..78480f410a9b 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -1018,7 +1018,7 @@ static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win, | |||
1018 | skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len); | 1018 | skb_reserve(buff, MAX_HEADER + sizeof(struct ipv6hdr) + tot_len); |
1019 | 1019 | ||
1020 | t1 = (struct tcphdr *) skb_push(buff, tot_len); | 1020 | t1 = (struct tcphdr *) skb_push(buff, tot_len); |
1021 | skb_reset_transport_header(skb); | 1021 | skb_reset_transport_header(buff); |
1022 | 1022 | ||
1023 | /* Swap the send and the receive. */ | 1023 | /* Swap the send and the receive. */ |
1024 | memset(t1, 0, sizeof(*t1)); | 1024 | memset(t1, 0, sizeof(*t1)); |
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c index 608063f11797..555c6a14a6fa 100644 --- a/net/mac80211/agg-tx.c +++ b/net/mac80211/agg-tx.c | |||
@@ -184,7 +184,6 @@ static void sta_addba_resp_timer_expired(unsigned long data) | |||
184 | HT_AGG_STATE_REQ_STOP_BA_MSK)) != | 184 | HT_AGG_STATE_REQ_STOP_BA_MSK)) != |
185 | HT_ADDBA_REQUESTED_MSK) { | 185 | HT_ADDBA_REQUESTED_MSK) { |
186 | spin_unlock_bh(&sta->lock); | 186 | spin_unlock_bh(&sta->lock); |
187 | *state = HT_AGG_STATE_IDLE; | ||
188 | #ifdef CONFIG_MAC80211_HT_DEBUG | 187 | #ifdef CONFIG_MAC80211_HT_DEBUG |
189 | printk(KERN_DEBUG "timer expired on tid %d but we are not " | 188 | printk(KERN_DEBUG "timer expired on tid %d but we are not " |
190 | "(or no longer) expecting addBA response there", | 189 | "(or no longer) expecting addBA response there", |
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index 35d850223a75..3133681bdaa0 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -175,6 +175,8 @@ static u32 ieee80211_enable_ht(struct ieee80211_sub_if_data *sdata, | |||
175 | ht_changed = conf_is_ht(&local->hw.conf) != enable_ht || | 175 | ht_changed = conf_is_ht(&local->hw.conf) != enable_ht || |
176 | channel_type != local->hw.conf.channel_type; | 176 | channel_type != local->hw.conf.channel_type; |
177 | 177 | ||
178 | if (local->tmp_channel) | ||
179 | local->tmp_channel_type = channel_type; | ||
178 | local->oper_channel_type = channel_type; | 180 | local->oper_channel_type = channel_type; |
179 | 181 | ||
180 | if (ht_changed) { | 182 | if (ht_changed) { |
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index f162d59d8161..2078a277e06b 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -2228,8 +2228,6 @@ static int packet_ioctl(struct socket *sock, unsigned int cmd, | |||
2228 | case SIOCGIFDSTADDR: | 2228 | case SIOCGIFDSTADDR: |
2229 | case SIOCSIFDSTADDR: | 2229 | case SIOCSIFDSTADDR: |
2230 | case SIOCSIFFLAGS: | 2230 | case SIOCSIFFLAGS: |
2231 | if (!net_eq(sock_net(sk), &init_net)) | ||
2232 | return -ENOIOCTLCMD; | ||
2233 | return inet_dgram_ops.ioctl(sock, cmd, arg); | 2231 | return inet_dgram_ops.ioctl(sock, cmd, arg); |
2234 | #endif | 2232 | #endif |
2235 | 2233 | ||
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c index fd90eb89842b..edea15a54e51 100644 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c | |||
@@ -679,7 +679,10 @@ static struct svc_xprt *svc_rdma_create(struct svc_serv *serv, | |||
679 | int ret; | 679 | int ret; |
680 | 680 | ||
681 | dprintk("svcrdma: Creating RDMA socket\n"); | 681 | dprintk("svcrdma: Creating RDMA socket\n"); |
682 | 682 | if (sa->sa_family != AF_INET) { | |
683 | dprintk("svcrdma: Address family %d is not supported.\n", sa->sa_family); | ||
684 | return ERR_PTR(-EAFNOSUPPORT); | ||
685 | } | ||
683 | cma_xprt = rdma_create_xprt(serv, 1); | 686 | cma_xprt = rdma_create_xprt(serv, 1); |
684 | if (!cma_xprt) | 687 | if (!cma_xprt) |
685 | return ERR_PTR(-ENOMEM); | 688 | return ERR_PTR(-ENOMEM); |