i386: Fix null interrupt handler (ignore_int) message ?

2007-09-24 Thread Ahmed S. Darwish
Hi all,

I'm getting little confused by some ignore_int (null interrupt handler) code in
head.S. Code notifies the user about the unknown raised interrupt by below
string:

int_msg:
.asciz "Unknown interrupt or fault at EIP %p %p %p\n"

and prints it using below code path:

ignore_int:
pushl %eax; pushl %ecx; pushl %edx; pushl %es; pushl %ds
[...]
pushl 16(%esp); pushl 24(%esp); 
pushl 32(%esp); pushl 40(%esp); 
pushl $int_msg
[...]
call printk

** But here's the state of stack before calling printk:

 ???<-- 40(%esp) 
 ???<-- 36(%esp)
 --> (Automatically pushed by the processor)
 %eflags<-- 32(%esp)
 %cs<-- 28(%esp)
 %eip   <-- 24(%esp)
 error-code <-- 20(%esp)
 --> (Pushed by first lines of ignore_int)
 %eax   <-- 16(%esp)
 %ecx   <-- 12(%esp)
 %edx   <-- 8(%esp)
 %es<-- 4(%esp)
 %ds<-- %esp  

Does 40(%esp) hold a meaningfule value here ?. Also why passing 4 arguments 
after
the string to prinkt while the string only has 3 conversion specifications 
(i.e.,
3 * %p) ?.

Best regards,

-- 
Ahmed S. Darwish
HomePage: http://darwish.07.googlepages.com
Blog: http://darwish-07.blogspot.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


i386: Fix null interrupt handler (ignore_int) message ?

2007-09-24 Thread Ahmed S. Darwish
Hi all,

I'm getting little confused by some ignore_int (null interrupt handler) code in
head.S. Code notifies the user about the unknown raised interrupt by below
string:

int_msg:
.asciz Unknown interrupt or fault at EIP %p %p %p\n

and prints it using below code path:

ignore_int:
pushl %eax; pushl %ecx; pushl %edx; pushl %es; pushl %ds
[...]
pushl 16(%esp); pushl 24(%esp); 
pushl 32(%esp); pushl 40(%esp); 
pushl $int_msg
[...]
call printk

** But here's the state of stack before calling printk:

 ???-- 40(%esp) 
 ???-- 36(%esp)
 -- (Automatically pushed by the processor)
 %eflags-- 32(%esp)
 %cs-- 28(%esp)
 %eip   -- 24(%esp)
 error-code -- 20(%esp)
 -- (Pushed by first lines of ignore_int)
 %eax   -- 16(%esp)
 %ecx   -- 12(%esp)
 %edx   -- 8(%esp)
 %es-- 4(%esp)
 %ds-- %esp  

Does 40(%esp) hold a meaningfule value here ?. Also why passing 4 arguments 
after
the string to prinkt while the string only has 3 conversion specifications 
(i.e.,
3 * %p) ?.

Best regards,

-- 
Ahmed S. Darwish
HomePage: http://darwish.07.googlepages.com
Blog: http://darwish-07.blogspot.com
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/