19 Jun, 2009

1 commit

  • avr32, mn10300, parisc, s390, sh, xtensa:

    They never set PT_DTRACE, but clear it after do_execve().

    Signed-off-by: Oleg Nesterov
    Cc: David Howells
    Acked-by: Kyle McMartin
    Cc: Grant Grundler
    Cc: Matthew Wilcox
    Acked-by: Martin Schwidefsky
    Cc: Heiko Carstens
    Acked-by: Paul Mundt
    Acked-by: Chris Zankel
    Acked-by: Roland McGrath
    Acked-by: Haavard Skinnemoen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     

17 Jun, 2009

1 commit

  • * create mm/init-mm.c, move init_mm there
    * remove INIT_MM, initialize init_mm with C99 initializer
    * unexport init_mm on all arches:

    init_mm is already unexported on x86.

    One strange place is some OMAP driver (drivers/video/omap/) which
    won't build modular, but it's already wants get_vm_area() export.
    Somebody should look there.

    [akpm@linux-foundation.org: add missing #includes]
    Signed-off-by: Alexey Dobriyan
    Cc: Mike Frysinger
    Cc: Americo Wang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

15 Jun, 2009

1 commit


14 Jun, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
    avr32: Fix oops on unaligned user access
    avr32: Add support for Mediama RMTx add-on board for ATNGW100
    avr32: Change Atmel ATNGW100 config to add choice of add-on board
    Fix MIMC200 board LCD init
    avr32: Fix clash in ATMEL_USART_ flags
    avr32: remove obsolete hw_interrupt_type
    avr32: Solves problem with inverted MCI detect pin on Merisc board
    atmel-mci: Add support for inverted detect pin

    Linus Torvalds
     

13 Jun, 2009

1 commit

  • The unaligned address exception handler (and others) does not scan the
    fixup tables before oopsing. This is bad because it means passing a
    badly aligned pointer from user space might crash the kernel.

    Fix this by scanning the fixup tables in _exception(). This should
    resolve the issue for unaligned addresses as well as other less common
    exceptions that might be happening during a userspace access. The page
    fault handler already does fixup processing.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

12 Jun, 2009

1 commit


21 May, 2009

1 commit

  • Stephen Rothwell writes:

    > Today's linux-next build of at least some av32 and arm configs failed like this:
    >
    > arch/avr32/kernel/signal.c:216: error: conflicting types for 'restart_syscall'
    > include/linux/sched.h:2184: error: previous definition of 'restart_syscall' was here
    >
    > Caused by commit 690cc3ffe33ac4a2857583c22d4c6244ae11684d ("syscall:
    > Implement a convinience function restart_syscall") from the net tree.

    Grrr. Some days it feels like all of the good names are already taken.

    Let's just rename the two static users in arm and avr32 to get this
    sorted out.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

22 Apr, 2009

1 commit

  • Pass clocksource pointer to the read() callback for clocksources. This
    allows us to share the callback between multiple instances.

    [hugh@veritas.com: fix powerpc build of clocksource pass clocksource mods]
    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Magnus Damm
    Acked-by: John Stultz
    Cc: Thomas Gleixner
    Signed-off-by: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm
     

03 Apr, 2009

1 commit


27 Mar, 2009

1 commit

  • * 'irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (32 commits)
    x86: disable __do_IRQ support
    sparseirq, powerpc/cell: fix unused variable warning in interrupt.c
    genirq: deprecate obsolete typedefs and defines
    genirq: deprecate __do_IRQ
    genirq: add doc to struct irqaction
    genirq: use kzalloc instead of explicit zero initialization
    genirq: make irqreturn_t an enum
    genirq: remove redundant if condition
    genirq: remove unused hw_irq_controller typedef
    irq: export remove_irq() and setup_irq() symbols
    irq: match remove_irq() args with setup_irq()
    irq: add remove_irq() for freeing of setup_irq() irqs
    genirq: assert that irq handlers are indeed running in hardirq context
    irq: name 'p' variables a bit better
    irq: further clean up the free_irq() code flow
    irq: refactor and clean up the free_irq() code flow
    irq: clean up manage.c
    irq: use GFP_KERNEL for action allocation in request_irq()
    kernel/irq: fix sparse warning: make symbol static
    irq: optimize init_kstat_irqs/init_copy_kstat_irqs
    ...

    Linus Torvalds
     

16 Jan, 2009

1 commit

  • Replace handcoded rcall instructions with the call pseudo-instruction.
    For kernels too far over 1MB the rcall instruction can't reach and
    linking will fail. We already call the final linker with --relax which
    converts call pseudo-instructions to the right things anyway.

    This fixes

    arch/avr32/kernel/built-in.o: In function `syscall_exit_work':
    (.ex.text+0x198): relocation truncated to fit: R_AVR32_22H_PCREL against symbol `schedule' defined in .sched.text section in kernel/built-in.o
    arch/avr32/kernel/built-in.o: In function `fault_exit_work':
    (.ex.text+0x3b6): relocation truncated to fit: R_AVR32_22H_PCREL against symbol `schedule' defined in .sched.text section in kernel/built-in.o

    But I'm still left with

    arch/avr32/kernel/built-in.o:(.fixup+0x2): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+45a
    arch/avr32/kernel/built-in.o:(.fixup+0x8): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+8ea
    arch/avr32/kernel/built-in.o:(.fixup+0xe): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+abe
    arch/avr32/kernel/built-in.o:(.fixup+0x14): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+ac8
    arch/avr32/kernel/built-in.o:(.fixup+0x1a): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+ad2
    arch/avr32/kernel/built-in.o:(.fixup+0x20): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+adc
    arch/avr32/kernel/built-in.o:(.fixup+0x26): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+ae6
    arch/avr32/kernel/built-in.o:(.fixup+0x2c): relocation truncated to fit: R_AVR32_22H_PCREL against `.text'+af0
    arch/avr32/kernel/built-in.o:(.fixup+0x32): additional relocation overflows omitted from the output

    These are caused by a similar problem with 'rjmp' instructions.
    Unfortunately, there's no easy fix for these at the moment since we
    don't have a arbitrary-range 'jmp' instruction similar to 'call'.

    Signed-off-by: Ben Nizette
    Signed-off-by: Haavard Skinnemoen

    Ben Nizette
     

13 Jan, 2009

1 commit


07 Jan, 2009

2 commits

  • Haavard Skinnemoen
     
  • While looking at reducing the amount of architecture namespace pollution
    in the generic kernel, I found that asm/irq.h is included in the vast
    majority of compilations on ARM (around 650 files.)

    Since asm/irq.h includes a sub-architecture include file on ARM, this
    causes a negative impact on the ccache's ability to re-use the build
    results from other sub-architectures, so we have a desire to reduce the
    dependencies on asm/irq.h.

    It turns out that a major cause of this is the needless include of
    linux/hardirq.h into asm-generic/local.h. The patch below removes this
    include, resulting in some 250 to 300 files (around half) of the kernel
    then omitting asm/irq.h.

    My test builds still succeed, provided two ARM files are fixed
    (arch/arm/kernel/traps.c and arch/arm/mm/fault.c) - so there may be
    negative impacts for this on other architectures.

    Note that x86 does not include asm/irq.h nor linux/hardirq.h in its
    asm/local.h, so this patch can be viewed as bringing the generic version
    into line with the x86 version.

    [kosaki.motohiro@jp.fujitsu.com: add #include to acpi/processor_idle.c]
    [adobriyan@gmail.com: fix sparc64]
    Signed-off-by: Russell King
    Signed-off-by: KOSAKI Motohiro
    Cc: Steven Rostedt
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Russell King
     

03 Jan, 2009

1 commit

  • …/git/tip/linux-2.6-tip

    * 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (66 commits)
    x86: export vector_used_by_percpu_irq
    x86: use logical apicid in x2apic_cluster's x2apic_cpu_mask_to_apicid_and()
    sched: nominate preferred wakeup cpu, fix
    x86: fix lguest used_vectors breakage, -v2
    x86: fix warning in arch/x86/kernel/io_apic.c
    sched: fix warning in kernel/sched.c
    sched: move test_sd_parent() to an SMP section of sched.h
    sched: add SD_BALANCE_NEWIDLE at MC and CPU level for sched_mc>0
    sched: activate active load balancing in new idle cpus
    sched: bias task wakeups to preferred semi-idle packages
    sched: nominate preferred wakeup cpu
    sched: favour lower logical cpu number for sched_mc balance
    sched: framework for sched_mc/smt_power_savings=N
    sched: convert BALANCE_FOR_xx_POWER to inline functions
    x86: use possible_cpus=NUM to extend the possible cpus allowed
    x86: fix cpu_mask_to_apicid_and to include cpu_online_mask
    x86: update io_apic.c to the new cpumask code
    x86: Introduce topology_core_cpumask()/topology_thread_cpumask()
    x86: xen: use smp_call_function_many()
    x86: use work_on_cpu in x86/kernel/cpu/mcheck/mce_amd_64.c
    ...

    Fixed up trivial conflict in kernel/time/tick-sched.c manually

    Linus Torvalds
     

01 Jan, 2009

1 commit


17 Dec, 2008

1 commit


13 Dec, 2008

1 commit


09 Oct, 2008

1 commit


22 Sep, 2008

1 commit


20 Sep, 2008

4 commits


01 Sep, 2008

1 commit

  • When using the Java Extension Module hardware, a Java stack underflow or
    overflow trap may cause the system to enter an infinite exception loop.
    Although there's no kernel support for the Java hardware yet, we need to
    be able to recover from this situation and keep the system running.

    This patch adds code to detect and fixup this situation in the critical
    exception handler and terminate the faulting process. We may have to
    rethink how to handle this more gracefully when the necessary kernel
    support for hardware-accelerated Java is added.

    Reported-by: Guennadi Liakhovetski
    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

05 Aug, 2008

1 commit


27 Jul, 2008

1 commit


25 Jul, 2008

3 commits


22 Jul, 2008

1 commit

  • 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
    Signed-off-by: Greg Kroah-Hartman

    Andi Kleen
     

19 Jul, 2008

2 commits

  • Ingo Molnar
     
  • 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); ,
    Debugged-by: eric miao
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

18 Jul, 2008

1 commit

  • Fixes this type of problem:

    CC arch/s390/kernel/stacktrace.o
    arch/s390/kernel/stacktrace.c:84: warning: data definition has no type or storage class
    arch/s390/kernel/stacktrace.c:84: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
    arch/s390/kernel/stacktrace.c:84: warning: parameter names (without types) in function declaration
    arch/s390/kernel/stacktrace.c:97: warning: data definition has no type or storage class
    arch/s390/kernel/stacktrace.c:97: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
    arch/s390/kernel/stacktrace.c:97: warning: parameter names (without types) in function declaration

    caused by "stacktrace: export save_stack_trace[_tsk]"

    Signed-off-by: Heiko Carstens
    Cc: Stephen Rothwell
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Signed-off-by: Ingo Molnar

    Heiko Carstens
     

16 Jul, 2008

1 commit

  • * 'core/stacktrace' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    generic-ipi: powerpc/generic-ipi tree build failure
    stacktrace: fix build failure on sparc64
    stacktrace: export save_stack_trace[_tsk]
    stacktrace: fix modular build, export print_stack_trace and save_stack_trace
    backtrace: replace timer with tasklet + completions
    stacktrace: add saved stack traces to backtrace self-test
    stacktrace: print_stack_trace() cleanup
    debugging: make stacktrace independent from DEBUG_KERNEL
    stacktrace: don't crash on invalid stack trace structs

    Linus Torvalds
     

15 Jul, 2008

1 commit


03 Jul, 2008

1 commit


02 Jul, 2008

2 commits

  • Expand the per-process PGDs so that they cover the kernel virtual
    memory area as well. This simplifies the TLB miss handler fastpath
    since it doesn't have to check for kernel addresses anymore.

    If a TLB miss happens on a kernel address and a second-level page
    table can't be found, we check swapper_pg_dir and copy the PGD entry
    into the user PGD if it can be found there.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     
  • Instead of storing physical addresses along with page flags in the
    PGD, store virtual addresses and use NULL to indicate a not present
    second-level page table. A non-page-aligned page table indicates a bad
    PMD.

    This simplifies the TLB miss handler since it no longer has to check
    the Present bit and no longer has to convert the PGD entry from
    physical to virtual address. Instead, it has to check for a NULL
    entry, which is slightly cheaper than either.

    Signed-off-by: Haavard Skinnemoen

    Haavard Skinnemoen
     

27 Jun, 2008

1 commit