Permalink
Switch branches/tags
Commits on Jul 15, 2010
  1. Merge master.kernel.org:/home/rmk/linux-2.6-arm

    * master.kernel.org:/home/rmk/linux-2.6-arm:
      ARM: 6226/1: fix kprobe bug in ldr instruction emulation
      ARM: Update mach-types
      ARM: lockdep: fix unannotated irqs-on
      ARM: 6184/2: ux500: use neutral PRCMU base
      ARM: 6212/1: atomic ops: add memory constraints to inline asm
      ARM: 6211/1: atomic ops: fix register constraints for atomic64_add_unless
      ARM: 6210/1: Do not rely on reset defaults of L2X0_AUX_CTRL
    torvalds committed Jul 15, 2010
  2. Merge branch 'lmb-to-memblock' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/benh/powerpc
    
    * 'lmb-to-memblock' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
      lmb: rename to memblock
    torvalds committed Jul 15, 2010
  3. Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/benh/powerpc
    
    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
      powerpc/fsl-booke: Fix address issue when using relocatable kernels
      powerpc/cpm1: Mark micropatch code/data static and __init
      powerpc/cpm1: Fix build with various CONFIG_*_UCODE_PATCH combinations
      powerpc/cpm: Reintroduce global spi_pram struct (fixes build issue)
    torvalds committed Jul 15, 2010
Commits on Jul 14, 2010
  1. ARM: 6226/1: fix kprobe bug in ldr instruction emulation

    From: Bin Yang <bin.yang@marvell.com>
    
    Cc: stable@kernel.org
    Signed-off-by: Bin Yang <bin.yang@marvell.com>
    Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    npitre committed with Russell King Jul 14, 2010
  2. lmb: rename to memblock

    via following scripts
    
          FILES=$(find * -type f | grep -vE 'oprofile|[^K]config')
    
          sed -i \
            -e 's/lmb/memblock/g' \
            -e 's/LMB/MEMBLOCK/g' \
            $FILES
    
          for N in $(find . -name lmb.[ch]); do
            M=$(echo $N | sed 's/lmb/memblock/g')
            mv $N $M
          done
    
    and remove some wrong change like lmbench and dlmb etc.
    
    also move memblock.c from lib/ to mm/
    
    Suggested-by: Ingo Molnar <mingo@elte.hu>
    Acked-by: "H. Peter Anvin" <hpa@zytor.com>
    Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Yinghai Lu <yinghai@kernel.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Yinghai Lu committed with ozbenh Jul 12, 2010
  3. Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/tip/linux-2.6-tip
    
    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
      input: i8042 - add runtime check in x86's i8042_platform_init
      Revert "Input: fixup X86_MRST selects"
      Revert "Input: do not force selecting i8042 on Moorestown"
      x86, mrst: Add i8042_detect API for Moorestwon platform
      x86: Add i8042 pre-detection hook to x86_platform_ops
      x86, platform: Export x86_platform to modules
    torvalds committed Jul 14, 2010
  4. Merge branch 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/vir…

    …t/kvm/kvm
    
    * 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
      KVM: MMU: flush remote tlbs when overwriting spte with different pfn
      KVM: VMX: Fix host MSR_KERNEL_GS_BASE corruption
    torvalds committed Jul 14, 2010
