28 Aug, 2013

3 commits

  • Commit 8e44ddc3f3 ("powerpc/kvm/book3s: Add support for H_IPOLL and
    H_XIRR_X in XICS emulation") added a call to get_tb() but didn't
    include the header that defines it, and on some configs this means
    book3s_xics.c fails to compile:

    arch/powerpc/kvm/book3s_xics.c: In function ‘kvmppc_xics_hcall’:
    arch/powerpc/kvm/book3s_xics.c:812:3: error: implicit declaration of function ‘get_tb’ [-Werror=implicit-function-declaration]

    Cc: stable@vger.kernel.org [v3.10, v3.11]
    Signed-off-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Paul Mackerras
     
  • err was overwritten by a previous function call, and checked to be 0. If
    the following page allocation fails, 0 is going to be returned instead
    of -ENOMEM.

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Signed-off-by: Alexander Graf

    Thadeu Lima de Souza Cascardo
     
  • 'rmls' is 'unsigned long', lpcr_rmls() will return negative number when
    failure occurs, so it need a type cast for comparing.

    'lpid' is 'unsigned long', kvmppc_alloc_lpid() return negative number
    when failure occurs, so it need a type cast for comparing.

    Signed-off-by: Chen Gang
    Acked-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Chen Gang
     

23 Aug, 2013

1 commit


25 Jul, 2013

1 commit

  • Unlike the other general-purpose SPRs, SPRG3 can be read by usermode
    code, and is used in recent kernels to store the CPU and NUMA node
    numbers so that they can be read by VDSO functions. Thus we need to
    load the guest's SPRG3 value into the real SPRG3 register when entering
    the guest, and restore the host's value when exiting the guest. We don't
    need to save the guest SPRG3 value when exiting the guest as usermode
    code can't modify SPRG3.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Paul Mackerras
     

11 Jul, 2013

2 commits

  • kvm_guest_enter() was already called by kvmppc_prepare_to_enter().
    Don't call it again.

    Signed-off-by: Scott Wood
    Signed-off-by: Alexander Graf

    Scott Wood
     
  • Currently this is only being done on 64-bit. Rather than just move it
    out of the 64-bit ifdef, move it to kvm_lazy_ee_enable() so that it is
    consistent with lazy ee state, and so that we don't track more host
    code as interrupts-enabled than necessary.

    Rename kvm_lazy_ee_enable() to kvm_fix_ee_before_entry() to reflect
    that this function now has a role on 32-bit as well.

    Signed-off-by: Scott Wood
    Signed-off-by: Alexander Graf

    Scott Wood
     

10 Jul, 2013

2 commits

  • The table of offsets to real-mode hcall handlers in book3s_hv_rmhandlers.S
    can contain negative values, if some of the handlers end up before the
    table in the vmlinux binary. Thus we need to use a sign-extending load
    to read the values in the table rather than a zero-extending load.
    Without this, the host crashes when the guest does one of the hcalls
    with negative offsets, due to jumping to a bogus address.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Paul Mackerras
     
  • This corrects the usage of the tlbie (TLB invalidate entry) instruction
    in HV KVM. The tlbie instruction changed between PPC970 and POWER7.
    On the PPC970, the bit to select large vs. small page is in the instruction,
    not in the RB register value. This changes the code to use the correct
    form on PPC970.

    On POWER7 we were calculating the AVAL (Abbreviated Virtual Address, Lower)
    field of the RB value incorrectly for 64k pages. This fixes it.

    Since we now have several cases to handle for the tlbie instruction, this
    factors out the code to do a sequence of tlbies into a new function,
    do_tlbies(), and calls that from the various places where the code was
    doing tlbie instructions inline. It also makes kvmppc_h_bulk_remove()
    use the same global_invalidates() function for determining whether to do
    local or global TLB invalidations as is used in other places, for
    consistency, and also to make sure that kvm->arch.need_tlb_flush gets
    updated properly.

    Signed-off-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Paul Mackerras
     

08 Jul, 2013

5 commits

  • Both RMA and hash page table request will be a multiple of 256K. We can use
    a chunk size of 256K to track the free/used 256K chunk in the bitmap. This
    should help to reduce the bitmap size.

    Signed-off-by: Aneesh Kumar K.V
    Acked-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Aneesh Kumar K.V
     
  • Older version of power architecture use Real Mode Offset register and Real Mode Limit
    Selector for mapping guest Real Mode Area. The guest RMA should be physically
    contigous since we use the range when address translation is not enabled.

    This patch switch RMA allocation code to use contigous memory allocator. The patch
    also remove the the linear allocator which not used any more

    Acked-by: Paul Mackerras
    Signed-off-by: Aneesh Kumar K.V
    Signed-off-by: Alexander Graf

    Aneesh Kumar K.V
     
  • Powerpc architecture uses a hash based page table mechanism for mapping virtual
    addresses to physical address. The architecture require this hash page table to
    be physically contiguous. With KVM on Powerpc currently we use early reservation
    mechanism for allocating guest hash page table. This implies that we need to
    reserve a big memory region to ensure we can create large number of guest
    simultaneously with KVM on Power. Another disadvantage is that the reserved memory
    is not available to rest of the subsystems and and that implies we limit the total
    available memory in the host.

    This patch series switch the guest hash page table allocation to use
    contiguous memory allocator.

    Signed-off-by: Aneesh Kumar K.V
    Acked-by: Paul Mackerras
    Signed-off-by: Alexander Graf

    Aneesh Kumar K.V
     
  • We don't emulate breakpoints yet, so just ignore reads and writes
    to / from DABR.

    This fixes booting of more recent Linux guest kernels for me.

    Reported-by: Nello Martuscielli
    Tested-by: Nello Martuscielli
    Signed-off-by: Alexander Graf

    Alexander Graf
     
  • Add prerequisite patch for CMA RMA allocation patches

    Alexander Graf
     

04 Jul, 2013

23 commits

  • Some userspaces do not preserve unusable property. Since usable
    segment has to be present according to VMX spec we can use present
    property to amend userspace bug by making unusable segment always
    nonpresent. vmx_segment_access_rights() already marks nonpresent segment
    as unusable.

    Cc: stable@vger.kernel.org # 3.9+
    Reported-by: Stefan Pietsch
    Tested-by: Stefan Pietsch
    Signed-off-by: Gleb Natapov
    Signed-off-by: Paolo Bonzini

    Gleb Natapov
     
  • Finally plug KVM/arm64 into the config system, making it possible
    to enable KVM support on AArch64 CPUs.

    Signed-off-by: Marc Zyngier
    Signed-off-by: Paolo Bonzini

    Marc Zyngier
     
  • Pull KVM fixes from Paolo Bonzini:
    "On the x86 side, there are some optimizations and documentation
    updates. The big ARM/KVM change for 3.11, support for AArch64, will
    come through Catalin Marinas's tree. s390 and PPC have misc cleanups
    and bugfixes"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (87 commits)
    KVM: PPC: Ignore PIR writes
    KVM: PPC: Book3S PR: Invalidate SLB entries properly
    KVM: PPC: Book3S PR: Allow guest to use 1TB segments
    KVM: PPC: Book3S PR: Don't keep scanning HPTEG after we find a match
    KVM: PPC: Book3S PR: Fix invalidation of SLB entry 0 on guest entry
    KVM: PPC: Book3S PR: Fix proto-VSID calculations
    KVM: PPC: Guard doorbell exception with CONFIG_PPC_DOORBELL
    KVM: Fix RTC interrupt coalescing tracking
    kvm: Add a tracepoint write_tsc_offset
    KVM: MMU: Inform users of mmio generation wraparound
    KVM: MMU: document fast invalidate all mmio sptes
    KVM: MMU: document fast invalidate all pages
    KVM: MMU: document fast page fault
    KVM: MMU: document mmio page fault
    KVM: MMU: document write_flooding_count
    KVM: MMU: document clear_spte_count
    KVM: MMU: drop kvm_mmu_zap_mmio_sptes
    KVM: MMU: init kvm generation close to mmio wrap-around value
    KVM: MMU: add tracepoint for check_mmio_spte
    KVM: MMU: fast invalidate all mmio sptes
    ...

    Linus Torvalds
     
  • …nux/kernel/git/konrad/xen

    Pull Xen bugfixes from Konrad Rzeszutek Wilk:
    - Fix memory leak when CPU hotplugging.
    - Compile bugs with various #ifdefs
    - Fix state changes in Xen PCI front not dealing well with new
    toolstack.
    - Cleanups in code (use pr_*, fix 80 characters splits, etc)
    - Long standing bug in double-reporting the steal time

    * tag 'stable/for-linus-3.11-rc0-tag-two' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/time: remove blocked time accounting from xen "clockchip"
    xen: Convert printks to pr_<level>
    xen: ifdef CONFIG_HIBERNATE_CALLBACKS xen_*_suspend
    xen/pcifront: Deal with toolstack missing 'XenbusStateClosing' state.
    xen/time: Free onlined per-cpu data structure if we want to online it again.
    xen/time: Check that the per_cpu data structure has data before freeing.
    xen/time: Don't leak interrupt name when offlining.
    xen/time: Encapsulate the struct clock_event_device in another structure.
    xen/spinlock: Don't leak interrupt name when offlining.
    xen/smp: Don't leak interrupt name when offlining.
    xen/smp: Set the per-cpu IRQ number to a valid default.
    xen/smp: Introduce a common structure to contain the IRQ name and interrupt line.
    xen/smp: Coalesce the free_irq calls in one function.
    xen-pciback: fix error return code in pcistub_irq_handler_switch()

    Linus Torvalds
     
  • Pull AMD EDAC update from Borislav Petkov:
    "Add MCE signatures for family 0x15, models 30-3f"

    * tag 'edac_for_3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    EDAC, MCE, AMD: Add an MCE signature for new Fam15h models
    EDAC: Replace strict_strtoul() with kstrtoul()

    Linus Torvalds
     
  • Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "Very quiet release here, as well as the usual driver specific updates
    only a couple of new things:

    - New drivers for TI ABB LDOs and MAX77693 PMICs
    - Support for enabling bypass mode support via device tree"

    * tag 'regulator-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (23 commits)
    regulator: max77693: Remove NULL test for rmatch[i].init_data
    regulator: max77693: Fix trivial typo
    regulator: ab8500-ext: Staticize local symbols
    regulator: max77693: Add max77693 regualtor driver.
    regulator: max8973: fix a typo in documentation
    regulator: max8973: initial DT support
    regulators: max8973: fix multiple instance support
    regulator: of: Added a property to indicate bypass mode support
    regulator: ti-abb: Convert to use devm_ioremap_resource
    regulator: tps62360: Fix crash in i2c_driver .probe
    regulator: ab8500: Provide supply names for the AUX regulators
    regulator: ab8500-ext: Enable for Device Tree
    regulator: ab8500-ext: Register as a device in its own right
    regulator: ab8500-ext: Provide a set_voltage call-back operation
    regulator: ab8500: Ensure AB8500 external registers are probed first
    regulator: core: add regulator_get_linear_step()
    regulator: lp397x: use devm_kzalloc() to make cleanup paths simpler
    regulator: lp872x: support the device tree feature
    regulator: Remove unnecessary include of linux/delay.h from regulator drivers
    regulator: isl6271a: Use NULL instead of 0
    ...

    Linus Torvalds
     
  • Pull clock framework updates from Mike Turquette:
    "The common clock framework changes for 3.11 include new clock drivers
    across several different platforms and architectures, fixes to
    existing drivers, a MAINTAINERS file fix and improvements to the basic
    clock types that allow them to be of use to more platforms than before.

    Only a few fixes to the core framework are included with most all of
    the changes landing in the various clock drivers themselves."

    * tag 'clk-for-linus-3.11' of git://git.linaro.org/people/mturquette/linux: (55 commits)
    clk: tegra: fix ifdef for tegra_periph_reset_assert inline
    clk: tegra: provide tegra_periph_reset_assert alternative
    clk: exynos4: Fix clock aliases for cpufreq related clocks
    clk: samsung: Add MUX_FA macro to pass flag and alias
    clk: add support for Rockchip gate clocks
    clk: vexpress: Make the clock drivers directly available for arm64
    clk: vexpress: Use full node name to identify individual clocks
    clk: tegra: T114: add DFLL DVCO reset control
    clk: tegra: T114: add DFLL source clocks
    clk: tegra: T114: add FCPU clock shaper programming, needed by the DFLL
    clk: gate: add CLK_GATE_HIWORD_MASK
    clk: divider: add CLK_DIVIDER_HIWORD_MASK flag
    clk: mux: add CLK_MUX_HIWORD_MASK
    clk: Always notify whole subtree when reparenting
    MAINTAINERS: make drivers/clk entry match subdirs
    clk: honor CLK_GET_RATE_NOCACHE in clk_set_rate
    clk: use clk_get_rate() for debugfs
    clk: tegra: Use override bits when needed
    clk: tegra: override bits for Tegra30 PLLM
    clk: tegra: override bits for Tegra114 PLLM
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "A fairly quiet release for the SPI subsystem, the standout changes
    being:

    - Core support for implementing bits per word constraints implemented
    by Stephen Warren, factoring some code out of drivers.

    - Addition of polling mode support for the s3c64xx driver as some
    newer Exynos systems have taken the unusual step of removing
    interrupt support.

    - Use of the in-IP FIFO and generic dmaengine support for the OMAP2
    driver, providing improved performance.

    - Conversion of the mpc512x driver to use the core message queue
    infrastructure.

    The nicest thing being that all the factoring out into common code
    leads to a negative diffstat overall."

    * tag 'spi-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (42 commits)
    spi/s3c64xx: Rely on the compiler eliminating the OF ID table
    spi: s3c64xx: Added support for exynos5440 spi
    spi: s3c64xx: Added provision for dedicated cs pin
    spi: omap2-mcspi: add generic DMA request support to the DT binding
    spi: omap2-mcspi: convert to dma_request_slave_channel_compat()
    spi/s3c64xx: Make wait_for_timeout() function name less generic
    spi: s3c64xx: added support for polling mode
    spi: omap2-mcspi: Add FIFO buffer support
    spi: omap2-mcspi: Move bytes per word calculation to the function
    spi: spi-xilinx: cleanup a check in xilinx_spi_txrx_bufs()
    spi: spi-nuc900: Remove redundant platform_set_drvdata()
    spi: spi-fsl-lib: Make mpc8xxx_spi_work static
    spi: spi-topcliff-pch: Fix sparse warnings
    spi: spi-xilinx: Remove redundant platform_set_drvdata()
    spi: spi-xilinx: Add run run-time endian detection
    spi: mpc512x: use the SPI subsystem's message queue
    spi: mpc512x: improve throughput in the RX/TX func
    spi: mpc512x: minor prep before feature change
    spi: atmel: convert to dma_request_slave_channel_compat()
    spi: sirf: avoid uninitialized-use warning
    ...

    Linus Torvalds
     
  • …/linusw/linux-pinctrl

    Pull pin control changes from Linus Walleij:

    - A large slew of improvements of the Genric pin configuration support,
    and deployment in four different platforms: Rockchip, Super-H PFC,
    ABx500 and TZ1090. Support BIAS_BUS_HOLD, get device tree parsing
    and debugfs support into shape.

    - We also have device tree support with generic naming conventions for
    the generic pin configuration.

    - Delete the unused and confusing direct pinconf API. Now state
    transitions is *the* way to control pins and multiplexing.

    - New drivers for Rockchip, TZ1090, and TZ1090 PDC.

    - Two pin control states related to power management are now handled in
    the device core: "sleep" and "idle", removing a lot of boilerplate
    code in drivers. We do not yet know if this is the final word for
    pin PM, but it already make things a lot easier to handle.

    - Handle sparse GPIO ranges passing a list of disparate pins, and
    utilize these in the new BayTrail (x86 Atom SoC) driver.

    - Make the sunxi (AllWinner) driver handle external interrupts.

    - Make it possible for pinctrl-single to handle the case where several
    pins are managed by a single register, and augment it to handle sleep
    modes.

    - Cleanups and improvements for the abx500 drivers.

    - Move Sirf pin control drivers to their own directory, support
    save/restore of context and add support for the SiRFatlas6 SoC.

    - PMU muxing for the Dove pinctrl driver.

    - Finalization and support for VF610 in the i.MX6 pinctrl driver.

    - Smoothen out various Exynos rough edges.

    - Generic cleanups of various kinds.

    * tag 'pinctrl-for-v3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (82 commits)
    pinctrl: vt8500: wmt: remove redundant dev_err call in wmt_pinctrl_probe()
    pinctrl: remove bindings for pinconf options needing more thought
    pinctrl: remove slew-rate parameter from tz1090
    pinctrl: set unit for debounce time pinconfig to usec
    pinctrl: more clarifications for generic pull configs
    pinctrl: rip out the direct pinconf API
    pinctrl-tz1090-pdc: add TZ1090 PDC pinctrl driver
    pinctrl-tz1090: add TZ1090 pinctrl driver
    pinctrl: samsung: Staticize drvdata_list
    pinctrl: rockchip: Add missing irq_gc_unlock() call before return error
    pinctrl: abx500: rework error path
    pinctrl: abx500: suppress hardcoded value
    pinctrl: abx500: factorize code
    pinctrl: abx500: fix abx500_gpio_get()
    pinctrl: abx500: fix abx500_pin_config_set()
    pinctrl: abx500: Add device tree support
    sh-pfc: Guard DT parsing with #ifdef CONFIG_OF
    pinctrl: add Intel BayTrail GPIO/pinctrl support
    pinctrl: fix pinconf_ops::pin_config_dbg_parse_modify kerneldoc
    pinctrl: Staticize local symbols
    ...

    Conflicts:
    drivers/net/ethernet/ti/davinci_mdio.c
    drivers/pinctrl/Makefile

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "A small but useful set of regmap updates this time around:

    - An abstraction for bitfields within a register map contributed by
    Srinivas Kandagatla, allowing drivers to cope more easily when
    hardware designers randomly move things about (mainly when talking
    to things like system controllers).

    - Changes from Lars-Peter Clausen to allow the MMIO regmap to be used
    from hard IRQ context.

    - Small improvements to the cache infrastructure and performance,
    including a default cache sync operation so now all regmaps can
    sync easily.

    There's also a pinctrl driver making use of the new bitfield API,
    merged here for dependency reasons. There will be a simple add/add
    conflict with the pinctrl tree as a result."

    * tag 'regmap-v3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    pinctrl: st: Remove unnecessary use of of_match_ptr macro
    pinctrl: st: fix return value check
    pinctrl: st: Add pinctrl and pinconf support.
    regmap: debugfs: Suppress cache for partial register files
    regmap: Add regmap_field APIs
    regmap: core: Cache all registers by default when cache is enabled
    regmap: Implemented default cache sync operation
    regmap: Make regmap-mmio usable from atomic contexts
    regmap: regcache: Fixup locking for custom lock callbacks
    regmap: debugfs: Fix return from regmap_debugfs_get_dump_start
    regmap: debugfs: Don't mark lockdep as broken due to debugfs write
    regmap: rbtree: Use range information to allocate nodes
    regmap: rbtree: Factor out node allocation
    regmap: Make regmap_check_range_table() a public API
    regmap: Add support for discarding parts of the register cache

    Linus Torvalds
     
  • Pull GPIO updates from Linus Walleij:
    "Here is a batch of GPIO changes for v3.11. I have agreed with Grant
    to take care of the pull requests for this development cycle.

    No special things are happening in the GPIO tree this time (nice with
    some calm) and I have been extra careful to do regression builds and
    it's well boiled in -next.

    GPIO changes for the v3.11 development cycle:
    - Incremental development for the Langwell (Atom SoC), Xilinx, ICH
    and RCAR drivers.
    - Cleanups from Jingoo Han, Axel Lin, Wei Jongjun, Wolfram Sang,
    Tushar Behera, Sachin Kamat and Yijing Wang"

    * tag 'gpio-for-v3.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (35 commits)
    Gpio/trivial: replace numeric with standard PM state macros
    gpiolib: remove warnning of allocations with IRQs disabled
    gpio: grgpio: Staticize local symbols
    gpio-langwell: remove Withney point support
    gpio: ich: add GPO_BLINK support
    gpio-sta2x11: Convert to use devm_ioremap_resource
    gpio_msm: Convert to use devm_ioremap_resource
    gpio-rcar: Use OUTDT when reading GPIOs configured as output
    gpio-sta2x11: Fix potential NULL pointer dereference
    gpio/omap: omap_gpio_init_context stub must be inline
    gpio: msm-v1: Remove errant __devinit to fix compile
    gpio: devres: make comments proper
    GPIO: xilinx: Enable driver for Xilinx zynq
    DT: Add documentation for gpio-xilinx
    GPIO: xilinx: Use BIT macro
    GPIO: xilinx: Use __raw_readl/__raw_writel IO functions
    GPIO: xilinx: Add support for dual channel
    GPIO: xilinx: Simplify driver probe function
    gpio: sx150x: convert to use devm_* functions
    MAINTAINERS: add linux-gpio mailing list
    ...

    Linus Torvalds
     
  • Pull thermal power-limit update from Tony Luck:
    "Thermal limit warnings are too scary and cause unnecessary concern"

    * tag 'please-pull-mce-therm' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    x86 thermal: Disable power limit notification interrupt by default
    x86 thermal: Delete power-limit-notification console messages

    Linus Torvalds
     
  • Pull ia64 IOH hotplug fixes from Tony Luck:
    "Series to fix IOH hotplug in ia64"

    * tag 'please-pull-root_bus_hotplug' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    PCI: Replace printks with appropriate pr_*()
    PCI/IA64: introduce probe_pci_root_info() to manage _CRS resource
    PCI/IA64: Add host bridge resource release for _CRS path
    PCI/IA64: fix memleak for create pci root bus fail
    PCI/IA64: Allocate pci_root_info instead of using stack
    PCI/IA64: embed pci hostbridge resources into pci_root_info
    PCI/IA64: SN: use normal resource instead of pci_window
    PCI/IA64: SN: remove sn_pci_window_fixup()

    Linus Torvalds
     
  • Pull pstore update from Tony Luck:
    "Fixes for pstore for 3.11 merge window"

    * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    efivars: If pstore_register fails, free unneeded pstore buffer
    acpi: Eliminate console msg if pstore.backend excludes ERST
    pstore: Return unique error if backend registration excluded by kernel param
    pstore: Fail to unlink if a driver has not defined pstore_erase
    pstore/ram: remove the power of buffer size limitation
    pstore/ram: avoid atomic accesses for ioremapped regions
    efi, pstore: Cocci spatch "memdup.spatch"

    Linus Torvalds
     
  • Pull misc ia64 updates from Tony Luck:
    "Miscellaneous ia64 changes for 3.11 merge window"

    * tag 'please-pull-misc-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    [IA64] Delete __cpuinit usage from all ia64 users
    [IA64] hpsim: Fix check for overlong simscsi prefix.
    [IA64] pci: Remove unused fallback_dev
    [IA64] perfmon: Use %*phD specifier to dump small buffers
    [IA64] Fix trap #45 handling

    Linus Torvalds
     
  • Pull "exotic" arch fixes from Geert Uytterhoeven:
    "This is a collection of several exotic architecture fixes, and a few
    other fixes for issues that were detected while doing the former"

    * 'exotic-arch-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (35 commits)
    lib: Move fonts from drivers/video/console/ to lib/fonts/
    console/font: Refactor font support code selection logic
    Revert "staging/solo6x10: depend on CONFIG_FONTS"
    input: cros_ec_keyb_clear_keyboard() depends on CONFIG_PM_SLEEP
    score: Wire up asm-generic/xor.h
    score: Remove unneeded
    openrisc: Wire up asm-generic/xor.h
    h8300/boot: Use POSIX "$((..))" instead of bashism "$[...]"
    h8300: Mark H83002 and H83048 CPU support broken
    h8300: Switch h8300 to drivers/Kconfig
    h8300: Limit timer channel ranges in Kconfig
    h8300: Wire up asm-generic/xor.h
    h8300: Fill the system call table using a CALL() macro
    h8300: Fix
    h8300: Hardcode symbol prefixes in asm sources
    h8300: add missing definition for read_barries_depends()
    frv: head.S - Remove commented-out initialization code
    cris: Wire up asm-generic/vga.h
    parport: disable PC-style parallel port support on cris
    console: Disable VGA text console support on cris
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven.

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/q40: Enable PC parallel port in defconfig
    m68k/q40: Undefine insl/outsl before redefining them
    m68k/uaccess: Fix asm constraints for userspace access
    swim: Release memory region after incorrect return/goto
    m68k/irq: Vector ints need a valid interrupt handler
    m68k/math-emu: unsigned issue, 'unsigned long' will never be less than zero
    m68k: remove CONFIG_EARLY_PRINTK dependency on CONFIG_EMBEDDED, default to n
    m68k/sun3: remove inline marking of EXPORT_SYMBOL functions
    [SCSI] a3000: use module_platform_driver_probe()
    [SCSI] a4000t: use module_platform_driver_probe()
    m68k: Remove inline strcpy() and strcat() implementations

    Linus Torvalds
     
  • Pull first batch of ARC changes from Vineet Gupta:
    "There's a second bunch to follow next week - which depends on commits
    on other trees (irq/net). I'd have preferred the accompanying ARC
    change via respective trees, but it didn't workout somehow.

    Highlights of changes:

    - Continuation of ARC MM changes from 3.10 including

    zero page optimization
    Setting pagecache pages dirty by default
    Non executable stack by default
    Reducing dcache flushes for aliasing VIPT config

    - Long overdue rework of pt_regs machinery - removing the unused word
    gutters and adding ECR register to baseline (helps cleanup lot of
    low level code)

    - Support for ARC gcc 4.8

    - Few other preventive fixes, cosmetics, usage of Kconfig helper..

    The diffstat is larger than normal primarily because of arcregs.h
    header split as well as beautification of macros in entry.h"

    * tag 'arc-v3.11-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: (32 commits)
    ARC: warn on improper stack unwind FDE entries
    arc: delete __cpuinit usage from all arc files
    ARC: [tlb-miss] Fix bug with CONFIG_ARC_DBG_TLB_MISS_COUNT
    ARC: [tlb-miss] Extraneous PTE bit testing/setting
    ARC: Adjustments for gcc 4.8
    ARC: Setup Vector Table Base in early boot
    ARC: Remove explicit passing around of ECR
    ARC: pt_regs update #5: Use real ECR for pt_regs->event vs. synth values
    ARC: stop using pt_regs->orig_r8
    ARC: pt_regs update #4: r25 saved/restored unconditionally
    ARC: K/U SP saved from one location in stack switching macro
    ARC: Entry Handler tweaks: Simplify branch for in-kernel preemption
    ARC: Entry Handler tweaks: Avoid hardcoded LIMMS for ECR values
    ARC: Increase readability of entry handlers
    ARC: pt_regs update #3: Remove unused gutter at start of callee_regs
    ARC: pt_regs update #2: Remove unused gutter at start of pt_regs
    ARC: pt_regs update #1: Align pt_regs end with end of kernel stack page
    ARC: pt_regs update #0: remove kernel stack canary
    ARC: [mm] Remove @write argument to do_page_fault()
    ARC: [mm] Make stack/heap Non-executable by default
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "This is the bulk of the s390 patches for the 3.11 merge window.

    Notable enhancements are: the block timeout patches for dasd from
    Hannes, and more work on the PCI support front. In addition some
    cleanup and the usual bug fixing."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (42 commits)
    s390/dasd: Fail all requests when DASD_FLAG_ABORTIO is set
    s390/dasd: Add 'timeout' attribute
    block: check for timeout function in blk_rq_timed_out()
    block/dasd: detailed I/O errors
    s390/dasd: Reduce amount of messages for specific errors
    s390/dasd: Implement block timeout handling
    s390/dasd: process all requests in the device tasklet
    s390/dasd: make number of retries configurable
    s390/dasd: Clarify comment
    s390/hwsampler: Updated misleading member names in hws_data_entry
    s390/appldata_net_sum: do not use static data
    s390/appldata_mem: do not use static data
    s390/vmwatchdog: do not use static data
    s390/airq: simplify adapter interrupt code
    s390/pci: remove per device debug attribute
    s390/dma: remove gratuitous brackets
    s390/facility: decompose test_facility()
    s390/sclp: remove duplicated include from sclp_ctl.c
    s390/irq: store interrupt information in pt_regs
    s390/drivers: Cocci spatch "ptr_ret.spatch"
    ...

    Linus Torvalds
     
  • Pull ARM64 updates from Catalin Marinas:
    "Main features:
    - KVM and Xen ports to AArch64
    - Hugetlbfs and transparent huge pages support for arm64
    - Applied Micro X-Gene Kconfig entry and dts file
    - Cache flushing improvements

    For arm64 huge pages support, there are x86 changes moving part of
    arch/x86/mm/hugetlbpage.c into mm/hugetlb.c to be re-used by arm64"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: (66 commits)
    arm64: Add initial DTS for APM X-Gene Storm SOC and APM Mustang board
    arm64: Add defines for APM ARMv8 implementation
    arm64: Enable APM X-Gene SOC family in the defconfig
    arm64: Add Kconfig option for APM X-Gene SOC family
    arm64/Makefile: provide vdso_install target
    ARM64: mm: THP support.
    ARM64: mm: Raise MAX_ORDER for 64KB pages and THP.
    ARM64: mm: HugeTLB support.
    ARM64: mm: Move PTE_PROT_NONE bit.
    ARM64: mm: Make PAGE_NONE pages read only and no-execute.
    ARM64: mm: Restore memblock limit when map_mem finished.
    mm: thp: Correct the HPAGE_PMD_ORDER check.
    x86: mm: Remove general hugetlb code from x86.
    mm: hugetlb: Copy general hugetlb code from x86 to mm.
    x86: mm: Remove x86 version of huge_pmd_share.
    mm: hugetlb: Copy huge_pmd_share from x86 to mm.
    arm64: KVM: document kernel object mappings in HYP
    arm64: KVM: MAINTAINERS update
    arm64: KVM: userspace API documentation
    arm64: KVM: enable initialization of a 32bit vcpu
    ...

    Linus Torvalds
     
  • Pull ARM updates from Russell King:
    "This contains the usual updates from other people (listed below) and
    the usual random muddle of miscellaneous ARM updates which cover some
    low priority bug fixes and performance improvements.

    I've started to put the pull request wording into the merge commits,
    which are:

    - NoMMU stuff:

    This includes the following series sent earlier to the list:
    - nommu-fixes
    - R7 Support
    - MPU support

    I've left out the ARCH_MULTIPLATFORM/!MMU stuff that Arnd and I
    were discussing today until we've reached a conclusion/that's had
    some more review.

    This is rebased (and re-tested) on your devel-stable branch because
    otherwise there were going to be conflicts with Uwe's V7M work now
    that you've merged that. I've included the fix for limiting MPU to
    CPU_V7.

    - Huge page support

    These changes bring both HugeTLB support and Transparent HugePage
    (THP) support to ARM. Only long descriptors (LPAE) are supported
    in this series.

    The code has been tested on an Arndale board (Exynos 5250).

    - LPAE updates

    Please pull these miscellaneous LPAE fixes I've been collecting for
    a while now for 3.11. They've been tested and reviewed by quite a
    few people, and most of the patches are pretty trivial. -- Will Deacon.

    - arch_timer cleanups

    Please pull these arch_timer cleanups I've been holding onto for a
    while. They're the same as my last posting, but have been rebased
    to v3.10-rc3.

    - mpidr linearisation (multiprocessor id register - identifies which
    CPU number we are in the system)

    This patch series that implements MPIDR linearization through a
    simple hashing algorithm and updates current cpu_{suspend}/{resume}
    code to use the newly created hash structures to retrieve context
    pointers. It represents a stepping stone for the implementation of
    power management code on forthcoming multi-cluster ARM systems.

    It has been tested on TC2 (dual cluster A15xA7 system), iMX6q,
    OMAP4 and Tegra, with processors hitting low-power states requiring
    warm-boot resume through the cpu_resume code path"

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (77 commits)
    ARM: 7775/1: mm: Remove do_sect_fault from LPAE code
    ARM: 7777/1: Avoid extra calls to the C compiler
    ARM: 7774/1: Fix dtb dependency to use order-only prerequisites
    ARM: 7770/1: remove residual ARMv2 support from decompressor
    ARM: 7769/1: Cortex-A15: fix erratum 798181 implementation
    ARM: 7768/1: prevent risks of out-of-bound access in ASID allocator
    ARM: 7767/1: let the ASID allocator handle suspended animation
    ARM: 7766/1: versatile: don't mark pen as __INIT
    ARM: 7765/1: perf: Record the user-mode PC in the call chain.
    ARM: 7735/2: Preserve the user r/w register TPIDRURW on context switch and fork
    ARM: kernel: implement stack pointer save array through MPIDR hashing
    ARM: kernel: build MPIDR hash function data structure
    ARM: mpu: Ensure that MPU depends on CPU_V7
    ARM: mpu: protect the vectors page with an MPU region
    ARM: mpu: Allow enabling of the MPU via kconfig
    ARM: 7758/1: introduce config HAS_BANDGAP
    ARM: 7757/1: mm: don't flush icache in switch_mm with hardware broadcasting
    ARM: 7751/1: zImage: don't overwrite ourself with a page table
    ARM: 7749/1: spinlock: retry trylock operation if strex fails on free lock
    ARM: 7748/1: oabi: handle faults when loading swi instruction from userspace
    ...

    Linus Torvalds
     
  • Pull second set of VFS changes from Al Viro:
    "Assorted f_pos race fixes, making do_splice_direct() safe to call with
    i_mutex on parent, O_TMPFILE support, Jeff's locks.c series,
    ->d_hash/->d_compare calling conventions changes from Linus, misc
    stuff all over the place."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (63 commits)
    Document ->tmpfile()
    ext4: ->tmpfile() support
    vfs: export lseek_execute() to modules
    lseek_execute() doesn't need an inode passed to it
    block_dev: switch to fixed_size_llseek()
    cpqphp_sysfs: switch to fixed_size_llseek()
    tile-srom: switch to fixed_size_llseek()
    proc_powerpc: switch to fixed_size_llseek()
    ubi/cdev: switch to fixed_size_llseek()
    pci/proc: switch to fixed_size_llseek()
    isapnp: switch to fixed_size_llseek()
    lpfc: switch to fixed_size_llseek()
    locks: give the blocked_hash its own spinlock
    locks: add a new "lm_owner_key" lock operation
    locks: turn the blocked_list into a hashtable
    locks: convert fl_link to a hlist_node
    locks: avoid taking global lock if possible when waking up blocked waiters
    locks: protect most of the file_lock handling with i_lock
    locks: encapsulate the fl_link list handling
    locks: make "added" in __posix_lock_file a bool
    ...

    Linus Torvalds
     

03 Jul, 2013

3 commits

  • Signed-off-by: Al Viro

    Al Viro
     
  • very similar to ext3 counterpart...

    Signed-off-by: Al Viro

    Al Viro
     
  • For those file systems(btrfs/ext4/ocfs2/tmpfs) that support
    SEEK_DATA/SEEK_HOLE functions, we end up handling the similar
    matter in lseek_execute() to update the current file offset
    to the desired offset if it is valid, ceph also does the
    simliar things at ceph_llseek().

    To reduce the duplications, this patch make lseek_execute()
    public accessible so that we can call it directly from the
    underlying file systems.

    Thanks Dave Chinner for this suggestion.

    [AV: call it vfs_setpos(), don't bring the removed 'inode' argument back]

    v2->v1:
    - Add kernel-doc comments for lseek_execute()
    - Call lseek_execute() in ceph->llseek()

    Signed-off-by: Jie Liu
    Cc: Dave Chinner
    Cc: Al Viro
    Cc: Andi Kleen
    Cc: Andrew Morton
    Cc: Christoph Hellwig
    Cc: Chris Mason
    Cc: Josef Bacik
    Cc: Ben Myers
    Cc: Ted Tso
    Cc: Hugh Dickins
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Sage Weil
    Signed-off-by: Al Viro

    Jie Liu