Mailinglist Archive: opensuse-commit (1318 mails)

< Previous Next >
commit kernel-source
  • From: root@xxxxxxx (h_root)
  • Date: Wed, 23 Aug 2006 21:03:50 +0200 (CEST)
  • Message-id: <20060823190350.9FB4F95182@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package kernel-source
checked in at Wed Aug 23 21:03:50 CEST 2006.

--------
--- kernel-source/kernel-bigsmp.changes 2006-08-21 21:17:23.000000000 +0200
+++ kernel-source/kernel-bigsmp.changes 2006-08-23 20:41:57.000000000 +0200
@@ -1,0 +2,67 @@
+Wed Aug 23 20:23:18 CEST 2006 - agruen@xxxxxxx
+
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+
+-------------------------------------------------------------------
+Wed Aug 23 15:45:07 CEST 2006 - jeffm@xxxxxxx
+
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+ - patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+ - patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+ - patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+ - patches.suse/reiserfs-on-demand-bitmap-loading.patch
+
+-------------------------------------------------------------------
+Wed Aug 23 10:31:37 CEST 2006 - ak@xxxxxxx
+
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+
+-------------------------------------------------------------------
+Tue Aug 22 17:50:41 CEST 2006 - ak@xxxxxxx
+
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+
+-------------------------------------------------------------------
+Tue Aug 22 17:43:14 CEST 2006 - ak@xxxxxxx
+
+- patches.suse/tcp-proc-listen: Delete.
+
+-------------------------------------------------------------------
+Tue Aug 22 17:40:39 CEST 2006 - ak@xxxxxxx
+
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+
+-------------------------------------------------------------------
+Tue Aug 22 14:58:57 CEST 2006 - jbohac@xxxxxxx
+
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+
+-------------------------------------------------------------------
+Tue Aug 22 12:01:55 CEST 2006 - tiwai@xxxxxxx
+
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+
+-------------------------------------------------------------------
+Tue Aug 22 07:26:19 CEST 2006 - axboe@xxxxxxx
+
+- patches.fixes/fc_transport_optional_remove: Delete.
+
+-------------------------------------------------------------------
+Tue Aug 22 07:24:38 CEST 2006 - axboe@xxxxxxx
+
+- patches.fixes/cfq-atomic-flags: Delete.
+
+-------------------------------------------------------------------
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-dummy.changes: same change
kernel-iseries64.changes: same change
kernel-kdump.changes: same change
kernel-ppc64.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-um.changes: same change
kernel-xen.changes: same change
kernel-xenpae.changes: same change

Old:
----
kernel-smp.changes
kernel-smp.spec

New:
----
needed_space_in_mb

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kernel-bigsmp.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 3
Summary: Kernel with Multiprocessor Support and PAE
License: GPL
Group: System/Kernel
@@ -119,7 +119,7 @@



-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -463,6 +463,43 @@
%files -f kernel.files

%changelog -n kernel-bigsmp
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

kernel-debug.spec: same change
++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 3
Summary: The Standard Kernel
License: GPL
Group: System/Kernel
@@ -34,9 +34,11 @@
%endif
Provides: kernel-default-nongpl
Obsoletes: kernel-default-nongpl
+%ifarch alpha
+%else
%ifarch %ix86
-Provides: k_athlon k_debug k_deflt k_deflt_22 k_deflt_24 k_eide k_laptop k_orig k_pentiu k_pos_ibm
-Obsoletes: k_athlon k_debug k_deflt k_deflt_22 k_deflt_24 k_eide k_laptop k_orig k_pentiu k_pos_ibm
+Provides: k_athlon k_debug k_deflt k_deflt_22 k_deflt_24 k_eide k_laptop k_orig k_pentiu k_pos_ibm k_psmp k_smp k_smp_22 k_smp_24 smp kernel-smp
+Obsoletes: k_athlon k_debug k_deflt k_deflt_22 k_deflt_24 k_eide k_laptop k_orig k_pentiu k_pos_ibm k_psmp k_smp k_smp_22 k_smp_24 smp kernel-smp
%else
%ifarch ia64
Provides: k_debug k_deflt k_itanium2 k_itanium2-smp k_smp kernel-sn2
@@ -53,8 +55,9 @@
Obsoletes: kernel-64bit k_deflt
%else
%ifarch x86_64
-Provides: k_deflt
-Obsoletes: k_deflt
+Provides: k_deflt k_numa k_smp smp kernel-smp
+Obsoletes: k_deflt k_numa k_smp smp kernel-smp
+%endif
%endif
%endif
%endif
@@ -109,7 +112,7 @@
PreReq: perl-Bootloader >= 0.2.20-7
PreReq: rpm
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-ExclusiveArch: %ix86 ia64 ppc ppc64 s390x x86_64
+ExclusiveArch: alpha %ix86 ia64 ppc ppc64 s390x x86_64
# These files are found in the kernel-source package:
NoSource: 0
NoSource: 100
@@ -142,7 +145,7 @@



-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -486,6 +489,43 @@
%files -f kernel.files

%changelog -n kernel-default
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-dummy.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -17,7 +17,7 @@
Summary: Internal dummy package for synchronizing release numbers
Group: System/Kernel
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 3
BuildRoot: %{_tmppath}/%{name}-%{version}-build

%description
@@ -27,7 +27,7 @@
--------
Andreas Gruenbacher <agruen@xxxxxxx>

-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC


%install
@@ -40,6 +40,43 @@
/etc/dummy

%changelog -n kernel-dummy
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-iseries64.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 2
Summary: 64-Bit Kernel for iSeries
License: GPL
Group: System/Kernel
@@ -120,7 +120,7 @@



-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -464,6 +464,43 @@
%files -f kernel.files

%changelog -n kernel-iseries64
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-kdump.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 3
Summary: kernel for kdump
License: GPL
Group: System/Kernel
@@ -129,7 +129,7 @@



-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -473,6 +473,43 @@
%files -f kernel.files

%changelog -n kernel-kdump
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -20,7 +20,7 @@
BuildRequires: python
%endif
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 2
Summary: Kernel for ppc64 Systems
License: GPL, LGPL
Group: System/Kernel
@@ -134,7 +134,7 @@
Tom Gall <tom_gall@xxxxxxxxxxxx>
see /usr/src/linux-pmac-benh/CREDITS for more details.

-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -478,6 +478,43 @@
%files -f kernel.files

%changelog -n kernel-ppc64
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-s390.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 2
Summary: The Standard Kernel
License: GPL
Group: System/Kernel
@@ -117,7 +117,7 @@



-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -461,6 +461,43 @@
%files -f kernel.files

%changelog -n kernel-s390
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -25,7 +25,7 @@
%endif
PreReq: /sbin/insserv /usr/bin/grep /bin/sed /bin/uname /bin/mkdir /bin/cat /bin/ln /bin/rm /etc/rc.status
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 3
Source0: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2
Source1: functions.sh
Source2: source-post.sh
@@ -58,10 +58,9 @@
Source55: kernel-kdump.spec
Source56: kernel-ppc64.spec
Source57: kernel-s390.spec
-Source58: kernel-smp.spec
-Source59: kernel-um.spec
-Source60: kernel-xen.spec
-Source61: kernel-xenpae.spec
+Source58: kernel-um.spec
+Source59: kernel-xen.spec
+Source60: kernel-xenpae.spec
Source100: config.tar.bz2
Source101: patches.arch.tar.bz2
Source102: patches.drivers.tar.bz2
@@ -93,7 +92,7 @@

see /usr/src/linux/CREDITS for more details.

-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -275,6 +274,43 @@
%files -f kernel-source.files

%changelog -n kernel-source
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -14,7 +14,7 @@
URL: http://www.kernel.org/
BuildRequires: kernel-dummy
%ifarch %ix86
-BuildRequires: kernel-bigsmp kernel-debug kernel-default kernel-kdump kernel-smp kernel-um kernel-xen kernel-xenpae
+BuildRequires: kernel-bigsmp kernel-debug kernel-default kernel-kdump kernel-um kernel-xen kernel-xenpae
%else
%ifarch ppc
BuildRequires: kernel-default kernel-iseries64 kernel-kdump kernel-ppc64
@@ -32,10 +32,10 @@
BuildRequires: kernel-debug kernel-default
%else
%ifarch x86_64
-BuildRequires: kernel-debug kernel-default kernel-kdump kernel-smp kernel-um kernel-xen
+BuildRequires: kernel-debug kernel-default kernel-kdump kernel-um kernel-xen
%else
%ifarch alpha
-BuildRequires: kernel-smp
+BuildRequires: kernel-default
%endif
%endif
%endif
@@ -49,7 +49,7 @@
Summary: Kernel Symbol Versions (modversions)
Group: Development/Sources
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 3
Requires: linux
Requires: kernel-source = 2.6.18_rc4_git1-%release
Source11: arch-symbols
@@ -84,7 +84,7 @@

see /usr/src/linux/CREDITS for more details.

-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC


%install
@@ -127,6 +127,43 @@
/boot/symsets-*-*.tar.gz

%changelog -n kernel-syms
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

++++++ kernel-um.spec ++++++
--- /var/tmp/diff_new_pack.yFSups/_old 2006-08-23 20:56:20.000000000 +0200
+++ /var/tmp/diff_new_pack.yFSups/_new 2006-08-23 20:56:20.000000000 +0200
@@ -21,7 +21,7 @@
BuildRequires: python
%endif
Version: 2.6.18_rc4_git1
-Release: 1
+Release: 3
Summary: The User Mode Linux kernel.
License: GPL
Group: System/Kernel
@@ -125,7 +125,7 @@



-Source Timestamp: 2006/08/21 18:12:55 UTC
+Source Timestamp: 2006/08/23 18:20:06 UTC

%prep
if ! [ -e %_sourcedir/linux-2.6.17.tar.bz2 ]; then
@@ -469,6 +469,43 @@
%files -f kernel.files

%changelog -n kernel-um
+* Wed Aug 23 2006 - agruen@xxxxxxx
+- rpm/old-packages.conf: Add kernel-smp so that we'll have the
+ appropriate Provides and Obsoletes tags in spec files.
+* Wed Aug 23 2006 - jeffm@xxxxxxx
+- Added reiserfs on-demand bitmap loading patches (FATE 300716)
+- patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+- patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+- patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+- patches.suse/reiserfs-on-demand-bitmap-loading.patch
+* Wed Aug 23 2006 - ak@xxxxxxx
+- patches.suse/huge-demand: Delete.
+- patches.suse/huge-overcommit: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.arch/i386-amd-core-parsing: Delete.
+- patches.suse/bootmem-warning: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- patches.suse/tcp-proc-listen: Delete.
+* Tue Aug 22 2006 - ak@xxxxxxx
+- config/i386/smp: Delete.
+- config/x86_64/smp: Delete.
+- patches.arch/i386-apic-auto: Add heuristics to enable/disable
+ local APIC.
+- patches.xen/xen3-auto-xen-kconfig.diff: xen3 xen-kconfig.
+- rpm/old-packages.conf:
+- Update config files.
+- config.conf: Make i386/x86-64 kernels SMP. Drop smp kernels.
+* Tue Aug 22 2006 - jbohac@xxxxxxx
+- removed patches.fixes/xfrm-endless-loop
+ It was only used for debugging output and the problem apparently
+ does not occur anymore (117749)
+* Tue Aug 22 2006 - tiwai@xxxxxxx
+- patches.fixes/modpost-segfault-fix.diff: Delete.
+- patches.fixes/scsi-missing-iomem-cast: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/fc_transport_optional_remove: Delete.
+* Tue Aug 22 2006 - axboe@xxxxxxx
+- patches.fixes/cfq-atomic-flags: Delete.
* Mon Aug 21 2006 - gregkh@xxxxxxx
- Update to 2.6.18-rc4-git1, fixes a few bugs and drops some patches in our
tree.

kernel-xen.spec: same change
kernel-xenpae.spec: same change


++++++ build-source-timestamp ++++++
--- kernel-source/build-source-timestamp 2006-08-21 21:17:15.000000000 +0200
+++ kernel-source/build-source-timestamp 2006-08-23 20:41:55.000000000 +0200
@@ -1 +1 @@
-2006/08/21 18:12:55 UTC
+2006/08/23 18:20:06 UTC






++++++ config.conf ++++++
--- kernel-source/config.conf 2006-08-21 21:17:26.000000000 +0200
+++ kernel-source/config.conf 2006-08-23 20:41:57.000000000 +0200
@@ -2,7 +2,6 @@
# (See series.conf for a list of symbols defined.)

+IA32 i386/default
-+IA32 i386/smp
+IA32 i386/bigsmp
+IA32 i386/debug
+IA32 i386/um
@@ -14,13 +13,12 @@
+ia64 ia64/debug

+x86_64 x86_64/default
-+x86_64 x86_64/smp
+x86_64 x86_64/um
+x86_64 x86_64/xen
+x86_64 x86_64/debug
+x86_64 x86_64/kdump

-+alpha alpha/smp
++alpha alpha/default

+PPC powerpc/default
+PPC powerpc/iseries64

++++++ config.tar.bz2 ++++++
++++ 13948 lines of diff (skipped)









++++++ kabi.tar.bz2 ++++++
++++ 8050 lines of diff (skipped)




++++++ novell-kmp.tar.bz2 ++++++

