Re: [PATCH] kernel BUG at page_alloc.c:220 - oops in 2.4.19

Emiliano Gabrielli (Emiliano.Gabrielli@roma2.infn.it)
Fri, 18 Oct 2002 12:18:33 +0200


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@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++;

__

Emiliano 'AlberT' Gabrielli

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