Commits on Jul 12, 2010
  1. Linux 2.6.35-rc5

    torvalds committed Jul 12, 2010
  2. Merge branch 'arm/defconfig/reduced-v2.6.35-rc1' of git://git.pengutr…

    …onix.de/git/ukl/linux-2.6
    
    * 'arm/defconfig/reduced-v2.6.35-rc1' of git://git.pengutronix.de/git/ukl/linux-2.6:
      ARM: reduce defconfigs
    
    This is a big change, but results in no loss of information, despite us
    losing almost 200k lines:
    
     177 files changed, 652 insertions(+), 194157 deletions(-)
    
    and Grant Likely thinks powerpc can also use the same reduction
    technique.
    
    The python script that did the reduction looks like this:
    
        #! /usr/bin/env python
        # vim: set fileencoding=utf-8 :
        # Copyright (C) 2010 by Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    
        import re
        import subprocess
        import os
        import sys
    
        # This prevents including a timestamp in the .config which makes comparing a
        # bit easier.
        os.environ['KCONFIG_NOTIMESTAMP'] = 'Yes, please'
    
        # XXX: get these using getopt
        kernel_tree = '' # os.path.join(os.environ['HOME'], 'gsrc', 'linux-2.6')
        arch = 'arm'
        target = sys.argv[1]
        defconfig_src = os.path.join(kernel_tree, 'arch/%s/configs/%s' % (arch, target))
    
        subprocess.check_call(['make', '-s', 'ARCH=%s' % arch, target])
        origconfig = list(open('.config'))
        config = list(origconfig)
        config_size = os.stat('.config').st_size
    
        i = 0
    
        while i < len(config):
            print 'test for %r' % config[i]
            defconfig = open(defconfig_src, 'w')
            defconfig.writelines(config[:i])
            defconfig.writelines(config[i + 1:])
            defconfig.close()
            subprocess.check_call(['make', '-s', 'ARCH=%s' % arch, target])
            if os.stat('.config').st_size == config_size and list(open('.config')) == origconfig:
                del config[i]
            else:
                i += 1
    
        defconfig = open(defconfig_src, 'w')
        defconfig.writelines(config)
        defconfig.close()
    
    which is pretty self-explanatory.
    
    Acked-by: Nicolas Pitre <nico@fluxnic.net>
    Acked-by: Russell King <linux@arm.linux.org.uk>
    Acked-by: Grant Likely <grant.likely@secretlab.ca>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed Jul 12, 2010
  3. Merge branch 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/g…

    …it/tiwai/sound-2.6
    
    * 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
      ALSA: hda - Restore cleared pin controls on resume
    torvalds committed Jul 12, 2010
  4. Merge branch 'v4l_for_2.6.35' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/mchehab/linux-2.6
    
    * 'v4l_for_2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
      V4L/DVB: uvc: Fix multiple symbols definitions with UVC gadget and host drivers
      V4L/DVB: v4l: mem2mem_testdev: fix g_fmt NULL pointer dereference
      V4L/DVB: uvcvideo: Power line frequency control doesn't support GET_MIN/MAX/RES
      V4L/DVB: ivtv: Add delay to ensure the decoder always restarts with a blank screen
      V4L/DVB: Documentation: Add the Philips FQ1236 MK5 to video4linux/CARDLIST.tuner
      V4L/DVB: tveeprom: Add an entry for tuner code 168: a TCL M30WTP-4N-E tuner
      V4L/DVB: tuner: Add a definition for the Philips FQ1236 MK5 NTSC tuner
      V4L/DVB: OMAP_VOUT: fix: Module params were not working through bootargs
      V4L/DVB: OMAP_VOUT: fix: Replaced dma-sg with dma-contig
      V4L/DVB: OMAP_VOUT:Build FIX: Rebased against latest DSS2 changes
    torvalds committed Jul 12, 2010
  5. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    …/git/jikos/hid
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
      HID: Send Report ID when numbered reports are sent over the control endpoint.
      HID: Enable HID_QUIRK_MULTI_INPUT for Retro Adaptor
      HID: add support for CH Eclipse yoke
      HID: eliminate a double lock in debug code
      HID: ntrig: add support for new firwmare versions
      HID: check for HID_QUIRK_IGNORE during probing
      HID: roccat: fix modules interdependencies
    torvalds committed Jul 12, 2010
  6. MAINTAINERS: fix EDAC-I7CORE file patterns

    File patterns are one per line.
    Fixed include file location.
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    JoePerches committed with torvalds Jul 12, 2010
  7. ARM: Update mach-types

    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Russell King committed Jul 12, 2010
  8. KVM: MMU: flush remote tlbs when overwriting spte with different pfn

    After remove a rmap, we should flush all vcpu's tlb
    
    Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Xiao Guangrong committed with Marcelo Tosatti Jun 30, 2010
