net-2.6.22 spring cleaning
Subsystems (10)
cover net-2.6.22 spring cleaning
Tis the time of year to clean house.
--
Stephen Hemminger <[email protected]>
PATCH 1/8 udp: ipv4 whitespace cleanup
Fix whitespace around keywords.
--- net/ipv4/udp.c | 95 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 48 insertions(+), 47 deletions(-)
net/ipv4/udp.c +48 -47
@@ -175,7 +175,8 @@ ; } result = best; -for (i =0 ; i < (1 <<16 ) /UDP_HTABLE_SIZE ; i++, result +=UDP_HTABLE_SIZE ) { +for (i =0 ; i < (1 <<16 ) /UDP_HTABLE_SIZE ; + i++, result +=UDP_HTABLE_SIZE ) {if (result > sysctl_local_port_range[1 ]) result = sysctl_local_port_range[0 ] + ((result - sysctl_local_port_range[0]) &
@@ -270,10 +271,10 @@continue ; score+=2 ; } -if (score ==9 ) { +if (score ==9 ) { result = sk;break ; - }else if (score > badness) { + }else if (score > badness) { result = sk; badness = score; }
@@ -765,38 +766,38 @@int udp_ioctl (struct sock *sk,int cmd,unsigned long arg) { -switch (cmd) +switch (cmd) { +case SIOCOUTQ : { -case SIOCOUTQ : - { -int amount =atomic_read (&sk->sk_wmem_alloc); -return put_user (amount, (int __user *)arg); - } +int amount =atomic_read (&sk->sk_wmem_alloc); +return put_user (amount, (int __user *)arg); + } -case SIOCINQ : - { -struct sk_buff *skb; -unsigned long amount; - - amount =0 ; -spin_lock_bh (&sk->sk_receive_queue.lock); - skb =skb_peek (&sk->sk_receive_queue); -if (skb !=NULL ) { -/* -* We will only return the amount -* of this packet since that is all -* that will be read. -*/ - amount = skb->len -sizeof (struct udphdr ); - } -spin_unlock_bh (&sk->sk_receive_queue.lock); -return put_user (amount, (int __user *)arg); +case SIOCINQ : + { +struct sk_buff *skb; +unsigned long amount; + + amount =0 ; +spin_lock_bh (&sk->sk_receive_queue.lock); + skb =skb_peek (&sk->sk_receive_queue); +if (skb !=NULL ) { +/* +* We will only return the amount +* of this packet since that is all +* that will be read. +*/ + amount = skb->len -sizeof (struct udphdr ); } +spin_unlock_bh (&sk->sk_receive_queue.lock); +return put_user (amount, (int __user *)arg); + } -default : -return -ENOIOCTLCMD ; +default : +return -ENOIOCTLCMD ; } -return (0 ); + +return 0 ; }/*
@@ -958,7 +959,7 @@/* Check if this is a keepalive packet. If so, eat it. */ if (len ==1 && udpdata[0 ] ==0xff ) {return 0 ; - }else if (len >sizeof (struct ip_esp_hdr ) && udpdata32[0 ] !=0 ) { + }else if (len >sizeof (struct ip_esp_hdr ) && udpdata32[0 ] !=0 ) {/* ESP Packet without Non-ESP header */ len =sizeof (struct udphdr ); }else
@@ -1141,10 +1142,10 @@ sknext =udp_v4_mcast_next (sk_next (sk), uh->dest, daddr, uh->source, saddr, dif); -if (sknext) +if (sknext) skb1 =skb_clone (skb,GFP_ATOMIC ); -if (skb1) { +if (skb1) {int ret =udp_queue_rcv_skb (sk, skb1);if (ret >0 )/* we should probably re-process instead
@@ -1152,7 +1153,7 @@kfree_skb (skb1); } sk = sknext; - }while (sknext); + }while (sknext); }else kfree_skb (skb);read_unlock (&udp_hash_lock);
@@ -1230,7 +1231,7 @@if (udp4_csum_init (skb, uh, proto)) goto csum_error; -if (rt->rt_flags & (RTCF_BROADCAST |RTCF_MULTICAST )) +if (rt->rt_flags & (RTCF_BROADCAST |RTCF_MULTICAST ))return __udp4_lib_mcast_deliver (skb, uh, saddr, daddr, udptable); sk = __udp4_lib_lookup(saddr, uh->source, daddr, uh->dest,
@@ -1264,7 +1265,7 @@* don't wanna listen. Ignore it. */ kfree_skb (skb); -return (0 ); +return 0 ; short_packet: LIMIT_NETDEBUG(KERN_DEBUG "UDP%s: short packet: From %u.%u.%u.%u:%u %d/%d to %u.%u.%u.%u:%u\n",
@@ -1292,7 +1293,7 @@ drop:UDP_INC_STATS_BH (UDP_MIB_INERRORS , proto ==IPPROTO_UDPLITE );kfree_skb (skb); -return (0 ); +return 0 ; } __inline__int udp_rcv (struct sk_buff *skb)
@@ -1319,13 +1320,13 @@int val;int err =0 ; -if (optlen<sizeof (int )) +if (optlen<sizeof (int ))return -EINVAL ;if (get_user (val, (int __user *)optval))return -EFAULT ; -switch (optname) { +switch (optname) {case UDP_CORK :if (val !=0 ) { up->corkflag =1 ;
@@ -1379,7 +1380,7 @@default : err = -ENOPROTOOPT ;break ; - }; + }return err; }
@@ -1410,15 +1411,15 @@struct udp_sock *up =udp_sk (sk);int val, len; -if (get_user (len,optlen)) +if (get_user (len,optlen))return -EFAULT ; len = min_t(unsigned int, len, sizeof(int)); -if (len <0 ) +if (len <0 )return -EINVAL ; -switch (optname) { +switch (optname) {case UDP_CORK : val = up->corkflag;break ;
@@ -1439,11 +1440,11 @@default :return -ENOPROTOOPT ; - }; + } -if (put_user (len, optlen)) +if (put_user (len, optlen))return -EFAULT ; -if (copy_to_user (optval, &val,len)) +if (copy_to_user (optval, &val,len))return -EFAULT ;return 0 ; }
@@ -1575,7 +1576,7 @@struct sock *sk =udp_get_first (seq);if (sk) -while (pos && (sk =udp_get_next (seq, sk)) !=NULL ) +while (pos && (sk =udp_get_next (seq, sk)) !=NULL ) --pos;return pos ?NULL : sk; }
--
Stephen Hemminger <[email protected]>
Re: [PATCH 1/8] udp: ipv4 whitespace cleanup
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:15 -0800
Quoted 3 lines
Fix whitespace around keywords.
Signed-off-by Stephen Hemminger <[email protected]>
Applied, thanks.
about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
Hello David and Stephen
I see git commit 8e2101a9faab43dcf307d46784a1ede7997fe729 and its potential problems :
Here on my x86_64 machine :
ffffffff806e7520 d rtnl_mutexffffffff806e7538 D net_msg_costffffffff806e753c D net_msg_burstffffffff806e7540 D net_msg_warnffffffff806e7560 d lweventlist_lock
So net_msg_{cost|burst|warn} are on two 'heavy' cachelines.
I gently ask that any new sysctl is '__read_mostly' tagged.
After this patch applied, this looks much better :
ffffffff80725d20 d ifla_policyffffffff80725d68 D net_msg_costffffffff80725d6c D net_msg_burstffffffff80725d70 D net_msg_warnffffffff80725d78 d flow_cachepffffffff80725d80 d nla_attr_minlenffffffff80725da0 d ctrl_policy
Thank you
Eric
[PATCH] NET : New sysctls should use __read_mostly tags
net_msg_warn should be placed in the read_mostly section, to avoid performance problems on SMP
net/core/utils.c +3 -3
@@ -30,9 +30,9 @@ #include <asm/byteorder.h>#include <asm/system.h> #include <asm/uaccess.h> -int net_msg_cost =5 *HZ ; -int net_msg_burst =10 ; -int net_msg_warn =1 ; +int net_msg_cost__read_mostly =5 *HZ ; +int net_msg_burst__read_mostly =10 ; +int net_msg_warn__read_mostly =1 ;EXPORT_SYMBOL (net_msg_warn);/*
Re: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
From: Eric Dumazet <[email protected]>
Date: Fri, 09 Mar 2007 07:34:15 +0100
Quoted 1 line
I gently ask that any new sysctl is '
__read_mostly' tagged.
People are lazy because you are so gifted at finding this stuff :-)
Quoted 6 lines
[PATCH] NET : New sysctls should use
__read_mostlytags
net_msg_warnshould be placed in theread_mostlysection, to avoid performance problems on SMPSigned-off-by Eric Dumazet <[email protected]>
Applied, thanks a lot Eric.
Re: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
Quoted 7 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Fri, 09 Mar 2007 07:34:15 +0100Quoted 1 line
I gently ask that any new sysctl is '
__read_mostly' tagged.People are lazy because you are so gifted at finding this stuff :-)
I seeeeeee ;)
BTW I missed the patch on netdev, is it just me or netdev have problems ?
David Miller
maintainerRe: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
From: Eric Dumazet <[email protected]>
Date: Fri, 09 Mar 2007 07:59:50 +0100
Quoted 4 lines
Quoted 3 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Fri, 09 Mar 2007 07:34:15 +0100
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
I gently ask that any new sysctl is '
__read_mostly' tagged.People are lazy because you are so gifted at finding this stuff :-)
I seeeeeee ;)
BTW I missed the patch on netdev, is it just me or netdev have problems ?
He definitely posted it, perhaps netdev is running a little slow or wonky today...
Re: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
Quoted 6 lines · David Miller
From: Eric Dumazet <[email protected]>
Quoted 2 lines
BTW I missed the patch on netdev, is it just me or netdev have problems ?
He definitely posted it, perhaps netdev is running a little slow or wonky today...
I can confirm netdev didnt handled it, I cannot find it on archives.
http://marc.theaimsgroup.com/?l=linux-netdev
Thats a problem that needs investigation, dont you think ?
David Miller
maintainerRe: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
From: Eric Dumazet <[email protected]>
Date: Fri, 09 Mar 2007 08:51:45 +0100
Quoted 5 lines
Quoted 4 lines · David Miller
From: Eric Dumazet <[email protected]>
Quoted 2 lines
BTW I missed the patch on netdev, is it just me or netdev have problems ?
Quoted 8 lines
Quoted 2 lines
He definitely posted it, perhaps netdev is running a little slow or wonky today...
I can confirm netdev didnt handled it, I cannot find it on archives.
http://marc.theaimsgroup.com/?l=linux-netdev
Thats a problem that needs investigation, dont you think ?
I checked my email archives and he sent it to me privately, not to the list.
I think Stephen knows what to do next time :-)
Re: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
Quoted 10 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Fri, 09 Mar 2007 08:51:45 +0100Quoted 7 lines
Quoted 4 lines · David Miller
From: Eric Dumazet <[email protected]>
Quoted 1 line
BTW I missed the patch on netdev, is it just me or netdev have problems ?
He definitely posted it, perhaps netdev is running a little slow or wonky today...
I can confirm netdev didnt handled it, I cannot find it on archives.
Quoted 8 lines
Quoted 3 lines
http://marc.theaimsgroup.com/?l=linux-netdev
Thats a problem that needs investigation, dont you think ?
I checked my email archives and he sent it to me privately, not to the list.
I think Stephen knows what to do next time :-)
OK, thanks for this clarification David.
Closed case/ticket :)
Re: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
In reply to Eric DumazetQuoted 4 lines · Eric Dumazet
Quoted 3 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Fri, 09 Mar 2007 07:34:15 +0100
Quoted 9 lines
Quoted 4 lines
Quoted 1 line
I gently ask that any new sysctl is '
__read_mostly' tagged.People are lazy because you are so gifted at finding this stuff :-)
I seeeeeee ;)
BTW I missed the patch on netdev, is it just me or netdev have problems ?
My bad, forgot the CC in the patch cleanout yesterday
Re: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
In reply to Eric DumazetQuoted 5 lines · Eric Dumazet
Hello David and Stephen
I see git commit
8e2101a9faab43dcf307d46784a1ede7997fe729and its potential problems :
Quoted 8 lines
Here on my
x86_64machine :
ffffffff806e7520drtnl_mutexffffffff806e7538Dnet_msg_costffffffff806e753cDnet_msg_burstffffffff806e7540Dnet_msg_warnffffffff806e7560dlweventlist_lock
It probably is worth making a hot/cold map somehow. Ideally some automated version of something like oprofile uses (memprofile?)
Quoted 3 lines
So net_msg_{cost|burst|warn} are on two 'heavy' cachelines.
I gently ask that any new sysctl is '
__read_mostly' tagged.
Why not all the old one's as well?
Re: about : [NET]: Replace CONFIG_NET_DEBUG with sysctl.
In reply to Eric DumazetThis was what the patch was (complete with spulling error)...
Covert network warning messages from a compile time to runtime choice. Removes kernel config option and replaces it with new /proc/sys/net/core/warnings.
--- Documentation/filesystems/proc.txt | 9 +++++++++ include/linux/sysctl.h | 1 + include/net/sock.h | 12 +++++------- net/Kconfig | 7 ------- net/core/sysctl_net_core.c | 8 ++++++++ net/core/utils.c | 2 ++ 6 files changed, 25 insertions(+), 14 deletions(-)
Documentation/filesystems/proc.txt +9 -0
@@ -1421,6 +1421,15 @@ be dropped. The default settings limit warning messages to one every five seconds. +warnings +-------- + +This controls console messages from the networking stack that can occur because +of problems on the network like duplicate address or bad checksums. Normally, +this should be enabled, but if the problem persists the messages can be +disabled. + + netdev_max_backlog ------------------
include/linux/sysctl.h +1 -0
@@ -290,6 +290,7 @@NET_CORE_BUDGET =19 ,NET_CORE_AEVENT_ETIME =20 ,NET_CORE_AEVENT_RSEQTH =21 , + NET_CORE_WARNINGS=22, };/* /proc/sys/net/ethernet */
include/net/sock.h +5 -7
@@ -1333,14 +1333,12 @@/* * Enable debug/info messages */ +extern int net_msg_warn; +#define NETDEBUG(fmt, args...) \ + do { if (net_msg_warn) printk(fmt,##args); } while (0) -#ifdef CONFIG_NETDEBUG -#define NETDEBUG(fmt, args...) printk(fmt,##args) -#define LIMIT_NETDEBUG(fmt, args...) do { if (net_ratelimit()) printk(fmt,##args); } while(0) -#else -#define NETDEBUG(fmt, args...) do { } while (0) -#define LIMIT_NETDEBUG(fmt, args...) do { } while(0) -#endif +#define LIMIT_NETDEBUG(fmt, args...) \ + do { if (net_msg_warn && net_ratelimit()) printk(fmt,##args); } while(0)/* * Macros for sleeping on a socket. Use them like this:
net/Kconfig +0 -7
@@ -27,13 +27,6 @@ menu "Networking options" -config NETDEBUG - bool "Network packet debugging" - help - You can say Y here if you want to get additional messages useful in - debugging bad packets, but can overwhelm logs under denial of service - attacks. - source "net/packet/Kconfig" source "net/unix/Kconfig" source "net/xfrm/Kconfig"
net/core/sysctl_net_core.c +8 -0
@@ -136,6 +136,14 @@ .mode = 0644, .proc_handler = &proc_dointvec }, + { + .ctl_name = NET_CORE_WARNINGS, + .procname = "warnings", + .data = &net_msg_warn, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec + }, { .ctl_name = 0 } };
net/core/utils.c +2 -0
@@ -32,6 +32,8 @@int net_msg_cost =5 *HZ ;int net_msg_burst =10 ; +int net_msg_warn =1 ; +EXPORT_SYMBOL (net_msg_warn);/* * All net warning printk()s should be guarded by this function.
PATCH 2/8 udp: ipv6 style cleanup
In reply to Stephen HemmingerFix whitespace around keywords. Eliminate unnecessary ()'s on return statements.
--- net/ipv6/udp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
net/ipv6/udp.c +6 -6
@@ -93,10 +93,10 @@continue ; score++; } -if (score ==4 ) { +if (score ==4 ) { result = sk;break ; - }else if (score > badness) { + }else if (score > badness) { result = sk; badness = score; }
@@ -329,7 +329,7 @@if (!ipv6_addr_equal (&np->rcv_saddr, loc_addr))continue ; } -if (!inet6_mc_check (s, loc_addr, rmt_addr)) +if (!inet6_mc_check (s, loc_addr, rmt_addr))continue ;return s; }
@@ -473,14 +473,14 @@icmpv6_send (skb,ICMPV6_DEST_UNREACH ,ICMPV6_PORT_UNREACH ,0 , dev);kfree_skb (skb); -return (0 ); +return 0 ; }/* deliver */ udpv6_queue_rcv_skb (sk, skb);sock_put (sk); -return (0 ); +return 0 ; short_packet: LIMIT_NETDEBUG(KERN_DEBUG "UDP%sv6: short packet: %d/%u\n",
@@ -490,7 +490,7 @@ discard:UDP6_INC_STATS_BH (UDP_MIB_INERRORS , proto ==IPPROTO_UDPLITE );kfree_skb (skb); -return (0 ); +return 0 ; }static __inline__int udpv6_rcv (struct sk_buff **pskb)
--
Stephen Hemminger <[email protected]>
Re: [PATCH 2/8] udp: ipv6 style cleanup
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:16 -0800
Quoted 4 lines
Fix whitespace around keywords. Eliminate unnecessary ()'s on return statements.
Signed-off-by Stephen Hemminger <[email protected]>
Applied.
PATCH 3/8 network core: whitespace cleanup
In reply to Stephen HemmingerFix whitespace around keywords. Fix indentation especially of switch statements.
--- net/compat.c | 30 +- net/core/ethtool.c | 4 net/core/net-sysfs.c | 4 net/core/pktgen.c | 16 - net/core/sock.c | 710 +++++++++++++++++++++++++-------------------------- net/core/wireless.c | 297 ++++++++++----------- net/socket.c | 2 7 files changed, 529 insertions(+), 534 deletions(-)
net/core/sock.c +353 -357
@@ -361,8 +361,8 @@ }#endif -if (optlen<sizeof (int )) -return (-EINVAL ); +if (optlen <sizeof (int )) +return -EINVAL ;if (get_user (val, (int __user *)optval))return -EFAULT ;
@@ -371,265 +371,263 @@lock_sock (sk); -switch (optname) - { -case SO_DEBUG : -if (val && !capable (CAP_NET_ADMIN )) - { - ret = -EACCES ; - } -else if (valbool) -sock_set_flag (sk,SOCK_DBG ); -else -sock_reset_flag (sk,SOCK_DBG ); -break ; -case SO_REUSEADDR : - sk->sk_reuse = valbool; -break ; -case SO_TYPE : -case SO_ERROR : - ret = -ENOPROTOOPT ; -break ; -case SO_DONTROUTE : -if (valbool) -sock_set_flag (sk,SOCK_LOCALROUTE ); -else -sock_reset_flag (sk,SOCK_LOCALROUTE ); -break ; -case SO_BROADCAST : -sock_valbool_flag (sk,SOCK_BROADCAST , valbool); -break ; -case SO_SNDBUF : -/* Don't error on this BSD doesn't and if you think -about it this is right. Otherwise apps have to -play 'guess the biggest size' games. RCVBUF/SNDBUF -are treated in BSD as hints */ +switch (optname) { +case SO_DEBUG : +if (val && !capable (CAP_NET_ADMIN )) { + ret = -EACCES ; + } +else if (valbool) +sock_set_flag (sk,SOCK_DBG ); +else +sock_reset_flag (sk,SOCK_DBG ); +break ; +case SO_REUSEADDR : + sk->sk_reuse = valbool; +break ; +case SO_TYPE : +case SO_ERROR : + ret = -ENOPROTOOPT ; +break ; +case SO_DONTROUTE : +if (valbool) +sock_set_flag (sk,SOCK_LOCALROUTE ); +else +sock_reset_flag (sk,SOCK_LOCALROUTE ); +break ; +case SO_BROADCAST : +sock_valbool_flag (sk,SOCK_BROADCAST , valbool); +break ; +case SO_SNDBUF : +/* Don't error on this BSD doesn't and if you think +about it this is right. Otherwise apps have to +play 'guess the biggest size' games. RCVBUF/SNDBUF +are treated in BSD as hints */ -if (val > sysctl_wmem_max) - val = sysctl_wmem_max; +if (val > sysctl_wmem_max) + val = sysctl_wmem_max; set_sndbuf: - sk->sk_userlocks |=SOCK_SNDBUF_LOCK ; -if ((val *2 ) <SOCK_MIN_SNDBUF ) - sk->sk_sndbuf =SOCK_MIN_SNDBUF ; -else - sk->sk_sndbuf = val *2 ; + sk->sk_userlocks |=SOCK_SNDBUF_LOCK ; +if ((val *2 ) <SOCK_MIN_SNDBUF ) + sk->sk_sndbuf =SOCK_MIN_SNDBUF ; +else + sk->sk_sndbuf = val *2 ; -/* -* Wake up sending tasks if we -* upped the value. -*/ - sk->sk_write_space (sk); -break ; +/* +* Wake up sending tasks if we +* upped the value. +*/ + sk->sk_write_space (sk); +break ; -case SO_SNDBUFFORCE : -if (!capable (CAP_NET_ADMIN )) { - ret = -EPERM ; -break ; - } - goto set_sndbuf; +case SO_SNDBUFFORCE : +if (!capable (CAP_NET_ADMIN )) { + ret = -EPERM ; +break ; + } + goto set_sndbuf; -case SO_RCVBUF : -/* Don't error on this BSD doesn't and if you think -about it this is right. Otherwise apps have to -play 'guess the biggest size' games. RCVBUF/SNDBUF -are treated in BSD as hints */ +case SO_RCVBUF : +/* Don't error on this BSD doesn't and if you think +about it this is right. Otherwise apps have to +play 'guess the biggest size' games. RCVBUF/SNDBUF +are treated in BSD as hints */ -if (val > sysctl_rmem_max) - val = sysctl_rmem_max; +if (val > sysctl_rmem_max) + val = sysctl_rmem_max; set_rcvbuf: - sk->sk_userlocks |=SOCK_RCVBUF_LOCK ; -/* -* We double it on the way in to account for -* "struct sk_buff" etc. overhead. Applications -* assume that the SO_RCVBUF setting they make will -* allow that much actual data to be received on that -* socket. -* -* Applications are unaware that "struct sk_buff" and -* other overheads allocate from the receive buffer -* during socket buffer allocation. -* -* And after considering the possible alternatives, -* returning the value we actually used in getsockopt -* is the most desirable behavior. -*/ -if ((val *2 ) <SOCK_MIN_RCVBUF ) - sk->sk_rcvbuf =SOCK_MIN_RCVBUF ; -else - sk->sk_rcvbuf = val *2 ; + sk->sk_userlocks |=SOCK_RCVBUF_LOCK ; +/* +* We double it on the way in to account for +* "struct sk_buff" etc. overhead. Applications +* assume that the SO_RCVBUF setting they make will +* allow that much actual data to be received on that +* socket. +* +* Applications are unaware that "struct sk_buff" and +* other overheads allocate from the receive buffer +* during socket buffer allocation. +* +* And after considering the possible alternatives, +* returning the value we actually used in getsockopt +* is the most desirable behavior. +*/ +if ((val *2 ) <SOCK_MIN_RCVBUF ) + sk->sk_rcvbuf =SOCK_MIN_RCVBUF ; +else + sk->sk_rcvbuf = val *2 ; +break ; + +case SO_RCVBUFFORCE : +if (!capable (CAP_NET_ADMIN )) { + ret = -EPERM ;break ; + } + goto set_rcvbuf; -case SO_RCVBUFFORCE : -if (!capable (CAP_NET_ADMIN )) { - ret = -EPERM ; -break ; - } - goto set_rcvbuf; - -case SO_KEEPALIVE : +case SO_KEEPALIVE :#ifdef CONFIG_INET -if (sk->sk_protocol ==IPPROTO_TCP ) -tcp_set_keepalive (sk, valbool); +if (sk->sk_protocol ==IPPROTO_TCP ) +tcp_set_keepalive (sk, valbool);#endif -sock_valbool_flag (sk,SOCK_KEEPOPEN , valbool); -break ; - -case SO_OOBINLINE : -sock_valbool_flag (sk,SOCK_URGINLINE , valbool); -break ; +sock_valbool_flag (sk,SOCK_KEEPOPEN , valbool); +break ; -case SO_NO_CHECK : - sk->sk_no_check = valbool; +case SO_OOBINLINE : +sock_valbool_flag (sk,SOCK_URGINLINE , valbool); +break ; + +case SO_NO_CHECK : + sk->sk_no_check = valbool; +break ; + +case SO_PRIORITY : +if ((val >=0 && val <=6 ) ||capable (CAP_NET_ADMIN )) + sk->sk_priority = val; +else + ret = -EPERM ; +break ; + +case SO_LINGER : +if (optlen <sizeof (ling)) { + ret = -EINVAL ;/* 1003.1g */ break ; - -case SO_PRIORITY : -if ((val >=0 && val <=6 ) ||capable (CAP_NET_ADMIN )) - sk->sk_priority = val; -else - ret = -EPERM ; + } +if (copy_from_user (&ling,optval,sizeof (ling))) { + ret = -EFAULT ;break ; - -case SO_LINGER : -if (optlen<sizeof (ling)) { - ret = -EINVAL ;/* 1003.1g */ -break ; - } -if (copy_from_user (&ling,optval,sizeof (ling))) { - ret = -EFAULT ; -break ; - } -if (!ling.l_onoff) -sock_reset_flag (sk,SOCK_LINGER ); -else { + } +if (!ling.l_onoff) +sock_reset_flag (sk,SOCK_LINGER ); +else {#if (BITS_PER_LONG ==32 ) -if ((unsigned int )ling.l_linger >=MAX_SCHEDULE_TIMEOUT /HZ ) - sk->sk_lingertime =MAX_SCHEDULE_TIMEOUT ; - else -#endif - sk->sk_lingertime = (unsigned int )ling.l_linger *HZ ; -sock_set_flag (sk,SOCK_LINGER ); - } -break ; - -case SO_BSDCOMPAT : -sock_warn_obsolete_bsdism ("setsockopt" ); -break ; - -case SO_PASSCRED : -if (valbool) -set_bit (SOCK_PASSCRED , &sock->flags); +if ((unsigned int )ling.l_linger >=MAX_SCHEDULE_TIMEOUT /HZ ) + sk->sk_lingertime =MAX_SCHEDULE_TIMEOUT ; else -clear_bit (SOCK_PASSCRED , &sock->flags); -break ; +#endif + sk->sk_lingertime = (unsigned int )ling.l_linger *HZ ; +sock_set_flag (sk,SOCK_LINGER ); + } +break ; -case SO_TIMESTAMP : -if (valbool) { -sock_set_flag (sk,SOCK_RCVTSTAMP ); -sock_enable_timestamp (sk); - }else -sock_reset_flag (sk,SOCK_RCVTSTAMP ); -break ; +case SO_BSDCOMPAT : +sock_warn_obsolete_bsdism ("setsockopt" ); +break ; + +case SO_PASSCRED : +if (valbool) +set_bit (SOCK_PASSCRED , &sock->flags); +else +clear_bit (SOCK_PASSCRED , &sock->flags); +break ; + +case SO_TIMESTAMP : +if (valbool) { +sock_set_flag (sk,SOCK_RCVTSTAMP ); +sock_enable_timestamp (sk); + }else +sock_reset_flag (sk,SOCK_RCVTSTAMP ); +break ; + +case SO_RCVLOWAT : +if (val <0 ) + val =INT_MAX ; + sk->sk_rcvlowat = val ? :1 ; +break ; + +case SO_RCVTIMEO : + ret =sock_set_timeout (&sk->sk_rcvtimeo, optval, optlen); +break ; + +case SO_SNDTIMEO : + ret =sock_set_timeout (&sk->sk_sndtimeo, optval, optlen); +break ; -case SO_RCVLOWAT : -if (val <0 ) - val =INT_MAX ; - sk->sk_rcvlowat = val ? :1 ; -break ; +#ifdef CONFIG_NETDEVICES +case SO_BINDTODEVICE : + { +char devname[IFNAMSIZ ]; -case SO_RCVTIMEO : - ret =sock_set_timeout (&sk->sk_rcvtimeo, optval, optlen); +/* Sorry... */ +if (!capable (CAP_NET_RAW )) { + ret = -EPERM ;break ; + } -case SO_SNDTIMEO : - ret =sock_set_timeout (&sk->sk_sndtimeo, optval, optlen); -break ; +/* Bind this socket to a particular device like "eth0", +* as specified in the passed interface name. If the +* name is "" or the option length is zero the socket +* is not bound. +*/ -#ifdef CONFIG_NETDEVICES -case SO_BINDTODEVICE : - { -char devname[IFNAMSIZ ]; - -/* Sorry... */ -if (!capable (CAP_NET_RAW )) { - ret = -EPERM ; +if (!valbool) { + sk->sk_bound_dev_if =0 ; + }else { +if (optlen >IFNAMSIZ -1 ) + optlen =IFNAMSIZ -1 ; +memset (devname,0 ,sizeof (devname)); +if (copy_from_user (devname, optval, optlen)) { + ret = -EFAULT ;break ; } -/* Bind this socket to a particular device like "eth0", -* as specified in the passed interface name. If the -* name is "" or the option length is zero the socket -* is not bound. -*/ +/* Remove any cached route for this socket. */ +sk_dst_reset (sk); -if (!valbool) { +if (devname[0 ] =='\0' ) { sk->sk_bound_dev_if =0 ; }else { -if (optlen >IFNAMSIZ -1 ) - optlen =IFNAMSIZ -1 ; -memset (devname,0 ,sizeof (devname)); -if (copy_from_user (devname, optval, optlen)) { - ret = -EFAULT ; +struct net_device *dev =dev_get_by_name (devname); +if (!dev) { + ret = -ENODEV ;break ; } - -/* Remove any cached route for this socket. */ -sk_dst_reset (sk); - -if (devname[0 ] =='\0' ) { - sk->sk_bound_dev_if =0 ; - }else { -struct net_device *dev =dev_get_by_name (devname); -if (!dev) { - ret = -ENODEV ; -break ; - } - sk->sk_bound_dev_if = dev->ifindex; -dev_put (dev); - } + sk->sk_bound_dev_if = dev->ifindex; +dev_put (dev); } -break ; } +break ; + }#endif -case SO_ATTACH_FILTER : - ret = -EINVAL ; -if (optlen ==sizeof (struct sock_fprog )) { -struct sock_fprog fprog; +case SO_ATTACH_FILTER : + ret = -EINVAL ; +if (optlen ==sizeof (struct sock_fprog )) { +struct sock_fprog fprog; - ret = -EFAULT ; -if (copy_from_user (&fprog, optval,sizeof (fprog))) -break ; + ret = -EFAULT ; +if (copy_from_user (&fprog, optval,sizeof (fprog))) +break ; - ret =sk_attach_filter (&fprog, sk); - } -break ; + ret =sk_attach_filter (&fprog, sk); + } +break ; -case SO_DETACH_FILTER : -rcu_read_lock_bh (); - filter =rcu_dereference (sk->sk_filter); -if (filter) { -rcu_assign_pointer (sk->sk_filter,NULL ); -sk_filter_release (sk, filter); -rcu_read_unlock_bh (); -break ; - } +case SO_DETACH_FILTER : +rcu_read_lock_bh (); + filter =rcu_dereference (sk->sk_filter); +if (filter) { +rcu_assign_pointer (sk->sk_filter,NULL ); +sk_filter_release (sk, filter);rcu_read_unlock_bh (); - ret = -ENONET ; -break ; - -case SO_PASSSEC : -if (valbool) -set_bit (SOCK_PASSSEC , &sock->flags); -else -clear_bit (SOCK_PASSSEC , &sock->flags);break ; + } +rcu_read_unlock_bh (); + ret = -ENONET ; +break ; + +case SO_PASSSEC : +if (valbool) +set_bit (SOCK_PASSSEC , &sock->flags); +else +clear_bit (SOCK_PASSSEC , &sock->flags); +break ;/* We implement the SO_SNDLOWAT etc to not be settable (1003.1g 5.3) */ -default : - ret = -ENOPROTOOPT ; -break ; +default : + ret = -ENOPROTOOPT ; +break ; }release_sock (sk);return ret;
@@ -641,8 +639,7 @@ {struct sock *sk = sock->sk; -union - { +union {int val;struct linger ling;struct timeval tm;
@@ -651,148 +648,148 @@unsigned int lv =sizeof (int );int len; -if (get_user (len,optlen)) +if (get_user (len, optlen))return -EFAULT ; -if (len <0 ) +if (len <0 )return -EINVAL ; -switch (optname) - { -case SO_DEBUG : - v.val =sock_flag (sk,SOCK_DBG ); -break ; - -case SO_DONTROUTE : - v.val =sock_flag (sk,SOCK_LOCALROUTE ); -break ; - -case SO_BROADCAST : - v.val = !!sock_flag (sk,SOCK_BROADCAST ); -break ; - -case SO_SNDBUF : - v.val = sk->sk_sndbuf; -break ; - -case SO_RCVBUF : - v.val = sk->sk_rcvbuf; -break ; - -case SO_REUSEADDR : - v.val = sk->sk_reuse; -break ; - -case SO_KEEPALIVE : - v.val = !!sock_flag (sk,SOCK_KEEPOPEN ); -break ; - -case SO_TYPE : - v.val = sk->sk_type; -break ; - -case SO_ERROR : - v.val = -sock_error (sk); -if (v.val==0 ) - v.val =xchg (&sk->sk_err_soft,0 ); -break ; - -case SO_OOBINLINE : - v.val = !!sock_flag (sk,SOCK_URGINLINE ); -break ; - -case SO_NO_CHECK : - v.val = sk->sk_no_check; -break ; - -case SO_PRIORITY : - v.val = sk->sk_priority; -break ; - -case SO_LINGER : - lv =sizeof (v.ling); - v.ling.l_onoff = !!sock_flag (sk,SOCK_LINGER ); - v.ling.l_linger = sk->sk_lingertime /HZ ; -break ; - -case SO_BSDCOMPAT : -sock_warn_obsolete_bsdism ("getsockopt" ); -break ; - -case SO_TIMESTAMP : - v.val =sock_flag (sk,SOCK_RCVTSTAMP ); -break ; - -case SO_RCVTIMEO : - lv=sizeof (struct timeval ); -if (sk->sk_rcvtimeo ==MAX_SCHEDULE_TIMEOUT ) { - v.tm.tv_sec =0 ; - v.tm.tv_usec =0 ; - }else { - v.tm.tv_sec = sk->sk_rcvtimeo /HZ ; - v.tm.tv_usec = ((sk->sk_rcvtimeo %HZ ) *1000000 ) /HZ ; - } -break ; - -case SO_SNDTIMEO : - lv=sizeof (struct timeval ); -if (sk->sk_sndtimeo ==MAX_SCHEDULE_TIMEOUT ) { - v.tm.tv_sec =0 ; - v.tm.tv_usec =0 ; - }else { - v.tm.tv_sec = sk->sk_sndtimeo /HZ ; - v.tm.tv_usec = ((sk->sk_sndtimeo %HZ ) *1000000 ) /HZ ; - } -break ; - -case SO_RCVLOWAT : - v.val = sk->sk_rcvlowat; -break ; +switch (optname) { +case SO_DEBUG : + v.val =sock_flag (sk,SOCK_DBG ); +break ; + +case SO_DONTROUTE : + v.val =sock_flag (sk,SOCK_LOCALROUTE ); +break ; + +case SO_BROADCAST : + v.val = !!sock_flag (sk,SOCK_BROADCAST ); +break ; + +case SO_SNDBUF : + v.val = sk->sk_sndbuf; +break ; + +case SO_RCVBUF : + v.val = sk->sk_rcvbuf; +break ; + +case SO_REUSEADDR : + v.val = sk->sk_reuse; +break ; + +case SO_KEEPALIVE : + v.val = !!sock_flag (sk,SOCK_KEEPOPEN ); +break ; + +case SO_TYPE : + v.val = sk->sk_type; +break ; + +case SO_ERROR : + v.val = -sock_error (sk); +if (v.val==0 ) + v.val =xchg (&sk->sk_err_soft,0 ); +break ; + +case SO_OOBINLINE : + v.val = !!sock_flag (sk,SOCK_URGINLINE ); +break ; + +case SO_NO_CHECK : + v.val = sk->sk_no_check; +break ; + +case SO_PRIORITY : + v.val = sk->sk_priority; +break ; + +case SO_LINGER : + lv =sizeof (v.ling); + v.ling.l_onoff = !!sock_flag (sk,SOCK_LINGER ); + v.ling.l_linger = sk->sk_lingertime /HZ ; +break ; + +case SO_BSDCOMPAT : +sock_warn_obsolete_bsdism ("getsockopt" ); +break ; + +case SO_TIMESTAMP : + v.val =sock_flag (sk,SOCK_RCVTSTAMP ); +break ; + +case SO_RCVTIMEO : + lv=sizeof (struct timeval ); +if (sk->sk_rcvtimeo ==MAX_SCHEDULE_TIMEOUT ) { + v.tm.tv_sec =0 ; + v.tm.tv_usec =0 ; + }else { + v.tm.tv_sec = sk->sk_rcvtimeo /HZ ; + v.tm.tv_usec = ((sk->sk_rcvtimeo %HZ ) *1000000 ) /HZ ; + } +break ; -case SO_SNDLOWAT : - v.val=1 ; -break ; +case SO_SNDTIMEO : + lv=sizeof (struct timeval ); +if (sk->sk_sndtimeo ==MAX_SCHEDULE_TIMEOUT ) { + v.tm.tv_sec =0 ; + v.tm.tv_usec =0 ; + }else { + v.tm.tv_sec = sk->sk_sndtimeo /HZ ; + v.tm.tv_usec = ((sk->sk_sndtimeo %HZ ) *1000000 ) /HZ ; + } +break ; -case SO_PASSCRED : - v.val =test_bit (SOCK_PASSCRED , &sock->flags) ?1 :0 ; -break ; +case SO_RCVLOWAT : + v.val = sk->sk_rcvlowat; +break ; + +case SO_SNDLOWAT : + v.val=1 ; +break ; + +case SO_PASSCRED : + v.val =test_bit (SOCK_PASSCRED , &sock->flags) ?1 :0 ; +break ; + +case SO_PEERCRED : +if (len >sizeof (sk->sk_peercred)) + len =sizeof (sk->sk_peercred); +if (copy_to_user (optval, &sk->sk_peercred, len)) +return -EFAULT ; + goto lenout; -case SO_PEERCRED : -if (len >sizeof (sk->sk_peercred)) - len =sizeof (sk->sk_peercred); -if (copy_to_user (optval, &sk->sk_peercred, len)) -return -EFAULT ; - goto lenout; - -case SO_PEERNAME : - { -char address[128 ]; - -if (sock->ops->getname (sock, (struct sockaddr *)address, &lv,2 )) -return -ENOTCONN ; -if (lv < len) -return -EINVAL ; -if (copy_to_user (optval, address, len)) -return -EFAULT ; - goto lenout; - } +case SO_PEERNAME : + { +char address[128 ]; -/* Dubious BSD thing... Probably nobody even uses it, but -* the UNIX standard wants it for whatever reason... -DaveM -*/ -case SO_ACCEPTCONN : - v.val = sk->sk_state ==TCP_LISTEN ; -break ; +if (sock->ops->getname (sock, (struct sockaddr *)address, &lv,2 )) +return -ENOTCONN ; +if (lv < len) +return -EINVAL ; +if (copy_to_user (optval, address, len)) +return -EFAULT ; + goto lenout; + } -case SO_PASSSEC : - v.val =test_bit (SOCK_PASSSEC , &sock->flags) ?1 :0 ; -break ; +/* Dubious BSD thing... Probably nobody even uses it, but +* the UNIX standard wants it for whatever reason... -DaveM +*/ +case SO_ACCEPTCONN : + v.val = sk->sk_state ==TCP_LISTEN ; +break ; + +case SO_PASSSEC : + v.val =test_bit (SOCK_PASSSEC , &sock->flags) ?1 :0 ; +break ; -case SO_PEERSEC : -return security_socket_getpeersec_stream (sock, optval, optlen, len); +case SO_PEERSEC : +return security_socket_getpeersec_stream (sock, optval, optlen, len); -default : -return (-ENOPROTOOPT ); +default : +return -ENOPROTOOPT ; } +if (len > lv) len = lv;if (copy_to_user (optval, &v, len))
@@ -1220,13 +1217,13 @@ {DEFINE_WAIT (wait); -for (;;) { +for (;;) {prepare_to_wait_exclusive (&sk->sk_lock.wq, &wait,TASK_UNINTERRUPTIBLE );spin_unlock_bh (&sk->sk_lock.slock);schedule ();spin_lock_bh (&sk->sk_lock.slock); -if (!sock_owned_by_user (sk)) +if (!sock_owned_by_user (sk))break ; }finish_wait (&sk->sk_lock.wq, &wait);
@@ -1258,7 +1255,7 @@ }while (skb !=NULL );bh_lock_sock (sk); - }while ((skb = sk->sk_backlog.head) !=NULL ); + }while ((skb = sk->sk_backlog.head) !=NULL ); }/**
@@ -1420,7 +1417,7 @@/* Do not wake up a writer until he can make "significant" * progress. --DaveM */ -if ((atomic_read (&sk->sk_wmem_alloc) <<1 ) <= sk->sk_sndbuf) { +if ((atomic_read (&sk->sk_wmem_alloc) <<1 ) <= sk->sk_sndbuf) {if (sk->sk_sleep &&waitqueue_active (sk->sk_sleep))wake_up_interruptible (sk->sk_sleep);
@@ -1482,8 +1479,7 @@sock_set_flag (sk,SOCK_ZAPPED ); -if (sock) - { +if (sock) { sk->sk_type = sock->type; sk->sk_sleep = &sock->wait; sock->sk = sk;
net/socket.c +1 -1
@@ -1292,7 +1292,7 @@int err, fput_needed; sock =sockfd_lookup_light (fd, &err, &fput_needed); -if (sock) { +if (sock) { err =move_addr_to_kernel (umyaddr, addrlen, address);if (err >=0 ) { err = security_socket_bind(sock,
net/core/ethtool.c +2 -2
@@ -836,7 +836,7 @@return -EPERM ; } -if (dev->ethtool_ops->begin) +if (dev->ethtool_ops->begin)if ((rc = dev->ethtool_ops->begin (dev)) <0 )return rc;
@@ -952,7 +952,7 @@ rc = -EOPNOTSUPP ; } -if (dev->ethtool_ops->complete) +if (dev->ethtool_ops->complete) dev->ethtool_ops->complete (dev);if (old_features != dev->features)
net/core/net-sysfs.c +2 -2
@@ -352,8 +352,8 @@read_lock (&dev_base_lock);if (dev_isalive (dev)) { -if (dev->wireless_handlers && - dev->wireless_handlers->get_wireless_stats) +if (dev->wireless_handlers && + dev->wireless_handlers->get_wireless_stats) iw = dev->wireless_handlers->get_wireless_stats (dev);if (iw !=NULL ) ret = (*format)(iw, buf);
net/core/wireless.c +148 -149
823 lines not on this page · raw message
net/core/pktgen.c +8 -8
@@ -644,7 +644,7 @@if (pkt_dev->nr_labels) {unsigned i;seq_printf (seq," mpls: " ); -for (i =0 ; i < pkt_dev->nr_labels; i++) +for (i =0 ; i < pkt_dev->nr_labels; i++)seq_printf (seq,"%08x%s" ,ntohl (pkt_dev->labels[i]), i == pkt_dev->nr_labels-1 ?"\n" :", " ); }
@@ -749,7 +749,7 @@int i =0 ; *num =0 ; -for (; i < maxlen; i++) { +for (; i < maxlen; i++) {char c; *num <<=4 ;if (get_user (c, &user_buffer[i]))
@@ -857,7 +857,7 @@ n++;if (n >=MAX_MPLS_LABELS )return -E2BIG ; - }while (c ==',' ); + }while (c ==',' ); pkt_dev->nr_labels = n;return i;
@@ -1486,7 +1486,7 @@if (len <0 ) {return len; } i += len; offset =sprintf (pg_result,"OK: mpls=" ); -for (n =0 ; n < pkt_dev->nr_labels; n++) +for (n =0 ; n < pkt_dev->nr_labels; n++) offset +=sprintf (pg_result + offset,"%08x%s" ,ntohl (pkt_dev->labels[n]), n == pkt_dev->nr_labels-1 ?"" :"," );
@@ -2147,7 +2147,7 @@if (pkt_dev->flags &F_MPLS_RND ) {unsigned i; -for (i =0 ; i < pkt_dev->nr_labels; i++) +for (i =0 ; i < pkt_dev->nr_labels; i++)if (pkt_dev->labels[i] &MPLS_STACK_BOTTOM ) pkt_dev->labels[i] = MPLS_STACK_BOTTOM | ((__force __be32)random32() &
@@ -2280,7 +2280,7 @@static void mpls_push (__be32 *mpls,struct pktgen_dev *pkt_dev) {unsigned i; -for (i =0 ; i < pkt_dev->nr_labels; i++) { +for (i =0 ; i < pkt_dev->nr_labels; i++) { *mpls++ = pkt_dev->labels[i] & ~MPLS_STACK_BOTTOM ; } mpls--;
@@ -2340,7 +2340,7 @@mpls_push (mpls, pkt_dev);if (pkt_dev->vlan_id !=0xffff ) { -if (pkt_dev->svlan_id !=0xffff ) { +if (pkt_dev->svlan_id !=0xffff ) { svlan_tci = (__be16 *)skb_put (skb,sizeof (__be16)); *svlan_tci = build_tci(pkt_dev->svlan_id, pkt_dev->svlan_cfi,
@@ -2676,7 +2676,7 @@mpls_push (mpls, pkt_dev);if (pkt_dev->vlan_id !=0xffff ) { -if (pkt_dev->svlan_id !=0xffff ) { +if (pkt_dev->svlan_id !=0xffff ) { svlan_tci = (__be16 *)skb_put (skb,sizeof (__be16)); *svlan_tci = build_tci(pkt_dev->svlan_id, pkt_dev->svlan_cfi,
net/compat.c +15 -15
@@ -34,11 +34,11 @@ {int tot_len =0 ; -while (niov >0 ) { +while (niov >0 ) {compat_uptr_t buf;compat_size_t len; -if (get_user (len, &uiov32->iov_len) || +if (get_user (len, &uiov32->iov_len) ||get_user (buf, &uiov32->iov_base)) { tot_len = -EFAULT ;break ;
@@ -78,12 +78,12 @@ {int tot_len; -if (kern_msg->msg_namelen) { -if (mode==VERIFY_READ ) { +if (kern_msg->msg_namelen) { +if (mode==VERIFY_READ ) {int err =move_addr_to_kernel (kern_msg->msg_name, kern_msg->msg_namelen, kern_address); -if (err <0 ) +if (err <0 )return err; } kern_msg->msg_name = kern_address;
@@ -93,7 +93,7 @@ tot_len =iov_from_user_compat_to_kern (kern_iov, (struct compat_iovec __user *)kern_msg->msg_iov, kern_msg->msg_iovlen); -if (tot_len >=0 ) +if (tot_len >=0 ) kern_msg->msg_iov = kern_iov;return tot_len;
@@ -146,8 +146,8 @@ kcmlen =0 ; kcmsg_base = kcmsg = (struct cmsghdr *)stackbuf; ucmsg =CMSG_COMPAT_FIRSTHDR (kmsg); -while (ucmsg !=NULL ) { -if (get_user (ucmlen, &ucmsg->cmsg_len)) +while (ucmsg !=NULL ) { +if (get_user (ucmlen, &ucmsg->cmsg_len))return -EFAULT ;/* Catch bogons. */
@@ -160,7 +160,7 @@ kcmlen += tmp; ucmsg =cmsg_compat_nxthdr (kmsg, ucmsg, ucmlen); } -if (kcmlen ==0 ) +if (kcmlen ==0 )return -EINVAL ;/* The kcmlen holds the 64-bit version of the control length.
@@ -176,7 +176,7 @@/* Now copy them over neatly. */ memset (kcmsg,0 , kcmlen); ucmsg =CMSG_COMPAT_FIRSTHDR (kmsg); -while (ucmsg !=NULL ) { +while (ucmsg !=NULL ) {if (__get_user (ucmlen, &ucmsg->cmsg_len)) goto Efault;if (!CMSG_COMPAT_OK (ucmlen, ucmsg, kmsg))
@@ -219,7 +219,7 @@struct compat_cmsghdr cmhdr;int cmlen; -if (cm ==NULL || kmsg->msg_controllen <sizeof (*cm)) { +if (cm ==NULL || kmsg->msg_controllen <sizeof (*cm)) { kmsg->msg_flags |=MSG_CTRUNC ;return 0 ;/* XXX: return error? check spec. */ }
@@ -233,7 +233,7 @@ } cmlen =CMSG_COMPAT_LEN (len); -if (kmsg->msg_controllen < cmlen) { +if (kmsg->msg_controllen < cmlen) { kmsg->msg_flags |=MSG_CTRUNC ; cmlen = kmsg->msg_controllen; }
@@ -241,9 +241,9 @@ cmhdr.cmsg_type = type; cmhdr.cmsg_len = cmlen; -if (copy_to_user (cm, &cmhdr,sizeof cmhdr)) +if (copy_to_user (cm, &cmhdr,sizeof cmhdr))return -EFAULT ; -if (copy_to_user (CMSG_COMPAT_DATA (cm), data, cmlen -sizeof (struct compat_cmsghdr ))) +if (copy_to_user (CMSG_COMPAT_DATA (cm), data, cmlen -sizeof (struct compat_cmsghdr )))return -EFAULT ; cmlen =CMSG_COMPAT_SPACE (len); kmsg->msg_control += cmlen;
@@ -622,7 +622,7 @@ a0 = a[0 ]; a1 = a[1 ]; -switch (call) { +switch (call) {case SYS_SOCKET : ret =sys_socket (a0, a1, a[2 ]);break ;
--
Stephen Hemminger <[email protected]>
Re: [PATCH 3/8] network core: whitespace cleanup
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:17 -0800
Quoted 4 lines
Fix whitespace around keywords. Fix indentation especially of switch statements.
Signed-off-by Stephen Hemminger <[email protected]>
Applied.
PATCH 4/8 wireless: use ARRAY_SIZE()
In reply to Stephen HemmingerUse ARRAY_SIZE() macro now.
--- net/core/wireless.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
net/core/wireless.c +2 -4
@@ -346,8 +346,7 @@ .max_tokens = sizeof(struct iw_pmksa), }, }; -static const unsigned standard_ioctl_num = (sizeof (standard_ioctl) / -sizeof (struct iw_ioctl_description )); +static const unsigned standard_ioctl_num =ARRAY_SIZE (standard_ioctl);/* * Meta-data about all the additional standard Wireless Extension events
@@ -397,8 +396,7 @@ .max_tokens = sizeof(struct iw_pmkid_cand), }, }; -static const unsigned standard_event_num = (sizeof (standard_event) / -sizeof (struct iw_ioctl_description )); +static const unsigned standard_event_num =ARRAY_SIZE (standard_event);/* Size (in bytes) of the various private data types */ static const char iw_priv_type_size[] = {
--
Stephen Hemminger <[email protected]>
Re: [PATCH 4/8] wireless: use ARRAY_SIZE()
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:18 -0800
Quoted 3 lines
Use
ARRAY_SIZE()macro now.Signed-off-by Stephen Hemminger <[email protected]>
Applied.
PATCH 5/8 ipv4 cleanup
In reply to Stephen HemmingerAdd whitespace around keywords.
--- net/ipv4/af_inet.c | 2 net/ipv4/arp.c | 2 net/ipv4/cipso_ipv4.c | 2 net/ipv4/devinet.c | 4 net/ipv4/fib_trie.c | 17 net/ipv4/ip_fragment.c | 26 net/ipv4/ip_output.c | 2 net/ipv4/ip_sockglue.c | 1147 +++++++++++++++++++++---------------------- net/ipv4/ipconfig.c | 4 net/ipv4/ipmr.c | 305 +++++------ net/ipv4/xfrm4_mode_tunnel.c | 2 net/ipv4/xfrm4_policy.c | 2 12 files changed, 755 insertions(+), 760 deletions(-)
net/ipv4/af_inet.c +1 -1
@@ -1336,7 +1336,7 @@* Initialise per-cpu ipv4 mibs */ -if (init_ipv4_mibs ()) +if (init_ipv4_mibs ())printk (KERN_CRIT "inet_init: Cannot init ipv4 mibs\n" ); ;ipv4_proc_init ();
net/ipv4/arp.c +1 -1
@@ -1178,7 +1178,7 @@ goto out; } -switch (cmd) { +switch (cmd) {case SIOCDARP : err =arp_req_delete (&r, dev);break ;
net/ipv4/devinet.c +2 -2
@@ -631,7 +631,7 @@dev_load (ifr.ifr_name);#endif -switch (cmd) { +switch (cmd) {case SIOCGIFADDR :/* Get interface address */ case SIOCGIFBRDADDR :/* Get the broadcast address */ case SIOCGIFDSTADDR :/* Get the destination address */
@@ -706,7 +706,7 @@if (!ifa && cmd !=SIOCSIFADDR && cmd !=SIOCSIFFLAGS ) goto done; -switch (cmd) { +switch (cmd) {case SIOCGIFADDR :/* Get interface address */ sin->sin_addr.s_addr = ifa->ifa_local; goto rarok;
net/ipv4/fib_trie.c +8 -9
@@ -350,11 +350,10 @@static inline void tnode_free (struct tnode *tn) { -if (IS_LEAF (tn)) { +if (IS_LEAF (tn)) {struct leaf *l = (struct leaf *) tn;call_rcu_bh (&l->rcu, __leaf_free_rcu); - } -else + }else call_rcu (&tn->rcu, __tnode_free_rcu); }
@@ -553,7 +552,7 @@/* Keep root node larger */ -if (!tn->parent) +if (!tn->parent) inflate_threshold_use = inflate_threshold_root;else inflate_threshold_use = inflate_threshold;
@@ -584,7 +583,7 @@/* Keep root node larger */ -if (!tn->parent) +if (!tn->parent) halve_threshold_use = halve_threshold_root;else halve_threshold_use = halve_threshold;
@@ -2032,12 +2031,12 @@ {struct node *n ; -if (!t) +if (!t)return NULL ; n =rcu_dereference (t->trie); -if (!iter) +if (!iter)return NULL ;if (n) {
@@ -2077,7 +2076,7 @@int i; s->tnodes++; -if (tn->bits <MAX_STAT_DEPTH ) +if (tn->bits <MAX_STAT_DEPTH ) s->nodesizes[tn->bits]++;for (i =0 ; i < (1 <<tn->bits); i++)
@@ -2243,7 +2242,7 @@ {static char buf[32 ]; -switch (s) { +switch (s) {case RT_SCOPE_UNIVERSE :return "universe" ;case RT_SCOPE_SITE :return "site" ;case RT_SCOPE_LINK :return "link" ;
net/ipv4/ip_fragment.c +13 -13
@@ -184,7 +184,7 @@ {struct ipq *qp =kmalloc (sizeof (struct ipq ),GFP_ATOMIC ); -if (!qp) +if (!qp)return NULL ;atomic_add (sizeof (struct ipq ), &ip_frag_mem);return qp;
@@ -321,11 +321,11 @@* promoted read lock to write lock. */ hlist_for_each_entry (qp, n, &ipq_hash[hash], list) { -if (qp->id == qp_in->id && - qp->saddr == qp_in->saddr && - qp->daddr == qp_in->daddr && - qp->protocol == qp_in->protocol && - qp->user == qp_in->user) { +if (qp->id == qp_in->id && + qp->saddr == qp_in->saddr && + qp->daddr == qp_in->daddr && + qp->protocol == qp_in->protocol && + qp->user == qp_in->user) {atomic_inc (&qp->refcnt);write_unlock (&ipfrag_lock); qp_in->last_in |=COMPLETE ;
@@ -398,11 +398,11 @@read_lock (&ipfrag_lock); hash =ipqhashfn (id, saddr, daddr, protocol);hlist_for_each_entry (qp, n, &ipq_hash[hash], list) { -if (qp->id == id && - qp->saddr == saddr && - qp->daddr == daddr && - qp->protocol == protocol && - qp->user == user) { +if (qp->id == id && + qp->saddr == saddr && + qp->daddr == daddr && + qp->protocol == protocol && + qp->user == user) {atomic_inc (&qp->refcnt);read_unlock (&ipfrag_lock);return qp;
@@ -524,7 +524,7 @@* this fragment, right? */ prev =NULL ; -for (next = qp->fragments; next !=NULL ; next = next->next) { +for (next = qp->fragments; next !=NULL ; next = next->next) {if (FRAG_CB (next)->offset >= offset)break ;/* bingo! */ prev = next;
@@ -627,7 +627,7 @@ ihlen = head->nh.iph->ihl*4 ; len = ihlen + qp->len; -if (len >65535 ) +if (len >65535 ) goto out_oversize;/* Head of list must not be cloned. */
net/ipv4/ip_sockglue.c +573 -574
1,258 lines not on this page · raw message
net/ipv4/ipmr.c +151 -154
435 lines not on this page · raw message
net/ipv4/xfrm4_mode_tunnel.c +1 -1
@@ -93,7 +93,7 @@struct iphdr *iph = skb->nh.iph;int err = -EINVAL ; -switch (iph->protocol){ +switch (iph->protocol){case IPPROTO_IPIP :break ;#if defined(CONFIG_IPV6 ) || defined (CONFIG_IPV6_MODULE )
net/ipv4/xfrm4_policy.c +1 -1
@@ -119,7 +119,7 @@if (xfrm[i]->props.mode ==XFRM_MODE_TUNNEL ) {unsigned short encap_family = xfrm[i]->props.family; -switch (encap_family) { +switch (encap_family) {case AF_INET : fl_tunnel.fl4_dst = xfrm[i]->id.daddr.a4; fl_tunnel.fl4_src = xfrm[i]->props.saddr.a4;
net/ipv4/cipso_ipv4.c +1 -1
@@ -1174,7 +1174,7 @@u16 cat_low;u16 cat_high; -for (net_iter =0 ; net_iter < net_cat_len; net_iter +=4 ) { +for (net_iter =0 ; net_iter < net_cat_len; net_iter +=4 ) { cat_high =ntohs (*((__be16 *)&net_cat[net_iter]));if ((net_iter +4 ) <= net_cat_len) cat_low =ntohs (*((__be16 *)&net_cat[net_iter +2 ]));
net/ipv4/ip_output.c +1 -1
@@ -566,7 +566,7 @@* Keep copying data until we run out. */ -while (left >0 ) { +while (left >0 ) { len = left;/* IF: it doesn't fit, use 'mtu' - the data space left */ if (len > mtu)
net/ipv4/ipconfig.c +2 -2
@@ -782,7 +782,7 @@u8 *c;printk ("DHCP/BOOTP: Got extension %d:" ,*ext); -for (c=ext+2 ; c<ext+2 +ext[1 ]; c++) +for (c=ext+2 ; c<ext+2 +ext[1 ]; c++)printk (" %02x" , *c);printk ("\n" );#endif
@@ -1094,7 +1094,7 @@ retries =CONF_SEND_RETRIES ;get_random_bytes (&timeout,sizeof (timeout)); timeout =CONF_BASE_TIMEOUT + (timeout % (unsigned )CONF_TIMEOUT_RANDOM ); -for (;;) { +for (;;) {#ifdef IPCONFIG_BOOTP if (do_bootp && (d->able &IC_BOOTP ))ic_bootp_send_if (d, jiffies - start_jiffies);
--
Stephen Hemminger <[email protected]>
Re: [PATCH 5/8] ipv4 cleanup
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:19 -0800
Quoted 3 lines
Add whitespace around keywords.
Signed-off-by Stephen Hemminger <[email protected]>
Applied.
PATCH 6/8 tcp: whitespace cleanup
In reply to Stephen HemmingerAdd whitespace around keywords.
--- net/ipv4/tcp_hybla.c | 2 - net/ipv4/tcp_input.c | 57 +++++++++++++++++++++++------------------------ net/ipv4/tcp_minisocks.c | 6 ++-- net/ipv4/tcp_output.c | 34 ++++++++++++++-------------- net/ipv4/tcp_westwood.c | 2 - 5 files changed, 51 insertions(+), 50 deletions(-)
net/ipv4/tcp_input.c +28 -29
@@ -578,7 +578,7 @@* does not matter how to _calculate_ it. Seems, it was trap * that VJ failed to avoid. 8) */ -if (m ==0 ) +if (m ==0 ) m =1 ;if (tp->srtt !=0 ) { m -= (tp->srtt >>3 );/* m is now error in rtt est */
@@ -1758,12 +1758,11 @@/* clear xmit_retransmit_queue hints * if this is beyond hint */ -if (tp->retransmit_skb_hint !=NULL && -before (TCP_SKB_CB (skb)->seq, -TCP_SKB_CB (tp->retransmit_skb_hint)->seq)) { - +if (tp->retransmit_skb_hint !=NULL && +before (TCP_SKB_CB (skb)->seq, +TCP_SKB_CB (tp->retransmit_skb_hint)->seq)) tp->retransmit_skb_hint =NULL ; - } + } }tcp_sync_left_out (tp);
@@ -2441,7 +2440,7 @@if (sacked) {if (sacked &TCPCB_RETRANS ) { -if (sacked &TCPCB_SACKED_RETRANS ) +if (sacked &TCPCB_SACKED_RETRANS ) tp->retrans_out -=tcp_skb_pcount (skb); acked |=FLAG_RETRANS_DATA_ACKED ; seq_rtt =-1 ;
@@ -2840,7 +2839,7 @@ ptr = (unsigned char *)(th +1 ); opt_rx->saw_tstamp =0 ; -while (length>0 ) { +while (length >0 ) {int opcode=*ptr++;int opsize;
@@ -2856,9 +2855,9 @@return ;if (opsize > length)return ;/* don't parse partial options */ -switch (opcode) { +switch (opcode) {case TCPOPT_MSS : -if (opsize==TCPOLEN_MSS && th->syn && !estab) { +if (opsize==TCPOLEN_MSS && th->syn && !estab) {u16 in_mss =ntohs (get_unaligned ((__be16 *)ptr));if (in_mss) {if (opt_rx->user_mss && opt_rx->user_mss < in_mss)
@@ -2868,12 +2867,12 @@ }break ;case TCPOPT_WINDOW : -if (opsize==TCPOLEN_WINDOW && th->syn && !estab) +if (opsize==TCPOLEN_WINDOW && th->syn && !estab)if (sysctl_tcp_window_scaling) {__u8 snd_wscale = *(__u8 *) ptr; opt_rx->wscale_ok =1 ;if (snd_wscale >14 ) { -if (net_ratelimit ()) +if (net_ratelimit ())printk (KERN_INFO "tcp_parse_options: Illegal window " "scaling value %d >14 received.\n" , snd_wscale);
@@ -2883,7 +2882,7 @@ }break ;case TCPOPT_TIMESTAMP : -if (opsize==TCPOLEN_TIMESTAMP ) { +if (opsize==TCPOLEN_TIMESTAMP ) {if ((estab && opt_rx->tstamp_ok) || (!estab && sysctl_tcp_timestamps)) { opt_rx->saw_tstamp =1 ;
@@ -2893,7 +2892,7 @@ }break ;case TCPOPT_SACK_PERM : -if (opsize==TCPOLEN_SACK_PERM && th->syn && !estab) { +if (opsize==TCPOLEN_SACK_PERM && th->syn && !estab) {if (sysctl_tcp_sack) { opt_rx->sack_ok =1 ;tcp_sack_reset (opt_rx);
@@ -2902,7 +2901,7 @@break ;case TCPOPT_SACK : -if ((opsize >= (TCPOLEN_SACK_BASE +TCPOLEN_SACK_PERBLOCK )) && +if ((opsize >= (TCPOLEN_SACK_BASE +TCPOLEN_SACK_PERBLOCK )) && !((opsize -TCPOLEN_SACK_BASE ) %TCPOLEN_SACK_PERBLOCK ) && opt_rx->sack_ok) {TCP_SKB_CB (skb)->sacked = (ptr -2 ) - (unsigned char *)th;
@@ -2964,7 +2963,7 @@* Not only, also it occurs for expired timestamps. */ -if ((s32)(tp->rx_opt.rcv_tsval - tp->rx_opt.ts_recent) >=0 || +if ((s32)(tp->rx_opt.rcv_tsval - tp->rx_opt.ts_recent) >=0 ||get_seconds () >= tp->rx_opt.ts_recent_stamp +TCP_PAWS_24DAYS )tcp_store_ts_recent (tp); }
@@ -3223,7 +3222,7 @@*/ tp->rx_opt.num_sacks--; tp->rx_opt.eff_sacks =min (tp->rx_opt.num_sacks + tp->rx_opt.dsack,4 - tp->rx_opt.tstamp_ok); -for (i=this_sack; i < tp->rx_opt.num_sacks; i++) +for (i=this_sack; i < tp->rx_opt.num_sacks; i++) sp[i] = sp[i+1 ];continue ; }
@@ -3276,7 +3275,7 @@ tp->rx_opt.num_sacks--; sp--; } -for (; this_sack >0 ; this_sack--, sp--) +for (; this_sack >0 ; this_sack--, sp--) *sp = *(sp-1 ); new_sack:
@@ -3302,7 +3301,7 @@return ; } -for (this_sack =0 ; this_sack < num_sacks; ) { +for (this_sack =0 ; this_sack < num_sacks; ) {/* Check if the start of the sack is covered by RCV.NXT. */ if (!before (tp->rcv_nxt, sp->start_seq)) {int i;
@@ -3358,7 +3357,7 @@__skb_unlink (skb, &tp->out_of_order_queue);__skb_queue_tail (&sk->sk_receive_queue, skb); tp->rcv_nxt =TCP_SKB_CB (skb)->end_seq; -if (skb->h.th->fin) +if (skb->h.th->fin)tcp_fin (skb, sk, skb->h.th); } }
@@ -3424,9 +3423,9 @@__skb_queue_tail (&sk->sk_receive_queue, skb); } tp->rcv_nxt =TCP_SKB_CB (skb)->end_seq; -if (skb->len) +if (skb->len)tcp_event_data_recv (sk, tp, skb); -if (th->fin) +if (th->fin)tcp_fin (skb, sk, th);if (!skb_queue_empty (&tp->out_of_order_queue)) {
@@ -4323,7 +4322,7 @@ goto discard; } -if (th->rst) { +if (th->rst) {tcp_reset (sk); goto discard; }
@@ -4338,7 +4337,7 @@ } step5: -if (th->ack) +if (th->ack)tcp_ack (sk, skb,FLAG_SLOWPATH );tcp_rcv_rtt_measure_ts (sk, skb);
@@ -4626,13 +4625,13 @@ goto discard;case TCP_LISTEN : -if (th->ack) +if (th->ack)return 1 ; -if (th->rst) +if (th->rst) goto discard; -if (th->syn) { +if (th->syn) {if (icsk->icsk_af_ops->conn_request (sk, skb) <0 )return 1 ;
@@ -4688,7 +4687,7 @@ }/* step 2: check RST bit */ -if (th->rst) { +if (th->rst) {tcp_reset (sk); goto discard; }
@@ -4711,7 +4710,7 @@if (th->ack) {int acceptable =tcp_ack (sk, skb,FLAG_SLOWPATH ); -switch (sk->sk_state) { +switch (sk->sk_state) {case TCP_SYN_RECV :if (acceptable) { tp->copied_seq = tp->rcv_nxt;
net/ipv4/tcp_minisocks.c +3 -3
@@ -246,7 +246,7 @@if (paws_reject)NET_INC_STATS_BH (LINUX_MIB_PAWSESTABREJECTED ); -if (!th->rst) { +if (!th->rst) {/* In this case we must reset the TIMEWAIT timer. * * If it is ACKless SYN it may be both old duplicate
@@ -324,7 +324,7 @@if (tcp_alloc_md5sig_pool () ==NULL ) BUG(); } - }while (0 ); + }while (0 );#endif /* Linkage updates. */
@@ -439,7 +439,7 @@ keepalive_time_when(newtp)); newtp->rx_opt.tstamp_ok = ireq->tstamp_ok; -if ((newtp->rx_opt.sack_ok = ireq->sack_ok) !=0 ) { +if ((newtp->rx_opt.sack_ok = ireq->sack_ok) !=0 ) {if (sysctl_tcp_fack) newtp->rx_opt.sack_ok |=2 ; }
net/ipv4/tcp_output.c +18 -16
@@ -236,7 +236,7 @@u32 new_win =__tcp_select_window (sk);/* Never shrink the offered window */ -if (new_win < cur_win) { +if (new_win < cur_win) {/* Danger Will Robinson! * Don't update rcv_wup/rcv_wnd here or else * we will not be able to advertise a zero
@@ -287,10 +287,12 @@ (TCPOPT_SACK <<8 ) | (TCPOLEN_SACK_BASE + (tp->rx_opt.eff_sacks * TCPOLEN_SACK_PERBLOCK))); -for (this_sack =0 ; this_sack < tp->rx_opt.eff_sacks; this_sack++) { + +for (this_sack =0 ; this_sack < tp->rx_opt.eff_sacks; this_sack++) { *ptr++ =htonl (sp[this_sack].start_seq); *ptr++ =htonl (sp[this_sack].end_seq); } +if (tp->rx_opt.dsack) { tp->rx_opt.dsack =0 ; tp->rx_opt.eff_sacks--;
@@ -335,7 +337,7 @@*/ *ptr++ =htonl ((TCPOPT_MSS <<24 ) | (TCPOLEN_MSS <<16 ) | mss);if (ts) { -if (sack) +if (sack) *ptr++ = htonl((TCPOPT_SACK_PERM << 24) | (TCPOLEN_SACK_PERM << 16) | (TCPOPT_TIMESTAMP << 8) |
@@ -347,7 +349,7 @@ TCPOLEN_TIMESTAMP); *ptr++ =htonl (tstamp);/* TSVAL */ *ptr++ =htonl (ts_recent);/* TSECR */ - }else if (sack) + }else if (sack) *ptr++ = htonl((TCPOPT_NOP << 24) | (TCPOPT_NOP << 16) | (TCPOPT_SACK_PERM << 8) |
@@ -428,7 +430,7 @@ sysctl_flags =0 ;if (unlikely (tcb->flags &TCPCB_FLAG_SYN )) { tcp_header_size =sizeof (struct tcphdr ) +TCPOLEN_MSS ; -if (sysctl_tcp_timestamps) { +if (sysctl_tcp_timestamps) { tcp_header_size +=TCPOLEN_TSTAMP_ALIGNED ; sysctl_flags |=SYSCTL_FLAG_TSTAMPS ; }
@@ -1614,7 +1616,7 @@u16 flags =TCP_SKB_CB (skb)->flags;/* Also punt if next skb has been SACK'd. */ -if (TCP_SKB_CB (next_skb)->sacked &TCPCB_SACKED_ACKED ) +if (TCP_SKB_CB (next_skb)->sacked &TCPCB_SACKED_ACKED )return ;/* Next skb is out of window. */
@@ -1774,13 +1776,13 @@ }/* Collapse two adjacent packets if worthwhile and we can. */ -if (!(TCP_SKB_CB (skb)->flags &TCPCB_FLAG_SYN ) && - (skb->len < (cur_mss >>1 )) && - (tcp_write_queue_next (sk, skb) !=tcp_send_head (sk)) && - (!tcp_skb_is_last (sk, skb)) && - (skb_shinfo (skb)->nr_frags ==0 &&skb_shinfo (tcp_write_queue_next (sk, skb))->nr_frags ==0 ) && - (tcp_skb_pcount (skb) ==1 &&tcp_skb_pcount (tcp_write_queue_next (sk, skb)) ==1 ) && - (sysctl_tcp_retrans_collapse !=0 )) +if (!(TCP_SKB_CB (skb)->flags &TCPCB_FLAG_SYN ) && + (skb->len < (cur_mss >>1 )) && + (tcp_write_queue_next (sk, skb) !=tcp_send_head (sk)) && + (!tcp_skb_is_last (sk, skb)) && + (skb_shinfo (skb)->nr_frags ==0 &&skb_shinfo (tcp_write_queue_next (sk, skb))->nr_frags ==0 ) && + (tcp_skb_pcount (skb) ==1 &&tcp_skb_pcount (tcp_write_queue_next (sk, skb)) ==1 ) && + (sysctl_tcp_retrans_collapse !=0 ))tcp_retrans_try_collapse (sk, skb, cur_mss);if (inet_csk (sk)->icsk_af_ops->rebuild_header (sk))
@@ -1790,9 +1792,9 @@* retransmit when old data is attached. So strip it off * since it is cheap to do so and saves bytes on the network. */ -if (skb->len >0 && - (TCP_SKB_CB (skb)->flags &TCPCB_FLAG_FIN ) && - tp->snd_una == (TCP_SKB_CB (skb)->end_seq -1 )) { +if (skb->len >0 && + (TCP_SKB_CB (skb)->flags &TCPCB_FLAG_FIN ) && + tp->snd_una == (TCP_SKB_CB (skb)->end_seq -1 )) {if (!pskb_trim (skb,0 )) {TCP_SKB_CB (skb)->seq =TCP_SKB_CB (skb)->end_seq -1 ;skb_shinfo (skb)->gso_segs =1 ;
net/ipv4/tcp_hybla.c +1 -1
@@ -144,7 +144,7 @@ ca->snd_cwnd_cents += odd;/* check when fractions goes >=128 and increase cwnd by 1. */ -while (ca->snd_cwnd_cents >=128 ) { +while (ca->snd_cwnd_cents >=128 ) { tp->snd_cwnd++; ca->snd_cwnd_cents -=128 ; tp->snd_cwnd_cnt =0 ;
net/ipv4/tcp_westwood.c +1 -1
@@ -226,7 +226,7 @@struct tcp_sock *tp =tcp_sk (sk);struct westwood *w =inet_csk_ca (sk); -switch (event) { +switch (event) {case CA_EVENT_FAST_ACK :westwood_fast_bw (sk);break ;
--
Stephen Hemminger <[email protected]>
Re: [PATCH 6/8] tcp: whitespace cleanup
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:20 -0800
Quoted 3 lines
Add whitespace around keywords.
Signed-off-by Stephen Hemminger <[email protected]>
Applied.
PATCH 7/8 net: deinline some functions
In reply to Stephen HemmingerSeveral functions are marked inline or forced inline, but it would be better to let the compiler decide.
--- net/core/dev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
net/core/dev.c +5 -5
@@ -1676,9 +1676,9 @@ } } -static __inline__int deliver_skb (struct sk_buff *skb, -struct packet_type *pt_prev, -struct net_device *orig_dev) +static inline int deliver_skb (struct sk_buff *skb, +struct packet_type *pt_prev, +struct net_device *orig_dev) {atomic_inc (&skb->users);return pt_prev->func (skb, skb->dev, pt_prev, orig_dev);
@@ -2068,7 +2068,7 @@* This is invoked by the /proc filesystem handler to display a device * in detail. */ -static __inline__struct net_device *dev_get_idx (loff_t pos) +static struct net_device *dev_get_idx (loff_t pos) {struct net_device *dev;loff_t i;
@@ -2839,7 +2839,7 @@static DEFINE_SPINLOCK (net_todo_list_lock);static struct list_head net_todo_list =LIST_HEAD_INIT (net_todo_list); -static inline void net_set_todo (struct net_device *dev) +static void net_set_todo (struct net_device *dev) {spin_lock (&net_todo_list_lock);list_add_tail (&dev->todo_list, &net_todo_list);
--
Stephen Hemminger <[email protected]>
Re: [PATCH 7/8] net: deinline some functions
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:21 -0800
Quoted 4 lines
Several functions are marked inline or forced inline, but it would be better to let the compiler decide.
Signed-off-by Stephen Hemminger <[email protected]>
Applied.
PATCH 8/8 udp: deinline
In reply to Stephen HemmingerA couple of functions are exported or used indirectly so it is pointless to mark them as inline.
--- net/ipv4/udp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
net/ipv4/udp.c +4 -4
@@ -213,13 +213,13 @@return error; } -__inline__int udp_get_port (struct sock *sk,unsigned short snum, +int udp_get_port (struct sock *sk,unsigned short snum,int (*scmp)(const struct sock *,const struct sock *)) {return __udp_lib_get_port (sk, snum, udp_hash, &udp_port_rover, scmp); } -inline int ipv4_rcv_saddr_equal (const struct sock *sk1,const struct sock *sk2) +int ipv4_rcv_saddr_equal (const struct sock *sk1,const struct sock *sk2) {struct inet_sock *inet1 =inet_sk (sk1), *inet2 =inet_sk (sk2);
@@ -391,7 +391,7 @@sock_put (sk); } -__inline__void udp_err (struct sk_buff *skb,u32 info) +void udp_err (struct sk_buff *skb,u32 info) {return __udp4_lib_err (skb, info, udp_hash); }
@@ -1296,7 +1296,7 @@return 0 ; } -__inline__int udp_rcv (struct sk_buff *skb) +int udp_rcv (struct sk_buff *skb) {return __udp4_lib_rcv (skb, udp_hash,IPPROTO_UDP ); }
--
Stephen Hemminger <[email protected]>
Re: [PATCH 8/8] udp: deinline
From: Stephen Hemminger <[email protected]>
Date: Thu, 08 Mar 2007 12:52:22 -0800
Quoted 4 lines
A couple of functions are exported or used indirectly so it is pointless to mark them as inline.
Signed-off-by Stephen Hemminger <[email protected]>
Applied.