Re: Generic DMA - BUG_ON

From: Russell King
Date: Wed Jan 20 2010 - 05:54:18 EST


On Wed, Jan 20, 2010 at 11:08:30AM +0100, monstr@xxxxxxxxx wrote:
> Hi All,
>
> I have this patch in my repo. I just added BUG_ON for dma ops.
> The reason for that is if driver not setup ops correctly than
> the system do bad access to any memory space without any visible reason.
> BUG_ON points to it and helps to solve where the problem is.

I have a question of principle to raise here.

If you have code which does:

if (ops->foo)
ops->foo();

and ops is NULL, then this code will oops; you will get a full register
dump and backtrace. You can use this information along with markup_oops.pl
to find out where the problem is.

If you add a BUG_ON() to this, the only additional information you end
up with is (possibly) a nice friendly message which tells you the file
and line number - but you add additional run-time tests to the code.

The question is: is this worth it? Is there some problem with the
original oops that makes the problem hard to find? Should we be using
BUG_ON() to augment normal oopses in this way?

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/