++++++ patches.arch.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/i386-apic-auto new/patches.arch/i386-apic-auto
--- old/patches.arch/i386-apic-auto 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/i386-apic-auto 2006-08-22 17:41:25.000000000 +0200
@@ -0,0 +1,270 @@
+Subject: Add heuristics to enable/disable local APIC
+From: ak@xxxxxxx
+Patch-mainline: maybe
+
+Adds a new heuristical APIC mode that is similar to the old SUSE APIC_OFF,
+but does DTRT on UP systems with SMP kernels and has some more tweaks.
+
+This is a much cleaner patch than before.
+
+Index: linux-2.6.17/Documentation/kernel-parameters.txt
+===================================================================
+--- linux-2.6.17.orig/Documentation/kernel-parameters.txt
++++ linux-2.6.17/Documentation/kernel-parameters.txt
+@@ -1021,6 +1021,10 @@ running once the system is up.
+ noapic [SMP,APIC] Tells the kernel to not make use of any
+ IOAPICs that may be present in the system.
+
++ apic [APIC,i386] Override default heuristics to enable/disable the local
++ APIC by CONFIG_X86_APIC_AUTO. When this option is set the kernel
++ will try to use the local APIC.
++
+ noasync [HW,M68K] Disables async and sync negotiation for
+ all devices.
+
+Index: linux-2.6.17/arch/i386/Kconfig
+===================================================================
+--- linux-2.6.17.orig/arch/i386/Kconfig
++++ linux-2.6.17/arch/i386/Kconfig
+@@ -299,6 +299,16 @@ config X86_LOCAL_APIC
+ depends on X86_UP_APIC || ((X86_VISWS || SMP) && !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
+ default y
+
++config X86_APIC_AUTO
++ bool "Use heuristics to enable/disable local APIC"
++ depends on X86_LOCAL_APIC
++ help
++ This option uses some proven heuristics to automatically enable or disable the local
++ APIC. All decisions can be overriden by command line options.
++ In a nutshell very old systems run better with APIC off and newer or multiprocessor
++ systems prefer APIC on
++ This is a useful default for distribution kernels.
++
+ config X86_IO_APIC
+ bool
+ depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
+Index: linux-2.6.17/arch/i386/kernel/apic.c
+===================================================================
+--- linux-2.6.17.orig/arch/i386/kernel/apic.c
++++ linux-2.6.17/arch/i386/kernel/apic.c
+@@ -26,6 +26,7 @@
+ #include <linux/sysdev.h>
+ #include <linux/cpu.h>
+ #include <linux/module.h>
++#include <linux/dmi.h>
+
+ #include <asm/atomic.h>
+ #include <asm/smp.h>
+@@ -53,6 +54,9 @@ static cpumask_t timer_bcast_ipi;
+ * Knob to control our willingness to enable the local APIC.
+ */
+ int enable_local_apic __initdata = 0; /* -1=force-disable, +1=force-enable */
++int prefer_apic __initdata = 0; /* when enable_local_apic == 0 prefer APIC but don't force against
++ BIOS wishes */
++int apic_disabled_by_dmi __initdata;
+
+ /*
+ * Debug level
+@@ -753,6 +757,10 @@ static void apic_pm_activate(void) { }
+
+ static int __init apic_set_verbosity(char *str)
+ {
++ if (*str == '=')
++ ++str;
++ if (*str == 0)
++ prefer_apic = 1;
+ if (strcmp("debug", str) == 0)
+ apic_verbosity = APIC_DEBUG;
+ else if (strcmp("verbose", str) == 0)
+@@ -760,7 +768,7 @@ static int __init apic_set_verbosity(cha
+ return 1;
+ }
+
+-__setup("apic=", apic_set_verbosity);
++__setup("apic", apic_set_verbosity);
+
+ static int __init detect_init_APIC (void)
+ {
+@@ -791,8 +799,9 @@ static int __init detect_init_APIC (void
+ * APIC only if "lapic" specified.
+ */
+ if (enable_local_apic <= 0) {
+- printk("Local APIC disabled by BIOS -- "
+- "you can enable it with \"lapic\"\n");
++ if (!apic_disabled_by_dmi)
++ printk("Local APIC disabled by BIOS -- "
++ "you can enable it with \"lapic\"\n");
+ return -1;
+ }
+ /*
+@@ -1328,6 +1337,64 @@ fastcall void smp_error_interrupt(struct
+ irq_exit();
+ }
+
++#ifdef CONFIG_X86_APIC_AUTO
++
++/* Some heuristics to decide when to enable the APICs */
++
++static __init int dmi_enable_apic(void)
++{
++ int year;
++ int apic;
++ char *vendor;
++
++ /* If the machine has more than one CPU try to use APIC because it'll
++ be running the SMP kernel with APIC soon anyways.
++ This won't cover dual core, but they are handled by the date check
++ below. */
++ if (dmi_cpus > 1)
++ return 1;
++
++ year = dmi_get_year(DMI_BIOS_DATE);
++ vendor = dmi_get_system_info(DMI_BIOS_VENDOR);
++ apic = 0;
++
++ /* All Intel BIOS since 1998 assumed APIC on. Don't include 1998 itself
++ because we're not sure for that. */
++ if (vendor && !strncmp(vendor, "Intel", 5))
++ apic = 1;
++ /* Use APIC for anything since 2001 */
++ else if (year >= 2001)
++ apic = 1;
++
++#ifdef CONFIG_ACPI
++ /* When ACPI is disabled also default to APIC off on very new systems (>= 2004)
++ which typically don't have working mptables anymore */
++ if (acpi_noirq && year >= 2004)
++ apic = 0;
++#endif
++
++ if (!apic)
++ apic_disabled_by_dmi = 1;
++
++ return apic;
++}
++
++void __init dmi_check_apic(void)
++{
++ if (enable_local_apic != 0 || prefer_apic)
++ return;
++ if (!dmi_enable_apic()) {
++ clear_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability);
++ nr_ioapics = 0;
++ enable_local_apic = -1;
++ printk(KERN_INFO "IO/L-APIC disabled because your old system seems to be old\n");
++ printk(KERN_INFO "overwrite with \"apic\"\n");
++ return;
++ }
++ printk(KERN_INFO "IO/L-APIC allowed because system is MP or new enough\n");
++}
++#endif
++
+ /*
+ * This initializes the IO-APIC and APIC hardware if this is
+ * a UP kernel.
+Index: linux-2.6.17/drivers/firmware/dmi_scan.c
+===================================================================
+--- linux-2.6.17.orig/drivers/firmware/dmi_scan.c
++++ linux-2.6.17/drivers/firmware/dmi_scan.c
+@@ -154,6 +154,8 @@ static void __init dmi_save_ipmi_device(
+ list_add(&dev->list, &dmi_devices);
+ }
+
++int dmi_cpus;
++
+ /*
+ * Process a DMI table entry. Right now all we care about are the BIOS
+ * and machine entries. For 2.5 we should pull the smbus controller info
+@@ -178,6 +180,9 @@ static void __init dmi_decode(struct dmi
+ dmi_save_ident(dm, DMI_BOARD_NAME, 5);
+ dmi_save_ident(dm, DMI_BOARD_VERSION, 6);
+ break;
++ case 4: /* Central Processor */
++ dmi_cpus++;
++ break;
+ case 10: /* Onboard Devices Information */
+ dmi_save_devices(dm);
+ break;
+Index: linux-2.6.17/include/linux/dmi.h
+===================================================================
+--- linux-2.6.17.orig/include/linux/dmi.h
++++ linux-2.6.17/include/linux/dmi.h
+@@ -68,7 +68,7 @@ extern struct dmi_device * dmi_find_devi
+ struct dmi_device *from);
+ extern void dmi_scan_machine(void);
+ extern int dmi_get_year(int field);
+-
++extern int dmi_cpus;
+ #else
+
+ static inline int dmi_check_system(struct dmi_system_id *list) { return 0; }
+Index: linux-2.6.17/arch/i386/kernel/setup.c
+===================================================================
+--- linux-2.6.17.orig/arch/i386/kernel/setup.c
++++ linux-2.6.17/arch/i386/kernel/setup.c
+@@ -61,6 +61,7 @@
+ #include <asm/io.h>
+ #include <setup_arch.h>
+ #include <bios_ebda.h>
++#include <asm/apic.h>
+
+ /* Forward Declaration. */
+ void __init find_max_pfn(void);
+@@ -865,7 +866,7 @@ static void __init parse_cmdline_early (
+
+ #ifdef CONFIG_X86_LOCAL_APIC
+ /* enable local APIC */
+- else if (!memcmp(from, "lapic", 5))
++ else if (!memcmp(from, "lapic", 5) || !memcmp(from, "apic", 4))
+ lapic_enable();
+
+ /* disable local APIC */
+@@ -1543,6 +1544,10 @@ void __init setup_arch(char **cmdline_p)
+ if (efi_enabled)
+ efi_map_memmap();
+
++#ifdef CONFIG_X86_APIC_AUTO
++ dmi_check_apic();
++#endif
++
+ #ifdef CONFIG_ACPI
+ /*
+ * Parse the ACPI tables for possible boot-time SMP configuration.
+@@ -1565,7 +1570,7 @@ void __init setup_arch(char **cmdline_p)
+ #endif
+ #endif
+ #ifdef CONFIG_X86_LOCAL_APIC
+- if (smp_found_config)
++ if (smp_found_config && cpu_has_apic)
+ get_smp_config();
+ #endif
+
+Index: linux-2.6.17/include/asm-i386/apic.h
+===================================================================
+--- linux-2.6.17.orig/include/asm-i386/apic.h
++++ linux-2.6.17/include/asm-i386/apic.h
+@@ -128,6 +128,8 @@ void switch_ipi_to_APIC_timer(void *cpum
+
+ extern int timer_over_8254;
+
++extern void dmi_check_apic(void);
++
+ #else /* !CONFIG_X86_LOCAL_APIC */
+ static inline void lapic_shutdown(void) { }
+
+Index: linux-2.6.17/arch/i386/kernel/mpparse.c
+===================================================================
+--- linux-2.6.17.orig/arch/i386/kernel/mpparse.c
++++ linux-2.6.17/arch/i386/kernel/mpparse.c
+@@ -673,6 +673,11 @@ void __init get_smp_config (void)
+ else if (acpi_lapic)
+ printk(KERN_INFO "Using ACPI for processor (LAPIC) configuration information\n");
+
++ else if (enable_local_apic < 0) {
++ smp_found_config = 0;
++ return;
++ }
++
+ printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n", mpf->mpf_specification);
+ if (mpf->mpf_feature2 & (1<<7)) {
+ printk(KERN_INFO " IMCR and PIC compatibility mode.\n");

++++++ patches.drivers.tar.bz2 ++++++

++++++ patches.fixes.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/cfq-atomic-flags new/patches.fixes/cfq-atomic-flags
--- old/patches.fixes/cfq-atomic-flags 2006-08-01 20:10:20.000000000 +0200
+++ new/patches.fixes/cfq-atomic-flags 1970-01-01 01:00:00.000000000 +0100
@@ -1,69 +0,0 @@
-From: Jens Axboe <axboe@xxxxxxx>
-Subject: Fix cfq flags manipulations
-Patch-mainline: 2.6.17
-References: 145160
-
-
-Acked-by:
-Signed-off-by:
-
-diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
-index 74fae2d..98dec84 100644
---- a/block/cfq-iosched.c
-+++ b/block/cfq-iosched.c
-@@ -215,7 +215,7 @@ struct cfq_queue {
- unsigned short ioprio_class, org_ioprio_class;
-
- /* various state flags, see below */
-- unsigned int flags;
-+ unsigned long flags;
- };
-
- struct cfq_rq {
-@@ -227,7 +227,7 @@ struct cfq_rq {
- struct cfq_queue *cfq_queue;
- struct cfq_io_context *io_context;
-
-- unsigned int crq_flags;
-+ unsigned long crq_flags;
- };
-
- enum cfqq_state_flags {
-@@ -245,15 +245,15 @@ enum cfqq_state_flags {
- #define CFQ_CFQQ_FNS(name) \
- static inline void cfq_mark_cfqq_##name(struct cfq_queue *cfqq) \
- { \
-- cfqq->flags |= (1 << CFQ_CFQQ_FLAG_##name); \
-+ set_bit(CFQ_CFQQ_FLAG_##name, &(cfqq)->flags); \
- } \
- static inline void cfq_clear_cfqq_##name(struct cfq_queue *cfqq) \
- { \
-- cfqq->flags &= ~(1 << CFQ_CFQQ_FLAG_##name); \
-+ clear_bit(CFQ_CFQQ_FLAG_##name, &(cfqq)->flags); \
- } \
- static inline int cfq_cfqq_##name(const struct cfq_queue *cfqq) \
- { \
-- return (cfqq->flags & (1 << CFQ_CFQQ_FLAG_##name)) != 0; \
-+ return test_bit(CFQ_CFQQ_FLAG_##name, &(cfqq)->flags) != 0; \
- }
-
- CFQ_CFQQ_FNS(on_rr);
-@@ -274,15 +274,15 @@ enum cfq_rq_state_flags {
- #define CFQ_CRQ_FNS(name) \
- static inline void cfq_mark_crq_##name(struct cfq_rq *crq) \
- { \
-- crq->crq_flags |= (1 << CFQ_CRQ_FLAG_##name); \
-+ set_bit(CFQ_CRQ_FLAG_##name, &(crq)->crq_flags); \
- } \
- static inline void cfq_clear_crq_##name(struct cfq_rq *crq) \
- { \
-- crq->crq_flags &= ~(1 << CFQ_CRQ_FLAG_##name); \
-+ clear_bit(CFQ_CRQ_FLAG_##name, &(crq)->crq_flags); \
- } \
- static inline int cfq_crq_##name(const struct cfq_rq *crq) \
- { \
-- return (crq->crq_flags & (1 << CFQ_CRQ_FLAG_##name)) != 0; \
-+ return test_bit(CFQ_CRQ_FLAG_##name, &(crq)->crq_flags) != 0; \
- }
-
- CFQ_CRQ_FNS(is_sync);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/fc_transport_optional_remove new/patches.fixes/fc_transport_optional_remove
--- old/patches.fixes/fc_transport_optional_remove 2006-06-14 08:25:57.000000000 +0200
+++ new/patches.fixes/fc_transport_optional_remove 1970-01-01 01:00:00.000000000 +0100
@@ -1,69 +0,0 @@
-From: Michael Reed <mdr@xxxxxxx>
-Subject: Don't delete target when dev loss timer fires
-Patch-mainline:
-References: 182217
-
-Acked-by: Jens Axboe <axboe@xxxxxxx>
-Acked-by: Chris Mason <mason@xxxxxxx>
-Signed-off-by:
-
---- linux-2.6.16-sles10-latest.unmodified/drivers/scsi/scsi_transport_fc.c 2006-05-12 22:56:09.000000000 -0500
-+++ linux-2.6.16-sles10-latest/drivers/scsi/scsi_transport_fc.c 2006-06-12 18:21:44.532524765 -0500
-@@ -374,9 +374,29 @@
- MODULE_PARM_DESC(dev_loss_tmo,
- "Maximum number of seconds that the FC transport should"
- " insulate the loss of a remote port. Once this value is"
-- " exceeded, the scsi target is removed. Value should be"
-+ " exceeded, the scsi target may be removed. Reference the"
-+ " remove_on_dev_loss module parameter. Value should be"
- " between 1 and SCSI_DEVICE_BLOCK_MAX_TIMEOUT.");
-
-+/*
-+ * remove_on_dev_loss: controls whether the transport will
-+ * remove a scsi target after the device loss timer expires.
-+ * Removal on disconnect is modeled after the USB subsystem
-+ * and expects subsystems layered on SCSI to be aware of
-+ * potential device loss and handle it appropriately. However,
-+ * many subsystems do not support device removal, leaving situations
-+ * where structure references may remain, causing new device
-+ * name assignments, etc., if the target returns.
-+ */
-+static unsigned int fc_remove_on_dev_loss = 0;
-+module_param_named(remove_on_dev_loss, fc_remove_on_dev_loss,
-+ int, S_IRUGO|S_IWUSR);
-+MODULE_PARM_DESC(remove_on_dev_loss,
-+ "Boolean. When the device loss timer fires, this variable"
-+ " controls whether the scsi infrastructure for the target"
-+ " device is removed. Values: zero means do not remove,"
-+ " non-zero means remove. Default is zero.");
-+
-
- static __init int fc_transport_init(void)
- {
-@@ -1448,7 +1468,8 @@
- }
- spin_unlock_irqrestore(shost->host_lock, flags);
-
-- scsi_remove_target(&rport->dev);
-+ if (fc_remove_on_dev_loss)
-+ scsi_remove_target(&rport->dev);
- }
-
-
-@@ -2000,9 +2021,13 @@
- return;
- }
-
-- dev_printk(KERN_ERR, &rport->dev,
-- "blocked FC remote port time out: removing target and "
-- "saving binding\n");
-+ if (fc_remove_on_dev_loss)
-+ dev_printk(KERN_ERR, &rport->dev,
-+ "blocked FC remote port time out: removing target and "
-+ "saving binding\n");
-+ else
-+ dev_printk(KERN_ERR, &rport->dev,
-+ "blocked FC remote port time out: saving binding\n");
-
- list_move_tail(&rport->peers, &fc_host->rport_bindings);
-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/modpost-segfault-fix.diff new/patches.fixes/modpost-segfault-fix.diff
--- old/patches.fixes/modpost-segfault-fix.diff 2005-12-23 16:45:04.000000000 +0100
+++ new/patches.fixes/modpost-segfault-fix.diff 1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +0,0 @@
-From: Takashi Iwai <tiwai@xxxxxxx>
-Subject: Fix segfault of modpost with external modules
-Patch-mainline:
-References: 139359
-
-Fix the segfault of modpost called to build out-of-tree modules.
-
-Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
-
-diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
---- a/scripts/mod/modpost.c
-+++ b/scripts/mod/modpost.c
-@@ -613,6 +613,8 @@ add_depends(struct buffer *b, struct mod
- buf_printf(b, "__attribute__((section(\".modinfo\"))) =\n");
- buf_printf(b, "\"depends=");
- for (s = mod->unres; s; s = s->next) {
-+ const char *r;
-+
- if (!s->module)
- continue;
-
-@@ -620,8 +622,10 @@ add_depends(struct buffer *b, struct mod
- continue;
-
- s->module->seen = 1;
-- buf_printf(b, "%s%s", first ? "" : ",",
-- strrchr(s->module->name, '/') + 1);
-+ r = strrchr(s->module->name, '/');
-+ if (! r)
-+ continue;
-+ buf_printf(b, "%s%s", first ? "" : ",", r + 1);
- first = 0;
- }
- buf_printf(b, "\";\n");
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/scsi-missing-iomem-cast new/patches.fixes/scsi-missing-iomem-cast
--- old/patches.fixes/scsi-missing-iomem-cast 2006-02-14 21:26:47.000000000 +0100
+++ new/patches.fixes/scsi-missing-iomem-cast 1970-01-01 01:00:00.000000000 +0100
@@ -1,168 +0,0 @@
-From: Takashi Iwai <tiwai@xxxxxxx>
-Subject: [PATCH] Add cast to __iomem pointer in scsi drivers
-Patch-mainline:
-References:
-
-Add the missing cast to __iomem pointer in some scsi drivers.
-
-Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
-
----
-diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
-index d101a8a..13c9395 100644
---- a/drivers/scsi/megaraid.c
-+++ b/drivers/scsi/megaraid.c
-@@ -72,10 +72,10 @@ static unsigned short int max_mbox_busy_
- module_param(max_mbox_busy_wait, ushort, 0);
- MODULE_PARM_DESC(max_mbox_busy_wait, "Maximum wait for mailbox in microseconds if busy (default=MBOX_BUSY_WAIT=10)");
-
--#define RDINDOOR(adapter) readl((adapter)->base + 0x20)
--#define RDOUTDOOR(adapter) readl((adapter)->base + 0x2C)
--#define WRINDOOR(adapter,value) writel(value, (adapter)->base + 0x20)
--#define WROUTDOOR(adapter,value) writel(value, (adapter)->base + 0x2C)
-+#define RDINDOOR(adapter) readl((void __iomem *)((adapter)->base + 0x20))
-+#define RDOUTDOOR(adapter) readl((void __iomem *)((adapter)->base + 0x2C))
-+#define WRINDOOR(adapter,value) writel(value, (void __iomem *)((adapter)->base + 0x20))
-+#define WROUTDOOR(adapter,value) writel(value, (void __iomem *)((adapter)->base + 0x2C))
-
- /*
- * Global variables
-diff --git a/drivers/scsi/sata_svw.c b/drivers/scsi/sata_svw.c
-index d847256..862a3ba 100644
---- a/drivers/scsi/sata_svw.c
-+++ b/drivers/scsi/sata_svw.c
-@@ -110,26 +110,31 @@ static void k2_sata_tf_load(struct ata_p
- unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
-
- if (tf->ctl != ap->last_ctl) {
-- writeb(tf->ctl, ioaddr->ctl_addr);
-+ writeb(tf->ctl, (void __iomem *) ioaddr->ctl_addr);
- ap->last_ctl = tf->ctl;
- ata_wait_idle(ap);
- }
- if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
-- writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr);
-- writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr);
-- writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr);
-- writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr);
-- writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr);
-+ writew(tf->feature | (((u16)tf->hob_feature) << 8),
-+ (void __iomem *) ioaddr->feature_addr);
-+ writew(tf->nsect | (((u16)tf->hob_nsect) << 8),
-+ (void __iomem *) ioaddr->nsect_addr);
-+ writew(tf->lbal | (((u16)tf->hob_lbal) << 8),
-+ (void __iomem *) ioaddr->lbal_addr);
-+ writew(tf->lbam | (((u16)tf->hob_lbam) << 8),
-+ (void __iomem *) ioaddr->lbam_addr);
-+ writew(tf->lbah | (((u16)tf->hob_lbah) << 8),
-+ (void __iomem *) ioaddr->lbah_addr);
- } else if (is_addr) {
-- writew(tf->feature, ioaddr->feature_addr);
-- writew(tf->nsect, ioaddr->nsect_addr);
-- writew(tf->lbal, ioaddr->lbal_addr);
-- writew(tf->lbam, ioaddr->lbam_addr);
-- writew(tf->lbah, ioaddr->lbah_addr);
-+ writew(tf->feature, (void __iomem *) ioaddr->feature_addr);
-+ writew(tf->nsect, (void __iomem *) ioaddr->nsect_addr);
-+ writew(tf->lbal, (void __iomem *) ioaddr->lbal_addr);
-+ writew(tf->lbam, (void __iomem *) ioaddr->lbam_addr);
-+ writew(tf->lbah, (void __iomem *) ioaddr->lbah_addr);
- }
-
- if (tf->flags & ATA_TFLAG_DEVICE)
-- writeb(tf->device, ioaddr->device_addr);
-+ writeb(tf->device, (void __iomem *) ioaddr->device_addr);
-
- ata_wait_idle(ap);
- }
-@@ -141,12 +146,12 @@ static void k2_sata_tf_read(struct ata_p
- u16 nsect, lbal, lbam, lbah, feature;
-
- tf->command = k2_stat_check_status(ap);
-- tf->device = readw(ioaddr->device_addr);
-- feature = readw(ioaddr->error_addr);
-- nsect = readw(ioaddr->nsect_addr);
-- lbal = readw(ioaddr->lbal_addr);
-- lbam = readw(ioaddr->lbam_addr);
-- lbah = readw(ioaddr->lbah_addr);
-+ tf->device = readw((void __iomem *) ioaddr->device_addr);
-+ feature = readw((void __iomem *) ioaddr->error_addr);
-+ nsect = readw((void __iomem *) ioaddr->nsect_addr);
-+ lbal = readw((void __iomem *) ioaddr->lbal_addr);
-+ lbam = readw((void __iomem *) ioaddr->lbam_addr);
-+ lbah = readw((void __iomem *) ioaddr->lbah_addr);
-
- tf->feature = feature;
- tf->nsect = nsect;
-diff --git a/drivers/scsi/sata_vsc.c b/drivers/scsi/sata_vsc.c
-index 2e2c3b7..cacacc5 100644
---- a/drivers/scsi/sata_vsc.c
-+++ b/drivers/scsi/sata_vsc.c
-@@ -130,21 +130,26 @@ static void vsc_sata_tf_load(struct ata_
- vsc_intr_mask_update(ap, tf->ctl & ATA_NIEN);
- }
- if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
-- writew(tf->feature | (((u16)tf->hob_feature) << 8), ioaddr->feature_addr);
-- writew(tf->nsect | (((u16)tf->hob_nsect) << 8), ioaddr->nsect_addr);
-- writew(tf->lbal | (((u16)tf->hob_lbal) << 8), ioaddr->lbal_addr);
-- writew(tf->lbam | (((u16)tf->hob_lbam) << 8), ioaddr->lbam_addr);
-- writew(tf->lbah | (((u16)tf->hob_lbah) << 8), ioaddr->lbah_addr);
-+ writew(tf->feature | (((u16)tf->hob_feature) << 8),
-+ (void __iomem *) ioaddr->feature_addr);
-+ writew(tf->nsect | (((u16)tf->hob_nsect) << 8),
-+ (void __iomem *) ioaddr->nsect_addr);
-+ writew(tf->lbal | (((u16)tf->hob_lbal) << 8),
-+ (void __iomem *) ioaddr->lbal_addr);
-+ writew(tf->lbam | (((u16)tf->hob_lbam) << 8),
-+ (void __iomem *) ioaddr->lbam_addr);
-+ writew(tf->lbah | (((u16)tf->hob_lbah) << 8),
-+ (void __iomem *) ioaddr->lbah_addr);
- } else if (is_addr) {
-- writew(tf->feature, ioaddr->feature_addr);
-- writew(tf->nsect, ioaddr->nsect_addr);
-- writew(tf->lbal, ioaddr->lbal_addr);
-- writew(tf->lbam, ioaddr->lbam_addr);
-- writew(tf->lbah, ioaddr->lbah_addr);
-+ writew(tf->feature, (void __iomem *) ioaddr->feature_addr);
-+ writew(tf->nsect, (void __iomem *) ioaddr->nsect_addr);
-+ writew(tf->lbal, (void __iomem *) ioaddr->lbal_addr);
-+ writew(tf->lbam, (void __iomem *) ioaddr->lbam_addr);
-+ writew(tf->lbah, (void __iomem *) ioaddr->lbah_addr);
- }
-
- if (tf->flags & ATA_TFLAG_DEVICE)
-- writeb(tf->device, ioaddr->device_addr);
-+ writeb(tf->device, (void __iomem *) ioaddr->device_addr);
-
- ata_wait_idle(ap);
- }
-@@ -156,12 +161,12 @@ static void vsc_sata_tf_read(struct ata_
- u16 nsect, lbal, lbam, lbah, feature;
-
- tf->command = ata_check_status(ap);
-- tf->device = readw(ioaddr->device_addr);
-- feature = readw(ioaddr->error_addr);
-- nsect = readw(ioaddr->nsect_addr);
-- lbal = readw(ioaddr->lbal_addr);
-- lbam = readw(ioaddr->lbam_addr);
-- lbah = readw(ioaddr->lbah_addr);
-+ tf->device = readw((void __iomem *) ioaddr->device_addr);
-+ feature = readw((void __iomem *) ioaddr->error_addr);
-+ nsect = readw((void __iomem *) ioaddr->nsect_addr);
-+ lbal = readw((void __iomem *) ioaddr->lbal_addr);
-+ lbam = readw((void __iomem *) ioaddr->lbam_addr);
-+ lbah = readw((void __iomem *) ioaddr->lbah_addr);
-
- tf->feature = feature;
- tf->nsect = nsect;
-@@ -279,8 +284,8 @@ static void __devinit vsc_sata_setup_por
- port->ctl_addr = base + VSC_SATA_TF_CTL_OFFSET;
- port->bmdma_addr = base + VSC_SATA_DMA_CMD_OFFSET;
- port->scr_addr = base + VSC_SATA_SCR_STATUS_OFFSET;
-- writel(0, base + VSC_SATA_UP_DESCRIPTOR_OFFSET);
-- writel(0, base + VSC_SATA_UP_DATA_BUFFER_OFFSET);
-+ writel(0, (void __iomem *) (base + VSC_SATA_UP_DESCRIPTOR_OFFSET));
-+ writel(0, (void __iomem *) (base + VSC_SATA_UP_DATA_BUFFER_OFFSET));
- }
-
-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.fixes/xfrm-endless-loop new/patches.fixes/xfrm-endless-loop
--- old/patches.fixes/xfrm-endless-loop 2006-08-01 20:10:20.000000000 +0200
+++ new/patches.fixes/xfrm-endless-loop 1970-01-01 01:00:00.000000000 +0100
@@ -1,52 +0,0 @@
-From: Jiri Bohac <jbohac@xxxxxxx>
-Subject: Debug possible infinite loop in xfrm_lookup
-References: 117749, 115200
-
-It seems that the route xfrm_lookup is given on input can go
-away when it sleeps.
-
-This used to cause lockups in an infinite loop. The
-problem has probably been fixed by Olaf Kirch and Herbert Xu in 2.6.16-rc3.
-Although the missing route should not lock up the system any more, we're
-still not sure that the problem has been entirely fixed.
-
-This modified version of Olaf's patch terminates the possibly infinite loop
-after 1 minute and prints a warning and a stack dump. If anyone sees the debug
-output in their syslog, please let me know.
-
-
- net/xfrm/xfrm_policy.c | 12 +++++++++++-
- 1 files changed, 11 insertions(+), 1 deletion(-)
-
---- linux-2.6.15.orig/net/xfrm/xfrm_policy.c 2006-02-14 10:33:11.000000000 -0800
-+++ linux-2.6.15/net/xfrm/xfrm_policy.c 2006-02-14 10:37:55.000000000 -0800
-@@ -785,7 +785,18 @@
- u16 family;
- u8 dir = policy_to_flow_dir(XFRM_POLICY_OUT);
- u32 sk_sid = security_sk_sid(sk, fl, dir);
-+ unsigned long timeout = jiffies + 60 * HZ;
-+ int loops = 0;
-+
- restart:
-+ if (unlikely(time_after(jiffies, timeout))) {
-+ printk(KERN_NOTICE "xfrm_lookup bailing out after 60 seconds and %d loops\n", loops);
-+ dump_stack();
-+ err = -EHOSTUNREACH;
-+ goto error_nopol;
-+ }
-+ ++loops;
-+
- genid = atomic_read(&flow_cache_genid);
- policy = NULL;
- if (sk && sk->sk_policy[1])
-@@ -903,8 +914,9 @@
- return 0;
-
- error:
-- dst_release(dst_orig);
- xfrm_pol_put(policy);
-+error_nopol:
-+ dst_release(dst_orig);
- *dst_p = NULL;
- return err;
- }

++++++ patches.kernel.org.tar.bz2 ++++++

++++++ patches.rpmify.tar.bz2 ++++++

++++++ patches.suse.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/bootmem-warning new/patches.suse/bootmem-warning
--- old/patches.suse/bootmem-warning 2006-03-07 14:36:38.000000000 +0100
+++ new/patches.suse/bootmem-warning 1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-Subject: Print a backtrace when bootmem allocation fails
-References: SUSE149117
-From: ak@xxxxxxx
-
-Debugging patch.
-Will make tracking down more node setup bugs on x86-64 easier.
-
-Index: linux-2.6.15/mm/bootmem.c
-===================================================================
---- linux-2.6.15.orig/mm/bootmem.c
-+++ linux-2.6.15/mm/bootmem.c
-@@ -403,6 +403,7 @@ void * __init __alloc_bootmem(unsigned l
- * Whoops, we cannot satisfy the allocation request.
- */
- printk(KERN_ALERT "bootmem alloc of %lu bytes failed!\n", size);
-+ WARN_ON(1);
- panic("Out of memory");
- return NULL;
- }
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/filp-slab-rcu new/patches.suse/filp-slab-rcu
--- old/patches.suse/filp-slab-rcu 2006-06-06 08:44:44.000000000 +0200
+++ new/patches.suse/filp-slab-rcu 2006-08-22 14:05:50.000000000 +0200
@@ -1,6 +1,6 @@
From: Jens Axboe <axboe@xxxxxxx>
Subject: Let the filp slab use SLAB_DESTROY_BY_RCU
-Patch-mainline:
+Patch-mainline: Not yet (going for 2.6.19)
References: 172825

This solves the cache affinity problem with RCU slab objects, since we
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch new/patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
--- old/patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch 2006-08-23 15:41:46.000000000 +0200
@@ -0,0 +1,280 @@
+From: Jeff Mahoney <jeffm@xxxxxxxx>
+Subject: [PATCH 2/4] reiserfs: clean up bitmap block buffer head references
+Patch-mainline: 2.6.17-mm2; Scheduled for 2.6.19
+
+Similar to the SB_JOURNAL cleanup that was accepted a while ago, this patch
+uses a temporary variable for buffer head references from the bitmap info
+array.
+
+This makes the code much more readable in some areas.
+
+It also uses proper reference counting, doing a get_bh() after using the
+pointer from the array and brelse()'ing it later. This may seem silly, but a
+later patch will replace the simple temporary variables with an actual read,
+so the reference freeing will be used then.
+
+Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
+Cc: <reiserfs-dev@xxxxxxxxxxx>
+Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
+---
+
+ fs/reiserfs/bitmap.c | 60 +++++++++++++++++++++++----------------
+ fs/reiserfs/resize.c | 62 +++++++++++++++++++++++------------------
+ 2 files changed, 72 insertions(+), 50 deletions(-)
+
+diff -puN fs/reiserfs/bitmap.c~reiserfs-clean-up-bitmap-block-buffer-head-references fs/reiserfs/bitmap.c
+--- a/fs/reiserfs/bitmap.c~reiserfs-clean-up-bitmap-block-buffer-head-references
++++ a/fs/reiserfs/bitmap.c
+@@ -59,6 +59,7 @@ static inline void get_bit_address(struc
+ int is_reusable(struct super_block *s, b_blocknr_t block, int bit_value)
+ {
+ int bmap, offset;
++ struct buffer_head *bh;
+
+ if (block == 0 || block >= SB_BLOCK_COUNT(s)) {
+ reiserfs_warning(s,
+@@ -96,20 +97,21 @@ int is_reusable(struct super_block *s, b
+ return 0;
+ }
+
+- if ((bit_value == 0 &&
+- reiserfs_test_le_bit(offset, SB_AP_BITMAP(s)[bmap].bh->b_data)) ||
+- (bit_value == 1 &&
+- reiserfs_test_le_bit(offset, SB_AP_BITMAP(s)[bmap].bh->b_data) == 0)) {
++ bh = SB_AP_BITMAP(s)[bmap].bh;
++ get_bh(bh);
++
++ if ((bit_value == 0 && reiserfs_test_le_bit(offset, bh->b_data)) ||
++ (bit_value == 1 && reiserfs_test_le_bit(offset, bh->b_data) == 0)) {
+ reiserfs_warning(s,
+ "vs-4040: is_reusable: corresponding bit of block %lu does not "
+ "match required value (bmap==%d, offset==%d) test_bit==%d",
+- block, bmap, offset, reiserfs_test_le_bit(offset,
+- SB_AP_BITMAP
+- (s)[bmap].bh->
+- b_data));
++ block, bmap, offset,
++ reiserfs_test_le_bit(offset, bh->b_data));
+
++ brelse(bh);
+ return 0;
+ }
++ brelse(bh);
+
+ if (bit_value == 0 && block == SB_ROOT_BLOCK(s)) {
+ reiserfs_warning(s,
+@@ -151,6 +153,7 @@ static int scan_bitmap_block(struct reis
+ {
+ struct super_block *s = th->t_super;
+ struct reiserfs_bitmap_info *bi = &SB_AP_BITMAP(s)[bmap_n];
++ struct buffer_head *bh;
+ int end, next;
+ int org = *beg;
+
+@@ -169,22 +172,28 @@ static int scan_bitmap_block(struct reis
+ bmap_n);
+ return 0;
+ }
+- if (buffer_locked(bi->bh)) {
++ bh = bi->bh;
++ get_bh(bh);
++
++ if (buffer_locked(bh)) {
+ PROC_INFO_INC(s, scan_bitmap.wait);
+- __wait_on_buffer(bi->bh);
++ __wait_on_buffer(bh);
+ }
+
+ while (1) {
+ cont:
+- if (bi->free_count < min)
++ if (bi->free_count < min) {
++ brelse(bh);
+ return 0; // No free blocks in this bitmap
++ }
+
+ /* search for a first zero bit -- beggining of a window */
+ *beg = reiserfs_find_next_zero_le_bit
+- ((unsigned long *)(bi->bh->b_data), boundary, *beg);
++ ((unsigned long *)(bh->b_data), boundary, *beg);
+
+ if (*beg + min > boundary) { /* search for a zero bit fails or the rest of bitmap block
+ * cannot contain a zero window of minimum size */
++ brelse(bh);
+ return 0;
+ }
+
+@@ -193,7 +202,7 @@ static int scan_bitmap_block(struct reis
+ /* first zero bit found; we check next bits */
+ for (end = *beg + 1;; end++) {
+ if (end >= *beg + max || end >= boundary
+- || reiserfs_test_le_bit(end, bi->bh->b_data)) {
++ || reiserfs_test_le_bit(end, bh->b_data)) {
+ next = end;
+ break;
+ }
+@@ -207,12 +216,12 @@ static int scan_bitmap_block(struct reis
+ * (end) points to one bit after the window end */
+ if (end - *beg >= min) { /* it seems we have found window of proper size */
+ int i;
+- reiserfs_prepare_for_journal(s, bi->bh, 1);
++ reiserfs_prepare_for_journal(s, bh, 1);
+ /* try to set all blocks used checking are they still free */
+ for (i = *beg; i < end; i++) {
+ /* It seems that we should not check in journal again. */
+ if (reiserfs_test_and_set_le_bit
+- (i, bi->bh->b_data)) {
++ (i, bh->b_data)) {
+ /* bit was set by another process
+ * while we slept in prepare_for_journal() */
+ PROC_INFO_INC(s, scan_bitmap.stolen);
+@@ -224,17 +233,16 @@ static int scan_bitmap_block(struct reis
+ /* otherwise we clear all bit were set ... */
+ while (--i >= *beg)
+ reiserfs_test_and_clear_le_bit
+- (i, bi->bh->b_data);
+- reiserfs_restore_prepared_buffer(s,
+- bi->
+- bh);
++ (i, bh->b_data);
++ reiserfs_restore_prepared_buffer(s, bh);
+ *beg = org;
+ /* ... and search again in current block from beginning */
+ goto cont;
+ }
+ }
+ bi->free_count -= (end - *beg);
+- journal_mark_dirty(th, s, bi->bh);
++ journal_mark_dirty(th, s, bh);
++ brelse(bh);
+
+ /* free block count calculation */
+ reiserfs_prepare_for_journal(s, SB_BUFFER_WITH_SB(s),
+@@ -383,7 +391,7 @@ static void _reiserfs_free_block(struct
+ {
+ struct super_block *s = th->t_super;
+ struct reiserfs_super_block *rs;
+- struct buffer_head *sbh;
++ struct buffer_head *sbh, *bmbh;
+ struct reiserfs_bitmap_info *apbi;
+ int nr, offset;
+
+@@ -404,16 +412,20 @@ static void _reiserfs_free_block(struct
+ return;
+ }
+
+- reiserfs_prepare_for_journal(s, apbi[nr].bh, 1);
++ bmbh = apbi[nr].bh;
++ get_bh(bmbh);
++
++ reiserfs_prepare_for_journal(s, bmbh, 1);
+
+ /* clear bit for the given block in bit map */
+- if (!reiserfs_test_and_clear_le_bit(offset, apbi[nr].bh->b_data)) {
++ if (!reiserfs_test_and_clear_le_bit(offset, bmbh->b_data)) {
+ reiserfs_warning(s, "vs-4080: reiserfs_free_block: "
+ "free_block (%s:%lu)[dev:blocknr]: bit already cleared",
+ reiserfs_bdevname(s), block);
+ }
+ apbi[nr].free_count++;
+- journal_mark_dirty(th, s, apbi[nr].bh);
++ journal_mark_dirty(th, s, bmbh);
++ brelse(bmbh);
+
+ reiserfs_prepare_for_journal(s, sbh, 1);
+ /* update super block */
+diff -puN fs/reiserfs/resize.c~reiserfs-clean-up-bitmap-block-buffer-head-references fs/reiserfs/resize.c
+--- a/fs/reiserfs/resize.c~reiserfs-clean-up-bitmap-block-buffer-head-references
++++ a/fs/reiserfs/resize.c
+@@ -22,6 +22,7 @@ int reiserfs_resize(struct super_block *
+ int err = 0;
+ struct reiserfs_super_block *sb;
+ struct reiserfs_bitmap_info *bitmap;
++ struct reiserfs_bitmap_info *info;
+ struct reiserfs_bitmap_info *old_bitmap = SB_AP_BITMAP(s);
+ struct buffer_head *bh;
+ struct reiserfs_transaction_handle th;
+@@ -127,16 +128,19 @@ int reiserfs_resize(struct super_block *
+ * transaction begins, and the new bitmaps don't matter if the
+ * transaction fails. */
+ for (i = bmap_nr; i < bmap_nr_new; i++) {
+- bitmap[i].bh = sb_getblk(s, i * s->s_blocksize * 8);
+- memset(bitmap[i].bh->b_data, 0, sb_blocksize(sb));
+- reiserfs_test_and_set_le_bit(0, bitmap[i].bh->b_data);
+-
+- set_buffer_uptodate(bitmap[i].bh);
+- mark_buffer_dirty(bitmap[i].bh);
+- sync_dirty_buffer(bitmap[i].bh);
++ bh = sb_getblk(s, i * s->s_blocksize * 8);
++ get_bh(bh);
++ memset(bh->b_data, 0, sb_blocksize(sb));
++ reiserfs_test_and_set_le_bit(0, bh->b_data);
++
++ set_buffer_uptodate(bh);
++ mark_buffer_dirty(bh);
++ sync_dirty_buffer(bh);
+ // update bitmap_info stuff
+ bitmap[i].first_zero_hint = 1;
+ bitmap[i].free_count = sb_blocksize(sb) * 8 - 1;
++ bitmap[i].bh = bh;
++ brelse(bh);
+ }
+ /* free old bitmap blocks array */
+ SB_AP_BITMAP(s) = bitmap;
+@@ -150,30 +154,36 @@ int reiserfs_resize(struct super_block *
+ if (err)
+ return err;
+
+- /* correct last bitmap blocks in old and new disk layout */
+- reiserfs_prepare_for_journal(s, SB_AP_BITMAP(s)[bmap_nr - 1].bh, 1);
+- for (i = block_r; i < s->s_blocksize * 8; i++)
+- reiserfs_test_and_clear_le_bit(i,
+- SB_AP_BITMAP(s)[bmap_nr -
+- 1].bh->b_data);
+- SB_AP_BITMAP(s)[bmap_nr - 1].free_count += s->s_blocksize * 8 - block_r;
+- if (!SB_AP_BITMAP(s)[bmap_nr - 1].first_zero_hint)
+- SB_AP_BITMAP(s)[bmap_nr - 1].first_zero_hint = block_r;
++ /* Extend old last bitmap block - new blocks have been made available */
++ info = SB_AP_BITMAP(s) + bmap_nr - 1;
++ bh = info->bh;
++ get_bh(bh);
+
+- journal_mark_dirty(&th, s, SB_AP_BITMAP(s)[bmap_nr - 1].bh);
++ reiserfs_prepare_for_journal(s, bh, 1);
++ for (i = block_r; i < s->s_blocksize * 8; i++)
++ reiserfs_test_and_clear_le_bit(i, bh->b_data);
++ info->free_count += s->s_blocksize * 8 - block_r;
++ if (!info->first_zero_hint)
++ info->first_zero_hint = block_r;
++
++ journal_mark_dirty(&th, s, bh);
++ brelse(bh);
++
++ /* Correct new last bitmap block - It may not be full */
++ info = SB_AP_BITMAP(s) + bmap_nr_new - 1;
++ bh = info->bh;
++ get_bh(bh);
+
+- reiserfs_prepare_for_journal(s, SB_AP_BITMAP(s)[bmap_nr_new - 1].bh, 1);
++ reiserfs_prepare_for_journal(s, bh, 1);
+ for (i = block_r_new; i < s->s_blocksize * 8; i++)
+- reiserfs_test_and_set_le_bit(i,
+- SB_AP_BITMAP(s)[bmap_nr_new -
+- 1].bh->b_data);
+- journal_mark_dirty(&th, s, SB_AP_BITMAP(s)[bmap_nr_new - 1].bh);
++ reiserfs_test_and_set_le_bit(i, bh->b_data);
++ journal_mark_dirty(&th, s, bh);
++ brelse(bh);
+
+- SB_AP_BITMAP(s)[bmap_nr_new - 1].free_count -=
+- s->s_blocksize * 8 - block_r_new;
++ info->free_count -= s->s_blocksize * 8 - block_r_new;
+ /* Extreme case where last bitmap is the only valid block in itself. */
+- if (!SB_AP_BITMAP(s)[bmap_nr_new - 1].free_count)
+- SB_AP_BITMAP(s)[bmap_nr_new - 1].first_zero_hint = 0;
++ if (!info->free_count)
++ info->first_zero_hint = 0;
+ /* update super */
+ reiserfs_prepare_for_journal(s, SB_BUFFER_WITH_SB(s), 1);
+ free_blocks = SB_FREE_BLOCKS(s);
+_
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch new/patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
--- old/patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch 2006-08-23 15:41:46.000000000 +0200
@@ -0,0 +1,129 @@
+From: Jeff Mahoney <jeffm@xxxxxxxx>
+Subject: [PATCH 1/4] reiserfs: fix is_reusable bitmap check to not traverse the bitmap info array
+Patch-mainline: 2.6.17-mm2; Scheduled for 2.6.19
+
+There is a check in is_reusable to determine if a particular block is a bitmap
+block. It verifies this by going through the array of bitmap block buffer
+heads and comparing the block number to each one.
+
+Bitmap blocks are at defined locations on the disk in both old and current
+formats. Simply checking against the known good values is enough.
+
+This is a trivial optimization for a non-production codepath, but this is the
+first in a series of patches that will ultimately remove the buffer heads from
+that array.
+
+Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
+Cc: <reiserfs-dev@xxxxxxxxxxx>
+Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
+---
+
+ fs/reiserfs/bitmap.c | 40 +++++++++++++++++++------------
+ fs/reiserfs/super.c | 2 +
+ include/linux/reiserfs_fs_sb.h | 1
+ 3 files changed, 28 insertions(+), 15 deletions(-)
+
+diff -puN fs/reiserfs/bitmap.c~reiserfs-fix-is_reusable-bitmap-check-to-not-traverse-the-bitmap-info-array fs/reiserfs/bitmap.c
+--- a/fs/reiserfs/bitmap.c~reiserfs-fix-is_reusable-bitmap-check-to-not-traverse-the-bitmap-info-array
++++ a/fs/reiserfs/bitmap.c
+@@ -50,16 +50,15 @@ static inline void get_bit_address(struc
+ {
+ /* It is in the bitmap block number equal to the block
+ * number divided by the number of bits in a block. */
+- *bmap_nr = block / (s->s_blocksize << 3);
++ *bmap_nr = block >> (s->s_blocksize_bits + 3);
+ /* Within that bitmap block it is located at bit offset *offset. */
+ *offset = block & ((s->s_blocksize << 3) - 1);
+- return;
+ }
+
+ #ifdef CONFIG_REISERFS_CHECK
+ int is_reusable(struct super_block *s, b_blocknr_t block, int bit_value)
+ {
+- int i, j;
++ int bmap, offset;
+
+ if (block == 0 || block >= SB_BLOCK_COUNT(s)) {
+ reiserfs_warning(s,
+@@ -68,34 +67,45 @@ int is_reusable(struct super_block *s, b
+ return 0;
+ }
+
+- /* it can't be one of the bitmap blocks */
+- for (i = 0; i < SB_BMAP_NR(s); i++)
+- if (block == SB_AP_BITMAP(s)[i].bh->b_blocknr) {
++ get_bit_address(s, block, &bmap, &offset);
++
++ /* Old format filesystem? Unlikely, but the bitmaps are all up front so
++ * we need to account for it. */
++ if (unlikely(test_bit(REISERFS_OLD_FORMAT,
++ &(REISERFS_SB(s)->s_properties)))) {
++ b_blocknr_t bmap1 = REISERFS_SB(s)->s_sbh->b_blocknr + 1;
++ if (block >= bmap1 && block <= bmap1 + SB_BMAP_NR(s)) {
++ reiserfs_warning(s, "vs: 4019: is_reusable: "
++ "bitmap block %lu(%u) can't be freed or reused",
++ block, SB_BMAP_NR(s));
++ return 0;
++ }
++ } else {
++ if (offset == 0) {
+ reiserfs_warning(s, "vs: 4020: is_reusable: "
+ "bitmap block %lu(%u) can't be freed or reused",
+ block, SB_BMAP_NR(s));
+ return 0;
+ }
++ }
+
+- get_bit_address(s, block, &i, &j);
+-
+- if (i >= SB_BMAP_NR(s)) {
++ if (bmap >= SB_BMAP_NR(s)) {
+ reiserfs_warning(s,
+ "vs-4030: is_reusable: there is no so many bitmap blocks: "
+- "block=%lu, bitmap_nr=%d", block, i);
++ "block=%lu, bitmap_nr=%d", block, bmap);
+ return 0;
+ }
+
+ if ((bit_value == 0 &&
+- reiserfs_test_le_bit(j, SB_AP_BITMAP(s)[i].bh->b_data)) ||
++ reiserfs_test_le_bit(offset, SB_AP_BITMAP(s)[bmap].bh->b_data)) ||
+ (bit_value == 1 &&
+- reiserfs_test_le_bit(j, SB_AP_BITMAP(s)[i].bh->b_data) == 0)) {
++ reiserfs_test_le_bit(offset, SB_AP_BITMAP(s)[bmap].bh->b_data) == 0)) {
+ reiserfs_warning(s,
+ "vs-4040: is_reusable: corresponding bit of block %lu does not "
+- "match required value (i==%d, j==%d) test_bit==%d",
+- block, i, j, reiserfs_test_le_bit(j,
++ "match required value (bmap==%d, offset==%d) test_bit==%d",
++ block, bmap, offset, reiserfs_test_le_bit(offset,
+ SB_AP_BITMAP
+- (s)[i].bh->
++ (s)[bmap].bh->
+ b_data));
+
+ return 0;
+diff -puN fs/reiserfs/super.c~reiserfs-fix-is_reusable-bitmap-check-to-not-traverse-the-bitmap-info-array fs/reiserfs/super.c
+--- a/fs/reiserfs/super.c~reiserfs-fix-is_reusable-bitmap-check-to-not-traverse-the-bitmap-info-array
++++ a/fs/reiserfs/super.c
+@@ -1823,6 +1823,8 @@ static int reiserfs_fill_super(struct su
+ if (is_reiserfs_3_5(rs)
+ || (is_reiserfs_jr(rs) && SB_VERSION(s) == REISERFS_VERSION_1))
+ set_bit(REISERFS_3_5, &(sbi->s_properties));
++ else if (old_format)
++ set_bit(REISERFS_OLD_FORMAT, &(sbi->s_properties));
+ else
+ set_bit(REISERFS_3_6, &(sbi->s_properties));
+
+diff -puN include/linux/reiserfs_fs_sb.h~reiserfs-fix-is_reusable-bitmap-check-to-not-traverse-the-bitmap-info-array include/linux/reiserfs_fs_sb.h
+--- a/include/linux/reiserfs_fs_sb.h~reiserfs-fix-is_reusable-bitmap-check-to-not-traverse-the-bitmap-info-array
++++ a/include/linux/reiserfs_fs_sb.h
+@@ -414,6 +414,7 @@ struct reiserfs_sb_info {
+ /* Definitions of reiserfs on-disk properties: */
+ #define REISERFS_3_5 0
+ #define REISERFS_3_6 1
++#define REISERFS_OLD_FORMAT 2
+
+ enum reiserfs_mount_options {
+ /* Mount options */
+_
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/reiserfs-on-demand-bitmap-loading.patch new/patches.suse/reiserfs-on-demand-bitmap-loading.patch
--- old/patches.suse/reiserfs-on-demand-bitmap-loading.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/reiserfs-on-demand-bitmap-loading.patch 2006-08-23 15:41:46.000000000 +0200
@@ -0,0 +1,353 @@
+From: Jeff Mahoney <jeffm@xxxxxxxx>
+Subject: [PATCH 4/4] reiserfs: on demand bitmap loading
+Patch-mainline: 2.6.17-mm2; Scheduled for 2.6.19
+
+This is the patch the three previous ones have been leading up to.
+
+It changes the behavior of ReiserFS from loading and caching all the bitmaps
+as special, to treating the bitmaps like any other bit of metadata and just
+letting the system-wide caches figure out what to hang on to.
+
+Buffer heads are allocated on the fly, so there is no need to retain pointers
+to all of them. The caching of the metadata occurs when the data is read and
+updated, and is considered invalid and uncached until then.
+
+I needed to remove the vs-4040 check for performing a duplicate operation on a
+particular bit. The reason is that while the other sites for working with
+bitmaps are allowed to schedule, is_reusable() is called from do_balance(),
+which will panic if a schedule occurs in certain places.
+
+The benefit of on-demand bitmaps clearly outweighs a sanity check that depends
+on a compile-time option that is discouraged.
+
+Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
+Cc: <reiserfs-dev@xxxxxxxxxxx>
+Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
+---
+
+ fs/reiserfs/bitmap.c | 97 ++++++++++++++-----------------
+ fs/reiserfs/resize.c | 24 +++++--
+ fs/reiserfs/super.c | 39 ++----------
+ include/linux/reiserfs_fs_sb.h | 1
+ 4 files changed, 70 insertions(+), 91 deletions(-)
+
+diff -puN fs/reiserfs/bitmap.c~reiserfs-on-demand-bitmap-loading fs/reiserfs/bitmap.c
+--- a/fs/reiserfs/bitmap.c~reiserfs-on-demand-bitmap-loading
++++ a/fs/reiserfs/bitmap.c
+@@ -60,7 +60,6 @@ static inline void get_bit_address(struc
+ int is_reusable(struct super_block *s, b_blocknr_t block, int bit_value)
+ {
+ int bmap, offset;
+- struct buffer_head *bh;
+
+ if (block == 0 || block >= SB_BLOCK_COUNT(s)) {
+ reiserfs_warning(s,
+@@ -98,22 +97,6 @@ int is_reusable(struct super_block *s, b
+ return 0;
+ }
+
+- bh = SB_AP_BITMAP(s)[bmap].bh;
+- get_bh(bh);
+-
+- if ((bit_value == 0 && reiserfs_test_le_bit(offset, bh->b_data)) ||
+- (bit_value == 1 && reiserfs_test_le_bit(offset, bh->b_data) == 0)) {
+- reiserfs_warning(s,
+- "vs-4040: is_reusable: corresponding bit of block %lu does not "
+- "match required value (bmap==%d, offset==%d) test_bit==%d",
+- block, bmap, offset,
+- reiserfs_test_le_bit(offset, bh->b_data));
+-
+- brelse(bh);
+- return 0;
+- }
+- brelse(bh);
+-
+ if (bit_value == 0 && block == SB_ROOT_BLOCK(s)) {
+ reiserfs_warning(s,
+ "vs-4050: is_reusable: this is root block (%u), "
+@@ -173,13 +156,10 @@ static int scan_bitmap_block(struct reis
+ bmap_n);
+ return 0;
+ }
+- bh = bi->bh;
+- get_bh(bh);
+
+- if (buffer_locked(bh)) {
+- PROC_INFO_INC(s, scan_bitmap.wait);
+- __wait_on_buffer(bh);
+- }
++ bh = reiserfs_read_bitmap_block(s, bmap_n);
++ if (bh == NULL)
++ return 0;
+
+ while (1) {
+ cont:
+@@ -285,9 +265,20 @@ static int bmap_hash_id(struct super_blo
+ */
+ static inline int block_group_used(struct super_block *s, u32 id)
+ {
+- int bm;
+- bm = bmap_hash_id(s, id);
+- if (SB_AP_BITMAP(s)[bm].free_count > ((s->s_blocksize << 3) * 60 / 100)) {
++ int bm = bmap_hash_id(s, id);
++ struct reiserfs_bitmap_info *info = &SB_AP_BITMAP(s)[bm];
++
++ /* If we don't have cached information on this bitmap block, we're
++ * going to have to load it later anyway. Loading it here allows us
++ * to make a better decision. This favors long-term performace gain
++ * with a better on-disk layout vs. a short term gain of skipping the
++ * read and potentially having a bad placement. */
++ if (info->first_zero_hint == 0) {
++ struct buffer_head *bh = reiserfs_read_bitmap_block(s, bm);
++ brelse(bh);
++ }
++
++ if (info->free_count > ((s->s_blocksize << 3) * 60 / 100)) {
+ return 0;
+ }
+ return 1;
+@@ -413,8 +404,9 @@ static void _reiserfs_free_block(struct
+ return;
+ }
+
+- bmbh = apbi[nr].bh;
+- get_bh(bmbh);
++ bmbh = reiserfs_read_bitmap_block(s, nr);
++ if (!bmbh)
++ return;
+
+ reiserfs_prepare_for_journal(s, bmbh, 1);
+
+@@ -1320,6 +1312,7 @@ struct buffer_head *reiserfs_read_bitmap
+ unsigned int bitmap)
+ {
+ b_blocknr_t block = (sb->s_blocksize << 3) * bitmap;
++ struct reiserfs_bitmap_info *info = SB_AP_BITMAP(sb) + bitmap;
+ struct buffer_head *bh;
+
+ /* Way old format filesystems had the bitmaps packed up front.
+@@ -1330,9 +1323,21 @@ struct buffer_head *reiserfs_read_bitmap
+ else if (bitmap == 0)
+ block = (REISERFS_DISK_OFFSET_IN_BYTES >> sb->s_blocksize_bits) + 1;
+
+- bh = sb_getblk(sb, block);
+- if (!buffer_uptodate(bh))
+- ll_rw_block(READ, 1, &bh);
++ bh = sb_bread(sb, block);
++ if (bh == NULL)
++ reiserfs_warning(sb, "sh-2029: %s: bitmap block (#%lu) "
++ "reading failed", __FUNCTION__, bh->b_blocknr);
++ else {
++ if (buffer_locked(bh)) {
++ PROC_INFO_INC(sb, scan_bitmap.wait);
++ __wait_on_buffer(bh);
++ }
++ BUG_ON(!buffer_uptodate(bh));
++ BUG_ON(atomic_read(&bh->b_count) == 0);
++
++ if (info->first_zero_hint == 0)
++ reiserfs_cache_bitmap_metadata(sb, bh, info);
++ }
+
+ return bh;
+ }
+@@ -1340,7 +1345,6 @@ struct buffer_head *reiserfs_read_bitmap
+ int reiserfs_init_bitmap_cache(struct super_block *sb)
+ {
+ struct reiserfs_bitmap_info *bitmap;
+- int i;
+
+ bitmap = vmalloc(sizeof (*bitmap) * SB_BMAP_NR(sb));
+ if (bitmap == NULL)
+@@ -1348,28 +1352,15 @@ int reiserfs_init_bitmap_cache(struct su
+
+ memset(bitmap, 0, sizeof (*bitmap) * SB_BMAP_NR(sb));
+
+- for (i = 0; i < SB_BMAP_NR(sb); i++)
+- bitmap[i].bh = reiserfs_read_bitmap_block(sb, i);
+-
+- /* make sure we have them all */
+- for (i = 0; i < SB_BMAP_NR(sb); i++) {
+- wait_on_buffer(bitmap[i].bh);
+- if (!buffer_uptodate(bitmap[i].bh)) {
+- reiserfs_warning(sb, "sh-2029: %s: "
+- "bitmap block (#%lu) reading failed",
+- __FUNCTION__, bitmap[i].bh->b_blocknr);
+- for (i = 0; i < SB_BMAP_NR(sb); i++)
+- brelse(bitmap[i].bh);
+- vfree(bitmap);
+- return -EIO;
+- }
+- }
+-
+- /* Cache the info on the bitmaps before we get rolling */
+- for (i = 0; i < SB_BMAP_NR(sb); i++)
+- reiserfs_cache_bitmap_metadata(sb, bitmap[i].bh, &bitmap[i]);
+-
+ SB_AP_BITMAP(sb) = bitmap;
+
+ return 0;
+ }
++
++void reiserfs_free_bitmap_cache(struct super_block *sb)
++{
++ if (SB_AP_BITMAP(sb)) {
++ vfree(SB_AP_BITMAP(sb));
++ SB_AP_BITMAP(sb) = NULL;
++ }
++}
+diff -puN fs/reiserfs/resize.c~reiserfs-on-demand-bitmap-loading fs/reiserfs/resize.c
+--- a/fs/reiserfs/resize.c~reiserfs-on-demand-bitmap-loading
++++ a/fs/reiserfs/resize.c
+@@ -128,8 +128,9 @@ int reiserfs_resize(struct super_block *
+ * transaction begins, and the new bitmaps don't matter if the
+ * transaction fails. */
+ for (i = bmap_nr; i < bmap_nr_new; i++) {
+- bh = sb_getblk(s, i * s->s_blocksize * 8);
+- get_bh(bh);
++ /* don't use read_bitmap_block since it will cache
++ * the uninitialized bitmap */
++ bh = sb_bread(s, i * s->s_blocksize * 8);
+ memset(bh->b_data, 0, sb_blocksize(sb));
+ reiserfs_test_and_set_le_bit(0, bh->b_data);
+ reiserfs_cache_bitmap_metadata(s, bh, bitmap + i);
+@@ -140,7 +141,6 @@ int reiserfs_resize(struct super_block *
+ // update bitmap_info stuff
+ bitmap[i].first_zero_hint = 1;
+ bitmap[i].free_count = sb_blocksize(sb) * 8 - 1;
+- bitmap[i].bh = bh;
+ brelse(bh);
+ }
+ /* free old bitmap blocks array */
+@@ -157,8 +157,13 @@ int reiserfs_resize(struct super_block *
+
+ /* Extend old last bitmap block - new blocks have been made available */
+ info = SB_AP_BITMAP(s) + bmap_nr - 1;
+- bh = info->bh;
+- get_bh(bh);
++ bh = reiserfs_read_bitmap_block(s, bmap_nr - 1);
++ if (!bh) {
++ int jerr = journal_end(&th, s, 10);
++ if (jerr)
++ return jerr;
++ return -EIO;
++ }
+
+ reiserfs_prepare_for_journal(s, bh, 1);
+ for (i = block_r; i < s->s_blocksize * 8; i++)
+@@ -172,8 +177,13 @@ int reiserfs_resize(struct super_block *
+
+ /* Correct new last bitmap block - It may not be full */
+ info = SB_AP_BITMAP(s) + bmap_nr_new - 1;
+- bh = info->bh;
+- get_bh(bh);
++ bh = reiserfs_read_bitmap_block(s, bmap_nr_new - 1);
++ if (!bh) {
++ int jerr = journal_end(&th, s, 10);
++ if (jerr)
++ return jerr;
++ return -EIO;
++ }
+
+ reiserfs_prepare_for_journal(s, bh, 1);
+ for (i = block_r_new; i < s->s_blocksize * 8; i++)
+diff -puN fs/reiserfs/super.c~reiserfs-on-demand-bitmap-loading fs/reiserfs/super.c
+--- a/fs/reiserfs/super.c~reiserfs-on-demand-bitmap-loading
++++ a/fs/reiserfs/super.c
+@@ -432,7 +432,6 @@ int remove_save_link(struct inode *inode
+
+ static void reiserfs_put_super(struct super_block *s)
+ {
+- int i;
+ struct reiserfs_transaction_handle th;
+ th.t_trans_id = 0;
+
+@@ -462,10 +461,7 @@ static void reiserfs_put_super(struct su
+ */
+ journal_release(&th, s);
+
+- for (i = 0; i < SB_BMAP_NR(s); i++)
+- brelse(SB_AP_BITMAP(s)[i].bh);
+-
+- vfree(SB_AP_BITMAP(s));
++ reiserfs_free_bitmap_cache(s);
+
+ brelse(SB_BUFFER_WITH_SB(s));
+
+@@ -1346,7 +1342,6 @@ static int read_super_block(struct super
+ /* after journal replay, reread all bitmap and super blocks */
+ static int reread_meta_blocks(struct super_block *s)
+ {
+- int i;
+ ll_rw_block(READ, 1, &(SB_BUFFER_WITH_SB(s)));
+ wait_on_buffer(SB_BUFFER_WITH_SB(s));
+ if (!buffer_uptodate(SB_BUFFER_WITH_SB(s))) {
+@@ -1355,20 +1350,7 @@ static int reread_meta_blocks(struct sup
+ return 1;
+ }
+
+- for (i = 0; i < SB_BMAP_NR(s); i++) {
+- ll_rw_block(READ, 1, &(SB_AP_BITMAP(s)[i].bh));
+- wait_on_buffer(SB_AP_BITMAP(s)[i].bh);
+- if (!buffer_uptodate(SB_AP_BITMAP(s)[i].bh)) {
+- reiserfs_warning(s,
+- "reread_meta_blocks, error reading bitmap block number %d at %llu",
+- i,
+- (unsigned long long)SB_AP_BITMAP(s)[i].
+- bh->b_blocknr);
+- return 1;
+- }
+- }
+ return 0;
+-
+ }
+
+ /////////////////////////////////////////////////////
+@@ -1549,7 +1531,6 @@ static int function2code(hashf_t func)
+ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
+ {
+ struct inode *root_inode;
+- int j;
+ struct reiserfs_transaction_handle th;
+ int old_format = 0;
+ unsigned long blocks;
+@@ -1798,19 +1779,17 @@ static int reiserfs_fill_super(struct su
+ if (jinit_done) { /* kill the commit thread, free journal ram */
+ journal_release_error(NULL, s);
+ }
+- if (SB_DISK_SUPER_BLOCK(s)) {
+- for (j = 0; j < SB_BMAP_NR(s); j++) {
+- if (SB_AP_BITMAP(s))
+- brelse(SB_AP_BITMAP(s)[j].bh);
+- }
+- vfree(SB_AP_BITMAP(s));
+- }
++
++ reiserfs_free_bitmap_cache(s);
+ if (SB_BUFFER_WITH_SB(s))
+ brelse(SB_BUFFER_WITH_SB(s));
+ #ifdef CONFIG_QUOTA
+- for (j = 0; j < MAXQUOTAS; j++) {
+- kfree(sbi->s_qf_names[j]);
+- sbi->s_qf_names[j] = NULL;
++ {
++ int j;
++ for (j = 0; j < MAXQUOTAS; j++) {
++ kfree(sbi->s_qf_names[j]);
++ sbi->s_qf_names[j] = NULL;
++ }
+ }
+ #endif
+ kfree(sbi);
+diff -puN include/linux/reiserfs_fs_sb.h~reiserfs-on-demand-bitmap-loading include/linux/reiserfs_fs_sb.h
+--- a/include/linux/reiserfs_fs_sb.h~reiserfs-on-demand-bitmap-loading
++++ a/include/linux/reiserfs_fs_sb.h
+@@ -267,7 +267,6 @@ struct reiserfs_bitmap_info {
+ // FIXME: Won't work with block sizes > 8K
+ __u16 first_zero_hint;
+ __u16 free_count;
+- struct buffer_head *bh; /* the actual bitmap */
+ };
+
+ struct proc_dir_entry;
+_
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch new/patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
--- old/patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch 2006-08-23 15:41:46.000000000 +0200
@@ -0,0 +1,286 @@
+From: Jeff Mahoney <jeffm@xxxxxxxx>
+Subject: [PATCH 3/4] reiserfs: reorganize bitmap loading functions
+Patch-mainline: 2.6.17-mm2; Scheduled for 2.6.19
+
+This patch moves the bitmap loading code from super.c to bitmap.c
+
+The code is also restructured somewhat. The only difference between new
+format bitmaps and old format bitmaps is where they are. That's a two liner
+before loading the block to use the correct one. There's no need for an
+entirely separate code path.
+
+The load path is generally the same, with the pattern being to throw out a
+bunch of requests and then wait for them, then cache the metadata from the
+contents.
+
+Again, like the previous patches, the purpose is to set up for later ones.
+
+Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
+Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
+---
+
+ fs/reiserfs/bitmap.c | 88 ++++++++++++++++++++++++++
+ fs/reiserfs/resize.c | 1
+ fs/reiserfs/super.c | 114 ----------------------------------
+ include/linux/reiserfs_fs.h | 4 +
+ 4 files changed, 94 insertions(+), 113 deletions(-)
+
+diff -puN fs/reiserfs/bitmap.c~reiserfs-reorganize-bitmap-loading-functions fs/reiserfs/bitmap.c
+--- a/fs/reiserfs/bitmap.c~reiserfs-reorganize-bitmap-loading-functions
++++ a/fs/reiserfs/bitmap.c
+@@ -9,6 +9,7 @@
+ #include <linux/buffer_head.h>
+ #include <linux/kernel.h>
+ #include <linux/pagemap.h>
++#include <linux/vmalloc.h>
+ #include <linux/reiserfs_fs_sb.h>
+ #include <linux/reiserfs_fs_i.h>
+ #include <linux/quotaops.h>
+@@ -1285,3 +1286,90 @@ int reiserfs_can_fit_pages(struct super_
+
+ return space > 0 ? space : 0;
+ }
++
++void reiserfs_cache_bitmap_metadata(struct super_block *sb,
++ struct buffer_head *bh,
++ struct reiserfs_bitmap_info *info)
++{
++ unsigned long *cur = (unsigned long *)(bh->b_data + bh->b_size);
++
++ info->first_zero_hint = 1 << (sb->s_blocksize_bits + 3);
++
++ while (--cur >= (unsigned long *)bh->b_data) {
++ int base = ((char *)cur - bh->b_data) << 3;
++
++ /* 0 and ~0 are special, we can optimize for them */
++ if (*cur == 0) {
++ info->first_zero_hint = base;
++ info->free_count += BITS_PER_LONG;
++ } else if (*cur != ~0L) { /* A mix, investigate */
++ int b;
++ for (b = BITS_PER_LONG - 1; b >= 0; b--) {
++ if (!reiserfs_test_le_bit(b, cur)) {
++ info->first_zero_hint = base + b;
++ info->free_count++;
++ }
++ }
++ }
++ }
++ /* The first bit must ALWAYS be 1 */
++ BUG_ON(info->first_zero_hint == 0);
++}
++
++struct buffer_head *reiserfs_read_bitmap_block(struct super_block *sb,
++ unsigned int bitmap)
++{
++ b_blocknr_t block = (sb->s_blocksize << 3) * bitmap;
++ struct buffer_head *bh;
++
++ /* Way old format filesystems had the bitmaps packed up front.
++ * I doubt there are any of these left, but just in case... */
++ if (unlikely(test_bit(REISERFS_OLD_FORMAT,
++ &(REISERFS_SB(sb)->s_properties))))
++ block = REISERFS_SB(sb)->s_sbh->b_blocknr + 1 + bitmap;
++ else if (bitmap == 0)
++ block = (REISERFS_DISK_OFFSET_IN_BYTES >> sb->s_blocksize_bits) + 1;
++
++ bh = sb_getblk(sb, block);
++ if (!buffer_uptodate(bh))
++ ll_rw_block(READ, 1, &bh);
++
++ return bh;
++}
++
++int reiserfs_init_bitmap_cache(struct super_block *sb)
++{
++ struct reiserfs_bitmap_info *bitmap;
++ int i;
++
++ bitmap = vmalloc(sizeof (*bitmap) * SB_BMAP_NR(sb));
++ if (bitmap == NULL)
++ return -ENOMEM;
++
++ memset(bitmap, 0, sizeof (*bitmap) * SB_BMAP_NR(sb));
++
++ for (i = 0; i < SB_BMAP_NR(sb); i++)
++ bitmap[i].bh = reiserfs_read_bitmap_block(sb, i);
++
++ /* make sure we have them all */
++ for (i = 0; i < SB_BMAP_NR(sb); i++) {
++ wait_on_buffer(bitmap[i].bh);
++ if (!buffer_uptodate(bitmap[i].bh)) {
++ reiserfs_warning(sb, "sh-2029: %s: "
++ "bitmap block (#%lu) reading failed",
++ __FUNCTION__, bitmap[i].bh->b_blocknr);
++ for (i = 0; i < SB_BMAP_NR(sb); i++)
++ brelse(bitmap[i].bh);
++ vfree(bitmap);
++ return -EIO;
++ }
++ }
++
++ /* Cache the info on the bitmaps before we get rolling */
++ for (i = 0; i < SB_BMAP_NR(sb); i++)
++ reiserfs_cache_bitmap_metadata(sb, bitmap[i].bh, &bitmap[i]);
++
++ SB_AP_BITMAP(sb) = bitmap;
++
++ return 0;
++}
+diff -puN fs/reiserfs/resize.c~reiserfs-reorganize-bitmap-loading-functions fs/reiserfs/resize.c
+--- a/fs/reiserfs/resize.c~reiserfs-reorganize-bitmap-loading-functions
++++ a/fs/reiserfs/resize.c
+@@ -132,6 +132,7 @@ int reiserfs_resize(struct super_block *
+ get_bh(bh);
+ memset(bh->b_data, 0, sb_blocksize(sb));
+ reiserfs_test_and_set_le_bit(0, bh->b_data);
++ reiserfs_cache_bitmap_metadata(s, bh, bitmap + i);
+
+ set_buffer_uptodate(bh);
+ mark_buffer_dirty(bh);
+diff -puN fs/reiserfs/super.c~reiserfs-reorganize-bitmap-loading-functions fs/reiserfs/super.c
+--- a/fs/reiserfs/super.c~reiserfs-reorganize-bitmap-loading-functions
++++ a/fs/reiserfs/super.c
+@@ -1245,118 +1245,6 @@ static int reiserfs_remount(struct super
+ return 0;
+ }
+
+-/* load_bitmap_info_data - Sets up the reiserfs_bitmap_info structure from disk.
+- * @sb - superblock for this filesystem
+- * @bi - the bitmap info to be loaded. Requires that bi->bh is valid.
+- *
+- * This routine counts how many free bits there are, finding the first zero
+- * as a side effect. Could also be implemented as a loop of test_bit() calls, or
+- * a loop of find_first_zero_bit() calls. This implementation is similar to
+- * find_first_zero_bit(), but doesn't return after it finds the first bit.
+- * Should only be called on fs mount, but should be fairly efficient anyways.
+- *
+- * bi->first_zero_hint is considered unset if it == 0, since the bitmap itself
+- * will * invariably occupt block 0 represented in the bitmap. The only
+- * exception to this is when free_count also == 0, since there will be no
+- * free blocks at all.
+- */
+-
+-static void load_bitmap_info_data(struct super_block *sb,
+- struct reiserfs_bitmap_info *bi)
+-{
+- unsigned long *cur = (unsigned long *)bi->bh->b_data;
+-
+- while ((char *)cur < (bi->bh->b_data + sb->s_blocksize)) {
+-
+- /* No need to scan if all 0's or all 1's.
+- * Since we're only counting 0's, we can simply ignore all 1's */
+- if (*cur == 0) {
+- if (bi->first_zero_hint == 0) {
+- bi->first_zero_hint =
+- ((char *)cur - bi->bh->b_data) << 3;
+- }
+- bi->free_count += sizeof(unsigned long) * 8;
+- } else if (*cur != ~0L) {
+- int b;
+- for (b = 0; b < sizeof(unsigned long) * 8; b++) {
+- if (!reiserfs_test_le_bit(b, cur)) {
+- bi->free_count++;
+- if (bi->first_zero_hint == 0)
+- bi->first_zero_hint =
+- (((char *)cur -
+- bi->bh->b_data) << 3) + b;
+- }
+- }
+- }
+- cur++;
+- }
+-
+-#ifdef CONFIG_REISERFS_CHECK
+-// This outputs a lot of unneded info on big FSes
+-// reiserfs_warning ("bitmap loaded from block %d: %d free blocks",
+-// bi->bh->b_blocknr, bi->free_count);
+-#endif
+-}
+-
+-static int read_bitmaps(struct super_block *s)
+-{
+- int i, bmap_nr;
+-
+- SB_AP_BITMAP(s) =
+- vmalloc(sizeof(struct reiserfs_bitmap_info) * SB_BMAP_NR(s));
+- if (SB_AP_BITMAP(s) == 0)
+- return 1;
+- memset(SB_AP_BITMAP(s), 0,
+- sizeof(struct reiserfs_bitmap_info) * SB_BMAP_NR(s));
+- for (i = 0, bmap_nr =
+- REISERFS_DISK_OFFSET_IN_BYTES / s->s_blocksize + 1;
+- i < SB_BMAP_NR(s); i++, bmap_nr = s->s_blocksize * 8 * i) {
+- SB_AP_BITMAP(s)[i].bh = sb_getblk(s, bmap_nr);
+- if (!buffer_uptodate(SB_AP_BITMAP(s)[i].bh))
+- ll_rw_block(READ, 1, &SB_AP_BITMAP(s)[i].bh);
+- }
+- for (i = 0; i < SB_BMAP_NR(s); i++) {
+- wait_on_buffer(SB_AP_BITMAP(s)[i].bh);
+- if (!buffer_uptodate(SB_AP_BITMAP(s)[i].bh)) {
+- reiserfs_warning(s, "sh-2029: reiserfs read_bitmaps: "
+- "bitmap block (#%lu) reading failed",
+- SB_AP_BITMAP(s)[i].bh->b_blocknr);
+- for (i = 0; i < SB_BMAP_NR(s); i++)
+- brelse(SB_AP_BITMAP(s)[i].bh);
+- vfree(SB_AP_BITMAP(s));
+- SB_AP_BITMAP(s) = NULL;
+- return 1;
+- }
+- load_bitmap_info_data(s, SB_AP_BITMAP(s) + i);
+- }
+- return 0;
+-}
+-
+-static int read_old_bitmaps(struct super_block *s)
+-{
+- int i;
+- struct reiserfs_super_block *rs = SB_DISK_SUPER_BLOCK(s);
+- int bmp1 = (REISERFS_OLD_DISK_OFFSET_IN_BYTES / s->s_blocksize) + 1; /* first of bitmap blocks */
+-
+- /* read true bitmap */
+- SB_AP_BITMAP(s) =
+- vmalloc(sizeof(struct reiserfs_buffer_info *) * sb_bmap_nr(rs));
+- if (SB_AP_BITMAP(s) == 0)
+- return 1;
+-
+- memset(SB_AP_BITMAP(s), 0,
+- sizeof(struct reiserfs_buffer_info *) * sb_bmap_nr(rs));
+-
+- for (i = 0; i < sb_bmap_nr(rs); i++) {
+- SB_AP_BITMAP(s)[i].bh = sb_bread(s, bmp1 + i);
+- if (!SB_AP_BITMAP(s)[i].bh)
+- return 1;
+- load_bitmap_info_data(s, SB_AP_BITMAP(s) + i);
+- }
+-
+- return 0;
+-}
+-
+ static int read_super_block(struct super_block *s, int offset)
+ {
+ struct buffer_head *bh;
+@@ -1738,7 +1626,7 @@ static int reiserfs_fill_super(struct su
+ sbi->s_mount_state = SB_REISERFS_STATE(s);
+ sbi->s_mount_state = REISERFS_VALID_FS;
+
+- if (old_format ? read_old_bitmaps(s) : read_bitmaps(s)) {
++ if ((errval = reiserfs_init_bitmap_cache(s))) {
+ SWARN(silent, s,
+ "jmacd-8: reiserfs_fill_super: unable to read bitmap");
+ goto error;
+diff -puN include/linux/reiserfs_fs.h~reiserfs-reorganize-bitmap-loading-functions include/linux/reiserfs_fs.h
+--- a/include/linux/reiserfs_fs.h~reiserfs-reorganize-bitmap-loading-functions
++++ a/include/linux/reiserfs_fs.h
+@@ -2081,6 +2081,10 @@ void reiserfs_init_alloc_options(struct
+ */
+ __le32 reiserfs_choose_packing(struct inode *dir);
+
++int reiserfs_init_bitmap_cache(struct super_block *sb);
++void reiserfs_free_bitmap_cache(struct super_block *sb);
++void reiserfs_cache_bitmap_metadata(struct super_block *sb, struct buffer_head *bh, struct reiserfs_bitmap_info *info);
++struct buffer_head *reiserfs_read_bitmap_block(struct super_block *sb, unsigned int bitmap);
+ int is_reusable(struct super_block *s, b_blocknr_t block, int bit_value);
+ void reiserfs_free_block(struct reiserfs_transaction_handle *th, struct inode *,
+ b_blocknr_t, int for_unformatted);
+_
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.suse/tcp-proc-listen new/patches.suse/tcp-proc-listen
--- old/patches.suse/tcp-proc-listen 2006-08-01 20:10:21.000000000 +0200
+++ new/patches.suse/tcp-proc-listen 1970-01-01 01:00:00.000000000 +0100
@@ -1,264 +0,0 @@
-From: ak@xxxxxxx
-Subject: Add /proc/net/tcp_listen
-
-SLPD regularly reads /proc/net/tcp for find listening sockets,
-which adds considerable overhead visible in profiles.
-
-In SLES9 we had /proc/net/tcp_listen to make this cheaper.
-This is a forward port.
-
-Index: linux-2.6.16/net/ipv4/tcp_ipv4.c
-===================================================================
---- linux-2.6.16.orig/net/ipv4/tcp_ipv4.c
-+++ linux-2.6.16/net/ipv4/tcp_ipv4.c
-@@ -1344,7 +1344,7 @@ static inline struct inet_timewait_sock
- hlist_entry(tw->tw_node.next, typeof(*tw), tw_node) : NULL;
- }
-
--static void *listening_get_next(struct seq_file *seq, void *cur)
-+static void *listening_get_next(struct seq_file *seq, void *cur, int noopenreq)
- {
- struct inet_connection_sock *icsk;
- struct hlist_node *node;
-@@ -1381,6 +1381,10 @@ get_req:
- st->state = TCP_SEQ_STATE_LISTENING;
- read_unlock_bh(&icsk->icsk_accept_queue.syn_wait_lock);
- } else {
-+ if (noopenreq) {
-+ sk = sk_next(sk);
-+ goto get_sk;
-+ }
- icsk = inet_csk(sk);
- read_lock_bh(&icsk->icsk_accept_queue.syn_wait_lock);
- if (reqsk_queue_len(&icsk->icsk_accept_queue))
-@@ -1394,7 +1398,9 @@ get_sk:
- cur = sk;
- goto out;
- }
-- icsk = inet_csk(sk);
-+ if (noopenreq)
-+ continue;
-+ icsk = inet_csk(sk);
- read_lock_bh(&icsk->icsk_accept_queue.syn_wait_lock);
- if (reqsk_queue_len(&icsk->icsk_accept_queue)) {
- start_req:
-@@ -1415,12 +1421,12 @@ out:
- return cur;
- }
-
--static void *listening_get_idx(struct seq_file *seq, loff_t *pos)
-+static void *listening_get_idx(struct seq_file *seq, loff_t *pos, int noopenreq)
- {
-- void *rc = listening_get_next(seq, NULL);
-+ void *rc = listening_get_next(seq, NULL, noopenreq);
-
- while (rc && *pos) {
-- rc = listening_get_next(seq, rc);
-+ rc = listening_get_next(seq, rc, noopenreq);
- --*pos;
- }
- return rc;
-@@ -1524,16 +1530,18 @@ static void *established_get_idx(struct
- return rc;
- }
-
--static void *tcp_get_idx(struct seq_file *seq, loff_t pos)
-+static void *tcp_get_idx(struct seq_file *seq, loff_t pos, int listenonly)
- {
- void *rc;
- struct tcp_iter_state* st = seq->private;
-
- inet_listen_lock(&tcp_hashinfo);
- st->state = TCP_SEQ_STATE_LISTENING;
-- rc = listening_get_idx(seq, &pos);
-+ rc = listening_get_idx(seq, &pos, listenonly);
-
- if (!rc) {
-+ if (listenonly)
-+ return rc;
- inet_listen_unlock(&tcp_hashinfo);
- local_bh_disable();
- st->state = TCP_SEQ_STATE_ESTABLISHED;
-@@ -1543,21 +1551,34 @@ static void *tcp_get_idx(struct seq_file
- return rc;
- }
-
--static void *tcp_seq_start(struct seq_file *seq, loff_t *pos)
-+static void *__tcp_seq_start(struct seq_file *seq, loff_t *pos, int listenonly)
- {
- struct tcp_iter_state* st = seq->private;
- st->state = TCP_SEQ_STATE_LISTENING;
- st->num = 0;
-- return *pos ? tcp_get_idx(seq, *pos - 1) : SEQ_START_TOKEN;
-+ return *pos ? tcp_get_idx(seq, *pos - 1, listenonly) : SEQ_START_TOKEN;
-+}
-+
-+void *tcp_seq_start(struct seq_file *seq, loff_t *pos)
-+{
-+ return __tcp_seq_start(seq, pos, 0);
- }
-
--static void *tcp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
-+void *tcp_listen_seq_start(struct seq_file *seq, loff_t *pos)
-+{
-+ return __tcp_seq_start(seq, pos, 1);
-+}
-+
-+EXPORT_SYMBOL_GPL(tcp_seq_start);
-+EXPORT_SYMBOL_GPL(tcp_listen_seq_start);
-+
-+void *tcp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
- {
- void *rc = NULL;
- struct tcp_iter_state* st;
-
- if (v == SEQ_START_TOKEN) {
-- rc = tcp_get_idx(seq, 0);
-+ rc = tcp_get_idx(seq, 0, 0);
- goto out;
- }
- st = seq->private;
-@@ -1565,7 +1586,7 @@ static void *tcp_seq_next(struct seq_fil
- switch (st->state) {
- case TCP_SEQ_STATE_OPENREQ:
- case TCP_SEQ_STATE_LISTENING:
-- rc = listening_get_next(seq, v);
-+ rc = listening_get_next(seq, v, 0);
- if (!rc) {
- inet_listen_unlock(&tcp_hashinfo);
- local_bh_disable();
-@@ -1582,6 +1603,17 @@ out:
- ++*pos;
- return rc;
- }
-+EXPORT_SYMBOL_GPL(tcp_seq_next);
-+
-+void *tcp_listen_seq_next(struct seq_file *seq, void *v, loff_t *pos)
-+{
-+ ++*pos;
-+ if (v == SEQ_START_TOKEN)
-+ return tcp_get_idx(seq, 0, 1);
-+ else
-+ return listening_get_next(seq, v, 1);
-+}
-+EXPORT_SYMBOL_GPL(tcp_listen_seq_next);
-
- static void tcp_seq_stop(struct seq_file *seq, void *v)
- {
-@@ -1621,8 +1653,8 @@ static int tcp_seq_open(struct inode *in
- return -ENOMEM;
- memset(s, 0, sizeof(*s));
- s->family = afinfo->family;
-- s->seq_ops.start = tcp_seq_start;
-- s->seq_ops.next = tcp_seq_next;
-+ s->seq_ops.start = afinfo->seq_start;
-+ s->seq_ops.next = afinfo->seq_next;
- s->seq_ops.show = afinfo->seq_show;
- s->seq_ops.stop = tcp_seq_stop;
-
-@@ -1795,18 +1827,36 @@ static struct tcp_seq_afinfo tcp4_seq_af
- .owner = THIS_MODULE,
- .name = "tcp",
- .family = AF_INET,
-+ .seq_start = tcp_seq_start,
- .seq_show = tcp4_seq_show,
-+ .seq_next = tcp_seq_next,
- .seq_fops = &tcp4_seq_fops,
- };
-
-+static struct file_operations tcp4_listen_seq_fops;
-+static struct tcp_seq_afinfo tcp4_listen_seq_afinfo = {
-+ .owner = THIS_MODULE,
-+ .name = "tcp_listen",
-+ .family = AF_INET,
-+ .seq_start = tcp_listen_seq_start,
-+ .seq_show = tcp4_seq_show,
-+ .seq_next = tcp_listen_seq_next,
-+ .seq_fops = &tcp4_listen_seq_fops,
-+};
-+
-+
- int __init tcp4_proc_init(void)
- {
-- return tcp_proc_register(&tcp4_seq_afinfo);
-+ int err = tcp_proc_register(&tcp4_seq_afinfo);
-+ if (err)
-+ return err;
-+ return tcp_proc_register(&tcp4_listen_seq_afinfo);
- }
-
- void tcp4_proc_exit(void)
- {
- tcp_proc_unregister(&tcp4_seq_afinfo);
-+ tcp_proc_unregister(&tcp4_listen_seq_afinfo);
- }
- #endif /* CONFIG_PROC_FS */
-
-Index: linux-2.6.16/net/ipv6/tcp_ipv6.c
-===================================================================
---- linux-2.6.16.orig/net/ipv6/tcp_ipv6.c
-+++ linux-2.6.16/net/ipv6/tcp_ipv6.c
-@@ -1545,18 +1545,35 @@ static struct tcp_seq_afinfo tcp6_seq_af
- .owner = THIS_MODULE,
- .name = "tcp6",
- .family = AF_INET6,
-+ .seq_start = tcp_seq_start,
-+ .seq_next = tcp_seq_next,
- .seq_show = tcp6_seq_show,
- .seq_fops = &tcp6_seq_fops,
- };
-
-+static struct file_operations tcp6_listen_seq_fops;
-+static struct tcp_seq_afinfo tcp6_listen_seq_afinfo = {
-+ .owner = THIS_MODULE,
-+ .name = "tcp6_listen",
-+ .family = AF_INET6,
-+ .seq_start = tcp_listen_seq_start,
-+ .seq_next = tcp_listen_seq_next,
-+ .seq_show = tcp6_seq_show,
-+ .seq_fops = &tcp6_listen_seq_fops,
-+};
-+
- int __init tcp6_proc_init(void)
- {
-- return tcp_proc_register(&tcp6_seq_afinfo);
-+ int err = tcp_proc_register(&tcp6_seq_afinfo);
-+ if (err)
-+ return err;
-+ return tcp_proc_register(&tcp6_listen_seq_afinfo);
- }
-
- void tcp6_proc_exit(void)
- {
- tcp_proc_unregister(&tcp6_seq_afinfo);
-+ tcp_proc_unregister(&tcp6_listen_seq_afinfo);
- }
- #endif
-
-Index: linux-2.6.16/include/net/tcp.h
-===================================================================
---- linux-2.6.16.orig/include/net/tcp.h
-+++ linux-2.6.16/include/net/tcp.h
-@@ -1054,7 +1054,10 @@ struct tcp_seq_afinfo {
- struct module *owner;
- char *name;
- sa_family_t family;
-+ void * (*seq_start)(struct seq_file *seq, loff_t *pos);
- int (*seq_show) (struct seq_file *m, void *v);
-+ void * (*seq_next)(struct seq_file *seq, void *v, loff_t *pos);
-+
- struct file_operations *seq_fops;
- };
-
-@@ -1069,6 +1072,11 @@ struct tcp_iter_state {
- extern int tcp_proc_register(struct tcp_seq_afinfo *afinfo);
- extern void tcp_proc_unregister(struct tcp_seq_afinfo *afinfo);
-
-+extern void *tcp_seq_start(struct seq_file *seq, loff_t *pos);
-+extern void *tcp_listen_seq_start(struct seq_file *seq, loff_t *pos);
-+extern void *tcp_seq_next(struct seq_file *seq, void *v, loff_t *pos);
-+extern void *tcp_listen_seq_next(struct seq_file *seq, void *v, loff_t *pos);
-+
- extern struct request_sock_ops tcp_request_sock_ops;
-
- extern int tcp_v4_destroy_sock(struct sock *sk);

++++++ patches.uml.tar.bz2 ++++++

++++++ patches.xen.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.xen/xen3-auto-xen-kconfig.diff new/patches.xen/xen3-auto-xen-kconfig.diff
--- old/patches.xen/xen3-auto-xen-kconfig.diff 2006-08-21 21:15:37.000000000 +0200
+++ new/patches.xen/xen3-auto-xen-kconfig.diff 2006-08-23 20:19:20.000000000 +0200
@@ -4,8 +4,8 @@

Index: linux-2.6.17/arch/i386/Kconfig
===================================================================
---- linux-2.6.17.orig/arch/i386/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/arch/i386/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/arch/i386/Kconfig
++++ linux-2.6.17/arch/i386/Kconfig
@@ -103,6 +103,15 @@ config X86_PC
help
Choose this option if your computer is a standard PC or compatible.
@@ -39,7 +39,7 @@
help
A local APIC (Advanced Programmable Interrupt Controller) is an
integrated interrupt controller in the CPU. If you have a single-CPU
-@@ -286,12 +296,12 @@ config X86_UP_IOAPIC
+@@ -286,7 +296,7 @@ config X86_UP_IOAPIC

config X86_LOCAL_APIC
bool
@@ -47,6 +47,9 @@
+ depends on X86_UP_APIC || ((X86_VISWS || SMP) && !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST))
default y

+ config X86_APIC_AUTO
+@@ -301,7 +311,7 @@ config X86_APIC_AUTO
+
config X86_IO_APIC
bool
- depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER))
@@ -54,7 +57,7 @@
default y

config X86_VISWS_APIC
-@@ -299,9 +309,14 @@ config X86_VISWS_APIC
+@@ -309,9 +319,14 @@ config X86_VISWS_APIC
depends on X86_VISWS
default y

@@ -70,7 +73,7 @@
---help---
Machine Check Exception support allows the processor to notify the
kernel if it detects a problem (e.g. overheating, component failure).
-@@ -400,6 +415,7 @@ config X86_REBOOTFIXUPS
+@@ -410,6 +425,7 @@ config X86_REBOOTFIXUPS

config MICROCODE
tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
@@ -78,7 +81,7 @@
---help---
If you say Y here and also to "/dev file system support" in the
'File systems' section, you will be able to update the microcode on
-@@ -417,6 +433,7 @@ config MICROCODE
+@@ -427,6 +443,7 @@ config MICROCODE

config X86_MSR
tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -86,7 +89,7 @@
help
This device gives privileged processes access to the x86
Model-Specific Registers (MSRs). It is a character device with
-@@ -432,6 +449,10 @@ config X86_CPUID
+@@ -442,6 +459,10 @@ config X86_CPUID
with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
/dev/cpu/31/cpuid.

@@ -97,7 +100,7 @@
source "drivers/firmware/Kconfig"

choice
-@@ -605,7 +626,7 @@ config HAVE_ARCH_EARLY_PFN_TO_NID
+@@ -615,7 +636,7 @@ config HAVE_ARCH_EARLY_PFN_TO_NID

config HIGHPTE
bool "Allocate 3rd-level pagetables from highmem"
@@ -106,7 +109,7 @@
help
The VM uses one page table entry for each page of physical memory.
For systems with a lot of RAM, this can be wasteful of precious
-@@ -614,6 +635,7 @@ config HIGHPTE
+@@ -624,6 +645,7 @@ config HIGHPTE

config MATH_EMULATION
bool "Math emulation"
@@ -114,7 +117,7 @@
---help---
Linux can emulate a math coprocessor (used for floating point
operations) if you don't have one. 486DX and Pentium processors have
-@@ -639,6 +661,8 @@ config MATH_EMULATION
+@@ -649,6 +671,8 @@ config MATH_EMULATION

config MTRR
bool "MTRR (Memory Type Range Register) support"
@@ -123,7 +126,7 @@
---help---
On Intel P6 family processors (Pentium Pro, Pentium II and later)
the Memory Type Range Registers (MTRRs) may be used to control
-@@ -673,7 +697,7 @@ config MTRR
+@@ -683,7 +707,7 @@ config MTRR

config EFI
bool "Boot from EFI support"
@@ -132,7 +135,7 @@
default n
---help---
This enables the the kernel to boot on EFI platforms using
-@@ -691,7 +715,7 @@ config EFI
+@@ -701,7 +725,7 @@ config EFI

config IRQBALANCE
bool "Enable kernel irq balancing"
@@ -141,7 +144,7 @@
default y
help
The default yes will allow the kernel to do irq load balancing.
-@@ -739,7 +763,7 @@ source kernel/Kconfig.hz
+@@ -749,7 +773,7 @@ source kernel/Kconfig.hz

config KEXEC
bool "kexec system call (EXPERIMENTAL)"
@@ -150,7 +153,7 @@
help
kexec is a system call that implements the ability to shutdown your
current kernel, and to start another kernel. It is like a reboot
-@@ -792,6 +816,7 @@ config HOTPLUG_CPU
+@@ -802,6 +826,7 @@ config HOTPLUG_CPU
config COMPAT_VDSO
bool "Compat VDSO support"
default y
@@ -158,7 +161,7 @@
help
Map the VDSO to the predictable old-style address too.
---help---
-@@ -808,18 +833,20 @@ config ARCH_ENABLE_MEMORY_HOTPLUG
+@@ -818,18 +843,20 @@ config ARCH_ENABLE_MEMORY_HOTPLUG
depends on HIGHMEM

menu "Power management options (ACPI, APM)"
@@ -182,7 +185,7 @@
---help---
APM is a BIOS specification for saving power using several different
techniques. This is mostly useful for battery powered laptops with
-@@ -1004,6 +1031,7 @@ choice
+@@ -1014,6 +1041,7 @@ choice

config PCI_GOBIOS
bool "BIOS"
@@ -190,7 +193,7 @@

config PCI_GOMMCONFIG
bool "MMConfig"
-@@ -1011,6 +1039,13 @@ config PCI_GOMMCONFIG
+@@ -1021,6 +1049,13 @@ config PCI_GOMMCONFIG
config PCI_GODIRECT
bool "Direct"

@@ -204,7 +207,7 @@
config PCI_GOANY
bool "Any"

-@@ -1018,7 +1053,7 @@ endchoice
+@@ -1028,7 +1063,7 @@ endchoice

config PCI_BIOS
bool
@@ -213,7 +216,7 @@
default y

config PCI_DIRECT
-@@ -1031,6 +1066,18 @@ config PCI_MMCONFIG
+@@ -1041,6 +1076,18 @@ config PCI_MMCONFIG
depends on PCI && ACPI && (PCI_GOMMCONFIG || PCI_GOANY)
default y

@@ -232,7 +235,7 @@
source "drivers/pci/pcie/Kconfig"

source "drivers/pci/Kconfig"
-@@ -1041,7 +1088,7 @@ config ISA_DMA_API
+@@ -1051,7 +1098,7 @@ config ISA_DMA_API

config ISA
bool "ISA support"
@@ -241,7 +244,7 @@
help
Find out whether you have ISA slots on your motherboard. ISA is the
name of a bus system, i.e. the way the CPU talks to the other stuff
-@@ -1068,7 +1115,7 @@ config EISA
+@@ -1078,7 +1125,7 @@ config EISA
source "drivers/eisa/Kconfig"

config MCA
@@ -250,7 +253,7 @@
default y if X86_VOYAGER
help
MicroChannel Architecture is found in some IBM PS/2 machines and
-@@ -1144,6 +1191,8 @@ source "security/Kconfig"
+@@ -1154,6 +1201,8 @@ source "security/Kconfig"

source "crypto/Kconfig"

@@ -259,7 +262,7 @@
source "lib/Kconfig"

#
-@@ -1169,7 +1218,7 @@ config X86_SMP
+@@ -1179,7 +1228,7 @@ config X86_SMP

config X86_HT
bool
@@ -268,7 +271,7 @@
default y

config X86_BIOS_REBOOT
-@@ -1182,6 +1231,16 @@ config X86_TRAMPOLINE
+@@ -1192,6 +1241,16 @@ config X86_TRAMPOLINE
depends on X86_SMP || (X86_VOYAGER && SMP)
default y

@@ -287,8 +290,8 @@
default y
Index: linux-2.6.17/arch/i386/Kconfig.cpu
===================================================================
---- linux-2.6.17.orig/arch/i386/Kconfig.cpu 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/arch/i386/Kconfig.cpu 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/arch/i386/Kconfig.cpu
++++ linux-2.6.17/arch/i386/Kconfig.cpu
@@ -251,7 +251,7 @@ config X86_PPRO_FENCE

config X86_F00F_BUG
@@ -300,8 +303,8 @@
config X86_WP_WORKS_OK
Index: linux-2.6.17/arch/i386/Kconfig.debug
===================================================================
---- linux-2.6.17.orig/arch/i386/Kconfig.debug 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/arch/i386/Kconfig.debug 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/arch/i386/Kconfig.debug
++++ linux-2.6.17/arch/i386/Kconfig.debug
@@ -79,6 +79,7 @@ config X86_MPPARSE
config DOUBLEFAULT
default y
@@ -312,8 +315,8 @@
would otherwise cause a system to silently reboot. Disabling this
Index: linux-2.6.17/arch/x86_64/Kconfig
===================================================================
---- linux-2.6.17.orig/arch/x86_64/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/arch/x86_64/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/arch/x86_64/Kconfig
++++ linux-2.6.17/arch/x86_64/Kconfig
@@ -131,6 +131,22 @@ config GENERIC_CPU

endchoice
@@ -507,8 +510,8 @@
source "lib/Kconfig"
Index: linux-2.6.17/drivers/acpi/Kconfig
===================================================================
---- linux-2.6.17.orig/drivers/acpi/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/drivers/acpi/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/drivers/acpi/Kconfig
++++ linux-2.6.17/drivers/acpi/Kconfig
@@ -45,7 +45,7 @@ if ACPI

config ACPI_SLEEP
@@ -528,8 +531,8 @@
The Power Management Timer is available on all ACPI-capable,
Index: linux-2.6.17/drivers/char/tpm/Kconfig
===================================================================
---- linux-2.6.17.orig/drivers/char/tpm/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/drivers/char/tpm/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/drivers/char/tpm/Kconfig
++++ linux-2.6.17/drivers/char/tpm/Kconfig
@@ -58,5 +58,13 @@ config TCG_INFINEON
Further information on this driver and the supported hardware
can be found at http://www.prosec.rub.de/tpm
@@ -547,8 +550,8 @@
+endmenu
Index: linux-2.6.17/drivers/firmware/Kconfig
===================================================================
---- linux-2.6.17.orig/drivers/firmware/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/drivers/firmware/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/drivers/firmware/Kconfig
++++ linux-2.6.17/drivers/firmware/Kconfig
@@ -7,7 +7,7 @@ menu "Firmware Drivers"

config EDD
@@ -560,8 +563,8 @@
Services real mode BIOS calls to determine which disk
Index: linux-2.6.17/drivers/pci/Kconfig
===================================================================
---- linux-2.6.17.orig/drivers/pci/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/drivers/pci/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/drivers/pci/Kconfig
++++ linux-2.6.17/drivers/pci/Kconfig
@@ -5,6 +5,7 @@ config PCI_MSI
bool "Message Signaled Interrupts (MSI and MSI-X)"
depends on PCI
@@ -572,8 +575,8 @@
Interrupts). Message Signaled Interrupts enable a device to
Index: linux-2.6.17/drivers/serial/Kconfig
===================================================================
---- linux-2.6.17.orig/drivers/serial/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/drivers/serial/Kconfig 2006-08-17 16:43:37.000000000 +0200
+--- linux-2.6.17.orig/drivers/serial/Kconfig
++++ linux-2.6.17/drivers/serial/Kconfig
@@ -12,6 +12,7 @@ config SERIAL_8250
tristate "8250/16550 and compatible serial support"
depends on (BROKEN || !SPARC)
@@ -584,8 +587,8 @@
This selects whether you want to include the driver for the standard
Index: linux-2.6.17/drivers/video/console/Kconfig
===================================================================
---- linux-2.6.17.orig/drivers/video/console/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/drivers/video/console/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/drivers/video/console/Kconfig
++++ linux-2.6.17/drivers/video/console/Kconfig
@@ -52,7 +52,7 @@ config VGACON_SOFT_SCROLLBACK_SIZE

config VIDEO_SELECT
@@ -597,8 +600,8 @@
you want to take advantage of some high-resolution text mode your
Index: linux-2.6.17/drivers/xen/Kconfig
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.17/drivers/xen/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- /dev/null
++++ linux-2.6.17/drivers/xen/Kconfig
@@ -0,0 +1,260 @@
+#
+# This Kconfig describe xen options
@@ -862,8 +865,8 @@
+endif
Index: linux-2.6.17/fs/Kconfig
===================================================================
---- linux-2.6.17.orig/fs/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/fs/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/fs/Kconfig
++++ linux-2.6.17/fs/Kconfig
@@ -890,6 +890,7 @@ config TMPFS_POSIX_ACL
config HUGETLBFS
bool "HugeTLB file system support"
@@ -874,8 +877,8 @@
ramfs. For architectures that support it, say Y here and read
Index: linux-2.6.17/kernel/Kconfig.preempt
===================================================================
---- linux-2.6.17.orig/kernel/Kconfig.preempt 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/kernel/Kconfig.preempt 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/kernel/Kconfig.preempt
++++ linux-2.6.17/kernel/Kconfig.preempt
@@ -35,6 +35,7 @@ config PREEMPT_VOLUNTARY

config PREEMPT
@@ -886,8 +889,8 @@
all kernel code (that is not executing in a critical section)
Index: linux-2.6.17/mm/Kconfig
===================================================================
---- linux-2.6.17.orig/mm/Kconfig 2006-08-17 16:42:45.000000000 +0200
-+++ linux-2.6.17/mm/Kconfig 2006-08-17 16:43:10.000000000 +0200
+--- linux-2.6.17.orig/mm/Kconfig
++++ linux-2.6.17/mm/Kconfig
@@ -127,11 +127,14 @@ comment "Memory hotplug is currently inc
# Default to 4 for wider testing, though 8 might be more appropriate.
# ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.





++++++ series.conf ++++++
--- kernel-source/series.conf 2006-08-21 21:17:06.000000000 +0200
+++ kernel-source/series.conf 2006-08-23 20:41:56.000000000 +0200
@@ -46,7 +46,6 @@
# every patch below is optional
patches.suse/error-implicit-function-declaration.patch
patches.rpmify/supported-flag
- patches.fixes/modpost-segfault-fix.diff

# workarounds

@@ -64,6 +63,7 @@
patches.fixes/ia64-put-user-size

# i386
+ patches.arch/i386-apic-auto

# amd64 | x86-64 | x86_64
# 'Intel(r) Extended Memory 64 Technology' | 'Intel(r) EM64T'
@@ -206,6 +206,12 @@
patches.suse/reiserfs-barrier-default
patches.suse/reiserfs-nobarrier-fsync

+ patches.suse/reiserfs-fix-is_reusable-bitmap-check.patch
+ patches.suse/reiserfs-clean-up-bitmap-block-buffer-head-references.patch
+ patches.suse/reiserfs-reorganize-bitmap-loading-functions.patch
+ patches.suse/reiserfs-on-demand-bitmap-loading.patch
+
+
########################################################
# ocfs2
########################################################
@@ -225,7 +231,6 @@
patches.fixes/ipv6-init-fail-cleanup
patches.fixes/ipv6-add-addr-install-dstentry
patches.fixes/ipv6-no-autoconf
- patches.suse/tcp-proc-listen

########################################################
# These patches are from the netfilter team, and
@@ -248,8 +253,6 @@
########################################################
# Storage
########################################################
- patches.fixes/scsi-missing-iomem-cast
-
# Remaining SCSI patches (garloff)
patches.suse/scsi-scan-inq-ppc64-dflt
patches.suse/scsi-error-test-unit-ready-timeout
@@ -414,13 +417,8 @@
patches.suse/connector-read-mostly
patches.suse/crasher-26.diff

- patches.fixes/xfrm-endless-loop
- patches.fixes/cfq-atomic-flags
-
patches.suse/shmall-bigger

- patches.suse/bootmem-warning
-
patches.fixes/grab-swap-token-oops
patches.suse/rcu-remote

@@ -445,7 +443,6 @@
patches.suse/ext2-fsync-err
patches.fixes/remount-no-shrink-dcache
patches.suse/bh-cache-option
- patches.fixes/fc_transport_optional_remove
patches.suse/sysctl-add-affinity_load_balancing
patches.fixes/nfsv4-setclientid
patches.fixes/cpuset-oom




++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-commit+help@xxxxxxxxxxxx

< Previous Next >