20 Sep, 2015

6 commits

  • Pull power management and ACPI updates from Rafael Wysocki:
    "Included are: a somewhat late devfreq update which however is mostly
    fixes and cleanups with one new thing only (the PPMUv2 support on
    Exynos5433), an ACPI cpufreq driver fixup and two ACPI core cleanups
    related to preprocessor directives.

    Specifics:

    - Fix a memory allocation size in the devfreq core (Xiaolong Ye).

    - Fix a mistake in the exynos-ppmu DT binding (Javier Martinez
    Canillas).

    - Add support for PPMUv2 ((Platform Performance Monitoring Unit
    version 2.0) on the Exynos5433 SoCs (Chanwoo Choi).

    - Fix a type casting bug in the Exynos PPMU code (MyungJoo Ham).

    - Assorted devfreq code cleanups and optimizations (Javi Merino,
    MyungJoo Ham, Viresh Kumar).

    - Fix up the ACPI cpufreq driver to use a more lightweight way to get
    to its private data in the ->get() callback (Rafael J Wysocki).

    - Fix a CONFIG_ prefix bug in one of the ACPI drivers and make the
    ACPI subsystem use IS_ENABLED() instead of #ifdefs in function
    bodies (Sudeep Holla)"

    * tag 'pm+acpi-4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get()
    ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED()
    ACPI: int340x_thermal: add missing CONFIG_ prefix
    PM / devfreq: Fix incorrect type issue.
    PM / devfreq: tegra: Update governor to use devfreq_update_stats()
    PM / devfreq: comments for get_dev_status usage updated
    PM / devfreq: drop comment about thermal setting max_freq
    PM / devfreq: cache the last call to get_dev_status()
    PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL)
    PM / devfreq: exynos-ppmu: bit-wise operation bugfix.
    PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2
    PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433
    PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding

    Linus Torvalds
     
  • Pull clk fixes from Stephen Boyd:
    "A few driver fixes for tegra, rockchip, and st SoCs and a two-liner in
    the framework to avoid oops when get_parent ops return out of range
    values on tegra platforms"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    drivers: clk: st: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x
    clk: check for invalid parent index of orphans in __clk_init()
    clk: tegra: dfll: Properly protect OPP list
    clk: rockchip: add critical clock for rk3368

    Linus Torvalds
     
  • …git/j.anaszewski/linux-leds

    Pull LED fixes from Jacek Anaszewski:
    - fix module autoload for six OF platform drivers (aat1290, bcm6328,
    bcm6358, ktd2692, max77693, ns2)
    - aat1290: add missing static modifier
    - ipaq-micro: add missing LEDS_CLASS dependency
    - lp55xx: correct Kconfig dependecy for f/w user helper

    * tag 'led-fixes-for-v4.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
    leds:lp55xx: Correct Kconfig dependency for f/w user helper
    leds: leds-ipaq-micro: Add LEDS_CLASS dependency
    leds: aat1290: add 'static' modifier to init_mm_current_scale
    leds: leds-ns2: Fix module autoload for OF platform driver
    leds: max77693: Fix module autoload for OF platform driver
    leds: ktd2692: Fix module autoload for OF platform driver
    leds: bcm6358: Fix module autoload for OF platform driver
    leds: bcm6328: Fix module autoload for OF platform driver
    leds: aat1290: Fix module autoload for OF platform driver

    Linus Torvalds
     
  • Pull rdma fixes from Doug Ledford:
    "The new hfi1 driver in staging/rdma has had a number of fixup patches
    since being added to the tree. This is the first batch of those fixes"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
    IB/hfi: Properly set permissions for user device files
    IB/hfi1: mask vs shift confusion
    IB/hfi1: clean up some defines
    IB/hfi1: info leak in get_ctxt_info()
    IB/hfi1: fix a locking bug
    IB/hfi1: checking for NULL instead of IS_ERR
    IB/hfi1: fix sdma_descq_cnt parameter parsing
    IB/hfi1: fix copy_to/from_user() error handling
    IB/hfi1: fix pstateinfo from returning improperly byteswapped value

    Linus Torvalds
     
  • Pull libnvdimm fixes from Dan Williams:

    - a boot regression (since v4.2) fix for some ARM configurations from
    Tyler

    - regression (since v4.1) fixes for mkfs.xfs on a DAX enabled device
    from Jeff. These are tagged for -stable.

    - a pair of locking fixes from Axel that are hidden from lockdep since
    they involve device_lock(). The "btt" one is tagged for -stable, the
    other only applies to the new "pfn" mechanism in v4.3.

    - a fix for the pmem ->rw_page() path to use wmb_pmem() from Ross.

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    mm: fix type cast in __pfn_to_phys()
    pmem: add proper fencing to pmem_rw_page()
    libnvdimm: pfn_devs: Fix locking in namespace_store
    libnvdimm: btt_devs: Fix locking in namespace_store
    blockdev: don't set S_DAX for misaligned partitions
    dax: fix O_DIRECT I/O to the last block of a blockdev

    Linus Torvalds
     
  • Pull block updates from Jens Axboe:
    "This is a bit bigger than it should be, but I could (did) not want to
    send it off last week due to both wanting extra testing, and expecting
    a fix for the bounce regression as well. In any case, this contains:

    - Fix for the blk-merge.c compilation warning on gcc 5.x from me.

    - A set of back/front SG gap merge fixes, from me and from Sagi.
    This ensures that we honor SG gapping for integrity payloads as
    well.

    - Two small fixes for null_blk from Matias, fixing a leak and a
    capacity propagation issue.

    - A blkcg fix from Tejun, fixing a NULL dereference.

    - A fast clone optimization from Ming, fixing a performance
    regression since the arbitrarily sized bio's were introduced.

    - Also from Ming, a regression fix for bouncing IOs"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: fix bounce_end_io
    block: blk-merge: fast-clone bio when splitting rw bios
    block: blkg_destroy_all() should clear q->root_blkg and ->root_rl.blkg
    block: Copy a user iovec if it includes gaps
    block: Refuse adding appending a gapped integrity page to a bio
    block: Refuse request/bio merges with gaps in the integrity payload
    block: Check for gaps on front and back merges
    null_blk: fix wrong capacity when bs is not 512 bytes
    null_blk: fix memory leak on cleanup
    block: fix bogus compiler warnings in blk-merge.c

    Linus Torvalds
     

