1. 08 5月, 2007 3 次提交
  2. 03 5月, 2007 3 次提交
    • G
      remove "struct subsystem" as it is no longer needed · 823bccfc
      Greg Kroah-Hartman 提交于
      We need to work on cleaning up the relationship between kobjects, ksets and
      ktypes.  The removal of 'struct subsystem' is the first step of this,
      especially as it is not really needed at all.
      
      Thanks to Kay for fixing the bugs in this patch.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      823bccfc
    • V
      [PATCH] x86-64: do not use virt_to_page on kernel data address · 1b29c164
      Vivek Goyal 提交于
      o virt_to_page() call should be used on kernel linear addresses and not
        on kernel text and data addresses. Swsusp code uses it on kernel data
        (statically allocated swsusp_header).
      
      o Allocate swsusp_header dynamically so that virt_to_page() can be used
        safely.
      
      o I am changing this because in next few patches, __pa() on x86_64 will
        no longer support kernel text and data addresses and hibernation breaks.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      1b29c164
    • V
      [PATCH] x86: Move swsusp __pa() dependent code to arch portion · 49c3df6a
      Vivek Goyal 提交于
      o __pa() should be used only on kernel linearly mapped virtual addresses
        and not on kernel text and data addresses.
      
      o Hibernation code needs to determine the physical address associated
        with kernel symbol to mark a section boundary which contains pages which
        don't have to be saved and restored during hibernate/resume operation.
      
      o Move this piece of code in arch dependent section. So that architectures
        which don't have kernel text/data mapped into kernel linearly mapped
        region can come up with their own ways of determining physical addresses
        associated with a kernel text.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      49c3df6a
  3. 01 5月, 2007 4 次提交
  4. 28 4月, 2007 1 次提交
  5. 05 4月, 2007 1 次提交
  6. 28 3月, 2007 1 次提交
    • R
      [PATCH] Revert "swsusp: disable nonboot CPUs before entering platform suspend" · 436ce716
      Rafael J. Wysocki 提交于
      This reverts commit 94985134 and
      insteads removes the WARN_ON() that caused that commit in the first
      place.
      
      The problem is that we call disable_nonboot_cpus() in swsusp before
      powering down the system in order to avoid triggering the WARN_ON()
      in arch/x86_64/kernel/acpi/sleep.c:init_low_mapping() and this doesn't
      work well on Thomas' system.
      
      So instead, remove the WARN_ON() in arch/x86_64/kernel/acpi/sleep.c:
      init_low_mapping(), which triggers every time during the suspend to disk
      in the platform mode, as the potential problem it is related to doesn't
      seem to occur in practice.
      
      [ I think we might want to disallow the case of multiple users of that
        mm, or something.  Normally, playing with the current process page
        tables on the current CPU should be fine as long as we don't have
        other threads using those tables at the same time..
      
        Anyway, not pretty, but better than the warning or the lockup - Linus ]
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      436ce716
  7. 23 3月, 2007 2 次提交
  8. 17 3月, 2007 3 次提交
  9. 07 3月, 2007 1 次提交
  10. 24 2月, 2007 1 次提交
  11. 12 2月, 2007 7 次提交
  12. 10 2月, 2007 1 次提交
  13. 06 1月, 2007 1 次提交
  14. 14 12月, 2006 3 次提交
    • D
      Driver core: deprecate PM_LEGACY, default it to N · f89bce3d
      David Brownell 提交于
      Deprecate the old "legacy" PM API, and more importantly default it to "n".
      Virtually nothing in-tree uses it any more.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f89bce3d
    • R
      [PATCH] PM: Fix SMP races in the freezer · 8a102eed
      Rafael J. Wysocki 提交于
      Currently, to tell a task that it should go to the refrigerator, we set the
      PF_FREEZE flag for it and send a fake signal to it.  Unfortunately there
      are two SMP-related problems with this approach.  First, a task running on
      another CPU may be updating its flags while the freezer attempts to set
      PF_FREEZE for it and this may leave the task's flags in an inconsistent
      state.  Second, there is a potential race between freeze_process() and
      refrigerator() in which freeze_process() running on one CPU is reading a
      task's PF_FREEZE flag while refrigerator() running on another CPU has just
      set PF_FROZEN for the same task and attempts to reset PF_FREEZE for it.  If
      the refrigerator wins the race, freeze_process() will state that PF_FREEZE
      hasn't been set for the task and will set it unnecessarily, so the task
      will go to the refrigerator once again after it's been thawed.
      
      To solve first of these problems we need to stop using PF_FREEZE to tell
      tasks that they should go to the refrigerator.  Instead, we can introduce a
      special TIF_*** flag and use it for this purpose, since it is allowed to
      change the other tasks' TIF_*** flags and there are special calls for it.
      
      To avoid the freeze_process()-refrigerator() race we can make
      freeze_process() to always check the task's PF_FROZEN flag after it's read
      its "freeze" flag.  We should also make sure that refrigerator() will
      always reset the task's "freeze" flag after it's set PF_FROZEN for it.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8a102eed
    • R
      [PATCH] PM: Fix freezing of stopped tasks · 3df494a3
      Rafael J. Wysocki 提交于
      Currently, if a task is stopped (ie.  it's in the TASK_STOPPED state), it
      is considered by the freezer as unfreezeable.  However, there may be a race
      between the freezer and the delivery of the continuation signal to the task
      resulting in the task running after we have finished freezing the other
      tasks.  This, in turn, may lead to undesirable effects up to and including
      data corruption.
      
      To prevent this from happening we first need to make the freezer consider
      stopped tasks as freezeable.  For this purpose we need to make freezeable()
      stop returning 0 for these tasks and we need to force them to enter the
      refrigerator.  However, if there's no continuation signal in the meantime,
      the stopped tasks should remain stopped after all processes have been
      thawed, so we need to send an additional SIGSTOP to each of them before
      waking it up.
      
      Also, a stopped task that has just been woken up should first check if
      there's a freezing request for it and go to the refrigerator if that's the
      case.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3df494a3
  15. 08 12月, 2006 8 次提交