27 Oct, 2014

2 commits

  • Pull ARM SoC fixes from Olof Johansson:
    "Another week, another small batch of fixes.

    Most of these make zynq, socfpga and sunxi platforms work a bit
    better:

    - due to new requirements for regulators, DWMMC on socfpga broke past
    v3.17
    - SMP spinup fix for socfpga
    - a few DT fixes for zynq
    - another option (FIXED_REGULATOR) for sunxi is needed that used to
    be selected by other options but no longer is.
    - a couple of small DT fixes for at91
    - ...and a couple for i.MX"

    * tag 'armsoc-for-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: dts: imx28-evk: Let i2c0 run at 100kHz
    ARM: i.MX6: Fix "emi" clock name typo
    ARM: multi_v7_defconfig: enable CONFIG_MMC_DW_ROCKCHIP
    ARM: sunxi_defconfig: enable CONFIG_REGULATOR_FIXED_VOLTAGE
    ARM: dts: socfpga: Add a 3.3V fixed regulator node
    ARM: dts: socfpga: Fix SD card detect
    ARM: dts: socfpga: rename gpio nodes
    ARM: at91/dt: sam9263: fix PLLB frequencies
    power: reset: at91-reset: fix power down register
    MAINTAINERS: add atmel ssc driver maintainer entry
    arm: socfpga: fix fetching cpu1start_addr for SMP
    ARM: zynq: DT: trivial: Fix mc node
    ARM: zynq: DT: Add cadence watchdog node
    ARM: zynq: DT: Add missing reference for memory-controller
    ARM: zynq: DT: Add missing reference for ADC
    ARM: zynq: DT: Add missing address for L2 pl310
    ARM: zynq: DT: Remove 222 MHz OPP
    ARM: zynq: DT: Fix GEM register area size

    Linus Torvalds
     
  • Pull vfs updates from Al Viro:
    "overlayfs merge + leak fix for d_splice_alias() failure exits"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    overlayfs: embed middle into overlay_readdir_data
    overlayfs: embed root into overlay_readdir_data
    overlayfs: make ovl_cache_entry->name an array instead of pointer
    overlayfs: don't hold ->i_mutex over opening the real directory
    fix inode leaks on d_splice_alias() failure exits
    fs: limit filesystem stacking depth
    overlay: overlay filesystem documentation
    overlayfs: implement show_options
    overlayfs: add statfs support
    overlay filesystem
    shmem: support RENAME_WHITEOUT
    ext4: support RENAME_WHITEOUT
    vfs: add RENAME_WHITEOUT
    vfs: add whiteout support
    vfs: export check_sticky()
    vfs: introduce clone_private_mount()
    vfs: export __inode_permission() to modules
    vfs: export do_splice_direct() to modules
    vfs: add i_op->dentry_open()

    Linus Torvalds
     

25 Oct, 2014

