Hello community,
here is the log from the commit of package kernel-source
checked in at Mon Aug 27 17:05:42 CEST 2007.
--------
--- kernel-source/kernel-bigsmp.changes 2007-08-24 09:01:26.000000000 +0200
+++ /mounts/work_src_done/STABLE/kernel-source/kernel-bigsmp.changes 2007-08-27 14:25:18.000000000 +0200
@@ -1,0 +2,89 @@
+Mon Aug 27 11:50:42 CEST 2007 - sdietrich@suse.de
+
+- Update config files: run_oldconfig.sh on updated rt configs
+
+-------------------------------------------------------------------
+Mon Aug 27 11:39:56 CEST 2007 - sdietrich@suse.de
+
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+
+-------------------------------------------------------------------
+Mon Aug 27 11:22:36 CEST 2007 - olh@suse.de
+
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+
+-------------------------------------------------------------------
+Mon Aug 27 11:20:23 CEST 2007 - olh@suse.de
+
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+
+-------------------------------------------------------------------
+Mon Aug 27 08:42:00 CEST 2007 - sven@suse.de
+
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+
+-------------------------------------------------------------------
+Mon Aug 27 08:35:56 CEST 2007 - sdietrich@suse.de
+
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+
+-------------------------------------------------------------------
+Mon Aug 27 07:58:55 CEST 2007 - sdietrich@suse.de
+
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+
+-------------------------------------------------------------------
+Mon Aug 27 07:41:00 CEST 2007 - sdietrich@suse.de
+
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+
+-------------------------------------------------------------------
+Mon Aug 27 07:20:04 CEST 2007 - sdietrich@suse.de
+
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+
+-------------------------------------------------------------------
+Mon Aug 27 05:52:57 CEST 2007 - sdietrich@suse.de
+
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+
+-------------------------------------------------------------------
+Sat Aug 25 19:27:22 CEST 2007 - jeffm@suse.de
+
+- Compile fix for last patch with Xen.
+
+-------------------------------------------------------------------
+Sat Aug 25 17:21:24 CEST 2007 - jeffm@suse.de
+
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+
+-------------------------------------------------------------------
+Sat Aug 25 08:27:37 CEST 2007 - trenn@suse.de
+
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+
+-------------------------------------------------------------------
+Sat Aug 25 04:33:38 CEST 2007 - philips@suse.de
+
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
+
+-------------------------------------------------------------------
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-dummy.changes: same change
kernel-kdump.changes: same change
kernel-ppc64.changes: same change
kernel-rt.changes: same change
kernel-rt_debug.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
kernel-xenpae.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-bigsmp.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:09.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:09.000000000 +0200
@@ -39,7 +39,7 @@
%endif
Summary: Kernel with PAE Support
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: System/Kernel
Autoreqprov: on
@@ -170,7 +170,7 @@
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -561,6 +561,53 @@
%files -f kernel.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-dummy.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:09.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:09.000000000 +0200
@@ -15,7 +15,7 @@
URL: http://www.kernel.org/
Summary: Internal dummy package for synchronizing release numbers
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: System/Kernel
Autoreqprov: off
@@ -28,7 +28,7 @@
--------
Andreas Gruenbacher
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%install
@@ -41,6 +41,53 @@
/etc/dummy
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-kdump.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:10.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:10.000000000 +0200
@@ -39,7 +39,7 @@
%endif
Summary: kernel for kdump
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: System/Kernel
Autoreqprov: on
@@ -174,7 +174,7 @@
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -565,6 +565,53 @@
%files -f kernel.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:10.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:10.000000000 +0200
@@ -38,7 +38,7 @@
%endif
Summary: Kernel for ppc64 Systems
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later, LGPL v2 or later
Group: System/Kernel
Autoreqprov: on
@@ -186,7 +186,7 @@
Tom Gall
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -577,6 +577,53 @@
%files -f kernel.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-rt_debug.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:10.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:10.000000000 +0200
@@ -39,7 +39,7 @@
%endif
Summary: A Debug Version of the Kernel
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: System/Kernel
Autoreqprov: on
@@ -172,7 +172,7 @@
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -563,6 +563,53 @@
%files -f kernel.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-rt.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:10.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:10.000000000 +0200
@@ -39,7 +39,7 @@
%endif
Summary: The Realtime Linux Kernel
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: System/Kernel
Autoreqprov: on
@@ -177,7 +177,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -568,6 +568,53 @@
%files -f kernel.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-s390.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:10.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:10.000000000 +0200
@@ -39,7 +39,7 @@
%endif
Summary: The Standard Kernel
Version: 2.6.22.5
-Release: 1
+Release: 2
License: GPL v2 or later
Group: System/Kernel
Autoreqprov: on
@@ -168,7 +168,7 @@
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -559,6 +559,53 @@
%files -f kernel.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:11.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:11.000000000 +0200
@@ -22,7 +22,7 @@
%endif
Summary: The Linux Kernel Sources
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: Development/Sources
Autoreqprov: off
@@ -106,7 +106,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -281,6 +281,53 @@
%files -f kernel-source.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:11.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:11.000000000 +0200
@@ -21,7 +21,7 @@
%endif
Summary: Kernel Symbol Versions (modversions)
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: Development/Sources
Autoreqprov: off
@@ -96,7 +96,7 @@
see /usr/src/linux/CREDITS for more details.
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
echo "Architecture symbol(s):" %symbols
@@ -150,6 +150,53 @@
/lib/modules/*/*
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.C14675/_old 2007-08-27 16:59:11.000000000 +0200
+++ /var/tmp/diff_new_pack.C14675/_new 2007-08-27 16:59:11.000000000 +0200
@@ -39,7 +39,7 @@
%endif
Summary: The Standard Kernel - without any SUSE patches
Version: 2.6.22.5
-Release: 1
+Release: 3
License: GPL v2 or later
Group: System/Kernel
Autoreqprov: on
@@ -188,7 +188,7 @@
-Source Timestamp: 2007/08/23 12:56:03 UTC
+Source Timestamp: 2007/08/27 09:51:45 UTC
%prep
if ! [ -e %_sourcedir/linux-2.6.22.tar.bz2 ]; then
@@ -579,6 +579,53 @@
%files -f kernel.files
%changelog
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: run_oldconfig.sh on updated rt configs
+* Mon Aug 27 2007 - sdietrich@suse.de
+- Update config files: sync i386 default->rt
+ and debug->rt_debug
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-atyfb-force-xtal.patch
+ force 29MHz xtal on G3 PowerBooks
+* Mon Aug 27 2007 - olh@suse.de
+- add patches.arch/ppc-bmac-ethtool.patch
+ simple ethtool support for network manager
+* Mon Aug 27 2007 - sven@suse.de
+- patches.rt/declare_cpu_clock_function.patch:
+ declare cpu_clock as extern function.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify:
+ correct parameter passed by hrtimer_cpu_notify
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch:
+ Improve distribution of sched_timer calls.
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/preemption-problem_in_net.patch: restore recursion check
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.fixes/fix_futex_compat_bug.patch: futex bug fix
+- patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch:
+ don't BUG_ON in exit for in_interrupt: prevent double fault
+* Mon Aug 27 2007 - sdietrich@suse.de
+- patches.rt/loadavg_fixes_weird_loads.patch: Fix spurious system
+ load spikes observed in /proc/loadavgrt
+* Sat Aug 25 2007 - jeffm@suse.de
+- Compile fix for last patch with Xen.
+* Sat Aug 25 2007 - jeffm@suse.de
+- patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-
+ timer-on-AMD-cpus.diff: i386: Use global flag to disable broken
+ local apic timer on AMD CPUs. (296661).
+* Sat Aug 25 2007 - trenn@suse.de
+- patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch:
+ ThinkPad: Brightness control for Lenovo ThinkPads
+ (https://bugzilla.novell.com/attachment.cgi?id=158263).
+- patches.arch/acpi_enable_gpes_before_wak.patch: Enable GPEs
+ before _WAK ACPI wakeup func is called.
+- patches.arch/acpi_thinkpad_fix_module_unloading.patch: ACPI:
+ thinkpad-acpi: fix the module init failure path (none).
+* Sat Aug 25 2007 - philips@suse.de
+- Add CONFIG_E1000E to config files
+- patches.drivers/e1000e.patch: e1000e: pci-express e1000 driver
+ (currently ICH9 only) (FATE 302349).
* Thu Aug 23 2007 - olh@suse.de
- add patches.suse/squashfs.patch to simplify installation debugging
* Thu Aug 23 2007 - sven@suse.de
kernel-xenpae.spec: same change
kernel-xen.spec: same change
++++++ build-source-timestamp ++++++
--- kernel-source/build-source-timestamp 2007-08-24 09:01:22.000000000 +0200
+++ /mounts/work_src_done/STABLE/kernel-source/build-source-timestamp 2007-08-27 14:25:13.000000000 +0200
@@ -1 +1 @@
-2007/08/23 12:56:03 UTC
+2007/08/27 09:51:45 UTC
++++++ config.tar.bz2 ++++++
++++ 4548 lines of diff (skipped)
++++++ needed_space_in_mb ++++++
--- kernel-source/needed_space_in_mb 2007-08-25 00:45:41.000000000 +0200
+++ /mounts/work_src_done/STABLE/kernel-source/needed_space_in_mb 2007-08-27 14:25:27.000000000 +0200
@@ -1 +1 @@
-6000
+6144
++++++ patches.arch.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_enable_gpes_before_wak.patch new/patches.arch/acpi_enable_gpes_before_wak.patch
--- old/patches.arch/acpi_enable_gpes_before_wak.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/acpi_enable_gpes_before_wak.patch 2007-08-25 08:27:46.000000000 +0200
@@ -0,0 +1,61 @@
+From: Thomas Renninger
+Subject: Enable GPEs before _WAK ACPI wakeup func is called
+Patch-mainline: scheduled for 2.6.23-rc4
+
+It seems it's required to enable GPEs before _WAK. E.g. X60 triggers a
+LID related GPE instead of doing a Notify in WAK. Now the GPE reaches the
+kernel and the Notify for LID status change gets thrown from there.
+
+Signed-off-by: Thomas Renninger
+Acked-by: Rafael J. Wysocki
+Signed-off-by: Andrew Morton
+Signed-off-by: Len Brown
+---
+ drivers/acpi/hardware/hwsleep.c | 19 +++++++++++--------
+ 1 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c
+index 76c525d..cf69c00 100644
+--- a/drivers/acpi/hardware/hwsleep.c
++++ b/drivers/acpi/hardware/hwsleep.c
+@@ -576,13 +576,10 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state)
+ ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS"));
+ }
+
+- status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL);
+- if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
+- ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK"));
+- }
+- /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
+-
+ /*
++ * GPEs must be enabled before _WAK is called as GPEs
++ * might get fired there
++ *
+ * Restore the GPEs:
+ * 1) Disable/Clear all GPEs
+ * 2) Enable all runtime GPEs
+@@ -591,13 +588,19 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state)
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+- acpi_gbl_system_awake_and_running = TRUE;
+-
+ status = acpi_hw_enable_all_runtime_gpes();
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
++ status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL);
++ if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
++ ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK"));
++ }
++ /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */
++
++ acpi_gbl_system_awake_and_running = TRUE;
++
+ /* Enable power button */
+
+ (void)
+--
+1.5.3.rc6.17.g1911
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch new/patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch
--- old/patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch 2007-08-25 08:27:46.000000000 +0200
@@ -0,0 +1,394 @@
+From: Holger Macht
+Subject: ThinkPad: Brightness control for Lenovo ThinkPads
+Patch-mainline: yes
+References: https://bugzilla.novell.com/attachment.cgi?id=158263
+
+Signed-off-by: Thomas Renninger
+
+Check for Lenovo in dmi info and do some specialialities to get
+brightness control.
+
+---
+ drivers/misc/thinkpad_acpi.c | 190 +++++++++++++++++++++++++++++++++++--------
+ drivers/misc/thinkpad_acpi.h | 25 +++++
+ include/linux/pci_ids.h | 2
+ 3 files changed, 184 insertions(+), 33 deletions(-)
+
+Index: linux-2.6.22/drivers/misc/thinkpad_acpi.c
+===================================================================
+--- linux-2.6.22.orig/drivers/misc/thinkpad_acpi.c
++++ linux-2.6.22/drivers/misc/thinkpad_acpi.c
+@@ -701,9 +701,19 @@ static int __init thinkpad_acpi_driver_i
+ printk(IBM_INFO "%s v%s\n", IBM_DESC, IBM_VERSION);
+ printk(IBM_INFO "%s\n", IBM_URL);
+
+- if (ibm_thinkpad_ec_found)
+- printk(IBM_INFO "ThinkPad EC firmware %s\n",
+- ibm_thinkpad_ec_found);
++ printk(IBM_INFO "ThinkPad BIOS %s, EC %s\n",
++ (thinkpad_id.bios_version_str) ?
++ thinkpad_id.bios_version_str : "unknown",
++ (thinkpad_id.ec_version_str) ?
++ thinkpad_id.ec_version_str : "unknown");
++
++ if (thinkpad_id.vendor && thinkpad_id.model_str)
++ printk(IBM_INFO "%s %s\n",
++ (thinkpad_id.vendor == PCI_VENDOR_ID_IBM) ?
++ "IBM" : ((thinkpad_id.vendor ==
++ PCI_VENDOR_ID_LENOVO) ?
++ "Lenovo" : "Unknown vendor"),
++ thinkpad_id.model_str);
+
+ return 0;
+ }
+@@ -2424,7 +2434,7 @@ static int __init thermal_init(struct ib
+
+ acpi_tmp7 = acpi_evalf(ec_handle, NULL, "TMP7", "qv");
+
+- if (ibm_thinkpad_ec_found && experimental) {
++ if (thinkpad_id.ec_model && experimental) {
+ /*
+ * Direct EC access mode: sensors at registers
+ * 0x78-0x7F, 0xC0-0xC7. Registers return 0x00 for
+@@ -2708,20 +2718,39 @@ static struct ibm_struct ecdump_driver_d
+
+ static struct backlight_device *ibm_backlight_device = NULL;
+
++static struct backlight_device *ibm_backlight_device;
++
+ static struct backlight_ops ibm_backlight_data = {
+ .get_brightness = brightness_get,
+ .update_status = brightness_update_status,
+ };
+
++static struct mutex brightness_mutex;
++
+ static int __init brightness_init(struct ibm_init_struct *iibm)
+ {
+ int b;
+
+ vdbg_printk(TPACPI_DBG_INIT, "initializing brightness subdriver\n");
+
++ mutex_init(&brightness_mutex);
++
++ if (!brightness_mode) {
++ if (thinkpad_id.vendor == PCI_VENDOR_ID_LENOVO)
++ brightness_mode = 2;
++ else
++ brightness_mode = 3;
++
++ dbg_printk(TPACPI_DBG_INIT, "selected brightness_mode=%d\n",
++ brightness_mode);
++ }
++
++ if (brightness_mode > 3)
++ return -EINVAL;
++
+ b = brightness_get(NULL);
+ if (b < 0)
+- return b;
++ return 1;
+
+ ibm_backlight_device = backlight_device_register(
+ TPACPI_BACKLIGHT_DEV_NAME, NULL, NULL,
+@@ -2757,34 +2786,76 @@ static int brightness_update_status(stru
+ bd->props.brightness : 0);
+ }
+
++/*
++ * ThinkPads can read brightness from two places: EC 0x31, or
++ * CMOS NVRAM byte 0x5E, bits 0-3.
++ */
+ static int brightness_get(struct backlight_device *bd)
+ {
+- u8 level;
+- if (!acpi_ec_read(brightness_offset, &level))
+- return -EIO;
+-
+- level &= 0x7;
++ u8 lec = 0, lcmos = 0, level = 0;
+
++ if (brightness_mode & 1) {
++ if (!acpi_ec_read(brightness_offset, &lec))
++ return -EIO;
++ lec &= 7;
++ level = lec;
++ };
++ if (brightness_mode & 2) {
++ lcmos = (nvram_read_byte(TP_NVRAM_ADDR_BRIGHTNESS)
++ & TP_NVRAM_MASK_LEVEL_BRIGHTNESS)
++ >> TP_NVRAM_POS_LEVEL_BRIGHTNESS;
++ level = lcmos;
++ }
++
++ if (brightness_mode == 3 && lec != lcmos) {
++ printk(IBM_ERR
++ "CMOS NVRAM (%u) and EC (%u) do not agree "
++ "on display brightness level\n",
++ (unsigned int) lcmos,
++ (unsigned int) lec);
++ return -EIO;
++ }
+ return level;
+ }
+
+ static int brightness_set(int value)
+ {
+- int cmos_cmd, inc, i;
+- int current_value = brightness_get(NULL);
++ int cmos_cmd, inc, i, res;
++ int current_value;
+
+- value &= 7;
++ if (value > 7)
++ return -EINVAL;
+
+- cmos_cmd = value > current_value ? TP_CMOS_BRIGHTNESS_UP : TP_CMOS_BRIGHTNESS_DOWN;
++ res = mutex_lock_interruptible(&brightness_mutex);
++ if (res < 0)
++ return res;
++
++ current_value = brightness_get(NULL);
++ if (current_value < 0) {
++ res = current_value;
++ goto errout;
++ }
++
++ cmos_cmd = value > current_value ?
++ TP_CMOS_BRIGHTNESS_UP :
++ TP_CMOS_BRIGHTNESS_DOWN;
+ inc = value > current_value ? 1 : -1;
++ res = 0;
+ for (i = current_value; i != value; i += inc) {
+- if (issue_thinkpad_cmos_command(cmos_cmd))
+- return -EIO;
+- if (!acpi_ec_write(brightness_offset, i + inc))
+- return -EIO;
++ if ((brightness_mode & 2) &&
++ issue_thinkpad_cmos_command(cmos_cmd)) {
++ res = -EIO;
++ goto errout;
++ }
++ if ((brightness_mode & 1) &&
++ !acpi_ec_write(brightness_offset, i + inc)) {
++ res = -EIO;
++ goto errout;;
++ }
+ }
+-
+- return 0;
++errout:
++ mutex_unlock(&brightness_mutex);
++ return res;
+ }
+
+ static int brightness_read(char *p)
+@@ -3308,20 +3379,19 @@ static int __init fan_init(struct ibm_in
+ * Enable for TP-1Y (T43), TP-78 (R51e),
+ * TP-76 (R52), TP-70 (T43, R52), which are known
+ * to be buggy. */
+- if (fan_control_initial_status == 0x07 &&
+- ibm_thinkpad_ec_found &&
+- ((ibm_thinkpad_ec_found[0] == '1' &&
+- ibm_thinkpad_ec_found[1] == 'Y') ||
+- (ibm_thinkpad_ec_found[0] == '7' &&
+- (ibm_thinkpad_ec_found[1] == '6' ||
+- ibm_thinkpad_ec_found[1] == '8' ||
+- ibm_thinkpad_ec_found[1] == '0'))
+- )) {
++ if (fan_control_initial_status == 0x07) {
++ switch (thinkpad_id.ec_model) {
++ case 0x5931: /* TP-1Y */
++ case 0x3837: /* TP-78 */
++ case 0x3637: /* TP-76 */
++ case 0x3037: /* TP-70 */
+ printk(IBM_NOTICE
+ "fan_init: initial fan status is "
+ "unknown, assuming it is in auto "
+ "mode\n");
+ tp_features.fan_ctrl_status_undef = 1;
++ ;;
++ }
+ }
+ } else {
+ printk(IBM_ERR
+@@ -4081,6 +4151,61 @@ static char* __init check_dmi_for_ec(voi
+ return NULL;
+ }
+
++/* Probing */
++
++static void __init get_thinkpad_model_data(struct thinkpad_id_data *tp)
++{
++ struct dmi_device *dev = NULL;
++ char ec_fw_string[18];
++
++ if (!tp)
++ return;
++
++ memset(tp, 0, sizeof(*tp));
++
++ if (dmi_name_in_vendors("IBM"))
++ tp->vendor = PCI_VENDOR_ID_IBM;
++ else if (dmi_name_in_vendors("LENOVO"))
++ tp->vendor = PCI_VENDOR_ID_LENOVO;
++ else
++ return;
++
++ tp->bios_version_str = kstrdup(dmi_get_system_info(DMI_BIOS_VERSION),
++ GFP_KERNEL);
++ if (!tp->bios_version_str)
++ return;
++ tp->bios_model = tp->bios_version_str[0]
++ | (tp->bios_version_str[1] << 8);
++
++ /*
++ * ThinkPad T23 or newer, A31 or newer, R50e or newer,
++ * X32 or newer, all Z series; Some models must have an
++ * up-to-date BIOS or they will not be detected.
++ *
++ * See http://thinkwiki.org/wiki/List_of_DMI_IDs
++ */
++ while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, NULL, dev))) {
++ if (sscanf(dev->name,
++ "IBM ThinkPad Embedded Controller -[%17c",
++ ec_fw_string) == 1) {
++ ec_fw_string[sizeof(ec_fw_string) - 1] = 0;
++ ec_fw_string[strcspn(ec_fw_string, " ]")] = 0;
++
++ tp->ec_version_str = kstrdup(ec_fw_string, GFP_KERNEL);
++ tp->ec_model = ec_fw_string[0]
++ | (ec_fw_string[1] << 8);
++ break;
++ }
++ }
++
++ tp->model_str = kstrdup(dmi_get_system_info(DMI_PRODUCT_VERSION),
++ GFP_KERNEL);
++ if (strnicmp(tp->model_str, "ThinkPad", 8) != 0) {
++ kfree(tp->model_str);
++ tp->model_str = NULL;
++ }
++}
++
+ static int __init probe_for_thinkpad(void)
+ {
+ int is_thinkpad;
+@@ -4108,7 +4233,7 @@ static int __init probe_for_thinkpad(voi
+ * false positives a damn great deal
+ */
+ if (!is_thinkpad)
+- is_thinkpad = dmi_name_in_vendors("IBM");
++ is_thinkpad = (thinkpad_id.vendor == PCI_VENDOR_ID_IBM);
+
+ if (!is_thinkpad && !force_load)
+ return -ENODEV;
+@@ -4251,12 +4376,12 @@ static int __init thinkpad_acpi_module_i
+ int ret, i;
+
+ /* Driver-level probe */
++ get_thinkpad_model_data(&thinkpad_id);
+ ret = probe_for_thinkpad();
+ if (ret)
+ return ret;
+
+ /* Driver initialization */
+- ibm_thinkpad_ec_found = check_dmi_for_ec();
+ IBM_ACPIHANDLE_INIT(ecrd);
+ IBM_ACPIHANDLE_INIT(ecwr);
+
+@@ -4344,6 +4469,9 @@ static void thinkpad_acpi_module_exit(vo
+ remove_proc_entry(IBM_PROC_DIR, acpi_root_dir);
+
+ kfree(ibm_thinkpad_ec_found);
++ kfree(thinkpad_id.bios_version_str);
++ kfree(thinkpad_id.ec_version_str);
++ kfree(thinkpad_id.model_str);
+ }
+
+ module_init(thinkpad_acpi_module_init);
+Index: linux-2.6.22/drivers/misc/thinkpad_acpi.h
+===================================================================
+--- linux-2.6.22.orig/drivers/misc/thinkpad_acpi.h
++++ linux-2.6.22/drivers/misc/thinkpad_acpi.h
+@@ -32,6 +32,7 @@
+ #include
+ #include
+
++#include
+ #include
+ #include
+ #include
+@@ -48,6 +49,7 @@
+ #include
+ #include
+
++#include
+
+ /****************************************************************************
+ * Main driver
+@@ -78,6 +80,11 @@
+ #define TP_CMOS_BRIGHTNESS_UP 4
+ #define TP_CMOS_BRIGHTNESS_DOWN 5
+
++/* ThinkPad CMOS NVRAM constants */
++#define TP_NVRAM_ADDR_BRIGHTNESS 0x5e
++#define TP_NVRAM_MASK_LEVEL_BRIGHTNESS 0x07
++#define TP_NVRAM_POS_LEVEL_BRIGHTNESS 0
++
+ #define onoff(status,bit) ((status) & (1 << (bit)) ? "on" : "off")
+ #define enabled(status,bit) ((status) & (1 << (bit)) ? "enabled" : "disabled")
+ #define strlencmp(a,b) (strncmp((a), (b), strlen(b)))
+@@ -168,9 +175,7 @@ static void tpacpi_remove_driver_attribu
+ static int experimental;
+ static u32 dbg_level;
+ static int force_load;
+-static char *ibm_thinkpad_ec_found;
+
+-static char* check_dmi_for_ec(void);
+ static int thinkpad_acpi_module_init(void);
+ static void thinkpad_acpi_module_exit(void);
+
+@@ -236,6 +241,21 @@ static struct {
+ u16 platform_drv_attrs_registered:1;
+ } tp_features;
+
++struct thinkpad_id_data {
++ unsigned int vendor; /* ThinkPad vendor:
++ * PCI_VENDOR_ID_IBM/PCI_VENDOR_ID_LENOVO */
++
++ char *bios_version_str; /* Something like 1ZET51WW (1.03z) */
++ char *ec_version_str; /* Something like 1ZHT51WW-1.04a */
++
++ u16 bios_model; /* Big Endian, TP-1Y = 0x5931, 0 = unknown */
++ u16 ec_model;
++
++ char *model_str;
++};
++
++static struct thinkpad_id_data thinkpad_id;
++
+ static struct list_head tpacpi_all_drivers;
+
+ static struct ibm_init_struct ibms_init[];
+@@ -302,6 +322,7 @@ static int bluetooth_write(char *buf);
+
+ static struct backlight_device *ibm_backlight_device;
+ static int brightness_offset = 0x31;
++static int brightness_mode;
+
+ static int brightness_init(struct ibm_init_struct *iibm);
+ static void brightness_exit(void);
+Index: linux-2.6.22/include/linux/pci_ids.h
+===================================================================
+--- linux-2.6.22.orig/include/linux/pci_ids.h
++++ linux-2.6.22/include/linux/pci_ids.h
+@@ -2067,6 +2067,8 @@
+ #define PCI_DEVICE_ID_ALTIMA_AC9100 0x03ea
+ #define PCI_DEVICE_ID_ALTIMA_AC1003 0x03eb
+
++#define PCI_VENDOR_ID_LENOVO 0x17aa
++
+ #define PCI_VENDOR_ID_ARECA 0x17d3
+ #define PCI_DEVICE_ID_ARECA_1110 0x1110
+ #define PCI_DEVICE_ID_ARECA_1120 0x1120
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/acpi_thinkpad_fix_module_unloading.patch new/patches.arch/acpi_thinkpad_fix_module_unloading.patch
--- old/patches.arch/acpi_thinkpad_fix_module_unloading.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/acpi_thinkpad_fix_module_unloading.patch 2007-08-25 08:27:46.000000000 +0200
@@ -0,0 +1,82 @@
+From: Henrique de Moraes Holschuh
+Subject: ACPI: thinkpad-acpi: fix the module init failure path
+Patch-mainline: yes
+References: none
+
+git commit ac36393de6034be7266264a435360e7628849005
+
+ Thomas Renninger reports that if one tries to load thinkpad-acpi in a
+ non-thinkpad, one gets:
+
+ Call Trace:
+ [<ffffffff802fa57d>] kref_get+0x2f/0x36
+ [<ffffffff802f97f7>] kobject_get+0x12/0x17
+ [<ffffffff8036dfd7>] get_driver+0x14/0x1a
+ [<ffffffff8036dfee>] driver_remove_file+0x11/0x32
+ [<ffffffff8823b9be>] :thinkpad_acpi:thinkpad_acpi_module_exit+0xa8/0xfc
+ [<ffffffff8824b8a0>] :thinkpad_acpi:thinkpad_acpi_module_init+0x74a/0x776
+ [<ffffffff8024f968>] __link_module+0x0/0x25
+ [<ffffffff80252269>] sys_init_module+0x162c/0x178f
+ [<ffffffff8020bc2e>] system_call+0x7e/0x83
+
+ So, track if the platform driver and its driver attributes were registered,
+ and only deallocate them in that case.
+
+ This patch is based on Thomas Renninger's patch for the issue.
+
+ Signed-off-by: Henrique de Moraes Holschuh
+ Acked-by: Thomas Renninger
+ Signed-off-by: Len Brown
+
+---
+ drivers/misc/thinkpad_acpi.c | 10 ++++++++--
+ drivers/misc/thinkpad_acpi.h | 2 ++
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+Index: linux-2.6.22/drivers/misc/thinkpad_acpi.c
+===================================================================
+--- linux-2.6.22.orig/drivers/misc/thinkpad_acpi.c
++++ linux-2.6.22/drivers/misc/thinkpad_acpi.c
+@@ -4274,12 +4274,15 @@ static int __init thinkpad_acpi_module_i
+ thinkpad_acpi_module_exit();
+ return ret;
+ }
++ tp_features.platform_drv_registered = 1;
++
+ ret = tpacpi_create_driver_attributes(&tpacpi_pdriver.driver);
+ if (ret) {
+ printk(IBM_ERR "unable to create sysfs driver attributes\n");
+ thinkpad_acpi_module_exit();
+ return ret;
+ }
++ tp_features.platform_drv_attrs_registered = 1;
+
+
+ /* Device initialization */
+@@ -4331,8 +4334,11 @@ static void thinkpad_acpi_module_exit(vo
+ if (tpacpi_pdev)
+ platform_device_unregister(tpacpi_pdev);
+
+- tpacpi_remove_driver_attributes(&tpacpi_pdriver.driver);
+- platform_driver_unregister(&tpacpi_pdriver);
++ if (tp_features.platform_drv_attrs_registered)
++ tpacpi_remove_driver_attributes(&tpacpi_pdriver.driver);
++
++ if (tp_features.platform_drv_registered)
++ platform_driver_unregister(&tpacpi_pdriver);
+
+ if (proc_dir)
+ remove_proc_entry(IBM_PROC_DIR, acpi_root_dir);
+Index: linux-2.6.22/drivers/misc/thinkpad_acpi.h
+===================================================================
+--- linux-2.6.22.orig/drivers/misc/thinkpad_acpi.h
++++ linux-2.6.22/drivers/misc/thinkpad_acpi.h
+@@ -232,6 +232,8 @@ static struct {
+ u16 light_status:1;
+ u16 wan:1;
+ u16 fan_ctrl_status_undef:1;
++ u16 platform_drv_registered:1;
++ u16 platform_drv_attrs_registered:1;
+ } tp_features;
+
+ static struct list_head tpacpi_all_drivers;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-atyfb-force-xtal.patch new/patches.arch/ppc-atyfb-force-xtal.patch
--- old/patches.arch/ppc-atyfb-force-xtal.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/ppc-atyfb-force-xtal.patch 2007-08-27 11:22:57.000000000 +0200
@@ -0,0 +1,20 @@
+Subject: [PATCH] atyfb: force 29MHz xtal on G3 PowerBooks
+
+The atyfb does not work on my 233MHz PowerBook with Mach64 LP, when the
+kernel is booted from firmware. aty_ld_pll_ct() returns 0x22 and xtal
+remains at 14.31818. When booted from MacOS, aty_ld_pll_ct() returns 0x3c
+and xtal is changed to 29.498928.
+Google indicates that all 4 PowerBook models need the higher value.
+
+
+--- a/drivers/video/aty/atyfb_base.c
++++ b/drivers/video/aty/atyfb_base.c
+@@ -2411,7 +2411,7 @@ static int __devinit aty_init(struct fb_
+ diff1 = -diff1;
+ if (diff2 < 0)
+ diff2 = -diff2;
+- if (diff2 < diff1) {
++ if (diff2 < diff1 || (M64_HAS(G3_PB_1024x768))) {
+ par->ref_clk_per = 1000000000000ULL / 29498928;
+ xtal = "29.498928";
+ }
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/ppc-bmac-ethtool.patch new/patches.arch/ppc-bmac-ethtool.patch
--- old/patches.arch/ppc-bmac-ethtool.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/ppc-bmac-ethtool.patch 2007-08-27 11:20:49.000000000 +0200
@@ -0,0 +1,45 @@
+Subject: [PATCH] bmac: add simple ethtool support for network manager
+
+NetworkManager will not start dhcpd on an interface unless it reports
+link-up state via ethtool.
+
+---
+ drivers/net/bmac.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- a/drivers/net/bmac.c
++++ b/drivers/net/bmac.c
+@@ -19,6 +19,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -1246,6 +1247,17 @@ static void bmac_reset_and_enable(struct
+ }
+ spin_unlock_irqrestore(&bp->lock, flags);
+ }
++static void bmac_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
++{
++ struct bmac_data *bp = netdev_priv(dev);
++ strcpy(info->driver, "bmac");
++ strcpy(info->bus_info, bp->mdev->ofdev.dev.bus_id);
++}
++
++static const struct ethtool_ops bmac_ethtool_ops = {
++ .get_drvinfo = bmac_get_drvinfo,
++ .get_link = ethtool_op_get_link,
++};
+
+ static int __devinit bmac_probe(struct macio_dev *mdev, const struct of_device_id *match)
+ {
+@@ -1311,6 +1323,7 @@ static int __devinit bmac_probe(struct m
+
+ dev->open = bmac_open;
+ dev->stop = bmac_close;
++ dev->ethtool_ops = &bmac_ethtool_ops;
+ dev->hard_start_xmit = bmac_output;
+ dev->get_stats = bmac_stats;
+ dev->set_multicast_list = bmac_set_multicast;
++++++ patches.drivers.tar.bz2 ++++++
++++ 17960 lines of diff (skipped)
++++++ patches.fixes.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/fix_futex_compat_bug.patch new/patches.fixes/fix_futex_compat_bug.patch
--- old/patches.fixes/fix_futex_compat_bug.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/fix_futex_compat_bug.patch 2007-08-27 07:21:44.000000000 +0200
@@ -0,0 +1,39 @@
+From: David Miller
+
+The futex list traversal on the compat side appears to have
+a bug.
+
+It's loop termination condition compares:
+
+ while (compat_ptr(uentry) != &head->list)
+
+But that can't be right because "uentry" has the special
+"pi" indicator bit still potentially set at bit 0. This
+is cleared by fetch_robust_entry() into the "entry"
+return value.
+
+What this seems to mean is that the list won't terminate
+when list iteration gets back to the the head. And we'll
+also process the list head like a normal entry, which could
+cause all kinds of problems.
+
+So we should check for equality with "entry". That pointer
+is of the non-compat type so we have to do a little casting
+to keep the compiler and sparse happy.
+
+Signed-off-by: David S. Miller
+
+diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
+index f792136..92af955 100644
+--- a/kernel/futex_compat.c
++++ b/kernel/futex_compat.c
+@@ -64,7 +64,7 @@ void compat_exit_robust_list(struct task_struct *curr)
+ if (upending)
+ handle_futex_death((void __user *)pending + futex_offset, curr, pip);
+
+- while (compat_ptr(uentry) != &head->list) {
++ while (entry != (struct robust_list *) &head->list) {
+ /*
+ * A pending lock might already be on the list, so
+ * dont process it twice:
+-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify new/patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify
--- old/patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify 2007-08-27 08:37:13.000000000 +0200
@@ -0,0 +1,28 @@
+diff-tree 7713a7d195c2e11d7ba6a973317da0af862d1264 (from 29417b899a77aaba1c060f5e123db4f50006f58a)
+Author: David Miller
+Date: Mon Jul 16 17:17:44 2007 -0700
+
+ [HRTIMER] Fix cpu pointer arg to clockevents_notify()
+
+ All of the clockevent notifiers expect a pointer to
+ an "unsigned int" cpu argument, but hrtimer_cpu_notify()
+ passes in a pointer to a long.
+
+ [ Discussed with and ok by Thomas Gleixner ]
+
+ Signed-off-by: David S. Miller
+ Signed-off-by: Linus Torvalds
+
+diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
+index 23c03f4..72d0342 100644
+--- a/kernel/hrtimer.c
++++ b/kernel/hrtimer.c
+@@ -1406,7 +1406,7 @@ static void migrate_hrtimers(int cpu)
+ static int __cpuinit hrtimer_cpu_notify(struct notifier_block *self,
+ unsigned long action, void *hcpu)
+ {
+- long cpu = (long)hcpu;
++ unsigned int cpu = (long)hcpu;
+
+ switch (action) {
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-timer-on-AMD-cpus.diff new/patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-timer-on-AMD-cpus.diff
--- old/patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-timer-on-AMD-cpus.diff 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-timer-on-AMD-cpus.diff 2007-08-25 18:37:24.000000000 +0200
@@ -0,0 +1,125 @@
+From: Andi Kleen
+Date: Fri, 10 Aug 2007 20:31:07 +0000 (+0200)
+Subject: i386: Use global flag to disable broken local apic timer on AMD CPUs.
+Patch-mainline: 2.6.23-rc3
+References: 296661
+
+i386: Use global flag to disable broken local apic timer on AMD CPUs.
+
+The Averatec 2370 and some other Turion laptop BIOS seems to program the
+ENABLE_C1E MSR inconsistently between cores. This confuses the lapic
+use heuristics because when C1E is enabled anywhere it seems to affect
+the complete chip.
+
+Use a global flag instead of a per cpu flag to handle this.
+If any CPU has C1E enabled disabled lapic use.
+
+Thanks to Cal Peake for debugging.
+
+Cc: tglx@linutronix.de
+Signed-off-by: Andi Kleen
+Signed-off-by: Linus Torvalds
+---
+
+ arch/i386/kernel/apic.c | 10 ++++------
+ arch/i386/kernel/cpu/amd.c | 7 ++++++-
+ include/asm-i386/apic.h | 2 ++
+ include/asm-i386/cpufeature.h | 2 +-
+ 4 files changed, 13 insertions(+), 8 deletions(-)
+
+--- a/arch/i386/kernel/apic.c 2007-08-25 11:14:27.000000000 -0400
++++ b/arch/i386/kernel/apic.c 2007-08-25 11:17:35.000000000 -0400
+@@ -61,8 +61,9 @@ static int enable_local_apic __initdata
+
+ /* Local APIC timer verification ok */
+ static int local_apic_timer_verify_ok;
+-/* Disable local APIC timer from the kernel commandline or via dmi quirk */
+-static int local_apic_timer_disabled;
++/* Disable local APIC timer from the kernel commandline or via dmi quirk
++ or using CPU MSR check */
++int local_apic_timer_disabled;
+ /* Local APIC timer works in C2 */
+ int local_apic_timer_c2_ok;
+ EXPORT_SYMBOL_GPL(local_apic_timer_c2_ok);
+@@ -370,12 +371,9 @@ void __init setup_boot_APIC_clock(void)
+ long delta, deltapm;
+ int pm_referenced = 0;
+
+- if (boot_cpu_has(X86_FEATURE_LAPIC_TIMER_BROKEN))
+- local_apic_timer_disabled = 1;
+-
+ /*
+ * The local apic timer can be disabled via the kernel
+- * commandline or from the test above. Register the lapic
++ * commandline or from the CPU detection code. Register the lapic
+ * timer as a dummy clock event source on SMP systems, so the
+ * broadcast mechanism is used. On UP systems simply ignore it.
+ */
+--- a/arch/i386/kernel/cpu/amd.c 2007-08-25 11:13:46.000000000 -0400
++++ b/arch/i386/kernel/cpu/amd.c 2007-08-25 11:17:35.000000000 -0400
+@@ -3,6 +3,7 @@
+ #include
+ #include
+ #include
++#include
+
+ #include "cpu.h"
+
+@@ -22,6 +23,7 @@
+ extern void vide(void);
+ __asm__(".align 4\nvide: ret");
+
++#ifdef CONFIG_X86_LOCAL_APIC
+ #define ENABLE_C1E_MASK 0x18000000
+ #define CPUID_PROCESSOR_SIGNATURE 1
+ #define CPUID_XFAM 0x0ff00000
+@@ -52,6 +54,7 @@ static __cpuinit int amd_apic_timer_brok
+ }
+ return 0;
+ }
++#endif
+
+ int force_mwait __cpuinitdata;
+
+@@ -63,6 +63,7 @@
+ u32 l, h;
+ int mbytes = num_physpages >> (20-PAGE_SHIFT);
+ int r;
++ extern int local_apic_timer_disabled;
+
+ #ifdef CONFIG_SMP
+ unsigned long long value;
+@@ -279,8 +282,10 @@ static void __cpuinit init_amd(struct cp
+ num_cache_leaves = 3;
+ }
+
++#ifdef CONFIG_X86_LOCAL_APIC
+ if (amd_apic_timer_broken())
+- set_bit(X86_FEATURE_LAPIC_TIMER_BROKEN, c->x86_capability);
++ local_apic_timer_disabled = 1;
++#endif
+
+ if (c->x86 == 0x10 && !force_mwait)
+ clear_bit(X86_FEATURE_MWAIT, c->x86_capability);
+--- a/include/asm-i386/apic.h 2007-08-25 11:14:33.000000000 -0400
++++ b/include/asm-i386/apic.h 2007-08-25 11:17:35.000000000 -0400
+@@ -118,6 +118,8 @@ extern void enable_NMI_through_LVT0 (voi
+ extern int timer_over_8254;
+ extern int local_apic_timer_c2_ok;
+
++extern int local_apic_timer_disabled;
++
+ #else /* !CONFIG_X86_LOCAL_APIC */
+
+ static inline void lapic_shutdown(void) { }
+--- a/include/asm-i386/cpufeature.h 2007-07-08 19:32:17.000000000 -0400
++++ b/include/asm-i386/cpufeature.h 2007-08-25 11:17:35.000000000 -0400
+@@ -79,7 +79,7 @@
+ #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */
+ #define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */
+ #define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */
+-#define X86_FEATURE_LAPIC_TIMER_BROKEN (3*32+ 14) /* lapic timer broken in C1 */
++/* 14 free */
+ #define X86_FEATURE_SYNC_RDTSC (3*32+15) /* RDTSC synchronizes the CPU */
+
+ /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
++++++ patches.rt.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.rt/declare_cpu_clock_function.patch new/patches.rt/declare_cpu_clock_function.patch
--- old/patches.rt/declare_cpu_clock_function.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.rt/declare_cpu_clock_function.patch 2007-08-27 08:42:42.000000000 +0200
@@ -0,0 +1,19 @@
+Subject: declare cpu_clock as extern function
+Add extern declaration for the sched.c cpu_clock function to
+resolve the implicit declaration in softlockup.c.
+
+signed-off-by: Sven-Thorsten Dietrich
+
+
+Index: linux-2.6.22/include/linux/sched.h
+===================================================================
+--- linux-2.6.22.orig/include/linux/sched.h
++++ linux-2.6.22/include/linux/sched.h
+@@ -302,6 +302,7 @@ extern void cpu_init (void);
+ extern void trap_init(void);
+ extern void update_process_times(int user);
+ extern void scheduler_tick(void);
++extern unsigned long long cpu_clock(int cpu);
+
+ #ifdef CONFIG_GENERIC_HARDIRQS
+ extern int debug_direct_keyboard;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch new/patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch
--- old/patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch 2007-08-27 07:21:45.000000000 +0200
@@ -0,0 +1,31 @@
+Subject: [PATCH RT] don't BUG_ON in exit for in_interrupt
+From: Steven Rostedt
+
+For some reason, in the RT kernel, we have in exit.c a
+BUG_ON(in_interrupt()) just before a check of in_interrupt() then panic.
+With the panic, we get a nice output of what happened (considering that
+the panic gives us a backtrace).
+
+But a BUG_ON will cause a fault, and then try to bug again. This causes
+a recursive fault which eventually eats up the stack. Twice have we
+lost information on a crash because of this recursive faulting.
+
+This patch undoes the adding the BUG_ON in exit.c.
+
+Signed-off-by: Steven Rostedt
+
+Index: linux-2.6.21.5-rt17/kernel/exit.c
+===================================================================
+--- linux-2.6.21.5-rt17.orig/kernel/exit.c
++++ linux-2.6.21.5-rt17/kernel/exit.c
+@@ -863,7 +863,6 @@ fastcall NORET_TYPE void do_exit(long co
+
+ WARN_ON(atomic_read(&tsk->fs_excl));
+
+- BUG_ON(in_interrupt());
+ if (unlikely(in_interrupt()))
+ panic("Aiee, killing interrupt handler!");
+ if (unlikely(!tsk->pid))
+
+
+-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.rt/loadavg_fixes_weird_loads.patch new/patches.rt/loadavg_fixes_weird_loads.patch
--- old/patches.rt/loadavg_fixes_weird_loads.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.rt/loadavg_fixes_weird_loads.patch 2007-08-27 05:53:41.000000000 +0200
@@ -0,0 +1,64 @@
+Subject: Fix spurious system load spikes observed
+ in /proc/loadavgrt, as described in:
+
+ Bug 253103 Processed: /proc/loadavgrt issues weird results
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=253103
+
+
+Signed-off-by: Luis Claudio R. Goncalves
+---
+
+Index: linux-2.6.22/kernel/sched.c
+===================================================================
+--- linux-2.6.22.orig/kernel/sched.c
++++ linux-2.6.22/kernel/sched.c
+@@ -2284,6 +2284,13 @@ unsigned long rt_nr_uninterruptible(void
+ for_each_online_cpu(i)
+ sum += cpu_rq(i)->rt_nr_uninterruptible;
+
++ /*
++ * Since we read the counters lockless, it might be slightly
++ * inaccurate. Do not allow it to go below zero though:
++ */
++ if (unlikely((long)sum < 0))
++ sum = 0;
++
+ return sum;
+ }
+
+Index: linux-2.6.22/kernel/timer.c
+===================================================================
+--- linux-2.6.22.orig/kernel/timer.c
++++ linux-2.6.22/kernel/timer.c
+@@ -939,23 +939,25 @@ unsigned long avenrun_rt[3];
+ static inline void calc_load(unsigned long ticks)
+ {
+ unsigned long active_tasks; /* fixed-point */
++ unsigned long active_rt_tasks; /* fixed-point */
+ static int count = LOAD_FREQ;
+
+ count -= ticks;
+ if (unlikely(count < 0)) {
+ active_tasks = count_active_tasks();
++ active_rt_tasks = count_active_rt_tasks();
+ do {
+ CALC_LOAD(avenrun[0], EXP_1, active_tasks);
+ CALC_LOAD(avenrun[1], EXP_5, active_tasks);
+ CALC_LOAD(avenrun[2], EXP_15, active_tasks);
+- count += LOAD_FREQ;
+- } while (count < 0);
+ #ifdef CONFIG_PREEMPT_RT
+- active_tasks = count_active_rt_tasks();
+- CALC_LOAD(avenrun_rt[0], EXP_1, active_tasks);
+- CALC_LOAD(avenrun_rt[1], EXP_5, active_tasks);
+- CALC_LOAD(avenrun_rt[2], EXP_15, active_tasks);
++ CALC_LOAD(avenrun_rt[0], EXP_1, active_rt_tasks);
++ CALC_LOAD(avenrun_rt[1], EXP_5, active_rt_tasks);
++ CALC_LOAD(avenrun_rt[2], EXP_15, active_rt_tasks);
+ #endif
++ count += LOAD_FREQ;
++
++ } while (count < 0);
+ }
+ }
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.rt/preemption-problem_in_net.patch new/patches.rt/preemption-problem_in_net.patch
--- old/patches.rt/preemption-problem_in_net.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.rt/preemption-problem_in_net.patch 2007-08-27 07:42:13.000000000 +0200
@@ -0,0 +1,210 @@
+From: "Beauchemin, Mark"
+To: "Ingo Molnar"
+Cc: "Thomas Gleixner" , , "David Miller"
+X-OriginalArrivalTime: 07 Aug 2007 19:41:41.0634 (UTC)
+ FILETIME=[FA684620:01C7D92A]
+Sender: linux-kernel-owner@vger.kernel.org
+Precedence: bulk
+X-Mailing-List: linux-kernel@vger.kernel.org
+X-Evolution-Source: imap://sven@sx.thebigcorporation.com/
+Content-Transfer-Encoding: 8bit
+
+Thomas,
+
+ I think I've gotten to the heart of the problem. Here's an excerpt
+from the latest -rt patch: net/core/dev.c in the function dev_queue_xmit
+
+
+ Either shot noqueue qdisc, it is even simpler 8)
+ */
+ if (dev->flags & IFF_UP) {
+- int cpu = smp_processor_id(); /* ok because BHs are off */
++ /*
++ * No need to check for recursion with threaded interrupts:
++ */
++#ifdef CONFIG_PREEMPT_RT
++ if (1) {
++#else
++ int cpu = raw_smp_processor_id(); /* ok because BHs are off */
+
+ if (dev->xmit_lock_owner != cpu) {
+-
+- HARD_TX_LOCK(dev, cpu);
++#endif
++ HARD_TX_LOCK(dev);
+
+ if (!netif_queue_stopped(dev) &&
+ !netif_subqueue_stopped(dev, skb->queue_mapping)) {
+
+
+I'm not sure why the check for recursion has been removed.
+In the backtrace below, I think it would be caught by this check and
+not recursively call the spinlock code.
+
+> Call Trace:
+> [D010BB40] [C01C7BA8] rt_spin_lock_slowlock+0x44/0x1f8 (unreliable)
+> [D010BB90] [C0153464] dev_queue_xmit+0x298/0x2a0 Tunnel2
+> [D010BBB0] [C0176398] ip_output+0x288/0x2dc
+> [D010BBE0] [C01AC078] ipip_tunnel_xmit+0x508/0x698
+> [D010BC60] [C0150DF4] dev_hard_start_xmit+0x1b4/0x2a4
+> [D010BC80] [C0153430] dev_queue_xmit+0x264/0x2a0 Tunnel4
+> [D010BCA0] [C0176398] ip_output+0x288/0x2dc
+> [D010BCD0] [C01AC078] ipip_tunnel_xmit+0x508/0x698
+> [D010BD50] [C0150DF4] dev_hard_start_xmit+0x1b4/0x2a4
+> [D010BD70] [C0153430] dev_queue_xmit+0x264/0x2a0 Tunnel2
+> [D010BD90] [C0176398] ip_output+0x288/0x2dc
+> [D010BDC0] [C017685C] ip_queue_xmit+0x1ac/0x4e4
+> [D010BE30] [C018762C] tcp_transmit_skb+0x390/0x810
+> [D010BE70] [C018882C] tcp_retransmit_skb+0x160/0x638
+> [D010BEA0] [C018BA5C] tcp_write_timer+0x274/0x6c0
+> [D010BED0] [C0024314] run_timer_softirq+0x2d0/0xedc
+> [D010BF80] [C001F1C4] ksoftirqd+0xf8/0x1b0
+> [D010BFC0] [C0031588] kthread+0xc0/0xfc
+> [D010BFF0] [C000471C] kernel_thread+0x44/0x60
+
+
+
+I found one other place in the code which appears to do the same thing.
+Although it is written to handle smp collisions, I think it should also
+handle the error case above.
+
+> could you please change this to use 'current' (instead of the CPU
+> number) as the xmit_lock_owner unconditionally? That results in much
+> fewer #ifdefs and far cleaner code.
+>
+> Ingo
+
+Ingo,
+
+ Here's the new patch. Please check me on the non-rt portion.
+I think the check is still functionally the same.
+
+Thanks,
+ Mark
+
+
+Index: linux-2.6.22/include/linux/netdevice.h
+===================================================================
+--- linux-2.6.22.orig/include/linux/netdevice.h
++++ linux-2.6.22/include/linux/netdevice.h
+@@ -446,7 +446,7 @@ struct net_device
+ /* cpu id of processor entered to hard_start_xmit or -1,
+ if nobody entered there.
+ */
+- int xmit_lock_owner;
++ void * xmit_lock_owner;
+ void *priv; /* pointer to private data */
+ int (*hard_start_xmit) (struct sk_buff *skb,
+ struct net_device *dev);
+@@ -951,32 +951,34 @@ static inline void netif_poll_enable(str
+ static inline void netif_tx_lock(struct net_device *dev)
+ {
+ spin_lock(&dev->_xmit_lock);
+- dev->xmit_lock_owner = raw_smp_processor_id();
++ dev->xmit_lock_owner = (void *)current;
+ }
+
+ static inline void netif_tx_lock_bh(struct net_device *dev)
+ {
+ spin_lock_bh(&dev->_xmit_lock);
+- dev->xmit_lock_owner = raw_smp_processor_id();
++ dev->xmit_lock_owner = (void *)current;
+ }
+
+ static inline int netif_tx_trylock(struct net_device *dev)
+ {
+ int ok = spin_trylock(&dev->_xmit_lock);
+ if (likely(ok))
+- dev->xmit_lock_owner = raw_smp_processor_id();
++ {
++ dev->xmit_lock_owner = (void *)current;
++ }
+ return ok;
+ }
+
+ static inline void netif_tx_unlock(struct net_device *dev)
+ {
+- dev->xmit_lock_owner = -1;
++ dev->xmit_lock_owner = (void *)-1;
+ spin_unlock(&dev->_xmit_lock);
+ }
+
+ static inline void netif_tx_unlock_bh(struct net_device *dev)
+ {
+- dev->xmit_lock_owner = -1;
++ dev->xmit_lock_owner = (void *)-1;
+ spin_unlock_bh(&dev->_xmit_lock);
+ }
+
+Index: linux-2.6.22/net/core/dev.c
+===================================================================
+--- linux-2.6.22.orig/net/core/dev.c
++++ linux-2.6.22/net/core/dev.c
+@@ -1568,16 +1568,7 @@ gso:
+ Either shot noqueue qdisc, it is even simpler 8)
+ */
+ if (dev->flags & IFF_UP) {
+- /*
+- * No need to check for recursion with threaded interrupts:
+- */
+-#ifdef CONFIG_PREEMPT_RT
+- if (1) {
+-#else
+- int cpu = raw_smp_processor_id(); /* ok because BHs are off */
+-
+- if (dev->xmit_lock_owner != cpu) {
+-#endif
++ if (dev->xmit_lock_owner != (void *)current) {
+ HARD_TX_LOCK(dev);
+
+ if (!netif_queue_stopped(dev)) {
+@@ -3105,7 +3096,7 @@ int register_netdevice(struct net_device
+ spin_lock_init(&dev->queue_lock);
+ spin_lock_init(&dev->_xmit_lock);
+ netdev_set_lockdep_class(&dev->_xmit_lock, dev->type);
+- dev->xmit_lock_owner = -1;
++ dev->xmit_lock_owner = (void *)-1;
+ spin_lock_init(&dev->ingress_lock);
+
+ dev->iflink = -1;
+Index: linux-2.6.22/net/mac80211/ieee80211.c
+===================================================================
+--- linux-2.6.22.orig/net/mac80211/ieee80211.c
++++ linux-2.6.22/net/mac80211/ieee80211.c
+@@ -2185,7 +2185,7 @@ enum netif_tx_lock_class {
+ static inline void netif_tx_lock_nested(struct net_device *dev, int subclass)
+ {
+ spin_lock_nested(&dev->_xmit_lock, subclass);
+- dev->xmit_lock_owner = smp_processor_id();
++ dev->xmit_lock_owner = (void *)current;
+ }
+
+ static void ieee80211_set_multicast_list(struct net_device *dev)
+Index: linux-2.6.22/net/sched/sch_generic.c
+===================================================================
+--- linux-2.6.22.orig/net/sched/sch_generic.c
++++ linux-2.6.22/net/sched/sch_generic.c
+@@ -102,7 +102,13 @@ static inline int qdisc_restart(struct n
+ */
+ if (!nolock) {
+ #ifdef CONFIG_PREEMPT_RT
+- netif_tx_lock(dev);
++ if (dev->xmit_lock_owner == (void *)current) {
++ kfree_skb(skb);
++ if (net_ratelimit())
++ printk(KERN_DEBUG "Dead loop on netdevice %s, fix it urgently!\n", dev->name);
++ return -1;
++ }
++ netif_tx_lock(dev);
+ #else
+ if (!netif_tx_trylock(dev)) {
+ /* So, someone grabbed the driver. */
+@@ -112,7 +118,7 @@ static inline int qdisc_restart(struct n
+ it by checking xmit owner and drop the
+ packet when deadloop is detected.
+ */
+- if (dev->xmit_lock_owner == raw_smp_processor_id()) {
++ if (dev->xmit_lock_owner == (void *)current) {
+ kfree_skb(skb);
+ if (net_ratelimit())
+ printk(KERN_DEBUG "Dead loop on netdevice %s, fix it urgently!\n", dev->name);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch new/patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch
--- old/patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch 2007-08-27 08:00:22.000000000 +0200
@@ -0,0 +1,40 @@
+From: john stultz
+To: Andrew Morton
+Cc: Thomas Gleixner , lkml
+Content-Type: text/plain
+Date: Wed, 15 Aug 2007 15:46:17 -0700
+
+Andrew requested this fixup awhile back, and I just now got to it
+(apologies for being slow).
+
+To avoid lock contention, we distribute the sched_timer calls across the
+cpus so they do not trigger at the same instant. However, I used
+NR_CPUS, which can cause needless grouping on small smp systems
+depending on your kernel config. This patch converts to using
+num_possible_cpus() so we spread it as evenly as possible on every
+machine.
+
+Briefly tested w/ NR_CPUS=255 and verified reduced contention.
+
+Signed-off-by: John Stultz
+
+Index: 2.6-rt/kernel/time/tick-sched.c
+===================================================================
+--- 2.6-rt.orig/kernel/time/tick-sched.c
++++ 2.6-rt/kernel/time/tick-sched.c
+@@ -586,7 +586,7 @@ void tick_setup_sched_timer(void)
+ /* Get the next period (per cpu) */
+ ts->sched_timer.expires = tick_init_jiffy_update();
+ offset = ktime_to_ns(tick_period) >> 1;
+- do_div(offset, NR_CPUS);
++ do_div(offset, num_possible_cpus());
+ offset *= smp_processor_id();
+ ts->sched_timer.expires = ktime_add_ns(ts->sched_timer.expires, offset);
+
+
+
+-
+To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+Please read the FAQ at http://www.tux.org/lkml/
++++++ patches.xen.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.xen/xen-x86-no-lapic new/patches.xen/xen-x86-no-lapic
--- old/patches.xen/xen-x86-no-lapic 2007-08-16 06:43:18.000000000 +0200
+++ new/patches.xen/xen-x86-no-lapic 2007-08-26 13:23:23.000000000 +0200
@@ -781,7 +781,7 @@
/*
* Basic functions accessing APICs.
-@@ -111,16 +113,19 @@ extern int APIC_init_uniprocessor (void)
+@@ -111,18 +113,21 @@ extern int APIC_init_uniprocessor (void)
extern void enable_NMI_through_LVT0 (void * dummy);
@@ -791,6 +791,8 @@
extern int timer_over_8254;
extern int local_apic_timer_c2_ok;
+
+ extern int local_apic_timer_disabled;
-#else /* !CONFIG_X86_LOCAL_APIC */
+#else /* !CONFIG_X86_LOCAL_APIC || CONFIG_XEN */
@@ -1280,3 +1282,17 @@
}
struct chipset {
+
+Index: linux-2.6.22/arch/i386/kernel/cpu/amd.c
+===================================================================
+--- linux-2.6.22.orig/arch/i386/kernel/cpu/amd.c 2007-08-25 13:12:31.000000000 -0400
++++ linux-2.6.22/arch/i386/kernel/cpu/amd.c 2007-08-25 13:25:33.000000000 -0400
+@@ -283,7 +283,7 @@
+ num_cache_leaves = 3;
+ }
+
+-#ifdef CONFIG_X86_LOCAL_APIC
++#if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_XEN)
+ if (amd_apic_timer_broken())
+ local_apic_timer_disabled = 1;
+ #endif
++++++ series.conf ++++++
--- kernel-source/series.conf 2007-08-24 09:01:12.000000000 +0200
+++ /mounts/work_src_done/STABLE/kernel-source/series.conf 2007-08-27 14:25:03.000000000 +0200
@@ -58,6 +58,7 @@
# ia64
# i386
+ patches.fixes/i386-use-global-flag-to-disable-broken-local-apic-timer-on-AMD-cpus.diff
# amd64 | x86-64 | x86_64
# 'Intel(r) Extended Memory 64 Technology' | 'Intel(r) EM64T'
@@ -86,6 +87,8 @@
patches.arch/ppc-efika-psc-console-autodetection.patch
patches.arch/ppc-pegasos-console-autodetection.patch
patches.arch/ppc-pegasos-via-ata-legacy-irq.patch
+ patches.arch/ppc-bmac-ethtool.patch
+ patches.arch/ppc-atyfb-force-xtal.patch
# PS3 git snapshot: ffc742be975446e7520980f77d144b6d5cc412cc
patches.arch/ppc-ps3tree-ps3-stable_cell-add-spu-shutdown-method.diff
@@ -240,12 +243,17 @@
patches.arch/dmi_autoloading.patch
patches.arch/thinkpad_dmi_autoloading.patch
+ patches.arch/acpi_thinkpad_fix_module_unloading.patch
+ patches.arch/acpi_thinkpad_backlight_lenovo_fixes.patch
+
patches.arch/acpi_dock_uevent_fix.patch
patches.arch/acpi_bay_uevent_fix.patch
patches.fixes/cpufreq_move_policy_init.patch
patches.fixes/cpufreq_ondemand_as_default.patch
+ patches.arch/acpi_enable_gpes_before_wak.patch
+
########################################################
# Suse specific stuff
########################################################
@@ -338,6 +346,7 @@
########################################################
patches.drivers/e1000-eeprom-cksum.patch
+ patches.drivers/e1000e.patch
########################################################
# Storage
@@ -694,6 +703,8 @@
patches.suse/psmouse-section-conflict.diff
patches.suse/acpi-unexport-acpi_rs_match_vendor_resource.diff
patches.suse/wireless-no-aes-select
+ patches.fixes/fix_futex_compat_bug.patch
+ patches.fixes/hrtimer_fix_cpu_pointer_arg_to-clockevents_notify
# PLEASE KEEP THESE PATCHES AT THE END OF series.conf
# (as all other arch specific patches should be kept at the end
@@ -812,3 +823,9 @@
+RT patches.rt/redeclare_kdb_lock_as_raw.patch
+RT patches.rt/kdb-i386-compile-bugfixes
+RT patches.rt/kdb-memmap-cmd-fixups
++RT patches.rt/use-num_possible_cpus-instead_of-NR_CPUS-for_timer_distribution.patch
++RT patches.rt/loadavg_fixes_weird_loads.patch
++RT patches.rt/declare_cpu_clock_function.patch
++RT patches.rt/do-not-BUG_ON-in-exit-for-in_interrupt.patch
++RT patches.rt/preemption-problem_in_net.patch
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org