19 Sep, 2015

3 commits

  • * acpi-bus:
    ACPI: Eliminate CONFIG_.*{, _MODULE} #ifdef in favor of IS_ENABLED()
    ACPI: int340x_thermal: add missing CONFIG_ prefix

    Rafael J. Wysocki
     
  • * pm-cpufreq:
    cpufreq: acpi-cpufreq: Use cpufreq_cpu_get_raw() in ->get()

    * pm-devfreq:
    PM / devfreq: Fix incorrect type issue.
    PM / devfreq: tegra: Update governor to use devfreq_update_stats()
    PM / devfreq: comments for get_dev_status usage updated
    PM / devfreq: drop comment about thermal setting max_freq
    PM / devfreq: cache the last call to get_dev_status()
    PM / devfreq: Drop unlikely before IS_ERR(_OR_NULL)
    PM / devfreq: exynos-ppmu: bit-wise operation bugfix.
    PM / devfreq: exynos-ppmu: Update documentation to support PPMUv2
    PM / devfreq: exynos-ppmu: Add the support of PPMUv2 for Exynos5433
    PM / devfreq: event: Remove incorrect property in exynos-ppmu DT binding

    Rafael J. Wysocki
     
  • Pull virtio fixes and cleanups from Michael Tsirkin:
    "This fixes the virtio-test tool, and improves the error handling for
    virtio-ccw"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    virtio/s390: handle failures of READ_VQ_CONF ccw
    tools/virtio: propagate V=X to kernel build
    vhost: move features to core
    tools/virtio: fix build after 4.2 changes

    Linus Torvalds
     

18 Sep, 2015

