summaryrefslogtreecommitdiffstats
path: root/arch/mips/mm
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] remove set_page_count() outside mm/Nick Piggin2006-03-221-3/+3
| | | | | | | | | | | | | set_page_count usage outside mm/ is limited to setting the refcount to 1. Remove set_page_count from outside mm/, and replace those users with init_page_count() and set_page_refcounted(). This allows more debug checking, and tighter control on how code is allowed to play around with page->_count. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] mm: split highorder pagesNick Piggin2006-03-221-2/+3
| | | | | | | | | | | | | | | | | Have an explicit mm call to split higher order pages into individual pages. Should help to avoid bugs and be more explicit about the code's intention. Signed-off-by: Nick Piggin <npiggin@suse.de> Cc: Russell King <rmk@arm.linux.org.uk> Cc: David Howells <dhowells@redhat.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mundt <lethal@linux-sh.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Chris Zankel <chris@zankel.net> Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [MIPS] TX49XX has prefetch.Atsushi Nemoto2006-03-212-2/+9
| | | | | | | | | | The TX49XX has the prefetch instruction. It supports only Pref_Load (hint 0). Actually changes in this patch except for Kconfig are not have any effects, I added these changes to prevent misuse of unsupported hints. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Kill tlb-andes.c.Thiemo Seufer2006-03-213-260/+6
| | | | | | | Basically identical to c-r4k.c, so maintaining one is really enough. Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] War on whitespace: cleanup initial spaces followed by tabs.Ralf Baechle2006-03-211-9/+9
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Remove CONFIG_BUILD_ELF64.Ralf Baechle2006-03-211-13/+0
| | | | | | | This option is no longer usable with supported compilers. It will be replaced by usage of -msym32 in a separate patch. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] sc-rm7k.c cleanupAtsushi Nemoto2006-03-211-16/+9
| | | | | | | | Use blast_scache_range, blast_inv_scache_range for rm7k scache routine. Output code should be logically same. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] local_r4k_flush_cache_page fixAtsushi Nemoto2006-03-182-5/+9
| | | | | | | | | | If dcache_size != icache_size or dcache_size != scache_size, or set-associative cache, icache/scache does not flushed properly. Make blast_?cache_page_indexed() masks its index value correctly. Also, use physical address for physically indexed pcache/scache. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Scatter a bunch of __init over tlbex.c.Ralf Baechle2006-03-091-17/+17
| | | | | | Found by make buildcheck. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Initialize S-cache function pointers even on S-cache-less CPUs.Ralf Baechle2006-02-281-5/+11
| | | | | | | | | | | | When a CPU has no scache, the scache flushing functions currently aren't getting initialized and the NULL pointer is eventually called as a function. Initialize the scache flushing functions as a noop when there's no scache. Initial patch by me and most of the debugging done by Martin Michlmayr. Signed-off-by: Martin Michlmayr <tbm@cyrius.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Sibyte: #if CONFIG_* doesn't fly.Ralf Baechle2006-02-211-1/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Add protected_blast_icache_range, blast_icache_range, etc.Atsushi Nemoto2006-02-142-151/+23
| | | | | | | | | | Add blast_xxx_range(), protected_blast_xxx_range() etc. for common use. They are built by __BUILD_BLAST_CACHE_RANGE(). Use protected_cache_op() macro for various protected_ routines. Output code should be logically same. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Support /proc/kcore for MIPSDaniel Jacobowitz2006-02-071-0/+16
| | | | | | | | | | I'm pretty sure that the CKSEG0 bits are wrong, but I did need to cover that region - because the SB-1 kernel links at 0xffffffff80100000 or so, disassembly and printing static variables don't work unless the debugger can read that region. Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [MIPS] Remove wrong __user tags.Atsushi Nemoto2006-02-072-7/+5
| | | | | | | This fixes sparse warnings 'dereference of noderef expression'. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* MIPS: Rename MIPS_CPU_ISA_M{32,64} -> MIPS_CPU_ISA_M{32,64}R1.Ralf Baechle2006-01-101-2/+2
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [PATCH] mips: setup_zero_pages count 1Hugh Dickins2005-12-121-2/+2
| | | | | | | | | | Page count should be initialized to 1 on each of the MIPS empty zero pages, to avoid a bad_page warning whenever one of them is freed from all mappings. Signed-off-by: Hugh Dickins <hugh@veritas.com> Cc: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [MIPS] Use reset_page_mapcount to initialize empty_zero_page usage counter.Ralf Baechle2005-12-011-1/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* [PATCH] mm: init_mm without ptlockHugh Dickins2005-10-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First step in pushing down the page_table_lock. init_mm.page_table_lock has been used throughout the architectures (usually for ioremap): not to serialize kernel address space allocation (that's usually vmlist_lock), but because pud_alloc,pmd_alloc,pte_alloc_kernel expect caller holds it. Reverse that: don't lock or unlock init_mm.page_table_lock in any of the architectures; instead rely on pud_alloc,pmd_alloc,pte_alloc_kernel to take and drop it when allocating a new one, to check lest a racing task already did. Similarly no page_table_lock in vmalloc's map_vm_area. Some temporary ugliness in __pud_alloc and __pmd_alloc: since they also handle user mms, which are converted only by a later patch, for now they have to lock differently according to whether or not it's init_mm. If sources get muddled, there's a danger that an arch source taking init_mm.page_table_lock will be mixed with common source also taking it (or neither take it). So break the rules and make another change, which should break the build for such a mismatch: remove the redundant mm arg from pte_alloc_kernel (ppc64 scrapped its distinct ioremap_mm in 2.6.13). Exceptions: arm26 used pte_alloc_kernel on user mm, now pte_alloc_map; ia64 used pte_alloc_map on init_mm, now pte_alloc_kernel; parisc had bad args to pmd_alloc and pte_alloc_kernel in unused USE_HPPA_IOREMAP code; ppc64 map_io_page forgot to unlock on failure; ppc mmu_mapin_ram and ppc64 im_free took page_table_lock for no good reason. Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* SB1 cache exception handling.Andrew Isaacson2005-10-292-8/+51
| | | | | | | | Expand SB1 cache error handling by adding SB1_CEX_ALWAYS_FATAL and SB1_CEX_STALL, allowing configurable behavior on cache errors. Signed-Off-By: Andy Isaacson <adi@broadcom.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Add support for SB1A CPU.Andrew Isaacson2005-10-291-0/+1
| | | | | Signed-Off-By: Andy Isaacson <adi@broadcom.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Fix zero length sys_cacheflushAtsushi Nemoto2005-10-291-0/+2
| | | | | | | | | Cacheflush(0, 0, 0) was crashing the system. This is because flush_icache_range(start, end) tries to flushing whole address space (0 - ~0UL) if both start and end are zero. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Rename page argument of flush_cache_page to something more descriptive.Ralf Baechle2005-10-291-16/+17
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Fix wrong comment.Ralf Baechle2005-10-291-1/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Fixup a few lose ends in explicit support for MIPS R1/R2.Ralf Baechle2005-10-291-2/+2
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Don't copy SB1 cache error handler to uncached memory.Ralf Baechle2005-10-291-1/+0
| | | | | | | | | This may have made sense on a paranoid day with pass 1 BCM1250 processors that were throwing cache error exception left and right for no good reason. On modern silicion that hardly makes sense and the code had gotten just an obscurity ... Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Fix stale comment in c-sb1.c.Andrew Isaacson2005-10-291-1/+1
| | | | | Signed-Off-By: Andrew Isaacson <adi@broadcom.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Cleanup the mess in cpu_cache_init.Ralf Baechle2005-10-295-54/+44
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Use R4000 TLB routines for SB1 also.Ralf Baechle2005-10-292-386/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Sync c-tx39.c with c-r4k.c.Atsushi Nemoto2005-10-291-4/+5
| | | | | | | | | tx39_flush_cache_range() does nothing if !cpu_has_dc_aliases. It should flush d-cache and invalidate i-cache since the TX39(H2) has separate I/D cache. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Add/Fix missing bit of R4600 hit cacheop workaround.Thiemo Seufer2005-10-292-1/+2
| | | | | Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Minor code cleanup.Thiemo Seufer2005-10-291-15/+15
| | | | | Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* R4600 v2.0 needs a nop before tlbp.Thiemo Seufer2005-10-291-0/+2
| | | | | Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Don't set up a sg dma address if we have no page address for some reason.Thiemo Seufer2005-10-291-38/+8
| | | | | | | Code cleanup. Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* More .set push/pop.Thiemo Seufer2005-10-291-2/+2
| | | | | Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Let r4600 PRID detection match only legacy CPUs, cleanups.Thiemo Seufer2005-10-292-7/+10
| | | | | Signed-off-by: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Handle mtc0 - tlb write hazard for VR5432.Ralf Baechle2005-10-291-0/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Avoid SMP cacheflushes. This is a minor optimization of startup butRalf Baechle2005-10-294-29/+13
| | | | | | | will also avoid smp_call_function from doing stupid things when called from a CPU that is not yet marked online. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Philips PNX8550 support: MIPS32-like core with 2 Trimedias on it.Pete Popov2005-10-291-0/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* More AP / SP bits for the 34K, the Malta bits and things. Still wantsRalf Baechle2005-10-292-5/+3
| | | | | | a little polishing. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Mark a few variables __read_mostly.Ralf Baechle2005-10-291-1/+7
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* MIPS R2 instruction hazard handling.Ralf Baechle2005-10-291-0/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Detect the 34K.Ralf Baechle2005-10-291-0/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Define kmap_atomic_pfn() for MIPS.Ralf Baechle2005-10-291-0/+19
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Date: Fri Jul 8 20:10:17 2005 +0000Ralf Baechle2005-10-291-1/+1
| | | | | | Those literals are long. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Rename CONFIG_CPU_MIPS{32,64} to CONFIG_CPU_MIPS{32|64}_R1.Ralf Baechle2005-10-294-6/+6
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Avoid tlbw* hazards for the R4600/R4700/R5000.Maciej W. Rozycki2005-10-291-1/+6
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Inline ioremap() calls for constant addresses that map to KSEG1.Maciej W. Rozycki2005-10-291-12/+3
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Fix the diagnostic dump for the XTLB refill handler.Maciej W. Rozycki2005-10-291-1/+8
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Fix a diagnostic message.Maciej W. Rozycki2005-10-291-1/+1
| | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* Use macros for the RM7k cp0.config bits instead of magic numbers.Maciej W. Rozycki2005-10-291-9/+9
| | | | | | Minor clean-ups. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
OpenPOWER on IntegriCloud