09 Aug, 2010

1 commit


31 Jul, 2010

4 commits

  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    cyber2000fb: fix console in truecolor modes
    cyber2000fb: fix machine hang on module load
    SA1111: Eliminate use after free
    ARM: Fix Versatile/Realview/VExpress MMC card detection sense
    ARM: 6279/1: highmem: fix SMP preemption bug in kmap_high_l1_vipt
    ARM: Add barriers to io{read,write}{8,16,32} accessors as well
    ARM: 6273/1: Add barriers to the I/O accessors if ARM_DMA_MEM_BUFFERABLE
    ARM: 6272/1: Convert L2x0 to use the IO relaxed operations
    ARM: 6271/1: Introduce *_relaxed() I/O accessors
    ARM: 6275/1: ux500: don't use writeb() in uncompress.h
    ARM: 6270/1: clean files in arch/arm/boot/compressed/
    ARM: Fix csum_partial_copy_from_user()

    Linus Torvalds
     
  • __sa1111_remove always frees its argument, so the subsequent reference to
    sachip->saved_state represents a use after free. __sa1111_remove does not
    appear to use the saved_state field, so the patch simply frees it first.

    A simplified version of the semantic patch that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    expression E,E2;
    @@

    __sa1111_remove(E)
    ...
    (
    E = E2
    |
    * E
    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Russell King

    Julia Lawall
     
  • The MMC card detection sense has become really confused with negations
    at various levels, leading to some platforms not detecting inserted
    cards. Fix this by converting everything to positive logic throughout,
    thereby getting rid of these negations.

    Signed-off-by: Russell King

    Russell King
     
  • smp_processor_id() must not be called from a preemptible context (this
    is checked by CONFIG_DEBUG_PREEMPT). kmap_high_l1_vipt() was doing so.
    This lead to a problem where the wrong per_cpu kmap_high_l1_vipt_depth
    could be incremented, causing a BUG_ON(*depth

    Signed-off-by: Gary King
    Acked-by: Nicolas Pitre
    Signed-off-by: Russell King

    Gary King
     

30 Jul, 2010

1 commit


29 Jul, 2010

9 commits

  • The ioread/iowrite accessors also need barriers as they're used in
    place of readl/writel et.al. in portable drivers. Create __iormb()
    and __iowmb() which are conditionally defined to be barriers dependent
    on ARM_DMA_MEM_BUFFERABLE, and always use these macros in the accessors.

    Signed-off-by: Russell King

    Russell King
     
  • When the coherent DMA buffers are mapped as Normal Non-cacheable
    (ARM_DMA_MEM_BUFFERABLE enabled), buffer accesses are no longer ordered
    with Device memory accesses causing failures in device drivers that do
    not use the mandatory memory barriers before starting a DMA transfer.
    LKML discussions led to the conclusion that such barriers have to be
    added to the I/O accessors:

    http://thread.gmane.org/gmane.linux.kernel/683509/focus=686153
    http://thread.gmane.org/gmane.linux.ide/46414
    http://thread.gmane.org/gmane.linux.kernel.cross-arch/5250

    This patch introduces a wmb() barrier to the write*() I/O accessors to
    handle the situations where Normal Non-cacheable writes are still in the
    processor (or L2 cache controller) write buffer before a DMA transfer
    command is issued. For the read*() accessors, a rmb() is introduced
    after the I/O to avoid speculative loads where the driver polls for a
    DMA transfer ready bit.

    Signed-off-by: Catalin Marinas
    Signed-off-by: Russell King

    Catalin Marinas
     
  • This patch is in preparation for a subsequent patch which adds barriers
    to the I/O accessors. Since the mandatory barriers may do an L2 cache
    sync, this patch avoids a recursive call into l2x0_cache_sync() via the
    write*() accessors and wmb() and a call into l2x0_cache_sync() with the
    l2x0_lock held.

    Signed-off-by: Catalin Marinas
    Signed-off-by: Russell King

    Catalin Marinas
     
  • This patch introduces readl*_relaxed()/write*_relaxed() as the main I/O
    accessors (when __mem_pci is defined). The standard read*()/write*()
    macros are now based on the relaxed accessors.

    This patch is in preparation for a subsequent patch which adds barriers
    to the I/O accessors.

    Signed-off-by: Catalin Marinas
    Signed-off-by: Russell King

    Catalin Marinas
     
  • Don't use writeb() in uncompress.h, to avoid the following build errors
    when the "Add barriers to the I/O accessors" series is applied. Use
    __raw_writeb() instead.

    arch/arm/boot/compressed/misc.o: In function `putc':
    arch/arm/mach-ux500/include/mach/uncompress.h:41:
    undefined reference to `outer_cache'

    Acked-by: Linus Walleij
    Signed-off-by: Rabin Vincent
    Signed-off-by: Russell King

    Rabin Vincent
     
  • Update the compressed boot Makefile for ARM to
    remove files during clean.

    Signed-off-by: Magnus Damm
    Signed-off-by: Russell King

    Magnus Damm
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
    x86,kgdb: Fix hw breakpoint regression

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
    davinci: da850/omap-l138 evm: account for DEFDCDC{2,3} being tied high
    regulator: tps6507x: allow driver to use DEFDCDC{2,3}_HIGH register
    wm8350-regulator: fix wm8350_register_regulator error handling
    ab3100: fix off-by-one value range checking for voltage selector

    Linus Torvalds
     
  • HW breakpoints events stopped working correctly with kgdb
    as a result of commit: 018cbffe6819f6f8db20a0a3acd9bab9bfd667e4
    (Merge commit 'v2.6.33' into perf/core).

    The regression occurred because the behavior changed for setting
    NOTIFY_STOP as the return value to the die notifier if the breakpoint
    was known to the HW breakpoint API. Because kgdb is using the HW
    breakpoint API to register HW breakpoints slots, it must also now
    implement the overflow_handler call back else kgdb does not get to see
    the events from the die notifier.

    The kgdb_ll_trap function will be changed to be general purpose code
    which can allow an easy way to implement the hw_breakpoint API
    overflow call back.

    Signed-off-by: Jason Wessel
    Acked-by: Dongdong Deng
    Acked-by: Frederic Weisbecker

    Jason Wessel
     

28 Jul, 2010

3 commits

  • Per the da850/omap-l138 Beta EVM SOM schematic, the DEFDCDC2 and
    DEFDCDC3 lines are tied high. This leads to a 3.3V IO and 1.2V CVDD
    voltage.

    Pass the right platform data to the TPS6507x driver so it can operate
    on the DEFDCDC{2,3}_HIGH register to read and change voltage levels.

    Signed-off-by: Sekhar Nori
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Sekhar Nori
     
  • The etr events switch-to-local and sync-check disable the synchronous clock
    and schedule a work queue that tries to get the clock back into sync.
    If another switch-to-local or sync-check event occurs while the work queue
    function etr_work_fn still runs the eacr.es bit and the clock_sync_word can
    become inconsistent because check_sync_clock only uses the clock_sync_word
    to determine if the clock is in sync or not. The second pass of the
    etr_work_fn will reset the eacr.es bit but will leave the clock_sync_word
    intact. Fix this race by moving the reset of the eacr.es bit into the
    switch-to-local and sync-check functions and by checking the eacr.es bit
    as well to decide if the clock needs to be synced.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • In case user space is single stepped (PER) the program check handler
    claims too early that IRQs are enabled on the return path.
    Subsequent checks will notice that the IRQ mask in the PSW and
    what lockdep thinks the IRQ mask should be do not correlate and
    therefore will print a warning to the console and disable lockdep.

    Fix this by doing all the work within the correct context.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

27 Jul, 2010

19 commits

  • We should use perf_sample_data_init() to initialize struct
    perf_sample_data. As explained in the description of commit dc1d628a
    ("perf: Provide generic perf_sample_data initialization"), it is
    possible for userspace to get the kernel to dereference data.raw,
    so if it is not initialized, that means that unprivileged userspace
    can possibly oops the kernel. Using perf_sample_data_init makes sure
    it gets initialized to NULL.

    This conversion should have been included in commit dc1d628a, but it
    got missed.

    Signed-off-by: Peter Zijlstra
    Acked-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Peter Zijlstra
     
  • …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:
    x86: Do not try to disable hpet if it hasn't been initialized before
    x86, i8259: Only register sysdev if we have a real 8259 PIC

    Linus Torvalds
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
    [CPUFREQ] powernow-k8: Limit Pstate transition latency check
    [CPUFREQ] Fix PCC driver error path
    [CPUFREQ] fix double freeing in error path of pcc-cpufreq
    [CPUFREQ] pcc driver should check for pcch method before calling _OSC
    [CPUFREQ] fix memory leak in cpufreq_add_dev
    [CPUFREQ] revert "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)"

    Linus Torvalds
     
  • * 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus:
    MIPS: Set io_map_base for several PCI bridges lacking it
    MIPS: Alchemy: Define eth platform devices in the correct order
    MIPS: BCM63xx: Prevent second enet registration on BCM6338
    MIPS: Quit using undefined behavior of ADDU in 64-bit atomic operations.
    MIPS: N32: Define getdents64.
    MIPS: MTX-1: Fix PCI on the MeshCube and related boards
    MIPS: Make init_vdso a subsys_initcall.
    MIPS: "Fix" useless 'init_vdso successfully' message.
    MIPS: PowerTV: Move register setup to before reading registers.
    SOUND: Au1000: Fix section mismatch
    VIDEO: Au1100fb: Fix section mismatch
    VIDEO: PMAGB-B: Fix section mismatch
    VIDEO: PMAG-BA: Fix section mismatch
    NET: declance: Fix section mismatches
    VIDEO. gbefb: Fix section mismatches.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    serial: fix rs485 for atmel_serial on avr32

    Linus Torvalds
     
  • The Pstate transition latency check was added for broken F10h BIOSen
    which wrongly contain a value of 0 for transition and bus master
    latency. Fam11h and later, however, (will) have similar transition
    latency so extend that behavior for them too.

    Signed-off-by: Borislav Petkov
    Signed-off-by: Dave Jones

    Borislav Petkov
     
  • The PCC cpufreq driver unmaps the mailbox address range if any CPUs fail to
    initialise, but doesn't do anything to remove the registered CPUs from the
    cpufreq core resulting in failures further down the line. We're better off
    simply returning a failure - the cpufreq core will unregister us cleanly if
    we end up with no successfully registered CPUs. Tidy up the failure path
    and also add a sanity check to ensure that the firmware gives us a realistic
    frequency - the core deals badly with that being set to 0.

    Signed-off-by: Matthew Garrett
    Cc: Naga Chumbalkar
    Signed-off-by: Dave Jones

    Matthew Garrett
     
  • Prevent double freeing on error path.

    Signed-off-by: Daniel J Blueman
    Signed-off-by: Dave Jones

    Daniel J Blueman
     
  • The pcc specification documents an _OSC method that's incompatible with the
    one defined as part of the ACPI spec. This shouldn't be a problem as both
    are supposed to be guarded with a UUID. Unfortunately approximately nobody
    (including HP, who wrote this spec) properly check the UUID on entry to the
    _OSC call. Right now this could result in surprising behaviour if the pcc
    driver performs an _OSC call on a machine that doesn't implement the pcc
    specification. Check whether the PCCH method exists first in order to reduce
    this probability.

    Signed-off-by: Matthew Garrett
    Cc: Naga Chumbalkar
    Signed-off-by: Dave Jones

    Matthew Garrett
     
  • This patch fixes a build failure [1-4] in the atmel_serial code introduced by
    patch the patch ARM: 6092/1: atmel_serial: support for RS485
    communications (e8faff7330a3501eafc9bfe5f4f15af444be29f5)

    The build failure was caused by missing struct field and missing defines
    for the avr32 board - the patch fixes this.

    [1] http://kisskb.ellerman.id.au/kisskb/buildresult/2575242/ - first failure in linux-next, may 11th
    [2] http://kisskb.ellerman.id.au/kisskb/buildresult/2816418/ - still exists as of today
    [3] http://kisskb.ellerman.id.au/kisskb/buildresult/2617511/ - first failure in Linus' tree - May 20th - did really no one notice this?!
    [4] http://kisskb.ellerman.id.au/kisskb/buildresult/2813956/ - still exists in Linus' tree as of today

    Signed-off-by: Peter Huewe
    Signed-off-by: Greg Kroah-Hartman

    Peter Huewe
     
  • Several MIPS platforms don't set pci_controller::io_map_base for their
    PCI bridges. This results in a panic in pci_iomap(). (The panic is
    conditional on CONFIG_PCI_DOMAINS, but that is now enabled for all PCI
    MIPS systems.)

    Signed-off-by: Ben Hutchings
    Cc: linux-mips@linux-mips.org
    Cc: Martin Michlmayr
    Cc: Aurelien Jarno
    Cc: 584784@bugs.debian.org
    Patchwork: https://patchwork.linux-mips.org/patch/1377/
    Signed-off-by: Ralf Baechle

    Ben Hutchings
     
  • Currently, the eth devices are probed in the inverse order, first
    au1xxx_eth1_device and then au1xxx_eth0_device. On the GPR board,
    this makes trouble:

    # ifconfig|grep HWaddr
    eth0 Link encap:Ethernet HWaddr 00:50:C2:0C:30:01
    eth1 Link encap:Ethernet HWaddr 66:22:01:80:38:10

    A bogous ethernet hwaddr is assigned to the first device and
    au1xxx_eth0_device is mapped to eth1, which even does not work
    properly. With this patch, the problems are gone:

    # ifconfig|grep HWaddr
    eth0 Link encap:Ethernet HWaddr 66:22:11:32:38:10
    eth1 Link encap:Ethernet HWaddr 66:22:11:32:38:11

    Signed-off-by: Wolfgang Grandegger
    To: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/1473/
    Signed-off-by: Ralf Baechle

    Wolfgang Grandegger
     
  • This SoC has only one ethernet MAC, so prevent registration of a second one.

    Signed-off-by: Florian Fainelli
    To: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/1482/
    Signed-off-by: Ralf Baechle

    Florian Fainelli
     
  • For 64-bit, we must use DADDU and DSUBU.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/1483/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • As a relativly new ABI N32 should only have received the getdents64(2) but
    instead it only had getdents(2). This was noticed as a performance anomaly
    in glibc.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • This patch fixes a regression introduced by commit "MIPS: Alchemy: MTX-1:
    Use linux gpio api." (bb706b28bbd647c2fd7f22d6bf03a18b9552be05) which broke
    PCI bus operation. The problem is caused by alchemy_gpio2_enable() which
    resets the GPIO2 block. Two PCI signals (PCI_SERR and PCI_RST) are connected
    to GPIO2 and they obviously do not to like the reset. Since GPIO2 is
    correctly initialized by the boot monitor (YAMON) it is not necessary to
    call this function, so just remove it.

    Also replace gpio_set_value() with alchemy_gpio_set_value() to avoid
    problems in case gpiolib gets initialized after PCI. And since alchemy
    gpio_set_value() calls au_sync() we don't have to au_sync() again later.

    Signed-off-by: Bruno Randolf
    To: linux-mips@linux-mips.org
    To: manuel.lauss@googlemail.com
    Patchwork: https://patchwork.linux-mips.org/patch/1448/
    Tested-by: Florian Fainelli
    Signed-off-by: Ralf Baechle

    Bruno Randolf
     
  • Quoting from Jiri Slaby's patch of a similar nature for x86:

    When initrd is in use and a driver does request_module() in its
    module_init (i.e. __initcall or device_initcall), a modprobe
    process is created with VDSO mapping. But VDSO is inited even in
    __initcall, i.e. on the same level (at the same time), so it may
    not be inited yet (link order matters).

    Move init_vdso up to subsys_initcall to avoid the issue.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Cc: David Daney
    Cc: Jiri Slaby
    Patchwork: http://patchwork.linux-mips.org/patch/1386/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • In addition to being useless, it was mis-spelled.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Cc: David Daney
    Patchwork: http://patchwork.linux-mips.org/patch/1385/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • The 4600 family code reads registers to differentiate between two ASIC
    variants, but this was being done prior to the register setup. This moves
    register setup before the reading code.

    Signed-off-by: David VomLehn
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1392/
    Signed-off-by: Ralf Baechle

    David VomLehn
     

26 Jul, 2010

3 commits

  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 6265/1: kirkwood: move qnap_tsx1x_register_flash() to .init.text
    ARM: 6263/1: ns9xxx: fix FTBFS for zImage
    ARM: 6262/1: arm/clps711x: fix debug macro compilation failure
    ARM: 6261/1: arm/shark: fix debug macro compilation failure
    ARM: 6260/1: arm/plat-spear: fix debug macro compilation failure
    ARM: 6259/1: arm/ns9xxx: fix debug macro compilation failure
    ARM: 6258/1: arm/h720x: fix debug macro compilation failure
    ARM: 6233/1: Delete a wrong redundant right parenthesis
    ARM: 6230/1: fix nuc900 touchscreen clk definition bug
    [ARM] pxa: fix incorrect CONFIG_CPU_PXA27x to CONFIG_PXA27x
    [ARM] pxa/colibri-pxa300: fix AC97 init
    [ARM] pxa: fix incorrect order of AC97 reset pin configs
    [ARM] pxa: fix frequency scaling for pcmcia/pxa2xx_base
    [ARM] pxa: cpufreq-pxa2xx: fix DRI recomputation routine
    [ARM] pxa/corgi: fix MMC/SD card detection failure

    Linus Torvalds
     
  • * 'kvm-updates/2.6.35' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: Use kmalloc() instead of vmalloc() for KVM_[GS]ET_MSR
    KVM: MMU: fix conflict access permissions in direct sp

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
    ACPI / Sleep: Allow the NVS saving to be skipped during suspend to RAM
    ACPI: create "processor.bm_check_disable" boot param
    ACPI: skip checking BM_STS if the BIOS doesn't ask for it
    ACPI: fix unused function warning
    ACPI: processor: fix processor_physically_present on UP
    ACPI video: fix string mismatch for Sony SR290 laptop
    ACPI battery: don't invoke power_supply_changed twice when battery is hot-added
    ACPI: handle systems which asynchoronously enable ACPI mode

    Linus Torvalds