17 commits

  • Some of the device files are required to be user accessible for PSM while
    most should remain accessible only by root.

    Add a parameter to hfi1_cdev_init which controls if the user should have access
    to this device which places it in a different class with the appropriate
    devnode callback.

    In addition set the devnode call back for the existing class to be a bit more
    explicit for those permissions.

    Finally remove the unnecessary null check before class_destroy

    Tested-by: Donald Dutile
    Signed-off-by: Haralanov, Mitko (mitko.haralanov@intel.com)
    Signed-off-by: Ira Weiny
    Signed-off-by: Doug Ledford

    Ira Weiny
     
  • We are shifting by the _MASK macros instead of the _SHIFT ones.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Doug Ledford

    Dan Carpenter
     
  • I added spaces around operators so it matches kernel style because
    normally "-1ULL" is a number and " - 1" is a subtract operation. Also
    removed some superflous "ULL" types so "1ULL" becomes "1".

    Signed-off-by: Dan Carpenter
    Signed-off-by: Doug Ledford

    Dan Carpenter
     
  • The cinfo struct has a hole after the last struct member so we need to
    zero it out. Otherwise we disclose some uninitialized stack data.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Doug Ledford

    Dan Carpenter
     
  • mutex_trylock() returns zero on failure, not EBUSY.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Doug Ledford

    Dan Carpenter
     
  • __get_txreq() returns an ERR_PTR() but this checks for NULL so it would
    oops on failure.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Doug Ledford

    Dan Carpenter
     
  • The boolean tests should have been or-ed.

    Reported-by: David Binderman
    Reviewed-by: Jubin John
    Signed-off-by: Mike Marciniszyn
    Signed-off-by: Doug Ledford

    Mike Marciniszyn
     
  • copy_to/from_user() returns the number of bytes which we were not able
    to copy. It doesn't return an error code.

    Also a couple places had a printk() on error and I removed that because
    people can take advantage of it to fill /var/log/messages with spam.

    Signed-off-by: Dan Carpenter
    Acked-by: Mike Marciniszyn
    Signed-off-by: Doug Ledford

    Dan Carpenter
     
  • Byteswap link_width_downgrade_*_active values before sending on the wire. In
    addition properly define the Port State Info structure.

    Reviewed-by: Dennis Dalessandro
    Reviewed-by: Christian Gomez
    Signed-off-by: Rimmer, Todd
    Signed-off-by: Ira Weiny
    Acked-by: Mike Marciniszyn
    Signed-off-by: Doug Ledford

    Ira Weiny
     
  • Pull irq updates from Thomas Gleixner:
    "This is a rather large update post rc1 due to the final steps of
    cleanups and API changes which had to wait for the preparatory patches
    to hit your tree.

    - Regression fixes for ARM GIC irqchips

    - Regression fixes and lockdep anotations for renesas irq chips

    - The leftovers of the cleanup and preparatory patches which have
    been ignored by maintainers

    - Final conversions of the newly merged users of obsolete APIs

    - Final removal of obsolete APIs

    - Final removal of ARM artifacts which had been introduced during the
    conversion of ARM to the generic interrupt code.

    - Final split of the irq_data into chip specific and common data to
    reflect the needs of hierarchical irq domains.

    - Treewide removal of the first argument of interrupt flow handlers,
    i.e. the irq number, which is not used by the majority of handlers
    and simple to retrieve from the other argument the irq descriptor.

    - A few comment updates and build warning fixes"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
    arm64: Remove ununsed set_irq_flags
    ARM: Remove ununsed set_irq_flags
    sh: Kill off set_irq_flags usage
    irqchip: Kill off set_irq_flags usage
    gpu/drm: Kill off set_irq_flags usage
    genirq: Remove irq argument from irq flow handlers
    genirq: Move field 'msi_desc' from irq_data into irq_common_data
    genirq: Move field 'affinity' from irq_data into irq_common_data
    genirq: Move field 'handler_data' from irq_data into irq_common_data
    genirq: Move field 'node' from irq_data into irq_common_data
    irqchip/gic-v3: Use IRQD_FORWARDED_TO_VCPU flag
    irqchip/gic: Use IRQD_FORWARDED_TO_VCPU flag
    genirq: Provide IRQD_FORWARDED_TO_VCPU status flag
    genirq: Simplify irq_data_to_desc()
    genirq: Remove __irq_set_handler_locked()
    pinctrl/pistachio: Use irq_set_handler_locked
    gpio: vf610: Use irq_set_handler_locked
    powerpc/mpc8xx: Use irq_set_handler_locked()
    powerpc/ipic: Use irq_set_handler_locked()
    powerpc/cpm2: Use irq_set_handler_locked()
    ...

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:

    - Fix 32-bit TCE table init in kdump kernel from Nish

    - Fix kdump with non-power-of-2 crashkernel= from Nish

    - Abort cxl_pci_enable_device_hook() if PCI channel is offline from
    Andrew

    - Fix to release DRC when configure_connector() fails from Bharata

    - Wire up sys_userfaultfd()

    - Fix race condition in tearing down MSI interrupts from Paul

    - Fix unbalanced pci_dev_get() in cxl_probe() from Daniel

    - Fix cxl build failure due to -Wunused-variable gcc behaviour change
    from Ian

    - Tell the toolchain to use ABI v2 when building an LE boot wrapper
    from Benh

    - Fix THP to recompute hash value after a failed update from Aneesh

    - 32-bit memcpy/memset: only use dcbz once cache is enabled from
    Christophe

    * tag 'powerpc-4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc32: memset: only use dcbz once cache is enabled
    powerpc32: memcpy: only use dcbz once cache is enabled
    powerpc/mm: Recompute hash value after a failed update
    powerpc/boot: Specify ABI v2 when building an LE boot wrapper
    cxl: Fix build failure due to -Wunused-variable behaviour change
    cxl: Fix unbalanced pci_dev_get in cxl_probe
    powerpc/MSI: Fix race condition in tearing down MSI interrupts
    powerpc: Wire up sys_userfaultfd()
    powerpc/pseries: Release DRC when configure_connector fails
    cxl: abort cxl_pci_enable_device_hook() if PCI channel is offline
    powerpc/powernv/pci-ioda: fix kdump with non-power-of-2 crashkernel=
    powerpc/powernv/pci-ioda: fix 32-bit TCE table init in kdump kernel

    Linus Torvalds
     
  • …linux-platform-drivers-x86

    Pull x86 platform driver fixes from Darren Hart:
    "Fix an issue introduced by the previous major toshiba rework. Add a
    quirk. Workaround a few platform specific firmware items. One
    cleanup to wmi I inadvertently dropped from a previous pull request.

    Details:

    hp-wmi:
    - limit hotkey enable

    toshiba_acpi:
    - Fix hotkeys registration on some toshiba models
    - Fix USB Sleep and Music always disabled

    wmi:
    - Remove private %pUL implementation

    asus-nb-wmi:
    - Add wapf=4 quirk for X456UA/X456UF"

    * tag 'platform-drivers-x86-v4.3-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
    hp-wmi: limit hotkey enable
    toshiba_acpi: Fix hotkeys registration on some toshiba models
    toshiba_acpi: Fix USB Sleep and Music always disabled
    wmi: Remove private %pUL implementation
    asus-nb-wmi: Add wapf=4 quirk for X456UA/X456UF

    Linus Torvalds
     
  • Merge misc fixes from ANdrew Morton:
    "8 fixes"

    * emailed patches from Andrew Morton :
    revert "mm: make sure all file VMAs have ->vm_ops set"
    MAINTAINERS: update LTP mailing list
    userfaultfd: add missing mmput() in error path
    lib/string_helpers.c: fix infinite loop in string_get_size()
    alpha: lib: export __delay
    alpha: io: define ioremap_uc
    kasan: fix last shadow judgement in memory_is_poisoned_16()
    zram: fix possible use after free in zcomp_create()

    Linus Torvalds
     
  • zcomp_create() verifies the success of zcomp_strm_{multi,single}_create()
    through comp->stream, which can potentially be pointing to memory that
    was freed if these functions returned an error.

    While at it, replace a 'ERR_PTR(-ENOMEM)' by a more generic
    'ERR_PTR(error)' as in the future zcomp_strm_{multi,siggle}_create()
    could return other error codes. Function documentation updated
    accordingly.

    Fixes: beca3ec71fe5 ("zram: add multi stream functionality")
    Signed-off-by: Luis Henriques
    Acked-by: Sergey Senozhatsky
    Acked-by: Minchan Kim
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Luis Henriques
     
  • Do not write initialize magic on systems that do not have
    feature query 0xb. Fixes Bug #82451.

    Redefine FEATURE_QUERY to align with 0xb and FEATURE2 with 0xd
    for code clearity.

    Add a new test function, hp_wmi_bios_2008_later() & simplify
    hp_wmi_bios_2009_later(), which fixes a bug in cases where
    an improper value is returned. Probably also fixes Bug #69131.

    Add missing __init tag.

    Signed-off-by: Kyle Evans
    Cc: stable@vger.kernel.org
    Signed-off-by: Darren Hart

    Kyle Evans
     
  • Pull power supply fixes from Sebastian Reichel:
    "twl4030-charger fixes"

    * tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
    twl4030_charger: fix another compile error
    Revert "twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node"

    Linus Torvalds
     
  • Use a generic name for this kind of PLL

    Correction in dts files are already done here:
    commit 5eb26c605909 ("ARM: STi: DT: Rename st_pll3200c32_407_c0_x into st_pll3200c32_cx_x")

    Signed-off-by: Gabriel Fernandez
    Signed-off-by: Stephen Boyd

    Gabriel Fernandez
     

