1. Feb 24, 2008
    • Hugh Dickins's avatar
      percpu: fix DEBUG_PREEMPT per_cpu checking · 1e835278
      Hugh Dickins authored
      
      
      2.6.25-rc1 percpu changes broke CONFIG_DEBUG_PREEMPT's per_cpu checking
      on several architectures.  On s390, sparc64 and x86 it's been weakened to
      not checking at all; whereas on powerpc64 it's become too strict, issuing
      warnings from __raw_get_cpu_var in io_schedule and init_timer for example.
      
      Fix this by weakening powerpc's __my_cpu_offset to use the non-checking
      local_paca instead of get_paca (which itself contains such a check);
      and strengthening the generic my_cpu_offset to go the old slow way via
      smp_processor_id when CONFIG_DEBUG_PREEMPT (debug_smp_processor_id is
      where all the knowledge of what's correct when lives).
      
      Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
      Reviewed-by: default avatarMike Travis <travis@sgi.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1e835278
    • Rafael J. Wysocki's avatar
      PM: Introduce PM_EVENT_HIBERNATE callback state · 3a2d5b70
      Rafael J. Wysocki authored
      During the last step of hibernation in the "platform" mode (with the
      help of ACPI) we use the suspend code, including the devices'
      ->suspend() methods, to prepare the system for entering the ACPI S4
      system sleep state.
      
      But at least for some devices the operations performed by the
      ->suspend() callback in that case must be different from its operations
      during regular suspend.
      
      For this reason, introduce the new PM event type PM_EVENT_HIBERNATE and
      pass it to the device drivers' ->suspend() methods during the last phase
      of hibernation, so that they can distinguish this case and handle it as
      appropriate.  Modify the drivers that handle PM_EVENT_SUSPEND in a
      special way and need to handle PM_EVENT_HIBERNATE in the same way.
      
      These changes are necessary to fix a hibernation regression related
      to the i915 driver (ref. http://lkml.org/lkml/2008/2/22/488
      
      ).
      
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Tested-by: default avatarJeff Chua <jeff.chua.linux@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3a2d5b70
  2. Feb 23, 2008
  3. Feb 22, 2008