more info on kernel BUG at page_alloc.c:225
ming lei
mlei30 at yahoo.com
Sat Aug 23 10:15:13 EST 2003
I should have said my version of linux2.4.19 is
ppc440GP port, so the line number is line 220 in
original linux 2.4.19 from kernel.org website. Be
clear, I printed the lines which panic occured:
219-> if (PageLRU(page))
220-> BUG();
-----------------------------------------------
I searched the web, following is the patch I am
interested. Can it solve the above problem?
On 02:39, venerdì 18 ottobre 2002, Gadad, Vijay wrote:
> I'm seeing an intermittent oops on a heavily loaded
SMP system (Compaq
> DL360 G2). I've read the messages suggesting this
is related to the nvidia
> driver, but I don't have that loaded.
>
> This is the vanilla 2.4.19 kernel, plus Intel's
e1000.o driver and the ipvs
> patch.
>
> Here's the ksymoops output:
>
> kernel BUG at page_alloc.c:220!
> invalid operand: 0000
> CPU: 1
> EIP: 0010:[rmqueue+509/592] Not tainted
this may be a patch:
[albert at yoda albert]$ diff -ruN page_alloc.c
new_page_alloc.c
--- page_alloc.c
+++ new_page_alloc.c
@@ -167,7 +167,7 @@
#define MARK_USED(index, order, area) \
__change_bit((index) >> (1+(order)),
(area)->map)
-static inline struct page * expand (zone_t *zone,
struct page *page,
+static inline struct page * expand(zone_t *zone,
struct page *page,
unsigned long index, int low, int high,
free_area_t * area)
{
unsigned long size = 1 << high;
@@ -215,7 +215,6 @@
zone->free_pages -= 1UL <<
order;
page = expand(zone, page,
index, order, curr_order,
area);
-
spin_unlock_irqrestore(&zone->lock, flags);
set_page_count(page, 1);
if (BAD_RANGE(zone,page))
@@ -224,6 +223,7 @@
BUG();
if (PageActive(page))
BUG();
+
spin_unlock_irqrestore(&zone->lock, flags);
return page;
}
curr_order++;
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list