15 Dec, 2011

1 commit


05 Dec, 2011

1 commit


04 Dec, 2011

1 commit

  • The idea behind commit d91ee5863b71 ("cpuidle: replace xen access to x86
    pm_idle and default_idle") was to have one call - disable_cpuidle()
    which would make pm_idle not be molested by other code. It disallows
    cpuidle_idle_call to be set to pm_idle (which is excellent).

    But in the select_idle_routine() and idle_setup(), the pm_idle can still
    be set to either: amd_e400_idle, mwait_idle or default_idle. This
    depends on some CPU flags (MWAIT) and in AMD case on the type of CPU.

    In case of mwait_idle we can hit some instances where the hypervisor
    (Amazon EC2 specifically) sets the MWAIT and we get:

    Brought up 2 CPUs
    invalid opcode: 0000 [#1] SMP

    Pid: 0, comm: swapper Not tainted 3.1.0-0.rc6.git0.3.fc16.x86_64 #1
    RIP: e030:[] [] mwait_idle+0x6f/0xb4
    ...
    Call Trace:
    [] cpu_idle+0xae/0xe8
    [] cpu_bringup_and_idle+0xe/0x10
    RIP [] mwait_idle+0x6f/0xb4
    RSP

    In the case of amd_e400_idle we don't get so spectacular crashes, but we
    do end up making an MSR which is trapped in the hypervisor, and then
    follow it up with a yield hypercall. Meaning we end up going to
    hypervisor twice instead of just once.

    The previous behavior before v3.0 was that pm_idle was set to
    default_idle regardless of select_idle_routine/idle_setup.

    We want to do that, but only for one specific case: Xen. This patch
    does that.

    Fixes RH BZ #739499 and Ubuntu #881076
    Reported-by: Stefan Bader
    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Linus Torvalds

    Konrad Rzeszutek Wilk
     

02 Dec, 2011

1 commit

  • * 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    ARM: 7182/1: ARM cpu topology: fix warning
    ARM: 7181/1: Restrict kprobes probing SWP instructions to ARMv5 and below
    ARM: 7180/1: Change kprobes testcase with unpredictable STRD instruction
    ARM: 7177/1: GIC: avoid skipping non-existent PPIs in irq_start calculation
    ARM: 7176/1: cpu_pm: register GIC PM notifier only once
    ARM: 7175/1: add subname parameter to mfp_set_groupg callers
    ARM: 7174/1: Fix build error in kprobes test code on Thumb2 kernels
    ARM: 7172/1: dma: Drop GFP_COMP for DMA memory allocations
    ARM: 7171/1: unwind: add unwind directives to bitops assembly macros
    ARM: 7170/2: fix compilation breakage in entry-armv.S
    ARM: 7168/1: use cache type functions for arch_get_unmapped_area
    ARM: perf: check that we have a platform device when reserving PMU
    ARM: 7166/1: Use PMD_SHIFT instead of PGDIR_SHIFT in dma-consistent.c
    ARM: 7165/2: PL330: Fix typo in _prepare_ccr()
    ARM: 7163/2: PL330: Only register usable channels
    ARM: 7162/1: errata: tidy up Kconfig options for PL310 errata workarounds
    ARM: 7161/1: errata: no automatic store buffer drain
    ARM: perf: initialise used_mask for fake PMU during validation
    ARM: PMU: remove pmu_init declaration
    ARM: PMU: re-export release_pmu symbol to modules

    Linus Torvalds
     

01 Dec, 2011

4 commits

  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)
    ARM: ux500: update defconfig
    ARM: u300: update defconfig
    ARM: at91: enable additional boards in existing soc defconfig files
    ARM: at91: refresh soc defconfig files for 3.2
    ARM: at91: rename defconfig files appropriately
    ARM: OMAP2+: Fix Compilation error when omap_l3_noc built as module
    ARM: OMAP2+: Remove empty io.h
    ARM: OMAP2: select ARM_AMBA if OMAP3_EMU is defined
    ARM: OMAP: smartreflex: fix IRQ handling bug
    ARM: OMAP: PM: only register TWL with voltage layer when device is present
    ARM: OMAP: hwmod: Fix the addr space, irq, dma count APIs
    arm: mx28: fix bit operation in clock setting
    ARM: imx: export imx_ioremap
    ARM: imx/mm-imx3: conditionally compile i.MX31 and i.MX35 code
    ARM: mx5: Fix checkpatch warnings in cpu-imx5.c
    MAINTAINERS: Add missing directory
    ARM: imx: drop 'ARCH_MX31' and 'ARCH_MX35'
    ARM: imx6q: move clock register map to machine_desc.map_io
    ARM: pxa168/gplugd: add the correct SSP device
    ARM: Update mach-types to fix mxs build breakage
    ...

    Linus Torvalds
     
  • kernel/sched.c:7354:2: warning: initialization from incompatible pointer type

    Align cpu_coregroup_mask prototype interface with sched_domain_mask_f typedef
    use int cpu instead of unsigned int cpu

    Cc:
    Signed-off-by: Vincent Guittot
    Signed-off-by: Russell King

    Vincent Guittot
     
  • The SWP instruction is deprecated on ARMv6 and with ARMv7 it will be
    UNDEFINED when CONFIG_SWP_EMULATE is selected. In this case, probing a
    SWP instruction will cause an oops when the kprobes emulation code
    executes an undefined instruction.

    As the SWP instruction should be rare or non-existent in kernels for
    ARMv6 and later, we can simply avoid these problems by not allowing
    probing of these.

    Reported-by: Leif Lindholm
    Tested-by: Leif Lindholm
    Acked-by: Nicolas Pitre
    Signed-off-by: Jon Medhurst
    Signed-off-by: Russell King

    Jon Medhurst (Tixy)
     
  • There is a kprobes testcase for the instruction "strd r2, [r3], r4".
    This has unpredictable behaviour as it uses r3 for register writeback
    addressing and also stores it to memory.

    On a cortex A9, this testcase would fail because the instruction writes
    the updated value of r3 to memory, whereas the kprobes emulation code
    writes the original value.

    Fix this by changing testcase to used r5 instead of r3.

    Reported-by: Leif Lindholm
    Tested-by: Leif Lindholm
    Acked-by: Nicolas Pitre
    Signed-off-by: Jon Medhurst
    Signed-off-by: Russell King

    Jon Medhurst (Tixy)
     

29 Nov, 2011

3 commits


27 Nov, 2011

7 commits

  • Commit 4294f8baa ("ARM: gic: add irq_domain support") defines irq_start
    as irq_start = (irq_start & ~31) + 16; On a platform with a GIC and a
    CPU without PPIs, this results in irq_start being off by 16.

    This patch fixes gic_init so that we only carve out a PPI space when
    PPIs exist for the GIC being initialised.

    Cc: Rob Herring
    Signed-off-by: Will Deacon
    Signed-off-by: Russell King

    Will Deacon
     
  • When multiple GICs exist on a platform (RealView PB1176/11MP),
    we must make sure the PM notifier block is only registered
    once, otherwise we end up corrupting the PM notifier list.

    The fix is to only register the notifier when initializing
    the first GIC, as the power management functions seem
    to iterate over all the registered GICs.

    Tested on PB11MP and PB1176.

    Reported-by: Will Deacon
    Tested-by: Will Deacon
    Cc: Colin Cross
    Signed-off-by: Marc Zyngier
    Signed-off-by: Russell King

    Marc Zyngier
     
  • When compiling kprobes-test-thumb.c an error like below may occur:

    /tmp/ccKcuJcG.s:19179: Error: offset out of range

    This is caused by the compiler underestimating the size of the inline
    assembler instructions containing ".space 0x1000" and failing to spill
    the literal pool in time to prevent the generation of PC relative load
    instruction with invalid offsets.

    The fix implemented by this patch is to replace a single large .space
    directive by a number of 4 byte .space's. This requires splitting the
    macros which generate test cases for branch instructions into two forms:
    one with, and one without support for inserting extra code between
    branch and target.

    Acked-by: Nicolas Pitre
    Signed-off-by: Jon Medhurst
    Signed-off-by: Russell King

    Jon Medhurst
     
  • dma_alloc_coherent wants to split pages after allocation in order to
    reduce the memory footprint. This does not work well with GFP_COMP
    pages, so drop this flag before allocation.

    This patch is ported from arch/avr32
    (commit 3611553ef985ef7c5863c8a94641738addd04cff).

    [swarren: s/HUGETLB_PAGE/HUGETLBFS/ in comment, minor comment cleanup]

    Signed-off-by: Sumit Bhattacharya
    Tested-by: Varun Colbert
    Signed-off-by: Stephen Warren
    Signed-off-by: Russell King

    Sumit Bhattacharya
     
  • The bitops functions (e.g. _test_and_set_bit) on ARM do not have unwind
    annotations and therefore the kernel cannot backtrace out of them on a
    fatal error (for example, NULL pointer dereference).

    This patch annotates the bitops assembly macros with UNWIND annotations
    so that we can produce a meaningful backtrace on error. Callers of the
    macros are modified to pass their function name as a macro parameter,
    enforcing that the macros are used as standalone function implementations.

    Acked-by: Dave Martin
    Signed-off-by: Will Deacon
    Signed-off-by: Russell King

    Will Deacon
     
  • Fix compilation failure, when Thumb support is not enabled:

    arch/arm/kernel/entry-armv.S: Assembler messages:
    arch/arm/kernel/entry-armv.S:501: Error: backward ref to unknown label "2:"
    arch/arm/kernel/entry-armv.S:502: Error: backward ref to unknown label "3:"
    make[2]: *** [arch/arm/kernel/entry-armv.o] Error 1

    Signed-off-by: Guennadi Liakhovetski
    Reviewed-by: Dave Martin
    Signed-off-by: Russell King

    Guennadi Liakhovetski
     
  • There are already cache type decoding functions, so use those instead
    of custom decode code which only works for ARMv6.

    Signed-off-by: Rob Herring
    Acked-by: Nicolas Pitre
    Acked-by: Will Deacon
    Signed-off-by: Russell King

    Rob Herring
     

25 Nov, 2011

2 commits


24 Nov, 2011

20 commits

  • …/linux-omap into fixes

    Arnd Bergmann
     
  • Arnd Bergmann
     
  • Arnd Bergmann
     
  • Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Cc: Nicolas Ferre
    Signed-off-by: Arnd Bergmann

    Jean-Christophe PLAGNIOL-VILLARD
     
  • Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Cc: Nicolas Ferre
    Signed-off-by: Arnd Bergmann

    Jean-Christophe PLAGNIOL-VILLARD
     
  • rename all Atmel reference board as soc defconfig

    Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Cc: Nicolas Ferre
    Signed-off-by: Arnd Bergmann

    Jean-Christophe PLAGNIOL-VILLARD
     
  • At this point, ehv_pic has been allocated but not stored anywhere, so it
    should be freed before leaving the function.

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

    //
    @exists@
    local idexpression x;
    statement S,S1;
    expression E;
    identifier fl;
    expression *ptr != NULL;
    @@

    x = \(kmalloc\|kzalloc\|kcalloc\)(...);
    ...
    if (x == NULL) S
    }
    when any
    when != true x == NULL
    x->fl
    ...>
    (
    if (x == NULL) S1
    |
    if (...) { ... when != x
    when forall
    (
    return \(0\|\|ptr\);
    |
    * return ...;
    )
    }
    )
    //

    Signed-off-by: Julia Lawall
    Acked-by: Timur Tabi
    Signed-off-by: Kumar Gala

    Julia Lawall
     
  • If Freescale LBC driver fails to initialise itself from device tree, then
    internal structure is freed only but not NULL-fied. As result functions
    fsl_lbc_find() after checking the structure is not NULL are trying to
    access device registers.

    Signed-off-by: Alexandre Rusev
    Signed-off-by: Kumar Gala

    Alexandre Rusev
     
  • QE_General4 should only round up the divisor iff divisor is > 3.
    Rounding up lower divisors makes the error too big, causing USB
    on MPC832x to fail.

    Signed-off-by: Joakim Tjernlund
    Acked-by: Timur Tabi
    Signed-off-by: Kumar Gala

    Joakim Tjernlund
     
  • arch/powerpc/platforms/85xx/p3060_qds.c: In function '__machine_initcall_p3060_qds_declare_of_platform_devices':
    arch/powerpc/platforms/85xx/p3060_qds.c:73:1: error: implicit declaration of function 'declare_of_platform_devices'

    declare_of_platform_devices should have been corenet_ds_publish_devices.

    Signed-off-by: Kumar Gala

    Kumar Gala
     
  • The driver for the Freescale P3060 QDS got added by commit 96cc017c5b
    ("[...] Add support for P3060QDS board"). Its Kconfig entry selects
    MPC8xxx_GPIO. But at the time that driver got added MPC8xxx_GPIO was
    already renamed to GPIO_MPC8XXX, by commit c68308dd50c ("gpio: move
    mpc8xxx/512x gpio driver to drivers/gpio").

    So make this driver select GPIO_MPC8XXX.

    Signed-off-by: Paul Bolle
    Acked-by: Wolfram Sang
    Signed-off-by: Kumar Gala

    Paul Bolle
     
  • P1023 external IRQ[4:6, 11] are not pin out, but the interrupts are
    utilized by the PCIe controllers. As they are not exposed as pins we
    need to set them as active-high (internal to the SoC these interrupts
    are pulled down).

    IRQs[0:3,7:10] are pulled up on the board so we have them set as
    active-low.

    Signed-off-by: Roy Zang
    Signed-off-by: Kumar Gala

    Roy Zang
     
  • Tony Lindgren
     
  • Tony Lindgren
     
  • Fix below compilation failure on mainline kernel 3.2-rc1
    when omap_l3_noc.c is built as module.

    arch/arm/mach-omap2/omap_l3_noc.c:240: error: expected ',' or ';' before 'MODULE_DEVICE_TABLE'

    Signed-off-by: Govindraj.R
    Acked-by: Santosh Shilimkar
    Signed-off-by: Tony Lindgren

    Govindraj.R
     
  • The file arch/arm/mach-omap2/io.h is empty, so we can remove it.

    Signed-off-by: Thomas Weber
    Acked-by: Kevin Hilman
    Signed-off-by: Tony Lindgren

    Thomas Weber
     
  • This patch selects ARM_AMBA if OMAP3_EMU is defined because
    OC_ETM depends on ARM_AMBA, so fix the link failure[1].

    [1],
    arch/arm/kernel/built-in.o: In function `etm_remove':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:609: undefined
    reference to `amba_release_regions'
    arch/arm/kernel/built-in.o: In function `etb_remove':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:409: undefined
    reference to `amba_release_regions'
    arch/arm/kernel/built-in.o: In function `etm_init':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:640: undefined
    reference to `amba_driver_register'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:646: undefined
    reference to `amba_driver_register'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:648: undefined
    reference to `amba_driver_unregister'
    arch/arm/kernel/built-in.o: In function `etm_probe':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:545: undefined
    reference to `amba_request_regions'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:595: undefined
    reference to `amba_release_regions'
    arch/arm/kernel/built-in.o: In function `etb_probe':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:347: undefined
    reference to `amba_request_regions'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/kernel/etm.c:392: undefined
    reference to `amba_release_regions'
    arch/arm/mach-omap2/built-in.o: In function `emu_init':
    /home/tom/git/omap/linux-2.6-omap/arch/arm/mach-omap2/emu.c:62:
    undefined reference to `amba_device_register'
    /home/tom/git/omap/linux-2.6-omap/arch/arm/mach-omap2/emu.c:63:
    undefined reference to `amba_device_register'
    make: *** [.tmp_vmlinux1] Error 1
    making modules

    Signed-off-by: Ming Lei
    Cc: stable@vger.kernel.org
    Signed-off-by: Tony Lindgren

    Ming Lei
     
  • Fix a bug which has been on this driver since
    it was added by the original commit 984aa6db
    which would never clear IRQSTATUS bits.

    Signed-off-by: Felipe Balbi
    Signed-off-by: Kevin Hilman
    Cc: stable@vger.kernel.org
    Signed-off-by: Tony Lindgren

    Felipe Balbi
     
  • Current code registers voltage layer details for TWL PMIC even when a TWL
    has not been registered. Fix this to only register the TWL with voltage
    layer when the TWL PMIC is initialized by board-level code.

    Signed-off-by: Kevin Hilman
    Cc: stable@vger.kernel.org
    Signed-off-by: Tony Lindgren

    Kevin Hilman
     
  • The address spaces, irqs and dma reqs count APIs return the
    number of corresponding entries in a hwmod including a additional
    null value or a -1 terminator in the structure introduced recently.
    More information here:

    - 212738a4: omap_hwmod: use a terminator record with omap_hwmod_mpu_irqs
    arrays

    - 78183f3f: omap_hwmod: use a null structure record to terminate
    omap_hwmod_addr_space arrays

    - bc614958: omap_hwmod: use a terminator record with omap_hwmod_dma_info
    arrays

    The issue with irqs and dma info was originally reported by Benoit Cousson.

    The devices which have multiple hwmods and use device_build_ss are
    broken with this, as their resources are populated with a extra null
    value, subsequently the probe fails. So fix the API not to include
    the array terminator in the count.

    Reported-by: Benoit Cousson
    Signed-off-by: Santosh Shilimkar
    Signed-off-by: sricharan
    Signed-off-by: Benoit Cousson
    Cc: Paul Walmsley
    Cc: stable@vger.kernel.org
    Signed-off-by: Tony Lindgren

    sricharan