Re: oops in mm/memory.c remap_page_range() in 2.2.20

Rik van Riel (riel@conectiva.com.br)
Fri, 21 Dec 2001 15:30:19 -0200 (BRST)


On Fri, 21 Dec 2001, Greg KH wrote:
> On Fri, Dec 21, 2001 at 09:05:11AM -0800, Greg KH wrote:
> > Running "cvs update" on a 2.2.20 kernel with 16Mb of real memory I got
> > the following oops:
>
> Sorry, had /boot/System.map pointing to the wrong place, this is the
> correct symbols:

> >>EIP; c01194a0 <vmtruncate_list+c/a8> <=====

OK, lets take a look at the code in memory.c, first at line 736:

static void vmtruncate_list(struct vm_area_struct *mpnt, unsigned long
offset)
{
do {
struct mm_struct *mm = mpnt->vm_mm;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is the line where the system oopses, so vmtruncate_list
is being called with mpnt==0x00000002

Time to take a step back and look in vmtruncate(), line 769:

if (inode->i_mmap)
vmtruncate_list(inode->i_mmap, offset);
if (inode->i_mmap_shared)
vmtruncate_list(inode->i_mmap_shared, offset);

This suggests that you have a single-bit error somewhere in RAM
and vmtruncate_list() simply should never have been called.

kind regards,

Rik

-- 
DMCA, SSSCA, W3C?  Who cares?  http://thefreeworld.net/

http://www.surriel.com/ http://distro.conectiva.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/