All of lore.kernel.org
 help / color / mirror / Atom feed
* if(function()) BUG(); still bad?
@ 2007-12-03  0:20 Roel Kluin
  2007-12-03  0:32 ` Matthew Wilcox
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Roel Kluin @ 2007-12-03  0:20 UTC (permalink / raw)
  To: kernel-janitors

On the kernel janitors site it is stated:

make sure BUG() is used correctly (i.e. if(function()) BUG(); is evil)
    * i.e. even when no-op-ing BUG we still have an if (See also: BUG_ON)

Is this still true? A recent patch added such entries, see for instance
http://lkml.org/lkml/2007/11/30/298 There are also several occurances in the
kernel, which can be spotted with:

[begin bash]

s="[[:space:]]*";
V="[[:alpha:]_]\+[[:alnum:]_]*"

# a bit of magic to cope with comments, chars and strings
cendl="$s\(\/[\*\/].*\)\?$"
ccode="\([^\/\"']*\|\/[^\*\/]\|\/\*.*\*\/\|'[^']*'\|\"[^\"]*\"\)*"

q="${s}if$s($ccode$s$V$s($ccode)$s$ccode$s)"

git-grep -n -B1 "^\($q\)\?${s}BUG($s)$s;$cendl" | grep -A1 "$q$cendl" | less

[end bash]

There are a few false positives due to sizeof() and MACROS(), but I can think of
a way to filter those as well.

for instance in a patch I saw this:

> +		if (__blk_end_request(rq, 0, 0))
> +			BUG();
>  		spin_unlock(q->queue_lock);

If it's still bad, what should the fix be? (I'll write a script and post
patches)

Roel



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-12-03  2:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-03  0:20 if(function()) BUG(); still bad? Roel Kluin
2007-12-03  0:32 ` Matthew Wilcox
2007-12-03  0:40 ` Roel Kluin
2007-12-03  1:18 ` Adrian Bunk
2007-12-03  2:48 ` Matthew Wilcox

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.