Re: Sparc: Kernel 2.6.13 to 2.6.15-rc2 bug when running X11

From: David S. Miller
Date: Mon Dec 12 2005 - 00:07:05 EST


From: "J.O. Aho" <trizt@xxxxxxxxx>
Date: Sun, 11 Dec 2005 00:22:22 +0100 (CET)

> sbusfb_mmap: start[71800000] size[410000] off[4000000]
> sbusfb_mmap: page[0] map_size[2000]
> sbusfb_mmap: map_size is now 2000
> IO[X:6712]:
> remap_pfn_range(s[71800000]e[71c10000],f[71800000],pfn[1fc0060],sz[2000],prot[80000000000006b0])
> sbusfb_mmap: page[2000] map_size[2000]
> sbusfb_mmap: map_size is now 2000
> IO[X:6712]:
> remap_pfn_range(s[71800000]e[71c10000],f[71802000],pfn[1fc0060],sz[2000],prot[80000000000006b0])

This is the trace we needed.

That last line is impossible, the debugging of the last 3 lines shows
that:

1) "page" is equal to 0x2000
2) "map_size" is equal to 0x2000

Furthermore, the first line shows that:

3) "vma->vm_start" is 0x71800000

The io_remap_pfn_range() call in drivers/video/sbuslib.c is:

r = io_remap_pfn_range(vma,
vma->vm_start + page,
MK_IOSPACE_PFN(iospace,
map_offset >> PAGE_SHIFT),
map_size,
vma->vm_page_prot);

This means, it passes in "vma->vm_start + page" in as the start
address.

Yet the last line, printed by the tracing code in io_remap_pfn_range()
is getting 0x71800000, when it should be 0x71802000.

I strongly believe your kernel is being miscompiled by whatever
gcc is being used to build your kernels.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/