Hi Ralf, Kill warnings: - Fix incorrect printf()-style format specifier - Move static inline get_insn_opcode() before first usage - Add missing cast of return value of page_address() - Refactor probe_tlb() to avoid unused variables on non-MIPS32/64 CPUs --- linux-mips-2.4.x/arch/mips/kernel/setup.c Mon May 5 16:23:41 2003 +++ linux/arch/mips/kernel/setup.c Wed May 7 11:48:49 2003 @@ -396,7 +396,7 @@ initrd_size); if (PHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) { printk("initrd extends beyond end of memory " - "(0x%08lx > 0x%08lx)\ndisabling initrd\n", + "(0x%08x > 0x%08lx)\ndisabling initrd\n", PHYSADDR(initrd_end), PFN_PHYS(max_low_pfn)); initrd_start = initrd_end = 0; --- linux-mips-2.4.x/arch/mips/kernel/traps.c Mon May 5 16:23:42 2003 +++ linux/arch/mips/kernel/traps.c Wed May 7 11:48:58 2003 @@ -488,6 +488,19 @@ force_sig(signal, current); } +static inline int get_insn_opcode(struct pt_regs *regs, unsigned int *opcode) +{ + unsigned int *epc; + + epc = (unsigned int *) regs->cp0_epc + + ((regs->cp0_cause & CAUSEF_BD) != 0); + if (!get_user(*opcode, epc)) + return 0; + + force_sig(SIGSEGV, current); + return 1; +} + /* * ll uses the opcode of lwc0 and sc uses the opcode of swc0. That is both * opcodes are supposed to result in coprocessor unusable exceptions if @@ -564,19 +577,6 @@ } force_sig(SIGFPE, current); -} - -static inline int get_insn_opcode(struct pt_regs *regs, unsigned int *opcode) -{ - unsigned int *epc; - - epc = (unsigned int *) regs->cp0_epc + - ((regs->cp0_cause & CAUSEF_BD) != 0); - if (!get_user(*opcode, epc)) - return 0; - - force_sig(SIGSEGV, current); - return 1; } asmlinkage void do_bp(struct pt_regs *regs) --- linux-mips-2.4.x/arch/mips/mm/cache.c Mon May 5 16:30:45 2003 +++ linux/arch/mips/mm/cache.c Wed May 7 11:49:15 2003 @@ -54,10 +54,9 @@ page = pte_page(pte); if (VALID_PAGE(page) && page->mapping && (page->flags & (1UL << PG_dcache_dirty))) { - if (pages_do_alias(page_address(page), address & PAGE_MASK)) { - addr = (unsigned long) page_address(page); + addr = (unsigned long)page_address(page); + if (pages_do_alias(addr, address & PAGE_MASK)) flush_data_cache_page(addr); - } ClearPageDcacheDirty(page); } --- linux-mips-2.4.x/arch/mips/mm/tlb-r4k.c Mon May 5 16:23:58 2003 +++ linux/arch/mips/mm/tlb-r4k.c Wed May 7 11:49:27 2003 @@ -339,24 +339,24 @@ static void __init probe_tlb(unsigned long config) { +#if defined(CONFIG_CPU_MIPS32) || defined (CONFIG_CPU_MIPS64) unsigned int prid, config1; prid = read_c0_prid() & 0xff00; - if (prid == PRID_IMP_RM7000 || !(config & (1 << 31))) - /* - * Not a MIPS32 complianant CPU. Config 1 register not - * supported, we assume R4k style. Cpu probing already figured - * out the number of tlb entries. - */ + if (prid != PRID_IMP_RM7000 && (config & (1 << 31))) { + config1 = read_c0_config1(); + if (!((config >> 7) & 3)) + panic("No MMU present"); + else + current_cpu_data.tlbsize = ((config1 >> 25) & 0x3f) + 1; return; - -#if defined(CONFIG_CPU_MIPS32) || defined (CONFIG_CPU_MIPS64) - config1 = read_c0_config1(); - if (!((config >> 7) & 3)) - panic("No MMU present"); - else - current_cpu_data.tlbsize = ((config1 >> 25) & 0x3f) + 1; + } #endif + /* + * Not a MIPS32 compliant CPU. Config 1 register not + * supported, we assume R4k style. Cpu probing already figured + * out the number of tlb entries. + */ } void __init r4k_tlb_init(void) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds