It trades robustness for slightly better space/code efficiency.
Such a trap based mechanism exists on x86 as well and we use it for BUG_ON().
We intentionally dont use it to generate warnings and dont override __WARN(),
because it would blow up way too often when a warning triggers in some
sensitive codepath that cannot take a trap.
Anyway, the warning obviously has to be fixed - but the boot crash itself is
PowerPC's own doing.
Ingo
--