Re: Linux 2.4.1-ac15

Alan Cox (alan@lxorguk.ukuu.org.uk)
Mon, 19 Feb 2001 11:35:08 +0000 (GMT)


> The module list is modified atomically, so either we search the new table
> or we don't, but we never see intermediate states. Not searching the new
> table shouldn't be a problem as we shouldn't run module code until
> sys_init_module time.

The problem isnt running module code. What happens in this case

mod->next = module_list;
module_list = mod; /* link it in */

Note no write barrier.

Delete is even worse

We unlink the module
We free the memory

At the same time another cpu may be walking the exception table that we free.

-
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/