Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[DCCP]: Set RTO for newly created child socket
[DCCP]: Correctly split CCID half connections
[NET]: Fix compat_sock_common_getsockopt typo.
[NET]: Revert incorrect accept queue backlog changes.
[INET]: twcal_jiffie should be unsigned long, not int
[GIANFAR]: Fix compile error in latest git
[PPPOE]: Use ifindex instead of device pointer in key lookups.
[NETFILTER]: ip6_route_me_harder should take into account mark
[NETFILTER]: nfnetlink_log: fix reference counting
[NETFILTER]: nfnetlink_log: fix module reference counting
[NETFILTER]: nfnetlink_log: fix possible NULL pointer dereference
[NETFILTER]: nfnetlink_log: fix NULL pointer dereference
[NETFILTER]: nfnetlink_log: fix use after free
[NETFILTER]: nfnetlink_log: fix reference leak
[NETFILTER]: tcp conntrack: accept SYN|URG as valid
[NETFILTER]: nf_conntrack/nf_nat: fix incorrect config ifdefs
[NETFILTER]: conntrack: fix {nf,ip}_ct_iterate_cleanup endless loops

+70 -74
+1 -1
drivers/net/gianfar.c
··· 1132 1132 1133 1133 spin_lock_irqsave(&priv->rxlock, flags); 1134 1134 1135 - vlan_group_set_device(priv->vgrp, vid, NULL); 1135 + vlan_group_set_device(priv->vlgrp, vid, NULL); 1136 1136 1137 1137 spin_unlock_irqrestore(&priv->rxlock, flags); 1138 1138 }
+6 -5
drivers/net/pppoe.c
··· 140 140 141 141 ret = item_hash_table[hash]; 142 142 143 - while (ret && !(cmp_addr(&ret->pppoe_pa, sid, addr) && ret->pppoe_dev->ifindex == ifindex)) 143 + while (ret && !(cmp_addr(&ret->pppoe_pa, sid, addr) && ret->pppoe_ifindex == ifindex)) 144 144 ret = ret->next; 145 145 146 146 return ret; ··· 153 153 154 154 ret = item_hash_table[hash]; 155 155 while (ret) { 156 - if (cmp_2_addr(&ret->pppoe_pa, &po->pppoe_pa) && ret->pppoe_dev->ifindex == po->pppoe_dev->ifindex) 156 + if (cmp_2_addr(&ret->pppoe_pa, &po->pppoe_pa) && ret->pppoe_ifindex == po->pppoe_ifindex) 157 157 return -EALREADY; 158 158 159 159 ret = ret->next; ··· 174 174 src = &item_hash_table[hash]; 175 175 176 176 while (ret) { 177 - if (cmp_addr(&ret->pppoe_pa, sid, addr) && ret->pppoe_dev->ifindex == ifindex) { 177 + if (cmp_addr(&ret->pppoe_pa, sid, addr) && ret->pppoe_ifindex == ifindex) { 178 178 *src = ret->next; 179 179 break; 180 180 } ··· 529 529 530 530 po = pppox_sk(sk); 531 531 if (po->pppoe_pa.sid) { 532 - delete_item(po->pppoe_pa.sid, po->pppoe_pa.remote, po->pppoe_dev->ifindex); 532 + delete_item(po->pppoe_pa.sid, po->pppoe_pa.remote, po->pppoe_ifindex); 533 533 } 534 534 535 535 if (po->pppoe_dev) ··· 577 577 pppox_unbind_sock(sk); 578 578 579 579 /* Delete the old binding */ 580 - delete_item(po->pppoe_pa.sid,po->pppoe_pa.remote,po->pppoe_dev->ifindex); 580 + delete_item(po->pppoe_pa.sid,po->pppoe_pa.remote,po->pppoe_ifindex); 581 581 582 582 if(po->pppoe_dev) 583 583 dev_put(po->pppoe_dev); ··· 597 597 goto end; 598 598 599 599 po->pppoe_dev = dev; 600 + po->pppoe_ifindex = dev->ifindex; 600 601 601 602 if (!(dev->flags & IFF_UP)) 602 603 goto err_put;
+2
include/linux/if_pppox.h
··· 114 114 #ifdef __KERNEL__ 115 115 struct pppoe_opt { 116 116 struct net_device *dev; /* device associated with socket*/ 117 + int ifindex; /* ifindex of device associated with socket */ 117 118 struct pppoe_addr pa; /* what this socket is bound to*/ 118 119 struct sockaddr_pppox relay; /* what socket data will be 119 120 relayed to (PPPoE relaying) */ ··· 133 132 unsigned short num; 134 133 }; 135 134 #define pppoe_dev proto.pppoe.dev 135 + #define pppoe_ifindex proto.pppoe.ifindex 136 136 #define pppoe_pa proto.pppoe.pa 137 137 #define pppoe_relay proto.pppoe.relay 138 138
+1 -1
include/linux/netfilter_ipv4/ip_conntrack_core.h
··· 45 45 int ret = NF_ACCEPT; 46 46 47 47 if (ct) { 48 - if (!is_confirmed(ct)) 48 + if (!is_confirmed(ct) && !is_dying(ct)) 49 49 ret = __ip_conntrack_confirm(pskb); 50 50 ip_ct_deliver_cached_events(ct); 51 51 }
+1 -1
include/net/inet_timewait_sock.h
··· 66 66 struct inet_timewait_death_row { 67 67 /* Short-time timewait calendar */ 68 68 int twcal_hand; 69 - int twcal_jiffie; 69 + unsigned long twcal_jiffie; 70 70 struct timer_list twcal_timer; 71 71 struct hlist_head twcal_row[INET_TWDR_RECYCLE_SLOTS]; 72 72
+1 -1
include/net/netfilter/nf_conntrack_core.h
··· 64 64 int ret = NF_ACCEPT; 65 65 66 66 if (ct) { 67 - if (!nf_ct_is_confirmed(ct)) 67 + if (!nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) 68 68 ret = __nf_conntrack_confirm(pskb); 69 69 nf_ct_deliver_cached_events(ct); 70 70 }
+1 -1
include/net/sock.h
··· 426 426 427 427 static inline int sk_acceptq_is_full(struct sock *sk) 428 428 { 429 - return sk->sk_ack_backlog >= sk->sk_max_ack_backlog; 429 + return sk->sk_ack_backlog > sk->sk_max_ack_backlog; 430 430 } 431 431 432 432 /*
+1 -1
net/core/sock.c
··· 1597 1597 { 1598 1598 struct sock *sk = sock->sk; 1599 1599 1600 - if (sk->sk_prot->compat_setsockopt != NULL) 1600 + if (sk->sk_prot->compat_getsockopt != NULL) 1601 1601 return sk->sk_prot->compat_getsockopt(sk, level, optname, 1602 1602 optval, optlen); 1603 1603 return sk->sk_prot->getsockopt(sk, level, optname, optval, optlen);
+6 -6
net/dccp/input.c
··· 256 256 * (only one is active at a time); when moving to bidirectional 257 257 * service, this needs to be revised. 258 258 */ 259 - if (dccp_sk(sk)->dccps_role == DCCP_ROLE_SERVER) 260 - ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb); 261 - else 259 + if (dccp_sk(sk)->dccps_role == DCCP_ROLE_CLIENT) 262 260 ccid_hc_tx_packet_recv(dp->dccps_hc_tx_ccid, sk, skb); 261 + else /* listening or connected server */ 262 + ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb); 263 263 264 264 return __dccp_rcv_established(sk, skb, dh, len); 265 265 discard: ··· 495 495 goto discard; 496 496 497 497 /* XXX see the comments in dccp_rcv_established about this */ 498 - if (dccp_sk(sk)->dccps_role == DCCP_ROLE_SERVER) 499 - ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb); 500 - else 498 + if (dccp_sk(sk)->dccps_role == DCCP_ROLE_CLIENT) 501 499 ccid_hc_tx_packet_recv(dp->dccps_hc_tx_ccid, sk, skb); 500 + else 501 + ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb); 502 502 } 503 503 504 504 /*
+1 -1
net/dccp/minisocks.c
··· 103 103 104 104 if (newsk != NULL) { 105 105 const struct dccp_request_sock *dreq = dccp_rsk(req); 106 - struct inet_connection_sock *newicsk = inet_csk(sk); 106 + struct inet_connection_sock *newicsk = inet_csk(newsk); 107 107 struct dccp_sock *newdp = dccp_sk(newsk); 108 108 struct dccp_minisock *newdmsk = dccp_msk(newsk); 109 109
+1 -1
net/ipv4/netfilter/ip_conntrack_core.c
··· 1254 1254 list_for_each_entry(h, &unconfirmed, list) { 1255 1255 ct = tuplehash_to_ctrack(h); 1256 1256 if (iter(ct, data)) 1257 - goto found; 1257 + set_bit(IPS_DYING_BIT, &ct->status); 1258 1258 } 1259 1259 write_unlock_bh(&ip_conntrack_lock); 1260 1260 return NULL;
+3 -1
net/ipv4/netfilter/ip_conntrack_proto_tcp.c
··· 812 812 static const u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG) + 1] = 813 813 { 814 814 [TH_SYN] = 1, 815 - [TH_SYN|TH_ACK] = 1, 816 815 [TH_SYN|TH_PUSH] = 1, 816 + [TH_SYN|TH_URG] = 1, 817 + [TH_SYN|TH_PUSH|TH_URG] = 1, 818 + [TH_SYN|TH_ACK] = 1, 817 819 [TH_SYN|TH_ACK|TH_PUSH] = 1, 818 820 [TH_RST] = 1, 819 821 [TH_RST|TH_ACK] = 1,
+2 -4
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
··· 379 379 return -ENOENT; 380 380 } 381 381 382 - #if defined(CONFIG_NF_CT_NETLINK) || \ 383 - defined(CONFIG_NF_CT_NETLINK_MODULE) 382 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 384 383 385 384 #include <linux/netfilter/nfnetlink.h> 386 385 #include <linux/netfilter/nfnetlink_conntrack.h> ··· 434 435 .print_conntrack = ipv4_print_conntrack, 435 436 .prepare = ipv4_prepare, 436 437 .get_features = ipv4_get_features, 437 - #if defined(CONFIG_NF_CT_NETLINK) || \ 438 - defined(CONFIG_NF_CT_NETLINK_MODULE) 438 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 439 439 .tuple_to_nfattr = ipv4_tuple_to_nfattr, 440 440 .nfattr_to_tuple = ipv4_nfattr_to_tuple, 441 441 #endif
+2 -4
net/ipv4/netfilter/nf_conntrack_proto_icmp.c
··· 268 268 return icmp_error_message(skb, ctinfo, hooknum); 269 269 } 270 270 271 - #if defined(CONFIG_NF_CT_NETLINK) || \ 272 - defined(CONFIG_NF_CT_NETLINK_MODULE) 271 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 273 272 274 273 #include <linux/netfilter/nfnetlink.h> 275 274 #include <linux/netfilter/nfnetlink_conntrack.h> ··· 367 368 .error = icmp_error, 368 369 .destroy = NULL, 369 370 .me = NULL, 370 - #if defined(CONFIG_NF_CT_NETLINK) || \ 371 - defined(CONFIG_NF_CT_NETLINK_MODULE) 371 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 372 372 .tuple_to_nfattr = icmp_tuple_to_nfattr, 373 373 .nfattr_to_tuple = icmp_nfattr_to_tuple, 374 374 #endif
+1 -2
net/ipv4/netfilter/nf_nat_core.c
··· 546 546 } 547 547 EXPORT_SYMBOL(nf_nat_protocol_unregister); 548 548 549 - #if defined(CONFIG_IP_NF_CONNTRACK_NETLINK) || \ 550 - defined(CONFIG_IP_NF_CONNTRACK_NETLINK_MODULE) 549 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 551 550 int 552 551 nf_nat_port_range_to_nfattr(struct sk_buff *skb, 553 552 const struct nf_nat_range *range)
+1 -2
net/ipv4/netfilter/nf_nat_proto_gre.c
··· 152 152 .manip_pkt = gre_manip_pkt, 153 153 .in_range = gre_in_range, 154 154 .unique_tuple = gre_unique_tuple, 155 - #if defined(CONFIG_IP_NF_CONNTRACK_NETLINK) || \ 156 - defined(CONFIG_IP_NF_CONNTRACK_NETLINK_MODULE) 155 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 157 156 .range_to_nfattr = nf_nat_port_range_to_nfattr, 158 157 .nfattr_to_range = nf_nat_port_nfattr_to_range, 159 158 #endif
+1 -2
net/ipv4/netfilter/nf_nat_proto_icmp.c
··· 78 78 .manip_pkt = icmp_manip_pkt, 79 79 .in_range = icmp_in_range, 80 80 .unique_tuple = icmp_unique_tuple, 81 - #if defined(CONFIG_IP_NF_CONNTRACK_NETLINK) || \ 82 - defined(CONFIG_IP_NF_CONNTRACK_NETLINK_MODULE) 81 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 83 82 .range_to_nfattr = nf_nat_port_range_to_nfattr, 84 83 .nfattr_to_range = nf_nat_port_nfattr_to_range, 85 84 #endif
+1 -2
net/ipv4/netfilter/nf_nat_proto_tcp.c
··· 144 144 .manip_pkt = tcp_manip_pkt, 145 145 .in_range = tcp_in_range, 146 146 .unique_tuple = tcp_unique_tuple, 147 - #if defined(CONFIG_IP_NF_CONNTRACK_NETLINK) || \ 148 - defined(CONFIG_IP_NF_CONNTRACK_NETLINK_MODULE) 147 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 149 148 .range_to_nfattr = nf_nat_port_range_to_nfattr, 150 149 .nfattr_to_range = nf_nat_port_nfattr_to_range, 151 150 #endif
+1 -2
net/ipv4/netfilter/nf_nat_proto_udp.c
··· 134 134 .manip_pkt = udp_manip_pkt, 135 135 .in_range = udp_in_range, 136 136 .unique_tuple = udp_unique_tuple, 137 - #if defined(CONFIG_IP_NF_CONNTRACK_NETLINK) || \ 138 - defined(CONFIG_IP_NF_CONNTRACK_NETLINK_MODULE) 137 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 139 138 .range_to_nfattr = nf_nat_port_range_to_nfattr, 140 139 .nfattr_to_range = nf_nat_port_nfattr_to_range, 141 140 #endif
+1
net/ipv6/netfilter.c
··· 15 15 struct dst_entry *dst; 16 16 struct flowi fl = { 17 17 .oif = skb->sk ? skb->sk->sk_bound_dev_if : 0, 18 + .mark = skb->mark, 18 19 .nl_u = 19 20 { .ip6_u = 20 21 { .daddr = iph->daddr,
+2 -4
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
··· 353 353 }; 354 354 #endif 355 355 356 - #if defined(CONFIG_NF_CT_NETLINK) || \ 357 - defined(CONFIG_NF_CT_NETLINK_MODULE) 356 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 358 357 359 358 #include <linux/netfilter/nfnetlink.h> 360 359 #include <linux/netfilter/nfnetlink_conntrack.h> ··· 402 403 .print_tuple = ipv6_print_tuple, 403 404 .print_conntrack = ipv6_print_conntrack, 404 405 .prepare = ipv6_prepare, 405 - #if defined(CONFIG_NF_CT_NETLINK) || \ 406 - defined(CONFIG_NF_CT_NETLINK_MODULE) 406 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 407 407 .tuple_to_nfattr = ipv6_tuple_to_nfattr, 408 408 .nfattr_to_tuple = ipv6_nfattr_to_tuple, 409 409 #endif
+2 -4
net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
··· 244 244 return icmpv6_error_message(skb, dataoff, ctinfo, hooknum); 245 245 } 246 246 247 - #if defined(CONFIG_NF_CT_NETLINK) || \ 248 - defined(CONFIG_NF_CT_NETLINK_MODULE) 247 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 249 248 250 249 #include <linux/netfilter/nfnetlink.h> 251 250 #include <linux/netfilter/nfnetlink_conntrack.h> ··· 326 327 .packet = icmpv6_packet, 327 328 .new = icmpv6_new, 328 329 .error = icmpv6_error, 329 - #if defined(CONFIG_NF_CT_NETLINK) || \ 330 - defined(CONFIG_NF_CT_NETLINK_MODULE) 330 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 331 331 .tuple_to_nfattr = icmpv6_tuple_to_nfattr, 332 332 .nfattr_to_tuple = icmpv6_nfattr_to_tuple, 333 333 #endif
+2 -3
net/netfilter/nf_conntrack_core.c
··· 976 976 } 977 977 EXPORT_SYMBOL_GPL(__nf_ct_refresh_acct); 978 978 979 - #if defined(CONFIG_NF_CT_NETLINK) || \ 980 - defined(CONFIG_NF_CT_NETLINK_MODULE) 979 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 981 980 982 981 #include <linux/netfilter/nfnetlink.h> 983 982 #include <linux/netfilter/nfnetlink_conntrack.h> ··· 1069 1070 list_for_each_entry(h, &unconfirmed, list) { 1070 1071 ct = nf_ct_tuplehash_to_ctrack(h); 1071 1072 if (iter(ct, data)) 1072 - goto found; 1073 + set_bit(IPS_DYING_BIT, &ct->status); 1073 1074 } 1074 1075 write_unlock_bh(&nf_conntrack_lock); 1075 1076 return NULL;
+1 -2
net/netfilter/nf_conntrack_proto_gre.c
··· 281 281 .new = gre_new, 282 282 .destroy = gre_destroy, 283 283 .me = THIS_MODULE, 284 - #if defined(CONFIG_NF_CONNTRACK_NETLINK) || \ 285 - defined(CONFIG_NF_CONNTRACK_NETLINK_MODULE) 284 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 286 285 .tuple_to_nfattr = nf_ct_port_tuple_to_nfattr, 287 286 .nfattr_to_tuple = nf_ct_port_nfattr_to_tuple, 288 287 #endif
+6 -7
net/netfilter/nf_conntrack_proto_tcp.c
··· 769 769 static u8 tcp_valid_flags[(TH_FIN|TH_SYN|TH_RST|TH_PUSH|TH_ACK|TH_URG) + 1] = 770 770 { 771 771 [TH_SYN] = 1, 772 - [TH_SYN|TH_ACK] = 1, 773 772 [TH_SYN|TH_PUSH] = 1, 773 + [TH_SYN|TH_URG] = 1, 774 + [TH_SYN|TH_PUSH|TH_URG] = 1, 775 + [TH_SYN|TH_ACK] = 1, 774 776 [TH_SYN|TH_ACK|TH_PUSH] = 1, 775 777 [TH_RST] = 1, 776 778 [TH_RST|TH_ACK] = 1, ··· 1101 1099 return 1; 1102 1100 } 1103 1101 1104 - #if defined(CONFIG_NF_CT_NETLINK) || \ 1105 - defined(CONFIG_NF_CT_NETLINK_MODULE) 1102 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 1106 1103 1107 1104 #include <linux/netfilter/nfnetlink.h> 1108 1105 #include <linux/netfilter/nfnetlink_conntrack.h> ··· 1379 1378 .packet = tcp_packet, 1380 1379 .new = tcp_new, 1381 1380 .error = tcp_error, 1382 - #if defined(CONFIG_NF_CT_NETLINK) || \ 1383 - defined(CONFIG_NF_CT_NETLINK_MODULE) 1381 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 1384 1382 .to_nfattr = tcp_to_nfattr, 1385 1383 .from_nfattr = nfattr_to_tcp, 1386 1384 .tuple_to_nfattr = nf_ct_port_tuple_to_nfattr, ··· 1408 1408 .packet = tcp_packet, 1409 1409 .new = tcp_new, 1410 1410 .error = tcp_error, 1411 - #if defined(CONFIG_NF_CT_NETLINK) || \ 1412 - defined(CONFIG_NF_CT_NETLINK_MODULE) 1411 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 1413 1412 .to_nfattr = tcp_to_nfattr, 1414 1413 .from_nfattr = nfattr_to_tcp, 1415 1414 .tuple_to_nfattr = nf_ct_port_tuple_to_nfattr,
+2 -4
net/netfilter/nf_conntrack_proto_udp.c
··· 208 208 .packet = udp_packet, 209 209 .new = udp_new, 210 210 .error = udp_error, 211 - #if defined(CONFIG_NF_CT_NETLINK) || \ 212 - defined(CONFIG_NF_CT_NETLINK_MODULE) 211 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 213 212 .tuple_to_nfattr = nf_ct_port_tuple_to_nfattr, 214 213 .nfattr_to_tuple = nf_ct_port_nfattr_to_tuple, 215 214 #endif ··· 235 236 .packet = udp_packet, 236 237 .new = udp_new, 237 238 .error = udp_error, 238 - #if defined(CONFIG_NF_CT_NETLINK) || \ 239 - defined(CONFIG_NF_CT_NETLINK_MODULE) 239 + #if defined(CONFIG_NF_CT_NETLINK) || defined(CONFIG_NF_CT_NETLINK_MODULE) 240 240 .tuple_to_nfattr = nf_ct_port_tuple_to_nfattr, 241 241 .nfattr_to_tuple = nf_ct_port_nfattr_to_tuple, 242 242 #endif
+3 -3
net/unix/af_unix.c
··· 934 934 935 935 sched = !sock_flag(other, SOCK_DEAD) && 936 936 !(other->sk_shutdown & RCV_SHUTDOWN) && 937 - (skb_queue_len(&other->sk_receive_queue) >= 937 + (skb_queue_len(&other->sk_receive_queue) > 938 938 other->sk_max_ack_backlog); 939 939 940 940 unix_state_runlock(other); ··· 1008 1008 if (other->sk_state != TCP_LISTEN) 1009 1009 goto out_unlock; 1010 1010 1011 - if (skb_queue_len(&other->sk_receive_queue) >= 1011 + if (skb_queue_len(&other->sk_receive_queue) > 1012 1012 other->sk_max_ack_backlog) { 1013 1013 err = -EAGAIN; 1014 1014 if (!timeo) ··· 1381 1381 } 1382 1382 1383 1383 if (unix_peer(other) != sk && 1384 - (skb_queue_len(&other->sk_receive_queue) >= 1384 + (skb_queue_len(&other->sk_receive_queue) > 1385 1385 other->sk_max_ack_backlog)) { 1386 1386 if (!timeo) { 1387 1387 err = -EAGAIN;