5 commits

  • Fix a typo error, the "emi" names refer to the eim clocks.

    The change fixes typo in EIM and EIM_SLOW pre-output dividers and
    selectors clock names. Notably EIM_SLOW clock itself is named correctly.

    Signed-off-by: Steve Longerbeam
    [vladimir_zapolskiy@mentor.com: ported to v3.17]
    Signed-off-by: Vladimir Zapolskiy
    Cc: Sascha Hauer
    Signed-off-by: Shawn Guo

    Steve Longerbeam
     
  • Pull kvm fixes from Paolo Bonzini:
    "This is a pretty large update. I think it is roughly as big as what I
    usually had for the _whole_ rc period.

    There are a few bad bugs where the guest can OOPS or crash the host.
    We have also started looking at attack models for nested
    virtualization; bugs that usually result in the guest ring 0 crashing
    itself become more worrisome if you have nested virtualization,
    because the nested guest might bring down the non-nested guest as
    well. For current uses of nested virtualization these do not really
    have a security impact, but you never know and bugs are bugs
    nevertheless.

    A lot of these bugs are in 3.17 too, resulting in a large number of
    stable@ Ccs. I checked that all the patches apply there with no
    conflicts"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    kvm: vfio: fix unregister kvm_device_ops of vfio
    KVM: x86: Wrong assertion on paging_tmpl.h
    kvm: fix excessive pages un-pinning in kvm_iommu_map error path.
    KVM: x86: PREFETCH and HINT_NOP should have SrcMem flag
    KVM: x86: Emulator does not decode clflush well
    KVM: emulate: avoid accessing NULL ctxt->memopp
    KVM: x86: Decoding guest instructions which cross page boundary may fail
    kvm: x86: don't kill guest on unknown exit reason
    kvm: vmx: handle invvpid vm exit gracefully
    KVM: x86: Handle errors when RIP is set during far jumps
    KVM: x86: Emulator fixes for eip canonical checks on near branches
    KVM: x86: Fix wrong masking on relative jump/call
    KVM: x86: Improve thread safety in pit
    KVM: x86: Prevent host from panicking on shared MSR writes.
    KVM: x86: Check non-canonical addresses upon WRMSR

    Linus Torvalds
     
  • Pull /dev/random updates from Ted Ts'o:
    "This adds a memzero_explicit() call which is guaranteed not to be
    optimized away by GCC. This is important when we are wiping
    cryptographically sensitive material"

    * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
    crypto: memzero_explicit - make sure to clear out sensitive data
    random: add and use memzero_explicit() for clearing data

    Linus Torvalds
     
  • Pull ACPI and power management updates from Rafael Wysocki:
    "This is material that didn't make it to my 3.18-rc1 pull request for
    various reasons, mostly related to timing and travel (LinuxCon EU /
    LPC) plus a couple of fixes for recent bugs.

    The only really new thing here is the PM QoS class for memory
    bandwidth, but it is simple enough and users of it will be added in
    the next cycle. One major change in behavior is that platform devices
    enumerated by ACPI will use 32-bit DMA mask by default. Also included
    is an ACPICA update to a new upstream release, but that's mostly
    cleanups, changes in tools and similar. The rest is fixes and
    cleanups mostly.

    Specifics:

    - Fix for a recent PCI power management change that overlooked the
    fact that some IRQ chips might not be able to configure PCIe PME
    for system wakeup from Lucas Stach.

    - Fix for a bug introduced in 3.17 where acpi_device_wakeup() is
    called with a wrong ordering of arguments from Zhang Rui.

    - A bunch of intel_pstate driver fixes (all -stable candidates) from
    Dirk Brandewie, Gabriele Mazzotta and Pali Rohár.

    - Fixes for a rather long-standing problem with the OOM killer and
    the freezer that frozen processes killed by the OOM do not actually
    release any memory until they are thawed, so OOM-killing them is
    rather pointless, with a couple of cleanups on top (Michal Hocko,
    Cong Wang, Rafael J Wysocki).

    - ACPICA update to upstream release 20140926, inlcuding mostly
    cleanups reducing differences between the upstream ACPICA and the
    kernel code, tools changes (acpidump, acpiexec) and support for the
    _DDN object (Bob Moore, Lv Zheng).

    - New PM QoS class for memory bandwidth from Tomeu Vizoso.

    - Default 32-bit DMA mask for platform devices enumerated by ACPI
    (this change is mostly needed for some drivers development in
    progress targeted at 3.19) from Heikki Krogerus.

    - ACPI EC driver cleanups, mostly related to debugging, from Lv
    Zheng.

    - cpufreq-dt driver updates from Thomas Petazzoni.

    - powernv cpuidle driver update from Preeti U Murthy"

    * tag 'pm+acpi-3.18-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (34 commits)
    intel_pstate: Correct BYT VID values.
    intel_pstate: Fix BYT frequency reporting
    intel_pstate: Don't lose sysfs settings during cpu offline
    cpufreq: intel_pstate: Reflect current no_turbo state correctly
    cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers
    cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy
    PCI / PM: handle failure to enable wakeup on PCIe PME
    ACPI: invoke acpi_device_wakeup() with correct parameters
    PM / freezer: Clean up code after recent fixes
    PM: convert do_each_thread to for_each_process_thread
    OOM, PM: OOM killed task shouldn't escape PM suspend
    freezer: remove obsolete comments in __thaw_task()
    freezer: Do not freeze tasks killed by OOM killer
    ACPI / platform: provide default DMA mask
    cpuidle: powernv: Populate cpuidle state details by querying the device-tree
    cpufreq: cpufreq-dt: adjust message related to regulators
    cpufreq: cpufreq-dt: extend with platform_data
    cpufreq: allow driver-specific data
    ACPI / EC: Cleanup coding style.
    ACPI / EC: Refine event/query debugging messages.
    ...

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:
    "Sorry that I missed the merge window as there is a bug found in the
    last minute, and I have to fix it and wait for the code to be tested
    in linux-next tree for a few days. Now the buggy patch has been
    dropped entirely from my next branch. Thus I hope those changes can
    still be merged in 3.18-rc2 as most of them are platform thermal
    driver changes.

    Specifics:

    - introduce ACPI INT340X thermal drivers.

    Newer laptops and tablets may have thermal sensors and other
    devices with thermal control capabilities that are exposed for the
    OS to use via the ACPI INT340x device objects. Several drivers are
    introduced to expose the temperature information and cooling
    ability from these objects to user-space via the normal thermal
    framework.

    From: Lu Aaron, Lan Tianyu, Jacob Pan and Zhang Rui.

    - introduce a new thermal governor, which just uses a hysteresis to
    switch abruptly on/off a cooling device. This governor can be used
    to control certain fan devices that can not be throttled but just
    switched on or off. From: Peter Feuerer.

    - introduce support for some new thermal interrupt functions on
    i.MX6SX, in IMX thermal driver. From: Anson, Huang.

    - introduce tracing support on thermal framework. From: Punit
    Agrawal.

    - small fixes in OF thermal and thermal step_wise governor"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (25 commits)
    Thermal: int340x thermal: select ACPI fan driver
    Thermal: int3400_thermal: use acpi_thermal_rel parsing APIs
    Thermal: int340x_thermal: expose acpi thermal relationship tables
    Thermal: introduce int3403 thermal driver
    Thermal: introduce INT3402 thermal driver
    Thermal: move the KELVIN_TO_MILLICELSIUS macro to thermal.h
    ACPI / Fan: support INT3404 thermal device
    ACPI / Fan: add ACPI 4.0 style fan support
    ACPI / fan: convert to platform driver
    ACPI / fan: use acpi_device_xxx_power instead of acpi_bus equivelant
    ACPI / fan: remove no need check for device pointer
    ACPI / fan: remove unused macro
    Thermal: int3400 thermal: register to thermal framework
    Thermal: int3400 thermal: add capability to detect supporting UUIDs
    Thermal: introduce int3400 thermal driver
    ACPI: add ACPI_TYPE_LOCAL_REFERENCE support to acpi_extract_package()
    ACPI: make acpi_create_platform_device() an external API
    thermal: step_wise: fix: Prevent from binary overflow when trend is dropping
    ACPI: introduce ACPI int340x thermal scan handler
    thermal: Added Bang-bang thermal governor
    ...

    Linus Torvalds
     