17 Sep, 2015

14 commits

  • pmem_rw_page() needs to call wmb_pmem() on writes to make sure that the
    newly written data is durable. This flow was added to pmem_rw_bytes()
    and pmem_make_request() with this commit:

    commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of
    persistent memory updates")

    ...the pmem_rw_page() path was missed.

    Cc:
    Signed-off-by: Ross Zwisler
    Signed-off-by: Dan Williams

    Ross Zwisler
     
  • Always take device_lock() before nvdimm_bus_lock() to prevent deadlock.

    Signed-off-by: Axel Lin
    Signed-off-by: Dan Williams

    Axel Lin
     
  • Always take device_lock() before nvdimm_bus_lock() to prevent deadlock.

    Cc:
    Signed-off-by: Axel Lin
    Signed-off-by: Dan Williams

    Axel Lin
     
  • The commit [b67893206fc0: leds:lp55xx: fix firmware loading error]
    tries to address the firmware file handling with user helper, but it
    sets a wrong Kconfig CONFIG_FW_LOADER_USER_HELPER_FALLBACK. Since the
    wrong option was enabled, the system got a regression -- it suffers
    from the unexpected long delays for non-present firmware files.

    This patch corrects the Kconfig dependency to the right one,
    CONFIG_FW_LOADER_USER_HELPER. This doesn't change the fallback
    behavior but only enables UMH when needed.

    Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=944661
    Fixes: b67893206fc0 ('leds:lp55xx: fix firmware loading error')
    Cc: # v4.2+
    Signed-off-by: Takashi Iwai
    Signed-off-by: Jacek Anaszewski

    Takashi Iwai
     
  • Fix missing Kconfig LEDS_CLASS dependency.

    Signed-off-by: Jacek Anaszewski
    Reviewed-by: Linus Walleij

    Jacek Anaszewski
     
  • Function init_mm_current_scale is used only locally. Make it static then.

    Signed-off-by: Jacek Anaszewski

    Jacek Anaszewski
     
  • This platform driver has a OF device ID table but the OF module
    alias information is not created so module autoloading won't work.

    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Jacek Anaszewski

    Luis de Bethencourt
     
  • This platform driver has a OF device ID table but the OF module
    alias information is not created so module autoloading won't work.

    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Jacek Anaszewski

    Luis de Bethencourt
     
  • This platform driver has a OF device ID table but the OF module
    alias information is not created so module autoloading won't work.

    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Jacek Anaszewski

    Luis de Bethencourt
     
  • This platform driver has a OF device ID table but the OF module
    alias information is not created so module autoloading won't work.

    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Jacek Anaszewski

    Luis de Bethencourt
     
  • This platform driver has a OF device ID table but the OF module
    alias information is not created so module autoloading won't work.

    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Jacek Anaszewski

    Luis de Bethencourt
     
  • This platform driver has a OF device ID table but the OF module
    alias information is not created so module autoloading won't work.

    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Jacek Anaszewski

    Luis de Bethencourt
     
  • If a mux clock is initialised (by hardware or firmware) with an
    invalid parent, its ->get_parent() can return an out of range
    index. For example, the generic mux clock attempts to return
    -EINVAL, which due to the u8 return type ends up a rather large
    number. Using this index with the parent_names[] array results
    in an invalid pointer and (usually) a crash in the following
    strcmp().

    This patch adds a check for the parent index being in range,
    ignoring clocks reporting invalid values.

    Signed-off-by: Mans Rullgard
    Tested-by: Rhyland Klein
    Signed-off-by: Stephen Boyd

    Mans Rullgard
     
  • The OPP list needs to be protected against concurrent accesses. Using
    simple RCU read locks does the trick and gets rid of the following
    lockdep warning:

    ===============================
    [ INFO: suspicious RCU usage. ]
    4.2.0-next-20150908 #1 Not tainted
    -------------------------------
    drivers/base/power/opp.c:460 Missing rcu_read_lock() or dev_opp_list_lock protection!

    other info that might help us debug this:

    rcu_scheduler_active = 1, debug_locks = 0
    4 locks held by kworker/u8:0/6:
    #0: ("%s""deferwq"){++++.+}, at: [] process_one_work+0x118/0x4bc
    #1: (deferred_probe_work){+.+.+.}, at: [] process_one_work+0x118/0x4bc
    #2: (&dev->mutex){......}, at: [] __device_attach+0x20/0x118
    #3: (prepare_lock){+.+...}, at: [] clk_prepare_lock+0x10/0xf8

    stack backtrace:
    CPU: 2 PID: 6 Comm: kworker/u8:0 Not tainted 4.2.0-next-20150908 #1
    Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
    Workqueue: deferwq deferred_probe_work_func
    [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [] (show_stack) from [] (dump_stack+0x94/0xd4)
    [] (dump_stack) from [] (dev_pm_opp_find_freq_ceil+0x108/0x114)
    [] (dev_pm_opp_find_freq_ceil) from [] (dfll_calculate_rate_request+0xb8/0x170)
    [] (dfll_calculate_rate_request) from [] (dfll_clk_round_rate+0x1c/0x2c)
    [] (dfll_clk_round_rate) from [] (clk_calc_new_rates+0x1b8/0x228)
    [] (clk_calc_new_rates) from [] (clk_core_set_rate_nolock+0x44/0xac)
    [] (clk_core_set_rate_nolock) from [] (clk_set_rate+0x24/0x34)
    [] (clk_set_rate) from [] (tegra124_cpufreq_probe+0x120/0x230)
    [] (tegra124_cpufreq_probe) from [] (platform_drv_probe+0x44/0xac)
    [] (platform_drv_probe) from [] (driver_probe_device+0x218/0x304)
    [] (driver_probe_device) from [] (bus_for_each_drv+0x60/0x94)
    [] (bus_for_each_drv) from [] (__device_attach+0xb4/0x118)
    ata1: SATA link down (SStatus 0 SControl 300)
    [] (__device_attach) from [] (bus_probe_device+0x88/0x90)
    [] (bus_probe_device) from [] (deferred_probe_work_func+0x58/0x8c)
    [] (deferred_probe_work_func) from [] (process_one_work+0x188/0x4bc)
    [] (process_one_work) from [] (worker_thread+0x4c/0x4f4)
    [] (worker_thread) from [] (kthread+0xe4/0xf8)
    [] (kthread) from [] (ret_from_fork+0x14/0x24)

    Signed-off-by: Thierry Reding
    Fixes: c4fe70ada40f ("clk: tegra: Add closed loop support for the DFLL")
    [vince.h@nvidia.com: Unlock rcu on error path]
    Signed-off-by: Vince Hsu
    [sboyd@codeaurora.org: Dropped second hunk that nested the rcu
    read lock unnecessarily]
    Signed-off-by: Stephen Boyd

    Thierry Reding