1. 17 Jan, 2018 2 commits
  2. 15 Jan, 2018 4 commits
    • Rafael J. Wysocki's avatar
      PM / runtime: Check ignore_children in pm_runtime_need_not_resume() · 1f5c6855
      Rafael J. Wysocki authored
      Modify pm_runtime_need_not_resume() to make it avoid taking
      power.child_count for devices with power.ignore_children which
      is consistent with the runtime PM usage of these fields.
      Suggested-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      1f5c6855
    • Rafael J. Wysocki's avatar
      PM / runtime: Rework pm_runtime_force_suspend/resume() · 4918e1f8
      Rafael J. Wysocki authored
      One of the limitations of pm_runtime_force_suspend/resume() is that
      if a parent driver wants to use these functions, all of its child
      drivers generally have to do that too because of the parent usage
      counter manipulations necessary to get the correct state of the parent
      during system-wide transitions to the working state (system resume).
      However, that limitation turns out to be artificial, so remove it.
      
      Namely, pm_runtime_force_suspend() only needs to update the children
      counter of its parent (if there's is a parent) when the device can
      stay in suspend after the subsequent system resume transition, as
      that counter is correct already otherwise.  Now, if the parent's
      children counter is not updated, it is not necessary to increment
      the parent's usage counter in that case any more, as long as the
      children counters of devices are checked along with their usage
      counters in order to decide whether or not the devices may be left
      in suspend after the subsequent system resume transition.
      
      Accordingly, modify pm_runtime_force_suspend() to only call
      pm_runtime_set_suspended() for devices whose usage and children
      counters are at the "no references" level (the runtime PM status
      of the device needs to be updated to "suspended" anyway in case
      this function is called once again for the same device during the
      transition under way), drop the parent usage counter incrementation
      from it and update pm_runtime_force_resume() to compensate for these
      changes.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      4918e1f8
    • Rafael J. Wysocki's avatar
    • Rafael J. Wysocki's avatar
      PM / genpd: Stop/start devices without pm_runtime_force_suspend/resume() · 17218e00
      Rafael J. Wysocki authored
      There are problems with calling pm_runtime_force_suspend/resume()
      to "stop" and "start" devices in genpd_finish_suspend() and
      genpd_resume_noirq() (and in analogous hibernation-specific genpd
      callbacks) after commit 122a2237 (PM / Domains: Stop/start
      devices during system PM suspend/resume in genpd) as those routines
      do much more than just "stopping" and "starting" devices (which was
      the stated purpose of that commit) unnecessarily and may not play
      well with system-wide PM driver callbacks.
      
      First, consider the pm_runtime_force_suspend() in
      genpd_finish_suspend().  If the current runtime PM status of the
      device is "suspended", that function most likely does the right thing
      by ignoring the device, because it should have been "stopped" already
      and whatever needed to be done to deactivate it shoud have been done.
      In turn, if the runtime PM status of the device is "active",
      genpd_runtime_suspend() is called for it (indirectly) and (1) runs
      the ->runtime_suspend callback provided by the device's driver
      (assuming no bus type with ->runtime_suspend of its own), (2) "stops"
      the device and (3) checks if the domain can be powered down, and then
      (4) the device's runtime PM status is changed to "suspended".  Out of
      the four actions above (1) is not necessary and it may be outright
      harmful, (3) is pointless and (4) is questionable.  The only
      operation that needs to be carried out here is (2).
      
      The reason why (1) is not necessary is because the system-wide
      PM callbacks provided by the device driver for the transition in
      question have been run and they should have taken care of the
      driver's part of device suspend already.  Moreover, it may be
      harmful, because the ->runtime_suspend callback may want to
      access the device which is partially suspended at that point
      and may not be responsive.  Also, system-wide PM callbacks may
      have been run already (in the previous phases of the system
      transition under way) for the device's parent or for its supplier
      devices (if any) and the device may not be accessible because of
      that.
      
      There also is no reason to do (3), because genpd_finish_suspend()
      will repeat it anyway, and (4) potentially causes confusion to ensue
      during the subsequent system transition to the working state.
      
      Consider pm_runtime_force_resume() in genpd_resume_noirq() now.
      It runs genpd_runtime_resume() for all devices with runtime PM
      status set to "suspended", which includes all of the devices
      whose runtime PM status was changed by pm_runtime_force_suspend()
      before and may include some devices already suspended when the
      pm_runtime_force_suspend() was running, which may be confusing.  The
      genpd_runtime_resume() first tries to power up the domain, which
      (again) is pointless, because genpd_resume_noirq() has done that
      already.  Then, it "starts" the device and runs the ->runtime_resume
      callback (from the driver, say) for it.  If all is well, the device
      is left with the runtime PM status set to "active".
      
      Unfortunately, running the driver's ->runtime_resume callback
      before its system-wide PM callbacks and possibly before some
      system-wide PM callbacks of the parent device's driver (let
      alone supplier drivers) is asking for trouble, especially if
      the device had been suspended before pm_runtime_force_suspend()
      ran previously or if the callbacks in question expect to be run
      back-to-back with their suspend-side counterparts.  It also should
      not be necessary, because the system-wide PM driver callbacks that
      will be invoked for the device subsequently should take care of
      resuming it just fine.
      
      [Running the driver's ->runtime_resume callback in the "noirq"
      phase of the transition to the working state may be problematic
      even for devices whose drivers do use pm_runtime_force_resume()
      in (or as) their system-wide PM callbacks if they have suppliers
      other than their parents, because it may cause the supplier to
      be resumed after the consumer in some cases.]
      
      Because of the above, modify genpd as follows:
      
       1. Change genpd_finish_suspend() to only "stop" devices with
          runtime PM status set to "active" (without invoking runtime PM
          callbacks for them, changing their runtime PM status and so on).
      
          That doesn't change the handling of devices whose drivers use
          pm_runtime_force_suspend/resume() in (or as) their system-wide
          PM callbacks and addresses the issues described above for the
          other devices.
      
       2. Change genpd_resume_noirq() to only "start" devices with
          runtime PM status set to "active" (without invoking runtime PM
          callbacks for them, changing their runtime PM status and so on).
      
          Again, that doesn't change the handling of devices whose drivers
          use pm_runtime_force_suspend/resume() in (or as) their system-wide
          PM callbacks and addresses the described issues for the other
          devices.  Devices with runtime PM status set to "suspended"
          are not started with the assumption that they will be resumed
          later, either by pm_runtime_force_resume() or via runtime PM.
      
       3. Change genpd_restore_noirq() to follow genpd_resume_noirq().
      
          That causes devices already suspended before hibernation to be
          left alone (which also is the case without the change) and
          avoids running the ->runtime_resume driver callback too early
          for the other devices.
      
       4. Change genpd_freeze_noirq() and genpd_thaw_noirq() in accordance
          with the above modifications.
      
      Fixes: 122a2237 (PM / Domains: Stop/start devices during system PM suspend/resume in genpd)
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      17218e00
  3. 11 Jan, 2018 2 commits
    • Ulf Hansson's avatar
      PM / wakeup: Print warn if device gets enabled as wakeup source during sleep · 0026cef0
      Ulf Hansson authored
      In general, wakeup settings are not supposed to be changed during any of
      the system wide PM phases. The reason is simply that it would break
      guarantees provided by the PM core, to properly act on active wakeup
      sources.
      
      However, there are exceptions to when, in particular, disabling a device as
      wakeup source makes sense. For example, in cases when a driver realizes
      that its device is dead during system suspend. For these scenarios, we
      don't need to care about acting on the wakeup source correctly, because a
      dead device shouldn't deliver wakeup signals.
      
      To this reasoning and to help users to properly manage wakeup settings,
      let's print a warning in cases someone calls device_wakeup_enable() during
      system sleep.
      Suggested-by: default avatarRafael J. Wysocki <rafael@kernel.org>
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      [ rjw: Message to be printed ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0026cef0
    • Ulf Hansson's avatar
      PM / domains: Don't skip driver's ->suspend|resume_noirq() callbacks · a935424b
      Ulf Hansson authored
      Commit 10da6542 (PM / Domains: Call driver's noirq callbacks)
      started to respect driver's noirq callbacks, but while doing that it
      also introduced a few potential problems.
      
      More precisely, in genpd_finish_suspend() and genpd_resume_noirq()
      the noirq callbacks at the driver level should be invoked, no matter
      of whether dev->power.wakeup_path is set or not.
      
      Additionally, the commit in question also made genpd_resume_noirq()
      to ignore the return value from pm_runtime_force_resume().
      
      Let's fix both these issues!
      
      Fixes: 10da6542 (PM / Domains: Call driver's noirq callbacks)
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a935424b
  4. 10 Jan, 2018 2 commits
  5. 09 Jan, 2018 7 commits
    • Rafael J. Wysocki's avatar
      PM: i2c-designware-platdrv: Optimize power management · 02e45646
      Rafael J. Wysocki authored
      Optimize the power management in i2c-designware-platdrv by making it
      set the DPM_FLAG_SMART_SUSPEND and DPM_FLAG_LEAVE_SUSPENDED which
      allows some code to be dropped from its PM callbacks.
      
      First, setting DPM_FLAG_SMART_SUSPEND causes the intel-lpss driver
      to avoid resuming i2c-designware-platdrv devices in its ->prepare
      callback, so they can stay in runtime suspend after that point even
      if the direct-complete feature is not used for them.
      
      It also causes the ACPI PM domain and the PM core to avoid invoking
      "late" and "noirq" suspend callbacks for these devices if they are
      in runtime suspend at the beginning of the "late" phase of device
      suspend during system suspend.  That guarantees dw_i2c_plat_suspend()
      to be called for a device only if it is not in runtime suspend.
      
      Moreover, it causes the device's runtime PM status to be set to
      "active" after calling dw_i2c_plat_resume() for it, so the
      driver doesn't need internal flags to avoid invoking either
      dw_i2c_plat_suspend() or dw_i2c_plat_resume() twice in a row.
      
      Second, setting DPM_FLAG_LEAVE_SUSPENDED enables the optimization
      allowing the device to stay suspended after system resume under
      suitable conditions, so again the driver doesn't need to take
      care of that by itself.
      
      Accordingly, the internal "suspended" and "skip_resume" flags
      used by the driver are not necessary any more, so drop them and
      simplify the driver's PM callbacks.
      
      Additionally, notice that dw_i2c_plat_complete() only needs to
      schedule runtime PM resume for the device if platform firmware
      has been involved in resuming the system, so make it call
      pm_resume_via_firmware() to check that.  Also make it check the
      runtime PM status of the device instead of its direct_complete
      flag which also works if the device remained suspended due to
      the DPM_FLAG_LEAVE_SUSPENDED driver flag.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
      Acked-by: default avatarWolfram Sang <wsa@the-dreams.de>
      Tested-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
      02e45646
    • Rafael J. Wysocki's avatar
      PM: i2c-designware-platdrv: Use DPM_FLAG_SMART_PREPARE · 422cb781
      Rafael J. Wysocki authored
      Modify i2c-designware-platdrv to set DPM_FLAG_SMART_PREPARE for its
      devices and return 0 from the system suspend ->prepare callback
      if the device has an ACPI companion object in order to tell the PM
      core and middle layers to avoid skipping system suspend/resume
      callbacks for the device in that case (which may be problematic,
      because the device may be accessed during suspend and resume of
      other devices via I2C operation regions then).
      
      Also the pm_runtime_suspended() check in dw_i2c_plat_prepare()
      is not necessary any more, because the core does it when setting
      power.direct_complete for the device, so drop it.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
      Acked-by: default avatarWolfram Sang <wsa@the-dreams.de>
      Tested-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
      422cb781
    • Rafael J. Wysocki's avatar
      PM / mfd: intel-lpss: Use DPM_FLAG_SMART_SUSPEND · 8425ec7f
      Rafael J. Wysocki authored
      Make the intel-lpss driver set DPM_FLAG_SMART_SUSPEND for its
      devices which will allow them to stay in runtime suspend during
      system suspend unless they need to be reconfigured for some reason.
      
      Also make it avoid resuming its child devices if they have
      DPM_FLAG_SMART_SUSPEND set to allow them to remain in runtime
      suspend during system suspend.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-for-MFD-by: default avatarLee Jones <lee.jones@linaro.org>
      Tested-by: default avatarJarkko Nikula <jarkko.nikula@linux.intel.com>
      8425ec7f
    • Rafael J. Wysocki's avatar
      PCI / PM: Use SMART_SUSPEND and LEAVE_SUSPENDED flags for PCIe ports · 877b3729
      Rafael J. Wysocki authored
      Make the PCIe port driver set DPM_FLAG_SMART_SUSPEND and
      DPM_FLAG_LEAVE_SUSPENDED for the devices handled by it to benefit
      from the opportunistic optimizations in the PCI layer enabled by
      these flags.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      877b3729
    • Ulf Hansson's avatar
      PM / wakeup: Add device_set_wakeup_path() helper to control wakeup path · cf04ce78
      Ulf Hansson authored
      During system suspend, a driver may find that the wakeup setting is
      enabled for its device and therefore configures it to deliver system
      wakeup signals.
      
      Additionally, sometimes the driver and its device, relies on some
      further consumed resource, like an irqchip or a phy for example, to
      stay powered on, as to be able to deliver system wakeup signals.
      
      In general the driver deals with this, via raising an "enable count"
      of the consumed resource or via a subsystem specific API, like
      irq_set_irq_wake() or enable|disable_irq_wake() for an irqchip.
      However, this may not be sufficient in cases when the resource's
      device may be attached to a PM domain (genpd for example) or is
      handled by a non-trivial middle layer (PCI for example).
      
      To address cases like these, the existing ->dev.power.wakeup_path
      status flag is there to help.  As a matter of fact, genpd already
      monitors the flag during system suspend and acts accordingly.
      
      However, so far it has not been clear, if anybody else but the PM
      core is allowed to set the ->dev.power.wakeup_path status flag,
      which is required to make this work.  For this reason, introduce
      a new helper function, device_set_wakeup_path() for that.
      
      Typically, a driver that manages a resource needed in the wakeup path
      should call device_set_wakeup_path() from its ->suspend() or
      ->suspend_late() callback.
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      cf04ce78
    • Ulf Hansson's avatar
      PM / core: Assign the wakeup_path status flag in __device_prepare() · 8512220c
      Ulf Hansson authored
      The PM core in the device_prepare() phase, resets the wakeup_path status
      flag to the value of device_may_wakeup(). This means if a ->prepare() or a
      ->suspend() callback for the device would update the device's wakeup
      setting, this doesn't become reflected in the wakeup_path status flag.
      
      In general this isn't a problem, because wakeup settings are not supposed
      to be changed (via for example calling device_set_wakeup_enable()) during
      any system wide suspend/resume phase.  Nevertheless there are some users,
      which can be considered as legacy, that don't conform to this behaviour.
      
      These legacy cases should be corrected, however until that is done, let's
      address the issue from the PM core, by moving the assignment of the
      wakeup_path status flag to the __device_suspend() phase and after the
      ->suspend() callback has been invoked.
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8512220c
    • Rafael J. Wysocki's avatar
      PM / wakeup: Do not fail dev_pm_attach_wake_irq() unnecessarily · 7bf4e594
      Rafael J. Wysocki authored
      Returning an error code from dev_pm_attach_wake_irq() if
      device_wakeup_attach_irq() called by it returns an error is
      pointless, because the wakeup source used by it may be deleted
      by user space via sysfs at any time and in particular right after
      dev_pm_attach_wake_irq() has returned.  Moreover, it requires
      the callers of dev_pm_attach_wake_irq() to create that wakeup
      source via device_wakeup_enable() upfront, but that obviously is
      racy with respect to the sysfs-based manipulations of it.
      
      To avoid the race, modify device_wakeup_attach_irq() to check
      that the wakeup source it is going to use is there (and return
      early otherwise), make it void (as it cannot fail after that
      change) and make dev_pm_attach_wake_irq() simply call it for
      the device unconditionally.
      Tested-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      7bf4e594
  6. 02 Jan, 2018 5 commits
    • Rafael J. Wysocki's avatar
      PM / core: Direct DPM_FLAG_LEAVE_SUSPENDED handling · 32bfa56a
      Rafael J. Wysocki authored
      Make the PM core handle DPM_FLAG_LEAVE_SUSPENDED directly for
      devices whose "noirq", "late" and "early" driver callbacks are
      invoked directly by it.
      
      Namely, make it skip all of the system-wide resume callbacks for
      such devices with DPM_FLAG_LEAVE_SUSPENDED set if they are in
      runtime suspend during the "noirq" phase of system-wide suspend
      (or analogous) transitions or the system transition under way is
      a proper suspend (rather than anything related to hibernation) and
      the device's wakeup settings are compatible with runtime PM (that
      is, the device cannot generate wakeup signals at all or it is
      allowed to wake up the system from sleep).
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      32bfa56a
    • Rafael J. Wysocki's avatar
      PM / core: Direct DPM_FLAG_SMART_SUSPEND optimization · 75e94645
      Rafael J. Wysocki authored
      Make the PM core avoid invoking the "late" and "noirq" system-wide
      suspend (or analogous) callbacks provided by device drivers directly
      for devices with DPM_FLAG_SMART_SUSPEND set that are in runtime
      suspend during the "late" and "noirq" phases of system-wide suspend
      (or analogous) transitions.  That is only done for devices without
      any middle-layer "late" and "noirq" suspend callbacks (to avoid
      confusing the middle layer if there is one).
      
      The underlying observation is that runtime PM is disabled for devices
      during the "late" and "noirq" system-wide suspend phases, so if they
      remain in runtime suspend from the "late" phase forward, it doesn't
      make sense to invoke the "late" and "noirq" callbacks provided by
      the drivers for them (arguably, the device is already suspended and
      in the right state).  Thus, if the remaining driver suspend callbacks
      are to be invoked directly by the core, they can be skipped.
      
      This change really makes it possible for, say, platform device
      drivers to re-use runtime PM suspend and resume callbacks by
      pointing ->suspend_late and ->resume_early, respectively (and
      possibly the analogous hibernation-related callback pointers too),
      to them without adding any extra "is the device already suspended?"
      type of checks to the callback routines, as long as they will be
      invoked directly by the core.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      75e94645
    • Rafael J. Wysocki's avatar
      PM / core: Add helpers for subsystem callback selection · 4fa3061a
      Rafael J. Wysocki authored
      Add helper routines to find and return a suitable subsystem callback
      during the "noirq" phases of system suspend/resume (or analogous)
      transitions as well as during the "late" phase of system suspend and
      the "early" phase of system resume (or analogous) transitions.
      
      The helpers will be called from additional sites going forward.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      4fa3061a
    • Rafael J. Wysocki's avatar
      PM / wakeup: Drop redundant check from device_init_wakeup() · 9dbc64a5
      Rafael J. Wysocki authored
      Since device_wakeup_disable() checks the device's power.can_wakeup
      flag, device_init_wakeup() doesn't need to do that before calling it,
      so drop that redundant check from device_init_wakeup().
      
      No intentional changes in functionality.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      9dbc64a5
    • Rafael J. Wysocki's avatar
      PM / wakeup: Drop redundant check from device_set_wakeup_enable() · d97c2e0d
      Rafael J. Wysocki authored
      Since both device_wakeup_enable() and device_wakeup_disable() check
      if dev is not NULL and whether or not power.can_wakeup is set for it,
      device_set_wakeup_enable() doesn't have to do that, so drop that
      check from it.
      
      No intentional changes in functionality.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      d97c2e0d
  7. 19 Dec, 2017 1 commit
  8. 16 Dec, 2017 1 commit
  9. 13 Dec, 2017 3 commits
  10. 11 Dec, 2017 3 commits
  11. 10 Dec, 2017 9 commits
    • Jeff Layton's avatar
      hpfs: don't bother with the i_version counter or f_version · 98087c05
      Jeff Layton authored
      HPFS does not set SB_I_VERSION and does not use the i_version counter
      internally.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarMikulas Patocka <mikulas@twibright.com>
      Reviewed-by: default avatarMikulas Patocka <mikulas@twibright.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      98087c05
    • Jiri Slaby's avatar
      futex: futex_wake_op, fix sign_extend32 sign bits · d70ef228
      Jiri Slaby authored
      sign_extend32 counts the sign bit parameter from 0, not from 1.  So we
      have to use "11" for 12th bit, not "12".
      
      This mistake means we have not allowed negative op and cmp args since
      commit 30d6e0a4 ("futex: Remove duplicated code and fix undefined
      behaviour") till now.
      
      Fixes: 30d6e0a4 ("futex: Remove duplicated code and fix undefined behaviour")
      Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Darren Hart <dvhart@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d70ef228
    • Linus Torvalds's avatar
      Merge tag 'for-4.15-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 51090c5d
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "This contains a few fixes (error handling, quota leak, FUA vs
        nobarrier mount option).
      
        There's one one worth mentioning separately - an off-by-one fix that
        leads to overwriting first byte of an adjacent page with 0, out of
        bounds of the memory allocated by an ioctl. This is under a privileged
        part of the ioctl, can be triggerd in some subvolume layouts"
      
      * tag 'for-4.15-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: Fix possible off-by-one in btrfs_search_path_in_tree
        Btrfs: disable FUA if mounted with nobarrier
        btrfs: fix missing error return in btrfs_drop_snapshot
        btrfs: handle errors while updating refcounts in update_ref_for_cow
        btrfs: Fix quota reservation leak on preallocated files
      51090c5d
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 9c02e060
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
      
       - A revert of all SCPI changes from the 4.15 merge window. They had
         regressions on the Amlogic platforms, and the submaintainer isn't
         around to fix these bugs due to vacation, etc. So we agreed to revert
         and revisit in next release cycle.
      
       - A series fixing a number of bugs for ARM CCN interconnect, around
         module unload, smp_processor_id() in preemptable context, and fixing
         some memory allocation failure checks.
      
       - A handful of devicetree fixes for different platforms, fixing
         warnings and errors that were previously ignored by the compiler.
      
       - The usual set of mostly minor fixes for different platforms.
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (42 commits)
        ARM64: dts: meson-gx: fix UART pclk clock name
        ARM: omap2: hide omap3_save_secure_ram on non-OMAP3 builds
        arm: dts: nspire: Add missing #phy-cells to usb-nop-xceiv
        ARM: dts: Fix dm814x missing phy-cells property
        ARM: dts: Fix elm interrupt compiler warning
        bus: arm-ccn: fix module unloading Error: Removing state 147 which has instances left.
        bus: arm-cci: Fix use of smp_processor_id() in preemptible context
        bus: arm-ccn: Fix use of smp_processor_id() in preemptible context
        bus: arm-ccn: Simplify code
        bus: arm-ccn: Check memory allocation failure
        bus: arm-ccn: constify attribute_group structures.
        firmware: arm_scpi: Revert updates made during v4.15 merge window
        arm: dts: marvell: Add missing #phy-cells to usb-nop-xceiv
        arm64: dts: sort vendor subdirectories in Makefile alphabetically
        meson-gx-socinfo: Fix package id parsing
        ARM: meson: fix spelling mistake: "Couln't" -> "Couldn't"
        ARM: dts: meson: fix the memory region of the GPIO interrupt controller
        ARM: dts: meson: correct the sort order for the the gpio_intc node
        MAINTAINERS: exclude other Socionext SoC DT files from ARM/UNIPHIER entry
        arm64: dts: uniphier: remove unnecessary interrupt-parent
        ...
      9c02e060
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · c465fc11
      Linus Torvalds authored
      Pull KVM fixes from Radim Krčmář:
       "ARM:
         - A number of issues in the vgic discovered using SMATCH
         - A bit one-off calculation in out stage base address mask (32-bit
           and 64-bit)
         - Fixes to single-step debugging instructions that trap for other
           reasons such as MMMIO aborts
         - Printing unavailable hyp mode as error
         - Potential spinlock deadlock in the vgic
         - Avoid calling vgic vcpu free more than once
         - Broken bit calculation for big endian systems
      
       s390:
         - SPDX tags
         - Fence storage key accesses from problem state
         - Make sure that irq_state.flags is not used in the future
      
        x86:
         - Intercept port 0x80 accesses to prevent host instability (CVE)
         - Use userspace FPU context for guest FPU (mainly an optimization
           that fixes a double use of kernel FPU)
         - Do not leak one page per module load
         - Flush APIC page address cache from MMU invalidation notifiers"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (28 commits)
        KVM: x86: fix APIC page invalidation
        KVM: s390: Fix skey emulation permission check
        KVM: s390: mark irq_state.flags as non-usable
        KVM: s390: Remove redundant license text
        KVM: s390: add SPDX identifiers to the remaining files
        KVM: VMX: fix page leak in hardware_setup()
        KVM: VMX: remove I/O port 0x80 bypass on Intel hosts
        x86,kvm: remove KVM emulator get_fpu / put_fpu
        x86,kvm: move qemu/guest FPU switching out to vcpu_run
        KVM: arm/arm64: Fix broken GICH_ELRSR big endian conversion
        KVM: arm/arm64: kvm_arch_destroy_vm cleanups
        KVM: arm/arm64: Fix spinlock acquisition in vgic_set_owner
        kvm: arm: don't treat unavailable HYP mode as an error
        KVM: arm/arm64: Avoid attempting to load timer vgic state without a vgic
        kvm: arm64: handle single-step of hyp emulated mmio instructions
        kvm: arm64: handle single-step during SError exceptions
        kvm: arm64: handle single-step of userspace mmio instructions
        kvm: arm64: handle single-stepping trapped instructions
        KVM: arm/arm64: debug: Introduce helper for single-step
        arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one
        ...
      c465fc11
    • Olof Johansson's avatar
      Merge branch 'fixes' into for-next · 8be0b988
      Olof Johansson authored
      * fixes:
        ARM64: dts: meson-gx: fix UART pclk clock name
        ARM: dts: Fix dm814x missing phy-cells property
        ARM: dts: Fix elm interrupt compiler warning
        bus: arm-ccn: fix module unloading Error: Removing state 147 which has instances left.
        bus: arm-cci: Fix use of smp_processor_id() in preemptible context
        bus: arm-ccn: Fix use of smp_processor_id() in preemptible context
        bus: arm-ccn: Simplify code
        bus: arm-ccn: Check memory allocation failure
        bus: arm-ccn: constify attribute_group structures.
        meson-gx-socinfo: Fix package id parsing
        ARM: meson: fix spelling mistake: "Couln't" -> "Couldn't"
        ARM: dts: meson: fix the memory region of the GPIO interrupt controller
        ARM: dts: meson: correct the sort order for the the gpio_intc node
      8be0b988
    • Olof Johansson's avatar
      Merge tag 'amlogic-fixes-1' of... · ce39882e
      Olof Johansson authored
      Merge tag 'amlogic-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into fixes
      
      Amlogic fixes for v4.15-rc
      - GPIO interrupt fixes
      - socinfo fix for GX series
      - fix typo
      
      * tag 'amlogic-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
        ARM64: dts: meson-gx: fix UART pclk clock name
        meson-gx-socinfo: Fix package id parsing
        ARM: meson: fix spelling mistake: "Couln't" -> "Couldn't"
        ARM: dts: meson: fix the memory region of the GPIO interrupt controller
        ARM: dts: meson: correct the sort order for the the gpio_intc node
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      ce39882e
    • Olof Johansson's avatar
      Merge tag 'ccn/fixes-for-4.15' of git://git.linaro.org/people/pawel.moll/linux into fixes · 3dda7f63
      Olof Johansson authored
      bus: ARM CCN and CCI PMU driver fixes
      
      This is a bunch of fixes CCN and (guest starring this time) CCI drivers.
      
      * Check for potential of failed allocation for the driver name string
      * Manage CPU ID properly at allocation (both CCN and CCI)
      * Fix module unload warnings related to objects release order
      * Small improvements like using allocating printfs and proper
        attributes constification
      
      The one fixing potential issues have been cc-ed to stable.
      
      * tag 'ccn/fixes-for-4.15' of git://git.linaro.org/people/pawel.moll/linux:
        bus: arm-ccn: fix module unloading Error: Removing state 147 which has instances left.
        bus: arm-cci: Fix use of smp_processor_id() in preemptible context
        bus: arm-ccn: Fix use of smp_processor_id() in preemptible context
        bus: arm-ccn: Simplify code
        bus: arm-ccn: Check memory allocation failure
        bus: arm-ccn: constify attribute_group structures.
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      3dda7f63
    • Olof Johansson's avatar
      Merge tag 'omap-for-v4.15/fixes-dt-warnings' of... · 69b8df5d
      Olof Johansson authored
      Merge tag 'omap-for-v4.15/fixes-dt-warnings' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Two fixes for dts compiler warnings
      
      These recently started showing up with better dtc checks being
      introduced.
      
      * tag 'omap-for-v4.15/fixes-dt-warnings' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: dts: Fix dm814x missing phy-cells property
        ARM: dts: Fix elm interrupt compiler warning
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      69b8df5d
  12. 09 Dec, 2017 1 commit