Re: idt change in a running kernel? what locking?

From: Jamie Lokier
Date: Fri Oct 03 2003 - 01:35:30 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/