Commits on Jul 11, 2010
  1. HID: Send Report ID when numbered reports are sent over the control e…

    …ndpoint.
    
    The Report ID wasn't sent as part of the payload for reports which were sent
    over the control endpoint. This is required by section 8.1 of the HID spec.
    
    Signed-off-by: Alan Ott <alan@signal11.us>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    signal11 committed with Jiri Kosina Jun 30, 2010
  2. V4L/DVB: uvc: Fix multiple symbols definitions with UVC gadget and ho…

    …st drivers
    
    The UVC gadget driver borrowed code from the UVC host driver without
    changing the symbol names. This results in a namespace clash with
    multiple definitions of several symbols when compiling both drivers in
    the kernel.
    
    Make all generic UVC functions and variables static in the UVC gadget
    driver, as the symbols are not referenced outside of the gadget driver.
    Rename the uvc_trace_param global variable to uvc_gadget_trace_param.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    pinchartl committed with Mauro Carvalho Chehab Jul 10, 2010
  3. Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/…

    …kernel/git/jdelvare/staging
    
    * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
      hwmon: Fix autoloading of fschmd on recent Fujitsu machines
      hwmon: (coretemp) Properly label the sensors
      hwmon: (coretemp) Skip duplicate CPU entries
      hwmon: (it87) Fix in7 on IT8720F
      hwmon: (k8temp) Fix temperature reporting for ASB1 processor revisions
    torvalds committed Jul 11, 2010
  4. Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/jdelvare/staging
    
    * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
      i2c/mips: Fix error return codes from Sibyte i2c bus driver
      i2c: Fix probability check
    torvalds committed Jul 11, 2010
  5. HID: Enable HID_QUIRK_MULTI_INPUT for Retro Adaptor

    Patch for linux-2.6.35-rc4 mainline kernel to enable Paul Qureshi's
    Retro Adapter [http://keio.dk/retroadapter.html], an open source USB
    device which allows controllers and joysticks from classic computers
    and consoles to work on modern PCs, to appear as two separate devices
    under Linux.
    Signed-off-by: Peter Edwards <samwise@bagshot-row.org>
    Acked-by: Paul Qureshi <retro@world3.net>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Peter Edwards committed with Jiri Kosina Jul 11, 2010
  6. HID: add support for CH Eclipse yoke

    This USB flight yoke needs the NOGET quirk, like most of CH's other
    products. This patch adds that.
    
    Signed-off-by: Jonathan Rockway <jon@jrock.us>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    jrockway committed with Jiri Kosina Jul 3, 2010
  7. powerpc/fsl-booke: Fix address issue when using relocatable kernels

    When booting a relocatable kernel it needs to jump to the correct
    start address, which for BookE parts is usually unchanged
    regardless of the physical memory offset.
    
    Recent changes cause problems with how we calculate the start
    address, it was always adding the RMO into the start address
    which is incorrect. This patch only adds in the RMO offset
    if we are in the kexec code path, as it needs the RMO to work
    correctly.
    
    Instead of adding the RMO offset in in the common code path, we
    can just set r6 to the RMO offset in the kexec code path instead
    of to zero, and finally perform the masking in the common code
    path
    
    Signed-off-by: Matthew McClintock <msm@freescale.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Matthew McClintock committed with kumargala Jun 29, 2010
  8. powerpc/cpm1: Mark micropatch code/data static and __init

    This saves runtime memory and fixes lots of sparse warnings like this:
    
        CHECK   arch/powerpc/sysdev/micropatch.c
      arch/powerpc/sysdev/micropatch.c:27:6: warning: symbol 'patch_2000'
      was not declared. Should it be static?
      arch/powerpc/sysdev/micropatch.c:146:6: warning: symbol 'patch_2f00'
      was not declared. Should it be static?
      ...
    
    Signed-off-by: Anton Vorontsov <avorontsov@mvista.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Anton Vorontsov committed with kumargala Jul 8, 2010
  9. powerpc/cpm1: Fix build with various CONFIG_*_UCODE_PATCH combinations

    Warnings are treated as errors for arch/powerpc code, so build fails
    with CONFIG_I2C_SPI_UCODE_PATCH=y:
    
        CC      arch/powerpc/sysdev/micropatch.o
      cc1: warnings being treated as errors
      arch/powerpc/sysdev/micropatch.c: In function 'cpm_load_patch':
      arch/powerpc/sysdev/micropatch.c:630: warning: unused variable 'smp'
      make[1]: *** [arch/powerpc/sysdev/micropatch.o] Error 1
    
    And with CONFIG_USB_SOF_UCODE_PATCH=y:
    
      CC      arch/powerpc/sysdev/micropatch.o
      cc1: warnings being treated as errors
      arch/powerpc/sysdev/micropatch.c: In function 'cpm_load_patch':
      arch/powerpc/sysdev/micropatch.c:629: warning: unused variable 'spp'
      arch/powerpc/sysdev/micropatch.c:628: warning: unused variable 'iip'
      make[1]: *** [arch/powerpc/sysdev/micropatch.o] Error 1
    
    This patch fixes these issues by introducing proper #ifdefs.
    
    Cc: <stable@kernel.org> [ .33, .34 ]
    Signed-off-by: Anton Vorontsov <avorontsov@mvista.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Anton Vorontsov committed with kumargala Jul 8, 2010
  10. powerpc/cpm: Reintroduce global spi_pram struct (fixes build issue)

    spi_t was removed in commit 644b2a6
    ("powerpc/cpm: Remove SPI defines and spi structs"), the commit assumed
    that spi_t isn't used anywhere outside of the spi_mpc8xxx driver. But
    it appears that the struct is needed for micropatch code. So, let's
    reintroduce the struct.
    
    Fixes the following build issue:
    
        CC      arch/powerpc/sysdev/micropatch.o
      micropatch.c: In function 'cpm_load_patch':
      micropatch.c:629: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
      micropatch.c:629: error: 'spp' undeclared (first use in this function)
      micropatch.c:629: error: (Each undeclared identifier is reported only once
      micropatch.c:629: error: for each function it appears in.)
    
    Reported-by: LEROY Christophe <christophe.leroy@c-s.fr>
    Reported-by: Tony Breeds <tony@bakeyournoodle.com>
    Cc: <stable@kernel.org> [ .33, .34 ]
    Signed-off-by: Anton Vorontsov <avorontsov@mvista.com>
    Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
    Anton Vorontsov committed with kumargala Jul 8, 2010
Commits on Jul 10, 2010
  1. ARM: lockdep: fix unannotated irqs-on

    CPU: Testing write buffer coherency: ok
    ------------[ cut here ]------------
    WARNING: at kernel/lockdep.c:3145 check_flags+0xcc/0x1dc()
    Modules linked in:
    [<c0035120>] (unwind_backtrace+0x0/0xf8) from [<c0355374>] (dump_stack+0x20/0x24)
    [<c0355374>] (dump_stack+0x20/0x24) from [<c0060c04>] (warn_slowpath_common+0x58/0x70)
    [<c0060c04>] (warn_slowpath_common+0x58/0x70) from [<c0060c3c>] (warn_slowpath_null+0x20/0x24)
    [<c0060c3c>] (warn_slowpath_null+0x20/0x24) from [<c008f224>] (check_flags+0xcc/0x1dc)
    [<c008f224>] (check_flags+0xcc/0x1dc) from [<c00945dc>] (lock_acquire+0x50/0x140)
    [<c00945dc>] (lock_acquire+0x50/0x140) from [<c0358434>] (_raw_spin_lock+0x50/0x88)
    [<c0358434>] (_raw_spin_lock+0x50/0x88) from [<c00fd114>] (set_task_comm+0x2c/0x60)
    [<c00fd114>] (set_task_comm+0x2c/0x60) from [<c007e184>] (kthreadd+0x30/0x108)
    [<c007e184>] (kthreadd+0x30/0x108) from [<c0030104>] (kernel_thread_exit+0x0/0x8)
    ---[ end trace 1b75b31a2719ed1c ]---
    possible reason: unannotated irqs-on.
    irq event stamp: 3
    hardirqs last  enabled at (2): [<c0059bb0>] finish_task_switch+0x48/0xb0
    hardirqs last disabled at (3): [<c002f0b0>] ret_slow_syscall+0xc/0x1c
    softirqs last  enabled at (0): [<c005f3e0>] copy_process+0x394/0xe5c
    softirqs last disabled at (0): [<(null)>] (null)
    
    Fix this by ensuring that the lockdep interrupt state is manipulated in
    the appropriate places.  We essentially treat userspace as an entirely
    separate environment which isn't relevant to lockdep (lockdep doesn't
    monitor userspace.)  We don't tell lockdep that IRQs will be enabled
    in that environment.
    
    Instead, when creating kernel threads (which is a rare event compared
    to entering/leaving userspace) we have to update the lockdep state.  Do
    this by starting threads with IRQs disabled, and in the kthread helper,
    tell lockdep that IRQs are enabled, and enable them.
    
    This provides lockdep with a consistent view of the current IRQ state
    in kernel space.
    
    This also revert portions of 0d928b0
    which didn't fix the problem.
    
    Tested-by: Ming Lei <tom.leiming@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Russell King committed Jul 10, 2010
  2. i2c/mips: Fix error return codes from Sibyte i2c bus driver

    Sibyte i2c bus driver returns non-descriptive error values.
    Update to return error values as defined in Documentation/i2c/fault-codes.
    
    Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Guenter Roeck committed with Jean Delvare Jul 10, 2010
  3. i2c: Fix probability check

    The new unified probing function differs from the original code, and
    the preliminary test whether probing is possible must be updated
    accordingly.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Jean Delvare committed Jul 10, 2010
