Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC32]: Silence sparc32 warnings on missing syscalls.
[SPARC64]: Fix two kernel linear mapping setup bugs.

+45 -9
+12
arch/sparc64/kernel/entry.S
··· 2593 2593 retl 2594 2594 nop 2595 2595 .size sun4v_mmustat_info, .-sun4v_mmustat_info 2596 + 2597 + .globl sun4v_mmu_demap_all 2598 + .type sun4v_mmu_demap_all,#function 2599 + sun4v_mmu_demap_all: 2600 + clr %o0 2601 + clr %o1 2602 + mov HV_MMU_ALL, %o2 2603 + mov HV_FAST_MMU_DEMAP_ALL, %o5 2604 + ta HV_FAST_TRAP 2605 + retl 2606 + nop 2607 + .size sun4v_mmu_demap_all, .-sun4v_mmu_demap_all
+20 -9
arch/sparc64/mm/init.c
··· 1133 1133 } 1134 1134 } 1135 1135 1136 - static void __init kernel_physical_mapping_init(void) 1136 + static void __init init_kpte_bitmap(void) 1137 1137 { 1138 1138 unsigned long i; 1139 - #ifdef CONFIG_DEBUG_PAGEALLOC 1140 - unsigned long mem_alloced = 0UL; 1141 - #endif 1142 - 1143 - read_obp_memory("reg", &pall[0], &pall_ents); 1144 1139 1145 1140 for (i = 0; i < pall_ents; i++) { 1146 1141 unsigned long phys_start, phys_end; ··· 1144 1149 phys_end = phys_start + pall[i].reg_size; 1145 1150 1146 1151 mark_kpte_bitmap(phys_start, phys_end); 1152 + } 1153 + } 1147 1154 1155 + static void __init kernel_physical_mapping_init(void) 1156 + { 1148 1157 #ifdef CONFIG_DEBUG_PAGEALLOC 1158 + unsigned long i, mem_alloced = 0UL; 1159 + 1160 + for (i = 0; i < pall_ents; i++) { 1161 + unsigned long phys_start, phys_end; 1162 + 1163 + phys_start = pall[i].phys_addr; 1164 + phys_end = phys_start + pall[i].reg_size; 1165 + 1149 1166 mem_alloced += kernel_map_range(phys_start, phys_end, 1150 1167 PAGE_KERNEL); 1151 - #endif 1152 1168 } 1153 1169 1154 - #ifdef CONFIG_DEBUG_PAGEALLOC 1155 1170 printk("Allocated %ld bytes for kernel page tables.\n", 1156 1171 mem_alloced); 1157 1172 ··· 1403 1398 1404 1399 inherit_prom_mappings(); 1405 1400 1401 + read_obp_memory("reg", &pall[0], &pall_ents); 1402 + 1403 + init_kpte_bitmap(); 1404 + 1406 1405 /* Ok, we can use our TLB miss and window trap handlers safely. */ 1407 1406 setup_tba(); 1408 1407 ··· 1913 1904 "wrpr %0, %1, %%pstate" 1914 1905 : "=r" (pstate) 1915 1906 : "i" (PSTATE_IE)); 1916 - if (tlb_type == spitfire) { 1907 + if (tlb_type == hypervisor) { 1908 + sun4v_mmu_demap_all(); 1909 + } else if (tlb_type == spitfire) { 1917 1910 for (i = 0; i < 64; i++) { 1918 1911 /* Spitfire Errata #32 workaround */ 1919 1912 /* NOTE: Always runs on spitfire, so no
+9
include/asm-sparc/unistd.h
··· 333 333 334 334 #define NR_SYSCALLS 315 335 335 336 + /* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, 337 + * it never had the plain ones and there is no value to adding those 338 + * old versions into the syscall table. 339 + */ 340 + #define __IGNORE_setresuid 341 + #define __IGNORE_getresuid 342 + #define __IGNORE_setresgid 343 + #define __IGNORE_getresgid 344 + 336 345 #ifdef __KERNEL__ 337 346 #define __ARCH_WANT_IPC_PARSE_VERSION 338 347 #define __ARCH_WANT_OLD_READDIR
+4
include/asm-sparc64/hypervisor.h
··· 709 709 */ 710 710 #define HV_FAST_MMU_DEMAP_ALL 0x24 711 711 712 + #ifndef __ASSEMBLY__ 713 + extern void sun4v_mmu_demap_all(void); 714 + #endif 715 + 712 716 /* mmu_map_perm_addr() 713 717 * TRAP: HV_FAST_TRAP 714 718 * FUNCTION: HV_FAST_MMU_MAP_PERM_ADDR