21 Sep, 2011

1 commit

  • The GPIO clock is required for register access and interrupt detection.
    When interrupt detection is not required on any of the pin in a block,
    the block's clock can be disabled when the registers are not being
    accessed.

    Signed-off-by: Rabin Vincent
    Reviewed-by: Rickard Andersson
    Reviewed-by: Jonas Aberg
    [Adjust for new IRQ chip core code, use only local functions]
    Signed-off-by: Linus Walleij
    Signed-off-by: Grant Likely

    Rabin Vincent
     

13 Sep, 2011

2 commits

  • * 'fixes' of git://git.linaro.org/people/arnd/arm-soc:
    ARM: CSR: add missing sentinels to of_device_id tables
    ARM: cns3xxx: Fix newly introduced warnings in the PCIe code
    ARM: cns3xxx: Fix compile error caused by hardware.h removed
    ARM: davinci: fix cache flush build error
    ARM: davinci: correct MDSTAT_STATE_MASK
    ARM: davinci: da850 EVM: read mac address from SPI flash
    OMAP: omap_device: fix !CONFIG_SUSPEND case in _noirq handlers
    OMAP2430: hwmod: musb: add missing terminator to omap2430_usbhsotg_addrs[]
    OMAP3: clock: indicate that gpt12_fck and wdt1_fck are in the WKUP clockdomain
    OMAP4: clock: fix compile warning
    OMAP4: clock: re-enable previous clockdomain enable/disable sequence
    OMAP: clockdomain: Wait for powerdomain to be ON when using clockdomain force wakeup
    OMAP: powerdomains: Make all powerdomain target states as ON at init

    Linus Torvalds
     
  • Arnd Bergmann
     

12 Sep, 2011

2 commits


11 Sep, 2011

5 commits


10 Sep, 2011