Commits on Jul 9, 2010
  1. hwmon: Fix autoloading of fschmd on recent Fujitsu machines

    Fujitsu slightly changed the DMI strings in their recent machines,
    (for example the D2778) and this breaks the automatic loading of the
    needed fschmd driver. Being more tolerant on string comparison fixes
    the issue.
    
    This closes bug #15634:
    https://bugzilla.kernel.org/show_bug.cgi?id=15634
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Tested-by: Sergey Spiridonov <sena@hurd.homeunix.org>
    Cc: Hans de Goede <hdegoede@redhat.com>
    Jean Delvare committed Jul 9, 2010
  2. hwmon: (coretemp) Properly label the sensors

    Don't assume that CPU entry number and core ID always match. It
    worked in the simple cases (single CPU, no HT) but fails on
    multi-CPU systems.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Acked-by: Huaxu Wan <huaxu.wan@intel.com>
    Cc: stable@kernel.org
    Jean Delvare committed Jul 9, 2010
  3. hwmon: (coretemp) Skip duplicate CPU entries

    On hyper-threaded CPUs, each core appears twice in the CPU list. Skip
    the second entry to avoid duplicate sensors.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Acked-by: Huaxu Wan <huaxu.wan@intel.com>
    Cc: stable@kernel.org
    Jean Delvare committed Jul 9, 2010
  4. hwmon: (it87) Fix in7 on IT8720F

    The IT8720F has no VIN7 pin, so VCCH should always be routed
    internally to VIN7 with an internal divider. Curiously, there still
    is a configuration bit to control this, which means it can be set
    incorrectly. And even more curiously, many boards out there are
    improperly configured, even though the IT8720F datasheet claims that
    the internal routing of VCCH to VIN7 is the default setting. So we
    force the internal routing in this case.
    
    It turns out that all boards with the wrong setting are from Gigabyte,
    so I suspect a BIOS bug. But it's easy enough to workaround in the
    driver, so let's do it.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Cc: Jean-Marc Spaggiari <jean-marc@spaggiari.org>
    Cc: stable@kernel.org
    Jean Delvare committed Jul 9, 2010
  5. hwmon: (k8temp) Fix temperature reporting for ASB1 processor revisions

    Reported temperature for ASB1 CPUs is too high.
    Add ASB1 CPU revisions (these are also non-desktop variants) to the
    list of CPUs for which the temperature fixup is not required.
    
    Example: (from LENOVO ThinkPad Edge 13, 01972NG, system was idle)
    
      Current kernel reports
    
      $ sensors
      k8temp-pci-00c3
      Adapter: PCI adapter
      Core0 Temp:  +74.0 C
      Core0 Temp:  +70.0 C
      Core1 Temp:  +69.0 C
      Core1 Temp:  +70.0 C
    
      With this patch I have
    
      $ sensors
      k8temp-pci-00c3
      Adapter: PCI adapter
      Core0 Temp:  +54.0 C
      Core0 Temp:  +51.0 C
      Core1 Temp:  +48.0 C
      Core1 Temp:  +49.0 C
    
    Cc: stable@kernel.org [.32.x .33.x, .34.x]
    Cc: Rudolf Marek <r.marek@assembler.cz>
    Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Andreas Herrmann committed with Jean Delvare Jul 9, 2010
  6. ARM: 6184/2: ux500: use neutral PRCMU base

    The MTU wallclock timing fix-up patch was hardwired to the DB8500
    causing a regression. This makes it work on the DB5500 as well.
    
    Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Linus Walleij committed with Russell King Jun 23, 2010
  7. ARM: 6212/1: atomic ops: add memory constraints to inline asm

    Currently, the 32-bit and 64-bit atomic operations on ARM do not
    include memory constraints in the inline assembly blocks. In the
    case of barrier-less operations [for example, atomic_add], this
    means that the compiler may constant fold values which have actually
    been modified by a call to an atomic operation.
    
    This issue can be observed in the atomic64_test routine in
    <kernel root>/lib/atomic64_test.c:
    
    00000000 <test_atomic64>:
       0:	e1a0c00d 	mov	ip, sp
       4:	e92dd830 	push	{r4, r5, fp, ip, lr, pc}
       8:	e24cb004 	sub	fp, ip, #4
       c:	e24dd008 	sub	sp, sp, #8
      10:	e24b3014 	sub	r3, fp, #20
      14:	e30d000d 	movw	r0, #53261	; 0xd00d
      18:	e3011337 	movw	r1, #4919	; 0x1337
      1c:	e34c0001 	movt	r0, #49153	; 0xc001
      20:	e34a1aa3 	movt	r1, #43683	; 0xaaa3
      24:	e16300f8 	strd	r0, [r3, #-8]!
      28:	e30c0afe 	movw	r0, #51966	; 0xcafe
      2c:	e30b1eef 	movw	r1, #48879	; 0xbeef
      30:	e34d0eaf 	movt	r0, #57007	; 0xdeaf
      34:	e34d1ead 	movt	r1, #57005	; 0xdead
      38:	e1b34f9f 	ldrexd	r4, [r3]
      3c:	e1a34f90 	strexd	r4, r0, [r3]
      40:	e3340000 	teq	r4, #0
      44:	1afffffb 	bne	38 <test_atomic64+0x38>
      48:	e59f0004 	ldr	r0, [pc, #4]	; 54 <test_atomic64+0x54>
      4c:	e3a0101e 	mov	r1, #30
      50:	ebfffffe 	bl	0 <__bug>
      54:	00000000 	.word	0x00000000
    
    The atomic64_set (0x38-0x44) writes to the atomic64_t, but the
    compiler doesn't see this, assumes the test condition is always
    false and generates an unconditional branch to __bug. The rest of the
    test is optimised away.
    
    This patch adds suitable memory constraints to the atomic operations on ARM
    to ensure that the compiler is informed of the correct data hazards. We have
    to use the "Qo" constraints to avoid hitting the GCC anomaly described at
    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44492 , where the compiler
    makes assumptions about the writeback in the addressing mode used by the
    inline assembly. These constraints forbid the use of auto{inc,dec} addressing
    modes, so it doesn't matter if we don't use the operand exactly once.
    
    Cc: stable@kernel.org
    Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    wildea01 committed with Russell King Jul 8, 2010