1. 10 Oct, 2007 20 commits
    • Len Brown's avatar
      Pull acpica into test branch · 00a2b433
      Len Brown authored
      00a2b433
    • Alexey Starikovskiy's avatar
      ACPICA: hw: Don't carry spinlock over suspend · 2d571b33
      Alexey Starikovskiy authored
      ACPI uses acpi_get_register() in order to get into suspend.
      This function is guarded by acpi_gbl_hardware_lock, which will be carried
      into resume phase.
      At resume interrupts are enabled and first ACPI interrupt deadlocks on this
      lock.
      Solution seems to be to not lock register read, as there are no concurrent
      activity at this point.
      
      Reference: http://bugzilla.kernel.org/show_bug.cgi?id=7499Signed-off-by: default avatarAlexey Starikovskiy <astarikovskiy@suse.de>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      2d571b33
    • Alexey Starikovskiy's avatar
      ACPICA: hw: remove use_lock flag from acpi_hw_register_{read, write} · d30dc9ab
      Alexey Starikovskiy authored
      use_lock flag is used once for acpi_hw_register_read, and never for
      acpi_hw_register_write. It will greatly simplify understanding of
      locking if we just drop this use_lock altogether, and wrap the only call
      to ..._read in lock/unlock.
      Signed-off-by: default avatarAlexey Starikovskiy <astarikovskiy@suse.de>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      d30dc9ab
    • Len Brown's avatar
      Pull cpuidle into test branch · de85871a
      Len Brown authored
      de85871a
    • Len Brown's avatar
      Pull bugzilla-8709 into release branch · 731aa5fd
      Len Brown authored
      731aa5fd
    • Len Brown's avatar
      Pull bugzilla-292300 into release branch · 27345a51
      Len Brown authored
      27345a51
    • Len Brown's avatar
      Pull battery-sbs-ac into release branch · e270051d
      Len Brown authored
      e270051d
    • Len Brown's avatar
      Pull thermal into release branch · a2883dfa
      Len Brown authored
      a2883dfa
    • Len Brown's avatar
      Pull video into release branch · 73a855f7
      Len Brown authored
      Conflicts:
      
      	drivers/acpi/video.c
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      73a855f7
    • Len Brown's avatar
      Pull fujitsu-v3 into release branch · 194e3d17
      Len Brown authored
      194e3d17
    • Len Brown's avatar
      Pull thinkpad into release branch · bf0a40b7
      Len Brown authored
      bf0a40b7
    • Len Brown's avatar
      Pull sony-2.6.24 into release branch · 2cde4afa
      Len Brown authored
      2cde4afa
    • Len Brown's avatar
      Pull suspend into release branch · e67c5d8d
      Len Brown authored
      e67c5d8d
    • Len Brown's avatar
      Pull randconfig into release branch · 67e74fdd
      Len Brown authored
      67e74fdd
    • Len Brown's avatar
      ACPI: cpuidle: port idle timer suspend/resume workaround to cpuidle · e196441b
      Len Brown authored
      Some timers stop during C2 and C3, and so there are various
      generations of timer broadcast workarounds to deal with that.
      But that (already complex) code gets confused during suspend.
      
      As it is unlikely that deep C-states would save much power
      during the actual suspend/resume process anyway, deep C-states
      were disabled via the addition of .suspend/.resume hooks
      in to the ACPI processor driver.
      
      Here that workaround is ported to the cpuidle version of
      the ACPI idle loop.  Technically, ACPI could un-register
      itself from cpuidle on .suspend, but that code path
      is currently quite cumbersome.  So instead,
      we simply invoke C1 from the C2 and C3 handlers
      for the duration of .suspend/.resume.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      e196441b
    • Rafael J. Wysocki's avatar
      ACPI: clean up acpi_enter_sleep_state_prep · 6cffd466
      Rafael J. Wysocki authored
      Remove some redundant code from acpi_enter_sleep_state_prep() and clean up
      a comment in there.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      6cffd466
    • Rafael J. Wysocki's avatar
      Hibernation: Make sure that ACPI is enabled in acpi_hibernation_finish · 8a0bb736
      Rafael J. Wysocki authored
      If the BIOS does not enable ACPI and the "acpi=off" command line parameter
      is passed to the boot kernel, ACPI may be disabled when the (restored)
      image kernel attempts to execute acpi_hibernation_finish().  To prevent
      this from happening we can call acpi_enable() from
      acpi_hibernation_finish() (if ACPI is already enabled, this will have no
      effect).
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      8a0bb736
    • Andrew Morton's avatar
      ACPI: suppress uninitialized var warning · 8ab7367f
      Andrew Morton authored
      drivers/acpi/tables/tbutils.c: In function `acpi_tb_parse_root_table':
      drivers/acpi/tables/tbutils.c:403: warning: `rsdt_address' may be used uninitialized in this function
      Reported-by: default avatarUwe Bugla <uwe.bugla@gmx.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      8ab7367f
    • Len Brown's avatar
      cpuidle: consolidate 2.6.22 cpuidle branch into one patch · 4f86d3a8
      Len Brown authored
      commit e5a16b1f9eec0af7cfa0830304b41c1c0833cf9f
      Author: Len Brown <len.brown@intel.com>
      Date:   Tue Oct 2 23:44:44 2007 -0400
      
          cpuidle: shrink diff
      
          processor_idle.c |  440 +++++++++++++++++++++++++++++++++++++++++--
          1 file changed, 429 insertions(+), 11 deletions(-)
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit dfbb9d5aedfb18848a3e0d6f6e3e4969febb209c
      Author: Len Brown <len.brown@intel.com>
      Date:   Wed Sep 26 02:17:55 2007 -0400
      
          cpuidle: reduce diff size
      
          Reduces the cpuidle processor_idle.c diff vs 2.6.22 from this
           processor_idle.c | 2006 ++++++++++++++++++++++++++-----------------
           1 file changed, 1219 insertions(+), 787 deletions(-)
      
          to this:
           processor_idle.c |  502 +++++++++++++++++++++++++++++++++++++++----
           1 file changed, 458 insertions(+), 44 deletions(-)
      
          ...for the purpose of making the cpuilde patch less invasive
          and easier to review.
      
          no functional changes.  build tested only.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 889172fc915f5a7fe20f35b133cbd205ce69bf6c
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Sep 13 13:40:05 2007 -0700
      
          cpuidle: Retain old ACPI policy for !CONFIG_CPU_IDLE
      
          Retain the old policy in processor_idle, so that when CPU_IDLE is not
          configured, old C-state policy will still be used. This provides a
          clean gradual migration path from old ACPI policy to new cpuidle
          based policy.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 9544a8181edc7ecc33b3bfd69271571f98ed08bc
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Sep 13 13:39:17 2007 -0700
      
          cpuidle: Configure governors by default
      
          Quoting Len "Do not give an option to users to shoot themselves in the foot".
      
          Remove the configurability of ladder and menu governors as they are
          needed for default policy of cpuidle. That way users will not be able to
          have cpuidle without any policy loosing all C-state power savings.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 8975059a2c1e56cfe83d1bcf031bcf4cb39be743
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:27:07 2007 -0400
      
          CPUIDLE: load ACPI properly when CPUIDLE is disabled
      
          Change the registration return codes for when CPUIDLE
          support is not compiled into the kernel.  As a result, the ACPI
          processor driver will load properly even if CPUIDLE is unavailable.
          However, it may be possible to cleanup the ACPI processor driver further
          and eliminate some dead code paths.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Acked-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit e0322e2b58dd1b12ec669bf84693efe0dc2414a8
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:26:06 2007 -0400
      
          CPUIDLE: remove cpuidle_get_bm_activity()
      
          Remove cpuidle_get_bm_activity() and updates governors
          accordingly.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Acked-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 18a6e770d5c82ba26653e53d240caa617e09e9ab
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:25:58 2007 -0400
      
          CPUIDLE: max_cstate fix
      
          Currently max_cstate is limited to 0, resulting in no idle processor
          power management on ACPI platforms.  This patch restores the value to
          the array size.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Acked-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 1fdc0887286179b40ce24bcdbde663172e205ef0
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:25:40 2007 -0400
      
          CPUIDLE: handle BM detection inside the ACPI Processor driver
      
          Update the ACPI processor driver to detect BM activity and
          limit state entry depth internally, rather than exposing such
          requirements to CPUIDLE.  As a result, CPUIDLE can drop this
          ACPI-specific interface and become more platform independent.  BM
          activity is now handled much more aggressively than it was in the
          original implementation, so some testing coverage may be needed to
          verify that this doesn't introduce any DMA buffer under-run issues.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Acked-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 0ef38840db666f48e3cdd2b769da676c57228dd9
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:25:14 2007 -0400
      
          CPUIDLE: menu governor updates
      
          Tweak the menu governor to more effectively handle non-timer
          break events.  Non-timer break events are detected by comparing the
          actual sleep time to the expected sleep time.  In future revisions, it
          may be more reliable to use the timer data structures directly.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Acked-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit bb4d74fca63fa96cf3ace644b15ae0f12b7df5a1
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:24:40 2007 -0400
      
          CPUIDLE: fix 'current_governor' sysfs entry
      
          Allow the "current_governor" sysfs entry to properly handle
          input terminated with '\n'.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Acked-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit df3c71559bb69b125f1a48971bf0d17f78bbdf47
      Author: Len Brown <len.brown@intel.com>
      Date:   Sun Aug 12 02:00:45 2007 -0400
      
          cpuidle: fix IA64 build (again)
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit a02064579e3f9530fd31baae16b1fc46b5a7bca8
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Sun Aug 12 01:39:27 2007 -0400
      
          cpuidle: Remove support for runtime changing of max_cstate
      
          Remove support for runtime changeability of max_cstate. Drivers can use
          use latency APIs.
      
          max_cstate can still be used as a boot time option and dmi override.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 0912a44b13adf22f5e3f607d263aed23b4910d7e
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Sun Aug 12 01:39:16 2007 -0400
      
          cpuidle: Remove ACPI cstate_limit calls from ipw2100
      
          ipw2100 already has code to use accetable_latency interfaces to limit the
          C-state. Remove the calls to acpi_set_cstate_limit and acpi_get_cstate_limit
          as they are redundant.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit c649a76e76be6bff1fd770d0a775798813a3f6e0
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Sun Aug 12 01:35:39 2007 -0400
      
          cpuidle: compile fix for pause and resume functions
      
          Fix the compilation failure when cpuidle is not compiled in.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Acked-by: default avatarAdam Belay <adam.belay@novell.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 2305a5920fb8ee6ccec1c62ade05aa8351091d71
      Author: Adam Belay <abelay@novell.com>
      Date:   Thu Jul 19 00:49:00 2007 -0400
      
          cpuidle: re-write
      
          Some portions have been rewritten to make the code cleaner and lighter
          weight.  The following is a list of changes:
      
          1.) the state name is now included in the sysfs interface
          2.) detection, hotplug, and available state modifications are handled by
          CPUIDLE drivers directly
          3.) the CPUIDLE idle handler is only ever installed when at least one
          cpuidle_device is enabled and ready
          4.) the menu governor BM code no longer overflows
          5.) the sysfs attributes are now printed as unsigned integers, avoiding
          negative values
          6.) a variety of other small cleanups
      
          Also, Idle drivers are no longer swappable during runtime through the
          CPUIDLE sysfs inteface.  On i386 and x86_64 most idle handlers (e.g.
          poll, mwait, halt, etc.) don't benefit from an infrastructure that
          supports multiple states, so I think using a more general case idle
          handler selection mechanism would be cleaner.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Acked-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Acked-by: default avatarShaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit df25b6b56955714e6e24b574d88d1fd11f0c3ee5
      Author: Len Brown <len.brown@intel.com>
      Date:   Tue Jul 24 17:08:21 2007 -0400
      
          cpuidle: fix IA64 buid
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit fd6ada4c14488755ff7068860078c437431fbccd
      Author: Adrian Bunk <bunk@stusta.de>
      Date:   Mon Jul 9 11:33:13 2007 -0700
      
          cpuidle: static
      
          make cpuidle_replace_governor() static
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
          Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit c1d4a2cebcadf2429c0c72e1d29aa2a9684c32e0
      Author: Adrian Bunk <bunk@stusta.de>
      Date:   Tue Jul 3 00:54:40 2007 -0400
      
          cpuidle: static
      
          This patch makes the needlessly global struct menu_governor static.
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit dbf8780c6e8d572c2c273da97ed1cca7608fd999
      Author: Andrew Morton <akpm@linux-foundation.org>
      Date:   Tue Jul 3 00:49:14 2007 -0400
      
          export symbol tick_nohz_get_sleep_length
      
          ERROR: "tick_nohz_get_sleep_length" [drivers/cpuidle/governors/menu.ko] undefined!
          ERROR: "tick_nohz_get_idle_jiffies" [drivers/cpuidle/governors/menu.ko] undefined!
      
          And please be sure to get your changes to core kernel suitably reviewed.
      
          Cc: Adam Belay <abelay@novell.com>
          Cc: Venki Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Ingo Molnar <mingo@elte.hu>
          Cc: Thomas Gleixner <tglx@linutronix.de>
          Cc: john stultz <johnstul@us.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 29f0e248e7017be15f99febf9143a2cef00b2961
      Author: Andrew Morton <akpm@linux-foundation.org>
      Date:   Tue Jul 3 00:43:04 2007 -0400
      
          tick.h needs hrtimer.h
      
          It uses hrtimers.
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit e40cede7d63a029e92712a3fe02faee60cc38fb4
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:40:34 2007 -0400
      
          cpuidle: first round of documentation updates
      
          Documentation changes based on Pavel's feedback.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 83b42be2efece386976507555c29e7773a0dfcd1
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:39:25 2007 -0400
      
          cpuidle: add rating to the governors and pick the one with highest rating by default
      
          Introduce a governor rating scheme to pick the right governor by default.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit d2a74b8c5e8f22def4709330d4bfc4a29209b71c
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:38:08 2007 -0400
      
          cpuidle: make cpuidle sysfs driver governor switch off by default
      
          Make default cpuidle sysfs to show current_governor and current_driver in
          read-only mode.  More elaborate available_governors and available_drivers with
          writeable current_governor and current_driver interface only appear with
          "cpuidle_sysfs_switch" boot parameter.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 1f60a0e80bf83cf6b55c8845bbe5596ed8f6307b
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:37:00 2007 -0400
      
          cpuidle: menu governor: change the early break condition
      
          Change the C-state early break out algorithm in menu governor.
      
          We only look at early breakouts that result in wakeups shorter than idle
          state's target_residency.  If such a breakout is frequent enough, eliminate
          the particular idle state upto a timeout period.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 45a42095cf64b003b4a69be3ce7f434f97d7af51
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:35:38 2007 -0400
      
          cpuidle: fix uninitialized variable in sysfs routine
      
          Fix the uninitialized usage of ret.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 80dca7cdba3e6ee13eae277660873ab9584eb3be
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:34:16 2007 -0400
      
          cpuidle: reenable /proc/acpi//power interface for the time being
      
          Keep /proc/acpi/processor/CPU*/power around for a while as powertop depends
          on it. It will be marked deprecated and removed in future. powertop can use
          cpuidle interfaces instead.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 589c37c2646c5e3813a51255a5ee1159cb4c33fc
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:32:37 2007 -0400
      
          cpuidle: menu governor and hrtimer compile fix
      
          Compile fix for menu governor.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 0ba80bd9ab3ed304cb4f19b722e4cc6740588b5e
      Author: Len Brown <len.brown@intel.com>
      Date:   Thu May 31 22:51:43 2007 -0400
      
          cpuidle: build fix - cpuidle vs ipw2100 module
      
          ERROR: "acpi_set_cstate_limit" [drivers/net/wireless/ipw2100.ko] undefined!
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit d7d8fa7f96a7f7682be7c6cc0cc53fa7a18c3b58
      Author: Adam Belay <abelay@novell.com>
      Date:   Sat Mar 24 03:47:07 2007 -0400
      
          cpuidle: add the 'menu' governor
      
          Here is my first take at implementing an idle PM governor that takes
          full advantage of NO_HZ.  I call it the 'menu' governor because it
          considers the full list of idle states before each entry.
      
          I've kept the implementation fairly simple.  It attempts to guess the
          next residency time and then chooses a state that would meet at least
          the break-even point between power savings and entry cost.  To this end,
          it selects the deepest idle state that satisfies the following
          constraints:
               1. If the idle time elapsed since bus master activity was detected
                  is below a threshold (currently 20 ms), then limit the selection
                  to C2-type or above.
               2. Do not choose a state with a break-even residency that exceeds
                  the expected time remaining until the next timer interrupt.
               3. Do not choose a state with a break-even residency that exceeds
                  the elapsed time between the last pair of break events,
                  excluding timer interrupts.
      
          This governor has an advantage over "ladder" governor because it
          proactively checks how much time remains until the next timer interrupt
          using the tick infrastructure.  Also, it handles device interrupt
          activity more intelligently by not including timer interrupts in break
          event calculations.  Finally, it doesn't make policy decisions using the
          number of state entries, which can have variable residency times (NO_HZ
          makes these potentially very large), and instead only considers sleep
          time deltas.
      
          The menu governor can be selected during runtime using the cpuidle sysfs
          interface like so:
          "echo "menu" > /sys/devices/system/cpu/cpuidle/current_governor"
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit a4bec7e65aa3b7488b879d971651cc99a6c410fe
      Author: Adam Belay <abelay@novell.com>
      Date:   Sat Mar 24 03:47:03 2007 -0400
      
          cpuidle: export time until next timer interrupt using NO_HZ
      
          Expose information about the time remaining until the next
          timer interrupt expires by utilizing the dynticks infrastructure.
          Also modify the main idle loop to allow dynticks to handle
          non-interrupt break events (e.g. DMA).  Finally, expose sleep ticks
          information to external code.  Thomas Gleixner is responsible for much
          of the code in this patch.  However, I've made some additional changes,
          so I'm probably responsible if there are any bugs or oversights :)
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 2929d8996fbc77f41a5ff86bb67cdde3ca7d2d72
      Author: Adam Belay <abelay@novell.com>
      Date:   Sat Mar 24 03:46:58 2007 -0400
      
          cpuidle: governor API changes
      
          This patch prepares cpuidle for the menu governor.  It adds an optional
          stage after idle state entry to give the governor an opportunity to
          check why the state was exited.  Also it makes sure the idle loop
          returns after each state entry, allowing the appropriate dynticks code
          to run.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 3a7fd42f9825c3b03e364ca59baa751bb350775f
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Apr 26 00:03:59 2007 -0700
      
          cpuidle: hang fix
      
          Prevent hang on x86-64, when ACPI processor driver is added as a module on
          a system that does not support C-states.
      
          x86-64 expects all idle handlers to enable interrupts before returning from
          idle handler.  This is due to enter_idle(), exit_idle() races.  Make
          cpuidle_idle_call() confirm to this when there is no pm_idle_old.
      
          Also, cpuidle look at the return values of attch_driver() and set
          current_driver to NULL if attach fails on all CPUs.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 4893339a142afbd5b7c01ffadfd53d14746e858e
      Author: Shaohua Li <shaohua.li@intel.com>
      Date:   Thu Apr 26 10:40:09 2007 +0800
      
          cpuidle: add support for max_cstate limit
      
          With CPUIDLE framework, the max_cstate (to limit max cpu c-state)
          parameter is ingored. Some systems require it to ignore C2/C3
          and some drivers like ipw require it too.
      Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 43bbbbe1cb998cbd2df656f55bb3bfe30f30e7d1
      Author: Shaohua Li <shaohua.li@intel.com>
      Date:   Thu Apr 26 10:40:13 2007 +0800
      
          cpuidle: add cpuidle_fore_redetect_devices API
      
          add cpuidle_force_redetect_devices API,
          which forces all CPU redetect idle states.
          Next patch will use it.
      Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit d1edadd608f24836def5ec483d2edccfb37b1d19
      Author: Shaohua Li <shaohua.li@intel.com>
      Date:   Thu Apr 26 10:40:01 2007 +0800
      
          cpuidle: fix sysfs related issue
      
          Fix the cpuidle sysfs issue.
          a. make kobject dynamicaly allocated
          b. fixed sysfs init issue to avoid suspend/resume issue
      Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 7169a5cc0d67b263978859672e86c13c23a5570d
      Author: Randy Dunlap <randy.dunlap@oracle.com>
      Date:   Wed Mar 28 22:52:53 2007 -0400
      
          cpuidle: 1-bit field must be unsigned
      
          A 1-bit bitfield has no room for a sign bit.
          drivers/cpuidle/governors/ladder.c:54:16: error: dubious bitfield without explicit `signed' or `unsigned'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
          Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 4658620158dc2fbd9e4bcb213c5b6fb5d05ba7d4
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Wed Mar 28 22:52:41 2007 -0400
      
          cpuidle: fix boot hang
      
          Patch for cpuidle boot hang reported by Larry Finger here.
          http://www.ussg.iu.edu/hypermail/linux/kernel/0703.2/2025.htmlSigned-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Larry Finger <larry.finger@lwfinger.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit c17e168aa6e5fe3851baaae8df2fbc1cf11443a9
      Author: Len Brown <len.brown@intel.com>
      Date:   Wed Mar 7 04:37:53 2007 -0500
      
          cpuidle: ladder does not depend on ACPI
      
          build fix for CONFIG_ACPI=n
      
          In file included from drivers/cpuidle/governors/ladder.c:21:
          include/acpi/processor.h:88: error: expected specifier-qualifier-list before ‘acpi_integer’
          include/acpi/processor.h:106: error: expected specifier-qualifier-list before ‘acpi_integer’
          include/acpi/processor.h:168: error: expected specifier-qualifier-list before ‘acpi_handle’
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 8c91d958246bde68db0c3f0c57b535962ce861cb
      Author: Adrian Bunk <bunk@stusta.de>
      Date:   Tue Mar 6 02:29:40 2007 -0800
      
          cpuidle: make code static
      
          This patch makes the following needlessly global code static:
          - driver.c: __cpuidle_find_driver()
          - governor.c: __cpuidle_find_governor()
          - ladder.c: struct ladder_governor
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
          Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Adam Belay <abelay@novell.com>
          Cc: Shaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 0c39dc3187094c72c33ab65a64d2017b21f372d2
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Wed Mar 7 02:38:22 2007 -0500
      
          cpu_idle: fix build break
      
          This patch fixes a build breakage with !CONFIG_HOTPLUG_CPU and
          CONFIG_CPU_IDLE.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 8112e3b115659b07df340ef170515799c0105f82
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Mar 6 02:29:39 2007 -0800
      
          cpuidle: build fix for !CPU_IDLE
      
          Fix the compile issues when CPU_IDLE is not configured.
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Adam Belay <abelay@novell.com>
          Cc: Shaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 1eb4431e9599cd25e0d9872f3c2c8986821839dd
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Feb 22 13:54:57 2007 -0800
      
          cpuidle take2: Basic documentation for cpuidle
      
          Documentation for cpuidle infrastructure
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit ef5f15a8b79123a047285ec2e3899108661df779
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Feb 22 13:54:03 2007 -0800
      
          cpuidle take2: Hookup ACPI C-states driver with cpuidle
      
          Hookup ACPI C-states onto generic cpuidle infrastructure.
      
          drivers/acpi/procesor_idle.c is now a ACPI C-states driver that registers as
          a driver in cpuidle infrastructure and the policy part is removed from
          drivers/acpi/processor_idle.c. We use governor in cpuidle instead.
      Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      
      commit 987196fa82d4db52c407e8c9d5dec884ba602183
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Feb 22 13:52:57 2007 -0800
      
          cpuidle take2: Core cpuidle infrastructure
      
          Announcing 'cpuidle', a new CPU power management infrastructure to manage
          idle CPUs in a clean and efficient manner.
          cpuidle separates out the drivers that can provide support for multiple types
          of idle states and policy governors that decide on what idle state to use
          at run time.
          A cpuidle driver can support multiple idle states based on parameters like
          varying power consumption, wakeup latency, etc (ACPI C-states for example).
          A cpuidle governor can be usage model specific (laptop, server,
          laptop on battery etc).
          Main advantage of the infrastructure being, it allows independent development
          of drivers and governors and allows for better CPU power management.
      
          A huge thanks to Adam Belay and Shaohua Li who were part of this mini-project
          since its beginning and are greatly responsible for this patchset.
      
          This patch:
      
          Core cpuidle infrastructure.
          Introduces a new abstraction layer for cpuidle:
          * which manages drivers that can support multiple idles states. Drivers
            can be generic or particular to specific hardware/platform
          * allows pluging in multiple policy governors that can take idle state policy
            decision
          * The core also has a set of sysfs interfaces with which administrato can know
            about supported drivers and governors and switch them at run time.
      Signed-off-by: default avatarAdam Belay <abelay@novell.com>
      Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
      Signed-off-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      4f86d3a8
    • Henrique de Moraes Holschuh's avatar
      ACPI: thinkpad-acpi: skip blanks before the data when parsing sysfs · 32afbf07
      Henrique de Moraes Holschuh authored
      Skip blanks not just at the tail of sysfs writes, but also at the head.
      Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      32afbf07
  2. 09 Oct, 2007 7 commits
  3. 08 Oct, 2007 11 commits
    • Maarten Bressers's avatar
      Correct Makefile rule for generating custom keymap · e2a57a81
      Maarten Bressers authored
      When building a custom keymap, after setting GENERATE_KEYMAP := 1 in
      drivers/char/Makefile, the kernel build fails like this:
      
          CC      drivers/char/vt.o
        make[2]: *** No rule to make target `drivers/char/%.map', needed by `drivers/char/defkeymap.c'.  Stop.
        make[1]: *** [drivers/char] Error 2
        make: *** [drivers] Error 2
      
      This was caused by commit af8b1287, which
      deleted a necessary colon from the Makefile rule that generates the keymap,
      since that rule contains both a target and a target-pattern.  The following
      patch puts the colon back:
      Signed-off-by: default avatarMaarten Bressers <mbres@gentoo.org>
      Cc: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e2a57a81
    • Karsten Keil's avatar
      ISDN: Fix data access out of array bounds · d39d5ed9
      Karsten Keil authored
      Fix against access random data bytes outside the dev->chanmap array.
      Thanks to Oliver Neukum for pointing me to this issue.
      Signed-off-by: default avatarKarsten Keil <kkeil@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d39d5ed9
    • Linus Torvalds's avatar
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · e46dc1da
      Linus Torvalds authored
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [IPv6]: Fix ICMPv6 redirect handling with target multicast address
        [PKT_SCHED] cls_u32: error code isn't been propogated properly
        [ROSE]: Fix rose.ko oops on unload
        [TCP]: Fix fastpath_cnt_hint when GSO skb is partially ACKed
      e46dc1da
    • Yan Zheng's avatar
      AIO: fix cleanup in io_submit_one(...) · 87e2831c
      Yan Zheng authored
      When IOCB_FLAG_RESFD flag is set and iocb->aio_resfd is incorrect,
      statement 'goto out_put_req' is executed. At label 'out_put_req',
      aio_put_req(..) is called, which requires 'req->ki_filp' set.
      
      Signed-off-by: Yan Zheng<yanzheng@21cn.com>
      Cc: Zach Brown <zach.brown@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      87e2831c
    • Yan Zheng's avatar
      fix page release issue in filemap_fault · 745ad48e
      Yan Zheng authored
      find_lock_page increases page's usage count, we should decrease it
      before return VM_FAULT_SIGBUS
      
      Signed-off-by: Yan Zheng<yanzheng@21cn.com>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      745ad48e
    • Yan Zheng's avatar
      fix VM_CAN_NONLINEAR check in sys_remap_file_pages · dd204d63
      Yan Zheng authored
      The test for VM_CAN_NONLINEAR always fails
      
      Signed-off-by: Yan Zheng<yanzheng@21cn.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dd204d63
    • Peter Zijlstra's avatar
      mm: set_page_dirty_balance() vs ->page_mkwrite() · a200ee18
      Peter Zijlstra authored
      All the current page_mkwrite() implementations also set the page dirty. Which
      results in the set_page_dirty_balance() call to _not_ call balance, because the
      page is already found dirty.
      
      This allows us to dirty a _lot_ of pages without ever hitting
      balance_dirty_pages().  Not good (tm).
      
      Force a balance call if ->page_mkwrite() was successful.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a200ee18
    • Brian Haley's avatar
      [IPv6]: Fix ICMPv6 redirect handling with target multicast address · bf0b48df
      Brian Haley authored
      When the ICMPv6 Target address is multicast, Linux processes the 
      redirect instead of dropping it.  The problem is in this code in 
      ndisc_redirect_rcv():
      
               if (ipv6_addr_equal(dest, target)) {
                       on_link = 1;
               } else if (!(ipv6_addr_type(target) & IPV6_ADDR_LINKLOCAL)) {
                       ND_PRINTK2(KERN_WARNING
                                  "ICMPv6 Redirect: target address is not 
      link-local.\n");
                       return;
               }
      
      This second check will succeed if the Target address is, for example, 
      FF02::1 because it has link-local scope.  Instead, it should be checking 
      if it's a unicast link-local address, as stated in RFC 2461/4861 Section 
      8.1:
      
             - The ICMP Target Address is either a link-local address (when
               redirected to a router) or the same as the ICMP Destination
               Address (when redirected to the on-link destination).
      
      I know this doesn't explicitly say unicast link-local address, but it's 
      implied.
      
      This bug is preventing Linux kernels from achieving IPv6 Logo Phase II 
      certification because of a recent error that was found in the TAHI test 
      suite - Neighbor Disovery suite test 206 (v6LC.2.3.6_G) had the 
      multicast address in the Destination field instead of Target field, so 
      we were passing the test.  This won't be the case anymore.
      
      The patch below fixes this problem, and also fixes ndisc_send_redirect() 
      to not send an invalid redirect with a multicast address in the Target 
      field.  I re-ran the TAHI Neighbor Discovery section to make sure Linux 
      passes all 245 tests now.
      Signed-off-by: default avatarBrian Haley <brian.haley@hp.com>
      Acked-by: default avatarDavid L Stevens <dlstevens@us.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bf0b48df
    • Stephen Hemminger's avatar
    • Alexey Dobriyan's avatar
      [ROSE]: Fix rose.ko oops on unload · 891e6a93
      Alexey Dobriyan authored
      Commit a3d38402 aka
      "[AX.25]: Fix unchecked rose_add_loopback_neigh uses"
      transformed rose_loopback_neigh var into statically allocated one.
      However, on unload it will be kfree's which can't work.
      
      Steps to reproduce:
      
      	modprobe rose
      	rmmod rose
      
      BUG: unable to handle kernel NULL pointer dereference at virtual address 00000008
       printing eip:
      c014c664
      *pde = 00000000
      Oops: 0000 [#1]
      PREEMPT DEBUG_PAGEALLOC
      Modules linked in: rose ax25 fan ufs loop usbhid rtc snd_intel8x0 snd_ac97_codec ehci_hcd ac97_bus uhci_hcd thermal usbcore button processor evdev sr_mod cdrom
      CPU:    0
      EIP:    0060:[<c014c664>]    Not tainted VLI
      EFLAGS: 00210086   (2.6.23-rc9 #3)
      EIP is at kfree+0x48/0xa1
      eax: 00000556   ebx: c1734aa0   ecx: f6a5e000   edx: f7082000
      esi: 00000000   edi: f9a55d20   ebp: 00200287   esp: f6a5ef28
      ds: 007b   es: 007b   fs: 0000  gs: 0033  ss: 0068
      Process rmmod (pid: 1823, ti=f6a5e000 task=f7082000 task.ti=f6a5e000)
      Stack: f9a55d20 f9a5200c 00000000 00000000 00000000 f6a5e000 f9a5200c f9a55a00 
             00000000 bf818cf0 f9a51f3f f9a55a00 00000000 c0132c60 65736f72 00000000 
             f69f9630 f69f9528 c014244a f6a4e900 00200246 f7082000 c01025e6 00000000 
      Call Trace:
       [<f9a5200c>] rose_rt_free+0x1d/0x49 [rose]
       [<f9a5200c>] rose_rt_free+0x1d/0x49 [rose]
       [<f9a51f3f>] rose_exit+0x4c/0xd5 [rose]
       [<c0132c60>] sys_delete_module+0x15e/0x186
       [<c014244a>] remove_vma+0x40/0x45
       [<c01025e6>] sysenter_past_esp+0x8f/0x99
       [<c012bacf>] trace_hardirqs_on+0x118/0x13b
       [<c01025b6>] sysenter_past_esp+0x5f/0x99
       =======================
      Code: 05 03 1d 80 db 5b c0 8b 03 25 00 40 02 00 3d 00 40 02 00 75 03 8b 5b 0c 8b 73 10 8b 44 24 18 89 44 24 04 9c 5d fa e8 77 df fd ff <8b> 56 08 89 f8 e8 84 f4 fd ff e8 bd 32 06 00 3b 5c 86 60 75 0f 
      EIP: [<c014c664>] kfree+0x48/0xa1 SS:ESP 0068:f6a5ef28
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      891e6a93
    • Ilpo Järvinen's avatar
      [TCP]: Fix fastpath_cnt_hint when GSO skb is partially ACKed · 48611c47
      Ilpo Järvinen authored
      When only GSO skb was partially ACKed, no hints are reset,
      therefore fastpath_cnt_hint must be tweaked too or else it can
      corrupt fackets_out. The corruption to occur, one must have
      non-trivial ACK/SACK sequence, so this bug is not very often
      that harmful. There's a fackets_out state reset in TCP because
      fackets_out is known to be inaccurate and that fixes the issue
      eventually anyway.
      
      In case there was also at least one skb that got fully ACKed,
      the fastpath_skb_hint is set to NULL which causes a recount for
      fastpath_cnt_hint (the old value won't be accessed anymore),
      thus it can safely be decremented without additional checking.
      
      Reported by Cedric Le Goater <clg@fr.ibm.com>
      Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      48611c47
  4. 07 Oct, 2007 2 commits