[lkml]   [2003]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subjectwhy does it *not* crash?


I'm trying to understand memory management on IA-32. I already read a
lot, and also coded a lot in assembler to test some things out.

However, one thing, I just don't understand and I can't seem to find a
hint how it works.

Wenn I write a very small kernel module, which just sets ESP to
0x00000000, shouldn't the processor shut down and the mainboard reset?
But no: it causes an oops, kills the process where the error originated from
(in this case insmod, since it was loading the module) and happily
continues working as if nothing ever happened.

But how can this work? I know there are special fields in the TSS which
specify what to load ESP with in case of a privilege transition, but
there is no privilege transition since I'm already in CPL 0, or is

Even the IA-32 developer's manual says, that giving ESP a value of 0 in
CPL 0 should shut down the processer, since there's no stack for
anything anymore.

So, what's the magic in Linux? :)

Thanks in advance,

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:33    [W:0.021 / U:4.264 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site