Skip to contentSkip to conversation

question for ia32/linux experts

DISCUSSION Kanoj Sarcar 1 participant 1 message May 7, 1999 Memory management

lore
Share & tools
lore
#0 lore raw

Hi all,

I have a question about the RESTORE_ALL macro in kern/arch/i386/kernel/entry.S.

The macro seems to imply that the "popl %ds", "popl %es" and "iret" might take faults/exceptions. Exactly how can you force these conditions in Linux? It seems to me that a user program can not just fill in arbitrary values into ds/es before a system call (since the processor would check the validity of the segment register contents at load time in user space), forcing the kernel to take the exception path for the popl's.

The "iret" might have a problem, possibly if the user invoked a system call that unmapped his code or stack, but it seems to me that should cause page_fault from a user mode eip (instead of from kernel mode with the eip pointing to the iret instruction). What else can force an exception in this case?

Thanks. Please CC me ([email protected]) on any replies.

Kanoj

PS - Any code snippets that trigger these conditions will be greatly appreciated ...

--
To unsubscribe, send a message with 'unsubscribe linux-mm my@address' in the body to [email protected]. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/