Messages in this thread | | | Date | Wed, 21 Mar 2001 16:20:50 -0800 (PST) | From | Nigel Gamble <> | Subject | Re: [PATCH for 2.5] preemptible kernel |
| |
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
- 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/
| |