Messages in this thread | | | Date | Wed, 06 Feb 2002 11:47:47 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH] __free_pages_ok oops |
| |
Hugh Dickins wrote: > > Sorry, no solution, but maybe another oops in __free_pages_ok might help?
What problem are you trying to solve?
> > --- 2.4.18-pre8/mm/page_alloc.c Tue Feb 5 12:55:36 2002 > +++ linux/mm/page_alloc.c Wed Feb 6 18:31:07 2002 > @@ -73,9 +73,11 @@ > /* Yes, think what happens when other parts of the kernel take > * a reference to a page in order to pin it for io. -ben > */ > - if (PageLRU(page)) > + if (PageLRU(page)) { > + if (in_interrupt()) > + BUG(); > lru_cache_del(page); > - > + }
Yes. lru_cache_del() in interrupt context will deadlock on SMP or wreck the LRU list on UP. I can't see how we can ever perform the final release of a PageLRU page in interrupt context but I agree this test is a good one.
- - 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/
| |