3 commits

  • Commit b03e7495a862 ("PCI: Set PCI-E Max Payload Size on fabric")
    introduced a potential NULL pointer dereference in calls to
    pcie_bus_configure_settings due to attempts to access pci_bus self
    variables when the self pointer is NULL.

    To correct this, verify that the self pointer in pci_bus is non-NULL
    before dereferencing it.

    Reported-by: Stanislaw Gruszka
    Signed-off-by: Shyam Iyer
    Signed-off-by: Jon Mason
    Acked-by: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Shyam Iyer
     
  • commit d5341942d784134f2997b3ff82cd63cf71d1f932 ("PCI: Make the struct
    pci_dev * argument of pci_fixup_irqs const") did not change argument
    of pdev_to_cnspci(), and thus introduced the following warnings:

    CHECK arch/arm/mach-cns3xxx/pcie.c
    pcie.c:177:60: warning: incorrect type in argument 1 (different modifiers)
    pcie.c:177:60: expected struct pci_dev *dev
    pcie.c:177:60: got struct pci_dev const *dev
    CC arch/arm/mach-cns3xxx/pcie.o
    pcie.c: In function 'cns3xxx_pcie_map_irq':
    pcie.c:177: warning: passing argument 1 of 'pdev_to_cnspci' discards qualifiers from pointer target type
    pcie.c:52: note: expected 'struct pci_dev *' but argument is of type 'const struct pci_dev *'

    This patch fixes the issue.

    Signed-off-by: Anton Vorontsov

    Anton Vorontsov
     
  • Commit c9d95fbe59e426eed7f16e7cac812e46ac4772d0 "ARM: convert PCI defines
    to variables" deleted cns3xxx' hardware.h, but didn't remove references
    for it, so do it now.

    This patch removes lines that refer to hardware.h.

    Signed-off-by: Tommy Lin
    Signed-off-by: Imre Kaloz
    Signed-off-by: Anton Vorontsov

    Tommy Lin
     

08 Sep, 2011

1 commit


07 Sep, 2011

8 commits

  • * 'stable/bug.fixes' of git://oss.oracle.com/git/kwilk/xen:
    xen/smp: Warn user why they keel over - nosmp or noapic and what to use instead.
    xen: x86_32: do not enable iterrupts when returning from exception in interrupt context
    xen: use maximum reservation to limit amount of usable RAM

    Linus Torvalds
     
  • * 'kvm-updates/3.1' of git://github.com/avikivity/kvm:
    KVM: Fix instruction size issue in pvclock scaling

    Linus Torvalds
     
  • The TNET variant of DaVinci compiles some code that it shares
    with other DaVinci variants, however it has a V6 CPU rather than
    an ARM926T, thus the hardcoded call to arm926_flush_kern_cache_all()
    in sleep.S will obviously fail, and we need to build with the
    v6_flush_kern_cache_all() call instead. This was triggered by
    manually altering the DaVinci config to build the TNET version.

    Cc: Dave Martin
    Cc: Arnd Bergmann
    Signed-off-by: Linus Walleij
    Signed-off-by: Sekhar Nori
    Cc: stable@kernel.org

    Linus Walleij
     
  • MDSTAT.STATE occupies bits 0..5 according to all available documentation, so fix
    the #define MDSTAT_STATE_MASK at last. Using the wrong value seems to have been
    harmless though...

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Sekhar Nori

    Sergei Shtylyov
     
  • DA850/OMAP-L138 EMAC driver uses random mac address instead of
    a fixed one because the mac address is not stuffed into EMAC
    platform data.

    This patch provides a function which reads the mac address
    stored in SPI flash (registered as MTD device) and populates the
    EMAC platform data. The function which reads the mac address is
    registered as a callback which gets called upon addition of MTD
    device.

    NOTE: In case the MAC address stored in SPI flash is erased, follow
    the instructions at [1] to restore it.

    [1] http://processors.wiki.ti.com/index.php/GSG:_OMAP-L138_DVEVM_Additional_Procedures#Restoring_MAC_address_on_SPI_Flash

    Modifications in v2:
    Guarded registering the mtd_notifier only when MTD is enabled.
    Earlier this was handled using mtd_has_partitions() call, but
    this has been removed in Linux v3.0.

    Modifications in v3:
    a. Guarded da850_evm_m25p80_notify_add() function and
    da850evm_spi_notifier structure with CONFIG_MTD macros.
    b. Renamed da850_evm_register_mtd_user() function to
    da850_evm_setup_mac_addr() and removed the struct mtd_notifier
    argument to this function.
    c. Passed the da850evm_spi_notifier structure to register_mtd_user()
    function.

    Modifications in v4:
    Moved the da850_evm_setup_mac_addr() function within the first
    CONFIG_MTD ifdef construct.

    Signed-off-by: Rajashekhara, Sudhakar
    Signed-off-by: Sekhar Nori
    Cc: stable@kernel.org

    Rajashekhara, Sudhakar
     
  • Fighting unfixed U-Boots and other beasts that may the cache in
    a locked-down state when starting the kernel, we make sure to
    disable all cache lock-down when initializing the l2x0 so we
    are in a known state.

    Cc: Srinidhi Kasagar
    Cc: Rabin Vincent
    Cc: Adrian Bunk
    Cc: Rob Herring
    Cc: Catalin Marinas
    Cc: Will Deacon
    Reviewed-by: Santosh Shilimkar
    Reported-by: Jan Rinze
    Tested-by: Robert Marklund
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     
  • I was intrigued by the fact that the clock stood still on
    the Integrator, but it wasn't strange at all, because the
    timer was set up all wrong and probably has been for a
    while. With this patch the clock starts ticking again:
    make the timer periodic (reload), |= on the divisor bit
    and load the timer before starting it.

    Cc: stable@kernel.org
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     
  • The suspend/resume _noirq handlers were #ifdef'd out in the
    !CONFIG_SUSPEND case, but were still assigned to the dev_pm_ops
    struct. Fix by defining them to NULL in the !CONFIG_SUSPEND case.

    Reported-by: Arnd Bergmann
    Acked-by: Arnd Bergmann
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

05 Sep, 2011

3 commits

  • As it was decided not to export struct pt_regs to userspace, struct
    sigcontext shouldn't be using it either. The pt_regs struct for OpenRISC
    is kernel internal and the layout of the registers may change in the
    future. The struct user_regs_struct is what is guaranteed to remain
    stable, so struct sigcontext may use that instead.

    This patch removes the usage of struct pt_regs in struct sigcontext and
    makes according changes in signal.c to get the register layout right.

    The usp field is removed from the sigcontext structure as this information
    is already contained in the user_regs_struct.

    Signed-off-by: Jonas Bonn
    Reviewed-by: Emilio Cota

    Jonas Bonn
     
  • …4_clock_fixes_3.1rc', 'missing_2430_musb_adds_terminator_fix_3.1rc' and 'pwrdm_clkdm_fixes_3.1rc' into prcm-fixes-a-3.1rc

    Paul Walmsley
     
  • Add a missing array terminator to omap2430_usbhsotg_addrs[]. Without
    this terminator, the omap_hwmod resource building code runs off the
    end of the array, resulting in at least this error -- if not worse
    behavior:

    [ 0.578002] musb-omap2430: failed to claim resource 4
    [ 0.583465] omap_device: musb-omap2430: build failed (-16)
    [ 0.589294] Could not build omap_device for musb-omap2430 usb_otg_hs

    This should have been part of commit
    78183f3fdf76f422431a81852468be01b36db325 ("omap_hwmod: use a null
    structure record to terminate omap_hwmod_addr_space arrays") but was
    evidently missed.

    Signed-off-by: Paul Walmsley

    Paul Walmsley
     

04 Sep, 2011

1 commit

  • When ARCH_HAS_HOLES_MEMORYMODEL is selected, pfn_valid calls
    memblock_is_memory to test validity of a pfn:

    > memblock_is_memory(pfn << PAGE_SHIFT);

    On LPAE systems this cuts off the top bits, as the shift occurs before
    the value is promoted to a phys_addr_t.

    This patch replaces the shift with a call to __pfn_to_phys (which casts
    pfn to phys_addr_t before shifting), preventing the loss of significant
    bits.

    Signed-off-by: Mark Rutland
    Acked-by: Will Deacon
    Signed-off-by: Russell King

    Mark Rutland
     

02 Sep, 2011

2 commits

  • We have hit a couple of customer bugs where they would like to
    use those parameters to run an UP kernel - but both of those
    options turn of important sources of interrupt information so
    we end up not being able to boot. The correct way is to
    pass in 'dom0_max_vcpus=1' on the Xen hypervisor line and
    the kernel will patch itself to be a UP kernel.

    Fixes bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637308

    CC: stable@kernel.org
    Acked-by: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • If vmalloc page_fault happens inside of interrupt handler with interrupts
    disabled then on exit path from exception handler when there is no pending
    interrupts, the following code (arch/x86/xen/xen-asm_32.S:112):

    cmpw $0x0001, XEN_vcpu_info_pending(%eax)
    sete XEN_vcpu_info_mask(%eax)

    will enable interrupts even if they has been previously disabled according to
    eflags from the bounce frame (arch/x86/xen/xen-asm_32.S:99)

    testb $X86_EFLAGS_IF>>8, 8+1+ESP_OFFSET(%esp)
    setz XEN_vcpu_info_mask(%eax)

    Solution is in setting XEN_vcpu_info_mask only when it should be set
    according to
    cmpw $0x0001, XEN_vcpu_info_pending(%eax)
    but not clearing it if there isn't any pending events.

    Reproducer for bug is attached to RHBZ 707552

    CC: stable@kernel.org
    Signed-off-by: Igor Mammedov
    Acked-by: Jeremy Fitzhardinge
    Signed-off-by: Konrad Rzeszutek Wilk

    Igor Mammedov
     

01 Sep, 2011

1 commit

  • Use the domain's maximum reservation to limit the amount of extra RAM
    for the memory balloon. This reduces the size of the pages tables and
    the amount of reserved low memory (which defaults to about 1/32 of the
    total RAM).

    On a system with 8 GiB of RAM with the domain limited to 1 GiB the
    kernel reports:

    Before:

    Memory: 627792k/4472000k available

    After:

    Memory: 549740k/11132224k available

    A increase of about 76 MiB (~1.5% of the unused 7 GiB). The reserved
    low memory is also reduced from 253 MiB to 32 MiB. The total
    additional usable RAM is 329 MiB.

    For dom0, this requires at patch to Xen ('x86: use 'dom0_mem' to limit
    the number of pages for dom0') (c/s 23790)

    CC: stable@kernel.org
    Signed-off-by: David Vrabel
    Signed-off-by: Konrad Rzeszutek Wilk

    David Vrabel
     

31 Aug, 2011

6 commits

  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc/p1023rds: Fix the error of bank-width of nor flash
    powerpc/85xx: enable caam crypto driver by default
    powerpc/85xx: enable the audio drivers in the defconfigs

    Linus Torvalds
     
  • An event may occur when an mm is already released.

    I added an event in dequeue_entity() and caught a panic with
    the following backtrace:

    [ 434.421110] BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
    [ 434.421258] IP: [] __get_user_pages_fast+0x9c/0x120
    ...
    [ 434.421258] Call Trace:
    [ 434.421258] [] copy_from_user_nmi+0x51/0xf0
    [ 434.421258] [] ? sched_clock_local+0x25/0x90
    [ 434.421258] [] perf_callchain_user+0x128/0x170
    [ 434.421258] [] ? __perf_event_header__init_id+0xed/0x100
    [ 434.421258] [] perf_prepare_sample+0x200/0x280
    [ 434.421258] [] __perf_event_overflow+0x1b8/0x290
    [ 434.421258] [] ? tg_shares_up+0x0/0x670
    [ 434.421258] [] ? walk_tg_tree+0x6a/0xb0
    [ 434.421258] [] perf_swevent_overflow+0xc4/0xf0
    [ 434.421258] [] do_perf_sw_event+0x1e0/0x250
    [ 434.421258] [] perf_tp_event+0x44/0x70
    [ 434.421258] [] ftrace_profile_sched_block+0xdf/0x110
    [ 434.421258] [] dequeue_entity+0x2ad/0x2d0
    [ 434.421258] [] dequeue_task_fair+0x1c/0x60
    [ 434.421258] [] dequeue_task+0x9a/0xb0
    [ 434.421258] [] deactivate_task+0x42/0xe0
    [ 434.421258] [] thread_return+0x191/0x808
    [ 434.421258] [] ? switch_task_namespaces+0x24/0x60
    [ 434.421258] [] do_exit+0x464/0x910
    [ 434.421258] [] do_group_exit+0x58/0xd0
    [ 434.421258] [] sys_exit_group+0x17/0x20
    [ 434.421258] [] system_call_fastpath+0x16/0x1b

    Signed-off-by: Andrey Vagin
    Signed-off-by: Peter Zijlstra
    Cc: stable@kernel.org
    Link: http://lkml.kernel.org/r/1314693156-24131-1-git-send-email-avagin@openvz.org
    Signed-off-by: Ingo Molnar

    Andrey Vagin
     
  • In the p1023rds, a physical bus of nor flash is 16 bits width.
    The bank-width is width (in bytes) of the bus width. So, the
    value of bank-width of nor flash is not one, and it should be
    two.

    Signed-off-by: Chunhe Lan
    Signed-off-by: Kumar Gala

    Chunhe Lan
     
  • corenet based SoCs have SEC4 h/w, so enable the SEC4 driver,
    caam, and the algorithms it supports, and disable the
    SEC2/3 driver, talitos.

    Signed-off-by: Kim Phillips
    Signed-off-by: Kumar Gala

    Kim Phillips
     
  • Enable the audio drivers in the non-corenet 85xx defconfigs so that audio
    is enabled on the Freescale P1022DS reference board.

    Signed-off-by: Timur Tabi
    Signed-off-by: Kumar Gala

    Timur Tabi
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: Only Panther cheetah+ chips have POPC.

    Linus Torvalds
     

30 Aug, 2011

5 commits

  • Commit de2d1a524e94 ("KVM: Fix register corruption in pvclock_scale_delta")
    introduced a mul instruction that may have only a memory operand; the
    assembler therefore cannot select the correct size:

    pvclock.s:229: Error: no instruction mnemonic suffix given and no register
    operands; can't size instruction

    In this example the assembler is:

    #APP
    mul -48(%rbp) ; shrd $32, %rdx, %rax
    #NO_APP

    A simple solution is to use mulq.

    Signed-off-by: Duncan Sands
    Signed-off-by: Avi Kivity

    Duncan Sands
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: pm: avoid writing the auxillary control register for ARMv7
    ARM: pm: some ARMv7 requires a dsb in resume to ensure correctness
    ARM: pm: arm920/926: fix number of registers saved
    ARM: pm: CPU specific code should not overwrite r1 (v:p offset)
    ARM: 7066/1: proc-v7: disable SCTLR.TE when disabling MMU
    ARM: 7065/1: kexec: ensure new kernel is entered in ARM state
    ARM: 7003/1: vexpress: Add clock definition for the SP805.
    ARM: 7051/1: cpuimx* boards: fix mach-types errors
    ARM: 7019/1: Footbridge: select CLKEVT_I8253 for ARCH_NETWINDER
    ARM: 7015/1: ARM errata: Possible cache data corruption with hit-under-miss enabled
    ARM: 7014/1: cache-l2x0: Fix L2 Cache size calculation.
    ARM: 6967/1: ep93xx: ts72xx: fix board model detection
    ARM: 6965/1: ep93xx: add model detection for ts-7300 and ts-7400 boards
    ARM: cache: detect VIPT aliasing I-cache on ARMv6
    ARM: twd: register clockevents device before enabling PPI
    ARM: realview: ensure visibility of writes during reset
    ARM: perf: make name of arm_pmu_type consistent
    ARM: perf: fix prototype of release_pmu
    ARM: fix perf build with uclibc toolchains

    Linus Torvalds
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc:
    ARM: mach-footbridge: add missing header file
    ARM: mach-orion5x: add missing header file
    arm: fix compile failure in orion5x/dns323-setup.c
    at91: at91sam9261.c: fix typo in t2_clk alias for atmel_tcb.0
    ARM: S5P: fix bug in spdif_clk_get_rate
    ARM: EXYNOS4: Add restart hook for proper reboot
    ARM: EXYNOS4: Increase reset delay for USB HOST PHY
    ARM: S5P: add required chained_irq_enter/exit to gpio-int code
    ARM: EXYNOS4: add required chained_irq_enter/exit to eint code
    ARM: SAMSUNG: Add chained enrty/exit call to timer interrupt handler
    ARM: S3C64XX: Fix build break in PM debug
    ARM: S5PV210: Fix build warning
    ARM: EXYNOS4: Fix the IRQ definitions for MIPI CSIS device
    ARM: EXYNOS4: remove duplicated inclusion
    ARM: EXYNOS4: Fix wrong devname to support clkdev
    ARM: EXYNOS4: Use the correct regulator names on universal_c210
    ARM: SAMSUNG: Fix Section mismatch in samsung_bl_set()
    ARM: S5P64X0: Replace irq_gc_ack() with irq_gc_ack_set_bit()

    Linus Torvalds
     
  • These were missed in commit f5b940997397 "All Arch: remove linkage
    for sys_nfsservctl system call" due to them having no sys_ prefix
    (presumably).

    Cc: NeilBrown
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-parisc@vger.kernel.org
    Signed-off-by: Stephen Rothwell
    Acked-by: James Bottomley
    Signed-off-by: Linus Torvalds

    Stephen Rothwell