On 1/7/11 8:36 AM, Pekka Enberg wrote:
On Fri, Jan 7, 2011 at 3:05 PM, William Allen Simpson
<[email protected]>  wrote:
My instructors would have flunked me for not including braces around
multi-line sequences; it was one of the great no-no's of the '70s.  Perhaps
that's not the case anymore with modern colorful visual syntax checkers?

That's because your instructors hadn't read Documentation/CodingStyle
which didn't appear until the '90s.

Hi, Pekka.

OTOH, I *have* read Documentation/CodingStyle a cople year back, and then
re-checked it again today....  Out of curiosity, as I haven't done a Linux
patch in many months, I cloned linux-2.6 and checked out v2.6.36-rc8 (I don't
know where 2.6.36-stable is kept).

Note this patch is cleaner and more readable; lines that are changed have
one-to-one correspondence.

Eric was *not* *truthful* saying there were "checkpatch.pl errors/warnings" in
my code.

===

scripts/checkpatch.pl ~/sysctl_tcp_cookie_size-read-once.patch
total: 0 errors, 0 warnings, 36 lines checked

/home/test/sysctl_tcp_cookie_size-read-once.patch has no obvious style
problems and is ready for submission.
>From bd6f04cbee4c924e07cf3a1819a24acc3cc2490b Mon Sep 17 00:00:00 2001
From: William Allen Simpson <[email protected]>
Date: Sat, 8 Jan 2011 05:58:21 -0500
Subject: [PATCH] sysctl_tcp_cookie_size read once

Read sysctl_tcp_cookie_size only once in tcp_cookie_size_check(),
as it might be concurrently changed by another cpu.

Signed-off-by: [email protected]
---
 net/ipv4/tcp_output.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index de3bd84..49be4e3 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -392,27 +392,30 @@ struct tcp_out_options {
  */
 static u8 tcp_cookie_size_check(u8 desired)
 {
+       int cookie_size;
+
        if (desired > 0) {
                /* previously specified */
                return desired;
        }
-       if (sysctl_tcp_cookie_size <= 0) {
+       cookie_size = ACCESS_ONCE(sysctl_tcp_cookie_size);
+       if (cookie_size <= 0) {
                /* no default specified */
                return 0;
        }
-       if (sysctl_tcp_cookie_size <= TCP_COOKIE_MIN) {
+       if (cookie_size <= TCP_COOKIE_MIN) {
                /* value too small, specify minimum */
                return TCP_COOKIE_MIN;
        }
-       if (sysctl_tcp_cookie_size >= TCP_COOKIE_MAX) {
+       if (cookie_size >= TCP_COOKIE_MAX) {
                /* value too large, specify maximum */
                return TCP_COOKIE_MAX;
        }
-       if (0x1 & sysctl_tcp_cookie_size) {
+       if (cookie_size & 0x1) {
                /* 8-bit multiple, illegal, fix it */
-               return (u8)(sysctl_tcp_cookie_size + 0x1);
+               cookie_size += 0x1;
        }
-       return (u8)sysctl_tcp_cookie_size;
+       return (u8)cookie_size;
 }
 
 /* Write previously computed TCP options to the packet.
-- 
1.7.1

_______________________________________________
stable mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/stable

Reply via email to