Re: [PATCH for 2.5] preemptible kernel

Nigel Gamble
2001-03-22T00:22:16Z

On Wed, 21 Mar 2001, Andrew Morton wrote:
> It's a problem for uniprocessors as well.
>
> Example:
>
> #define current_cpu_data boot_cpu_data
> #define pgd_quicklist (current_cpu_data.pgd_quick)
>
> extern __inline__ void free_pgd_fast(pgd_t *pgd)
> {
> *(unsigned long *)pgd = (unsigned long) pgd_quicklist;
> pgd_quicklist = (unsigned long *) pgd;
> pgtable_cache_size++;
> }
>
> Preemption could corrupt this list.

Thanks, Andrew, for pointing this out. I've added fixes to the patch
for this problem and the others in pgalloc.h. If you know of any other
similar problems on uniprocessors, please let me know.

Nigel Gamble nigel@nrg.org
Mountain View, CA, USA. http://www.nrg.org/

MontaVista Software nigel@mvista.com