Re: [PATCH] ARM: Convert BUG() to use unreachable()

David Daney
2009-12-17T19:34:38Z

Joe Buck wrote:
> On Thu, Dec 17, 2009 at 11:06:13AM -0800, Russell King - ARM Linux wrote:
>> On Thu, Dec 17, 2009 at 10:35:17AM -0800, Joe Buck wrote:
>>> Besides, didn't I see a whole bunch of kernel security patches related
>>> to null pointer dereferences lately? If page 0 can be mapped, you
>>> suddenly won't get your trap.
>> Page 0 can not be mapped on ARM kernels since the late 1990s, and this
>> protection is independent of the generic kernel.
>>
>> Milage may vary on other architectures, but that's not a concern here.
>
> I don't understand, though, why you would want to implement a generally
> useful facility (make the kernel trap so you can do a post-mortem
> analysis) in a way that's only safe for the ARM port.
>

Each Linux kernel architecture has in its architecture specific bug.h an
implementation that is deemed by the architecture maintainers to work.
As far as I know, few if any of these use __builtin_trap().

Some could be converted to __builtin_trap(), others cannot (x86 for
example). If we enhanced __builtin_trap() to take an argument for the
trap code, MIPS could be converted. But as it stands now
__builtin_trap() is not very useful.

As more architectures start adding funky tables that get generated by
the inline asm (as in x86), __builtin_trap() becomes less useful.

David Daney