Messages in this thread | | | Date | Fri, 3 Oct 2003 07:34:11 +0100 | From | Jamie Lokier <> | Subject | Re: idt change in a running kernel? what locking? |
| |
Catalin BOIE wrote: > What may happen if I modify idt on a running kernel? > It's lock_kernel enough?
lock_kernel won't help at all. It doesn't disable interrupts.
It's more likely, you want to use get_cpu()/put_cpu() to prevent the current kernel thread from being pre-empted to a different CPU.
> Of course that the new location contain a valid idt table.
If the new table has the same entries as the old one for all interrupts which are enabled it should be fine. "lidt" is an atomic operation with respect to interrupts.
If you are intending to change idt on all CPUs, you'll need something more complicated.
-- Jamie - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |