07 Aug, 2014

11 commits

  • Merge incoming from Andrew Morton:
    - Various misc things.
    - arch/sh updates.
    - Part of ocfs2. Review is slow.
    - Slab updates.
    - Most of -mm.
    - printk updates.
    - lib/ updates.
    - checkpatch updates.

    * emailed patches from Andrew Morton : (226 commits)
    checkpatch: update $declaration_macros, add uninitialized_var
    checkpatch: warn on missing spaces in broken up quoted
    checkpatch: fix false positives for --strict "space after cast" test
    checkpatch: fix false positive MISSING_BREAK warnings with --file
    checkpatch: add test for native c90 types in unusual order
    checkpatch: add signed generic types
    checkpatch: add short int to c variable types
    checkpatch: add for_each tests to indentation and brace tests
    checkpatch: fix brace style misuses of else and while
    checkpatch: add --fix option for a couple OPEN_BRACE misuses
    checkpatch: use the correct indentation for which()
    checkpatch: add fix_insert_line and fix_delete_line helpers
    checkpatch: add ability to insert and delete lines to patch/file
    checkpatch: add an index variable for fixed lines
    checkpatch: warn on break after goto or return with same tab indentation
    checkpatch: emit a warning on file add/move/delete
    checkpatch: add test for commit id formatting style in commit log
    checkpatch: emit fewer kmalloc_array/kcalloc conversion warnings
    checkpatch: improve "no space after cast" test
    checkpatch: allow multiple const * types
    ...

    Linus Torvalds
     
  • Pull ACPI and power management updates from Rafael Wysocki:
    "Again, ACPICA leads the pack (47 commits), followed by cpufreq (18
    commits) and system suspend/hibernation (9 commits).

    From the new code perspective, the ACPICA update brings ACPI 5.1 to
    the table, including a new device configuration object called _DSD
    (Device Specific Data) that will hopefully help us to operate device
    properties like Device Trees do (at least to some extent) and changes
    related to supporting ACPI on ARM.

    Apart from that we have hibernation changes making it use radix trees
    to store memory bitmaps which should speed up some operations carried
    out by it quite significantly. We also have some power management
    changes related to suspend-to-idle (the "freeze" sleep state) support
    and more preliminary changes needed to support ACPI on ARM (outside of
    ACPICA).

    The rest is fixes and cleanups pretty much everywhere.

    Specifics:

    - ACPICA update to upstream version 20140724. That includes ACPI 5.1
    material (support for the _CCA and _DSD predefined names, changes
    related to the DMAR and PCCT tables and ARM support among other
    things) and cleanups related to using ACPICA's header files. A
    major part of it is related to acpidump and the core code used by
    that utility. Changes from Bob Moore, David E Box, Lv Zheng,
    Sascha Wildner, Tomasz Nowicki, Hanjun Guo.

    - Radix trees for memory bitmaps used by the hibernation core from
    Joerg Roedel.

    - Support for waking up the system from suspend-to-idle (also known
    as the "freeze" sleep state) using ACPI-based PCI wakeup signaling
    (Rafael J Wysocki).

    - Fixes for issues related to ACPI button events (Rafael J Wysocki).

    - New device ID for an ACPI-enumerated device included into the
    Wildcat Point PCH from Jie Yang.

    - ACPI video updates related to backlight handling from Hans de Goede
    and Linus Torvalds.

    - Preliminary changes needed to support ACPI on ARM from Hanjun Guo
    and Graeme Gregory.

    - ACPI PNP core cleanups from Arjun Sreedharan and Zhang Rui.

    - Cleanups related to ACPI_COMPANION() and ACPI_HANDLE() macros
    (Rafael J Wysocki).

    - ACPI-based device hotplug cleanups from Wei Yongjun and Rafael J
    Wysocki.

    - Cleanups and improvements related to system suspend from Lan
    Tianyu, Randy Dunlap and Rafael J Wysocki.

    - ACPI battery cleanup from Wei Yongjun.

    - cpufreq core fixes from Viresh Kumar.

    - Elimination of a deadband effect from the cpufreq ondemand governor
    and intel_pstate driver cleanups from Stratos Karafotis.

    - 350MHz CPU support for the powernow-k6 cpufreq driver from Mikulas
    Patocka.

    - Fix for the imx6 cpufreq driver from Anson Huang.

    - cpuidle core and governor cleanups from Daniel Lezcano, Sandeep
    Tripathy and Mohammad Merajul Islam Molla.

    - Build fix for the big_little cpuidle driver from Sachin Kamat.

    - Configuration fix for the Operation Performance Points (OPP)
    framework from Mark Brown.

    - APM cleanup from Jean Delvare.

    - cpupower utility fixes and cleanups from Peter Senna Tschudin,
    Andrey Utkin, Himangi Saraogi, Rickard Strandqvist, Thomas
    Renninger"

    * tag 'pm+acpi-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (118 commits)
    ACPI / LPSS: add LPSS device for Wildcat Point PCH
    ACPI / PNP: Replace faulty is_hex_digit() by isxdigit()
    ACPICA: Update version to 20140724.
    ACPICA: ACPI 5.1: Update for PCCT table changes.
    ACPICA/ARM: ACPI 5.1: Update for GTDT table changes.
    ACPICA/ARM: ACPI 5.1: Update for MADT changes.
    ACPICA/ARM: ACPI 5.1: Update for FADT changes.
    ACPICA: ACPI 5.1: Support for the _CCA predifined name.
    ACPICA: ACPI 5.1: New notify value for System Affinity Update.
    ACPICA: ACPI 5.1: Support for the _DSD predefined name.
    ACPICA: Debug object: Add current value of Timer() to debug line prefix.
    ACPICA: acpihelp: Add UUID support, restructure some existing files.
    ACPICA: Utilities: Fix local printf issue.
    ACPICA: Tables: Update for DMAR table changes.
    ACPICA: Remove some extraneous printf arguments.
    ACPICA: Update for comments/formatting. No functional changes.
    ACPICA: Disassembler: Add support for the ToUUID opererator (macro).
    ACPICA: Remove a redundant cast to acpi_size for ACPI_OFFSET() macro.
    ACPICA: Work around an ancient GCC bug.
    ACPI / processor: Make it possible to get local x2apic id via _MAT
    ...

    Linus Torvalds
     
  • Historically, we exported shared pages to userspace via sysinfo(2)
    sharedram and /proc/meminfo's "MemShared" fields. With the advent of
    tmpfs, from kernel v2.4 onward, that old way for accounting shared mem
    was deemed inaccurate and we started to export a hard-coded 0 for
    sysinfo.sharedram. Later on, during the 2.6 timeframe, "MemShared" got
    re-introduced to /proc/meminfo re-branded as "Shmem", but we're still
    reporting sysinfo.sharedmem as that old hard-coded zero, which makes the
    "shared memory" report inconsistent across interfaces.

    This patch leverages the addition of explicit accounting for pages used
    by shmem/tmpfs -- "4b02108 mm: oom analysis: add shmem vmstat" -- in
    order to make the users of sysinfo(2) and si_meminfo*() friends aware of
    that vmstat entry and make them report it consistently across the
    interfaces, as well to make sysinfo(2) returned data consistent with our
    current API documentation states.

    Signed-off-by: Rafael Aquini
    Acked-by: Rik van Riel
    Cc: Mel Gorman
    Cc: Johannes Weiner
    Cc: KOSAKI Motohiro
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael Aquini
     
  • Use the newer and more pleasant kstrtoull() to replace
    simple_strtoull(), because simple_strtoull() is marked for obsoletion.

    Signed-off-by: Zhang Zhen
    Acked-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhang Zhen
     
  • Conventionally, we put output param to the end of param list and put the
    'base' ahead of 'size', but cma_declare_contiguous() doesn't look like
    that, so change it.

    Additionally, move down cma_areas reference code to the position where
    it is really needed.

    Signed-off-by: Joonsoo Kim
    Acked-by: Michal Nazarewicz
    Reviewed-by: Aneesh Kumar K.V
    Cc: Alexander Graf
    Cc: Aneesh Kumar K.V
    Cc: Gleb Natapov
    Acked-by: Marek Szyprowski
    Tested-by: Marek Szyprowski
    Cc: Minchan Kim
    Cc: Paolo Bonzini
    Cc: Zhang Yanfei
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • Currently, there are two users on CMA functionality, one is the DMA
    subsystem and the other is the KVM on powerpc. They have their own code
    to manage CMA reserved area even if they looks really similar. From my
    guess, it is caused by some needs on bitmap management. KVM side wants
    to maintain bitmap not for 1 page, but for more size. Eventually it use
    bitmap where one bit represents 64 pages.

    When I implement CMA related patches, I should change those two places
    to apply my change and it seem to be painful to me. I want to change
    this situation and reduce future code management overhead through this
    patch.

    This change could also help developer who want to use CMA in their new
    feature development, since they can use CMA easily without copying &
    pasting this reserved area management code.

    In previous patches, we have prepared some features to generalize CMA
    reserved area management and now it's time to do it. This patch moves
    core functions to mm/cma.c and change DMA APIs to use these functions.

    There is no functional change in DMA APIs.

    Signed-off-by: Joonsoo Kim
    Acked-by: Michal Nazarewicz
    Acked-by: Zhang Yanfei
    Acked-by: Minchan Kim
    Reviewed-by: Aneesh Kumar K.V
    Cc: Alexander Graf
    Cc: Aneesh Kumar K.V
    Cc: Gleb Natapov
    Acked-by: Marek Szyprowski
    Tested-by: Marek Szyprowski
    Cc: Paolo Bonzini
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • PPC KVM's CMA area management requires arbitrary bitmap granularity,
    since they want to reserve very large memory and manage this region with
    bitmap that one bit for several pages to reduce management overheads.
    So support arbitrary bitmap granularity for following generalization.

    [akpm@linux-foundation.org: s/1/1UL/]
    Signed-off-by: Joonsoo Kim
    Acked-by: Michal Nazarewicz
    Acked-by: Zhang Yanfei
    Acked-by: Minchan Kim
    Reviewed-by: Aneesh Kumar K.V
    Cc: Alexander Graf
    Cc: Aneesh Kumar K.V
    Cc: Gleb Natapov
    Acked-by: Marek Szyprowski
    Tested-by: Marek Szyprowski
    Cc: Paolo Bonzini
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • PPC KVM's CMA area management needs alignment constraint on CMA region.
    So support it to prepare generalization of CMA area management
    functionality.

    Additionally, add some comments which tell us why alignment constraint
    is needed on CMA region.

    Signed-off-by: Joonsoo Kim
    Acked-by: Michal Nazarewicz
    Reviewed-by: Aneesh Kumar K.V
    Cc: Alexander Graf
    Cc: Aneesh Kumar K.V
    Cc: Gleb Natapov
    Acked-by: Marek Szyprowski
    Tested-by: Marek Szyprowski
    Cc: Minchan Kim
    Cc: Paolo Bonzini
    Cc: Zhang Yanfei
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • To prepare future generalization work on CMA area management code, we
    need to separate core CMA management codes from DMA APIs. We will
    extend these core functions to cover requirements of PPC KVM's CMA area
    management functionality in following patches. This separation helps us
    not to touch DMA APIs while extending core functions.

    Signed-off-by: Joonsoo Kim
    Acked-by: Michal Nazarewicz
    Reviewed-by: Aneesh Kumar K.V
    Cc: Alexander Graf
    Cc: Aneesh Kumar K.V
    Cc: Gleb Natapov
    Cc: Minchan Kim
    Cc: Paolo Bonzini
    Cc: Zhang Yanfei
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Acked-by: Marek Szyprowski
    Tested-by: Marek Szyprowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • In store_mem_state(), we have:

    ...
    334 else if (!strncmp(buf, "offline", min_t(int, count, 7)))
    335 online_type = -1;
    ...
    355 case -1:
    356 ret = device_offline(&mem->dev);
    357 break;
    ...

    Here, "offline" is hard coded as -1.

    This patch does the following renaming:

    ONLINE_KEEP -> MMOP_ONLINE_KEEP
    ONLINE_KERNEL -> MMOP_ONLINE_KERNEL
    ONLINE_MOVABLE -> MMOP_ONLINE_MOVABLE

    and introduces MMOP_OFFLINE = -1 to avoid hard coding.

    Signed-off-by: Tang Chen
    Cc: Hu Tao
    Cc: Greg Kroah-Hartman
    Cc: Lai Jiangshan
    Cc: Yasuaki Ishimatsu
    Cc: Gu Zheng
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tang Chen
     
  • We use the following command to online a memory_block:

    echo online|online_kernel|online_movable > /sys/devices/system/memory/memoryXXX/state

    But, if we do the following:

    echo online_fhsjkghfkd > /sys/devices/system/memory/memoryXXX/state

    the block will also be onlined.

    This is because the following code in store_mem_state() does not compare
    the whole string, but only the prefix of the string.

    store_mem_state()
    {
    ......
    328 if (!strncmp(buf, "online_kernel", min_t(int, count, 13)))

    Here, only compare the first 13 letters of the string. If we give "online_kernelXXXXXX",
    it will be recognized as online_kernel, which is incorrect.

    329 online_type = ONLINE_KERNEL;
    330 else if (!strncmp(buf, "online_movable", min_t(int, count, 14)))

    We have the same problem here,

    331 online_type = ONLINE_MOVABLE;
    332 else if (!strncmp(buf, "online", min_t(int, count, 6)))

    here,

    (Here is more problematic. If we give online_movalbe, which is a typo
    of online_movable, it will be recognized as online without noticing the
    author.)

    333 online_type = ONLINE_KEEP;
    334 else if (!strncmp(buf, "offline", min_t(int, count, 7)))

    and here.

    335 online_type = -1;
    336 else {
    337 ret = -EINVAL;
    338 goto err;
    339 }
    ......
    }

    This patch fixes this problem by using sysfs_streq() to compare the
    whole string.

    Signed-off-by: Tang Chen
    Reported-by: Hu Tao
    Cc: Greg Kroah-Hartman
    Cc: Lai Jiangshan
    Cc: Yasuaki Ishimatsu
    Cc: Gu Zheng
    Acked-by: Toshi Kani
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tang Chen
     

06 Aug, 2014

2 commits

  • Pull security subsystem updates from James Morris:
    "In this release:

    - PKCS#7 parser for the key management subsystem from David Howells
    - appoint Kees Cook as seccomp maintainer
    - bugfixes and general maintenance across the subsystem"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (94 commits)
    X.509: Need to export x509_request_asymmetric_key()
    netlabel: shorter names for the NetLabel catmap funcs/structs
    netlabel: fix the catmap walking functions
    netlabel: fix the horribly broken catmap functions
    netlabel: fix a problem when setting bits below the previously lowest bit
    PKCS#7: X.509 certificate issuer and subject are mandatory fields in the ASN.1
    tpm: simplify code by using %*phN specifier
    tpm: Provide a generic means to override the chip returned timeouts
    tpm: missing tpm_chip_put in tpm_get_random()
    tpm: Properly clean sysfs entries in error path
    tpm: Add missing tpm_do_selftest to ST33 I2C driver
    PKCS#7: Use x509_request_asymmetric_key()
    Revert "selinux: fix the default socket labeling in sock_graft()"
    X.509: x509_request_asymmetric_keys() doesn't need string length arguments
    PKCS#7: fix sparse non static symbol warning
    KEYS: revert encrypted key change
    ima: add support for measuring and appraising firmware
    firmware_class: perform new LSM checks
    security: introduce kernel_fw_from_file hook
    PKCS#7: Missing inclusion of linux/err.h
    ...

    Linus Torvalds
     
  • Pull regulator updates from Mark Brown:
    "A couple of nice new features this month, the ability to map
    regulators in order to allow voltage control by external coprocessors
    is something people have been asking for for a long time.

    - improved support for switch only "regulators", allowing current
    state to be read from the parent regulator but no setting.

    - support for obtaining the register access method used to set
    voltages, for use in systems which can offload control of this to a
    coprocessor (typically for DVFS).

    - support for Active-Semi AC8846, Dialog DA9211 and Texas Instruments
    TPS65917"

    * tag 'regulator-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (58 commits)
    regulator: act8865: fix build when OF is not enabled
    regulator: act8865: add act8846 to DT binding documentation
    regulator: act8865: add support for act8846
    regulator: act8865: prepare support for other act88xx devices
    regulator: act8865: set correct number of regulators in pdata
    regulator: act8865: Remove error variable in act8865_pmic_probe
    regulator: act8865: fix parsing of platform data
    regulator: tps65090: Set voltage for fixed regulators
    regulator: core: Allow to get voltage count and list from parent
    regulator: core: Get voltage from parent if not available
    regulator: Add missing statics and inlines for stub functions
    regulator: lp872x: Don't set constraints within the regulator driver
    regmap: Fix return code for stub regmap_get_device()
    regulator: s2mps11: Update module description and Kconfig to add S2MPU02 support
    regulator: Add helpers for low-level register access
    regmap: Allow regmap_get_device() to be used by modules
    regmap: Add regmap_get_device
    regulator: da9211: Remove unnecessary devm_regulator_unregister() calls
    regulator: Add DT bindings for tps65218 PMIC regulators.
    regulator: da9211: new regulator driver
    ...

    Linus Torvalds
     

05 Aug, 2014

4 commits

  • Pull staging driver updates from Greg KH:
    "Here's the big pull request for the staging driver tree for 3.17-rc1.

    Lots of things in here, over 2000 patches, but the best part is this:
    1480 files changed, 39070 insertions(+), 254659 deletions(-)

    Thanks to the great work of Kristina Martšenko, 14 different staging
    drivers have been removed from the tree as they were obsolete and no
    one was willing to work on cleaning them up. Other than the driver
    removals, loads of cleanups are in here (comedi, lustre, etc.) as well
    as the usual IIO driver updates and additions.

    All of this has been in the linux-next tree for a while"

    * tag 'staging-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (2199 commits)
    staging: comedi: addi_apci_1564: remove diagnostic interrupt support code
    staging: comedi: addi_apci_1564: add subdevice to check diagnostic status
    staging: wlan-ng: coding style problem fix
    staging: wlan-ng: fixing coding style problems
    staging: comedi: ii_pci20kc: request and ioremap memory
    staging: lustre: bitwise vs logical typo
    staging: dgnc: Remove unneeded dgnc_trace.c and dgnc_trace.h
    staging: dgnc: rephrase comment
    staging: comedi: ni_tio: remove some dead code
    staging: rtl8723au: Fix static symbol sparse warning
    staging: rtl8723au: usb_dvobj_init(): Remove unused variable 'pdev_desc'
    staging: rtl8723au: Do not duplicate kernel provided USB macros
    staging: rtl8723au: Remove never set struct pwrctrl_priv.bHWPowerdown
    staging: rtl8723au: Remove two never set variables
    staging: rtl8723au: RSSI_test is never set
    staging:r8190: coding style: Fixed checkpatch reported Error
    staging:r8180: coding style: Fixed too long lines
    staging:r8180: coding style: Fixed commenting style
    staging: lustre: ptlrpc: lproc_ptlrpc.c - fix dereferenceing user space buffer
    staging: lustre: ldlm: ldlm_resource.c - fix dereferenceing user space buffer
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here's the big driver-core pull request for 3.17-rc1.

    Largest thing in here is the dma-buf rework and fence code, that
    touched many different subsystems so it was agreed it should go
    through this tree to handle merge issues. There's also some firmware
    loading updates, as well as tests added, and a few other tiny changes,
    the changelog has the details.

    All have been in linux-next for a long time"

    * tag 'driver-core-3.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (32 commits)
    ARM: imx: Remove references to platform_bus in mxc code
    firmware loader: Fix _request_firmware_load() return val for fw load abort
    platform: Remove most references to platform_bus device
    test: add firmware_class loader test
    doc: fix minor typos in firmware_class README
    staging: android: Cleanup style issues
    Documentation: devres: Sort managed interfaces
    Documentation: devres: Add devm_kmalloc() et al
    fs: debugfs: remove trailing whitespace
    kernfs: kernel-doc warning fix
    debugfs: Fix corrupted loop in debugfs_remove_recursive
    stable_kernel_rules: Add pointer to netdev-FAQ for network patches
    driver core: platform: add device binding path 'driver_override'
    driver core/platform: remove unused implicit padding in platform_object
    firmware loader: inform direct failure when udev loader is disabled
    firmware: replace ALIGN(PAGE_SIZE) by PAGE_ALIGN
    firmware: read firmware size using i_size_read()
    firmware loader: allow disabling of udev as firmware loader
    reservation: add suppport for read-only access using rcu
    reservation: update api and add some helpers
    ...

    Conflicts:
    drivers/base/platform.c

    Linus Torvalds
     
  • Pull clock framework updates from Mike Turquette:
    "The clock framework changes for 3.17 are mostly additions of new clock
    drivers and fixes/enhancements to existing clock drivers. There are
    also some non-critical fixes and improvements to the framework core.

    Changes to the clock framework core include:
    - improvements to printks on errors
    - flattening the previously hierarchal structure of per-clock entries
    in debugfs
    - allow per-clock debugfs entries that are specific to a particular
    clock driver
    - configure initial clock parent and/or initial clock rate from
    Device Tree
    - several feature enhancements to the composite clock type
    - misc fixes

    New clock drivers added include:
    - TI Palmas PMIC
    - Allwinner A23 SoC
    - Qualcomm APQ8084 and IPQ8064 SoCs
    - Rockchip rk3188, rk3066 and rk3288 SoCs
    - STMicroelectronics STiH407 SoC
    - Cirrus Logic CLPS711X SoC

    Many fixes, feature enhancements and further clock tree support for
    existing clock drivers also were merged, such as Samsung's "ARMCLK
    down" power saving feature for their Exynos4 & Exynos5 SoCs"

    * tag 'clk-for-linus-3.17' of git://git.linaro.org/people/mike.turquette/linux: (86 commits)
    clk: Add missing of_clk_set_defaults export
    clk: checking wrong variable in __set_clk_parents()
    clk: Propagate any error return from debug_init()
    clk: clps711x: Add DT bindings documentation
    clk: Add CLPS711X clk driver
    clk: st: Use round to closest divider flag
    clk: st: Update frequency tables for fs660c32 and fs432c65
    clk: st: STiH407: Support for clockgenA9
    clk: st: STiH407: Support for clockgenD0/D2/D3
    clk: st: STiH407: Support for clockgenC0
    clk: st: Add quadfs reset handling
    clk: st: Add polarity bit indication
    clk: st: STiH407: Support for clockgenA0
    clk: st: STiH407: Support for A9 MUX Clocks
    clk: st: STiH407: Support for Flexgen Clocks
    clk: st: Adds Flexgen clock binding
    clk: st: Remove uncessary (void *) cast
    clk: st: use static const for clkgen_pll_data tables
    clk: st: use static const for stm_fs tables
    clk: st: Update ST clock binding documentation
    ...

    Linus Torvalds
     
  • Mark Brown
     

29 Jul, 2014

1 commit

  • Fix kernel-doc warnings in drivers/base/power/main.c:

    Warning(..//drivers/base/power/main.c:473): No description found for parameter 'async'
    Warning(..//drivers/base/power/main.c:601): No description found for parameter 'async'
    Warning(..//drivers/base/power/main.c:1012): No description found for parameter 'async'
    Warning(..//drivers/base/power/main.c:1151): No description found for parameter 'async'
    Warning(..//drivers/base/power/main.c:1305): No description found for parameter 'info'

    Signed-off-by: Randy Dunlap
    Acked-by: Pavel Machek
    Signed-off-by: Rafael J. Wysocki

    Randy Dunlap
     

26 Jul, 2014

4 commits


24 Jul, 2014

1 commit


22 Jul, 2014

1 commit


18 Jul, 2014

1 commit


12 Jul, 2014

1 commit

  • Commits 9ec36ca (of/irq: do irq resolution in platform_get_irq)
    and ad69674 (of/irq: do irq resolution in platform_get_irq_byname)
    change the semantics of platform_get_irq and platform_get_irq_byname
    to always rely on devicetree information if devicetree is enabled
    and if a devicetree node is attached to the device. The functions
    now return an error if the devicetree data does not include interrupt
    information, even if the information is available as platform resource
    data.

    This causes mfd client drivers to fail if the interrupt number is
    passed via platform resources. Therefore, if of_irq_get fails, try
    platform_get_resource as method of last resort. This restores the
    original functionality for drivers depending on platform resources
    to get irq information.

    Cc: Russell King
    Cc: Tony Lindgren
    Cc: Grant Likely
    Cc: Grygorii Strashko
    Signed-off-by: Guenter Roeck
    Acked-by: Rob Herring
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Guenter Roeck
     

09 Jul, 2014

8 commits

  • Needed by platform device drivers, such as the upcoming
    vfio-platform driver, in order to bypass the existing OF, ACPI,
    id_table and name string matches, and successfully be able to be
    bound to any device, like so:

    echo vfio-platform > /sys/bus/platform/devices/fff51000.ethernet/driver_override
    echo fff51000.ethernet > /sys/bus/platform/devices/fff51000.ethernet/driver/unbind
    echo fff51000.ethernet > /sys/bus/platform/drivers_probe

    This mimics "PCI: Introduce new device binding path using
    pci_dev.driver_override", which is an interface enhancement
    for more deterministic PCI device binding, e.g., when in the
    presence of hotplug.

    Reviewed-by: Alex Williamson
    Reviewed-by: Alexander Graf
    Reviewed-by: Stuart Yoder
    Signed-off-by: Kim Phillips
    Signed-off-by: Greg Kroah-Hartman

    Kim Phillips
     
  • Up to 7 bytes are wasted at the end of struct platform_object
    in the form of padding after name field: unfortunately this
    padding is not used when allocating the memory to hold the
    name.

    This patch converts name array from name[1] to C99 flexible
    array name[] (equivalent to name[0]) so that no padding is
    required by the presence of this field. Memory allocation
    is updated to take care of allocating an additional byte for
    the NUL terminating character.

    Built on Fedora 20, using GCC 4.8, for ARM, i386, SPARC64 and
    x86_64 architectures, the data structure layout can be reported
    with following command:

    $ pahole drivers/base/platform.o \
    --recursive \
    --class_name device,pdev_archdata,platform_device,platform_object

    Please find below some comparisons of structure layout for arm,
    i386, sparc64 and x86_64 architecture before and after the patch.

    --- obj-arm/drivers/base/platform.o.pahole.v3.15-rc7-79-gfe45736f4134 2014-05-30 10:32:06.290960701 +0200
    +++ obj-arm/drivers/base/platform.o.pahole.v3.15-rc7-80-g2cdb06858d71 2014-05-30 11:26:20.851988347 +0200
    @@ -81,10 +81,9 @@
    /* XXX last struct has 4 bytes of padding */

    /* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */
    - char name[1]; /* 392 1 */
    + char name[0]; /* 392 0 */

    - /* size: 400, cachelines: 7, members: 2 */
    - /* padding: 7 */
    + /* size: 392, cachelines: 7, members: 2 */
    /* paddings: 1, sum paddings: 4 */
    - /* last cacheline: 16 bytes */
    + /* last cacheline: 8 bytes */
    };

    --- obj-i386/drivers/base/platform.o.pahole.v3.15-rc7-79-gfe45736f4134 2014-05-30 10:32:06.305960691 +0200
    +++ obj-i386/drivers/base/platform.o.pahole.v3.15-rc7-80-g2cdb06858d71 2014-05-30 11:26:20.875988332 +0200
    @@ -73,9 +73,8 @@
    struct platform_object {
    struct platform_device pdev; /* 0 396 */
    /* --- cacheline 6 boundary (384 bytes) was 12 bytes ago --- */
    - char name[1]; /* 396 1 */
    + char name[0]; /* 396 0 */

    - /* size: 400, cachelines: 7, members: 2 */
    - /* padding: 3 */
    - /* last cacheline: 16 bytes */
    + /* size: 396, cachelines: 7, members: 2 */
    + /* last cacheline: 12 bytes */
    };

    --- obj-sparc64/drivers/base/platform.o.pahole.v3.15-rc7-79-gfe45736f4134 2014-05-30 10:32:06.406960625 +0200
    +++ obj-sparc64/drivers/base/platform.o.pahole.v3.15-rc7-80-g2cdb06858d71 2014-05-30 11:26:20.971988269 +0200
    @@ -94,9 +94,8 @@
    struct platform_object {
    struct platform_device pdev; /* 0 2208 */
    /* --- cacheline 34 boundary (2176 bytes) was 32 bytes ago --- */
    - char name[1]; /* 2208 1 */
    + char name[0]; /* 2208 0 */

    - /* size: 2216, cachelines: 35, members: 2 */
    - /* padding: 7 */
    - /* last cacheline: 40 bytes */
    + /* size: 2208, cachelines: 35, members: 2 */
    + /* last cacheline: 32 bytes */
    };

    --- obj-x86_64/drivers/base/platform.o.pahole.v3.15-rc7-79-gfe45736f4134 2014-05-30 10:32:06.432960608 +0200
    +++ obj-x86_64/drivers/base/platform.o.pahole.v3.15-rc7-80-g2cdb06858d71 2014-05-30 11:26:21.000988250 +0200
    @@ -84,9 +84,8 @@
    struct platform_object {
    struct platform_device pdev; /* 0 720 */
    /* --- cacheline 11 boundary (704 bytes) was 16 bytes ago --- */
    - char name[1]; /* 720 1 */
    + char name[0]; /* 720 0 */

    - /* size: 728, cachelines: 12, members: 2 */
    - /* padding: 7 */
    - /* last cacheline: 24 bytes */
    + /* size: 720, cachelines: 12, members: 2 */
    + /* last cacheline: 16 bytes */
    };

    Changes from v5 [1]:
    - dropped dma_mask allocation changes and only kept padding
    removal changes (name array length set to 0).

    Changes from v4 [2]:
    [by Emil Goode :]
    - Split v4 of the patch into two separate patches.
    - Generated new object file size and data structure layout info.
    - Updated the changelog message.

    Changes from v3 [3]:
    - fixed commit message so that git am doesn't fail.

    Changes from v2 [4]:
    - move 'dma_mask' to platform_object so that it's always
    allocated and won't leak on release; remove all previously
    added support functions.
    - use C99 flexible array member for 'name' to remove padding
    at the end of platform_object.

    Changes from v1 [5]:
    - remove unneeded kfree() from error path
    - add reference to author/commit adding allocation of dmamask

    Changes from v0 [6]:
    - small rewrite to squeeze the patch to a bare minimal

    [1] http://lkml.kernel.org/r/1401122483-31603-2-git-send-email-emilgoode@gmail.com
    http://lkml.kernel.org/r/1401122483-31603-1-git-send-email-emilgoode@gmail.com
    http://lkml.kernel.org/r/1401122483-31603-3-git-send-email-emilgoode@gmail.com

    [2] http://lkml.kernel.org/r/1390817152-30898-1-git-send-email-ydroneaud@opteya.com
    https://patchwork.kernel.org/patch/3541871/

    [3] http://lkml.kernel.org/r/1390771138-28348-1-git-send-email-ydroneaud@opteya.com
    https://patchwork.kernel.org/patch/3540081/

    [4] http://lkml.kernel.org/r/1389683909-17495-1-git-send-email-ydroneaud@opteya.com
    https://patchwork.kernel.org/patch/3484411/

    [5] http://lkml.kernel.org/r/1389649085-7365-1-git-send-email-ydroneaud@opteya.com
    https://patchwork.kernel.org/patch/3480961/

    [6] http://lkml.kernel.org/r/1386886207-2735-1-git-send-email-ydroneaud@opteya.com

    Cc: Emil Goode
    Cc: Dan Carpenter
    Cc: Shawn Guo
    Cc: Sascha Hauer
    Cc: Russell King
    Cc: Olof Johansson
    Cc: Uwe Kleine-König
    Cc: Dmitry Torokhov
    Signed-off-by: Yann Droneaud
    Acked-by: Uwe Kleine-König
    Signed-off-by: Greg Kroah-Hartman

    Yann Droneaud
     
  • Now that the udev firmware loader is optional request_firmware()
    will not provide any information on the kernel ring buffer if
    direct firmware loading failed and udev firmware loading is disabled.
    If no information is needed request_firmware_direct() should be used
    for optional firmware, at which point drivers can take on the onus
    over informing of any failures, if udev firmware loading is disabled
    though we should at the very least provide some sort of information
    as when the udev loader was enabled by default back in the days.

    With this change with a simple firmware load test module [0]:

    Example output without FW_LOADER_USER_HELPER_FALLBACK

    platform fake-dev.0: Direct firmware load for fake.bin failed
    with error -2

    Example with FW_LOADER_USER_HELPER_FALLBACK

    platform fake-dev.0: Direct firmware load for fake.bin failed with error -2
    platform fake-dev.0: Falling back to user helper

    Without this change without FW_LOADER_USER_HELPER_FALLBACK we
    get no output logged upon failure.

    Cc: Tom Gundersen
    Cc: Ming Lei
    Cc: Abhay Salunke
    Cc: Stefan Roese
    Cc: Arnd Bergmann
    Cc: Kay Sievers
    Signed-off-by: Luis R. Rodriguez
    Reviewed-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Luis R. Rodriguez
     
  • use mm.h definition

    Cc: Ming Lei
    Signed-off-by: Fabian Frederick
    Signed-off-by: Greg Kroah-Hartman

    Fabian Frederick
     
  • There is no need to read attr because inode structure contains size
    of the file. Use i_size_read() instead.

    Signed-off-by: Dmitry Kasatkin
    Acked-by: Ming Lei
    Signed-off-by: Greg Kroah-Hartman

    Dmitry Kasatkin
     
  • [The patch was originally proposed by Tom Gundersen, and rewritten
    afterwards by me; most of changelogs below borrowed from Tom's
    original patch -- tiwai]

    Currently (at least) the dell-rbu driver selects FW_LOADER_USER_HELPER,
    which means that distros can't really stop loading firmware through
    udev without breaking other users (though some have).

    Ideally we would remove/disable the udev firmware helper in both the
    kernel and in udev, but if we were to disable it in udev and not the
    kernel, the result would be (seemingly) hung kernels as no one would
    be around to cancel firmware requests.

    This patch allows udev firmware loading to be disabled while still
    allowing non-udev firmware loading, as done by the dell-rbu driver, to
    continue working. This is achieved by only using the fallback
    mechanism when the uevent is suppressed.

    The patch renames the user-selectable Kconfig from FW_LOADER_USER_HELPER
    to FW_LOADER_USER_HELPER_FALLBACK, and the former is reverse-selected
    by the latter or the drivers that need userhelper like dell-rbu.

    Also, the "default y" is removed together with this change, since it's
    been deprecated in udev upstream, thus rather better to disable it
    nowadays.

    Tested with
    FW_LOADER_USER_HELPER=n
    LATTICE_ECP3_CONFIG=y
    DELL_RBU=y
    and udev without the firmware loading support, but I don't have the
    hardware to test the lattice/dell drivers, so additional testing would
    be appreciated.

    Reviewed-by: Tom Gundersen
    Cc: Ming Lei
    Cc: Abhay Salunke
    Cc: Stefan Roese
    Cc: Arnd Bergmann
    Cc: Kay Sievers
    Tested-by: Balaji Singh
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     
  • A fence can be attached to a buffer which is being filled or consumed
    by hw, to allow userspace to pass the buffer without waiting to another
    device. For example, userspace can call page_flip ioctl to display the
    next frame of graphics after kicking the GPU but while the GPU is still
    rendering. The display device sharing the buffer with the GPU would
    attach a callback to get notified when the GPU's rendering-complete IRQ
    fires, to update the scan-out address of the display, without having to
    wake up userspace.

    A driver must allocate a fence context for each execution ring that can
    run in parallel. The function for this takes an argument with how many
    contexts to allocate:
    + fence_context_alloc()

    A fence is transient, one-shot deal. It is allocated and attached
    to one or more dma-buf's. When the one that attached it is done, with
    the pending operation, it can signal the fence:
    + fence_signal()

    To have a rough approximation whether a fence is fired, call:
    + fence_is_signaled()

    The dma-buf-mgr handles tracking, and waiting on, the fences associated
    with a dma-buf.

    The one pending on the fence can add an async callback:
    + fence_add_callback()

    The callback can optionally be cancelled with:
    + fence_remove_callback()

    To wait synchronously, optionally with a timeout:
    + fence_wait()
    + fence_wait_timeout()

    When emitting a fence, call:
    + trace_fence_emit()

    To annotate that a fence is blocking on another fence, call:
    + trace_fence_annotate_wait_on(fence, on_fence)

    A default software-only implementation is provided, which can be used
    by drivers attaching a fence to a buffer when they have no other means
    for hw sync. But a memory backed fence is also envisioned, because it
    is common that GPU's can write to, or poll on some memory location for
    synchronization. For example:

    fence = custom_get_fence(...);
    if ((seqno_fence = to_seqno_fence(fence)) != NULL) {
    dma_buf *fence_buf = seqno_fence->sync_buf;
    get_dma_buf(fence_buf);

    ... tell the hw the memory location to wait ...
    custom_wait_on(fence_buf, seqno_fence->seqno_ofs, fence->seqno);
    } else {
    /* fall-back to sw sync * /
    fence_add_callback(fence, my_cb);
    }

    On SoC platforms, if some other hw mechanism is provided for synchronizing
    between IP blocks, it could be supported as an alternate implementation
    with it's own fence ops in a similar way.

    enable_signaling callback is used to provide sw signaling in case a cpu
    waiter is requested or no compatible hardware signaling could be used.

    The intention is to provide a userspace interface (presumably via eventfd)
    later, to be used in conjunction with dma-buf's mmap support for sw access
    to buffers (or for userspace apps that would prefer to do their own
    synchronization).

    v1: Original
    v2: After discussion w/ danvet and mlankhorst on #dri-devel, we decided
    that dma-fence didn't need to care about the sw->hw signaling path
    (it can be handled same as sw->sw case), and therefore the fence->ops
    can be simplified and more handled in the core. So remove the signal,
    add_callback, cancel_callback, and wait ops, and replace with a simple
    enable_signaling() op which can be used to inform a fence supporting
    hw->hw signaling that one or more devices which do not support hw
    signaling are waiting (and therefore it should enable an irq or do
    whatever is necessary in order that the CPU is notified when the
    fence is passed).
    v3: Fix locking fail in attach_fence() and get_fence()
    v4: Remove tie-in w/ dma-buf.. after discussion w/ danvet and mlankorst
    we decided that we need to be able to attach one fence to N dma-buf's,
    so using the list_head in dma-fence struct would be problematic.
    v5: [ Maarten Lankhorst ] Updated for dma-bikeshed-fence and dma-buf-manager.
    v6: [ Maarten Lankhorst ] I removed dma_fence_cancel_callback and some comments
    about checking if fence fired or not. This is broken by design.
    waitqueue_active during destruction is now fatal, since the signaller
    should be holding a reference in enable_signalling until it signalled
    the fence. Pass the original dma_fence_cb along, and call __remove_wait
    in the dma_fence_callback handler, so that no cleanup needs to be
    performed.
    v7: [ Maarten Lankhorst ] Set cb->func and only enable sw signaling if
    fence wasn't signaled yet, for example for hardware fences that may
    choose to signal blindly.
    v8: [ Maarten Lankhorst ] Tons of tiny fixes, moved __dma_fence_init to
    header and fixed include mess. dma-fence.h now includes dma-buf.h
    All members are now initialized, so kmalloc can be used for
    allocating a dma-fence. More documentation added.
    v9: Change compiler bitfields to flags, change return type of
    enable_signaling to bool. Rework dma_fence_wait. Added
    dma_fence_is_signaled and dma_fence_wait_timeout.
    s/dma// and change exports to non GPL. Added fence_is_signaled and
    fence_enable_sw_signaling calls, add ability to override default
    wait operation.
    v10: remove event_queue, use a custom list, export try_to_wake_up from
    scheduler. Remove fence lock and use a global spinlock instead,
    this should hopefully remove all the locking headaches I was having
    on trying to implement this. enable_signaling is called with this
    lock held.
    v11:
    Use atomic ops for flags, lifting the need for some spin_lock_irqsaves.
    However I kept the guarantee that after fence_signal returns, it is
    guaranteed that enable_signaling has either been called to completion,
    or will not be called any more.

    Add contexts and seqno to base fence implementation. This allows you
    to wait for less fences, by testing for seqno + signaled, and then only
    wait on the later fence.

    Add FENCE_TRACE, FENCE_WARN, and FENCE_ERR. This makes debugging easier.
    An CONFIG_DEBUG_FENCE will be added to turn off the FENCE_TRACE
    spam, and another runtime option can turn it off at runtime.
    v12:
    Add CONFIG_FENCE_TRACE. Add missing documentation for the fence->context
    and fence->seqno members.
    v13:
    Fixup CONFIG_FENCE_TRACE kconfig description.
    Move fence_context_alloc to fence.
    Simplify fence_later.
    Kill priv member to fence_cb.
    v14:
    Remove priv argument from fence_add_callback, oops!
    v15:
    Remove priv from documentation.
    Explicitly include linux/atomic.h.
    v16:
    Add trace events.
    Import changes required by android syncpoints.
    v17:
    Use wake_up_state instead of try_to_wake_up. (Colin Cross)
    Fix up commit description for seqno_fence. (Rob Clark)
    v18:
    Rename release_fence to fence_release.
    Move to drivers/dma-buf/.
    Rename __fence_is_signaled and __fence_signal to *_locked.
    Rename __fence_init to fence_init.
    Make fence_default_wait return a signed long, and fix wait ops too.

    Signed-off-by: Maarten Lankhorst
    Signed-off-by: Thierry Reding #use smp_mb__before_atomic()
    Acked-by: Sumit Semwal
    Acked-by: Daniel Vetter
    Reviewed-by: Rob Clark
    Signed-off-by: Greg Kroah-Hartman

    Maarten Lankhorst
     
  • Signed-off-by: Maarten Lankhorst
    Acked-by: Sumit Semwal
    Acked-by: Daniel Vetter
    Signed-off-by: Greg Kroah-Hartman

    Maarten Lankhorst
     

05 Jul, 2014

1 commit


03 Jul, 2014

3 commits

  • Add support for generating a set of component matches at master probe
    time, and submitting them to the component layer. This allows the
    component layer to perform the matches internally without needing to
    call into the master driver, and allows for further restructuring of
    the component helper.

    Acked-by: Laurent Pinchart
    Signed-off-by: Russell King

    Russell King
     
  • Permit masters to call component_master_add_child() and match the same
    child multiple times. This may happen if there's multiple connections
    to a single component device from other devices. In such scenarios,
    we should not return a failure, but instead ignore the attempt.

    Acked-by: Laurent Pinchart
    Signed-off-by: Russell King

    Russell King
     
  • In try_to_bring_up_master(), we tear down the master's component list
    for each error case, except for devres group failure. Fix this
    oversight by making the code less prone to such mistakes.

    Acked-by: Laurent Pinchart
    Signed-off-by: Russell King

    Russell King
     

24 Jun, 2014

1 commit

  • We should free memory for bitmap when we find zone mismatch, otherwise
    this memory will leak.

    Additionally, I copy code comment from PPC KVM's CMA code to inform why
    we need to check zone mis-match.

    Signed-off-by: Joonsoo Kim
    Acked-by: Zhang Yanfei
    Reviewed-by: Michal Nazarewicz
    Reviewed-by: Aneesh Kumar K.V
    Acked-by: Minchan Kim
    Cc: "Aneesh Kumar K.V"
    Cc: Marek Szyprowski
    Cc: Michal Nazarewicz
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: Alexander Graf
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     

13 Jun, 2014

1 commit

  • Pull more ACPI and power management updates from Rafael Wysocki:
    "These are fixups on top of the previous PM+ACPI pull request,
    regression fixes (ACPI hotplug, cpufreq ppc-corenet), other bug fixes
    (ACPI reset, cpufreq), new PM trace points for system suspend
    profiling and a copyright notice update.

    Specifics:

    - I didn't remember correctly that the Hans de Goede's ACPI video
    patches actually didn't flip the video.use_native_backlight
    default, although we had discussed that and decided to do that.
    Since I said we would do that in the previous PM+ACPI pull request,
    make that change for real now.

    - ACPI bus check notifications for PCI host bridges don't cause the
    bus below the host bridge to be checked for changes as they should
    because of a mistake in the ACPI-based PCI hotplug (ACPIPHP)
    subsystem that forgets to add hotplug contexts to PCI host bridge
    ACPI device objects. Create hotplug contexts for PCI host bridges
    too as appropriate.

    - Revert recent cpufreq commit related to the big.LITTLE cpufreq
    driver that breaks arm64 builds.

    - Fix for a regression in the ppc-corenet cpufreq driver introduced
    during the 3.15 cycle and causing the driver to use the remainder
    from do_div instead of the quotient. From Ed Swarthout.

    - Resets triggered by panic activate a BUG_ON() in vmalloc.c on
    systems where the ACPI reset register is located in memory address
    space. Fix from Randy Wright.

    - Fix for a problem with cpufreq governors that decisions made by
    them may be suboptimal due to the fact that deferrable timers are
    used by them for CPU load sampling. From Srivatsa S Bhat.

    - Fix for a problem with the Tegra cpufreq driver where the CPU
    frequency is temporarily switched to a "stable" level that is
    different from both the initial and target frequencies during
    transitions which causes udelay() to expire earlier than it should
    sometimes. From Viresh Kumar.

    - New trace points and rework of some existing trace points for
    system suspend/resume profiling from Todd Brandt.

    - Assorted cpufreq fixes and cleanups from Stratos Karafotis and
    Viresh Kumar.

    - Copyright notice update for suspend-and-cpuhotplug.txt from
    Srivatsa S Bhat"

    * tag 'pm+acpi-3.16-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / hotplug / PCI: Add hotplug contexts to PCI host bridges
    PM / sleep: trace events for device PM callbacks
    cpufreq: cpufreq-cpu0: remove dependency on THERMAL and REGULATOR
    cpufreq: tegra: update comment for clarity
    cpufreq: intel_pstate: Remove duplicate CPU ID check
    cpufreq: Mark CPU0 driver with CPUFREQ_NEED_INITIAL_FREQ_CHECK flag
    PM / Documentation: Update copyright in suspend-and-cpuhotplug.txt
    cpufreq: governor: remove copy_prev_load from 'struct cpu_dbs_common_info'
    cpufreq: governor: Be friendly towards latency-sensitive bursty workloads
    PM / sleep: trace events for suspend/resume
    cpufreq: ppc-corenet-cpu-freq: do_div use quotient
    Revert "cpufreq: Enable big.LITTLE cpufreq driver on arm64"
    cpufreq: Tegra: implement intermediate frequency callbacks
    cpufreq: add support for intermediate (stable) frequencies
    ACPI / video: Change the default for video.use_native_backlight to 1
    ACPI: Fix bug when ACPI reset register is implemented in system memory

    Linus Torvalds