Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory
checked in at Mon Sep 7 22:36:58 CEST 2009.
--------
--- kernel-source/kernel-debug.changes 2009-09-01 01:40:16.000000000 +0200
+++ kernel-source/kernel-debug.changes 2009-09-07 16:19:35.000000000 +0200
@@ -1,0 +2,82 @@
+Mon Sep 7 12:40:45 CEST 2009 - mmarek@suse.cz
+
+- rpm/kernel-binary.spec.in: require minimum versions of
+ module-init-tools and perl-Bootloader, the %post script is no
+ longer compatible with ancient versions.
+
+-------------------------------------------------------------------
+Mon Sep 7 11:53:09 CEST 2009 - mmarek@suse.cz
+
+- rpm/kernel-binary.spec.in: obsolete %name-base <= 2.6.31, the
+ previous <= 2.6.30-1 didn't catch some cases obviously
+ (bnc#533766).
+
+-------------------------------------------------------------------
+Fri Sep 4 21:11:39 CEST 2009 - jeffm@suse.de
+
+- Enabled CONFIG_SCSI_DEBUG=m (bnc#535923).
+
+-------------------------------------------------------------------
+Fri Sep 4 14:35:57 CEST 2009 - mmarek@suse.cz
+
+- kabi/severities, rpm/kabi.pl, rpm/kernel-binary.spec.in,
+- rpm/kernel-source.spec.in: Use a simple script to check kabi by
+ comparing Module.symvers files (similar to the old SLES9 one).
+- rpm/built-in-where: Delete.
+- rpm/symsets.pl: Delete.
+- kabi/commonsyms: Delete.
+- kabi/usedsyms: Delete.
+
+-------------------------------------------------------------------
+Fri Sep 4 11:39:02 CEST 2009 - mmarek@suse.cz
+
+- patches.suse/kbuild-rebuild-fix-for-Makefile.modbuiltin:
+ kbuild: rebuild fix for Makefile.modbuiltin.
+
+-------------------------------------------------------------------
+Thu Sep 3 02:43:28 CEST 2009 - gregkh@suse.de
+
+- patches.drivers/usb-storage-increase-the-bcd-range-in-sony-s-bad-device-table.patch:
+ Delete, it was wrong.
+
+-------------------------------------------------------------------
+Wed Sep 2 17:27:49 CEST 2009 - jbeulich@novell.com
+
+- Update Xen config files.
+
+-------------------------------------------------------------------
+Wed Sep 2 15:39:54 CEST 2009 - jbeulich@novell.com
+
+- Update Xen patches to 2.6.31-rc8 and c/s 931.
+- patches.fixes/use-totalram_pages: use totalram_pages in favor
+ of num_physpages for sizing boot time allocations (bnc#509753).
+- patches.xen/xen-x86-per-cpu-vcpu-info: x86: use per-cpu storage
+ for shared vcpu_info structure.
+
+-------------------------------------------------------------------
+Wed Sep 2 08:06:15 CEST 2009 - tiwai@suse.de
+
+- patches.drivers/alsa-hda-2.6.32-pre: Refresh; merged fixes for
+ IDT92HD73* codecs
+
+-------------------------------------------------------------------
+Tue Sep 1 19:16:24 CEST 2009 - jeffm@suse.com
+
+- patches.apparmor/apparmor.diff: Update to latest git.
+
+-------------------------------------------------------------------
+Tue Sep 1 19:13:51 CEST 2009 - jeffm@suse.com
+
+- patches.arch/add_support_for_hpet_msi_intr_remap.patch:
+ intr-remap: generic support for remapping HPET MSIs
+ (bnc#532758).
+- patches.arch/add_x86_support_for_hpet_msi_intr_remap.patch:
+ x86: arch specific support for remapping HPET MSIs (bnc#532758).
+
+-------------------------------------------------------------------
+Tue Sep 1 15:11:15 CEST 2009 - mmarek@suse.cz
+
+- rpm/package-descriptions: fix description of the x86_64
+ kernel-desktop package (bnc#535457).
+
+-------------------------------------------------------------------
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-kdump.changes: same change
kernel-pae.changes: same change
kernel-ppc64.changes: same change
kernel-ps3.changes: same change
kernel-s390.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-trace.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
calling whatdependson for head-i586
Old:
----
built-in-where
symsets.pl
New:
----
kabi.pl
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-debug
Summary: A Debug Version of the Kernel
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -122,10 +122,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -180,9 +179,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
This kernel has several debug facilities enabled that hurt performance.
@@ -431,8 +427,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -498,20 +492,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-default
Summary: The Standard Kernel
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -138,10 +138,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -196,9 +195,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
The standard kernel for both uniprocessor and multiprocessor systems.
@@ -446,8 +442,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -513,20 +507,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-desktop.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-desktop
Summary: Kernel optimized for the desktop
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -122,10 +122,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -180,26 +179,23 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
This kernel is optimized for the desktop. It is configured for lower latency
and has many of the features that aren't usually used on desktop machines
disabled.
+%ifarch %ix86
This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor.
-
PAE is not only more physical address space but also important for the
"no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory.
-
-
+%endif
%source_timestamp
+
%prep
if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
echo "The %name-%version.nosrc.rpm package does not contain the" \
@@ -441,8 +437,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -508,20 +502,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
@@ -644,19 +632,18 @@
and has many of the features that aren't usually used on desktop machines
disabled.
+%ifarch %ix86
This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor.
-
PAE is not only more physical address space but also important for the
"no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory.
-
+%endif
This package contains only the base modules, required in all installs.
-
-
%source_timestamp
+
%preun base -f preun-base.sh
%postun base -f postun-base.sh
@@ -693,19 +680,18 @@
and has many of the features that aren't usually used on desktop machines
disabled.
+%ifarch %ix86
This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor.
-
PAE is not only more physical address space but also important for the
"no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory.
-
+%endif
This package contains additional modules not supported by Novell.
-
-
%source_timestamp
+
%preun extra -f preun-extra.sh
%postun extra -f postun-extra.sh
++++++ kernel-kdump.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-kdump
Summary: kernel for kdump
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -122,10 +122,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -180,9 +179,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
This kernel is intended for kdump. It can not be booted with a normal
@@ -433,8 +429,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -500,20 +494,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-pae
Summary: Kernel with PAE Support
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -126,10 +126,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -184,9 +183,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
This kernel supports up to 64GB of main memory. It requires Physical
@@ -441,8 +437,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -508,20 +502,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-ppc64
Summary: Kernel for ppc64 Systems
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -126,10 +126,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -184,9 +183,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
This package contains the kernel for:
@@ -441,8 +437,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -508,20 +502,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-ps3.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-ps3
Summary: kernel for ps3 bootloader
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -122,10 +122,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -180,9 +179,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
This package contains the kernel for the PS3 bootloader. PS3 systems
@@ -433,8 +429,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -500,20 +494,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-s390.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-s390
Summary: The Standard Kernel
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -126,10 +126,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -184,9 +183,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
The standard kernel.
@@ -434,8 +430,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -501,20 +495,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -30,7 +30,7 @@
Name: kernel-source
Summary: The Linux Kernel Sources
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -61,13 +61,12 @@
Source37: README.SUSE
Source38: README.KSYMS
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
Source47: extract-modaliases
Source48: macros.kernel-source
Source49: kernel-module-subpackage
-Source50: symsets.pl
+Source50: kabi.pl
Source51: mkspec
Source52: kernel-source%variant.changes
Source53: kernel-source.spec.in
@@ -96,7 +95,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
Prefix: /usr/src
-%(chmod +x %_sourcedir/{guards,check-for-config-changes,symsets.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols})
+%(chmod +x %_sourcedir/{guards,check-for-config-changes,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols})
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
%define do_vanilla "%variant" == ""
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -23,7 +23,7 @@
Name: kernel-syms
Summary: Kernel Symbol Versions (modversions)
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%define kernel_source_release %(LC_ALL=C rpm -q kernel-source%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
++++++ kernel-trace.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-trace
Summary: The Realtime Linux Kernel
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -122,10 +122,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -180,9 +179,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
This kernel is compiled for realtime applications.
@@ -430,8 +426,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -497,20 +491,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-vanilla
Summary: The Standard Kernel - without any SUSE patches
Version: 2.6.31
-Release: 5
+Release: 6
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -130,10 +130,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -188,9 +187,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
The standard kernel - without any SUSE patches
@@ -438,8 +434,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -505,20 +499,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-xen.spec ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:30.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:30.000000000 +0200
@@ -31,7 +31,7 @@
%define obj_install_dir %src_install_dir-obj
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
# Define some CONFIG variables as rpm macros as well. (rpm cannot handle
@@ -49,7 +49,7 @@
Name: kernel-xen
Summary: The Xen Kernel
Version: 2.6.31
-Release: 4
+Release: 5
%if %using_buildservice
%else
%endif
@@ -62,19 +62,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
%ifarch ia64
@@ -122,10 +122,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -180,9 +179,6 @@
%define __find_provides %_sourcedir/find-provides %name
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
%description
The Linux kernel for Xen paravirtualization.
@@ -433,8 +429,6 @@
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
if ! %_sourcedir/check-supported-list \
@@ -500,20 +494,14 @@
find lib/modules/%kernelrelease-%build_flavor -type f -name '*.ko' -printf '/%%p\n'
) > %my_builddir/base-modules
%endif
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
# check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ config.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/debug new/config/i386/debug
--- old/config/i386/debug 2009-08-25 18:05:00.000000000 +0200
+++ new/config/i386/debug 2009-09-04 21:11:53.000000000 +0200
@@ -1681,7 +1681,7 @@
CONFIG_SCSI_U14_34F_MAX_TAGS=8
CONFIG_SCSI_ULTRASTOR=m
CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/default new/config/i386/default
--- old/config/i386/default 2009-08-25 18:05:00.000000000 +0200
+++ new/config/i386/default 2009-09-04 21:11:53.000000000 +0200
@@ -1656,7 +1656,7 @@
CONFIG_SCSI_U14_34F_MAX_TAGS=8
CONFIG_SCSI_ULTRASTOR=m
CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/desktop new/config/i386/desktop
--- old/config/i386/desktop 2009-08-25 18:05:00.000000000 +0200
+++ new/config/i386/desktop 2009-09-04 21:11:53.000000000 +0200
@@ -1610,7 +1610,7 @@
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/pae new/config/i386/pae
--- old/config/i386/pae 2009-08-25 18:05:00.000000000 +0200
+++ new/config/i386/pae 2009-09-04 21:11:53.000000000 +0200
@@ -1626,7 +1626,7 @@
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/trace new/config/i386/trace
--- old/config/i386/trace 2009-08-25 18:05:00.000000000 +0200
+++ new/config/i386/trace 2009-09-04 21:11:53.000000000 +0200
@@ -1626,7 +1626,7 @@
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/vanilla new/config/i386/vanilla
--- old/config/i386/vanilla 2009-08-25 18:05:00.000000000 +0200
+++ new/config/i386/vanilla 2009-09-04 21:11:53.000000000 +0200
@@ -1648,7 +1648,7 @@
CONFIG_SCSI_U14_34F_MAX_TAGS=8
CONFIG_SCSI_ULTRASTOR=m
CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/xen new/config/i386/xen
--- old/config/i386/xen 2009-08-25 18:05:00.000000000 +0200
+++ new/config/i386/xen 2009-09-04 21:11:53.000000000 +0200
@@ -1491,7 +1491,7 @@
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
CONFIG_SCSI_NSP32=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_AHA152X=m
@@ -3971,6 +3971,7 @@
CONFIG_XEN_COMPAT_030300_AND_LATER=y
# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
CONFIG_XEN_COMPAT=0x030300
+CONFIG_XEN_VCPU_INFO_PLACEMENT=y
CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
CONFIG_IRQ_PER_CPU=y
CONFIG_NO_IDLE_HZ=y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/debug new/config/x86_64/debug
--- old/config/x86_64/debug 2009-08-25 18:05:00.000000000 +0200
+++ new/config/x86_64/debug 2009-09-04 21:11:53.000000000 +0200
@@ -1587,7 +1587,7 @@
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_FDOMAIN=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/default new/config/x86_64/default
--- old/config/x86_64/default 2009-08-25 18:05:00.000000000 +0200
+++ new/config/x86_64/default 2009-09-04 21:11:53.000000000 +0200
@@ -1580,7 +1580,7 @@
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_FDOMAIN=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/desktop new/config/x86_64/desktop
--- old/config/x86_64/desktop 2009-08-25 18:05:00.000000000 +0200
+++ new/config/x86_64/desktop 2009-09-04 21:11:53.000000000 +0200
@@ -1564,7 +1564,7 @@
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_FDOMAIN=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/trace new/config/x86_64/trace
--- old/config/x86_64/trace 2009-08-25 18:05:00.000000000 +0200
+++ new/config/x86_64/trace 2009-09-04 21:11:53.000000000 +0200
@@ -1580,7 +1580,7 @@
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_FDOMAIN=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/vanilla new/config/x86_64/vanilla
--- old/config/x86_64/vanilla 2009-08-25 18:05:00.000000000 +0200
+++ new/config/x86_64/vanilla 2009-09-04 21:11:53.000000000 +0200
@@ -1571,7 +1571,7 @@
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_FDOMAIN=m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/xen new/config/x86_64/xen
--- old/config/x86_64/xen 2009-08-25 18:05:00.000000000 +0200
+++ new/config/x86_64/xen 2009-09-04 21:11:53.000000000 +0200
@@ -1464,7 +1464,7 @@
# CONFIG_SCSI_LPFC_DEBUG_FS is not set
CONFIG_SCSI_DC395x=m
CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_SRP=m
CONFIG_SCSI_LOWLEVEL_PCMCIA=y
CONFIG_PCMCIA_FDOMAIN=m
@@ -3910,6 +3910,7 @@
CONFIG_XEN_COMPAT_030300_AND_LATER=y
# CONFIG_XEN_COMPAT_LATEST_ONLY is not set
CONFIG_XEN_COMPAT=0x030300
+CONFIG_XEN_VCPU_INFO_PLACEMENT=y
CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
CONFIG_IRQ_PER_CPU=y
CONFIG_NO_IDLE_HZ=y
++++++ kabi.pl ++++++
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
use Data::Dumper;
# ( { sym => regexp, mod => regexp, fail => 0/1 }, ... )
my @rules;
sub load_rules {
my $file = shift;
my $errors = 0;
xopen(my $fh, '<', $file);
while (<$fh>) {
chomp;
s/#.*//;
next if /^\s*$/;
my ($pattern, $verdict) = split(/\s+/);
my $new = {};
if (uc($verdict) eq "PASS") {
$new->{fail} = 0;
} elsif (uc($verdict) eq "FAIL") {
$new->{fail} = 1;
} else {
print STDERR "$file:$.: invalid verdict \"$verdict\", must be either PASS or FAIL.\n";
$errors++;
next;
}
# simple glob -> regexp conversion
$pattern =~ s/\*/.*/g;
$pattern =~ s/\?/./g;
$pattern =~ s/.*/^$&\$/;
if ($pattern =~ /\/|^vmlinux$/) {
$new->{mod} = $pattern;
} else {
$new->{sym} = $pattern;
}
push(@rules, $new);
}
if ($errors && !@rules) {
print STDERR "error: only garbage found in $file.\n";
exit 1;
}
close($fh);
}
sub load_symvers {
my $file = shift;
my %res;
my $errors = 0;
xopen(my $fh, '<', $file);
while (<$fh>) {
my @l = split(/\s+/);
if (@l < 3) {
print STDERR "$file:$.: unknown line\n";
$errors++;
next;
}
my $new = { crc => $l[0], mod => $l[2] };
$res{$l[1]} = $new;
}
if (!%res) {
print STDERR "error: no symvers found in $file.\n";
exit 1;
}
close($fh);
return %res;
}
my $kabi_errors = 0;
sub kabi_change {
my ($sym, $mod, $oldcrc, $newcrc) = @_;
my $fail = 1;
for my $rule (@rules) {
if ($rule->{mod} && $mod =~ $rule->{mod} ||
$rule->{sym} && $sym =~ $rule->{sym}) {
$fail = $rule->{fail};
last;
}
}
print STDERR "KABI: symbol $sym($mod) ";
if ($newcrc) {
print STDERR "changed crc from $oldcrc to $newcrc"
} else {
print STDERR "lost";
}
if ($fail) {
$kabi_errors++;
print STDERR "\n";
} else {
print STDERR " (tolerated)\n";
}
}
sub xopen {
open($_[0], $_[1], @_[2..$#_]) or die "$_[2]: $!\n";
}
my ($opt_verbose, $opt_rules);
my $res = GetOptions(
'verbose|v' => \$opt_verbose,
'rules|r=s' => \$opt_rules,
);
if (!$res || @ARGV != 2) {
print STDERR "Usage: $0 [--rules <rules file>] Module.symvers.old Module.symvers\n";
exit 1;
}
if (defined($opt_rules)) {
load_rules($opt_rules);
}
my %old = load_symvers($ARGV[0]);
my %new = load_symvers($ARGV[1]);
for my $sym (sort keys(%old)) {
if (!$new{$sym}) {
kabi_change($sym, $old{$sym}->{mod}, $old{$sym}->{crc}, 0);
} elsif ($old{$sym}->{crc} ne $new{$sym}->{crc}) {
kabi_change($sym, $new{$sym}->{mod}, $old{$sym}->{crc},
$new{$sym}->{crc});
}
}
if ($kabi_errors) {
print STDERR "KABI: aborting due to kabi changes.\n";
exit 1;
}
exit 0;
++++++ kabi.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kabi/commonsyms new/kabi/commonsyms
--- old/kabi/commonsyms 2009-02-02 17:36:17.000000000 +0100
+++ new/kabi/commonsyms 1970-01-01 01:00:00.000000000 +0100
@@ -1,73 +0,0 @@
-__const_udelay
-__down_failed
-__down_failed_trylock
-__request_region
-__release_region
-__up_wakeup
-__ioremap
-bdget
-bdput
-mod_timer
-del_timer
-capable
-cond_resched
-copy_from_user
-copy_to_user
-create_proc_entry
-remove_proc_entry
-daemonize
-default_wake_function
-do_gettimeofday
-flush_scheduled_work
-free_pages
-high_memory
-inter_module_get_request
-inter_module_put
-inter_module_register
-inter_module_unregister
-iounmap
-jiffies
-kernel_thread
-kfree
-kmem_cache_alloc
-kmem_cache_create
-kmem_cache_destroy
-kmem_cache_free
-local_bh_enable
-malloc_sizes
-memset
-memmove
-memcpy
-mem_map
-panic
-param_get_int
-param_set_int
-pci_bus_read_config_byte
-pci_bus_read_config_word
-pci_bus_write_config_byte
-pci_bus_write_config_word
-pci_unregister_driver
-printk
-register_blkdev
-register_chrdev
-unregister_blkdev
-unregister_chrdev
-request_irq
-remove_wait_queue
-schedule
-schedule_timeout
-schedule_work
-sprintf
-snprintf
-sscanf
-struct_module
-simple_strtoul
-simple_strtoull
-skb_clone
-skb_copy
-sock_create
-sock_release
-vsprintf
-vmalloc
-vfree
-wake_up_process
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kabi/severities new/kabi/severities
--- old/kabi/severities 2009-02-02 17:36:17.000000000 +0100
+++ new/kabi/severities 2009-09-04 16:56:39.000000000 +0200
@@ -1,31 +1,13 @@
-# Severity classification:
-# - 8 -- 15: if it's not found in a list (commonsyms or usedsyms)
-# The score depends on the source; symbols in vmlinux are more
-# likely to be used by anyone.
-# - 16 -- 23: symbol is found in the list usedsyms
-# - 24 -- 31: symbol is found in the list commonsyms
+# KABI rules for symbols and modules
#
-# unimportant ---. .--- important
-# v v
+# A matching line with PASS allows kabi changes for given modules or symbols,
+# FAIL causes an error. The first matching line is considered, the default is
+# FAIL if no match is found.
+#
+# A pattern that contains slashes is matched against the module name a given
+# symbol is exported from. The special pattern "vmlinux" matches built-in
+# symbols. All other patterns match against symbol names.
+
+drivers/message/fusion/* PASS
+drivers/staging/* PASS
-drivers/base/* 13
-drivers/char/ipmi/* 10
-drivers/char/tpm/tpm 9
-drivers/hwmon/* 10
-drivers/i2c/i2c-core 9
-drivers/md/* 13
-drivers/message/fusion/* 6
-drivers/pci/* 12
-drivers/pci/hotplug/pci_hotplug 10
-drivers/scsi/libata 12
-drivers/scsi/scsi* 12
-drivers/scsi/*/scsi_transport_* 12
-drivers/scsi/libiscsi* 12
-drivers/ide/ide-core 11
-drivers/usb/core/usbcore 10
-drivers/usb/serial/usbserial 9
-fs/dmapi/dmapi 11
-fs/fat/fat 11
-fs/jbd/jbd 11
-net/ipv4/netfilter/ip_tables 9
-vmlinux 15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kabi/usedsyms new/kabi/usedsyms
--- old/kabi/usedsyms 2009-02-02 17:36:17.000000000 +0100
+++ new/kabi/usedsyms 1970-01-01 01:00:00.000000000 +0100
@@ -1,325 +0,0 @@
-add_disk
-add_wait_queue
-add_wait_queue_exclusive
-aio_complete
-aio_put_req
-alloc_disk
-alloc_etherdev
-autoremove_wake_function
-bdevname
-bdget
-bdput
-bd_set_size
-bio_add_page
-bio_alloc
-bio_copy_user
-bio_endio
-bio_get_nr_vecs
-bio_hw_segments
-bio_init
-bio_phys_segments
-bio_put
-bio_uncopy_user
-blk_alloc_queue
-blk_cleanup_queue
-blk_congestion_wait
-blkdev_get
-blkdev_put
-blk_execute_rq
-blk_get_request
-blk_init_queue
-blk_put_request
-blk_queue_bounce
-blk_queue_make_request
-blk_rq_bio_prep
-capable
-cdev_add
-cdev_del
-cdev_init
-class_interface_unregister
-clear_inode
-clear_page_dirty_for_io
-clear_user
-close_bdev_excl
-complete
-complete_and_exit
-cond_resched
-contig_page_data
-create_proc_entry
-csum_partial
-crypto_alloc_tfm
-crypto_free_tfm
-_ctype
-current_kernel_time
-daemonize
-d_alloc
-d_alloc_root
-deactivate_super
-default_wake_function
-del_gendisk
-del_timer
-dentry_open
-dev_get_by_name
-dev_queue_xmit
-d_find_alias
-d_instantiate
-d_invalidate
-d_lookup
-d_move
-do_gettimeofday
-dput
-d_rehash
-driver_create_file
-driver_remove_file
-driver_unregister
-elv_add_request
-enable_irq
-ether_setup
-exit_fs
-fd_install
-fget
-filp_close
-filp_open
-find_get_page
-find_or_create_page
-find_vma
-finish_wait
-flush_scheduled_work
-flush_signals
-follow_down
-follow_up
-fput
-free_netdev
-__free_pages
-free_pages
-generic_delete_inode
-generic_file_aio_read
-generic_file_llseek
-generic_file_read
-generic_file_readv
-generic_file_writev
-generic_fillattr
-generic_make_request
-generic_read_dir
-generic_shutdown_super
-generic_unplug_device
-getname
-get_sb_bdev
-get_sb_nodev
-get_unused_fd
-__get_user_1
-__get_user_4
-get_user_pages
-grab_cache_page_nowait
-groups_alloc
-groups_free
-high_memory
-igrab
-in_aton
-in_group_p
-init_buffer
-init_special_inode
-inter_module_put
-inter_module_register
-inter_module_unregister
-invalidate_bdev
-invalidate_partition
-ioctl_by_bdev
-iput
-jiffies
-kernel_thread
-kfree
-kill_anon_super
-kill_proc
-kmem_cache_alloc
-kmem_cache_create
-kmem_cache_destroy
-kmem_cache_free
-kmem_cache_shrink
-kobject_get
-kobject_put
-kobject_register
-kobject_set_name
-kobject_unregister
-kthread_bind
-kthread_create
-kthread_should_stop
-kthread_stop
-local_bh_enable
-malloc_sizes
-mapping_tagged
-mark_page_accessed
-max_mapnr
-memcpy
-mem_map
-memparse
-mempool_alloc
-mempool_alloc_slab
-mempool_create
-mempool_destroy
-mempool_free
-mempool_free_slab
-misc_deregister
-misc_register
-__mod_timer
-mod_timer
-module_refcount
-names_cachep
-new_inode
-notifier_chain_register
-notifier_chain_unregister
-nr_pagecache
-panic
-param_get_charp
-param_get_int
-param_get_long
-param_set_charp
-param_set_int
-param_set_long
-path_lookup
-path_release
-path_walk
-pcmcia_register_driver
-pcmcia_unregister_driver
-pcmcia_request_io
-pcmcia_release_io
-pcmcia_request_irq
-pcmcia_release_irq
-poll_freewait
-poll_initwait
-posix_acl_alloc
-posix_acl_from_xattr
-posix_acl_to_xattr
-posix_acl_valid
-prepare_to_wait
-printk
-proc_dointvec
-proc_dointvec_minmax
-proc_dostring
-proc_mkdir
-proc_net
-proc_root_driver
-put_disk
-put_unused_fd
-radix_tree_delete
-radix_tree_gang_lookup
-radix_tree_gang_lookup_tag
-radix_tree_tag_set
-recalc_sigpending
-register_blkdev
-register_chrdev
-register_chrdev_region
-register_filesystem
-register_netdev
-register_netdevice
-register_reboot_notifier
-register_sysctl_table
-remote_llseek
-remove_proc_entry
-remove_shrinker
-remove_wait_queue
-request_firmware
-request_irq
-request_module
-schedule
-schedule_timeout
-schedule_work
-scsi_add_device
-scsi_add_host
-scsi_adjust_queue_depth
-scsi_allocate_request
-scsi_command_size
-scsi_device_get
-scsi_device_put
-scsi_io_completion
-scsi_ioctl_send_command
-scsi_register_driver
-scsi_register_interface
-scsi_reset_provider
-securebits
-security_ops
-send_sig
-send_sig_info
-seq_lseek
-seq_printf
-seq_read
-set_current_groups
-set_disk_ro
-set_page_dirty
-set_shrinker
-set_user_nice
-shrink_dcache_parent
-sigprocmask
-si_meminfo
-simple_strtol
-simple_strtoul
-simple_strtoull
-skb_clone
-skb_copy
-skb_over_panic
-skb_recv_datagram
-skb_under_panic
-sk_free
-sleep_on_timeout
-snprintf
-sprintf
-sscanf
-strcat
-strchr
-strcpy
-strncpy
-strlen
-strnlen
-strcmp
-strncmp
-strnicmp
-__strncpy_from_user
-strncpy_from_user
-strrchr
-strsep
-strstr
-struct_module
-submit_bio
-sys_close
-sysctl_intvec
-tasklet_init
-test_clear_page_dirty
-totalram_pages
-truncate_inode_pages
-unmap_mapping_range
-unregister_blkdev
-unregister_chrdev
-unregister_chrdev_region
-unregister_filesystem
-unregister_netdev
-unregister_netdevice
-unregister_reboot_notifier
-unregister_sysctl_table
-usb_alloc_urb
-usb_clear_halt
-usb_control_msg
-usb_deregister
-usb_free_urb
-usb_get_descriptor
-usb_get_dev
-usb_put_dev
-usb_reset_device
-usb_submit_urb
-usb_unlink_urb
-uuid_equal
-uuid_is_nil
-vfree
-vfs_follow_link
-vmalloc
-__vmalloc
-vmalloc_32
-vmalloc_to_page
-vmtruncate
-vsnprintf
-vsprintf
-wait_for_completion
-__wait_on_buffer
-xtime
-yield
-zone_table
-zap_page_range
++++++ kernel-binary.spec.in ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:32.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:32.000000000 +0200
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,built-in-where,modversions,symsets.pl,split-modules})
+%(chmod +x %_sourcedir/{arch-symbols,find-provides,guards,check-for-config-changes,check-supported-list,modversions,kabi.pl,split-modules})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -70,19 +70,19 @@
Provides: %{name}_%_target_cpu = %version-%release
%if %split_base
Provides: kernel-base = %version-%source_rel
-# 2.6.30-1 was the last package with split -base
-Obsoletes: %name-base <= 2.6.30-1
+# Obsolete the -base subpackage from 11.1 and 11.2 development phase
+Obsoletes: %name-base <= 2.6.31
%endif
Requires(pre): coreutils awk
-Requires(post): module-init-tools
+# Need a module-init-tools with /usr/lib/module-init-tools/weak-modules2
+Requires(post): module-init-tools >= 3.4
# This Requires is wrong, because the post/postun scripts have a
# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
# But, there is no way to tell rpm or yast to schedule the installation
# of perl-Bootloader before kernel-binary.rpm if both are in the list of
# packages to install/update. Likewise, this is true for mkinitrd.
-# A specific version of perl-Bootloader is not required, because the post/postun
-# scripts handle the two API versions of 10.1/SLES10 GA and 10.2/SLES10 SP1
-Requires(post): perl-Bootloader
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
Requires(post): mkinitrd
#!BuildIgnore: perl-Bootloader mkinitrd
@@ -134,10 +134,9 @@
Source33: check-for-config-changes
Source34: check-supported-list
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
-Source47: symsets.pl
+Source47: kabi.pl
Source48: split-modules
Source49: kernel-spec-macros
Source100: config.tar.bz2
@@ -197,10 +196,6 @@
# Will modules not listed in supported.conf abort the kernel build (0/1)?
%define supported_modules_check 0
-# kABI change tolerance (default in maintenance should be 4, 6, 8 or 15,
-# 31 is the maximum; see scripts/kabi-checks)
-%define tolerate_kabi_changes 6
-
%description
@DESCRIPTION@
@@ -485,9 +480,6 @@
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
ln -s %build_flavor %buildroot/usr/src/linux-obj/%cpu_arch_flavor
- # Figure out where the symbols that vmlinux exports are defined.
- %_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease-%build_flavor.gz
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
@@ -564,20 +556,14 @@
) > %my_builddir/base-modules
%endif
- # check for kabi changes
- if [ -z "fixme-broken" ]; then
- %_sourcedir/symsets.pl --check-kabi \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --modules=%my_builddir/main-modules-br \
- --modules=%my_builddir/unsupported-modules-br \
- --commonsyms=%my_builddir/kabi/commonsyms \
- --usedsyms=%my_builddir/kabi/usedsyms \
- --severities=%my_builddir/kabi/severities \
- --max-badness=%tolerate_kabi_changes
+ res=0%my_builddir/kabi/%cpu_arch/symvers-%build_flavor
+ if test -e %my_builddir/kabi/%cpu_arch/symvers-%build_flavor; then
+ # check for kabi changes
+ %_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
+ %my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
+ Module.symvers || res=$?
fi
- if [ $? -ne 0 ]; then
+ if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
! -e %_sourcedir/IGNORE-KABI-BADNESS ]; then
echo "Create a file IGNORE-KABI-BADNESS in the kernel-source" \
++++++ kernel-source.spec.in ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:32.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:32.000000000 +0200
@@ -65,13 +65,12 @@
Source37: README.SUSE
Source38: README.KSYMS
Source40: source-timestamp
-Source41: built-in-where
Source44: find-provides
Source46: modversions
Source47: extract-modaliases
Source48: macros.kernel-source
Source49: kernel-module-subpackage
-Source50: symsets.pl
+Source50: kabi.pl
Source51: mkspec
Source52: kernel-source%variant.changes
Source53: kernel-source.spec.in
@@ -101,7 +100,7 @@
BuildArch: noarch
Prefix: /usr/src
-%(chmod +x %_sourcedir/{guards,check-for-config-changes,symsets.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols})
+%(chmod +x %_sourcedir/{guards,check-for-config-changes,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols})
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
++++++ minmem ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:34.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:34.000000000 +0200
@@ -1 +1 @@
-2096000
+1048576
++++++ needed_space_in_mb ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:35.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:35.000000000 +0200
@@ -1 +1 @@
-6000
+6144
++++++ package-descriptions ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:35.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:35.000000000 +0200
@@ -27,6 +27,7 @@
and has many of the features that aren't usually used on desktop machines
disabled.
+%ifarch %ix86
This kernel supports up to 64GB of main memory. It requires Physical
Addressing Extensions (PAE), which were introduced with the Pentium Pro
processor.
@@ -35,6 +36,7 @@
"no execute" feature which disables execution of code that is marked as
non-executable. Therefore, the PAE kernel should be used on any systems
that support it, regardless of the amount of main memory.
+%endif
=== kernel-kdump ===
kernel for kdump
++++++ patches.apparmor.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.apparmor/apparmor.diff new/patches.apparmor/apparmor.diff
--- old/patches.apparmor/apparmor.diff 2009-08-24 16:35:30.000000000 +0200
+++ new/patches.apparmor/apparmor.diff 2009-09-01 19:16:32.000000000 +0200
@@ -1,53 +1,54 @@
-
From: John Johansen
Subject: AppArmor
URL: git://kernel.ubuntu.com/jj/apparmor-karmic-tree.git
- This patch contains the AppArmor security infrastructure.
+ This patch contains the AppArmor security infrastructure as of
+ Aug 31, 2009.
Signed-off-by: John Johansen
Acked-by: Jeff Mahoney
----
- include/linux/audit.h | 10
- security/Kconfig | 10
- security/Makefile | 2
- security/apparmor/Kconfig | 53 +
- security/apparmor/Makefile | 24
- security/apparmor/apparmorfs.c | 395 ++++++++++
- security/apparmor/audit.c | 151 +++
- security/apparmor/capability.c | 121 +++
- security/apparmor/context.c | 209 +++++
- security/apparmor/domain.c | 694 +++++++++++++++++
- security/apparmor/file.c | 427 ++++++++++
- security/apparmor/include/apparmor.h | 65 +
- security/apparmor/include/apparmorfs.h | 24
- security/apparmor/include/audit.h | 59 +
- security/apparmor/include/capability.h | 45 +
- security/apparmor/include/context.h | 153 +++
- security/apparmor/include/domain.h | 37
- security/apparmor/include/file.h | 227 +++++
- security/apparmor/include/ipc.h | 28
- security/apparmor/include/match.h | 105 ++
- security/apparmor/include/net.h | 40 +
- security/apparmor/include/path.h | 24
- security/apparmor/include/policy.h | 301 +++++++
- security/apparmor/include/policy_interface.h | 22
- security/apparmor/include/procattr.h | 26
- security/apparmor/include/resource.h | 46 +
- security/apparmor/include/sid.h | 46 +
- security/apparmor/ipc.c | 106 ++
- security/apparmor/lib.c | 100 ++
- security/apparmor/lsm.c | 1063 +++++++++++++++++++++++++++
- security/apparmor/match.c | 293 +++++++
- security/apparmor/net.c | 146 +++
- security/apparmor/path.c | 155 +++
- security/apparmor/policy.c | 727 ++++++++++++++++++
- security/apparmor/policy_interface.c | 850 +++++++++++++++++++++
- security/apparmor/procattr.c | 117 ++
- security/apparmor/resource.c | 104 ++
- security/apparmor/sid.c | 111 ++
- 38 files changed, 7115 insertions(+), 1 deletion(-)
+---
+ include/linux/audit.h | 10
+ security/Kconfig | 1
+ security/Makefile | 2
+ security/apparmor/.gitignore | 5
+ security/apparmor/Kconfig | 53 +
+ security/apparmor/Makefile | 24
+ security/apparmor/apparmorfs.c | 391 ++++++++
+ security/apparmor/audit.c | 153 +++
+ security/apparmor/capability.c | 122 ++
+ security/apparmor/context.c | 209 ++++
+ security/apparmor/domain.c | 704 +++++++++++++++
+ security/apparmor/file.c | 426 +++++++++
+ security/apparmor/include/audit.h | 59 +
+ security/apparmor/include/capability.h | 45 +
+ security/apparmor/include/context.h | 153 +++
+ security/apparmor/include/domain.h | 37
+ security/apparmor/include/file.h | 229 +++++
+ security/apparmor/include/ipc.h | 28
+ security/apparmor/include/match.h | 105 ++
+ security/apparmor/include/net.h | 40
+ security/apparmor/include/path.h | 24
+ security/apparmor/include/policy.h | 301 ++++++
+ security/apparmor/include/policy_interface.h | 22
+ security/apparmor/include/procattr.h | 26
+ security/apparmor/include/resource.h | 46 +
+ security/apparmor/include/security/apparmor.h | 65 +
+ security/apparmor/include/security/apparmorfs.h | 24
+ security/apparmor/include/sid.h | 46 +
+ security/apparmor/ipc.c | 106 ++
+ security/apparmor/lib.c | 100 ++
+ security/apparmor/lsm.c | 1063 ++++++++++++++++++++++++
+ security/apparmor/match.c | 293 ++++++
+ security/apparmor/net.c | 147 +++
+ security/apparmor/path.c | 155 +++
+ security/apparmor/policy.c | 729 ++++++++++++++++
+ security/apparmor/policy_interface.c | 852 +++++++++++++++++++
+ security/apparmor/procattr.c | 117 ++
+ security/apparmor/resource.c | 104 ++
+ security/apparmor/sid.c | 113 ++
+ 39 files changed, 7128 insertions(+), 1 deletion(-)
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -77,7 +78,7 @@
#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
--- a/security/Kconfig
+++ b/security/Kconfig
-@@ -116,6 +125,7 @@ config SECURITY_ROOTPLUG
+@@ -141,6 +141,7 @@ config LSM_MMAP_MIN_ADDR
source security/selinux/Kconfig
source security/smack/Kconfig
source security/tomoyo/Kconfig
@@ -91,7 +92,7 @@
subdir-$(CONFIG_SECURITY_SELINUX) += selinux
subdir-$(CONFIG_SECURITY_SMACK) += smack
subdir-$(CONFIG_SECURITY_TOMOYO) += tomoyo
-+subdir-$(CONFIG_SECURITY_APPARMOR) += apparmor
++subdir-$(CONFIG_SECURITY_APPARMOR) += apparmor
# always enable default capabilities
obj-y += commoncap.o min_addr.o
@@ -99,11 +100,19 @@
obj-$(CONFIG_SECURITY_SMACK) += lsm_audit.o
endif
obj-$(CONFIG_SECURITY_TOMOYO) += tomoyo/built-in.o
-+obj-$(CONFIG_SECURITY_APPARMOR) += apparmor/built-in.o
++obj-$(CONFIG_SECURITY_APPARMOR) += apparmor/built-in.o
obj-$(CONFIG_SECURITY_ROOTPLUG) += root_plug.o
obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o
--- /dev/null
++++ b/security/apparmor/.gitignore
+@@ -0,0 +1,5 @@
++#
++# Generated include files
++#
++af_names.h
++capability_names.h
+--- /dev/null
+++ b/security/apparmor/Kconfig
@@ -0,0 +1,53 @@
+config SECURITY_APPARMOR
@@ -188,7 +197,7 @@
+ $(call cmd,make-af)
--- /dev/null
+++ b/security/apparmor/apparmorfs.c
-@@ -0,0 +1,395 @@
+@@ -0,0 +1,391 @@
+/*
+ * AppArmor security module
+ *
@@ -210,7 +219,7 @@
+#include
+#include
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/audit.h"
+#include "include/context.h"
+#include "include/policy.h"
@@ -265,34 +274,30 @@
+
+static struct aa_profile *next_profile(struct aa_profile *profile)
+{
-+ struct aa_profile *next = profile;
-+ struct aa_namespace *ns;
-+
-+ if (!list_empty(&profile->base.profiles)) {
-+ list_for_each_entry(next, &profile->base.profiles, base.list)
-+ return next;
-+ }
++ struct aa_profile *parent;
++ struct aa_namespace *ns = profile->ns;
+
-+ while (profile->parent) {
-+ next = profile->parent;
-+ list_for_each_entry_continue(next,
-+ &profile->parent->base.profiles,
++ if (!list_empty(&profile->base.profiles))
++ return list_first_entry(&profile->base.profiles,
++ struct aa_profile, base.list);
++
++ parent = profile->parent;
++ while (parent) {
++ list_for_each_entry_continue(profile, &parent->base.profiles,
+ base.list)
-+ return next;
-+ profile = profile->parent;
++ return profile;
++ profile = parent;
++ parent = parent->parent;
+ }
+
-+ next = profile;
-+ list_for_each_entry_continue(next, &profile->ns->base.profiles,
-+ base.list)
-+ return next;
++ list_for_each_entry_continue(profile, &ns->base.profiles, base.list)
++ return profile;
+
-+ ns = profile->ns;
+ read_unlock(&ns->base.lock);
+ list_for_each_entry_continue(ns, &ns_list, base.list) {
+ read_lock(&ns->base.lock);
-+ list_for_each_entry(profile, &ns->base.profiles, base.list)
-+ return profile;
++ return list_first_entry(&ns->base.profiles, struct aa_profile,
++ base.list);
+ read_unlock(&ns->base.lock);
+ }
+ return NULL;
@@ -586,7 +591,7 @@
+
--- /dev/null
+++ b/security/apparmor/audit.c
-@@ -0,0 +1,151 @@
+@@ -0,0 +1,153 @@
+/*
+ * AppArmor security module
+ *
@@ -604,7 +609,7 @@
+#include
+#include
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/audit.h"
+#include "include/policy.h"
+
@@ -703,9 +708,11 @@
+ audit_cxt = g_apparmor_logsyscall ? current->audit_context : NULL;
+
+ if (type == AUDIT_APPARMOR_AUTO) {
-+ if (likely(!sa->error))
++ if (likely(!sa->error)) {
++ if (PROFILE_AUDIT_MODE(profile) != AUDIT_ALL)
++ return 0;
+ type = AUDIT_APPARMOR_AUDIT;
-+ else if (PROFILE_COMPLAIN(profile))
++ } else if (PROFILE_COMPLAIN(profile))
+ type = AUDIT_APPARMOR_ALLOWED;
+ else
+ type = AUDIT_APPARMOR_DENIED;
@@ -740,7 +747,7 @@
+}
--- /dev/null
+++ b/security/apparmor/capability.c
-@@ -0,0 +1,121 @@
+@@ -0,0 +1,122 @@
+/*
+ * AppArmor security module
+ *
@@ -759,7 +766,7 @@
+#include
+#include
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/capability.h"
+#include "include/context.h"
+#include "include/policy.h"
@@ -801,6 +808,7 @@
+ if (likely((PROFILE_AUDIT_MODE(profile) != AUDIT_ALL) &&
+ !cap_raised(profile->caps.audit, sa->cap)))
+ return 0;
++ type = AUDIT_APPARMOR_AUDIT;
+ } else if (PROFILE_KILL(profile) ||
+ cap_raised(profile->caps.kill, sa->cap)) {
+ type = AUDIT_APPARMOR_KILL;
@@ -1076,7 +1084,7 @@
+}
--- /dev/null
+++ b/security/apparmor/domain.c
-@@ -0,0 +1,694 @@
+@@ -0,0 +1,704 @@
+/*
+ * AppArmor security module
+ *
@@ -1095,12 +1103,12 @@
+#include
+#include
+#include
-+#include
+#include
+#include
++#include
+
+#include "include/audit.h"
-+#include "include/apparmorfs.h"
++#include "include/security/apparmorfs.h"
+#include "include/context.h"
+#include "include/domain.h"
+#include "include/file.h"
@@ -1169,8 +1177,11 @@
+ perms.allowed = AA_MAY_CHANGE_PROFILE;
+ perms.xindex = perms.dindex = 0;
+ perms.audit = perms.quiet = perms.kill = 0;
-+ *rstate = 0;
++ if (rstate)
++ *rstate = 0;
+ return perms;
++ } else if (!profile->file.dfa) {
++ return nullperms;
+ } else if ((ns == profile->ns)) {
+ /* try matching against rules with out namespace prependend */
+ perms = aa_str_perms(profile->file.dfa, DFA_START, name, &cond,
@@ -1180,9 +1191,6 @@
+ }
+
+ /* try matching with namespace name and then profile */
-+ if (!profile->file.dfa)
-+ return nullperms;
-+
+ state = aa_dfa_match(profile->file.dfa, DFA_START, ns->base.name);
+ state = aa_dfa_null_transition(profile->file.dfa, state);
+ return aa_str_perms(profile->file.dfa, state, name, &cond, rstate);
@@ -1236,7 +1244,12 @@
+ /* fail exec unless ix || ux fallback - handled by caller */
+ return ERR_PTR(-EACCES);
+ case AA_X_NAME:
-+ break;
++ if (xindex & AA_X_CHILD)
++ new_profile = aa_sys_find_attach(&profile->base, name);
++ else
++ new_profile = aa_sys_find_attach(&ns->base, name);
++
++ goto out;
+ case AA_X_TABLE:
+ if (index > profile->file.trans.size) {
+ AA_ERROR("Invalid named transition\n");
@@ -1282,6 +1295,7 @@
+ aa_put_namespace(new_ns);
+ }
+
++out:
+ if (!new_profile)
+ return ERR_PTR(-ENOENT);
+
@@ -1297,7 +1311,7 @@
+ unsigned int state = DFA_START;
+ struct aa_audit_file sa;
+ struct path_cond cond = { bprm->file->f_path.dentry->d_inode->i_uid,
-+ bprm->file->f_path.dentry->d_inode->i_mode };
++ bprm->file->f_path.dentry->d_inode->i_mode };
+
+ sa.base.error = cap_bprm_set_creds(bprm);
+ if (sa.base.error)
@@ -1330,7 +1344,7 @@
+
+ if (!profile) {
+ /* unconfined task - attach profile if one matches */
-+ new_profile = aa_sys_find_attach(ns, sa.name);
++ new_profile = aa_sys_find_attach(&ns->base, sa.name);
+ if (!new_profile)
+ goto cleanup;
+ goto apply;
@@ -1414,6 +1428,11 @@
+ bprm->unsafe |= AA_SECURE_X_NEEDED;
+
+apply:
++ sa.name2 = new_profile->fqname;
++ /* When switching namespace ensure its part of audit message */
++ if (new_profile->ns != ns)
++ sa.name3 = new_profile->ns->base.name;
++
+ /* when transitioning profiles clear unsafe personality bits */
+ bprm->per_clear |= PER_CLEAR_ON_SETID;
+
@@ -1442,7 +1461,7 @@
+
+ /* the decision to use secure exec is computed in set_creds
+ * and stored in bprm->unsafe. The AppArmor X_UNSAFE flag is
-+ * indicates don't
++ * indicates don't
+ */
+ if (!ret && (bprm->unsafe & AA_SECURE_X_NEEDED))
+ ret = 1;
@@ -1498,7 +1517,7 @@
+ }
+}
+
-+/*
++/*
+ * derived from security/selinux/hooks.c: flush_unauthorized_files &&
+ * fs/exec.c:flush_old_files
+ */
@@ -1538,7 +1557,7 @@
+ }
+ spin_lock(&files->file_lock);
+ }
-+ spin_unlock(&files->file_lock);
++ spin_unlock(&files->file_lock);
+ kfree(buffer);
+ return 0;
+}
@@ -1693,12 +1712,12 @@
+ struct aa_profile *profile, *target = NULL;
+ struct aa_namespace *ns = NULL;
+ struct aa_audit_file sa;
-+ char *name = NULL;
+
-+ if (!name && !ns_name)
++ if (!fqname && !ns_name)
+ return -EINVAL;
+
+ memset(&sa, 0, sizeof(sa));
++ sa.request = AA_MAY_CHANGE_PROFILE;
+ sa.base.gfp_mask = GFP_KERNEL;
+ if (onexec)
+ sa.base.operation = "change_onexec";
@@ -1707,11 +1726,9 @@
+
+ cred = aa_current_policy(&profile);
+ cxt = cred->security;
-+ ns = aa_get_namespace(cxt->sys.profile->ns);
+
+ if (ns_name) {
+ sa.name2 = ns_name;
-+ aa_put_namespace(ns);
+ ns = aa_find_namespace(ns_name);
+ if (!ns) {
+ /* we don't create new namespace in complain mode */
@@ -1719,8 +1736,10 @@
+ sa.base.error = -ENOENT;
+ goto audit;
+ }
-+ } else
++ } else {
++ ns = aa_get_namespace(cxt->sys.profile->ns);
+ sa.name2 = ns->base.name;
++ }
+
+ /* if the name was not specified, use the name of the current profile */
+ if (!fqname) {
@@ -1732,7 +1751,6 @@
+ sa.name = fqname;
+
+ sa.perms = change_profile_perms(profile, ns, fqname, NULL);
-+
+ if (!(sa.perms.allowed & AA_MAY_CHANGE_PROFILE)) {
+ sa.base.error = -EACCES;
+ goto audit;
@@ -1746,7 +1764,7 @@
+ goto audit;
+ target = aa_alloc_null_profile(profile, 0);
+ }
-+
++
+ /* check if tracing task is allowed to trace target domain */
+ sa.base.error = aa_may_change_ptraced_domain(current, target);
+ if (sa.base.error) {
@@ -1773,7 +1791,7 @@
+}
--- /dev/null
+++ b/security/apparmor/file.c
-@@ -0,0 +1,427 @@
+@@ -0,0 +1,426 @@
+/*
+ * AppArmor security module
+ *
@@ -1788,7 +1806,7 @@
+ * License.
+ */
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/audit.h"
+#include "include/file.h"
+#include "include/match.h"
@@ -1807,11 +1825,9 @@
+
+ if (mask & AA_EXEC_MMAP)
+ *m++ = 'm';
-+ if (mask & AA_MAY_CREATE)
-+ *m++ = 'c';
+ if (mask & MAY_READ)
+ *m++ = 'r';
-+ if (mask & MAY_WRITE)
++ if (mask & (MAY_WRITE | AA_MAY_CREATE))
+ *m++ = 'w';
+ else if (mask & MAY_APPEND)
+ *m++ = 'a';
@@ -1915,6 +1931,7 @@
+
+ if (likely(!sa->request))
+ return 0;
++ type = AUDIT_APPARMOR_AUDIT;
+ } else {
+ /* quiet auditing of specific known rejects */
+ u16 mask = sa->perms.quiet;
@@ -1969,7 +1986,7 @@
+ perms.allowed |= AA_LINK_SUBSET;
+
+ /* change_profile wasn't determined by ownership in old mapping */
-+ if (ACCEPT_TABLE2(dfa)[state] & 0x80000000)
++ if (ACCEPT_TABLE(dfa)[state] & 0x80000000)
+ perms.allowed |= AA_MAY_CHANGE_PROFILE;
+
+ return perms;
@@ -2202,101 +2219,6 @@
+ return error;
+}
--- /dev/null
-+++ b/security/apparmor/include/apparmor.h
-@@ -0,0 +1,65 @@
-+/*
-+ * AppArmor security module
-+ *
-+ * This file contains AppArmor basic global and lib definitions
-+ *
-+ * Copyright (C) 1998-2008 Novell/SUSE
-+ * Copyright 2009 Canonical Ltd.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation, version 2 of the
-+ * License.
-+ */
-+
-+#ifndef __APPARMOR_H
-+#define __APPARMOR_H
-+
-+#include
-+
-+/* Control parameters settable thru module/boot flags or
-+ * via /sys/kernel/security/apparmor/control */
-+extern enum audit_mode g_apparmor_audit;
-+extern int g_apparmor_audit_header;
-+extern int g_apparmor_debug;
-+extern int g_apparmor_lock_policy;
-+extern int g_apparmor_logsyscall;
-+extern unsigned int g_apparmor_path_max;
-+
-+
-+/*
-+ * DEBUG remains global (no per profile flag) since it is mostly used in sysctl
-+ * which is not related to profile accesses.
-+ */
-+
-+#define AA_DEBUG(fmt, args...) \
-+ do { \
-+ if (g_apparmor_debug && printk_ratelimit()) \
-+ printk(KERN_DEBUG "AppArmor: " fmt, ##args); \
-+ } while (0)
-+
-+#define AA_ERROR(fmt, args...) \
-+ do { \
-+ if (printk_ratelimit()) \
-+ printk(KERN_ERR "AppArmor: " fmt, ##args); \
-+ } while (0)
-+
-+/* Flag indicating whether initialization completed */
-+extern int apparmor_initialized;
-+void apparmor_disable(void);
-+
-+/* fn's in lib */
-+void info_message(const char *str);
-+char *aa_split_name_from_ns(char *args, char **ns_name);
-+char *new_compound_name(const char *n1, const char *n2);
-+int aa_strneq(const char *str, const char *sub, int len);
-+char *strchrnul(const char *s, int c);
-+const char *fqname_subname(const char *name);
-+
-+static inline int mediated_filesystem(struct inode *inode)
-+{
-+ return !(inode->i_sb->s_flags & MS_NOUSER);
-+}
-+
-+#endif /* __APPARMOR_H */
-+
---- /dev/null
-+++ b/security/apparmor/include/apparmorfs.h
-@@ -0,0 +1,24 @@
-+/*
-+ * AppArmor security module
-+ *
-+ * This file contains AppArmor filesystem definitions.
-+ *
-+ * Copyright (C) 1998-2008 Novell/SUSE
-+ * Copyright 2009 Canonical Ltd.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation, version 2 of the
-+ * License.
-+ */
-+
-+#ifndef __AA_APPARMORFS_H
-+#define __AA_APPARMORFS_H
-+
-+extern struct dentry *apparmorfs_null;
-+extern struct vfsmount *apparmorfs_mnt;
-+
-+extern int create_apparmorfs(void);
-+extern void destroy_apparmorfs(void);
-+
-+#endif /* __AA_APPARMORFS_H */
---- /dev/null
+++ b/security/apparmor/include/audit.h
@@ -0,0 +1,59 @@
+/*
@@ -2604,7 +2526,7 @@
+#endif /* __AA_DOMAIN_H */
--- /dev/null
+++ b/security/apparmor/include/file.h
-@@ -0,0 +1,227 @@
+@@ -0,0 +1,229 @@
+/*
+ * AppArmor security module
+ *
@@ -2661,7 +2583,7 @@
+#define AA_X_INDEX_MASK 0x03ff
+
+#define AA_X_TYPE_MASK 0x0c00
-+#define AA_X_TYPE_SHIFT 10
++#define AA_X_TYPE_SHIFT 10
+#define AA_X_NONE 0x0000
+#define AA_X_NAME 0x0400 /* use executable name px */
+#define AA_X_TABLE 0x0800 /* use a specified name ->n# */
@@ -2717,6 +2639,8 @@
+ index |= AA_X_UNSAFE;
+ if (mask & 0x200)
+ index |= AA_X_INHERIT;
++ if (mask & 0x80)
++ index |= AA_X_UNCONFINED;
+
+ if (old_index == 1) {
+ index |= AA_X_UNCONFINED;
@@ -3068,7 +2992,7 @@
+#include
+#include
+
-+#include "apparmor.h"
++#include "security/apparmor.h"
+#include "audit.h"
+#include "capability.h"
+#include "domain.h"
@@ -3235,7 +3159,7 @@
+
+extern struct aa_namespace *default_namespace;
+extern enum profile_mode g_profile_mode;
-+
++
+
+void aa_add_profile(struct aa_policy_common *common,
+ struct aa_profile *profile);
@@ -3247,7 +3171,7 @@
+void free_aa_namespace(struct aa_namespace *ns);
+struct aa_namespace *__aa_find_namespace(struct list_head *head,
+ const char *name);
-+
++
+struct aa_namespace *aa_find_namespace(const char *name);
+struct aa_namespace *aa_prepare_namespace(const char *name);
+void aa_remove_namespace(struct aa_namespace *ns);
@@ -3295,7 +3219,7 @@
+ const char *name);
+struct aa_profile *aa_match_profile(struct aa_namespace *ns, const char *name);
+struct aa_profile *aa_profile_newest(struct aa_profile *profile);
-+struct aa_profile *aa_sys_find_attach(struct aa_namespace *ns,
++struct aa_profile *aa_sys_find_attach(struct aa_policy_common *base,
+ const char *name);
+void __aa_add_profile(struct aa_policy_common *common,
+ struct aa_profile *profile);
@@ -3449,6 +3373,101 @@
+
+#endif /* __AA_RESOURCE_H */
--- /dev/null
++++ b/security/apparmor/include/security/apparmor.h
+@@ -0,0 +1,65 @@
++/*
++ * AppArmor security module
++ *
++ * This file contains AppArmor basic global and lib definitions
++ *
++ * Copyright (C) 1998-2008 Novell/SUSE
++ * Copyright 2009 Canonical Ltd.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation, version 2 of the
++ * License.
++ */
++
++#ifndef __APPARMOR_H
++#define __APPARMOR_H
++
++#include
++
++/* Control parameters settable thru module/boot flags or
++ * via /sys/kernel/securitysecurity/apparmor/control */
++extern enum audit_mode g_apparmor_audit;
++extern int g_apparmor_audit_header;
++extern int g_apparmor_debug;
++extern int g_apparmor_lock_policy;
++extern int g_apparmor_logsyscall;
++extern unsigned int g_apparmor_path_max;
++
++
++/*
++ * DEBUG remains global (no per profile flag) since it is mostly used in sysctl
++ * which is not related to profile accesses.
++ */
++
++#define AA_DEBUG(fmt, args...) \
++ do { \
++ if (g_apparmor_debug && printk_ratelimit()) \
++ printk(KERN_DEBUG "AppArmor: " fmt, ##args); \
++ } while (0)
++
++#define AA_ERROR(fmt, args...) \
++ do { \
++ if (printk_ratelimit()) \
++ printk(KERN_ERR "AppArmor: " fmt, ##args); \
++ } while (0)
++
++/* Flag indicating whether initialization completed */
++extern int apparmor_initialized;
++void apparmor_disable(void);
++
++/* fn's in lib */
++void info_message(const char *str);
++char *aa_split_name_from_ns(char *args, char **ns_name);
++char *new_compound_name(const char *n1, const char *n2);
++int aa_strneq(const char *str, const char *sub, int len);
++char *strchrnul(const char *s, int c);
++const char *fqname_subname(const char *name);
++
++static inline int mediated_filesystem(struct inode *inode)
++{
++ return !(inode->i_sb->s_flags & MS_NOUSER);
++}
++
++#endif /* __APPARMOR_H */
++
+--- /dev/null
++++ b/security/apparmor/include/security/apparmorfs.h
+@@ -0,0 +1,24 @@
++/*
++ * AppArmor security module
++ *
++ * This file contains AppArmor filesystem definitions.
++ *
++ * Copyright (C) 1998-2008 Novell/SUSE
++ * Copyright 2009 Canonical Ltd.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation, version 2 of the
++ * License.
++ */
++
++#ifndef __AA_APPARMORFS_H
++#define __AA_APPARMORFS_H
++
++extern struct dentry *apparmorfs_null;
++extern struct vfsmount *apparmorfs_mnt;
++
++extern int create_apparmorfs(void);
++extern void destroy_apparmorfs(void);
++
++#endif /* __AA_APPARMORFS_H */
+--- /dev/null
+++ b/security/apparmor/include/sid.h
@@ -0,0 +1,46 @@
+/*
@@ -3738,8 +3757,8 @@
+#include
+#include
+
-+#include "include/apparmor.h"
-+#include "include/apparmorfs.h"
++#include "include/security/apparmor.h"
++#include "include/security/apparmorfs.h"
+#include "include/audit.h"
+#include "include/capability.h"
+#include "include/context.h"
@@ -3852,7 +3871,7 @@
+ if (!buffer)
+ goto out;
+
-+ /*
++ /*
+ * TODO: convert this over to using a global or per
+ * namespace control instead of a hard coded /proc
+ */
@@ -3885,7 +3904,7 @@
+}
+
+static int common_perm_dentry(const char *op, struct path *dir,
-+ struct dentry *dentry, u16 mask,
++ struct dentry *dentry, u16 mask,
+ struct path_cond *cond)
+{
+ struct path path = { dir->mnt, dentry };
@@ -3995,7 +4014,7 @@
+ if (!error)
+ error = aa_path_perm(profile, "rename_dest", &new_path,
+ AA_MAY_CREATE | MAY_WRITE, &cond);
-+
++
+ }
+ return error;
+}
@@ -4004,7 +4023,7 @@
+{
+ struct aa_profile *profile;
+ int error = 0;
-+
++
+ /* If in exec permission is handled by bprm hooks */
+ if (current->in_execve ||
+ !mediated_filesystem(file->f_path.dentry->d_inode))
@@ -4013,7 +4032,7 @@
+ aa_cred_policy(cred, &profile);
+ if (profile) {
+ struct aa_file_cxt *fcxt = file->f_security;
-+ struct inode *inode = file->f_path.dentry->d_inode;
++ struct inode *inode = file->f_path.dentry->d_inode;
+ struct path_cond cond = { inode->i_uid, inode->i_mode };
+
+ error = aa_path_perm(profile, "open", &file->f_path,
@@ -4105,7 +4124,7 @@
+
+/*
+ * AppArmor doesn't current use the fcntl hook.
-+ *
++ *
+ * FIXME - these are not implemented yet - REMOVE file_fcntl hook
+ * NOTE: some of the file control commands are further mediated
+ * by other hooks
@@ -4476,7 +4495,7 @@
+static int param_get_mode(char *buffer, struct kernel_param *kp);
+#define param_check_mode(name, p) __param_check(name, p, int)
+
-+/* Flag values, also controllable via /sys/module/apparmor/parameters
++/* Flag values, also controllable via /sys/modulesecurity/apparmor/parameters
+ * We define special types as we want to do additional mediation.
+ */
+
@@ -4799,7 +4818,7 @@
+/* TODO: remove !!!! */
+// #include
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/match.h"
+#include "include/file.h"
+
@@ -5073,7 +5092,7 @@
+
--- /dev/null
+++ b/security/apparmor/net.c
-@@ -0,0 +1,146 @@
+@@ -0,0 +1,147 @@
+/*
+ * AppArmor security module
+ *
@@ -5088,7 +5107,7 @@
+ * License.
+ */
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/audit.h"
+#include "include/context.h"
+#include "include/net.h"
@@ -5138,7 +5157,7 @@
+
+ audit_log_format(ab, " protocol=%d", sa->protocol);
+ }
-+
++
+}
+
+static int aa_audit_net(struct aa_profile *profile, struct aa_audit_net *sa)
@@ -5150,6 +5169,7 @@
+ if (likely((PROFILE_AUDIT_MODE(profile) != AUDIT_ALL) &&
+ !(1 << sa->type & audit_mask)))
+ return 0;
++ type = AUDIT_APPARMOR_AUDIT;
+ } else {
+ u16 quiet_mask = profile->net.quiet[sa->family];
+ u16 kill_mask = 0;
@@ -5245,7 +5265,7 @@
+#include
+#include
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/path.h"
+
+int aa_get_name_to_buffer(struct path *path, int is_dir, char *buffer, int size,
@@ -5380,7 +5400,7 @@
+}
--- /dev/null
+++ b/security/apparmor/policy.c
-@@ -0,0 +1,727 @@
+@@ -0,0 +1,729 @@
+/*
+ * AppArmor security module
+ *
@@ -5430,7 +5450,7 @@
+#include
+#include
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/capability.h"
+#include "include/file.h"
+#include "include/ipc.h"
@@ -5488,7 +5508,7 @@
+
+static struct aa_policy_common *__common_find(struct list_head *head,
+ const char *name)
-+
++
+{
+ struct aa_policy_common *common;
+
@@ -5611,7 +5631,7 @@
+
+struct aa_namespace *__aa_find_namespace(struct list_head *head,
+ const char *name)
-+
++
+{
+ return (struct aa_namespace *) __common_find(head, name);
+}
@@ -5659,7 +5679,7 @@
+struct aa_namespace *aa_prepare_namespace(const char *name)
+{
+ struct aa_namespace *ns;
-+
++
+ write_lock(&ns_list_lock);
+ if (name)
+ ns = aa_get_namespace(__aa_find_namespace(&ns_list, name));
@@ -5800,12 +5820,12 @@
+ profile = kzalloc(sizeof(*profile), GFP_KERNEL);
+ if (!profile)
+ return NULL;
-+
++
+ if (!common_init(&profile->base, fqname)) {
+ kfree(profile);
+ return NULL;
+ }
-+
++
+ profile->fqname = profile->base.name;
+ profile->base.name = (char *) fqname_subname((const char *) profile->fqname);
+ return profile;
@@ -5976,7 +5996,7 @@
+
+ common = &ns->base;
+
-+
++
+ for (split = strstr(fqname, "//"); split; ) {
+ profile = __aa_find_profile_by_strn(&common->profiles, fqname,
+ split - fqname);
@@ -6053,8 +6073,9 @@
+ if (profile->xmatch && profile->xmatch_len > len) {
+ unsigned int state = aa_dfa_match(profile->xmatch,
+ DFA_START, name);
-+ /* any accepting state means a valid match */
-+ if (state > DFA_START) {
++ u16 perm = dfa_user_allow(profile->xmatch, state);
++ /* any accepting state means a valid match. */
++ if (perm & MAY_EXEC) {
+ candidate = profile;
+ len = profile->xmatch_len;
+ }
@@ -6068,16 +6089,17 @@
+
+/**
+ * aa_sys_find_attach - do attachment search for sys unconfined processes
-+ * @ns: the namespace to search
++ * @base: the base to search
+ * name: the executable name to match against
+ */
-+struct aa_profile *aa_sys_find_attach(struct aa_namespace *ns, const char *name)
++struct aa_profile *aa_sys_find_attach(struct aa_policy_common *base,
++ const char *name)
+{
+ struct aa_profile *profile;
+
-+ read_lock(&ns->base.lock);
-+ profile = aa_get_profile(__aa_attach_match(name, &ns->base.profiles));
-+ read_unlock(&ns->base.lock);
++ read_lock(&base->lock);
++ profile = aa_get_profile(__aa_attach_match(name, &base->profiles));
++ read_unlock(&base->lock);
+
+ return profile;
+}
@@ -6102,7 +6124,7 @@
+ profile = NULL;
+ break;
+ }
-+ }
++ }
+ }
+
+ return profile;
@@ -6110,7 +6132,7 @@
+
--- /dev/null
+++ b/security/apparmor/policy_interface.c
-@@ -0,0 +1,850 @@
+@@ -0,0 +1,852 @@
+/*
+ * AppArmor security module
+ *
@@ -6133,7 +6155,7 @@
+#include
+#include
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/audit.h"
+#include "include/context.h"
+#include "include/match.h"
@@ -6210,8 +6232,10 @@
+ audit_log_format(ab, " name=%s", sa->name);
+ if (sa->name2)
+ audit_log_format(ab, " namespace=%s", sa->name2);
-+ if (sa->base.error && sa->e)
-+ audit_log_format(ab, " offset=%d", sa->e->pos - sa->e->start);
++ if (sa->base.error && sa->e) {
++ long len = sa->e->pos - sa->e->start;
++ audit_log_format(ab, " offset=%ld", len);
++ }
+}
+
+static int aa_audit_iface(struct aa_audit_iface *sa)
@@ -6758,6 +6782,7 @@
+ if (__aa_find_profile(&common->profiles, profile->base.name)) {
+ /* A profile with this name exists already. */
+ sa.base.info = "profile already exists";
++ sa.base.error = -EEXIST;
+ goto fail2;
+ }
+ profile->sid = aa_alloc_sid(AA_ALLOC_SYS_SID);
@@ -6773,7 +6798,6 @@
+
+fail2:
+ write_unlock(&ns->base.lock);
-+ sa.base.error = -EEXIST;
+
+fail:
+ error = aa_audit_iface(&sa);
@@ -6824,7 +6848,7 @@
+ sa.base.info = "failed to prepare namespace";
+ sa.base.error = -ENOMEM;
+ goto fail;
-+ }
++ }
+
+ sa.name = new_profile->fqname;
+
@@ -6959,7 +6983,7 @@
+fail_ns_list_lock:
+ write_unlock(&ns_list_lock);
+ aa_audit_iface(&sa);
-+ return 0; //-ENOENT;
++ return -ENOENT;
+}
--- /dev/null
+++ b/security/apparmor/procattr.c
@@ -6978,7 +7002,7 @@
+ * License.
+ */
+
-+#include "include/apparmor.h"
++#include "include/security/apparmor.h"
+#include "include/policy.h"
+#include "include/domain.h"
+
@@ -7221,8 +7245,8 @@
+ */
+
+#include
-+#include
+#include
++#include
+
+#include "include/sid.h"
+
@@ -7243,13 +7267,13 @@
+{
+ u32 sid;
+
-+ /*
++ /*
+ * TODO FIXME: sid recycling - part of profile mapping table
+ */
+ spin_lock(&sid_lock);
+ if (is_usr) {
+ sid = (++global_usr_sid) << 16;
-+
++
+ } else {
+ sid = ++global_sys_sid;
+ }
++++++ patches.arch.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/add_support_for_hpet_msi_intr_remap.patch new/patches.arch/add_support_for_hpet_msi_intr_remap.patch
--- old/patches.arch/add_support_for_hpet_msi_intr_remap.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/add_support_for_hpet_msi_intr_remap.patch 2009-09-01 19:13:56.000000000 +0200
@@ -0,0 +1,224 @@
+From: Suresh Siddha
+Subject: intr-remap: generic support for remapping HPET MSIs
+Patch-mainline: 2.6.32?
+References: bnc#532758
+
+Generic support for remapping HPET MSI's by parsing the HPET timer block
+device scope in the ACPI DRHD tables. This is needed for platforms
+supporting interrupt-remapping and MSI capable HPET timer block.
+
+Signed-off-by: Suresh Siddha
+Cc: David Woodhouse
+Cc: Jesse Barnes
+Cc: Venkatesh Pallipadi
+Cc: Jay Fenlason
+Acked-by: Jeff Mahoney
+---
+
+ drivers/pci/intr_remapping.c | 89 +++++++++++++++++++++++++++++++++++++++++--
+ drivers/pci/intr_remapping.h | 7 +++
+ include/linux/dmar.h | 10 ++++
+ include/linux/hpet.h | 2
+ 4 files changed, 104 insertions(+), 4 deletions(-)
+
+--- a/drivers/pci/intr_remapping.c
++++ b/drivers/pci/intr_remapping.c
+@@ -2,6 +2,7 @@
+ #include
+ #include
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -14,7 +15,8 @@
+ #include "pci.h"
+
+ static struct ioapic_scope ir_ioapic[MAX_IO_APICS];
+-static int ir_ioapic_num;
++static struct hpet_scope ir_hpet[MAX_HPET_TBS];
++static int ir_ioapic_num, ir_hpet_num;
+ int intr_remapping_enabled;
+
+ static int disable_intremap;
+@@ -351,6 +353,16 @@ int flush_irte(int irq)
+ return rc;
+ }
+
++struct intel_iommu *map_hpet_to_ir(u8 hpet_id)
++{
++ int i;
++
++ for (i = 0; i < MAX_HPET_TBS; i++)
++ if (ir_hpet[i].id == hpet_id)
++ return ir_hpet[i].iommu;
++ return NULL;
++}
++
+ struct intel_iommu *map_ioapic_to_ir(int apic)
+ {
+ int i;
+@@ -478,6 +490,36 @@ int set_ioapic_sid(struct irte *irte, in
+ return 0;
+ }
+
++int set_hpet_sid(struct irte *irte, u8 id)
++{
++ int i;
++ u16 sid = 0;
++
++ if (!irte)
++ return -1;
++
++ for (i = 0; i < MAX_HPET_TBS; i++) {
++ if (ir_hpet[i].id == id) {
++ sid = (ir_hpet[i].bus << 8) | ir_hpet[i].devfn;
++ break;
++ }
++ }
++
++ if (sid == 0) {
++ pr_warning("Failed to set source-id of HPET block (%d)\n", id);
++ return -1;
++ }
++
++ /*
++ * Should really use SQ_ALL_16. Some platforms are broken.
++ * While we figure out the right quirks for these broken platforms, use
++ * SQ_13_IGNORE_3 for now.
++ */
++ set_irte_sid(irte, SVT_VERIFY_SID_SQ, SQ_13_IGNORE_3, sid);
++
++ return 0;
++}
++
+ int set_msi_sid(struct irte *irte, struct pci_dev *dev)
+ {
+ struct pci_dev *bridge;
+@@ -711,6 +753,34 @@ error:
+ return -1;
+ }
+
++static void ir_parse_one_hpet_scope(struct acpi_dmar_device_scope *scope,
++ struct intel_iommu *iommu)
++{
++ struct acpi_dmar_pci_path *path;
++ u8 bus;
++ int count;
++
++ bus = scope->bus;
++ path = (struct acpi_dmar_pci_path *)(scope + 1);
++ count = (scope->length - sizeof(struct acpi_dmar_device_scope))
++ / sizeof(struct acpi_dmar_pci_path);
++
++ while (--count > 0) {
++ /*
++ * Access PCI directly due to the PCI
++ * subsystem isn't initialized yet.
++ */
++ bus = read_pci_config_byte(bus, path->dev, path->fn,
++ PCI_SECONDARY_BUS);
++ path++;
++ }
++ ir_hpet[ir_hpet_num].bus = bus;
++ ir_hpet[ir_hpet_num].devfn = PCI_DEVFN(path->dev, path->fn);
++ ir_hpet[ir_hpet_num].iommu = iommu;
++ ir_hpet[ir_hpet_num].id = scope->enumeration_id;
++ ir_hpet_num++;
++}
++
+ static void ir_parse_one_ioapic_scope(struct acpi_dmar_device_scope *scope,
+ struct intel_iommu *iommu)
+ {
+@@ -740,8 +810,8 @@ static void ir_parse_one_ioapic_scope(st
+ ir_ioapic_num++;
+ }
+
+-static int ir_parse_ioapic_scope(struct acpi_dmar_header *header,
+- struct intel_iommu *iommu)
++static int ir_parse_ioapic_hpet_scope(struct acpi_dmar_header *header,
++ struct intel_iommu *iommu)
+ {
+ struct acpi_dmar_hardware_unit *drhd;
+ struct acpi_dmar_device_scope *scope;
+@@ -765,6 +835,17 @@ static int ir_parse_ioapic_scope(struct
+ drhd->address);
+
+ ir_parse_one_ioapic_scope(scope, iommu);
++ } else if (scope->entry_type == ACPI_DMAR_SCOPE_TYPE_HPET) {
++ if (ir_hpet_num == MAX_HPET_TBS) {
++ printk(KERN_WARNING "Exceeded Max HPET blocks\n");
++ return -1;
++ }
++
++ printk(KERN_INFO "HPET id %d under DRHD base"
++ " 0x%Lx\n", scope->enumeration_id,
++ drhd->address);
++
++ ir_parse_one_hpet_scope(scope, iommu);
+ }
+ start += scope->length;
+ }
+@@ -785,7 +866,7 @@ int __init parse_ioapics_under_ir(void)
+ struct intel_iommu *iommu = drhd->iommu;
+
+ if (ecap_ir_support(iommu->ecap)) {
+- if (ir_parse_ioapic_scope(drhd->hdr, iommu))
++ if (ir_parse_ioapic_hpet_scope(drhd->hdr, iommu))
+ return -1;
+
+ ir_supported = 1;
+--- a/drivers/pci/intr_remapping.h
++++ b/drivers/pci/intr_remapping.h
+@@ -7,4 +7,11 @@ struct ioapic_scope {
+ unsigned int devfn; /* PCI devfn number */
+ };
+
++struct hpet_scope {
++ struct intel_iommu *iommu;
++ u8 id;
++ unsigned int bus;
++ unsigned int devfn;
++};
++
+ #define IR_X2APIC_MODE(mode) (mode ? (1 << 11) : 0)
+--- a/include/linux/dmar.h
++++ b/include/linux/dmar.h
+@@ -126,7 +126,9 @@ extern int free_irte(int irq);
+ extern int irq_remapped(int irq);
+ extern struct intel_iommu *map_dev_to_ir(struct pci_dev *dev);
+ extern struct intel_iommu *map_ioapic_to_ir(int apic);
++extern struct intel_iommu *map_hpet_to_ir(u8 id);
+ extern int set_ioapic_sid(struct irte *irte, int apic);
++extern int set_hpet_sid(struct irte *irte, u8 id);
+ extern int set_msi_sid(struct irte *irte, struct pci_dev *dev);
+ #else
+ static inline int alloc_irte(struct intel_iommu *iommu, int irq, u16 count)
+@@ -158,10 +160,18 @@ static inline struct intel_iommu *map_io
+ {
+ return NULL;
+ }
++static inline struct intel_iommu *map_hpet_to_ir(unsigned int hpet_id)
++{
++ return NULL;
++}
+ static inline int set_ioapic_sid(struct irte *irte, int apic)
+ {
+ return 0;
+ }
++static inline int set_hpet_sid(struct irte *irte, u8 id)
++{
++ return -1;
++}
+ static inline int set_msi_sid(struct irte *irte, struct pci_dev *dev)
+ {
+ return 0;
+--- a/include/linux/hpet.h
++++ b/include/linux/hpet.h
+@@ -126,4 +126,6 @@ struct hpet_info {
+ #define HPET_DPI _IO('h', 0x05) /* disable periodic */
+ #define HPET_IRQFREQ _IOW('h', 0x6, unsigned long) /* IRQFREQ usec */
+
++#define MAX_HPET_TBS 8 /* maximum hpet timer blocks */
++
+ #endif /* !__HPET__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/add_x86_support_for_hpet_msi_intr_remap.patch new/patches.arch/add_x86_support_for_hpet_msi_intr_remap.patch
--- old/patches.arch/add_x86_support_for_hpet_msi_intr_remap.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/add_x86_support_for_hpet_msi_intr_remap.patch 2009-09-01 19:13:56.000000000 +0200
@@ -0,0 +1,176 @@
+From: Suresh Siddha
+Subject: x86: arch specific support for remapping HPET MSIs
+Patch-mainline: 2.6.32?
+References: bnc#532758
+
+x86 arch support for remapping HPET MSI's by associating the HPET timer block
+with the interrupt-remapping HW unit and setting up appropriate irq_chip
+
+Signed-off-by: Suresh Siddha
+Cc: Venkatesh Pallipadi
+Cc: David Woodhouse
+Cc: Jesse Barnes
+Cc: Jay Fenlason
+Acked-by: Jeff Mahoney
+---
+
+ arch/x86/include/asm/hpet.h | 5 ++--
+ arch/x86/kernel/acpi/boot.c | 1
+ arch/x86/kernel/apic/io_apic.c | 49 ++++++++++++++++++++++++++++++++++-------
+ arch/x86/kernel/hpet.c | 3 +-
+ 4 files changed, 47 insertions(+), 11 deletions(-)
+
+--- a/arch/x86/include/asm/hpet.h
++++ b/arch/x86/include/asm/hpet.h
+@@ -65,6 +65,7 @@
+ /* hpet memory map physical address */
+ extern unsigned long hpet_address;
+ extern unsigned long force_hpet_address;
++extern u8 hpet_blockid;
+ extern int hpet_force_user;
+ extern int is_hpet_enabled(void);
+ extern int hpet_enable(void);
+@@ -78,9 +79,9 @@ extern void hpet_msi_write(unsigned int
+ extern void hpet_msi_read(unsigned int irq, struct msi_msg *msg);
+
+ #ifdef CONFIG_PCI_MSI
+-extern int arch_setup_hpet_msi(unsigned int irq);
++extern int arch_setup_hpet_msi(unsigned int irq, unsigned int id);
+ #else
+-static inline int arch_setup_hpet_msi(unsigned int irq)
++static inline int arch_setup_hpet_msi(unsigned int irq, unsigned int id)
+ {
+ return -EINVAL;
+ }
+--- a/arch/x86/kernel/acpi/boot.c
++++ b/arch/x86/kernel/acpi/boot.c
+@@ -636,6 +636,7 @@ static int __init acpi_parse_hpet(struct
+ }
+
+ hpet_address = hpet_tbl->address.address;
++ hpet_blockid = hpet_tbl->sequence;
+
+ /*
+ * Some broken BIOSes advertise HPET at 0x0. We really do not
+--- a/arch/x86/kernel/apic/io_apic.c
++++ b/arch/x86/kernel/apic/io_apic.c
+@@ -3262,7 +3262,8 @@ void destroy_irq(unsigned int irq)
+ * MSI message composition
+ */
+ #ifdef CONFIG_PCI_MSI
+-static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_msg *msg)
++static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq,
++ struct msi_msg *msg, u8 hpet_id)
+ {
+ struct irq_cfg *cfg;
+ int err;
+@@ -3296,7 +3297,10 @@ static int msi_compose_msg(struct pci_de
+ irte.dest_id = IRTE_DEST(dest);
+
+ /* Set source-id of interrupt request */
+- set_msi_sid(&irte, pdev);
++ if (pdev)
++ set_msi_sid(&irte, pdev);
++ else
++ set_hpet_sid(&irte, hpet_id);
+
+ modify_irte(irq, &irte);
+
+@@ -3461,7 +3465,7 @@ static int setup_msi_irq(struct pci_dev
+ int ret;
+ struct msi_msg msg;
+
+- ret = msi_compose_msg(dev, irq, &msg);
++ ret = msi_compose_msg(dev, irq, &msg, -1);
+ if (ret < 0)
+ return ret;
+
+@@ -3594,7 +3598,7 @@ int arch_setup_dmar_msi(unsigned int irq
+ int ret;
+ struct msi_msg msg;
+
+- ret = msi_compose_msg(NULL, irq, &msg);
++ ret = msi_compose_msg(NULL, irq, &msg, -1);
+ if (ret < 0)
+ return ret;
+ dmar_msi_write(irq, &msg);
+@@ -3634,6 +3638,19 @@ static int hpet_msi_set_affinity(unsigne
+
+ #endif /* CONFIG_SMP */
+
++static struct irq_chip ir_hpet_msi_type = {
++ .name = "IR-HPET_MSI",
++ .unmask = hpet_msi_unmask,
++ .mask = hpet_msi_mask,
++#ifdef CONFIG_INTR_REMAP
++ .ack = ir_ack_apic_edge,
++#ifdef CONFIG_SMP
++ .set_affinity = ir_set_msi_irq_affinity,
++#endif
++#endif
++ .retrigger = ioapic_retrigger_irq,
++};
++
+ static struct irq_chip hpet_msi_type = {
+ .name = "HPET_MSI",
+ .unmask = hpet_msi_unmask,
+@@ -3645,20 +3662,36 @@ static struct irq_chip hpet_msi_type = {
+ .retrigger = ioapic_retrigger_irq,
+ };
+
+-int arch_setup_hpet_msi(unsigned int irq)
++int arch_setup_hpet_msi(unsigned int irq, unsigned int id)
+ {
+ int ret;
+ struct msi_msg msg;
+ struct irq_desc *desc = irq_to_desc(irq);
+
+- ret = msi_compose_msg(NULL, irq, &msg);
++ if (intr_remapping_enabled) {
++ struct intel_iommu *iommu = map_hpet_to_ir(id);
++ int index;
++
++ if (!iommu)
++ return -1;
++
++ index = alloc_irte(iommu, irq, 1);
++ if (index < 0)
++ return -1;
++ }
++
++ ret = msi_compose_msg(NULL, irq, &msg, id);
+ if (ret < 0)
+ return ret;
+
+ hpet_msi_write(irq, &msg);
+ desc->status |= IRQ_MOVE_PCNTXT;
+- set_irq_chip_and_handler_name(irq, &hpet_msi_type, handle_edge_irq,
+- "edge");
++ if (irq_remapped(irq))
++ set_irq_chip_and_handler_name(irq, &ir_hpet_msi_type,
++ handle_edge_irq, "edge");
++ else
++ set_irq_chip_and_handler_name(irq, &hpet_msi_type,
++ handle_edge_irq, "edge");
+
+ return 0;
+ }
+--- a/arch/x86/kernel/hpet.c
++++ b/arch/x86/kernel/hpet.c
+@@ -33,6 +33,7 @@
+ * HPET address is set in acpi/boot.c, when an ACPI entry exists
+ */
+ unsigned long hpet_address;
++u8 hpet_blockid; /* OS timer block num */
+ #ifdef CONFIG_PCI_MSI
+ static unsigned long hpet_num_timers;
+ #endif
+@@ -468,7 +469,7 @@ static int hpet_msi_next_event(unsigned
+
+ static int hpet_setup_msi_irq(unsigned int irq)
+ {
+- if (arch_setup_hpet_msi(irq)) {
++ if (arch_setup_hpet_msi(irq, hpet_blockid)) {
+ destroy_irq(irq);
+ return -EINVAL;
+ }
++++++ patches.drivers.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/alsa-hda-2.6.32-pre new/patches.drivers/alsa-hda-2.6.32-pre
--- old/patches.drivers/alsa-hda-2.6.32-pre 2009-08-31 12:17:40.000000000 +0200
+++ new/patches.drivers/alsa-hda-2.6.32-pre 2009-09-02 08:07:02.000000000 +0200
@@ -12,14 +12,14 @@
sound/pci/hda/Kconfig | 27
sound/pci/hda/Makefile | 4
sound/pci/hda/hda_beep.c | 4
- sound/pci/hda/hda_codec.c | 66
+ sound/pci/hda/hda_codec.c | 68
sound/pci/hda/hda_codec.h | 10
sound/pci/hda/hda_generic.c | 18
sound/pci/hda/hda_hwdep.c | 236 +
sound/pci/hda/hda_intel.c | 74
sound/pci/hda/hda_local.h | 14
sound/pci/hda/hda_proc.c | 7
- sound/pci/hda/patch_analog.c | 129
+ sound/pci/hda/patch_analog.c | 131
sound/pci/hda/patch_atihdmi.c | 3
sound/pci/hda/patch_ca0110.c | 3
sound/pci/hda/patch_cirrus.c | 1194 ++++++
@@ -27,9 +27,9 @@
sound/pci/hda/patch_conexant.c | 479 ++
sound/pci/hda/patch_intelhdmi.c | 104
sound/pci/hda/patch_realtek.c | 4379 +++++++++++-------------
- sound/pci/hda/patch_sigmatel.c | 896 ++--
+ sound/pci/hda/patch_sigmatel.c | 1206 +++---
sound/pci/hda/patch_via.c | 3
- 23 files changed, 4960 insertions(+), 2792 deletions(-)
+ 23 files changed, 4994 insertions(+), 3072 deletions(-)
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -410,6 +410,15 @@
/* should be exclusive */
/* temporary hack: we have still no proper support
* for the direct AC3 stream...
+@@ -3102,7 +3127,7 @@
+ tbl = q;
+
+ if (tbl->value >= 0 && tbl->value < num_configs) {
+-#ifdef CONFIG_SND_DEBUG_DETECT
++#ifdef CONFIG_SND_DEBUG_VERBOSE
+ char tmp[10];
+ const char *model = NULL;
+ if (models)
@@ -3655,8 +3680,7 @@
end_nid = codec->start_nid + codec->num_nodes;
for (nid = codec->start_nid; nid < end_nid; nid++) {
@@ -1213,7 +1222,13 @@
/* additional verbs for laptop model */
static struct hda_verb ad1884a_laptop_verbs[] = {
/* Port-A (HP) pin - always unmuted */
-@@ -3848,7 +3889,13 @@
+@@ -3844,11 +3885,19 @@
+ {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80},
+ {0x14, AC_VERB_SET_AMP_GAIN_MUTE, 0x7002}, /* raise mic as default */
+ {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0x7002}, /* raise mic as default */
++ /* Port-D (docking line-out) pin - default unmuted */
++ {0x12, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
+ /* analog mix */
{0x20, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(4)},
/* unsolicited event for pin-sense */
{0x11, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | AD1884A_HP_EVENT},
@@ -1227,7 +1242,7 @@
{ } /* end */
};
-@@ -4008,6 +4055,7 @@
+@@ -4008,6 +4057,7 @@
SND_PCI_QUIRK_MASK(0x103c, 0xfff0, 0x30d0, "HP laptop", AD1884A_LAPTOP),
SND_PCI_QUIRK_MASK(0x103c, 0xfff0, 0x30e0, "HP laptop", AD1884A_LAPTOP),
SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x3600, "HP laptop", AD1884A_LAPTOP),
@@ -1235,7 +1250,7 @@
SND_PCI_QUIRK(0x17aa, 0x20ac, "Thinkpad X300", AD1884A_THINKPAD),
{}
};
-@@ -4057,9 +4105,8 @@
+@@ -4057,9 +4107,8 @@
spec->mixers[0] = ad1884a_laptop_mixers;
spec->init_verbs[spec->num_init_verbs++] = ad1884a_laptop_verbs;
spec->multiout.dig_out_nid = 0;
@@ -9937,7 +9952,15 @@
};
enum {
-@@ -177,6 +179,12 @@
+@@ -81,6 +83,7 @@
+ STAC_DELL_M6_DMIC,
+ STAC_DELL_M6_BOTH,
+ STAC_DELL_EQ,
++ STAC_ALIENWARE_M17X,
+ STAC_92HD73XX_MODELS
+ };
+
+@@ -177,6 +180,12 @@
struct snd_jack *jack;
};
@@ -9950,7 +9973,7 @@
struct sigmatel_spec {
struct snd_kcontrol_new *mixers[4];
unsigned int num_mixers;
-@@ -188,6 +196,7 @@
+@@ -188,6 +197,7 @@
unsigned int hp_detect: 1;
unsigned int spdif_mute: 1;
unsigned int check_volume_offset:1;
@@ -9958,6 +9981,14 @@
/* gpio lines */
unsigned int eapd_mask;
+@@ -219,7 +229,6 @@
+
+ /* playback */
+ struct hda_input_mux *mono_mux;
+- struct hda_input_mux *amp_mux;
+ unsigned int cur_mmux;
+ struct hda_multi_out multiout;
+ hda_nid_t dac_nids[5];
@@ -239,6 +248,15 @@
unsigned int num_dmuxes;
hda_nid_t *smux_nids;
@@ -9974,7 +10005,46 @@
const char **spdif_labels;
hda_nid_t dig_in_nid;
-@@ -335,14 +353,16 @@
+@@ -263,7 +281,6 @@
+ unsigned int cur_smux[2];
+ unsigned int cur_amux;
+ hda_nid_t *amp_nids;
+- unsigned int num_amps;
+ unsigned int powerdown_adcs;
+
+ /* i/o switches */
+@@ -282,7 +299,6 @@
+ struct hda_input_mux private_dimux;
+ struct hda_input_mux private_imux;
+ struct hda_input_mux private_smux;
+- struct hda_input_mux private_amp_mux;
+ struct hda_input_mux private_mono_mux;
+ };
+
+@@ -311,11 +327,6 @@
+ 0x1a, 0x1b
+ };
+
+-#define DELL_M6_AMP 2
+-static hda_nid_t stac92hd73xx_amp_nids[3] = {
+- 0x0b, 0x0c, 0x0e
+-};
+-
+ #define STAC92HD73XX_NUM_DMICS 2
+ static hda_nid_t stac92hd73xx_dmic_nids[STAC92HD73XX_NUM_DMICS + 1] = {
+ 0x13, 0x14, 0
+@@ -323,8 +334,8 @@
+
+ #define STAC92HD73_DAC_COUNT 5
+
+-static hda_nid_t stac92hd73xx_mux_nids[4] = {
+- 0x28, 0x29, 0x2a, 0x2b,
++static hda_nid_t stac92hd73xx_mux_nids[2] = {
++ 0x20, 0x21,
+ };
+
+ static hda_nid_t stac92hd73xx_dmux_nids[2] = {
+@@ -335,14 +346,16 @@
0x22, 0x23,
};
@@ -9995,7 +10065,7 @@
0x17, 0x18,
};
-@@ -362,9 +382,12 @@
+@@ -362,9 +375,12 @@
0x03, 0x0c, 0x20, 0x40,
};
@@ -10010,7 +10080,7 @@
static hda_nid_t stac92hd71bxx_pwr_nids[3] = {
0x0a, 0x0d, 0x0f
-@@ -395,6 +418,13 @@
+@@ -395,6 +411,13 @@
0x22, 0
};
@@ -10024,7 +10094,7 @@
static hda_nid_t stac925x_adc_nids[1] = {
0x03,
};
-@@ -416,6 +446,13 @@
+@@ -416,6 +439,13 @@
0x14,
};
@@ -10038,7 +10108,7 @@
static hda_nid_t stac922x_adc_nids[2] = {
0x06, 0x07,
};
-@@ -424,6 +461,13 @@
+@@ -424,6 +454,13 @@
0x12, 0x13,
};
@@ -10052,7 +10122,7 @@
static hda_nid_t stac927x_slave_dig_outs[2] = {
0x1f, 0,
};
-@@ -453,6 +497,18 @@
+@@ -453,6 +490,18 @@
0x13, 0x14, 0
};
@@ -10071,7 +10141,7 @@
static const char *stac927x_spdif_labels[5] = {
"Digital Playback", "ADAT", "Analog Mux 1",
"Analog Mux 2", "Analog Mux 3"
-@@ -479,6 +535,16 @@
+@@ -479,6 +528,16 @@
0x17, 0x18, 0
};
@@ -10088,7 +10158,42 @@
static hda_nid_t stac9200_pin_nids[8] = {
0x08, 0x09, 0x0d, 0x0e,
0x0f, 0x10, 0x11, 0x12,
-@@ -693,9 +759,35 @@
+@@ -529,34 +588,6 @@
+ 0x21, 0x22,
+ };
+
+-#define stac92xx_amp_volume_info snd_hda_mixer_amp_volume_info
+-
+-static int stac92xx_amp_volume_get(struct snd_kcontrol *kcontrol,
+- struct snd_ctl_elem_value *ucontrol)
+-{
+- struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
+- struct sigmatel_spec *spec = codec->spec;
+- hda_nid_t nid = spec->amp_nids[spec->cur_amux];
+-
+- kcontrol->private_value ^= get_amp_nid(kcontrol);
+- kcontrol->private_value |= nid;
+-
+- return snd_hda_mixer_amp_volume_get(kcontrol, ucontrol);
+-}
+-
+-static int stac92xx_amp_volume_put(struct snd_kcontrol *kcontrol,
+- struct snd_ctl_elem_value *ucontrol)
+-{
+- struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
+- struct sigmatel_spec *spec = codec->spec;
+- hda_nid_t nid = spec->amp_nids[spec->cur_amux];
+-
+- kcontrol->private_value ^= get_amp_nid(kcontrol);
+- kcontrol->private_value |= nid;
+-
+- return snd_hda_mixer_amp_volume_put(kcontrol, ucontrol);
+-}
+-
+ static int stac92xx_dmux_enum_info(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_info *uinfo)
+ {
+@@ -693,9 +724,35 @@
struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
struct sigmatel_spec *spec = codec->spec;
unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
@@ -10126,7 +10231,135 @@
}
static int stac92xx_mono_mux_enum_info(struct snd_kcontrol *kcontrol,
-@@ -925,19 +1017,6 @@
+@@ -726,41 +783,6 @@
+ spec->mono_nid, &spec->cur_mmux);
+ }
+
+-static int stac92xx_amp_mux_enum_info(struct snd_kcontrol *kcontrol,
+- struct snd_ctl_elem_info *uinfo)
+-{
+- struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
+- struct sigmatel_spec *spec = codec->spec;
+- return snd_hda_input_mux_info(spec->amp_mux, uinfo);
+-}
+-
+-static int stac92xx_amp_mux_enum_get(struct snd_kcontrol *kcontrol,
+- struct snd_ctl_elem_value *ucontrol)
+-{
+- struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
+- struct sigmatel_spec *spec = codec->spec;
+-
+- ucontrol->value.enumerated.item[0] = spec->cur_amux;
+- return 0;
+-}
+-
+-static int stac92xx_amp_mux_enum_put(struct snd_kcontrol *kcontrol,
+- struct snd_ctl_elem_value *ucontrol)
+-{
+- struct hda_codec *codec = snd_kcontrol_chip(kcontrol);
+- struct sigmatel_spec *spec = codec->spec;
+- struct snd_kcontrol *ctl =
+- snd_hda_find_mixer_ctl(codec, "Amp Capture Volume");
+- if (!ctl)
+- return -EINVAL;
+-
+- snd_ctl_notify(codec->bus->card, SNDRV_CTL_EVENT_MASK_VALUE |
+- SNDRV_CTL_EVENT_MASK_INFO, &ctl->id);
+-
+- return snd_hda_input_mux_put(codec, spec->amp_mux, ucontrol,
+- 0, &spec->cur_amux);
+-}
+-
+ #define stac92xx_aloopback_info snd_ctl_boolean_mono_info
+
+ static int stac92xx_aloopback_get(struct snd_kcontrol *kcontrol,
+@@ -828,84 +850,16 @@
+ {}
+ };
+
+-static struct hda_verb stac92hd73xx_6ch_core_init[] = {
+- /* set master volume and direct control */
+- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
+- /* setup adcs to point to mixer */
+- { 0x20, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x21, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- { 0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- { 0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- /* setup import muxs */
+- { 0x28, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x29, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2a, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2b, AC_VERB_SET_CONNECT_SEL, 0x00},
+- {}
+-};
+-
+ static struct hda_verb dell_eq_core_init[] = {
+ /* set master volume to max value without distortion
+ * and direct control */
+ { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
+- /* setup adcs to point to mixer */
+- { 0x20, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x21, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- /* setup import muxs */
+- { 0x28, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x29, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2a, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2b, AC_VERB_SET_CONNECT_SEL, 0x00},
+ {}
+ };
+
+-static struct hda_verb dell_m6_core_init[] = {
+- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
+- /* setup adcs to point to mixer */
+- { 0x20, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x21, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- /* setup import muxs */
+- { 0x28, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x29, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2a, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2b, AC_VERB_SET_CONNECT_SEL, 0x00},
+- {}
+-};
+-
+-static struct hda_verb stac92hd73xx_8ch_core_init[] = {
++static struct hda_verb stac92hd73xx_core_init[] = {
+ /* set master volume and direct control */
+ { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
+- /* setup adcs to point to mixer */
+- { 0x20, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x21, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- { 0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- { 0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- /* setup import muxs */
+- { 0x28, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x29, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2a, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2b, AC_VERB_SET_CONNECT_SEL, 0x03},
+- {}
+-};
+-
+-static struct hda_verb stac92hd73xx_10ch_core_init[] = {
+- /* set master volume and direct control */
+- { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff},
+- /* dac3 is connected to import3 mux */
+- { 0x18, AC_VERB_SET_AMP_GAIN_MUTE, 0xb07f},
+- /* setup adcs to point to mixer */
+- { 0x20, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x21, AC_VERB_SET_CONNECT_SEL, 0x0b},
+- { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- { 0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- { 0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
+- /* setup import muxs */
+- { 0x28, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x29, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2a, AC_VERB_SET_CONNECT_SEL, 0x01},
+- { 0x2b, AC_VERB_SET_CONNECT_SEL, 0x03},
+ {}
+ };
+
+@@ -925,19 +879,6 @@
{}
};
@@ -10146,49 +10379,126 @@
static struct hda_verb stac92hd71bxx_unmute_core_init[] = {
/* unmute right and left channels for nodes 0x0f, 0xa, 0x0d */
{ 0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
-@@ -1070,12 +1149,6 @@
- HDA_CODEC_VOLUME("DAC Mixer Capture Volume", 0x1d, 0x3, HDA_INPUT),
- HDA_CODEC_MUTE("DAC Mixer Capture Switch", 0x1d, 0x3, HDA_INPUT),
+@@ -996,31 +937,6 @@
+ .put = stac92xx_mono_mux_enum_put, \
+ }
+-#define STAC_AMP_MUX \
+- { \
+- .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
+- .name = "Amp Selector Capture Switch", \
+- .count = 1, \
+- .info = stac92xx_amp_mux_enum_info, \
+- .get = stac92xx_amp_mux_enum_get, \
+- .put = stac92xx_amp_mux_enum_put, \
+- }
+-
+-#define STAC_AMP_VOL(xname, nid, chs, idx, dir) \
+- { \
+- .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
+- .name = xname, \
+- .index = 0, \
+- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | \
+- SNDRV_CTL_ELEM_ACCESS_TLV_READ | \
+- SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK, \
+- .info = stac92xx_amp_volume_info, \
+- .get = stac92xx_amp_volume_get, \
+- .put = stac92xx_amp_volume_put, \
+- .tlv = { .c = snd_hda_mixer_amp_tlv }, \
+- .private_value = HDA_COMPOSE_AMP_VAL(nid, chs, idx, dir) \
+- }
+-
+ #define STAC_ANALOG_LOOPBACK(verb_read, verb_write, cnt) \
+ { \
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
+@@ -1051,34 +967,6 @@
+ { } /* end */
+ };
+
+-#define DELL_M6_MIXER 6
+-static struct snd_kcontrol_new stac92hd73xx_6ch_mixer[] = {
+- /* start of config #1 */
+- HDA_CODEC_VOLUME("Front Mic Mixer Capture Volume", 0x1d, 0, HDA_INPUT),
+- HDA_CODEC_MUTE("Front Mic Mixer Capture Switch", 0x1d, 0, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("Line In Mixer Capture Volume", 0x1d, 0x2, HDA_INPUT),
+- HDA_CODEC_MUTE("Line In Mixer Capture Switch", 0x1d, 0x2, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("CD Mixer Capture Volume", 0x1d, 0x4, HDA_INPUT),
+- HDA_CODEC_MUTE("CD Mixer Capture Switch", 0x1d, 0x4, HDA_INPUT),
+-
+- /* start of config #2 */
+- HDA_CODEC_VOLUME("Mic Mixer Capture Volume", 0x1d, 0x1, HDA_INPUT),
+- HDA_CODEC_MUTE("Mic Mixer Capture Switch", 0x1d, 0x1, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("DAC Mixer Capture Volume", 0x1d, 0x3, HDA_INPUT),
+- HDA_CODEC_MUTE("DAC Mixer Capture Switch", 0x1d, 0x3, HDA_INPUT),
+-
- HDA_CODEC_VOLUME_IDX("Capture Volume", 0x0, 0x20, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE_IDX("Capture Switch", 0x0, 0x20, 0x0, HDA_OUTPUT),
-
- HDA_CODEC_VOLUME_IDX("Capture Volume", 0x1, 0x21, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE_IDX("Capture Switch", 0x1, 0x21, 0x0, HDA_OUTPUT),
-
- { } /* end */
- };
-
-@@ -1095,12 +1168,6 @@
+- { } /* end */
+-};
+-
+ static struct snd_kcontrol_new stac92hd73xx_6ch_loopback[] = {
+ STAC_ANALOG_LOOPBACK(0xFA0, 0x7A1, 3),
+ {}
+@@ -1094,134 +982,14 @@
+ {}
};
- static struct snd_kcontrol_new stac92hd73xx_8ch_mixer[] = {
+-static struct snd_kcontrol_new stac92hd73xx_8ch_mixer[] = {
- HDA_CODEC_VOLUME_IDX("Capture Volume", 0x0, 0x20, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE_IDX("Capture Switch", 0x0, 0x20, 0x0, HDA_OUTPUT),
-
- HDA_CODEC_VOLUME_IDX("Capture Volume", 0x1, 0x21, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE_IDX("Capture Switch", 0x1, 0x21, 0x0, HDA_OUTPUT),
-
- HDA_CODEC_VOLUME("Front Mic Mixer Capture Volume", 0x1d, 0, HDA_INPUT),
- HDA_CODEC_MUTE("Front Mic Mixer Capture Switch", 0x1d, 0, HDA_INPUT),
-
-@@ -1119,12 +1186,6 @@
- };
-
- static struct snd_kcontrol_new stac92hd73xx_10ch_mixer[] = {
+- HDA_CODEC_VOLUME("Front Mic Mixer Capture Volume", 0x1d, 0, HDA_INPUT),
+- HDA_CODEC_MUTE("Front Mic Mixer Capture Switch", 0x1d, 0, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("Mic Mixer Capture Volume", 0x1d, 0x1, HDA_INPUT),
+- HDA_CODEC_MUTE("Mic Mixer Capture Switch", 0x1d, 0x1, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("Line In Mixer Capture Volume", 0x1d, 0x2, HDA_INPUT),
+- HDA_CODEC_MUTE("Line In Mixer Capture Switch", 0x1d, 0x2, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("DAC Mixer Capture Volume", 0x1d, 0x3, HDA_INPUT),
+- HDA_CODEC_MUTE("DAC Mixer Capture Switch", 0x1d, 0x3, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("CD Mixer Capture Volume", 0x1d, 0x4, HDA_INPUT),
+- HDA_CODEC_MUTE("CD Mixer Capture Switch", 0x1d, 0x4, HDA_INPUT),
+- { } /* end */
+-};
+-
+-static struct snd_kcontrol_new stac92hd73xx_10ch_mixer[] = {
- HDA_CODEC_VOLUME_IDX("Capture Volume", 0x0, 0x20, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE_IDX("Capture Switch", 0x0, 0x20, 0x0, HDA_OUTPUT),
-
- HDA_CODEC_VOLUME_IDX("Capture Volume", 0x1, 0x21, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE_IDX("Capture Switch", 0x1, 0x21, 0x0, HDA_OUTPUT),
-
- HDA_CODEC_VOLUME("Front Mic Mixer Capture Volume", 0x1d, 0, HDA_INPUT),
- HDA_CODEC_MUTE("Front Mic Mixer Capture Switch", 0x1d, 0, HDA_INPUT),
-
-@@ -1143,85 +1204,13 @@
- };
-
-
+- HDA_CODEC_VOLUME("Front Mic Mixer Capture Volume", 0x1d, 0, HDA_INPUT),
+- HDA_CODEC_MUTE("Front Mic Mixer Capture Switch", 0x1d, 0, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("Mic Mixer Capture Volume", 0x1d, 0x1, HDA_INPUT),
+- HDA_CODEC_MUTE("Mic Mixer Capture Switch", 0x1d, 0x1, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("Line In Mixer Capture Volume", 0x1d, 0x2, HDA_INPUT),
+- HDA_CODEC_MUTE("Line In Mixer Capture Switch", 0x1d, 0x2, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("DAC Mixer Capture Volume", 0x1d, 0x3, HDA_INPUT),
+- HDA_CODEC_MUTE("DAC Mixer Capture Switch", 0x1d, 0x3, HDA_INPUT),
+-
+- HDA_CODEC_VOLUME("CD Mixer Capture Volume", 0x1d, 0x4, HDA_INPUT),
+- HDA_CODEC_MUTE("CD Mixer Capture Switch", 0x1d, 0x4, HDA_INPUT),
+- { } /* end */
+-};
+-
+-
-static struct snd_kcontrol_new stac92hd83xxx_mixer[] = {
- HDA_CODEC_VOLUME_IDX("Capture Volume", 0x0, 0x17, 0x0, HDA_OUTPUT),
- HDA_CODEC_MUTE_IDX("Capture Switch", 0x0, 0x17, 0x0, HDA_OUTPUT),
@@ -10240,7 +10550,7 @@
- HDA_CODEC_VOLUME("DAC1 Capture Volume", 0x17, 0x4, HDA_INPUT),
- { } /* end */
-};
--
+
static struct snd_kcontrol_new stac92hd71bxx_loopback[] = {
STAC_ANALOG_LOOPBACK(0xFA0, 0x7A0, 2)
};
@@ -10271,7 +10581,7 @@
{ } /* end */
};
-@@ -1230,29 +1219,6 @@
+@@ -1230,29 +998,6 @@
{}
};
@@ -10301,7 +10611,7 @@
static struct snd_kcontrol_new stac927x_loopback[] = {
STAC_ANALOG_LOOPBACK(0xFEB, 0x7EB, 1),
{}
-@@ -1310,16 +1276,19 @@
+@@ -1310,16 +1055,19 @@
int err;
int i;
@@ -10325,7 +10635,49 @@
stac_dmux_mixer.count = spec->num_dmuxes;
err = snd_hda_ctl_add(codec,
snd_ctl_new1(&stac_dmux_mixer, codec));
-@@ -1927,6 +1896,8 @@
+@@ -1766,12 +1514,20 @@
+ 0x4f0000f0,
+ };
+
++static unsigned int alienware_m17x_pin_configs[13] = {
++ 0x0321101f, 0x0321101f, 0x03a11020, 0x03014020,
++ 0x90170110, 0x4f0000f0, 0x4f0000f0, 0x4f0000f0,
++ 0x4f0000f0, 0x90a60160, 0x4f0000f0, 0x4f0000f0,
++ 0x904601b0,
++};
++
+ static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = {
+ [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs,
+ [STAC_DELL_M6_AMIC] = dell_m6_pin_configs,
+ [STAC_DELL_M6_DMIC] = dell_m6_pin_configs,
+ [STAC_DELL_M6_BOTH] = dell_m6_pin_configs,
+ [STAC_DELL_EQ] = dell_m6_pin_configs,
++ [STAC_ALIENWARE_M17X] = alienware_m17x_pin_configs,
+ };
+
+ static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = {
+@@ -1783,6 +1539,7 @@
+ [STAC_DELL_M6_DMIC] = "dell-m6-dmic",
+ [STAC_DELL_M6_BOTH] = "dell-m6",
+ [STAC_DELL_EQ] = "dell-eq",
++ [STAC_ALIENWARE_M17X] = "alienware",
+ };
+
+ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
+@@ -1820,6 +1577,12 @@
+ {} /* terminator */
+ };
+
++static struct snd_pci_quirk stac92hd73xx_codec_id_cfg_tbl[] = {
++ SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02a1,
++ "Alienware M17x", STAC_ALIENWARE_M17X),
++ {} /* terminator */
++};
++
+ static unsigned int ref92hd83xxx_pin_configs[10] = {
+ 0x02214030, 0x02211010, 0x02a19020, 0x02170130,
+ 0x01014050, 0x01819040, 0x01014020, 0x90a3014e,
+@@ -1927,6 +1690,8 @@
"HP mini 1000", STAC_HP_M4),
SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x361b,
"HP HDX", STAC_HP_HDX), /* HDX16 */
@@ -10334,7 +10686,7 @@
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0233,
"unknown Dell", STAC_DELL_M4_1),
SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0234,
-@@ -2642,8 +2613,7 @@
+@@ -2642,8 +2407,7 @@
return 0;
}
@@ -10344,7 +10696,7 @@
static int stac92xx_hp_switch_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
-@@ -2657,7 +2627,7 @@
+@@ -2657,7 +2421,7 @@
/* check to be sure that the ports are upto date with
* switch changes
*/
@@ -10353,7 +10705,7 @@
return 1;
}
-@@ -2790,7 +2760,7 @@
+@@ -2790,7 +2554,7 @@
* appropriately according to the pin direction
*/
if (spec->hp_detect)
@@ -10362,7 +10714,25 @@
return 1;
}
-@@ -2973,6 +2943,8 @@
+@@ -2859,8 +2623,6 @@
+ STAC_CTL_WIDGET_VOL,
+ STAC_CTL_WIDGET_MUTE,
+ STAC_CTL_WIDGET_MONO_MUX,
+- STAC_CTL_WIDGET_AMP_MUX,
+- STAC_CTL_WIDGET_AMP_VOL,
+ STAC_CTL_WIDGET_HP_SWITCH,
+ STAC_CTL_WIDGET_IO_SWITCH,
+ STAC_CTL_WIDGET_CLFE_SWITCH,
+@@ -2871,8 +2633,6 @@
+ HDA_CODEC_VOLUME(NULL, 0, 0, 0),
+ HDA_CODEC_MUTE(NULL, 0, 0, 0),
+ STAC_MONO_MUX,
+- STAC_AMP_MUX,
+- STAC_AMP_VOL(NULL, 0, 0, 0, 0),
+ STAC_CODEC_HP_SWITCH(NULL),
+ STAC_CODEC_IO_SWITCH(NULL, 0),
+ STAC_CODEC_CLFE_SWITCH(NULL, 0),
+@@ -2973,6 +2733,8 @@
struct snd_kcontrol_new *knew;
struct hda_input_mux *imux = &spec->private_imux;
@@ -10371,7 +10741,7 @@
if (!spec->num_adcs || imux->num_items <= 1)
return 0; /* no need for input source control */
knew = stac_control_new(spec, &stac_input_src_temp,
-@@ -3066,7 +3038,7 @@
+@@ -3066,7 +2828,7 @@
HDA_MAX_CONNECTIONS);
for (j = 0; j < conn_len; j++) {
wcaps = get_wcaps(codec, conn[j]);
@@ -10380,7 +10750,7 @@
/* we check only analog outputs */
if (wtype != AC_WID_AUD_OUT || (wcaps & AC_WCAP_DIGITAL))
continue;
-@@ -3325,6 +3297,21 @@
+@@ -3325,6 +3087,21 @@
return 0;
}
@@ -10402,7 +10772,7 @@
/* add playback controls from the parsed DAC table */
static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec,
const struct auto_pin_cfg *cfg)
-@@ -3398,7 +3385,7 @@
+@@ -3398,7 +3175,7 @@
spec->mono_nid,
con_lst,
HDA_MAX_NUM_INPUTS);
@@ -10411,7 +10781,45 @@
return -EINVAL;
for (i = 0; i < num_cons; i++) {
-@@ -3511,19 +3498,33 @@
+@@ -3412,37 +3189,6 @@
+ "Mono Mux", spec->mono_nid);
+ }
+
+-/* labels for amp mux outputs */
+-static const char *stac92xx_amp_labels[3] = {
+- "Front Microphone", "Microphone", "Line In",
+-};
+-
+-/* create amp out controls mux on capable codecs */
+-static int stac92xx_auto_create_amp_output_ctls(struct hda_codec *codec)
+-{
+- struct sigmatel_spec *spec = codec->spec;
+- struct hda_input_mux *amp_mux = &spec->private_amp_mux;
+- int i, err;
+-
+- for (i = 0; i < spec->num_amps; i++) {
+- amp_mux->items[amp_mux->num_items].label =
+- stac92xx_amp_labels[i];
+- amp_mux->items[amp_mux->num_items].index = i;
+- amp_mux->num_items++;
+- }
+-
+- if (spec->num_amps > 1) {
+- err = stac92xx_add_control(spec, STAC_CTL_WIDGET_AMP_MUX,
+- "Amp Selector Capture Switch", 0);
+- if (err < 0)
+- return err;
+- }
+- return stac92xx_add_control(spec, STAC_CTL_WIDGET_AMP_VOL,
+- "Amp Capture Volume",
+- HDA_COMPOSE_AMP_VAL(spec->amp_nids[0], 3, 0, HDA_INPUT));
+-}
+-
+-
+ /* create PC beep volume controls */
+ static int stac92xx_auto_create_beep_ctls(struct hda_codec *codec,
+ hda_nid_t nid)
+@@ -3511,19 +3257,33 @@
static int stac92xx_auto_create_mux_input_ctls(struct hda_codec *codec)
{
struct sigmatel_spec *spec = codec->spec;
@@ -10452,7 +10860,7 @@
}
return 0;
};
-@@ -3544,7 +3545,7 @@
+@@ -3544,7 +3304,7 @@
spec->smux_nids[0],
con_lst,
HDA_MAX_NUM_INPUTS);
@@ -10461,7 +10869,7 @@
return -EINVAL;
if (!labels)
-@@ -3565,101 +3566,231 @@
+@@ -3565,101 +3325,231 @@
"Digital Mic 3", "Digital Mic 4"
};
@@ -10742,7 +11150,7 @@
if (imux->num_items) {
/*
-@@ -3711,7 +3842,7 @@
+@@ -3711,7 +3601,7 @@
{
struct sigmatel_spec *spec = codec->spec;
int hp_swap = 0;
@@ -10751,7 +11159,7 @@
if ((err = snd_hda_parse_pin_def_config(codec,
&spec->autocfg,
-@@ -3751,11 +3882,10 @@
+@@ -3751,11 +3641,10 @@
if (snd_hda_get_connections(codec,
spec->autocfg.mono_out_pin, conn_list, 1) &&
snd_hda_get_connections(codec, conn_list[0],
@@ -10765,7 +11173,7 @@
/* LR swap check, some stac925x have a mux that
* changes the DACs output path instead of the
* mono-mux path.
-@@ -3846,6 +3976,21 @@
+@@ -3846,6 +3735,21 @@
spec->autocfg.line_outs = 0;
}
@@ -10787,7 +11195,27 @@
err = stac92xx_auto_create_analog_input_ctls(codec, &spec->autocfg);
if (err < 0)
return err;
-@@ -4108,14 +4253,14 @@
+@@ -3855,11 +3759,6 @@
+ if (err < 0)
+ return err;
+ }
+- if (spec->num_amps > 0) {
+- err = stac92xx_auto_create_amp_output_ctls(codec);
+- if (err < 0)
+- return err;
+- }
+ if (spec->num_dmics > 0 && !spec->dinput_mux)
+ if ((err = stac92xx_auto_create_dmic_input_ctls(codec,
+ &spec->autocfg)) < 0)
+@@ -3896,7 +3795,6 @@
+ spec->dinput_mux = &spec->private_dimux;
+ spec->sinput_mux = &spec->private_smux;
+ spec->mono_mux = &spec->private_mono_mux;
+- spec->amp_mux = &spec->private_amp_mux;
+ return 1;
+ }
+
+@@ -4108,14 +4006,14 @@
}
static struct sigmatel_event *stac_get_event(struct hda_codec *codec,
@@ -10804,7 +11232,7 @@
return event;
}
return NULL;
-@@ -4135,24 +4280,32 @@
+@@ -4135,24 +4033,32 @@
return NULL;
}
@@ -10845,7 +11273,7 @@
}
static int is_nid_hp_pin(struct auto_pin_cfg *cfg, hda_nid_t nid)
-@@ -4245,20 +4398,36 @@
+@@ -4245,20 +4151,36 @@
hda_nid_t nid = cfg->hp_pins[i];
enable_pin_detect(codec, nid, STAC_HP_EVENT);
}
@@ -10884,7 +11312,7 @@
for (i = 0; i < AUTO_PIN_LAST; i++) {
hda_nid_t nid = cfg->input_pins[i];
if (nid) {
-@@ -4285,10 +4454,9 @@
+@@ -4285,10 +4207,9 @@
}
conf = snd_hda_codec_get_pincfg(codec, nid);
if (get_defcfg_connect(conf) != AC_JACK_PORT_FIXED) {
@@ -10898,7 +11326,7 @@
}
}
}
-@@ -4333,10 +4501,8 @@
+@@ -4333,10 +4254,8 @@
stac_toggle_power_map(codec, nid, 1);
continue;
}
@@ -10911,7 +11339,7 @@
}
if (spec->dac_list)
stac92xx_power_down(codec);
-@@ -4440,6 +4606,48 @@
+@@ -4440,6 +4359,48 @@
return 0;
}
@@ -10960,7 +11388,7 @@
/* return non-zero if the hp-pin of the given array index isn't
* a jack-detection target
*/
-@@ -4492,13 +4700,6 @@
+@@ -4492,13 +4453,6 @@
for (i = 0; i < cfg->line_outs; i++)
stac92xx_reset_pinctl(codec, cfg->line_out_pins[i],
AC_PINCTL_OUT_EN);
@@ -10974,7 +11402,7 @@
} else {
/* enable lineouts */
if (spec->hp_switch)
-@@ -4507,14 +4708,8 @@
+@@ -4507,14 +4461,8 @@
for (i = 0; i < cfg->line_outs; i++)
stac92xx_set_pinctl(codec, cfg->line_out_pins[i],
AC_PINCTL_OUT_EN);
@@ -10990,7 +11418,7 @@
/* toggle hp outs */
for (i = 0; i < cfg->hp_outs; i++) {
unsigned int val = AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN;
-@@ -4599,10 +4794,28 @@
+@@ -4599,10 +4547,28 @@
}
}
@@ -11022,7 +11450,7 @@
if (!event)
return;
codec->patch_ops.unsol_event(codec, (unsigned)event->tag << 26);
-@@ -4621,8 +4834,18 @@
+@@ -4621,8 +4587,18 @@
switch (event->type) {
case STAC_HP_EVENT:
@@ -11042,7 +11470,7 @@
case STAC_INSERT_EVENT:
case STAC_PWR_EVENT:
if (spec->num_pwrs > 0)
-@@ -4713,8 +4936,7 @@
+@@ -4713,8 +4689,7 @@
snd_hda_codec_resume_cache(codec);
/* fake event to set up pins again to override cached values */
if (spec->hp_detect)
@@ -11052,7 +11480,7 @@
return 0;
}
-@@ -4754,6 +4976,19 @@
+@@ -4754,6 +4729,19 @@
static int stac92xx_suspend(struct hda_codec *codec, pm_message_t state)
{
struct sigmatel_spec *spec = codec->spec;
@@ -11072,7 +11500,7 @@
if (spec->eapd_mask)
stac_gpio_set(codec, spec->gpio_mask,
spec->gpio_dir, spec->gpio_data &
-@@ -4790,7 +5025,8 @@
+@@ -4790,7 +4778,8 @@
stac9200_models,
stac9200_cfg_tbl);
if (spec->board_config < 0)
@@ -11082,7 +11510,7 @@
else
stac92xx_set_config_regs(codec,
stac9200_brd_tbl[spec->board_config]);
-@@ -4862,8 +5098,8 @@
+@@ -4862,8 +4851,8 @@
stac925x_cfg_tbl);
again:
if (spec->board_config < 0)
@@ -11093,7 +11521,7 @@
else
stac92xx_set_config_regs(codec,
stac925x_brd_tbl[spec->board_config]);
-@@ -4893,6 +5129,9 @@
+@@ -4893,6 +4882,9 @@
spec->init = stac925x_core_init;
spec->mixer = stac925x_mixer;
@@ -11103,7 +11531,7 @@
err = stac92xx_parse_auto_config(codec, 0x8, 0x7);
if (!err) {
-@@ -4914,16 +5153,6 @@
+@@ -4914,16 +4906,6 @@
return 0;
}
@@ -11120,8 +11548,16 @@
static int patch_stac92hd73xx(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
-@@ -4945,8 +5174,8 @@
+@@ -4943,10 +4925,16 @@
+ STAC_92HD73XX_MODELS,
+ stac92hd73xx_models,
stac92hd73xx_cfg_tbl);
++ /* check codec subsystem id if not found */
++ if (spec->board_config < 0)
++ spec->board_config =
++ snd_hda_check_board_codec_sid_config(codec,
++ STAC_92HD73XX_MODELS, stac92hd73xx_models,
++ stac92hd73xx_codec_id_cfg_tbl);
again:
if (spec->board_config < 0)
- snd_printdd(KERN_INFO "hda_codec: Unknown model for"
@@ -11131,7 +11567,35 @@
else
stac92xx_set_config_regs(codec,
stac92hd73xx_brd_tbl[spec->board_config]);
-@@ -4993,8 +5222,10 @@
+@@ -4959,20 +4947,15 @@
+ "number of channels defaulting to DAC count\n");
+ num_dacs = STAC92HD73_DAC_COUNT;
+ }
++ spec->init = stac92hd73xx_core_init;
+ switch (num_dacs) {
+ case 0x3: /* 6 Channel */
+- spec->mixer = stac92hd73xx_6ch_mixer;
+- spec->init = stac92hd73xx_6ch_core_init;
+ spec->aloopback_ctl = stac92hd73xx_6ch_loopback;
+ break;
+ case 0x4: /* 8 Channel */
+- spec->mixer = stac92hd73xx_8ch_mixer;
+- spec->init = stac92hd73xx_8ch_core_init;
+ spec->aloopback_ctl = stac92hd73xx_8ch_loopback;
+ break;
+ case 0x5: /* 10 Channel */
+- spec->mixer = stac92hd73xx_10ch_mixer;
+- spec->init = stac92hd73xx_10ch_core_init;
+ spec->aloopback_ctl = stac92hd73xx_10ch_loopback;
+ break;
+ }
+@@ -4987,14 +4970,14 @@
+ spec->dmic_nids = stac92hd73xx_dmic_nids;
+ spec->dmux_nids = stac92hd73xx_dmux_nids;
+ spec->smux_nids = stac92hd73xx_smux_nids;
+- spec->amp_nids = stac92hd73xx_amp_nids;
+- spec->num_amps = ARRAY_SIZE(stac92hd73xx_amp_nids);
+
spec->num_muxes = ARRAY_SIZE(stac92hd73xx_mux_nids);
spec->num_adcs = ARRAY_SIZE(stac92hd73xx_adc_nids);
spec->num_dmuxes = ARRAY_SIZE(stac92hd73xx_dmux_nids);
@@ -11144,7 +11608,18 @@
switch (spec->board_config) {
case STAC_DELL_EQ:
-@@ -5015,18 +5246,15 @@
+@@ -5004,43 +4987,40 @@
+ case STAC_DELL_M6_DMIC:
+ case STAC_DELL_M6_BOTH:
+ spec->num_smuxes = 0;
+- spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER];
+- spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP];
+ spec->eapd_switch = 0;
+- spec->num_amps = 1;
+
+- if (spec->board_config != STAC_DELL_EQ)
+- spec->init = dell_m6_core_init;
+ switch (spec->board_config) {
case STAC_DELL_M6_AMIC: /* Analog Mics */
snd_hda_codec_set_pincfg(codec, 0x0b, 0x90A70170);
spec->num_dmics = 0;
@@ -11163,7 +11638,12 @@
break;
}
break;
-@@ -5034,13 +5262,13 @@
++ case STAC_ALIENWARE_M17X:
++ spec->num_dmics = STAC92HD73XX_NUM_DMICS;
++ spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
++ spec->eapd_switch = 0;
++ break;
+ default:
spec->num_dmics = STAC92HD73XX_NUM_DMICS;
spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids);
spec->eapd_switch = 1;
@@ -11178,7 +11658,7 @@
spec->num_pwrs = ARRAY_SIZE(stac92hd73xx_pwr_nids);
spec->pwr_nids = stac92hd73xx_pwr_nids;
-@@ -5072,15 +5300,6 @@
+@@ -5072,15 +5052,6 @@
return 0;
}
@@ -11194,7 +11674,7 @@
static int patch_stac92hd83xxx(struct hda_codec *codec)
{
struct sigmatel_spec *spec;
-@@ -5097,32 +5316,30 @@
+@@ -5097,32 +5068,30 @@
codec->slave_dig_outs = stac92hd83xxx_slave_dig_outs;
spec->mono_nid = 0x19;
spec->digbeep_nid = 0x21;
@@ -11236,7 +11716,7 @@
else
stac92xx_set_config_regs(codec,
stac92hd83xxx_brd_tbl[spec->board_config]);
-@@ -5164,6 +5381,8 @@
+@@ -5164,6 +5133,8 @@
num_dacs = snd_hda_get_connections(codec, nid,
conn, STAC92HD83_DAC_COUNT + 1) - 1;
@@ -11245,7 +11725,7 @@
/* set port X to select the last DAC
*/
-@@ -5177,25 +5396,6 @@
+@@ -5177,25 +5148,6 @@
return 0;
}
@@ -11271,7 +11751,7 @@
/* get the pin connection (fixed, none, etc) */
static unsigned int stac_get_defcfg_connect(struct hda_codec *codec, int idx)
{
-@@ -5256,7 +5456,6 @@
+@@ -5256,7 +5208,6 @@
struct sigmatel_spec *spec;
struct hda_verb *unmute_init = stac92hd71bxx_unmute_core_init;
int err = 0;
@@ -11279,7 +11759,7 @@
spec = kzalloc(sizeof(*spec), GFP_KERNEL);
if (spec == NULL)
-@@ -5285,8 +5484,8 @@
+@@ -5285,8 +5236,8 @@
stac92hd71bxx_cfg_tbl);
again:
if (spec->board_config < 0)
@@ -11290,7 +11770,7 @@
else
stac92xx_set_config_regs(codec,
stac92hd71bxx_brd_tbl[spec->board_config]);
-@@ -5301,6 +5500,10 @@
+@@ -5301,6 +5252,10 @@
spec->dmic_nids = stac92hd71bxx_dmic_nids;
spec->dmux_nids = stac92hd71bxx_dmux_nids;
@@ -11301,7 +11781,7 @@
switch (codec->vendor_id) {
case 0x111d76b6: /* 4 Port without Analog Mixer */
case 0x111d76b7:
-@@ -5308,24 +5511,13 @@
+@@ -5308,24 +5263,13 @@
/* fallthru */
case 0x111d76b4: /* 6 Port without Analog Mixer */
case 0x111d76b5:
@@ -11326,7 +11806,7 @@
switch (spec->board_config) {
case STAC_HP_M4:
/* Enable VREF power saving on GPIO1 detect */
-@@ -5347,11 +5539,8 @@
+@@ -5347,11 +5291,8 @@
/* no output amps */
spec->num_pwrs = 0;
@@ -11339,7 +11819,7 @@
unmute_init++;
snd_hda_codec_set_pincfg(codec, 0x0f, 0x40f000f0);
snd_hda_codec_set_pincfg(codec, 0x19, 0x40f000f3);
-@@ -5359,8 +5548,6 @@
+@@ -5359,8 +5300,6 @@
spec->num_dmics = stac92hd71bxx_connected_ports(codec,
stac92hd71bxx_dmic_nids,
STAC92HD71BXX_NUM_DMICS - 1);
@@ -11348,7 +11828,7 @@
break;
case 0x111d7603: /* 6 Port with Analog Mixer */
if ((codec->revision_id & 0xf) == 1)
-@@ -5370,17 +5557,12 @@
+@@ -5370,17 +5309,12 @@
spec->num_pwrs = 0;
/* fallthru */
default:
@@ -11368,7 +11848,7 @@
}
if (get_wcaps(codec, 0xa) & AC_WCAP_IN_AMP)
-@@ -5408,6 +5590,7 @@
+@@ -5408,6 +5342,7 @@
spec->num_muxes = ARRAY_SIZE(stac92hd71bxx_mux_nids);
spec->num_adcs = ARRAY_SIZE(stac92hd71bxx_adc_nids);
@@ -11376,7 +11856,7 @@
spec->num_smuxes = stac92hd71bxx_connected_smuxes(codec, 0x1e);
switch (spec->board_config) {
-@@ -5462,8 +5645,6 @@
+@@ -5462,8 +5397,6 @@
#endif
spec->multiout.dac_nids = spec->dac_nids;
@@ -11385,7 +11865,7 @@
err = stac92xx_parse_auto_config(codec, 0x21, 0);
if (!err) {
-@@ -5541,8 +5722,8 @@
+@@ -5541,8 +5474,8 @@
again:
if (spec->board_config < 0)
@@ -11396,7 +11876,7 @@
else
stac92xx_set_config_regs(codec,
stac922x_brd_tbl[spec->board_config]);
-@@ -5555,7 +5736,10 @@
+@@ -5555,7 +5488,10 @@
spec->num_pwrs = 0;
spec->init = stac922x_core_init;
@@ -11408,7 +11888,7 @@
spec->multiout.dac_nids = spec->dac_nids;
-@@ -5604,8 +5788,8 @@
+@@ -5604,8 +5540,8 @@
stac927x_cfg_tbl);
again:
if (spec->board_config < 0)
@@ -11419,7 +11899,7 @@
else
stac92xx_set_config_regs(codec,
stac927x_brd_tbl[spec->board_config]);
-@@ -5630,7 +5814,6 @@
+@@ -5630,7 +5566,6 @@
spec->num_dmics = 0;
spec->init = d965_core_init;
@@ -11427,7 +11907,7 @@
break;
case STAC_DELL_BIOS:
switch (codec->subsystem_id) {
-@@ -5662,7 +5845,6 @@
+@@ -5662,7 +5597,6 @@
spec->num_dmics = STAC927X_NUM_DMICS;
spec->init = d965_core_init;
@@ -11435,7 +11915,7 @@
spec->dmux_nids = stac927x_dmux_nids;
spec->num_dmuxes = ARRAY_SIZE(stac927x_dmux_nids);
break;
-@@ -5675,9 +5857,12 @@
+@@ -5675,9 +5609,12 @@
spec->num_dmics = 0;
spec->init = stac927x_core_init;
@@ -11449,7 +11929,7 @@
spec->num_pwrs = 0;
spec->aloopback_ctl = stac927x_loopback;
spec->aloopback_mask = 0x40;
-@@ -5739,7 +5924,8 @@
+@@ -5739,7 +5676,8 @@
stac9205_cfg_tbl);
again:
if (spec->board_config < 0)
@@ -11459,7 +11939,7 @@
else
stac92xx_set_config_regs(codec,
stac9205_brd_tbl[spec->board_config]);
-@@ -5758,9 +5944,12 @@
+@@ -5758,9 +5696,12 @@
spec->num_pwrs = 0;
spec->init = stac9205_core_init;
@@ -11473,7 +11953,7 @@
spec->aloopback_mask = 0x40;
spec->aloopback_shift = 0;
/* Turn on/off EAPD per HP plugging */
-@@ -5835,12 +6024,6 @@
+@@ -5835,12 +5776,6 @@
{}
};
@@ -11486,7 +11966,7 @@
static hda_nid_t stac9872_pin_nids[] = {
0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x11, 0x13, 0x14,
-@@ -5854,6 +6037,11 @@
+@@ -5854,6 +5789,11 @@
0x15
};
@@ -11498,7 +11978,7 @@
static unsigned int stac9872_vaio_pin_configs[9] = {
0x03211020, 0x411111f0, 0x411111f0, 0x03a15030,
0x411111f0, 0x90170110, 0x411111f0, 0x411111f0,
-@@ -5891,8 +6079,8 @@
+@@ -5891,8 +5831,8 @@
stac9872_models,
stac9872_cfg_tbl);
if (spec->board_config < 0)
@@ -11509,7 +11989,7 @@
else
stac92xx_set_config_regs(codec,
stac9872_brd_tbl[spec->board_config]);
-@@ -5902,8 +6090,10 @@
+@@ -5902,8 +5842,10 @@
spec->adc_nids = stac9872_adc_nids;
spec->num_muxes = ARRAY_SIZE(stac9872_mux_nids);
spec->mux_nids = stac9872_mux_nids;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/usb-storage-increase-the-bcd-range-in-sony-s-bad-device-table.patch new/patches.drivers/usb-storage-increase-the-bcd-range-in-sony-s-bad-device-table.patch
--- old/patches.drivers/usb-storage-increase-the-bcd-range-in-sony-s-bad-device-table.patch 2009-08-31 12:17:40.000000000 +0200
+++ new/patches.drivers/usb-storage-increase-the-bcd-range-in-sony-s-bad-device-table.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-From foo@baz Tue Aug 18 09:31:28 PDT 2009
-Date: Tue, 18 Aug 2009 09:31:28 -0700
-To: Greg KH
-From: Greg Kroah-Hartman
-Subject: USB: storage: increase the bcd range in Sony's bad device table.
-Patch-mainline: 2.6.32
-References: bnc#466554
-
-Another Sony device in the wild is needing this hack. You would think
-they would fix their firmware one of these days...
-
-Cc: Maciej Pilichowski
-Cc: stable
-Signed-off-by: Greg Kroah-Hartman
----
- drivers/usb/storage/unusual_devs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/drivers/usb/storage/unusual_devs.h
-+++ b/drivers/usb/storage/unusual_devs.h
-@@ -568,7 +568,7 @@ UNUSUAL_DEV( 0x052b, 0x1911, 0x0100, 0x
- US_SC_DEVICE, US_PR_DEVICE, NULL,
- US_FL_IGNORE_RESIDUE ),
-
--UNUSUAL_DEV( 0x054c, 0x0010, 0x0106, 0x0450,
-+UNUSUAL_DEV( 0x054c, 0x0010, 0x0106, 0x0500,
- "Sony",
- "DSC-S30/S70/S75/505V/F505/F707/F717/P8",
- US_SC_SCSI, US_PR_DEVICE, NULL,
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/use-totalram_pages new/patches.fixes/use-totalram_pages
--- old/patches.fixes/use-totalram_pages 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/use-totalram_pages 2009-09-02 15:40:49.000000000 +0200
@@ -0,0 +1,353 @@
+From: jbeulich@novell.com
+Subject: use totalram_pages in favor of num_physpages for sizing boot time allocations
+References: bnc#509753
+Patch-mainline: not yet (in -mm as of 2009-08-20)
+
+Some of the calculations (i.e. those not intending to use high memory)
+should likely even use (totalram_pages - totalhigh_pages).
+
+Acked-by: Rusty Russell
+Acked-by: Ingo Molnar
+
+--- a/arch/x86/kernel/microcode_core.c
++++ b/arch/x86/kernel/microcode_core.c
+@@ -210,8 +210,8 @@ static ssize_t microcode_write(struct fi
+ {
+ ssize_t ret = -EINVAL;
+
+- if ((len >> PAGE_SHIFT) > num_physpages) {
+- pr_err("microcode: too much data (max %ld pages)\n", num_physpages);
++ if ((len >> PAGE_SHIFT) > totalram_pages) {
++ pr_err("microcode: too much data (max %ld pages)\n", totalram_pages);
+ return ret;
+ }
+
+--- a/drivers/char/agp/backend.c
++++ b/drivers/char/agp/backend.c
+@@ -114,9 +114,9 @@ static int agp_find_max(void)
+ long memory, index, result;
+
+ #if PAGE_SHIFT < 20
+- memory = num_physpages >> (20 - PAGE_SHIFT);
++ memory = totalram_pages >> (20 - PAGE_SHIFT);
+ #else
+- memory = num_physpages << (PAGE_SHIFT - 20);
++ memory = totalram_pages << (PAGE_SHIFT - 20);
+ #endif
+ index = 1;
+
+--- a/drivers/parisc/ccio-dma.c
++++ b/drivers/parisc/ccio-dma.c
+@@ -1266,7 +1266,7 @@ ccio_ioc_init(struct ioc *ioc)
+ ** Hot-Plug/Removal of PCI cards. (aka PCI OLARD).
+ */
+
+- iova_space_size = (u32) (num_physpages / count_parisc_driver(&ccio_driver));
++ iova_space_size = (u32) (totalram_pages / count_parisc_driver(&ccio_driver));
+
+ /* limit IOVA space size to 1MB-1GB */
+
+@@ -1305,7 +1305,7 @@ ccio_ioc_init(struct ioc *ioc)
+
+ DBG_INIT("%s() hpa 0x%p mem %luMB IOV %dMB (%d bits)\n",
+ __func__, ioc->ioc_regs,
+- (unsigned long) num_physpages >> (20 - PAGE_SHIFT),
++ (unsigned long) totalram_pages >> (20 - PAGE_SHIFT),
+ iova_space_size>>20,
+ iov_order + PAGE_SHIFT);
+
+--- a/drivers/parisc/sba_iommu.c
++++ b/drivers/parisc/sba_iommu.c
+@@ -1390,7 +1390,7 @@ sba_ioc_init(struct parisc_device *sba,
+ ** for DMA hints - ergo only 30 bits max.
+ */
+
+- iova_space_size = (u32) (num_physpages/global_ioc_cnt);
++ iova_space_size = (u32) (totalram_pages/global_ioc_cnt);
+
+ /* limit IOVA space size to 1MB-1GB */
+ if (iova_space_size < (1 << (20 - PAGE_SHIFT))) {
+@@ -1415,7 +1415,7 @@ sba_ioc_init(struct parisc_device *sba,
+ DBG_INIT("%s() hpa 0x%lx mem %ldMB IOV %dMB (%d bits)\n",
+ __func__,
+ ioc->ioc_hpa,
+- (unsigned long) num_physpages >> (20 - PAGE_SHIFT),
++ (unsigned long) totalram_pages >> (20 - PAGE_SHIFT),
+ iova_space_size>>20,
+ iov_order + PAGE_SHIFT);
+
+--- a/drivers/xen/balloon.c
++++ b/drivers/xen/balloon.c
+@@ -96,11 +96,7 @@ static struct balloon_stats balloon_stat
+ /* We increase/decrease in batches which fit in a page */
+ static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
+
+-/* VM /proc information for memory */
+-extern unsigned long totalram_pages;
+-
+ #ifdef CONFIG_HIGHMEM
+-extern unsigned long totalhigh_pages;
+ #define inc_totalhigh_pages() (totalhigh_pages++)
+ #define dec_totalhigh_pages() (totalhigh_pages--)
+ #else
+--- a/fs/ntfs/malloc.h
++++ b/fs/ntfs/malloc.h
+@@ -47,7 +47,7 @@ static inline void *__ntfs_malloc(unsign
+ return kmalloc(PAGE_SIZE, gfp_mask & ~__GFP_HIGHMEM);
+ /* return (void *)__get_free_page(gfp_mask); */
+ }
+- if (likely(size >> PAGE_SHIFT < num_physpages))
++ if (likely((size >> PAGE_SHIFT) < totalram_pages))
+ return __vmalloc(size, gfp_mask, PAGE_KERNEL);
+ return NULL;
+ }
+--- a/include/linux/mm.h
++++ b/include/linux/mm.h
+@@ -25,6 +25,7 @@ extern unsigned long max_mapnr;
+ #endif
+
+ extern unsigned long num_physpages;
++extern unsigned long totalram_pages;
+ extern void * high_memory;
+ extern int page_cluster;
+
+--- a/init/main.c
++++ b/init/main.c
+@@ -727,12 +727,12 @@ asmlinkage void __init start_kernel(void
+ #endif
+ thread_info_cache_init();
+ cred_init();
+- fork_init(num_physpages);
++ fork_init(totalram_pages);
+ proc_caches_init();
+ buffer_init();
+ key_init();
+ security_init();
+- vfs_caches_init(num_physpages);
++ vfs_caches_init(totalram_pages);
+ radix_tree_init();
+ signals_init();
+ /* rootfs populating might need page-writeback */
+--- a/mm/memory_hotplug.c
++++ b/mm/memory_hotplug.c
+@@ -339,8 +339,11 @@ EXPORT_SYMBOL_GPL(__remove_pages);
+
+ void online_page(struct page *page)
+ {
++ unsigned long pfn = page_to_pfn(page);
++
+ totalram_pages++;
+- num_physpages++;
++ if (pfn >= num_physpages)
++ num_physpages = pfn + 1;
+
+ #ifdef CONFIG_HIGHMEM
+ if (PageHighMem(page))
+@@ -831,7 +834,6 @@ repeat:
+ zone->present_pages -= offlined_pages;
+ zone->zone_pgdat->node_present_pages -= offlined_pages;
+ totalram_pages -= offlined_pages;
+- num_physpages -= offlined_pages;
+
+ setup_per_zone_wmarks();
+ calculate_zone_inactive_ratio(zone);
+--- a/mm/slab.c
++++ b/mm/slab.c
+@@ -1384,7 +1384,7 @@ void __init kmem_cache_init(void)
+ * Fragmentation resistance on low memory - only use bigger
+ * page orders on machines with more than 32MB of memory.
+ */
+- if (num_physpages > (32 << 20) >> PAGE_SHIFT)
++ if (totalram_pages > (32 << 20) >> PAGE_SHIFT)
+ slab_break_gfp_order = BREAK_GFP_ORDER_HI;
+
+ /* Bootstrap is tricky, because several objects are allocated
+--- a/mm/swap.c
++++ b/mm/swap.c
+@@ -496,7 +496,7 @@ EXPORT_SYMBOL(pagevec_lookup_tag);
+ */
+ void __init swap_setup(void)
+ {
+- unsigned long megs = num_physpages >> (20 - PAGE_SHIFT);
++ unsigned long megs = totalram_pages >> (20 - PAGE_SHIFT);
+
+ #ifdef CONFIG_SWAP
+ bdi_init(swapper_space.backing_dev_info);
+--- a/mm/vmalloc.c
++++ b/mm/vmalloc.c
+@@ -1368,7 +1368,7 @@ void *vmap(struct page **pages, unsigned
+
+ might_sleep();
+
+- if (count > num_physpages)
++ if (count > totalram_pages)
+ return NULL;
+
+ area = get_vm_area_caller((count << PAGE_SHIFT), flags,
+@@ -1475,7 +1475,7 @@ static void *__vmalloc_node(unsigned lon
+ unsigned long real_size = size;
+
+ size = PAGE_ALIGN(size);
+- if (!size || (size >> PAGE_SHIFT) > num_physpages)
++ if (!size || (size >> PAGE_SHIFT) > totalram_pages)
+ return NULL;
+
+ area = __get_vm_area_node(size, VM_ALLOC, VMALLOC_START, VMALLOC_END,
+--- a/net/core/sock.c
++++ b/net/core/sock.c
+@@ -1195,12 +1195,12 @@ EXPORT_SYMBOL_GPL(sk_setup_caps);
+
+ void __init sk_init(void)
+ {
+- if (num_physpages <= 4096) {
++ if (totalram_pages <= 4096) {
+ sysctl_wmem_max = 32767;
+ sysctl_rmem_max = 32767;
+ sysctl_wmem_default = 32767;
+ sysctl_rmem_default = 32767;
+- } else if (num_physpages >= 131072) {
++ } else if (totalram_pages >= 131072) {
+ sysctl_wmem_max = 131071;
+ sysctl_rmem_max = 131071;
+ }
+--- a/net/dccp/proto.c
++++ b/net/dccp/proto.c
+@@ -1049,10 +1049,10 @@ static int __init dccp_init(void)
+ *
+ * The methodology is similar to that of the buffer cache.
+ */
+- if (num_physpages >= (128 * 1024))
+- goal = num_physpages >> (21 - PAGE_SHIFT);
++ if (totalram_pages >= (128 * 1024))
++ goal = totalram_pages >> (21 - PAGE_SHIFT);
+ else
+- goal = num_physpages >> (23 - PAGE_SHIFT);
++ goal = totalram_pages >> (23 - PAGE_SHIFT);
+
+ if (thash_entries)
+ goal = (thash_entries *
+--- a/net/decnet/dn_route.c
++++ b/net/decnet/dn_route.c
+@@ -1750,7 +1750,7 @@ void __init dn_route_init(void)
+ dn_route_timer.expires = jiffies + decnet_dst_gc_interval * HZ;
+ add_timer(&dn_route_timer);
+
+- goal = num_physpages >> (26 - PAGE_SHIFT);
++ goal = totalram_pages >> (26 - PAGE_SHIFT);
+
+ for(order = 0; (1UL << order) < goal; order++)
+ /* NOTHING */;
+--- a/net/ipv4/route.c
++++ b/net/ipv4/route.c
+@@ -3412,7 +3412,7 @@ int __init ip_rt_init(void)
+ alloc_large_system_hash("IP route cache",
+ sizeof(struct rt_hash_bucket),
+ rhash_entries,
+- (num_physpages >= 128 * 1024) ?
++ (totalram_pages >= 128 * 1024) ?
+ 15 : 17,
+ 0,
+ &rt_hash_log,
+--- a/net/ipv4/tcp.c
++++ b/net/ipv4/tcp.c
+@@ -2862,7 +2862,7 @@ void __init tcp_init(void)
+ alloc_large_system_hash("TCP established",
+ sizeof(struct inet_ehash_bucket),
+ thash_entries,
+- (num_physpages >= 128 * 1024) ?
++ (totalram_pages >= 128 * 1024) ?
+ 13 : 15,
+ 0,
+ &tcp_hashinfo.ehash_size,
+@@ -2879,7 +2879,7 @@ void __init tcp_init(void)
+ alloc_large_system_hash("TCP bind",
+ sizeof(struct inet_bind_hashbucket),
+ tcp_hashinfo.ehash_size,
+- (num_physpages >= 128 * 1024) ?
++ (totalram_pages >= 128 * 1024) ?
+ 13 : 15,
+ 0,
+ &tcp_hashinfo.bhash_size,
+--- a/net/netfilter/nf_conntrack_core.c
++++ b/net/netfilter/nf_conntrack_core.c
+@@ -1245,9 +1245,9 @@ static int nf_conntrack_init_init_net(vo
+ * machine has 512 buckets. >= 1GB machines have 16384 buckets. */
+ if (!nf_conntrack_htable_size) {
+ nf_conntrack_htable_size
+- = (((num_physpages << PAGE_SHIFT) / 16384)
++ = (((totalram_pages << PAGE_SHIFT) / 16384)
+ / sizeof(struct hlist_head));
+- if (num_physpages > (1024 * 1024 * 1024 / PAGE_SIZE))
++ if (totalram_pages > (1024 * 1024 * 1024 / PAGE_SIZE))
+ nf_conntrack_htable_size = 16384;
+ if (nf_conntrack_htable_size < 32)
+ nf_conntrack_htable_size = 32;
+--- a/net/netfilter/x_tables.c
++++ b/net/netfilter/x_tables.c
+@@ -617,7 +617,7 @@ struct xt_table_info *xt_alloc_table_inf
+ int cpu;
+
+ /* Pedantry: prevent them from hitting BUG() in vmalloc.c --RR */
+- if ((SMP_ALIGN(size) >> PAGE_SHIFT) + 2 > num_physpages)
++ if ((SMP_ALIGN(size) >> PAGE_SHIFT) + 2 > totalram_pages)
+ return NULL;
+
+ newinfo = kzalloc(XT_TABLE_INFO_SZ, GFP_KERNEL);
+--- a/net/netfilter/xt_hashlimit.c
++++ b/net/netfilter/xt_hashlimit.c
+@@ -194,9 +194,9 @@ static int htable_create_v0(struct xt_ha
+ if (minfo->cfg.size)
+ size = minfo->cfg.size;
+ else {
+- size = ((num_physpages << PAGE_SHIFT) / 16384) /
++ size = ((totalram_pages << PAGE_SHIFT) / 16384) /
+ sizeof(struct list_head);
+- if (num_physpages > (1024 * 1024 * 1024 / PAGE_SIZE))
++ if (totalram_pages > (1024 * 1024 * 1024 / PAGE_SIZE))
+ size = 8192;
+ if (size < 16)
+ size = 16;
+@@ -266,9 +266,9 @@ static int htable_create(struct xt_hashl
+ if (minfo->cfg.size) {
+ size = minfo->cfg.size;
+ } else {
+- size = (num_physpages << PAGE_SHIFT) / 16384 /
++ size = (totalram_pages << PAGE_SHIFT) / 16384 /
+ sizeof(struct list_head);
+- if (num_physpages > 1024 * 1024 * 1024 / PAGE_SIZE)
++ if (totalram_pages > 1024 * 1024 * 1024 / PAGE_SIZE)
+ size = 8192;
+ if (size < 16)
+ size = 16;
+--- a/net/netlink/af_netlink.c
++++ b/net/netlink/af_netlink.c
+@@ -2026,10 +2026,10 @@ static int __init netlink_proto_init(voi
+ if (!nl_table)
+ goto panic;
+
+- if (num_physpages >= (128 * 1024))
+- limit = num_physpages >> (21 - PAGE_SHIFT);
++ if (totalram_pages >= (128 * 1024))
++ limit = totalram_pages >> (21 - PAGE_SHIFT);
+ else
+- limit = num_physpages >> (23 - PAGE_SHIFT);
++ limit = totalram_pages >> (23 - PAGE_SHIFT);
+
+ order = get_bitmask_order(limit) - 1 + PAGE_SHIFT;
+ limit = (1UL << order) / sizeof(struct hlist_head);
+--- a/net/sctp/protocol.c
++++ b/net/sctp/protocol.c
+@@ -1186,10 +1186,10 @@ SCTP_STATIC __init int sctp_init(void)
+ /* Size and allocate the association hash table.
+ * The methodology is similar to that of the tcp hash tables.
+ */
+- if (num_physpages >= (128 * 1024))
+- goal = num_physpages >> (22 - PAGE_SHIFT);
++ if (totalram_pages >= (128 * 1024))
++ goal = totalram_pages >> (22 - PAGE_SHIFT);
+ else
+- goal = num_physpages >> (24 - PAGE_SHIFT);
++ goal = totalram_pages >> (24 - PAGE_SHIFT);
+
+ for (order = 0; (1UL << order) < goal; order++)
+ ;
++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/kbuild-rebuild-fix-for-Makefile.modbuiltin new/patches.suse/kbuild-rebuild-fix-for-Makefile.modbuiltin
--- old/patches.suse/kbuild-rebuild-fix-for-Makefile.modbuiltin 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/kbuild-rebuild-fix-for-Makefile.modbuiltin 2009-09-04 11:39:06.000000000 +0200
@@ -0,0 +1,29 @@
+Subject: kbuild: rebuild fix for Makefile.modbuiltin
+From: Jan Beulich
+Date: Thu Sep 3 17:46:08 2009 +0200
+
+This patch addresses an issue with rebuilds failing to re-generate
+modules.builtin files after altering config options.
+
+Signed-off-by: Jan Beulich
+Signed-off-by: Michal Marek
+
+diff --git a/scripts/Makefile.modbuiltin b/scripts/Makefile.modbuiltin
+index 55e1885..cc39366 100644
+--- a/scripts/Makefile.modbuiltin
++++ b/scripts/Makefile.modbuiltin
+@@ -31,9 +31,13 @@ modbuiltin-cmds = \
+ for m in $(modbuiltin-mods); do echo kernel/$$m; done; \
+ cat /dev/null $(modbuiltin-subdirs);
+
+-$(modbuiltin-target): $(subdir-ym)
++$(modbuiltin-target): $(subdir-ym) FORCE
+ $(Q)($(modbuiltin-cmds)) > $@
+
++PHONY += FORCE
++
++FORCE:
++
+ # Descending
+ # ---------------------------------------------------------------------------
+
++++++ patches.xen.tar.bz2 ++++++
++++ 23243 lines of diff (skipped)
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:42.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:42.000000000 +0200
@@ -82,6 +82,7 @@
patches.fixes/kbuild-fix-generating-of-.symtypes-files
patches.suse/genksyms-add-override-flag.diff
patches.suse/kbuild-generate-modules.builtin
+ patches.suse/kbuild-rebuild-fix-for-Makefile.modbuiltin
########################################################
# Simple export additions/removals
@@ -143,6 +144,9 @@
+needs_update patches.arch/x86_64-hpet-64bit-timer.patch
+needs_to_go_away patches.suse/x86-mark_rodata_rw.patch
+ patches.arch/add_support_for_hpet_msi_intr_remap.patch
+ patches.arch/add_x86_support_for_hpet_msi_intr_remap.patch
+
########################################################
# x86_64/4096CPUS - from SGI
########################################################
@@ -225,6 +229,7 @@
patches.suse/connector-read-mostly
patches.suse/kbd-ignore-gfx.patch
patches.fixes/ds1682-build-fix
+ patches.fixes/use-totalram_pages
########################################################
#
@@ -430,7 +435,6 @@
# USB
########################################################
patches.suse/usb-storage-disable-delay.patch
- patches.drivers/usb-storage-increase-the-bcd-range-in-sony-s-bad-device-table.patch
########################################################
# I2C
@@ -682,8 +686,10 @@
patches.xen/xen3-patch-2.6.31-rc4
patches.xen/xen3-patch-2.6.31-rc4-rc5
patches.xen/xen3-patch-2.6.31-rc5-rc6
+ patches.xen/xen3-patch-2.6.31-rc7-rc8
patches.xen/xen3-seccomp-disable-tsc-option
+needs_to_go_away patches.xen/xen3-x86-mark_rodata_rw.patch
+ patches.xen/xen3-use-totalram_pages
patches.xen/xen3-kdb-x86
patches.xen/xen3-stack-unwind
patches.xen/xen3-x86_64-unwind-annotations
@@ -717,6 +723,7 @@
patches.xen/xen-x86-bigmem
patches.xen/xen-x86-machphys-prediction
patches.xen/xen-x86-exit-mmap
+ patches.xen/xen-x86-per-cpu-vcpu-info
patches.xen/xen-x86_64-pgd-pin
patches.xen/xen-x86_64-pgd-alloc-order
patches.xen/xen-x86_64-dump-user-pgt
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.pTYDC1/_old 2009-09-07 22:28:42.000000000 +0200
+++ /var/tmp/diff_new_pack.pTYDC1/_new 2009-09-07 22:28:42.000000000 +0200
@@ -1,3 +1,3 @@
-2009-08-31 22:03:21 +0200
-GIT Revision: 0bcd5def77ca49ab74bce45849fa48bdbf368236
+2009-09-07 12:41:42 +0200
+GIT Revision: 6c54e538dbaf5f30b305f599307d5919a12d6cbb
GIT Branch: master
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org