From: Itsuro O. <od...@us...> - 2006-03-13 06:44:24
|
Update of /cvsroot/mkdump/minik/3.0/2.6/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29403 Modified Files: minik_dump.c Log Message: fix for 2.6.9 x86_64 Index: minik_dump.c =================================================================== RCS file: /cvsroot/mkdump/minik/3.0/2.6/kernel/minik_dump.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** minik_dump.c 13 Mar 2006 00:34:05 -0000 1.5 --- minik_dump.c 13 Mar 2006 06:44:18 -0000 1.6 *************** *** 32,35 **** --- 32,36 ---- #include <linux/module.h> #include <linux/moduleparam.h> + #include <linux/version.h> #include <asm/tlbflush.h> #include <asm/setup.h> *************** *** 205,213 **** --- 206,217 ---- { pgd_t *pgd; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 12) pud_t *pud; + #endif pmd_t *pmd; pte_t *pte; pgd = pgd_offset_k(vaddr); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 12) if (pgd_none(*pgd)) { BUG(); *************** *** 224,227 **** --- 228,242 ---- } pmd = pmd_offset(pud, vaddr); + #else + if (pgd_none(*pgd)) { + pmd = (pmd_t *)get_zeroed_page(GFP_ATOMIC); + if (!pmd) { + BUG(); + return; + } + set_pgd(pgd, __pgd(__pa(pmd) | _KERNPG_TABLE | _PAGE_USER)); + } + pmd = pmd_offset(pgd, vaddr); + #endif if (pmd_none(*pmd)) { pte = (pte_t *)get_zeroed_page(GFP_ATOMIC); |