11 Dec, 2008

7 commits

  • Give the correct size when reserving the interrupt vector table. It should be
    a page not a single byte.

    Signed-off-by: Akira Takeuchi
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Akira Takeuchi
     
  • Fix the preemption resume_kernel() routine by inverting the test to see
    whether interrupts are off (IM7 is all enabled, not all disabled).

    Furthermore, interrupts should be disabled on entry to resume_kernel() so that
    they're correctly set for jumping to restore_all() and doing the need
    reschedule test.

    Signed-off-by: Akira Takeuchi
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Akira Takeuchi
     
  • Discard low-prioriy Tx interrupts when closing an MN10300 on-chip serial port.

    The MN10300 on-chip serial port uses three interrupts to manage its serial
    ports:

    (1) A very high priority interrupt that drives virtual DMA for Rx.

    (2) A very high priority interrupt that drives virtual DMA for Tx.

    (3) A normal priority virtual interrupt that does the normal UART interrupt
    stuff and is shared between Rx and Tx.

    mn10300_serial_stop_tx() only disables the high priority Tx interrupt. It
    doesn't also disable the normal priority one because it is shared with Rx.

    However, the high priority interrupt may interrupt local_irq_disabled()
    sections, and so may have queued up a low priority virtual interrupt whilst the
    UART driver is asking for the Tx interrupt to be disabled.

    The result of this can be an oops when we try to process the interrupt in
    mn10300_serial_transmit_interrupt() as port->uart.info and port->uart.info->tty
    may have gone away.

    To deal with this, if either of those pointers is NULL, we make sure the
    high-priority Tx interrupt is disabled and discard the interrupt. The low
    priority interrupt is disabled by the mn10300_serial_pic irq_chip table.

    Signed-off-by: Akira Takeuchi
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Akira Takeuchi
     
  • Include the linux/page.h header into the MN10300 kernel linker script thus
    allowing us to use PAGE_SIZE macro instead of a numeric constant.

    Also use the PERCPU macro instead of an explicit section definition.

    Signed-off-by: Cyrill Gorcunov
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Cyrill Gorcunov
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] SN: prevent IRQ retargetting in request_irq()
    [IA64] Fix section mismatch ioc3uart_init()/ioc3uart_submodule
    [IA64] Clear up section mismatch for ioc4_ide_attach_one.
    [IA64] Clear up section mismatch with arch_unregister_cpu()
    [IA64] Clear up section mismatch for sn_check_wars.
    [IA64] Updated the generic_defconfig to work with the 2.6.28-rc7 kernel.
    [IA64] Fix GRU compile error w/o CONFIG_HUGETLB_PAGE
    [IA64] eliminate NULL test and memset after alloc_bootmem
    [IA64] remove BUILD_BUG_ON from paravirt_getreg()

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    MIPS: Better than nothing implementation of PCI mmap to fix X.

    Linus Torvalds
     
  • mconsole_init() passed 256 bytes as length in os_create_unix_socket, while
    the sizeof UNIX_PATH_MAX is 108. This patch fixes that problem and avoids
    a big overrun bug reported on UML bootup.

    sockaddr_un.sun_path is UNIX_PATH_MAX long which causes the problem.
    Reported-by: Vikas K Managutte
    Reported-by: Sarvesh Kumar Lal Das
    Signed-off-by: Balbir Singh
    Reviewed-by: Pekka Enberg
    Reviewed-by: WANG Cong
    Cc: Jeff Dike
    Cc: [please check with Jeff]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     

10 Dec, 2008

9 commits


09 Dec, 2008

1 commit


08 Dec, 2008

6 commits


07 Dec, 2008

1 commit

  • On ARMv6 and later CPUs, it is possible for userspace processes to
    get stuck on a misaligned load or store due to the "ignore fault"
    setting; unlike previous CPUs, retrying the instruction without
    the 'A' bit set does not always cause the load to succeed.

    We have no real option but to default to fixing up alignment faults
    on these CPUs, and having the CPU fix up those misaligned accesses
    which it can.

    Reported-by: Wolfgang Grandegger
    Signed-off-by: Russell King

    Russell King
     

06 Dec, 2008

3 commits

  • Commit 8ec53663d2698076468b3e1edc4e1b418bd54de3 ("[ARM] Improve
    non-executable support") added support for detecting non-executable
    stack binaries. One of the things it does is to make READ_IMPLIES_EXEC
    be set in ->personality if we are running on a CPU that doesn't support
    the XN ("Execute Never") page table bit or if we are running a binary
    that needs an executable stack.

    This exposed a latent bug in ARM's asm/processor.h due to which we'll
    end up placing the stack at a very low address, where it will bump into
    the heap on any application that uses significant amount of stack or
    heap or both, causing many interesting crashes.

    Fix this by testing the ADDR_LIMIT_32BIT bit in ->personality instead
    of testing for equality against PER_LINUX_32BIT.

    Reviewed-by: Nicolas Pitre

    Signed-off-by: Lennert Buytenhek
    Signed-off-by: Russell King

    Lennert Buytenhek
     
  • The 440x5 core in the Virtex5 uses the 440A type machine check
    (ie, they have MCSRR0/MCSRR1). They thus need to call the
    appropriate fixup function to hook the right variant of the
    exception.

    Without this, all machine checks become fatal due to loss
    of context when entering the exception handler.

    Signed-off-by: Grant Likely
    Signed-off-by: Josh Boyer

    Grant Likely
     
  • It should be 'lose', not 'loose'.

    Signed-off-by: Nick Andrew
    Signed-off-by: Ralf Baechle

    Nick Andrew
     

05 Dec, 2008

13 commits