This is the same problem I mentioned yesterday to the list. Nobody
should ever use page->virtual directly, it's not there in -aa when
highmem is disabled to save memory and increase performance, if it would
be in C or python it would be a private field of the class to make it
explicit (nitpicking, in python __ just rename and it's techincally
still visible from the outside of the class).
page_address(page) must be used instead of page->virtual.
Anyways here an incremental patch that will fix your compile problem
(Linus please include):
--- 2.4.8aa1/drivers/char/drm/ati_pcigart.h.~1~ Sat Aug 11 15:54:25 2001
+++ 2.4.8aa1/drivers/char/drm/ati_pcigart.h Sat Aug 11 15:54:55 2001
@@ -111,7 +111,7 @@
memset( pci_gart, 0, ATI_MAX_PCIGART_PAGES * sizeof(u32) );
for ( i = 0 ; i < pages ; i++ ) {
- page_base = virt_to_bus( entry->pagelist[i]->virtual );
+ page_base = virt_to_bus( page_address(entry->pagelist[i]) );
for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) {
*pci_gart++ = cpu_to_le32( page_base );
page_base += ATI_PCIGART_PAGE_SIZE;
--- 2.4.8aa1/drivers/char/drm/r128_cce.c.~1~ Sat Aug 11 08:04:05 2001
+++ 2.4.8aa1/drivers/char/drm/r128_cce.c Sat Aug 11 15:55:51 2001
@@ -351,10 +351,10 @@
page_ofs = tmp_ofs >> PAGE_SHIFT;
R128_WRITE( R128_PM4_BUFFER_DL_RPTR_ADDR,
- virt_to_bus(entry->pagelist[page_ofs]->virtual));
+ virt_to_bus(page_address(entry->pagelist[page_ofs])));
DRM_DEBUG( "ring rptr: offset=0x%08lx handle=0x%08lx\n",
- virt_to_bus(entry->pagelist[page_ofs]->virtual),
+ virt_to_bus(page_address(entry->pagelist[page_ofs])),
entry->handle + tmp_ofs );
}
--- 2.4.8aa1/drivers/char/drm/radeon_cp.c.~1~ Sat Aug 11 08:04:05 2001
+++ 2.4.8aa1/drivers/char/drm/radeon_cp.c Sat Aug 11 15:56:33 2001
@@ -624,10 +624,10 @@
page_ofs = tmp_ofs >> PAGE_SHIFT;
RADEON_WRITE( RADEON_CP_RB_RPTR_ADDR,
- virt_to_bus(entry->pagelist[page_ofs]->virtual));
+ virt_to_bus(page_address(entry->pagelist[page_ofs])));
DRM_DEBUG( "ring rptr: offset=0x%08lx handle=0x%08lx\n",
- virt_to_bus(entry->pagelist[page_ofs]->virtual),
+ virt_to_bus(page_address(entry->pagelist[page_ofs])),
entry->handle + tmp_ofs );
}
Also please include this below one too that I just addressed previously
for my own compilations. (Eyal, you don't need to apply the below one
of course)
--- 2.4.8pre7aa1/drivers/char/drm/drm_vm.h.~1~ Thu Aug 9 01:37:46 2001
+++ 2.4.8pre7aa1/drivers/char/drm/drm_vm.h Thu Aug 9 01:42:22 2001
@@ -107,7 +107,7 @@
if( !pmd_present( *pmd ) ) return NOPAGE_OOM;
pte = pte_offset( pmd, i );
if( !pte_present( *pte ) ) return NOPAGE_OOM;
- physical = (unsigned long)pte_page( *pte )->virtual;
+ physical = (unsigned long)page_address(pte_page( *pte ));
atomic_inc(&virt_to_page(physical)->count); /* Dec. by kernel */
DRM_DEBUG("0x%08lx => 0x%08lx\n", address, physical);
Andrea
-
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/