1. 12 10月, 2008 1 次提交
  2. 07 9月, 2008 1 次提交
    • J
      x86: check for and defend against BIOS memory corruption · 5394f80f
      Jeremy Fitzhardinge 提交于
      Some BIOSes have been observed to corrupt memory in the low 64k.  This
      change:
       - Reserves all memory which does not have to be in that area, to
         prevent it from being used as general memory by the kernel.  Things
         like the SMP trampoline are still in the memory, however.
       - Clears the reserved memory so we can observe changes to it.
       - Adds a function check_for_bios_corruption() which checks and reports on
         memory becoming unexpectedly non-zero.  Currently it's called in the
         x86 fault handler, and the powermanagement debug output.
      Signed-off-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      5394f80f
  3. 22 8月, 2008 2 次提交
  4. 13 6月, 2008 1 次提交
    • R
      Suspend-related patches for 2.6.27 · d8f3de0d
      Rafael J. Wysocki 提交于
      ACPI PM: Add possibility to change suspend sequence
      
      There are some systems out there that don't work correctly with
      our current suspend/hibernation code ordering.  Provide a workaround
      for these systems allowing them to pass 'acpi_sleep=old_ordering' in
      the kernel command line so that it will use the pre-ACPI 2.0 ("old")
      suspend code ordering.
      
      Unfortunately, this requires us to add a platform hook to the
      resuming of devices for recovering the platform in case one of the
      device drivers' .suspend() routines returns error code.  Namely,
      ACPI 1.0 specifies that _PTS should be called before suspending
      devices, but _WAK still should be called before resuming them in
      order to undo the changes made by _PTS.  However, if there is an
      error during suspending devices, they are automatically resumed
      without returning control to the PM core, so the _WAK has to be
      called from within device_resume() in that cases.
      
      The patch also reorders and refactors the ACPI suspend/hibernation
      code to avoid duplication as far as reasonably possible.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@suse.cz>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      d8f3de0d
  5. 11 6月, 2008 1 次提交
    • R
      Introduce new top level suspend and hibernation callbacks · 1eede070
      Rafael J. Wysocki 提交于
      Introduce 'struct pm_ops' and 'struct pm_ext_ops' ('ext' meaning
      'extended') representing suspend and hibernation operations for bus
      types, device classes, device types and device drivers.
      
      Modify the PM core to use 'struct pm_ops' and 'struct pm_ext_ops'
      objects, if defined, instead of the ->suspend(), ->resume(),
      ->suspend_late(), and ->resume_early() callbacks (the old callbacks
      will be considered as legacy and gradually phased out).
      
      The main purpose of doing this is to separate suspend (aka S2RAM and
      standby) callbacks from hibernation callbacks in such a way that the
      new callbacks won't take arguments and the semantics of each of them
      will be clearly specified.  This has been requested for multiple
      times by many people, including Linus himself, and the reason is that
      within the current scheme if ->resume() is called, for example, it's
      difficult to say why it's been called (ie. is it a resume from RAM or
      from hibernation or a suspend/hibernation failure etc.?).
      
      The second purpose is to make the suspend/hibernation callbacks more
      flexible so that device drivers can handle more than they can within
      the current scheme.  For example, some drivers may need to prevent
      new children of the device from being registered before their
      ->suspend() callbacks are executed or they may want to carry out some
      operations requiring the availability of some other devices, not
      directly bound via the parent-child relationship, in order to prepare
      for the execution of ->suspend(), etc.
      
      Ultimately, we'd like to stop using the freezing of tasks for suspend
      and therefore the drivers' suspend/hibernation code will have to take
      care of the handling of the user space during suspend/hibernation.
      That, in turn, would be difficult within the current scheme, without
      the new ->prepare() and ->complete() callbacks.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      1eede070
  6. 16 5月, 2008 1 次提交
  7. 23 4月, 2008 1 次提交
  8. 20 4月, 2008 5 次提交
    • R
      PM: Remove destroy_suspended_device() · b844eba2
      Rafael J. Wysocki 提交于
      After 2.6.24 there was a plan to make the PM core acquire all device
      semaphores during a suspend/hibernation to protect itself from
      concurrent operations involving device objects.  That proved to be
      too heavy-handed and we found a better way to achieve the goal, but
      before it happened, we had introduced the functions
      device_pm_schedule_removal() and destroy_suspended_device() to allow
      drivers to "safely" destroy a suspended device and we had adapted some
      drivers to use them.  Now that these functions are no longer necessary,
      it seems reasonable to remove them and modify their users to use the
      normal device unregistration instead.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b844eba2
    • A
      PM: Make wakeup flags available whenever CONFIG_PM is set · d288e47c
      Alan Stern 提交于
      The various wakeup flags and their accessor macros in struct
      dev_pm_info should be available whenever CONFIG_PM is enabled, not
      just when CONFIG_PM_SLEEP is on.  Otherwise remote wakeup won't always
      be configurable for runtime power management.  This patch (as1056b)
      fixes the oversight.
      
      David Brownell adds:
      	More accurately, fixes the "regression" ... as noted sometime
      	last summer, after 296699de
      	introduced CONFIG_SUSPEND.  But that didn't make the regression
      	list for that kernel, ergo the delay in fixing it.
      
      [rjw: rebased]
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d288e47c
    • R
      Driver core: Call device_pm_add() after bus_add_device() in device_add() · 57eee3d2
      Rafael J. Wysocki 提交于
      Include dpm_sysfs_add() into device_pm_add(), in analogy with
      device_pm_remove(), and modify device_add() to call the latter after
      bus_add_device(), to avoid situations in which the PM core may
      attempt to suspend a device the registration of which has not been
      successful.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      57eee3d2
    • R
      PM: Handle device registrations during suspend/resume · 58aca232
      Rafael J. Wysocki 提交于
      Modify the PM core to protect its data structures, specifically the
      dpm_active list, from being corrupted if a child of the currently
      suspending device is registered concurrently with its ->suspend()
      callback.  In that case, since the new device (the child) is added
      to dpm_active after its parent, the PM core will attempt to
      suspend it after the parent, which is wrong.
      
      Introduce a new member of struct dev_pm_info, called 'sleeping',
      and use it to check if the parent of the device being added to
      dpm_active has been suspended, in which case the device registration
      fails.  Also, use 'sleeping' for checking if the ordering of devices
      on dpm_active is correct.
      
      Introduce variable 'all_sleeping' that will be set to 'true' once all
      devices have been suspended and make new device registrations fail
      until 'all_sleeping' is reset to 'false', in order to avoid having
      unsuspended devices around while the system is going into a sleep state.
      
      Remove pm_sleep_rwsem which is not necessary any more.
      
      Special thanks to Alan Stern for discussions and suggestions that
      lead to the creation of this patch.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      58aca232
    • P
      power_state: remove it from driver core · 35d313b8
      Pavel Machek 提交于
      power_state is scheduled for removal, and it is used only for debug
      prints by driver core. Remove it.
      Signed-off-by: NPavel Machek <pavel@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      35d313b8
  9. 05 3月, 2008 2 次提交
  10. 22 2月, 2008 2 次提交
  11. 21 2月, 2008 1 次提交
  12. 03 2月, 2008 1 次提交
  13. 25 1月, 2008 1 次提交
    • R
      PM: Acquire device locks on suspend · 775b64d2
      Rafael J. Wysocki 提交于
      This patch reorganizes the way suspend and resume notifications are
      sent to drivers.  The major changes are that now the PM core acquires
      every device semaphore before calling the methods, and calls to
      device_add() during suspends will fail, while calls to device_del()
      during suspends will block.
      
      It also provides a way to safely remove a suspended device with the
      help of the PM core, by using the device_pm_schedule_removal() callback
      introduced specifically for this purpose, and updates two drivers (msr
      and cpuid) that need to use it.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      775b64d2
  14. 29 11月, 2007 1 次提交
  15. 13 10月, 2007 1 次提交
  16. 12 7月, 2007 2 次提交
  17. 28 4月, 2007 1 次提交
  18. 12 4月, 2007 1 次提交
  19. 01 7月, 2006 1 次提交
  20. 29 10月, 2005 1 次提交
    • D
      [PATCH] one less word in struct device · e9b7bd4e
      David Brownell 提交于
      This saves a word from "struct device" ... there's a refcounting mechanism
      stub that's rather ineffective (the values are never even tested!), which
      can safely be deleted.  With this patch it uses normal device refcounting,
      so any potential users of the pm_parent mechanism will be more correct.
      (That mechanism is actually unusable for now though; it does nothing.)
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/base/power/main.c |   26 +++-----------------------
       include/linux/pm.h        |    1 -
       2 files changed, 3 insertions(+), 24 deletions(-)
      e9b7bd4e
  21. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4