25 Sep, 2006

15 commits


20 Sep, 2006

5 commits

  • Patch from Daniel Jacobowitz

    The ARM kernel has several uses of asm("foo%?"). %? is a GCC internal
    modifier used to output conditional execution predicates. However, no
    version of GCC supports conditionalizing asm statements. GCC 4.2 will
    correctly expand %? to the empty string in user asms. Earlier versions may
    reuse the condition from the previous instruction. In 'if (foo) asm
    ("bar%?");' this is somewhat likely to be right... but not reliable.

    So, the only safe thing to do is to remove the uses of %?. I believe
    the tlbflush.h occurances were supposed to be removed before, based
    on the comment about %? not working at the top of that file.

    Old versions of GCC could omit branches around user asms if the asm didn't
    mark the condition codes as clobbered. This problem hasn't been seen on any
    recent (3.x or 4.x) GCC, but it could theoretically happen. So, where
    %? was removed a cc clobber was added.

    Signed-off-by: Daniel Jacobowitz
    Signed-off-by: Russell King

    Daniel Jacobowitz
     
  • The common case for the thread notifier is a context switch. Tell
    gcc that this is the most likely condition so it can optimise the
    function for this case.

    Signed-off-by: Russell King

    Russell King
     
  • This adds support for irqtrace for lockdep on ARM.

    Signed-off-by: Russell King

    Russell King
     
  • Rename mmu.c to context.c - it's the ARMv6 ASID context handling
    code rather than generic "mmu" handling code.

    Signed-off-by: Russell King

    Russell King
     
  • Move top_pmd into arch/arm/mm/mm.h - nothing outside arch/arm/mm
    references it.

    Move the repeated definition of TOP_PTE into mm/mm.h, as well as
    a few function prototypes.

    Signed-off-by: Russell King

    Russell King
     

19 Sep, 2006

4 commits

  • This reverts commits 11012d419cfc0e0f78ca356aca03674217910124 and
    40dd2d20f220eda1cd0da8ea3f0f9db8971ba237, which allowed us to use the
    MMIO accesses for PCI config cycles even without the area being marked
    reserved in the e820 memory tables.

    Those changes were needed for EFI-environment Intel macs, but broke some
    newer Intel 965 boards, so for now it's better to revert to our old
    2.6.17 behaviour and at least avoid introducing any new breakage.

    Andi Kleen has a set of patches that work with both EFI and the broken
    Intel 965 boards, which will be applied once they get wider testing.

    Cc: Arjan van de Ven
    Cc: Edgar Hucek
    Cc: Andi Kleen
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • (And reset it on new thread creation)

    It turns out that eflags is important to save and restore not just
    because of iopl, but due to the magic bits like the NT bit, which we
    don't want leaking between different threads.

    Tested-by: Mike Galbraith
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC]: Fix regression in sys_getdomainname()
    [OPENPROMIO]: Handle current_node being NULL correctly.

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] 3815/1: headers_install support for ARM
    [ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM
    [ARM] 3793/1: S3C2412: fix wrong serial info struct
    [ARM] 3780/1: Fix iop321 cpuid
    [ARM] 3786/1: pnx4008: update defconfig
    [ARM] 3785/1: S3C2412: Fix idle code as default uses wrong clocks
    [ARM] 3784/1: S3C2413: fix config for MACH_S3C2413/MACH_SMDK2413

    Linus Torvalds
     

18 Sep, 2006

2 commits


17 Sep, 2006

1 commit


15 Sep, 2006

1 commit

  • Patch from Dan Williams

    commit a6a38a66224c7c578cfed2f584b440c81af0c3ae changed the iop321 id to a value that does not work with all platforms. Change the mask to permit bit 11. Tested on an iq80321 600Mhz CRB.

    Signed-off-by: Dan Williams
    Signed-off-by: Russell King

    Dan Williams
     

14 Sep, 2006

3 commits


13 Sep, 2006

7 commits

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    [POWERPC] Fix G5 DART (IOMMU) race causing occasional data corruption
    [POWERPC] Fix MMIO ops to provide expected barrier behaviour
    [POWERPC] Fix interrupt clearing in kdump shutdown sequence
    [POWERPC] update prep_defconfig
    [POWERPC] kdump: Support kernels having 64k page size.
    [POWERPC] Implement PowerPC futex_atomic_cmpxchg_inatomic().
    [POWERPC] Add new, missing argument to of_irq_map_raw() for 86xx.
    [POWERPC] Update defconfigs

    Linus Torvalds
     
  • It seems that the occasional data corruption observed with the tg3
    driver wasn't due to missing barriers after all, but rather seems to
    be due to the DART (= IOMMU) in the U4 northbridge reading stale
    IOMMU table entries from memory due to a race. This fixes it by
    making the CPU read the entry back from memory before using it.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This changes the writeX family of functions to have a sync instruction
    before the MMIO store rather than after, because the generally expected
    behaviour is that the device receiving the MMIO store can be guaranteed
    to see the effects of any preceding writes to normal memory.

    To preserve ordering between writeX and readX, and to preserve ordering
    between preceding stores and the readX, the readX family of functions
    have had an sync added before the load.

    Although writeX followed by spin_unlock is not officially guaranteed
    to keep the writeX inside the spin-locked region unless an mmiowb()
    is used, there are currently drivers that depend on the previous
    behaviour on powerpc, which was that the mmiowb wasn't actually required.
    Therefore we have a per-cpu flag that is set by writeX, cleared by
    __raw_spin_lock and mmiowb, and tested by __raw_spin_unlock. If it is
    set, __raw_spin_unlock does a sync and clears it.

    This changes both 32-bit and 64-bit readX/writeX. 32-bit already has a
    sync in __raw_spin_unlock (since lwsync doesn't exist on 32-bit), and thus
    doesn't need the per-cpu flag.

    Tested on G5 (PPC970) and POWER5.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • Call chip->eoi(irq) to clear any pending interrupt in case of kdump
    shutdown sequence. chip->end(irq) does not serve this purpose.

    Signed-off-by: Mohan Kumar M
    Signed-off-by: Paul Mackerras

    Mohan Kumar M
     
  • Update PReP defconfig, disable some drivers for hardware that is not
    used on those systems; enable SL82C105 IDE driver for Powerstack.

    Signed-off-by: Olaf Hering
    Signed-off-by: Paul Mackerras

    Olaf Hering
     
  • Ben speaks; we follow.

    Signed-off-by: Jon Loeliger
    Signed-off-by: Paul Mackerras

    Jon Loeliger
     
  • * 'audit.b29' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
    [PATCH] sparc64 audit syscall classes hookup
    [PATCH] syscall class hookup for all normal targets

    Linus Torvalds
     

12 Sep, 2006

2 commits