24 Oct, 2014

14 commits

  • After commit 80ce163 (KVM: VFIO: register kvm_device_ops dynamically),
    kvm_device_ops of vfio can be registered dynamically. Commit 3c3c29fd
    (kvm-vfio: do not use module_init) move the dynamic register invoked by
    kvm_init in order to fix broke unloading of the kvm module. However,
    kvm_device_ops of vfio is unregistered after rmmod kvm-intel module
    which lead to device type collision detection warning after kvm-intel
    module reinsmod.

    WARNING: CPU: 1 PID: 10358 at /root/cathy/kvm/arch/x86/kvm/../../../virt/kvm/kvm_main.c:3289 kvm_init+0x234/0x282 [kvm]()
    Modules linked in: kvm_intel(O+) kvm(O) nfsv3 nfs_acl auth_rpcgss oid_registry nfsv4 dns_resolver nfs fscache lockd sunrpc pci_stub bridge stp llc autofs4 8021q cpufreq_ondemand ipv6 joydev microcode pcspkr igb i2c_algo_bit ehci_pci ehci_hcd e1000e i2c_i801 ixgbe ptp pps_core hwmon mdio tpm_tis tpm ipmi_si ipmi_msghandler acpi_cpufreq isci libsas scsi_transport_sas button dm_mirror dm_region_hash dm_log dm_mod [last unloaded: kvm_intel]
    CPU: 1 PID: 10358 Comm: insmod Tainted: G W O 3.17.0-rc1 #2
    Hardware name: Intel Corporation S2600CP/S2600CP, BIOS RMLSDP.86I.00.29.D696.1311111329 11/11/2013
    0000000000000cd9 ffff880ff08cfd18 ffffffff814a61d9 0000000000000cd9
    0000000000000000 ffff880ff08cfd58 ffffffff810417b7 ffff880ff08cfd48
    ffffffffa045bcac ffffffffa049c420 0000000000000040 00000000000000ff
    Call Trace:
    [] dump_stack+0x49/0x60
    [] warn_slowpath_common+0x7c/0x96
    [] ? kvm_init+0x234/0x282 [kvm]
    [] warn_slowpath_null+0x15/0x17
    [] kvm_init+0x234/0x282 [kvm]
    [] vmx_init+0x1bf/0x42a [kvm_intel]
    [] ? vmx_check_processor_compat+0x64/0x64 [kvm_intel]
    [] do_one_initcall+0xe3/0x170
    [] ? __vunmap+0xad/0xb8
    [] do_init_module+0x2b/0x174
    [] load_module+0x43e/0x569
    [] ? do_init_module+0x174/0x174
    [] ? copy_module_from_user+0x39/0x82
    [] ? module_sect_show+0x20/0x20
    [] SyS_init_module+0x54/0x81
    [] system_call_fastpath+0x16/0x1b
    ---[ end trace 0626f4a3ddea56f3 ]---

    The bug can be reproduced by:

    rmmod kvm_intel.ko
    insmod kvm_intel.ko

    without rmmod/insmod kvm.ko
    This patch fixes the bug by unregistering kvm_device_ops of vfio when the
    kvm-intel module is removed.

    Reported-by: Liu Rongrong
    Fixes: 3c3c29fd0d7cddc32862c350d0700ce69953e3bd
    Signed-off-by: Wanpeng Li
    Signed-off-by: Paolo Bonzini

    Wanpeng Li
     
  • Add a simple read-only counter to super_block that indicates how deep this
    is in the stack of filesystems. Previously ecryptfs was the only stackable
    filesystem and it explicitly disallowed multiple layers of itself.

    Overlayfs, however, can be stacked recursively and also may be stacked
    on top of ecryptfs or vice versa.

    To limit the kernel stack usage we must limit the depth of the
    filesystem stack. Initially the limit is set to 2.

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • This adds a new RENAME_WHITEOUT flag. This flag makes rename() create a
    whiteout of source. The whiteout creation is atomic relative to the
    rename.

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • Whiteout isn't actually a new file type, but is represented as a char
    device (Linus's idea) with 0/0 device number.

    This has several advantages compared to introducing a new whiteout file
    type:

    - no userspace API changes (e.g. trivial to make backups of upper layer
    filesystem, without losing whiteouts)

    - no fs image format changes (you can boot an old kernel/fsck without
    whiteout support and things won't break)

    - implementation is trivial

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • It's already duplicated in btrfs and about to be used in overlayfs too.

    Move the sticky bit check to an inline helper and call the out-of-line
    helper only in the unlikly case of the sticky bit being set.

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • Overlayfs needs a private clone of the mount, so create a function for
    this and export to modules.

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • We need to be able to check inode permissions (but not filesystem implied
    permissions) for stackable filesystems. Expose this interface for overlayfs.

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • Export do_splice_direct() to modules. Needed by overlay filesystem.

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • Add a new inode operation i_op->dentry_open(). This is for stacked filesystems
    that want to return a struct file from a different filesystem.

    Signed-off-by: Miklos Szeredi

    Miklos Szeredi
     
  • Pull weak function declaration removal from Bjorn Helgaas:
    "The "weak" attribute is commonly used for the default version of a
    function, where an architecture can override it by providing a strong
    version.

    Some header file declarations included the "weak" attribute. That's
    error-prone because it causes every implementation to be weak, with no
    strong version at all, and the linker chooses one based on link order.

    What we want is the "weak" attribute only on the *definition* of the
    default implementation. These changes remove "weak" from the
    declarations, leaving it on the default definitions"

    * tag 'remove-weak-declarations' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    uprobes: Remove "weak" from function declarations
    memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration
    kgdb: Remove "weak" from kgdb_arch_pc() declaration
    ARC: kgdb: generic kgdb_arch_pc() suffices
    vmcore: Remove "weak" from function declarations
    clocksource: Remove "weak" from clocksource_default_clock() declaration
    x86, intel-mid: Remove "weak" from function declarations
    audit: Remove "weak" from audit_classify_compat_syscall() declaration

    Linus Torvalds
     
  • Pull x86 EFI updates from Peter Anvin:
    "This patchset falls under the "maintainers that grovel" clause in the
    v3.18-rc1 announcement. We had intended to push it late in the merge
    window since we got it into the -tip tree relatively late.

    Many of these are relatively simple things, but there are a couple of
    key bits, especially Ard's and Matt's patches"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    rtc: Disable EFI rtc for x86
    efi: rtc-efi: Export platform:rtc-efi as module alias
    efi: Delete the in_nmi() conditional runtime locking
    efi: Provide a non-blocking SetVariable() operation
    x86/efi: Adding efi_printks on memory allocationa and pci.reads
    x86/efi: Mark initialization code as such
    x86/efi: Update comment regarding required phys mapped EFI services
    x86/efi: Unexport add_efi_memmap variable
    x86/efi: Remove unused efi_call* macros
    efi: Resolve some shadow warnings
    arm64: efi: Format EFI memory type & attrs with efi_md_typeattr_format()
    ia64: efi: Format EFI memory type & attrs with efi_md_typeattr_format()
    x86: efi: Format EFI memory type & attrs with efi_md_typeattr_format()
    efi: Introduce efi_md_typeattr_format()
    efi: Add macro for EFI_MEMORY_UCE memory attribute
    x86/efi: Clear EFI_RUNTIME_SERVICES if failing to enter virtual mode
    arm64/efi: Do not enter virtual mode if booting with efi=noruntime or noefi
    arm64/efi: uefi_init error handling fix
    efi: Add kernel param efi=noruntime
    lib: Add a generic cmdline parse function parse_option_str
    ...

    Linus Torvalds
     
  • * pm-cpuidle:
    cpuidle: powernv: Populate cpuidle state details by querying the device-tree

    * pm-cpufreq:
    intel_pstate: Correct BYT VID values.
    intel_pstate: Fix BYT frequency reporting
    intel_pstate: Don't lose sysfs settings during cpu offline
    cpufreq: intel_pstate: Reflect current no_turbo state correctly
    cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers
    cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy
    cpufreq: cpufreq-dt: adjust message related to regulators
    cpufreq: cpufreq-dt: extend with platform_data
    cpufreq: allow driver-specific data

    Rafael J. Wysocki
     
  • * freezer:
    PM / freezer: Clean up code after recent fixes
    PM: convert do_each_thread to for_each_process_thread
    OOM, PM: OOM killed task shouldn't escape PM suspend
    freezer: remove obsolete comments in __thaw_task()
    freezer: Do not freeze tasks killed by OOM killer

    Rafael J. Wysocki
     
  • * pm-qos:
    PM / QoS: Add PM_QOS_MEMORY_BANDWIDTH class

    Rafael J. Wysocki
     

23 Oct, 2014

6 commits

  • For the following interfaces:

    set_swbp()
    set_orig_insn()
    is_swbp_insn()
    is_trap_insn()
    uprobe_get_swbp_addr()
    arch_uprobe_ignore()
    arch_uprobe_copy_ixol()

    kernel/events/uprobes.c provides default definitions explicitly marked
    "weak". Some architectures provide their own definitions intended to
    override the defaults, but the "weak" attribute on the declarations applied
    to the arch definitions as well, so the linker chose one based on link
    order (see 10629d711ed7 ("PCI: Remove __weak annotation from
    pcibios_get_phb_of_node decl")).

    Remove the "weak" attribute from the declarations so we always prefer a
    non-weak definition over the weak one, independent of link order.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Ingo Molnar
    Acked-by: Srikar Dronamraju
    CC: Victor Kamensky
    CC: Oleg Nesterov
    CC: David A. Long
    CC: Ananth N Mavinakayanahalli

    Bjorn Helgaas
     
  • drivers/base/memory.c provides a default memory_block_size_bytes()
    definition explicitly marked "weak". Several architectures provide their
    own definitions intended to override the default, but the "weak" attribute
    on the declaration applied to the arch definitions as well, so the linker
    chose one based on link order (see 10629d711ed7 ("PCI: Remove __weak
    annotation from pcibios_get_phb_of_node decl")).

    Remove the "weak" attribute from the declaration so we always prefer a
    non-weak definition over the weak one, independent of link order.

    Fixes: 41f107266b19 ("drivers: base: Add prototype declaration to the header file")
    Signed-off-by: Bjorn Helgaas
    Acked-by: Andrew Morton
    CC: Rashika Kheria
    CC: Nathan Fontenot
    CC: Anton Blanchard
    CC: Heiko Carstens
    CC: Yinghai Lu

    Bjorn Helgaas
     
  • kernel/debug/debug_core.c provides a default kgdb_arch_pc() definition
    explicitly marked "weak". Several architectures provide their own
    definitions intended to override the default, but the "weak" attribute on
    the declaration applied to the arch definitions as well, so the linker
    chose one based on link order (see 10629d711ed7 ("PCI: Remove __weak
    annotation from pcibios_get_phb_of_node decl")).

    Remove the "weak" attribute from the declaration so we always prefer a
    non-weak definition over the weak one, independent of link order.

    Fixes: 688b744d8bc8 ("kgdb: fix signedness mixmatches, add statics, add declaration to header")
    Tested-by: Vineet Gupta # for ARC build
    Signed-off-by: Bjorn Helgaas
    Reviewed-by: Harvey Harrison

    Bjorn Helgaas
     
  • For the following functions:

    elfcorehdr_alloc()
    elfcorehdr_free()
    elfcorehdr_read()
    elfcorehdr_read_notes()
    remap_oldmem_pfn_range()

    fs/proc/vmcore.c provides default definitions explicitly marked "weak".
    arch/s390 provides its own definitions intended to override the default
    ones, but the "weak" attribute on the declarations applied to the s390
    definitions as well, so the linker chose one based on link order (see
    10629d711ed7 ("PCI: Remove __weak annotation from pcibios_get_phb_of_node
    decl")).

    Remove the "weak" attribute from the declarations so we always prefer a
    non-weak definition over the weak one, independent of link order.

    Fixes: be8a8d069e50 ("vmcore: introduce ELF header in new memory feature")
    Fixes: 9cb218131de1 ("vmcore: introduce remap_oldmem_pfn_range()")
    Signed-off-by: Bjorn Helgaas
    Acked-by: Andrew Morton
    Acked-by: Vivek Goyal
    CC: Michael Holzheu

    Bjorn Helgaas
     
  • kernel/time/jiffies.c provides a default clocksource_default_clock()
    definition explicitly marked "weak". arch/s390 provides its own definition
    intended to override the default, but the "weak" attribute on the
    declaration applied to the s390 definition as well, so the linker chose one
    based on link order (see 10629d711ed7 ("PCI: Remove __weak annotation from
    pcibios_get_phb_of_node decl")).

    Remove the "weak" attribute from the clocksource_default_clock()
    declaration so we always prefer a non-weak definition over the weak one,
    independent of link order.

    Fixes: f1b82746c1e9 ("clocksource: Cleanup clocksource selection")
    Signed-off-by: Bjorn Helgaas
    Acked-by: John Stultz
    Acked-by: Ingo Molnar
    CC: Daniel Lezcano
    CC: Martin Schwidefsky

    Bjorn Helgaas
     
  • There's only one audit_classify_compat_syscall() definition, so it doesn't
    need to be weak.

    Remove the "weak" attribute from the audit_classify_compat_syscall()
    declaration.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Richard Guy Briggs
    CC: AKASHI Takahiro

    Bjorn Helgaas
     

22 Oct, 2014

4 commits

  • PM freezer relies on having all tasks frozen by the time devices are
    getting frozen so that no task will touch them while they are getting
    frozen. But OOM killer is allowed to kill an already frozen task in
    order to handle OOM situtation. In order to protect from late wake ups
    OOM killer is disabled after all tasks are frozen. This, however, still
    keeps a window open when a killed task didn't manage to die by the time
    freeze_processes finishes.

    Reduce the race window by checking all tasks after OOM killer has been
    disabled. This is still not race free completely unfortunately because
    oom_killer_disable cannot stop an already ongoing OOM killer so a task
    might still wake up from the fridge and get killed without
    freeze_processes noticing. Full synchronization of OOM and freezer is,
    however, too heavy weight for this highly unlikely case.

    Introduce and check oom_kills counter which gets incremented early when
    the allocator enters __alloc_pages_may_oom path and only check all the
    tasks if the counter changes during the freezing attempt. The counter
    is updated so early to reduce the race window since allocator checked
    oom_killer_disabled which is set by PM-freezing code. A false positive
    will push the PM-freezer into a slow path but that is not a big deal.

    Changes since v1
    - push the re-check loop out of freeze_processes into
    check_frozen_processes and invert the condition to make the code more
    readable as per Rafael

    Fixes: f660daac474c6f (oom: thaw threads if oom killed thread is frozen before deferring)
    Cc: 3.2+ # 3.2+
    Signed-off-by: Michal Hocko
    Signed-off-by: Rafael J. Wysocki

    Michal Hocko
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "Here are the target updates for v3.18-rc2 code. These where
    originally destined for -rc1, but due to the combination of travel
    last week for KVM Forum and my mistake of taking the three week merge
    window literally, the pull request slipped.. Apologies for that.

    Things where reasonably quiet this round. The highlights include:

    - New userspace backend driver (target_core_user.ko) by Shaohua Li
    and Andy Grover
    - A number of cleanups in target, iscsi-taret and qla_target code
    from Joern Engel
    - Fix an OOPs related to queue full handling with CHECK_CONDITION
    status from Quinn Tran
    - Fix to disable TX completion interrupt coalescing in iser-target,
    that was causing problems on some hardware
    - Fix for PR APTPL metadata handling with demo-mode ACLs

    I'm most excited about the new backend driver that uses UIO + shared
    memory ring to dispatch I/O and control commands into user-space.
    This was probably the most requested feature by users over the last
    couple of years, and opens up a new area of development + porting of
    existing user-space storage applications to LIO. Thanks to Shaohua +
    Andy for making this happen.

    Also another honorable mention, a new Xen PV SCSI driver was merged
    via the xen/tip.git tree recently, which puts us now at 10 target
    drivers in upstream! Thanks to David Vrabel + Juergen Gross for their
    work to get this code merged"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (40 commits)
    target/file: fix inclusive vfs_fsync_range() end
    iser-target: Disable TX completion interrupt coalescing
    target: Add force_pr_aptpl device attribute
    target: Fix APTPL metadata handling for dynamic MappedLUNs
    qla_target: don't delete changed nacls
    target/user: Recalculate pad size inside is_ring_space_avail()
    tcm_loop: Fixup tag handling
    iser-target: Fix smatch warning
    target/user: Fix up smatch warnings in tcmu_netlink_event
    target: Add a user-passthrough backstore
    target: Add documentation on the target userspace pass-through driver
    uio: Export definition of struct uio_device
    target: Remove unneeded check in sbc_parse_cdb
    target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE
    qla_target: rearrange struct qla_tgt_prm
    qla_target: improve qlt_unmap_sg()
    qla_target: make some global functions static
    qla_target: remove unused parameter
    target: simplify core_tmr_abort_task
    target: encapsulate smp_mb__after_atomic()
    ...

    Linus Torvalds
     
  • Pull email address change from Boaz Harrosh.

    * 'for-linus' of git://git.open-osd.org/linux-open-osd:
    Boaz Harrosh - fix email in Documentation
    Boaz Harrosh - Fix broken email address
    MAINTAINERS: Change Boaz Harrosh's email

    Linus Torvalds
     
  • Pull mailbox framework from Jassi Brar:
    "A framework for Mailbox controllers and clients have been cooking for
    more than a year now.

    Everybody in the CC list had been copied on patchset revisions and
    most of them have made sounds of approval, though just one concrete
    Reviewed-by. The patchset has also been in linux-next for a couple of
    weeks now and no conflict has been reported. The framework has the
    backing of at least 5 platforms, though I can't say if/when they
    upstream their drivers (some businesses have 'changed')"

    (Further acked-by by Arnd Bergmann and Suman Anna in the pull request
    thread)

    * 'mailbox-for-linus' of git://git.linaro.org/landing-teams/working/fujitsu/integration:
    dt: mailbox: add generic bindings
    doc: add documentation for mailbox framework
    mailbox: Introduce framework for mailbox
    mailbox: rename pl320-ipc specific mailbox.h

    Linus Torvalds
     

21 Oct, 2014

9 commits

  • Pull watchdog updates from Wim Van Sebroeck:
    - new Cadence WDT driver
    - new Ricoh RN5T618 watchdog
    - new DA9063 PMIC watchdog driver
    - new Meson WDT driver
    - add restart handling code
    - fixes and improvements

    * git://www.linux-watchdog.org/linux-watchdog: (25 commits)
    watchdog: meson: remove magic value for reboot
    watchdog: Let XILINX_WATCHDOG and TEGRA_WATCHDOG depend on HAS_IOMEM
    watchdog: sunxi: Add A31 watchdog support
    watchdog: sunxi: support parameterized compatible strings
    watchdog: imx2_wdt: add restart handler support
    watchdog: qcom: register a restart notifier
    watchdog: s3c2410: add restart handler
    watchdog: dw_wdt: add restart handler support
    ARM: defconfig: update multi_v7_defconfig
    ARM: meson: add watchdog driver
    ARM: docs: add documentation binding for meson watchdog
    stmp3xxx_rtc_wdt: Add suspend/resume PM support
    watchdog: Add DA9063 PMIC watchdog driver.
    watchdog: add driver for Ricoh RN5T618 watchdog
    watchdog: s3c2410_wdt: Add support for Watchdog device on Exynos7
    watchdog: qcom: document device tree bindings
    watchdog: qcom: add support for KPSS WDT
    watchdog: dw_wdt: initialise TOP_INIT in dw_wdt_set_top()
    devicetree: Add Cadence WDT devicetree bindings documentation
    watchdog: Add Cadence WDT driver
    ...

    Linus Torvalds
     
  • Pull LED update from Bryan Wu:
    "Basically we have some bug fixing and clean up and one big thing is we
    start to merge patch to add support LED Flash class"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
    leds: gpio: cleanup the leds-gpio driver
    led: gpio: Fix possible ZERO_SIZE_PTR pointer dereferencing error.
    led: gpio: Sort include headers alphabetically
    leds: Improve and export led_update_brightness
    leds: trigger: gpio: fix warning in gpio trigger for gpios whose accessor function may sleep
    leds: lp3944: fix sparse warning
    leds: avoid using DEVICE_ATTR macro for max_brightness attribute
    leds: make brightness type consistent across whole subsystem
    leds: Reorder include directives

    Linus Torvalds
     
  • This commit extends the cpufreq-dt driver to take a platform_data
    structure. This structure is for now used to tell the cpufreq-dt
    driver the layout of the clocks on the platform, i.e whether all CPUs
    share the same clock or whether each CPU has a separate clock.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Thomas Petazzoni
     
  • This commit extends the cpufreq_driver structure with an additional
    'void *driver_data' field that can be filled by the ->probe() function
    of a cpufreq driver to pass additional custom information to the
    driver itself.

    A new function called cpufreq_get_driver_data() is added to allow a
    cpufreq driver to retrieve those driver data, since they are typically
    needed from a cpufreq_policy->init() callback, which does not have
    access to the cpufreq_driver structure. This function call is similar
    to the existing cpufreq_get_current_driver() function call.

    Signed-off-by: Thomas Petazzoni
    Acked-by: Viresh Kumar
    Signed-off-by: Rafael J. Wysocki

    Thomas Petazzoni
     
  • Version 20140926.

    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • This patch is partial linuxized result of the following ACPICA commit:
    ACPICA commit: a73b66c6aa1846d055bb6390d9c9b9902f7d804d
    Subject: Add "has handler" flag to event/gpe status interfaces.
    This change adds a new flag, ACPI_EVENT_FLAGS_HAS_HANDLER to the
    acpi_get_event_status and acpi_get_gpe_status external interfaces. It
    is set if the event/gpe currently has a handler associated with it.
    This patch contains the code to rename ACPI_EVENT_FLAG_HANDLE to
    ACPI_EVENT_FLAG_HAS_HANDLER, and the corresponding updates of its usages.

    Link: https://github.com/acpica/acpica/commit/a73b66c6
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch is a partial linuxized result of the following ACPICA commit:
    ACPICA commit: a73b66c6aa1846d055bb6390d9c9b9902f7d804d
    Subject: Add "has handler" flag to event/gpe status interfaces.
    This change adds a new flag, ACPI_EVENT_FLAGS_HAS_HANDLER to the
    acpi_get_event_status and acpi_get_gpe_status external interfaces. It
    is set if the event/gpe currently has a handler associated with it.
    This commit back ports ACPI_EVENT_FLAG_HANDLE from Linux upstream to
    ACPICA, the flag along with its support code currently can only be found
    in the Linux upstream and is used by the ACPI sysfs GPE interfaces and
    the ACPI bus scanning support.

    Link: https://github.com/acpica/acpica/commit/a73b66c6
    Signed-off-by: Lv Zheng
    Signed-off-by: Bob Moore
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • The _DDN method will be used internally.

    Signed-off-by: Bob Moore
    Signed-off-by: Lv Zheng
    Signed-off-by: Rafael J. Wysocki

    Bob Moore
     
  • Signed-off-by: Uwe Kleine-K=C3=B6nig
    Reviewed-by: Guenter Roeck
    Signed-off-by: Wim Van Sebroeck

    Uwe Kleine-König