https://lkml.org/lkml/2011/2/28/565 I have tested this patch on my system(linux 2.6.35-android) and it is working perfectly fine so wanted to understand this patch.Will this patch be included in mainline? I have few question from this thread.As my understanding of assembly is bit limited I would appreciate if someone can just say yes/no and probably add bit of words. > This implementation uses an undefined instruction to implement BUG, and > sets up > a bug table containing the relevant information. Many version of gcc do > not > support %c properly for ARM (inserting a # when they shouldn't) so we work > around this using distasteful macro magic. This undefined instruction should cause data abort ? > +#define BUG() _BUG(__FILE__, __LINE__, BUG_INSTR_VALUE) > +#define _BUG(file, line, value) __BUG(file, line, value) > +#define __BUG(__file, __line, __value) \ > +do { \ > + BUILD_BUG_ON(sizeof(struct bug_entry) != 12); \ > + asm volatile("1:\t" BUG_INSTR_TYPE #__value "\n" \ > + ".pushsection .rodata.str, \"aMS\", 1\n" \ > + "2:\t.asciz " #__file "\n" \ > + ".popsection\n" \ > + ".pushsection __bug_table,\"a\"\n" \ > + "3:\t.word 1b, 2b\n" \ > + "\t.hword " #__line ", 0\n" \ > + ".popsection"); \ > + unreachable(); \ > +} while (0) Above piece of code i couldn't understand.As i understand this should do same as original BUG() definition plus it should print the function where BUG() had originally happened instead of "PC at _bug".I think in this code some data(guess:function name ,line no) is pushed on the stack and then popped but how this data is printed on console? So kindly enlighten me on this piece of code or some pointers.Is there any thread which explains about kernel fault process? _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies