- Aug 08, 2008
-
-
Russell King authored
The existing code tries to get the pmd for the temporary page table by doing: pgd = pgd_alloc(&init_mm); pmd = pmd_offset(pgd, PHYS_OFFSET); Since we have a two level page table, pmd_offset() is a no-op, so this just has a casting effect from a pgd to a pmd - the address argument is unused. So this can't work. Normally, we'd do: pgd = pgd_offset(&init_mm, PHYS_OFFSET); ... pmd = pmd_offset(pgd, PHYS_OFFSET); to get the pmd you want. However, pgd_offset() takes the mm_struct, not the (unattached) pgd we just allocated. So, instead use: pgd = pgd_alloc(&init_mm); pmd = pmd_offset(pgd + pgd_index(PHYS_OFFSET), PHYS_OFFSET); Reported-by:
Antti P Miettinen <ananaza@iki.fi> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
- Aug 07, 2008
-
-
Russell King authored
This just leaves include/asm-arm/plat-* to deal with. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Russell King authored
Remove includes of asm/hardware.h in addition to asm/arch/hardware.h. Then, since asm/hardware.h only exists to include asm/arch/hardware.h, update everything to directly include asm/arch/hardware.h and remove asm/hardware.h. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Russell King authored
There are 43 includes of asm/mach-types.h by files that don't reference anything from that file. Remove these unnecessary includes. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Russell King authored
Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
- Aug 03, 2008
-
-
Russell King authored
Move platform independent header files to arch/arm/include/asm, leaving those in asm/arch* and asm/plat* alone. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
- Jul 26, 2008
-
-
Srinivasa D S authored
Currently list of kretprobe instances are stored in kretprobe object (as used_instances,free_instances) and in kretprobe hash table. We have one global kretprobe lock to serialise the access to these lists. This causes only one kretprobe handler to execute at a time. Hence affects system performance, particularly on SMP systems and when return probe is set on lot of functions (like on all systemcalls). Solution proposed here gives fine-grain locks that performs better on SMP system compared to present kretprobe implementation. Solution: 1) Instead of having one global lock to protect kretprobe instances present in kretprobe object and kretprobe hash table. We will have two locks, one lock for protecting kretprobe hash table and another lock for kretporbe object. 2) We hold lock present in kretprobe object while we modify kretprobe instance in kretprobe object and we hold per-hash-list lock while modifying kretprobe instances present in that hash list. To prevent deadlock, we never grab a per-hash-list lock while holding a kretprobe lock. 3) We can remove used_instances from struct kretprobe, as we can track used instances of kretprobe instances using kretprobe hash table. Time duration for kernel compilation ("make -j 8") on a 8-way ppc64 system with return probes set on all systemcalls looks like this. cacheline non-cacheline Un-patched kernel aligned patch aligned patch =============================================================================== real 9m46.784s 9m54.412s 10m2.450s user 40m5.715s 40m7.142s 40m4.273s sys 2m57.754s 2m58.583s 3m17.430s =========================================================== Time duration for kernel compilation ("make -j 8) on the same system, when kernel is not probed. ========================= real 9m26.389s user 40m8.775s sys 2m7.283s ========================= Signed-off-by:
Srinivasa DS <srinivasa@in.ibm.com> Signed-off-by:
Jim Keniston <jkenisto@us.ibm.com> Acked-by:
Ananth N Mavinakayanahalli <ananth@in.ibm.com> Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> Cc: David S. Miller <davem@davemloft.net> Cc: Masami Hiramatsu <mhiramat@redhat.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- Jul 25, 2008
-
-
Andrea Righi authored
On 32-bit architectures PAGE_ALIGN() truncates 64-bit values to the 32-bit boundary. For example: u64 val = PAGE_ALIGN(size); always returns a value < 4GB even if size is greater than 4GB. The problem resides in PAGE_MASK definition (from include/asm-x86/page.h for example): #define PAGE_SHIFT 12 #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) #define PAGE_MASK (~(PAGE_SIZE-1)) ... #define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK) The "~" is performed on a 32-bit value, so everything in "and" with PAGE_MASK greater than 4GB will be truncated to the 32-bit boundary. Using the ALIGN() macro seems to be the right way, because it uses typeof(addr) for the mask. Also move the PAGE_ALIGN() definitions out of include/asm-*/page.h in include/linux/mm.h. See also lkml discussion: http://lkml.org/lkml/2008/6/11/237 [akpm@linux-foundation.org: fix drivers/media/video/uvc/uvc_queue.c] [akpm@linux-foundation.org: fix v850] [akpm@linux-foundation.org: fix powerpc] [akpm@linux-foundation.org: fix arm] [akpm@linux-foundation.org: fix mips] [akpm@linux-foundation.org: fix drivers/media/video/pvrusb2/pvrusb2-dvb.c] [akpm@linux-foundation.org: fix drivers/mtd/maps/uclinux.c] [akpm@linux-foundation.org: fix powerpc] Signed-off-by:
Andrea Righi <righi.andrea@gmail.com> Cc: <linux-arch@vger.kernel.org> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- Jul 24, 2008
-
-
Jason Wessel authored
This patch adds the ARCH=arm specific a kgdb backend, originally written by Deepak Saxena <dsaxena@plexity.net> and George Davis <gdavis@mvista.com>. Geoff Levand <geoffrey.levand@am.sony.com>, Nicolas Pitre, Manish Lachwani, and Jason Wessel have contributed various fixups here as well. The KGDB patch makes one change to the core ARM architecture such that the traps are initialized early for use with the debugger or other subsystems. [ mingo@elte.hu: small cleanups. ] [ ben-linux@fluff.org: fixed early_trap_init ] Signed-off-by:
Jason Wessel <jason.wessel@windriver.com> Acked-by:
Deepak Saxena <dsaxena@plexity.net>
-
- Jul 22, 2008
-
-
Kay Sievers authored
Signed-off-by:
Kay Sievers <kay.sievers@vrfy.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Andi Kleen authored
This allow to dynamically generate attributes and share show/store functions between attributes. Right now most attributes are generated by special macros and lots of duplicated code. With the attribute passed it's instead possible to attach some data to the attribute and then use that in shared low level functions to do different things. I need this for the dynamically generated bank attributes in the x86 machine check code, but it'll allow some further cleanups. I converted all users in tree to the new show/store prototype. It's a single huge patch to avoid unbisectable sections. Runtime tested: x86-32, x86-64 Compiled only: ia64, powerpc Not compile tested/only grep converted: sh, arm, avr32 Signed-off-by:
Andi Kleen <ak@linux.intel.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
Greg Kroah-Hartman authored
We have the dev_printk() variants for this kind of thing, use them instead of directly trying to access the bus_id field of struct device. This is done in order to remove bus_id entirely. Cc: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by:
Greg Kroah-Hartman <gregkh@suse.de>
-
- Jul 19, 2008
-
-
Thomas Gleixner authored
Jack Ren and Eric Miao tracked down the following long standing problem in the NOHZ code: scheduler switch to idle task enable interrupts Window starts here ----> interrupt happens (does not set NEED_RESCHED) irq_exit() stops the tick ----> interrupt happens (does set NEED_RESCHED) return from schedule() cpu_idle(): preempt_disable(); Window ends here The interrupts can happen at any point inside the race window. The first interrupt stops the tick, the second one causes the scheduler to rerun and switch away from idle again and we end up with the tick disabled. The fact that it needs two interrupts where the first one does not set NEED_RESCHED and the second one does made the bug obscure and extremly hard to reproduce and analyse. Kudos to Jack and Eric. Solution: Limit the NOHZ functionality to the idle loop to make sure that we can not run into such a situation ever again. cpu_idle() { preempt_disable(); while(1) { tick_nohz_stop_sched_tick(1); <- tell NOHZ code that we are in the idle loop while (!need_resched()) halt(); tick_nohz_restart_sched_tick(); <- disables NOHZ mode preempt_enable_no_resched(); schedule(); preempt_disable(); } } In hindsight we should have done this forever, but ... /me grabs a large brown paperbag. Debugged-by:
Jack Ren <jack.ren@marvell.com>,> Debugged-by:
eric miao <eric.y.miao@gmail.com> Signed-off-by:
Thomas Gleixner <tglx@linutronix.de>
-
- Jul 03, 2008
-
-
Russell King authored
ecard_address() is obsolete, and has been marked deprecated since at least 2.6.12-rc2. All in-tree users have been updated to use the new approach, so it's time to remove this. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Ingo Molnar authored
Andrew Morton reported this against linux-next: ERROR: ".save_stack_trace" [tests/backtracetest.ko] undefined! Reported-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Jun 26, 2008
-
-
Jens Axboe authored
It's not even passed on to smp_call_function() anymore, since that was removed. So kill it. Acked-by:
Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Reviewed-by:
Paul E. McKenney <paulmck@linux.vnet.ibm.com> Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
-
Jens Axboe authored
This converts arm to use the new helpers for smp_call_function() and friends, and adds support for smp_call_function_single(). Fixups and testing done by Catalin Marinas <catalin.marinas@arm.com> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
-
- Jun 24, 2008
-
-
Abhishek Sagar authored
Record the address of the mcount call-site. Currently all archs except sparc64 record the address of the instruction following the mcount call-site. Some general cleanups are entailed. Storing mcount addresses in rec->ip enables looking them up in the kprobe hash table later on to check if they're kprobe'd. Signed-off-by:
Abhishek Sagar <sagar.abhishek@gmail.com> Cc: davem@davemloft.net Cc: Steven Rostedt <rostedt@goodmis.org> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Jun 23, 2008
-
-
Nicolas Pitre authored
Available for !SMP only at the moment. From Russell: |Basically, if a thread is running on a CPU, thread_saved_fp() is invalid. |So, the question is: what guarantees do we have here that 'tsk' is not |running on another CPU? Signed-off-by:
Nicolas Pitre <nico@marvell.com> Tested-by:
Lennert Buytenhek <buytenh@marvell.com> Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com>
-
- Jun 10, 2008
-
-
Abhishek Sagar authored
Remove the unneeded function ftrace_ip_converted(). Signed-off-by:
Abhishek Sagar <sagar.abhishek@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Jun 02, 2008
-
-
Abhishek Sagar authored
Follow suit from kprobe implementations on other archs and make kretprobe_trampoline non-static. Ftrace implmentation (more specifically, kernel/trace/trace.c) requires access to it (see-> http://kerneltrap.org/mailarchive/linux-kernel/2008/5/27/1955234 ). Signed-off-by:
Abhishek Sagar <sagar.abhishek@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
Abhishek Sagar authored
Core ftrace support for the ARM architecture, which includes support for dynamic function tracing. Signed-off-by:
Abhishek Sagar <sagar.abhishek@gmail.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- May 30, 2008
-
-
Uwe Kleine-König authored
This gets rid of two static variables (one of them being __initdata) and a static function. Signed-off-by:
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Acked-by:
Uli Luckas <u.luckas@road.de>
-
Uwe Kleine-König authored
atags.c was the only user of KEXEC_BOOT_PARAMS_SIZE and kexec.h was only included to get that definition. Signed-off-by:
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Acked-by:
Uli Luckas <u.luckas@road.de>
-
- May 18, 2008
-
-
Adrian Bunk authored
This patch adds the missing MODULE_LICENSE("GPL"). Signed-off-by:
Adrian Bunk <bunk@kernel.org> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Russell King authored
Martin Michlmayr reported that fuse complains: ERROR: "copy_page" [fs/fuse/fuse.ko] undefined! so export the needed function. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
- May 17, 2008
-
-
Al Viro authored
Signed-off-by:
Al Viro <viro@zeniv.linux.org.uk>
-
- May 13, 2008
-
-
Russell King authored
dyntick is superseded by the clocksource/clockevent infrastructure, using the NO_HZ configuration option. No one implements dyntick on ARM anymore, so it's pointless keeping it around. Remove dyntick support. Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
- May 04, 2008
-
-
Ulrich Drepper authored
This replaces the duplicated arch-specific versions of "sys_pipe()" with one unified implementation. This removes almost 250 lines of duplicated code. It's marked __weak, so that *if* an architecture wants to override the default implementation it can do so by simply having its own replacement version, since many architectures use alternate calling conventions for the 'pipe()' system call for legacy reasons (ie traditional UNIX implementations often return the two file descriptors in registers) I still haven't changed the cris version even though Linus says the BKL isn't needed. The arch maintainer can easily do it if there are really no obstacles. Signed-off-by:
Ulrich Drepper <drepper@redhat.com> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- Apr 29, 2008
-
-
Christoph Lameter authored
Signed-off-by:
Christoph Lameter <clameter@sgi.com> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Alexey Dobriyan authored
Signed-off-by:
Alexey Dobriyan <adobriyan@sw.ru> Acked-by:
Russell King <rmk+kernel@arm.linux.org.uk> Cc: Yani Ioannou <yani.ioannou@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Alexey Dobriyan authored
Remove proc_root export. Creation and removal works well if parent PDE is supplied as NULL -- it worked always that way. So, one useless export removed and consistency added, some drivers created PDEs with &proc_root as parent but removed them as NULL and so on. Signed-off-by:
Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Alexey Dobriyan authored
Remove proc_bus export and variable itself. Using pathnames works fine and is slightly more understandable and greppable. Signed-off-by:
Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
Lennert Buytenhek authored
The ARM kprobes arithmetic immediate instruction decoder (space_cccc_001x()) was accidentally zero'ing out not only the Rn and Rd arguments, but the lower nibble of the immediate argument as well -- this patch fixes this. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Acked-by:
Nicolas Pitre <nico@marvell.com>
-
Nicolas Pitre authored
It is more useful to flush the cache with the actual buffer address rather than the address containing a pointer to the buffer. Signed-off-by:
Nicolas Pitre <nico@marvell.com> Acked-by:
Lennert Buytenhek <buytenh@marvell.com>
-
- Apr 19, 2008
-
-
Russell King authored
Luc Van Oostenryck reported: The code removed by this patch tested the irq_cpustat_t members __local_irq_count and __local_bh_count but these fields have been removed some time ago: http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=3ab146c93e039dec99fec8d441a8dd046fe510cc Fix this oversight. Acked-by:
Bill Gatliff <bgat@billgatliff.com> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Lennert Buytenhek authored
If we fail to boot due to an unsupported processor ID, print the processor ID as part of the failure message. Signed-off-by:
Lennert Buytenhek <buytenh@marvell.com> Acked-by:
Nicolas Pitre <nico@marvell.com> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Uwe Kleine-König authored
Signed-off-by:
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by:
Russell King <rmk+kernel@arm.linux.org.uk>
-
Paul Brook authored
This patch implements Thumb-2 application support in Linux. Original implementation by Paul Brook with fixes for VFP and Neon by Catalin Marinas. Signed-off-by:
Paul Brook <paul@codesourcery.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
-
Paul Brook authored
This patch adds a prefetch abort handler similar to the data abort one and renames the latter for consistency. Initial implementation by Paul Brook with some renaming by Catalin Marinas. Signed-off-by:
Paul Brook <paul@codesourcery.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com>
-