lkml.org 
[lkml]   [2003]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: 2.5.74-mm2 + nvidia (and others)
Date
Am Monday 07 July 2003 17:08 schrieb Christian Axelsson:
> Ok, running fine with 2.5.74-mm2 but when I try to insert the nvidia
> module (with patches from www.minion.de applied) it gives
>
> nvidia: Unknown symbol pmd_offset
>
> in dmesg. The vmware vmmon module gives the same error (the others wont
> compile but thats a different story).
>
> The nvidia module works fine under plain 2.5.74.

The problem is the highpmd patch in -mm2. There are two options:
1. Revert the highpmd patch.
2. Apply the attached patch to the NVIDIA kernel module sources.

Best regards
Thomas Schlichter
--- NVIDIA_kernel-1.0-4363/nv-linux.h.orig Sun Jul 6 14:42:34 2003
+++ NVIDIA_kernel-1.0-4363/nv-linux.h Mon Jul 7 14:57:02 2003
@@ -225,6 +225,18 @@
}
#endif

+#if defined(pmd_offset_map)
+#define NV_PMD_OFFSET(address, pg_dir, pg_mid_dir) \
+ { \
+ pmd_t *pg_mid_dir__ = pmd_offset_map(pg_dir, address); \
+ pg_mid_dir = *pg_mid_dir__; \
+ pmd_unmap(pg_mid_dir__); \
+ }
+#else
+#define NV_PMD_OFFSET(address, pg_dir, pg_mid_dir) \
+ pg_mid_dir = *pmd_offset(pg_dir, address)
+#endif
+
#define NV_PAGE_ALIGN(addr) ( ((addr) + PAGE_SIZE - 1) / PAGE_SIZE)
#define NV_MASK_OFFSET(addr) ( (addr) & (PAGE_SIZE - 1) )

--- NVIDIA_kernel-1.0-4363/nv.c.orig Sun Jul 6 14:45:36 2003
+++ NVIDIA_kernel-1.0-4363/nv.c Sun Jul 6 14:58:55 2003
@@ -2084,7 +2084,7 @@
nv_get_phys_address(unsigned long address)
{
pgd_t *pg_dir;
- pmd_t *pg_mid_dir;
+ pmd_t pg_mid_dir;
pte_t pte;

#if defined(NVCPU_IA64)
@@ -2105,11 +2105,12 @@
if (pgd_none(*pg_dir))
goto failed;

- pg_mid_dir = pmd_offset(pg_dir, address);
- if (pmd_none(*pg_mid_dir))
+ NV_PMD_OFFSET(address, pg_dir, pg_mid_dir);
+
+ if (pmd_none(pg_mid_dir))
goto failed;

- NV_PTE_OFFSET(address, pg_mid_dir, pte);
+ NV_PTE_OFFSET(address, &pg_mid_dir, pte);

if (!pte_present(pte))
goto failed;
\
 
 \ /
  Last update: 2005-03-22 13:46    [W:0.153 / U:0.344 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site