Messages in this thread |  | | | Date | Thu, 14 Feb 2008 09:11:04 +0900 | | From | Tejun Heo <> | | Subject | Re: [PATCH REPOST] printk: fix possible printk buffer overrun introduced with recursion check |
| |
Hello, Ingo.
Ingo Molnar wrote: > but i'm not sure i agree with the moving of these variables inside > vprintk: > >> -/* cpu currently holding logbuf_lock */ >> -static volatile unsigned int printk_cpu = UINT_MAX; >> - >> -const char printk_recursion_bug_msg [] = >> - KERN_CRIT "BUG: recent printk recursion!\n"; >> -static int printk_recursion_bug; >> - >> asmlinkage int vprintk(const char *fmt, va_list args) >> { >> + /* cpu currently holding logbuf_lock */ >> + static volatile unsigned int printk_cpu = UINT_MAX; >> + static const char printk_recursion_bug_msg [] = >> + KERN_CRIT "BUG: recent printk recursion!\n"; >> + static int printk_recursion_bug; >> static int log_level_unknown = 1; >> static char printk_buf[1024]; > > it's easy to miss a static variable inside a function local variables
I find that difficult to agree. As long as static ones are put above all local ones, they are visually distinctive enough. static variables used by a single function are usually declared in the function all through the source tree.
> block. It would b ebetter to move log_level_unknown and printk_buf > _outside_ the function, to the other ones. [and to mark > printk_recursion_bug_msg static]
Well, I thought it was an obvious clean up. Time to split this patch up, I guess.
Thanks.
-- tejun
|  |