[PARISC] Fix IOREMAP with a 64-bit kernel
authorHelge Deller <deller@parisc-linux.org>
Tue, 21 Mar 2006 23:01:15 +0000 (16:01 -0700)
committerKyle McMartin <kyle@hera.kernel.org>
Thu, 30 Mar 2006 17:48:44 +0000 (17:48 +0000)
We were only copying 32-bits of the PTE/PFN, not the full 52-bits.

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
arch/parisc/kernel/entry.S

index 9af4b22a6d77e793a2600eec96529fd2e2183641..6d17c0a3431b63d293db6e30e0e7e5c6051d8595 100644 (file)
        extrd,u,*=      \pte,_PAGE_GATEWAY_BIT+32,1,%r0
        depd            %r0,11,2,\prot  /* If Gateway, Set PL2 to 0 */
 
-       /* Get rid of prot bits and convert to page addr for iitlbt */
+       /* Get rid of prot bits and convert to page addr for iitlbt and idtlbt */
 
        depd            %r0,63,PAGE_SHIFT,\pte
-       extrd,u         \pte,56,32,\pte
+       extrd,s         \pte,(63-PAGE_SHIFT)+(63-58),64-PAGE_SHIFT,\pte
        .endm
 
        /* Identical macro to make_insert_tlb above, except it
 
        /* Get rid of prot bits and convert to page addr for iitlba */
 
-       depi            0,31,12,\pte
+       depi            0,31,PAGE_SHIFT,\pte
        extru           \pte,24,25,\pte
 
        .endm