Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory
checked in at Thu Oct 28 13:10:27 CEST 2010.
--------
--- kernel-source/kernel-debug.changes 2010-09-17 07:00:47.000000000 +0200
+++ kernel-source/kernel-debug.changes 2010-10-27 07:00:19.000000000 +0200
@@ -1,0 +2,246 @@
+Tue Oct 26 21:31:22 CEST 2010 - trenn@suse.de
+
+- Update config files.
+ Enable CONFIG_ACPI_EC_DEBUGFS=m on supported archs.
+- commit 9035254
+
+-------------------------------------------------------------------
+Tue Oct 26 13:41:23 CEST 2010 - jbeulich@novell.com
+
+- Update Xen config files (restore options accidentally deleted
+ by 1b1584fccbfdc42e6e8b35c3c207ca65feb0c7d5).
+- commit f8e5000
+
+-------------------------------------------------------------------
+Mon Oct 25 12:53:38 CEST 2010 - jbeulich@novell.com
+
+- Update Xen patches to 2.6.36 and c/s 1043.
+- xen: netback: take net_schedule_list_lock when removing entry
+ from net_schedule_list.
+- Update Xen config files.
+- commit b772cd8
+
+-------------------------------------------------------------------
+Mon Oct 25 08:58:15 CEST 2010 - tiwai@suse.de
+
+- ALSA: hda - Add workarounds for CT-IBG controllers (bnc#564324).
+- ALSA: hda - Add some workarounds for Creative IBG (bnc#564324).
+- ALSA: hda - Fix wrong SPDIF NID assignment for CA0110
+ (bnc#564324).
+- commit 2256eda
+
+-------------------------------------------------------------------
+Fri Oct 22 21:18:25 CEST 2010 - jeffm@suse.de
+
+- Update to 2.6.36-final.
+- commit 1b1584f
+
+-------------------------------------------------------------------
+Fri Oct 22 13:32:04 CEST 2010 - jbeulich@novell.com
+
+- patches.arch/i386-unwind-annotations,
+ patches.arch/x86_64-unwind-annotations: Update Patch-mainline tags.
+- commit 6ee5ccb
+
+-------------------------------------------------------------------
+Thu Oct 21 10:11:03 CEST 2010 - sjayaraman@suse.de
+
+- SoN: fix null pointer dereference in swap_entry_free.
+- SoN: fix mess up on swap with multi files from same nfs server.
+- Refresh patches.xen/tmem.
+- commit d068f12
+
+-------------------------------------------------------------------
+Mon Oct 18 16:54:57 CEST 2010 - trenn@suse.de
+
+- ACPI: Make Embedded Controller command timeout delay
+ configurable (bnc#639261).
+- commit 9ea38cf
+
+-------------------------------------------------------------------
+Fri Oct 15 23:06:53 CEST 2010 - jslaby@suse.cz
+
+- Update to 2.6.36-rc8.
+- commit 0c0e67c
+
+-------------------------------------------------------------------
+Fri Oct 15 22:49:53 CEST 2010 - jslaby@suse.cz
+
+- Refresh patches.suse/SoN-22-netvm.patch.
+ Fix lock imbalance in net core (caused errors with bridges). (bnc#637235)
+- commit f7ca98f
+
+-------------------------------------------------------------------
+Tue Oct 12 10:00:08 CEST 2010 - jbeulich@novell.com
+
+- Update Xen patches to 2.6.36-rc7 and c/s 1042.
+- Update tmem interface to v1.
+- commit 03c1043
+
+-------------------------------------------------------------------
+Mon Oct 11 17:14:51 CEST 2010 - mmarek@suse.cz
+
+- Generate per-symbol provides again (fate#305945).
+ 11.4 will do incremental downloads of repository metadata
+ (fate#309561), so there should be no problem with the update
+ repository anymore.
+- commit 4258cf2
+
+-------------------------------------------------------------------
+Mon Oct 11 16:12:29 CEST 2010 - jbeulich@novell.com
+
+- patches.apparmor/apparmor-compatibility-patch-for-v5-network-control:
+ Remove .rej file from this patch.
+- commit 8828ce5
+
+-------------------------------------------------------------------
+Fri Oct 8 17:40:50 CEST 2010 - jeffm@suse.de
+
+- Update to 2.6.36-rc7.
+- commit 82673e4
+
+-------------------------------------------------------------------
+Tue Oct 5 18:02:19 CEST 2010 - jbeulich@novell.com
+
+- patches.drivers/dynamic_debug_4.patch: Fix build issues with
+ !DYNAMIC_DEBUG and build warning.
+- commit b08d2aa
+
+-------------------------------------------------------------------
+Tue Oct 5 17:19:46 CEST 2010 - jeffm@suse.de
+
+- Enable SECURITY_APPARMOR_COMPAT_24
+- commit f9b83fc
+
+-------------------------------------------------------------------
+Tue Oct 5 16:58:20 CEST 2010 - jeffm@suse.de
+
+- AppArmor: Allow dfa backward compatibility with broken
+ userspace.
+- AppArmor: compatibility patch for v5 interface.
+- AppArmor: compatibility patch for v5 network control.
+- commit cb27981
+
+-------------------------------------------------------------------
+Mon Oct 4 16:57:34 CEST 2010 - jeffm@suse.de
+
+- Update to 2.6.36-rc6.
+ - Eliminated 2 patches.
+- commit 57ae577
+
+-------------------------------------------------------------------
+Fri Sep 24 13:45:31 CEST 2010 - jbeulich@novell.com
+
+- Refresh patches.xen/xen3-patch-2.6.28 one more time.
+- commit d527087
+
+-------------------------------------------------------------------
+Fri Sep 24 13:23:13 CEST 2010 - trenn@suse.de
+
+- acpi: ec_sys: access user space with get_user()/put_user()
+ (none).
+- commit d028761
+
+-------------------------------------------------------------------
+Fri Sep 24 13:14:36 CEST 2010 - trenn@suse.de
+
+- kernel/module.c: Fix compiler warnings if debug is compiled in
+ (none).
+- PNP: Use dev_dbg instead of dev_printk(KERN_DEBUG.. if
+ DYNAMIC_DEBUG is compiled in (none).
+- PNP: Compile all pnp built-in stuff in one module namespace
+ (none).
+- Dynamic Debug: Introduce global fake module param module.ddebug
+ - V4 (none).
+- Dynamic Debug: Initialize dynamic debug earlier via
+ arch_initcall (none).
+- Dynamic Debug: Introduce ddebug_query= boot parameter (none).
+- Dynamic Debug: Split out query string parsing/setup from
+ proc_write (none).
+- commit dcd5c68
+
+-------------------------------------------------------------------
+Fri Sep 24 11:08:57 CEST 2010 - jbeulich@novell.com
+
+- Refresh patches.xen/xen3-patch-2.6.28 again.
+- commit 2fbc89f
+
+-------------------------------------------------------------------
+Fri Sep 24 10:38:36 CEST 2010 - jbeulich@novell.com
+
+- Refresh patches.xen/xen3-patch-2.6.28.
+- commit cba31c7
+
+-------------------------------------------------------------------
+Fri Sep 24 09:54:16 CEST 2010 - jbeulich@novell.com
+
+- Update Xen patches to 2.6.36-rc5 and c/s 1038.
+- commit 7b86243
+
+-------------------------------------------------------------------
+Thu Sep 23 19:16:00 CEST 2010 - jeffm@suse.de
+
+- rose: Fix signedness issues wrt. digi count (CVE-2010-3310
+ bnc#640721).
+- commit bcdc88b
+
+-------------------------------------------------------------------
+Tue Sep 21 21:41:15 CEST 2010 - jeffm@suse.de
+
+- qla4xxx: add workaround for missing readq/writeq.
+- commit 643f9cf
+
+-------------------------------------------------------------------
+Tue Sep 21 14:15:34 CEST 2010 - mmarek@suse.cz
+
+- rpm/kernel-docs.spec.in: BuildRequire proper version of kernel-source
+- commit beb33d1
++++ 49 more lines (skipped)
++++ between kernel-source/kernel-debug.changes
++++ and kernel-source/kernel-debug.changes
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-net.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-vmi.changes: same change
kernel-xen.changes: same change
calling whatdependson for head-i586
Old:
----
built-in-where
linux-2.6.35.tar.bz2
symsets.pl
New:
----
linux-2.6.36.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-debug
Summary: A Debug Version of the Kernel
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -155,8 +155,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -243,7 +241,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -535,9 +533,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -623,7 +618,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -637,40 +632,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-debug.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-debug.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-debug/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -682,13 +643,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -711,7 +665,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-default
Summary: The Standard Kernel
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -171,8 +171,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -259,7 +257,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -550,9 +548,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -638,7 +633,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -652,40 +647,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-default.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-default.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-default/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -697,13 +658,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -726,7 +680,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-desktop.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-desktop
Summary: Kernel optimized for the desktop
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -151,8 +151,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -239,7 +237,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -543,9 +541,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -631,7 +626,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -645,40 +640,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-desktop.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-desktop.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-desktop/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -690,13 +651,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -719,7 +673,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,25 +17,25 @@
# norootforbuild
-%define patchversion 2.6.36-rc4
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
Name: kernel-docs
+Summary: Kernel Documentation
+Version: 2.6.36
+Release: 3
+%if %using_buildservice
+%else
+%endif
BuildRequires: docbook-toys docbook-utils ghostscript_any libjpeg-devel texlive transfig xmlto xorg-x11-devel
-BuildRequires: kernel-source%variant = 2.6.36
+BuildRequires: kernel-source%variant = %version-%source_rel
Url: http://www.kernel.org/
License: GPLv2+
Group: Documentation/Man
AutoReqProv: on
-Version: 2.6.36
-Release: 2
-%if %using_buildservice
-%else
-%endif
Provides: %name = %version-%source_rel
-Summary: Kernel Documentation
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: kernel-spec-macros
++++++ kernel-ec2.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-ec2
Summary: The Amazon EC2 Xen Kernel
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -151,8 +151,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -239,7 +237,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -533,9 +531,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -621,7 +616,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -635,40 +630,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-ec2.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-ec2.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-ec2/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -680,13 +641,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -709,7 +663,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-net.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-net
Summary: Minimal kernel with disk and net support
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -151,8 +151,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -239,7 +237,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -532,9 +530,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -620,7 +615,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -634,40 +629,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-net.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-net.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-net/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -679,13 +640,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -708,7 +662,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-pae
Summary: Kernel with PAE Support
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -155,8 +155,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -243,7 +241,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -541,9 +539,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -629,7 +624,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -643,40 +638,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-pae.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-pae.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-pae/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -688,13 +649,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -717,7 +671,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-ppc64.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-ppc64
Summary: Kernel for ppc64 Systems
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -159,8 +159,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -247,7 +245,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -545,9 +543,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -633,7 +628,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -647,40 +642,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-ppc64.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-ppc64.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-ppc64/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -692,13 +653,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -721,7 +675,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-ps3.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-ps3
Summary: kernel for ps3 bootloader
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -151,8 +151,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -239,7 +237,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -533,9 +531,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -621,7 +616,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -635,40 +630,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-ps3.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-ps3.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-ps3/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -680,13 +641,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -709,7 +663,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-s390.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-s390
Summary: The Standard Kernel
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -155,8 +155,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -243,7 +241,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -534,9 +532,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -622,7 +617,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -636,40 +631,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-s390.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-s390.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-s390/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -681,13 +642,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -710,7 +664,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -18,8 +18,8 @@
# norootforbuild
# icecream 0
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -31,7 +31,7 @@
Name: kernel-source
Summary: The Linux Kernel Sources
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -66,8 +66,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -110,7 +108,7 @@
# Source is only complete with devel files.
Requires: kernel-devel = %version-%release
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
%define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -24,7 +24,7 @@
Name: kernel-syms
Summary: Kernel Symbol Versions (modversions)
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%define kernel_source_release %(LC_ALL=C rpm -q kernel-devel%variant-%version --qf "%{RELEASE}" | grep -v 'not installed' || echo 0)
++++++ kernel-trace.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-trace
Summary: The Standard Kernel with Tracing Features
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -163,8 +163,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -251,7 +249,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -542,9 +540,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -630,7 +625,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -644,40 +639,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-trace.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-trace.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-trace/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -689,13 +650,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -718,7 +672,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-vanilla
Summary: The Standard Kernel - without any SUSE patches
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -159,8 +159,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -247,7 +245,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -538,9 +536,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -626,7 +621,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -640,40 +635,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-vanilla.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-vanilla.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-vanilla/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -685,13 +646,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -714,7 +668,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-vmi.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-vmi
Summary: VMI-enabled kernel
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -151,8 +151,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -239,7 +237,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -531,9 +529,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -619,7 +614,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -633,40 +628,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-vmi.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-vmi.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-vmi/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -678,13 +639,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -707,7 +661,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-xen.spec ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:42.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:42.000000000 +0200
@@ -17,8 +17,8 @@
# norootforbuild
-%define srcversion 2.6.35
-%define patchversion 2.6.36-rc4
+%define srcversion 2.6.36
+%define patchversion 2.6.36
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -35,7 +35,7 @@
%define rpm_install_dir %buildroot%obj_install_dir
%define kernel_build_dir %my_builddir/linux-obj
-%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,built-in-where,symsets.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
+%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,check-supported-list,group-source-files.pl,find-provides,split-modules,modversions,extract-modaliases,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,configtool.pl,log.sh})
%global cpu_arch %(%_sourcedir/arch-symbols %_target_cpu)
%define cpu_arch_flavor %cpu_arch/%build_flavor
@@ -56,7 +56,7 @@
Name: kernel-xen
Summary: The Xen Kernel
Version: 2.6.36
-Release: 2
+Release: 3
%if %using_buildservice
%else
%endif
@@ -151,8 +151,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
@@ -239,7 +237,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -533,9 +531,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -621,7 +616,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -635,40 +630,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-xen.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-xen.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-xen/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -680,13 +641,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -709,7 +663,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ config-options.changes.txt ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -1,4 +1,15 @@
-------------------------------------------------------------------
+Tue Oct 26 21:55:06 CEST 2010 - trenn@suse.de
+
+- Enable ACPI_EC_DEBUGFS=m for Embedded Controller debug facility
+
+-------------------------------------------------------------------
+Mon Oct 25 12:55:06 CEST 2010 - jbeulich@novell.com
+
+- */xen: X86_MSR=m (to discourage use without considering whether
+ the intended context is a virtual or a physical CPU)
+
+-------------------------------------------------------------------
Wed Aug 18 00:18:28 CEST 2010 - jeffm@suse.de
- Updated to 2.6.36-rc1:
++++++ config.sh ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -1,5 +1,5 @@
# The version of the main tarball to use
-SRCVERSION=2.6.35
+SRCVERSION=2.6.36
# variant of the kernel-source package, either empty or "-rt"
VARIANT=
# buildservice projects to build the kernel against
++++++ config.tar.bz2 ++++++
++++ 1693 lines of diff (skipped)
++++++ find-provides ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -1,45 +1,18 @@
#! /bin/bash
-set -x
-builddir="$1"
-shift
-
+trap 'rm -f "$filelist"' EXIT
filelist=$(mktemp -t ${0##*/}.XXXXXXXXXX)
-trap "rm -f $filelist" EXIT
-cat >"$filelist"
-flavor=${1##*-}
-
-grep -v '\.ko$' | /usr/lib/rpm/find-provides "$@" | grep -v '^ksym('
-
-# HACK: find out what subpackage is this and just print the symsets
-# computed in %build. We need to do it this way because the provided
-# symsets are computed from the modules AND the reference symsets, which
-# we don't see here.
-subpack=
-
-samemodules()
-{
- cmp -s <(sed -rn 's:.*/([^/]*\.ko)$:\1:p' "$1" | sort) \
- <(sed -rn 's:.*/([^/]*\.ko)$:\1:p' "$2" | sort)
-}
+grep -v '/kernel/drivers/staging/.*\.ko$' >"$filelist"
+shopt -s nullglob
-if ! grep -q '\.ko$' "$filelist"; then
- # no modules, no symsets
- exit 0
-fi
-if samemodules "$builddir"/base-modules "$filelist"; then
- symsets=("$builddir/base-symsets")
-elif samemodules "$builddir"/main-modules "$filelist"; then
- symsets=("$builddir/base-symsets" "$builddir/main-symsets")
-elif samemodules "$builddir"/unsupported-modules "$filelist"; then
- symsets=("$builddir/extra-symsets")
+# pretend that /boot/vmlinux-* is in the -base package and not in -devel
+if grep -q '/boot/System\.map\>' "$filelist"; then
+ prefix=$(sed -rn 's:(.*)/boot/System\.map\>.*:\1:p; T; q' "$filelist")
+ for f in "$prefix"/boot/vmlinux*; do
+ echo "$f" >>"$filelist"
+ done
else
- echo "find-provides: failed to determine which subpackage is this" >&2
- exit 1
+ perl -ni -e 'next if /\/boot\/vmlinux/ && !/\.debug$/; print' "$filelist"
fi
-find "${symsets[@]}" -type f -printf '%f\n' | \
- sed -rn 's/^\.?(.+)\.([a-z0-9]{16})(\.fake)?$/kernel('$flavor':\1) = \2/p'
-
-exit 0
-
+/usr/lib/rpm/find-provides "$@" <"$filelist"
++++++ kernel-binary.spec.in ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -167,7 +167,7 @@
Obsoletes: quickcam-kmp-%build_flavor < 0.6.7
# Provide the exported symbols as "ksym(symbol) = hash"
-%define __find_provides %_sourcedir/find-provides %my_builddir %name
+%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
@@ -460,9 +460,6 @@
dd if=/dev/zero of=%buildroot/boot/initrd-%kernelrelease-%build_flavor \
bs=1024 seek=2047 count=1
-# Figure out where the symbols that vmlinux exports are defined.
-%_sourcedir/built-in-where < Module.symvers > Module.symvers.split
-
if [ %CONFIG_MODULES = y ]; then
mkdir -p %rpm_install_dir/%cpu_arch_flavor
mkdir -p %buildroot/usr/src/linux-obj/%cpu_arch
@@ -548,7 +545,7 @@
# check for kabi changes
%_sourcedir/kabi.pl --rules %my_builddir/kabi/severities \
%my_builddir/kabi/%cpu_arch/symvers-%build_flavor \
- Module.symvers.split || res=$?
+ Module.symvers || res=$?
fi
if [ $res -ne 0 ]; then
if [ ! -e %my_builddir/kabi/%cpu_arch/ignore-%build_flavor -a \
@@ -562,40 +559,6 @@
tar -cf - -T %my_builddir/obj-files | \
tar -xf - -C %rpm_install_dir/%cpu_arch_flavor
- # generate symsets
- mkdir -p %my_builddir/{base,main,extra}-symsets
- for f in %my_builddir/{base,main,unsupported}-modules; do
- if [ -f "$f" ]; then
- sed 's:^/:%buildroot/:' "$f"
- fi > "$f-br"
- done
- reference=
- if test -e %my_builddir/kabi/%cpu_arch/symsets-@FLAVOR@.tar.gz; then
- tar xzf %my_builddir/kabi/%cpu_arch/symsets-@FLAVOR@.tar.gz -C \
- %my_builddir/kabi/%cpu_arch
- reference="--reference %my_builddir/kabi/%cpu_arch/symsets-*-@FLAVOR@/"
- fi
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --symvers=Module.symvers.split \
- --modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/base-symsets
-%if %split_base
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/main-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --output-dir=%my_builddir/main-symsets
-%endif
-%if %split_extra
- %_sourcedir/symsets.pl --generate-symsets \
- $reference \
- --modules=%my_builddir/unsupported-modules-br \
- --required-modules=%my_builddir/base-modules-br \
- --required-modules=%my_builddir/main-modules-br \
- --output-dir=%my_builddir/extra-symsets
-%endif
-
# bnc#507084
find %rpm_install_dir/%cpu_arch_flavor/scripts -type f -perm -111 | \
while read f; do
@@ -607,13 +570,6 @@
# Replace the absolute with a relative path
sed -i "s,%build_src_dir,../../../linux-%kernelrelease%variant,g" \
%rpm_install_dir/%cpu_arch_flavor/Makefile
- symsets=%my_builddir/symsets-%kernelrelease-%build_flavor
- mkdir -p $symsets
- find %my_builddir/{base,main,extra}-symsets -type f \
- | xargs --replace='{}' cp '{}' $symsets/
- tar c -C ${symsets%/*} ${symsets##*/} \
- | gzip -9 \
- > %buildroot/boot/symsets-%kernelrelease-%build_flavor.tar.gz
fi
add_dirs_to_filelist() {
@@ -636,7 +592,7 @@
# Collect the file lists.
shopt -s nullglob
%my_builddir/kernel-devel.files
-for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/sym{sets,types}* \
+for file in %buildroot/boot/vmlinux-*.gz %buildroot/boot/symtypes* \
%buildroot/lib/modules/*/{build,source}; do
f=${file##%buildroot}
echo "$f" >> %my_builddir/kernel-devel.files
++++++ kernel-docs.spec.in ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -23,20 +23,20 @@
%include %_sourcedir/kernel-spec-macros
Name: kernel-docs@VARIANT@
-BuildRequires: docbook-toys docbook-utils ghostscript_any libjpeg-devel texlive transfig xmlto xorg-x11-devel
-BuildRequires: kernel-source%variant = @RPMVERSION@
-Url: http://www.kernel.org/
-License: GPL v2 or later
-Group: Documentation/Man
-AutoReqProv: on
+Summary: Kernel Documentation
Version: @RPMVERSION@
%if %using_buildservice
Release: @RELEASE_PREFIX@<RELEASE>
%else
Release: @RELEASE_PREFIX@0
%endif
+BuildRequires: docbook-toys docbook-utils ghostscript_any libjpeg-devel texlive transfig xmlto xorg-x11-devel
+BuildRequires: kernel-source%variant = %version-%source_rel
+Url: http://www.kernel.org/
+License: GPL v2 or later
+Group: Documentation/Man
+AutoReqProv: on
Provides: %name = %version-%source_rel
-Summary: Kernel Documentation
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: kernel-spec-macros
++++++ kernel-source.spec.in ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -67,8 +67,6 @@
Source38: README.KSYMS
Source39: config-options.changes.txt
Source40: source-timestamp
-Source41: built-in-where
-Source42: symsets.pl
Source44: find-provides
Source45: split-modules
Source46: modversions
++++++ linux-2.6.35.tar.bz2 -> linux-2.6.36.tar.bz2 ++++++
kernel-source/linux-2.6.35.tar.bz2 kernel-source/linux-2.6.36.tar.bz2 differ: char 11, line 1
++++++ macros.kernel-source ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -18,7 +18,6 @@
esac \
krel=$(make -s -C /usr/src/linux-obj/%_target_cpu/$flavor kernelrelease) \
kver=${krel%%-*} \
- [ -e /boot/symsets-$kver-$flavor.tar.gz ] || continue \
flavors_to_build="$flavors_to_build $flavor" \
echo "%%_suse_kernel_module_subpackage -n %{-n*}%{!-n:%name}-kmp -v %{-v*}%{!-v:%version} -r %{-r*}%{!-r:%release} %{-p} $flavor $kver" \
done \
++++++ minmem ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:43.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:43.000000000 +0200
@@ -1 +1 @@
-2096000
+1048576
++++++ needed_space_in_mb ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:44.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:44.000000000 +0200
@@ -1 +1 @@
-6000
+6144
++++++ patches.apparmor.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.apparmor/apparmor-allow-dfa-backward-compatibility-with-broken-userspace new/patches.apparmor/apparmor-allow-dfa-backward-compatibility-with-broken-userspace
--- old/patches.apparmor/apparmor-allow-dfa-backward-compatibility-with-broken-userspace 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.apparmor/apparmor-allow-dfa-backward-compatibility-with-broken-userspace 2010-10-11 16:12:29.000000000 +0200
@@ -0,0 +1,64 @@
+From: John Johansen
+Date: Tue, 20 Jul 2010 06:57:08 -0700
+Subject: AppArmor: Allow dfa backward compatibility with broken userspace
+Patch-mainline: 2.6.37?
+
+The apparmor_parser when compiling policy could generate invalid dfas
+that did not have sufficient padding to avoid invalid references, when
+used by the kernel. The kernels check to verify the next/check table
+size was broken meaning invalid dfas were being created by userspace
+and not caught.
+
+To remain compatible with old tools that are not fixed, pad the loaded
+dfas next/check table. The dfa's themselves are valid except for the
+high padding for potentially invalid transitions (high bounds error),
+which have a maximimum is 256 entries. So just allocate an extra null filled
+256 entries for the next/check tables. This will guarentee all bounds
+are good and invalid transitions go to the null (0) state.
+
+Signed-off-by: John Johansen
+Acked-by: Jeff Mahoney
+---
+ security/apparmor/match.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+--- a/security/apparmor/match.c
++++ b/security/apparmor/match.c
+@@ -57,8 +57,17 @@ static struct table_header *unpack_table
+ if (bsize < tsize)
+ goto out;
+
++ /* Pad table allocation for next/check by 256 entries to remain
++ * backwards compatible with old (buggy) tools and remain safe without
++ * run time checks
++ */
++ if (th.td_id == YYTD_ID_NXT || th.td_id == YYTD_ID_CHK)
++ tsize += 256 * th.td_flags;
++
+ table = kvmalloc(tsize);
+ if (table) {
++ /* ensure the pad is clear, else there will be errors */
++ memset(table, 0, tsize);
+ *table = th;
+ if (th.td_flags == YYTD_DATA8)
+ UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
+@@ -134,11 +143,19 @@ static int verify_dfa(struct aa_dfa *dfa
+ goto out;
+
+ if (flags & DFA_FLAG_VERIFY_STATES) {
++ int warning = 0;
+ for (i = 0; i < state_count; i++) {
+ if (DEFAULT_TABLE(dfa)[i] >= state_count)
+ goto out;
+ /* TODO: do check that DEF state recursion terminates */
+ if (BASE_TABLE(dfa)[i] + 255 >= trans_count) {
++ if (warning)
++ continue;
++ printk(KERN_WARNING "AppArmor DFA next/check "
++ "upper bounds error fixed, upgrade "
++ "user space tools \n");
++ warning = 1;
++ } else if (BASE_TABLE(dfa)[i] >= trans_count) {
+ printk(KERN_ERR "AppArmor DFA next/check upper "
+ "bounds error\n");
+ goto out;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.apparmor/apparmor-compatibility-patch-for-v5-interface new/patches.apparmor/apparmor-compatibility-patch-for-v5-interface
--- old/patches.apparmor/apparmor-compatibility-patch-for-v5-interface 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.apparmor/apparmor-compatibility-patch-for-v5-interface 2010-10-11 16:12:29.000000000 +0200
@@ -0,0 +1,379 @@
+From: John Johansen
+Date: Thu, 22 Jul 2010 02:32:02 -0700
+Subject: AppArmor: compatibility patch for v5 interface
+Patch-mainline: 2.6.37?
+
+Signed-off-by: John Johansen
+Acked-by: Jeff Mahoney
+---
+ security/apparmor/Kconfig | 9 +
+ security/apparmor/Makefile | 2
+ security/apparmor/apparmorfs-24.c | 287 +++++++++++++++++++++++++++++++++
+ security/apparmor/apparmorfs.c | 18 +-
+ security/apparmor/include/apparmorfs.h | 6
+ 5 files changed, 320 insertions(+), 2 deletions(-)
+ create mode 100644 security/apparmor/apparmorfs-24.c
+
+--- a/security/apparmor/Kconfig
++++ b/security/apparmor/Kconfig
+@@ -29,3 +29,12 @@ config SECURITY_APPARMOR_BOOTPARAM_VALUE
+ boot.
+
+ If you are unsure how to answer this question, answer 1.
++
++config SECURITY_APPARMOR_COMPAT_24
++ bool "Enable AppArmor 2.4 compatability"
++ depends on SECURITY_APPARMOR
++ default y
++ help
++ This option enables compatability with AppArmor 2.4. It is
++ recommended if compatability with older versions of AppArmor
++ is desired.
+--- a/security/apparmor/Makefile
++++ b/security/apparmor/Makefile
+@@ -6,6 +6,8 @@ apparmor-y := apparmorfs.o audit.o capab
+ path.o domain.o policy.o policy_unpack.o procattr.o lsm.o \
+ resource.o sid.o file.o net.o
+
++apparmor-$(CONFIG_SECURITY_APPARMOR_COMPAT_24) += apparmorfs-24.o
++
+ clean-files: capability_names.h af_names.h
+
+ quiet_cmd_make-caps = GEN $@
+--- /dev/null
++++ b/security/apparmor/apparmorfs-24.c
+@@ -0,0 +1,287 @@
++/*
++ * AppArmor security module
++ *
++ * This file contains AppArmor /sys/kernel/secrutiy/apparmor interface functions
++ *
++ * Copyright (C) 1998-2008 Novell/SUSE
++ * Copyright 2009-2010 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.
++ *
++ *
++ * This file contain functions providing an interface for <= AppArmor 2.4
++ * compatibility. It is dependent on CONFIG_SECURITY_APPARMOR_COMPAT_24
++ * being set (see Makefile).
++ */
++
++#include
++#include
++#include
++#include
++#include
++#include
++
++#include "include/apparmor.h"
++#include "include/audit.h"
++#include "include/context.h"
++#include "include/policy.h"
++
++
++/* apparmor/matching */
++static ssize_t aa_matching_read(struct file *file, char __user *buf,
++ size_t size, loff_t *ppos)
++{
++ const char matching[] = "pattern=aadfa audit perms=crwxamlk/ "
++ "user::other";
++
++ return simple_read_from_buffer(buf, size, ppos, matching,
++ sizeof(matching) - 1);
++}
++
++const struct file_operations aa_fs_matching_fops = {
++ .read = aa_matching_read,
++};
++
++/* apparmor/features */
++static ssize_t aa_features_read(struct file *file, char __user *buf,
++ size_t size, loff_t *ppos)
++{
++ const char features[] = "file=3.1 capability=2.0 network=1.0 "
++ "change_hat=1.5 change_profile=1.1 " "aanamespaces=1.1 rlimit=1.1";
++
++ return simple_read_from_buffer(buf, size, ppos, features,
++ sizeof(features) - 1);
++}
++
++const struct file_operations aa_fs_features_fops = {
++ .read = aa_features_read,
++};
++
++/**
++ * __next_namespace - find the next namespace to list
++ * @root: root namespace to stop search at (NOT NULL)
++ * @ns: current ns position (NOT NULL)
++ *
++ * Find the next namespace from @ns under @root and handle all locking needed
++ * while switching current namespace.
++ *
++ * Returns: next namespace or NULL if at last namespace under @root
++ * NOTE: will not unlock root->lock
++ */
++static struct aa_namespace *__next_namespace(struct aa_namespace *root,
++ struct aa_namespace *ns)
++{
++ struct aa_namespace *parent;
++
++ /* is next namespace a child */
++ if (!list_empty(&ns->sub_ns)) {
++ struct aa_namespace *next;
++ next = list_first_entry(&ns->sub_ns, typeof(*ns), base.list);
++ read_lock(&next->lock);
++ return next;
++ }
++
++ /* check if the next ns is a sibling, parent, gp, .. */
++ parent = ns->parent;
++ while (parent) {
++ read_unlock(&ns->lock);
++ list_for_each_entry_continue(ns, &parent->sub_ns, base.list) {
++ read_lock(&ns->lock);
++ return ns;
++ }
++ if (parent == root)
++ return NULL;
++ ns = parent;
++ parent = parent->parent;
++ }
++
++ return NULL;
++}
++
++/**
++ * __first_profile - find the first profile in a namespace
++ * @root: namespace that is root of profiles being displayed (NOT NULL)
++ * @ns: namespace to start in (NOT NULL)
++ *
++ * Returns: unrefcounted profile or NULL if no profile
++ */
++static struct aa_profile *__first_profile(struct aa_namespace *root,
++ struct aa_namespace *ns)
++{
++ for ( ; ns; ns = __next_namespace(root, ns)) {
++ if (!list_empty(&ns->base.profiles))
++ return list_first_entry(&ns->base.profiles,
++ struct aa_profile, base.list);
++ }
++ return NULL;
++}
++
++/**
++ * __next_profile - step to the next profile in a profile tree
++ * @profile: current profile in tree (NOT NULL)
++ *
++ * Perform a depth first taversal on the profile tree in a namespace
++ *
++ * Returns: next profile or NULL if done
++ * Requires: profile->ns.lock to be held
++ */
++static struct aa_profile *__next_profile(struct aa_profile *p)
++{
++ struct aa_profile *parent;
++ struct aa_namespace *ns = p->ns;
++
++ /* is next profile a child */
++ if (!list_empty(&p->base.profiles))
++ return list_first_entry(&p->base.profiles, typeof(*p),
++ base.list);
++
++ /* is next profile a sibling, parent sibling, gp, subling, .. */
++ parent = p->parent;
++ while (parent) {
++ list_for_each_entry_continue(p, &parent->base.profiles,
++ base.list)
++ return p;
++ p = parent;
++ parent = parent->parent;
++ }
++
++ /* is next another profile in the namespace */
++ list_for_each_entry_continue(p, &ns->base.profiles, base.list)
++ return p;
++
++ return NULL;
++}
++
++/**
++ * next_profile - step to the next profile in where ever it may be
++ * @root: root namespace (NOT NULL)
++ * @profile: current profile (NOT NULL)
++ *
++ * Returns: next profile or NULL if there isn't one
++ */
++static struct aa_profile *next_profile(struct aa_namespace *root,
++ struct aa_profile *profile)
++{
++ struct aa_profile *next = __next_profile(profile);
++ if (next)
++ return next;
++
++ /* finished all profiles in namespace move to next namespace */
++ return __first_profile(root, __next_namespace(root, profile->ns));
++}
++
++/**
++ * p_start - start a depth first traversal of profile tree
++ * @f: seq_file to fill
++ * @pos: current position
++ *
++ * Returns: first profile under current namespace or NULL if none found
++ *
++ * acquires first ns->lock
++ */
++static void *p_start(struct seq_file *f, loff_t *pos)
++ __acquires(root->lock)
++{
++ struct aa_profile *profile = NULL;
++ struct aa_namespace *root = aa_current_profile()->ns;
++ loff_t l = *pos;
++ f->private = aa_get_namespace(root);
++
++
++ /* find the first profile */
++ read_lock(&root->lock);
++ profile = __first_profile(root, root);
++
++ /* skip to position */
++ for (; profile && l > 0; l--)
++ profile = next_profile(root, profile);
++
++ return profile;
++}
++
++/**
++ * p_next - read the next profile entry
++ * @f: seq_file to fill
++ * @p: profile previously returned
++ * @pos: current position
++ *
++ * Returns: next profile after @p or NULL if none
++ *
++ * may acquire/release locks in namespace tree as necessary
++ */
++static void *p_next(struct seq_file *f, void *p, loff_t *pos)
++{
++ struct aa_profile *profile = p;
++ struct aa_namespace *root = f->private;
++ (*pos)++;
++
++ return next_profile(root, profile);
++}
++
++/**
++ * p_stop - stop depth first traversal
++ * @f: seq_file we are filling
++ * @p: the last profile writen
++ *
++ * Release all locking done by p_start/p_next on namespace tree
++ */
++static void p_stop(struct seq_file *f, void *p)
++ __releases(root->lock)
++{
++ struct aa_profile *profile = p;
++ struct aa_namespace *root = f->private, *ns;
++
++ if (profile) {
++ for (ns = profile->ns; ns && ns != root; ns = ns->parent)
++ read_unlock(&ns->lock);
++ }
++ read_unlock(&root->lock);
++ aa_put_namespace(root);
++}
++
++/**
++ * seq_show_profile - show a profile entry
++ * @f: seq_file to file
++ * @p: current position (profile) (NOT NULL)
++ *
++ * Returns: error on failure
++ */
++static int seq_show_profile(struct seq_file *f, void *p)
++{
++ struct aa_profile *profile = (struct aa_profile *)p;
++ struct aa_namespace *root = f->private;
++
++ if (profile->ns != root)
++ seq_printf(f, ":%s://", aa_ns_name(root, profile->ns));
++ seq_printf(f, "%s (%s)\n", profile->base.hname,
++ COMPLAIN_MODE(profile) ? "complain" : "enforce");
++
++ return 0;
++}
++
++static const struct seq_operations aa_fs_profiles_op = {
++ .start = p_start,
++ .next = p_next,
++ .stop = p_stop,
++ .show = seq_show_profile,
++};
++
++static int profiles_open(struct inode *inode, struct file *file)
++{
++ return seq_open(file, &aa_fs_profiles_op);
++}
++
++static int profiles_release(struct inode *inode, struct file *file)
++{
++ return seq_release(inode, file);
++}
++
++const struct file_operations aa_fs_profiles_fops = {
++ .open = profiles_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++ .release = profiles_release,
++};
+--- a/security/apparmor/apparmorfs.c
++++ b/security/apparmor/apparmorfs.c
+@@ -182,7 +182,11 @@ void __init aa_destroy_aafs(void)
+ aafs_remove(".remove");
+ aafs_remove(".replace");
+ aafs_remove(".load");
+-
++#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24
++ aafs_remove("profiles");
++ aafs_remove("matching");
++ aafs_remove("features");
++#endif
+ securityfs_remove(aa_fs_dentry);
+ aa_fs_dentry = NULL;
+ }
+@@ -213,7 +217,17 @@ int __init aa_create_aafs(void)
+ aa_fs_dentry = NULL;
+ goto error;
+ }
+-
++#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24
++ error = aafs_create("matching", 0444, &aa_fs_matching_fops);
++ if (error)
++ goto error;
++ error = aafs_create("features", 0444, &aa_fs_features_fops);
++ if (error)
++ goto error;
++#endif
++ error = aafs_create("profiles", 0440, &aa_fs_profiles_fops);
++ if (error)
++ goto error;
+ error = aafs_create(".load", 0640, &aa_fs_profile_load);
+ if (error)
+ goto error;
+--- a/security/apparmor/include/apparmorfs.h
++++ b/security/apparmor/include/apparmorfs.h
+@@ -17,4 +17,10 @@
+
+ extern void __init aa_destroy_aafs(void);
+
++#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24
++extern const struct file_operations aa_fs_matching_fops;
++extern const struct file_operations aa_fs_features_fops;
++extern const struct file_operations aa_fs_profiles_fops;
++#endif
++
+ #endif /* __AA_APPARMORFS_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control new/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control
--- old/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control 2010-10-11 16:12:29.000000000 +0200
@@ -0,0 +1,518 @@
+From: John Johansen
+Date: Mon, 4 Oct 2010 15:03:36 -0700
+Subject: AppArmor: compatibility patch for v5 network control
+Patch-mainline: 2.6.37?
+
+Add compatibility for v5 network rules.
+
+Signed-off-by: John Johansen
+Acked-by: Jeff Mahoney
+---
+ include/linux/lsm_audit.h | 4
+ security/apparmor/Makefile | 6 +
+ security/apparmor/include/net.h | 40 ++++++++
+ security/apparmor/include/policy.h | 3
+ security/apparmor/lsm.c | 112 ++++++++++++++++++++++
+ security/apparmor/net.c | 170 ++++++++++++++++++++++++++++++++++
+ security/apparmor/policy.c | 1
+ security/apparmor/policy_unpack.c | 48 +++++++++
+ 8 files changed, 381 insertions(+), 2 deletions(-)
+ create mode 100644 security/apparmor/include/net.h
+ create mode 100644 security/apparmor/net.c
+
+--- a/include/linux/lsm_audit.h
++++ b/include/linux/lsm_audit.h
+@@ -123,6 +123,10 @@ struct common_audit_data {
+ u32 denied;
+ uid_t ouid;
+ } fs;
++ struct {
++ int type, protocol;
++ struct sock *sk;
++ } net;
+ };
+ } apparmor_audit_data;
+ #endif
+--- a/security/apparmor/Makefile
++++ b/security/apparmor/Makefile
+@@ -4,17 +4,21 @@ obj-$(CONFIG_SECURITY_APPARMOR) += appar
+
+ apparmor-y := apparmorfs.o audit.o capability.o context.o ipc.o lib.o match.o \
+ path.o domain.o policy.o policy_unpack.o procattr.o lsm.o \
+- resource.o sid.o file.o
++ resource.o sid.o file.o net.o
+
+ clean-files: capability_names.h af_names.h
+
+ quiet_cmd_make-caps = GEN $@
+ cmd_make-caps = echo "static const char *capability_names[] = {" > $@ ; sed -n -e "/CAP_FS_MASK/d" -e "s/^\#define[ \\t]\\+CAP_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@
+
++quiet_cmd_make-af = GEN $@
++cmd_make-af = echo "static const char *address_family_names[] = {" > $@ ; sed -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e "s/^\#define[ \\t]\\+AF_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@
++
+ quiet_cmd_make-rlim = GEN $@
+ cmd_make-rlim = echo "static const char *rlim_names[] = {" > $@ ; sed -n --e "/AF_MAX/d" -e "s/^\# \\?define[ \\t]\\+RLIMIT_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@ ; echo "static const int rlim_map[] = {" >> $@ ; sed -n -e "/AF_MAX/d" -e "s/^\# \\?define[ \\t]\\+\\(RLIMIT_[A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/\\1,/p" $< >> $@ ; echo "};" >> $@
+
+ $(obj)/capability.o : $(obj)/capability_names.h
++$(obj)/net.o : $(obj)/af_names.h
+ $(obj)/resource.o : $(obj)/rlim_names.h
+ $(obj)/capability_names.h : $(srctree)/include/linux/capability.h
+ $(call cmd,make-caps)
+--- /dev/null
++++ b/security/apparmor/include/net.h
+@@ -0,0 +1,40 @@
++/*
++ * AppArmor security module
++ *
++ * This file contains AppArmor network mediation definitions.
++ *
++ * Copyright (C) 1998-2008 Novell/SUSE
++ * Copyright 2009-2010 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_NET_H
++#define __AA_NET_H
++
++#include
++
++/* struct aa_net - network confinement data
++ * @allowed: basic network families permissions
++ * @audit_network: which network permissions to force audit
++ * @quiet_network: which network permissions to quiet rejects
++ */
++struct aa_net {
++ u16 allow[AF_MAX];
++ u16 audit[AF_MAX];
++ u16 quiet[AF_MAX];
++};
++
++extern int aa_net_perm(int op, struct aa_profile *profile, u16 family,
++ int type, int protocol, struct sock *sk);
++extern int aa_revalidate_sk(int op, struct sock *sk);
++
++static inline void aa_free_net_rules(struct aa_net *new)
++{
++ /* NOP */
++}
++
++#endif /* __AA_NET_H */
+--- a/security/apparmor/include/policy.h
++++ b/security/apparmor/include/policy.h
+@@ -27,6 +27,7 @@
+ #include "capability.h"
+ #include "domain.h"
+ #include "file.h"
++#include "net.h"
+ #include "resource.h"
+
+ extern const char *profile_mode_names[];
+@@ -145,6 +146,7 @@ struct aa_namespace {
+ * @size: the memory consumed by this profiles rules
+ * @file: The set of rules governing basic file access and domain transitions
+ * @caps: capabilities for the profile
++ * @net: network controls for the profile
+ * @rlimits: rlimits for the profile
+ *
+ * The AppArmor profile contains the basic confinement data. Each profile
+@@ -181,6 +183,7 @@ struct aa_profile {
+
+ struct aa_file_rules file;
+ struct aa_caps caps;
++ struct aa_net net;
+ struct aa_rlimit rlimits;
+ };
+
+--- a/security/apparmor/lsm.c
++++ b/security/apparmor/lsm.c
+@@ -31,6 +31,7 @@
+ #include "include/context.h"
+ #include "include/file.h"
+ #include "include/ipc.h"
++#include "include/net.h"
+ #include "include/path.h"
+ #include "include/policy.h"
+ #include "include/procattr.h"
+@@ -619,6 +620,104 @@ static int apparmor_task_setrlimit(struc
+ return error;
+ }
+
++static int apparmor_socket_create(int family, int type, int protocol, int kern)
++{
++ struct aa_profile *profile;
++ int error = 0;
++
++ if (kern)
++ return 0;
++
++ profile = __aa_current_profile();
++ if (!unconfined(profile))
++ error = aa_net_perm(OP_CREATE, profile, family, type, protocol,
++ NULL);
++ return error;
++}
++
++static int apparmor_socket_bind(struct socket *sock,
++ struct sockaddr *address, int addrlen)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_BIND, sk);
++}
++
++static int apparmor_socket_connect(struct socket *sock,
++ struct sockaddr *address, int addrlen)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_CONNECT, sk);
++}
++
++static int apparmor_socket_listen(struct socket *sock, int backlog)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_LISTEN, sk);
++}
++
++static int apparmor_socket_accept(struct socket *sock, struct socket *newsock)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_ACCEPT, sk);
++}
++
++static int apparmor_socket_sendmsg(struct socket *sock,
++ struct msghdr *msg, int size)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_SENDMSG, sk);
++}
++
++static int apparmor_socket_recvmsg(struct socket *sock,
++ struct msghdr *msg, int size, int flags)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_RECVMSG, sk);
++}
++
++static int apparmor_socket_getsockname(struct socket *sock)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_GETSOCKNAME, sk);
++}
++
++static int apparmor_socket_getpeername(struct socket *sock)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_GETPEERNAME, sk);
++}
++
++static int apparmor_socket_getsockopt(struct socket *sock, int level,
++ int optname)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_GETSOCKOPT, sk);
++}
++
++static int apparmor_socket_setsockopt(struct socket *sock, int level,
++ int optname)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_SETSOCKOPT, sk);
++}
++
++static int apparmor_socket_shutdown(struct socket *sock, int how)
++{
++ struct sock *sk = sock->sk;
++
++ return aa_revalidate_sk(OP_SOCK_SHUTDOWN, sk);
++}
++
+ static struct security_operations apparmor_ops = {
+ .name = "apparmor",
+
+@@ -650,6 +749,19 @@ static struct security_operations apparm
+ .getprocattr = apparmor_getprocattr,
+ .setprocattr = apparmor_setprocattr,
+
++ .socket_create = apparmor_socket_create,
++ .socket_bind = apparmor_socket_bind,
++ .socket_connect = apparmor_socket_connect,
++ .socket_listen = apparmor_socket_listen,
++ .socket_accept = apparmor_socket_accept,
++ .socket_sendmsg = apparmor_socket_sendmsg,
++ .socket_recvmsg = apparmor_socket_recvmsg,
++ .socket_getsockname = apparmor_socket_getsockname,
++ .socket_getpeername = apparmor_socket_getpeername,
++ .socket_getsockopt = apparmor_socket_getsockopt,
++ .socket_setsockopt = apparmor_socket_setsockopt,
++ .socket_shutdown = apparmor_socket_shutdown,
++
+ .cred_alloc_blank = apparmor_cred_alloc_blank,
+ .cred_free = apparmor_cred_free,
+ .cred_prepare = apparmor_cred_prepare,
+--- /dev/null
++++ b/security/apparmor/net.c
+@@ -0,0 +1,170 @@
++/*
++ * AppArmor security module
++ *
++ * This file contains AppArmor network mediation
++ *
++ * Copyright (C) 1998-2008 Novell/SUSE
++ * Copyright 2009-2010 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.
++ */
++
++#include "include/apparmor.h"
++#include "include/audit.h"
++#include "include/context.h"
++#include "include/net.h"
++#include "include/policy.h"
++
++#include "af_names.h"
++
++static const char *sock_type_names[] = {
++ "unknown(0)",
++ "stream",
++ "dgram",
++ "raw",
++ "rdm",
++ "seqpacket",
++ "dccp",
++ "unknown(7)",
++ "unknown(8)",
++ "unknown(9)",
++ "packet",
++};
++
++/* audit callback for net specific fields */
++static void audit_cb(struct audit_buffer *ab, void *va)
++{
++ struct common_audit_data *sa = va;
++
++ audit_log_format(ab, " family=");
++ if (address_family_names[sa->u.net.family]) {
++ audit_log_string(ab, address_family_names[sa->u.net.family]);
++ } else {
++ audit_log_format(ab, " \"unknown(%d)\"", sa->u.net.family);
++ }
++
++ audit_log_format(ab, " sock_type=");
++ if (sock_type_names[sa->aad.net.type]) {
++ audit_log_string(ab, sock_type_names[sa->aad.net.type]);
++ } else {
++ audit_log_format(ab, "\"unknown(%d)\"", sa->aad.net.type);
++ }
++
++ audit_log_format(ab, " protocol=%d", sa->aad.net.protocol);
++}
++
++/**
++ * audit_net - audit network access
++ * @profile: profile being enforced (NOT NULL)
++ * @op: operation being checked
++ * @family: network family
++ * @type: network type
++ * @protocol: network protocol
++ * @sk: socket auditing is being applied to
++ * @error: error code for failure else 0
++ *
++ * Returns: %0 or sa->error else other errorcode on failure
++ */
++static int audit_net(struct aa_profile *profile, int op, u16 family, int type,
++ int protocol, struct sock *sk, int error)
++{
++ int audit_type = AUDIT_APPARMOR_AUTO;
++ struct common_audit_data sa;
++ if (sk) {
++ COMMON_AUDIT_DATA_INIT(&sa, NET);
++ } else {
++ COMMON_AUDIT_DATA_INIT(&sa, NONE);
++ }
++ /* todo fill in socket addr info */
++
++ sa.aad.op = op,
++ sa.u.net.family = family;
++ sa.u.net.sk = sk;
++ sa.aad.net.type = type;
++ sa.aad.net.protocol = protocol;
++ sa.aad.error = error;
++
++ if (likely(!sa.aad.error)) {
++ u16 audit_mask = profile->net.audit[sa.u.net.family];
++ if (likely((AUDIT_MODE(profile) != AUDIT_ALL) &&
++ !(1 << sa.aad.net.type & audit_mask)))
++ return 0;
++ audit_type = AUDIT_APPARMOR_AUDIT;
++ } else {
++ u16 quiet_mask = profile->net.quiet[sa.u.net.family];
++ u16 kill_mask = 0;
++ u16 denied = (1 << sa.aad.net.type) & ~quiet_mask;
++
++ if (denied & kill_mask)
++ audit_type = AUDIT_APPARMOR_KILL;
++
++ if ((denied & quiet_mask) &&
++ AUDIT_MODE(profile) != AUDIT_NOQUIET &&
++ AUDIT_MODE(profile) != AUDIT_ALL)
++ return COMPLAIN_MODE(profile) ? 0 : sa.aad.error;
++ }
++
++ return aa_audit(audit_type, profile, GFP_KERNEL, &sa, audit_cb);
++}
++
++/**
++ * aa_net_perm - very course network access check
++ * @op: operation being checked
++ * @profile: profile being enforced (NOT NULL)
++ * @family: network family
++ * @type: network type
++ * @protocol: network protocol
++ *
++ * Returns: %0 else error if permission denied
++ */
++int aa_net_perm(int op, struct aa_profile *profile, u16 family, int type,
++ int protocol, struct sock *sk)
++{
++ u16 family_mask;
++ int error;
++
++ if ((family < 0) || (family >= AF_MAX))
++ return -EINVAL;
++
++ if ((type < 0) || (type >= SOCK_MAX))
++ return -EINVAL;
++
++ /* unix domain and netlink sockets are handled by ipc */
++ if (family == AF_UNIX || family == AF_NETLINK)
++ return 0;
++
++ family_mask = profile->net.allow[family];
++
++ error = (family_mask & (1 << type)) ? 0 : -EACCES;
++
++ return audit_net(profile, op, family, type, protocol, sk, error);
++}
++
++/**
++ * aa_revalidate_sk - Revalidate access to a sock
++ * @op: operation being checked
++ * @sk: sock being revalidated (NOT NULL)
++ *
++ * Returns: %0 else error if permission denied
++ */
++int aa_revalidate_sk(int op, struct sock *sk)
++{
++ struct aa_profile *profile;
++ int error = 0;
++
++ /* aa_revalidate_sk should not be called from interrupt context
++ * don't mediate these calls as they are not task related
++ */
++ if (in_interrupt())
++ return 0;
++
++ profile = __aa_current_profile();
++ if (!unconfined(profile))
++ error = aa_net_perm(op, profile, sk->sk_family, sk->sk_type,
++ sk->sk_protocol, sk);
++
++ return error;
++}
+--- a/security/apparmor/policy.c
++++ b/security/apparmor/policy.c
+@@ -745,6 +745,7 @@ static void free_profile(struct aa_profi
+
+ aa_free_file_rules(&profile->file);
+ aa_free_cap_rules(&profile->caps);
++ aa_free_net_rules(&profile->net);
+ aa_free_rlimit_rules(&profile->rlimits);
+
+ aa_free_sid(profile->sid);
+--- a/security/apparmor/policy_unpack.c
++++ b/security/apparmor/policy_unpack.c
+@@ -190,6 +190,19 @@ fail:
+ return 0;
+ }
+
++static bool unpack_u16(struct aa_ext *e, u16 *data, const char *name)
++{
++ if (unpack_nameX(e, AA_U16, name)) {
++ if (!inbounds(e, sizeof(u16)))
++ return 0;
++ if (data)
++ *data = le16_to_cpu(get_unaligned((u16 *) e->pos));
++ e->pos += sizeof(u16);
++ return 1;
++ }
++ return 0;
++}
++
+ static bool unpack_u32(struct aa_ext *e, u32 *data, const char *name)
+ {
+ if (unpack_nameX(e, AA_U32, name)) {
+@@ -468,7 +481,8 @@ static struct aa_profile *unpack_profile
+ {
+ struct aa_profile *profile = NULL;
+ const char *name = NULL;
+- int error = -EPROTO;
++ size_t size = 0;
++ int i, error = -EPROTO;
+ kernel_cap_t tmpcap;
+ u32 tmp;
+
+@@ -559,6 +573,38 @@ static struct aa_profile *unpack_profile
+ if (!unpack_rlimits(e, profile))
+ goto fail;
+
++ size = unpack_array(e, "net_allowed_af");
++ if (size) {
++
++ for (i = 0; i < size; i++) {
++ /* discard extraneous rules that this kernel will
++ * never request
++ */
++ if (i > AF_MAX) {
++ u16 tmp;
++ if (!unpack_u16(e, &tmp, NULL) ||
++ !unpack_u16(e, &tmp, NULL) ||
++ !unpack_u16(e, &tmp, NULL))
++ goto fail;
++ continue;
++ }
++ if (!unpack_u16(e, &profile->net.allow[i], NULL))
++ goto fail;
++ if (!unpack_u16(e, &profile->net.audit[i], NULL))
++ goto fail;
++ if (!unpack_u16(e, &profile->net.quiet[i], NULL))
++ goto fail;
++ }
++ if (!unpack_nameX(e, AA_ARRAYEND, NULL))
++ goto fail;
++ /*
++ * allow unix domain and netlink sockets they are handled
++ * by IPC
++ */
++ }
++ profile->net.allow[AF_UNIX] = 0xffff;
++ profile->net.allow[AF_NETLINK] = 0xffff;
++
+ /* get file rules */
+ profile->file.dfa = unpack_dfa(e);
+ if (IS_ERR(profile->file.dfa)) {
++++++ patches.arch.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/acpi_ec_delay_param.patch new/patches.arch/acpi_ec_delay_param.patch
--- old/patches.arch/acpi_ec_delay_param.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/acpi_ec_delay_param.patch 2010-10-22 13:32:04.000000000 +0200
@@ -0,0 +1,46 @@
+From: Thomas Renninger
+Subject: ACPI: Make Embedded Controller command timeout delay configurable
+References: bnc#639261
+Patch-Mainline: not yet
+
+Here and then there show up machines which need higher timeout values.
+Finding this out on affected machines is very cumbersome, because
+ACPI_EC_DELAY is a compile option -> make it a configurable via boot param.
+
+Signed-off-by: Thomas Renninger
+
+
+diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
+index f31291b..6499cc4 100644
+--- a/drivers/acpi/ec.c
++++ b/drivers/acpi/ec.c
+@@ -83,6 +83,11 @@ enum {
+ EC_FLAGS_BLOCKED, /* Transactions are blocked */
+ };
+
++/* ec.c is compiled in acpi namespace so this shows up as acpi.ec_delay param */
++static unsigned int ec_delay __read_mostly = ACPI_EC_DELAY;
++module_param(ec_delay, uint, 0444);
++MODULE_PARM_DESC(ec_delay, "Timeout(ms) waited until an EC command completes");
++
+ /* If we find an EC via the ECDT, we need to keep a ptr to its context */
+ /* External interfaces use first EC only, so remember */
+ typedef int (*acpi_ec_query_func) (void *data);
+@@ -210,7 +215,7 @@ static int ec_poll(struct acpi_ec *ec)
+ int repeat = 2; /* number of command restarts */
+ while (repeat--) {
+ unsigned long delay = jiffies +
+- msecs_to_jiffies(ACPI_EC_DELAY);
++ msecs_to_jiffies(ec_delay);
+ do {
+ /* don't sleep with disabled interrupts */
+ if (EC_FLAGS_MSI || irqs_disabled()) {
+@@ -265,7 +270,7 @@ static int ec_check_ibf0(struct acpi_ec *ec)
+
+ static int ec_wait_ibf0(struct acpi_ec *ec)
+ {
+- unsigned long delay = jiffies + msecs_to_jiffies(ACPI_EC_DELAY);
++ unsigned long delay = jiffies + msecs_to_jiffies(ec_delay);
+ /* interrupt wait manually if GPE mode is not active */
+ while (time_before(jiffies, delay))
+ if (wait_event_timeout(ec->wait, ec_check_ibf0(ec),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/i386-unwind-annotations new/patches.arch/i386-unwind-annotations
--- old/patches.arch/i386-unwind-annotations 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.arch/i386-unwind-annotations 2010-10-22 13:32:04.000000000 +0200
@@ -1,6 +1,6 @@
From: jbeulich@novell.com
Subject: fix unwind annotations
-Patch-mainline: tbd
+Patch-mainline: 2.6.37
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/x86_64-unwind-annotations new/patches.arch/x86_64-unwind-annotations
--- old/patches.arch/x86_64-unwind-annotations 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.arch/x86_64-unwind-annotations 2010-10-22 13:32:04.000000000 +0200
@@ -1,6 +1,6 @@
From: jbeulich@novell.com
Subject: fix unwind annotations
-Patch-mainline: tbd
+Patch-mainline: partly in 2.6.37
References: bnc#472783, bnc#588458
---
++++++ patches.drivers.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/alsa-hda-01-Fix-wrong-SPDIF-NID-assignment-for-CA0110 new/patches.drivers/alsa-hda-01-Fix-wrong-SPDIF-NID-assignment-for-CA0110
--- old/patches.drivers/alsa-hda-01-Fix-wrong-SPDIF-NID-assignment-for-CA0110 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/alsa-hda-01-Fix-wrong-SPDIF-NID-assignment-for-CA0110 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,31 @@
+From 24b55c69b66eb2a122842820ec14ab215fc8572f Mon Sep 17 00:00:00 2001
+From: Takashi Iwai
+Date: Thu, 21 Oct 2010 08:55:13 +0200
+Subject: [PATCH] ALSA: hda - Fix wrong SPDIF NID assignment for CA0110
+Git-commit: 24b55c69b66eb2a122842820ec14ab215fc8572f
+Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
+Patch-mainline: Submitted
+References: bnc#564324
+
+The dig_out_nid field must take a digital-converter widget, but the current
+ca0110 parser passed the pin wrongly instead.
+
+Reported-by: Wai Yew CHAY
+Cc:
+Signed-off-by: Takashi Iwai
+
+---
+ sound/pci/hda/patch_ca0110.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sound/pci/hda/patch_ca0110.c
++++ b/sound/pci/hda/patch_ca0110.c
+@@ -489,7 +489,7 @@
+ if (cfg->dig_outs &&
+ snd_hda_get_connections(codec, cfg->dig_out_pins[0],
+ &spec->dig_out, 1) == 1)
+- spec->multiout.dig_out_nid = cfg->dig_out_pins[0];
++ spec->multiout.dig_out_nid = spec->dig_out;
+ }
+
+ static int ca0110_parse_auto_config(struct hda_codec *codec)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/alsa-hda-02-Add-some-workarounds-for-Creative-IBG new/patches.drivers/alsa-hda-02-Add-some-workarounds-for-Creative-IBG
--- old/patches.drivers/alsa-hda-02-Add-some-workarounds-for-Creative-IBG 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/alsa-hda-02-Add-some-workarounds-for-Creative-IBG 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,80 @@
+From 14d34f166c57e77e3d7f9bc8b43d349186d922c1 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai
+Date: Thu, 21 Oct 2010 09:03:25 +0200
+Subject: [PATCH] ALSA: hda - Add some workarounds for Creative IBG
+Git-commit: 14d34f166c57e77e3d7f9bc8b43d349186d922c1
+Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
+Patch-mainline: Submitted
+References: bnc#564324
+
+Creative HD-audio controller chips require some workarounds:
+ - Additional delay before RIRB response
+ - Set the initial RIRB counter to 0xc0
+
+The latter seems to be done in general in Windows driver, so we may
+use this value later for all types if it's confirmed to work better.
+
+Reported-by: Wai Yew CHAY
+Cc:
+Signed-off-by: Takashi Iwai
+
+---
+ sound/pci/hda/hda_intel.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -458,6 +458,7 @@
+ AZX_DRIVER_ULI,
+ AZX_DRIVER_NVIDIA,
+ AZX_DRIVER_TERA,
++ AZX_DRIVER_CTX,
+ AZX_DRIVER_GENERIC,
+ AZX_NUM_DRIVERS, /* keep this as last entry */
+ };
+@@ -473,6 +474,7 @@
+ [AZX_DRIVER_ULI] = "HDA ULI M5461",
+ [AZX_DRIVER_NVIDIA] = "HDA NVidia",
+ [AZX_DRIVER_TERA] = "HDA Teradici",
++ [AZX_DRIVER_CTX] = "HDA Creative",
+ [AZX_DRIVER_GENERIC] = "HD-Audio Generic",
+ };
+
+@@ -563,7 +565,10 @@
+ /* reset the rirb hw write pointer */
+ azx_writew(chip, RIRBWP, ICH6_RIRBWP_RST);
+ /* set N=1, get RIRB response interrupt for new entry */
+- azx_writew(chip, RINTCNT, 1);
++ if (chip->driver_type == AZX_DRIVER_CTX)
++ azx_writew(chip, RINTCNT, 0xc0);
++ else
++ azx_writew(chip, RINTCNT, 1);
+ /* enable rirb dma and response irq */
+ azx_writeb(chip, RIRBCTL, ICH6_RBCTL_DMA_EN | ICH6_RBCTL_IRQ_EN);
+ spin_unlock_irq(&chip->reg_lock);
+@@ -1136,8 +1141,11 @@
+ /* clear rirb int */
+ status = azx_readb(chip, RIRBSTS);
+ if (status & RIRB_INT_MASK) {
+- if (status & RIRB_INT_RESPONSE)
++ if (status & RIRB_INT_RESPONSE) {
++ if (chip->driver_type == AZX_DRIVER_CTX)
++ udelay(80);
+ azx_update_rirb(chip);
++ }
+ azx_writeb(chip, RIRBSTS, RIRB_INT_MASK);
+ }
+
+@@ -2794,10 +2802,10 @@
+ { PCI_DEVICE(PCI_VENDOR_ID_CREATIVE, PCI_ANY_ID),
+ .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8,
+ .class_mask = 0xffffff,
+- .driver_data = AZX_DRIVER_GENERIC },
++ .driver_data = AZX_DRIVER_CTX },
+ #else
+ /* this entry seems still valid -- i.e. without emu20kx chip */
+- { PCI_DEVICE(0x1102, 0x0009), .driver_data = AZX_DRIVER_GENERIC },
++ { PCI_DEVICE(0x1102, 0x0009), .driver_data = AZX_DRIVER_CTX },
+ #endif
+ /* AMD/ATI Generic, PCI class code and Vendor ID for HD Audio */
+ { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_ANY_ID),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/alsa-hda-03-Add-workarounds-for-CT-IBG-controllers new/patches.drivers/alsa-hda-03-Add-workarounds-for-CT-IBG-controllers
--- old/patches.drivers/alsa-hda-03-Add-workarounds-for-CT-IBG-controllers 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/alsa-hda-03-Add-workarounds-for-CT-IBG-controllers 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,70 @@
+From 62b7e5e09bcb854ff05e6ee1aa161f8283dc36ee Mon Sep 17 00:00:00 2001
+From: Takashi Iwai
+Date: Fri, 22 Oct 2010 17:15:47 +0200
+Subject: [PATCH] ALSA: hda - Add workarounds for CT-IBG controllers
+Git-commit: 62b7e5e09bcb854ff05e6ee1aa161f8283dc36ee
+Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
+Patch-mainline: Submitted
+References: bnc#564324
+
+Creative IBG controllers require the playback stream-tags to be started
+from 1, instead of capture+1. Otherwise the stream stalls.
+
+Reported-by: Wai Yew CHAY
+Cc:
+Signed-off-by: Takashi Iwai
+
+---
+ sound/pci/hda/hda_codec.c | 5 ++++-
+ sound/pci/hda/hda_intel.c | 9 +++++++--
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+--- a/sound/pci/hda/hda_codec.c
++++ b/sound/pci/hda/hda_codec.c
+@@ -1216,6 +1216,7 @@
+ struct hda_codec *c;
+ struct hda_cvt_setup *p;
+ unsigned int oldval, newval;
++ int type;
+ int i;
+
+ if (!nid)
+@@ -1254,10 +1255,12 @@
+ p->dirty = 0;
+
+ /* make other inactive cvts with the same stream-tag dirty */
++ type = get_wcaps_type(get_wcaps(codec, nid));
+ list_for_each_entry(c, &codec->bus->codec_list, list) {
+ for (i = 0; i < c->cvt_setups.used; i++) {
+ p = snd_array_elem(&c->cvt_setups, i);
+- if (!p->active && p->stream_tag == stream_tag)
++ if (!p->active && p->stream_tag == stream_tag &&
++ get_wcaps_type(get_wcaps(codec, p->nid)) == type)
+ p->dirty = 1;
+ }
+ }
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -1655,7 +1655,7 @@
+ struct azx_dev *azx_dev = get_azx_dev(substream);
+ struct hda_pcm_stream *hinfo = apcm->hinfo[substream->stream];
+ struct snd_pcm_runtime *runtime = substream->runtime;
+- unsigned int bufsize, period_bytes, format_val;
++ unsigned int bufsize, period_bytes, format_val, stream_tag;
+ int err;
+
+ azx_stream_reset(chip, azx_dev);
+@@ -1697,7 +1697,12 @@
+ else
+ azx_dev->fifo_size = 0;
+
+- return snd_hda_codec_prepare(apcm->codec, hinfo, azx_dev->stream_tag,
++ stream_tag = azx_dev->stream_tag;
++ /* CA-IBG chips need the playback stream starting from 1 */
++ if (chip->driver_type == AZX_DRIVER_CTX &&
++ stream_tag > chip->capture_streams)
++ stream_tag -= chip->capture_streams;
++ return snd_hda_codec_prepare(apcm->codec, hinfo, stream_tag,
+ azx_dev->format_val, substream);
+ }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/dynamic_debug_1.patch new/patches.drivers/dynamic_debug_1.patch
--- old/patches.drivers/dynamic_debug_1.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/dynamic_debug_1.patch 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,87 @@
+From: Thomas Renninger
+Subject: Dynamic Debug: Split out query string parsing/setup from proc_write
+References: none
+Patch-Mainline: linux-next, queued for 2.6.37
+
+X-Git-Tag: next-20100915~8^2~8
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fnext%2Flinux-next.git;a=comm...
+
+Dynamic Debug: Split out query string parsing/setup from proc_write
+
+The parsing and applying of dynamic debug strings is not only useful for
+/sys/../dynamic_debug/control write access, but can also be used for
+boot parameter parsing.
+The boot parameter is introduced in a follow up patch.
+
+Signed-off-by: Thomas Renninger
+Acked-by: jbaron@redhat.com
+Acked-by: Pekka Enberg
+Signed-off-by: Greg Kroah-Hartman
+---
+
+diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
+index 02afc25..84d103c4 100644
+--- a/lib/dynamic_debug.c
++++ b/lib/dynamic_debug.c
+@@ -429,6 +429,27 @@ static int ddebug_parse_flags(const char *str, unsigned int *flagsp,
+ return 0;
+ }
+
++static int ddebug_exec_query(char *query_string)
++{
++ unsigned int flags = 0, mask = 0;
++ struct ddebug_query query;
++#define MAXWORDS 9
++ int nwords;
++ char *words[MAXWORDS];
++
++ nwords = ddebug_tokenize(query_string, words, MAXWORDS);
++ if (nwords <= 0)
++ return -EINVAL;
++ if (ddebug_parse_query(words, nwords-1, &query))
++ return -EINVAL;
++ if (ddebug_parse_flags(words[nwords-1], &flags, &mask))
++ return -EINVAL;
++
++ /* actually go and implement the change */
++ ddebug_change(&query, flags, mask);
++ return 0;
++}
++
+ /*
+ * File_ops->write method for <debugfs>/dynamic_debug/conrol. Gathers the
+ * command text from userspace, parses and executes it.
+@@ -436,12 +457,8 @@ static int ddebug_parse_flags(const char *str, unsigned int *flagsp,
+ static ssize_t ddebug_proc_write(struct file *file, const char __user *ubuf,
+ size_t len, loff_t *offp)
+ {
+- unsigned int flags = 0, mask = 0;
+- struct ddebug_query query;
+-#define MAXWORDS 9
+- int nwords;
+- char *words[MAXWORDS];
+ char tmpbuf[256];
++ int ret;
+
+ if (len == 0)
+ return 0;
+@@ -455,16 +472,9 @@ static ssize_t ddebug_proc_write(struct file *file, const char __user *ubuf,
+ printk(KERN_INFO "%s: read %d bytes from userspace\n",
+ __func__, (int)len);
+
+- nwords = ddebug_tokenize(tmpbuf, words, MAXWORDS);
+- if (nwords <= 0)
+- return -EINVAL;
+- if (ddebug_parse_query(words, nwords-1, &query))
+- return -EINVAL;
+- if (ddebug_parse_flags(words[nwords-1], &flags, &mask))
+- return -EINVAL;
+-
+- /* actually go and implement the change */
+- ddebug_change(&query, flags, mask);
++ ret = ddebug_exec_query(tmpbuf);
++ if (ret)
++ return ret;
+
+ *offp += len;
+ return len;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/dynamic_debug_2.patch new/patches.drivers/dynamic_debug_2.patch
--- old/patches.drivers/dynamic_debug_2.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/dynamic_debug_2.patch 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,137 @@
+From: Thomas Renninger
+Subject: Dynamic Debug: Introduce ddebug_query= boot parameter
+References: none
+Patch-Mainline: linux-next, queued for 2.6.37
+
+X-Git-Tag: next-20100915~8^2~7
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fnext%2Flinux-next.git;a=comm...
+
+Dynamic Debug: Introduce ddebug_query= boot parameter
+
+Dynamic debug lacks the ability to enable debug messages at boot time.
+One could patch initramfs or service startup scripts to write to
+/sys/../dynamic_debug/control, but this sucks.
+
+This patch makes it possible to pass a query in the same format one can
+write to /sys/../dynamic_debug/control via boot param.
+When dynamic debug gets initialized, this query will automatically be
+applied.
+
+
+Signed-off-by: Thomas Renninger
+Acked-by: jbaron@redhat.com
+Acked-by: Pekka Enberg
+Signed-off-by: Greg Kroah-Hartman
+---
+
+diff --git a/Documentation/dynamic-debug-howto.txt b/Documentation/dynamic-debug-howto.txt
+index 674c566..58ea64a 100644
+--- a/Documentation/dynamic-debug-howto.txt
++++ b/Documentation/dynamic-debug-howto.txt
+@@ -24,7 +24,7 @@ Dynamic debug has even more useful features:
+ read to display the complete list of known debug statements, to help guide you
+
+ Controlling dynamic debug Behaviour
+-===============================
++===================================
+
+ The behaviour of pr_debug()/dev_debug()s are controlled via writing to a
+ control file in the 'debugfs' filesystem. Thus, you must first mount the debugfs
+@@ -212,6 +212,26 @@ Note the regexp ^[-+=][scp]+$ matches a flags specification.
+ Note also that there is no convenient syntax to remove all
+ the flags at once, you need to use "-psc".
+
++
++Debug messages during boot process
++==================================
++
++To be able to activate debug messages during the boot process,
++even before userspace and debugfs exists, use the boot parameter:
++ddebug_query="QUERY"
++
++QUERY follows the syntax described above, but must not exceed 1023
++characters. The enablement of debug messages is done as an arch_initcall.
++Thus you can enable debug messages in all code processed after this
++arch_initcall via this boot parameter.
++On an x86 system for example ACPI enablement is a subsys_initcall and
++ddebug_query="file ec.c +p"
++will show early Embedded Controller transactions during ACPI setup if
++your machine (typically a laptop) has an Embedded Controller.
++PCI (or other devices) initialization also is a hot candidate for using
++this boot parameter for debugging purposes.
++
++
+ Examples
+ ========
+
+diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
+index 8dd7248..3d854c9 100644
+--- a/Documentation/kernel-parameters.txt
++++ b/Documentation/kernel-parameters.txt
+@@ -43,10 +43,11 @@ parameter is applicable:
+ AVR32 AVR32 architecture is enabled.
+ AX25 Appropriate AX.25 support is enabled.
+ BLACKFIN Blackfin architecture is enabled.
+- DRM Direct Rendering Management support is enabled.
+ EDD BIOS Enhanced Disk Drive Services (EDD) is enabled
+ EFI EFI Partitioning (GPT) is enabled
+ EIDE EIDE/ATAPI support is enabled.
++ DRM Direct Rendering Management support is enabled.
++ DYNAMIC_DEBUG Build in debug messages and enable them at runtime
+ FB The frame buffer device is enabled.
+ GCOV GCOV profiling is enabled.
+ HW Appropriate hardware is enabled.
+@@ -570,6 +571,10 @@ and is between 256 and 4096 characters. It is defined in the file
+ Format: ,<type>
+ See also Documentation/input/joystick-parport.txt
+
++ ddebug_query= [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
++ time. See Documentation/dynamic-debug-howto.txt for
++ details.
++
+ debug [KNL] Enable kernel debugging (events log level).
+
+ debug_locks_verbose=
+diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
+index 84d103c4..44ce66b 100644
+--- a/lib/dynamic_debug.c
++++ b/lib/dynamic_debug.c
+@@ -450,6 +450,19 @@ static int ddebug_exec_query(char *query_string)
+ return 0;
+ }
+
++static __initdata char ddebug_setup_string[1024];
++static __init int ddebug_setup_query(char *str)
++{
++ if (strlen(str) >= 1024) {
++ pr_warning("ddebug boot param string too large\n");
++ return 0;
++ }
++ strcpy(ddebug_setup_string, str);
++ return 1;
++}
++
++__setup("ddebug_query=", ddebug_setup_query);
++
+ /*
+ * File_ops->write method for <debugfs>/dynamic_debug/conrol. Gathers the
+ * command text from userspace, parses and executes it.
+@@ -769,6 +782,18 @@ static int __init dynamic_debug_init(void)
+ }
+ ret = ddebug_add_module(iter_start, n, modname);
+ }
++
++ /* ddebug_query boot param got passed -> set it up */
++ if (ddebug_setup_string[0] != '\0') {
++ ret = ddebug_exec_query(ddebug_setup_string);
++ if (ret)
++ pr_warning("Invalid ddebug boot param %s",
++ ddebug_setup_string);
++ else
++ pr_info("ddebug initialized with string %s",
++ ddebug_setup_string);
++ }
++
+ out_free:
+ if (ret) {
+ ddebug_remove_all_tables();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/dynamic_debug_3.patch new/patches.drivers/dynamic_debug_3.patch
--- old/patches.drivers/dynamic_debug_3.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/dynamic_debug_3.patch 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,112 @@
+From: Thomas Renninger
+Subject: Dynamic Debug: Initialize dynamic debug earlier via arch_initcall
+References: none
+Patch-Mainline: linux-next, queued for 2.6.37
+
+X-Git-Tag: next-20100915~8^2~6
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fnext%2Flinux-next.git;a=comm...
+
+Dynamic Debug: Initialize dynamic debug earlier via arch_initcall
+
+Having the ddebug_query= boot parameter it makes sense to set up
+dynamic debug as soon as possible.
+
+I expect sysfs files cannot be set up via an arch_initcall, because
+this one is even before fs_initcall. Therefore I splitted the
+dynamic_debug_init function into an early one and a later one providing
+/sys/../dynamic_debug/control file.
+
+Possibly dynamic_debug can be initialized even earlier, not sure whether
+this still makes sense then. I picked up arch_initcall as it covers
+quite a lot already.
+
+Dynamic debug needs to allocate memory, therefore it's not easily possible to
+set it up even before the command line gets parsed.
+Therefore the boot param query string is stored in a temp string which is
+applied when dynamic debug gets set up.
+
+This has been tested with ddebug_query="file ec.c +p"
+and I could retrieve pr_debug() messages early at boot during ACPI setup:
+ACPI: EC: Look up EC in DSDT
+ACPI: EC: ---> status = 0x08
+ACPI: EC: transaction start
+ACPI: EC: <--- command = 0x80
+ACPI: EC: ~~~> interrupt
+ACPI: EC: ---> status = 0x08
+ACPI: EC: <--- data = 0xa4
+...
+ACPI: Interpreter enabled
+ACPI: (supports S0 S3 S4 S5)
+ACPI: Using IOAPIC for interrupt routing
+ACPI: EC: ---> status = 0x00
+ACPI: EC: transaction start
+ACPI: EC: <--- command = 0x80
+
+
+Signed-off-by: Thomas Renninger
+Acked-by: jbaron@redhat.com
+Acked-by: Pekka Enberg
+CC: linux-acpi@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman
+---
+
+diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c
+index 44ce66b..a687d90 100644
+--- a/lib/dynamic_debug.c
++++ b/lib/dynamic_debug.c
+@@ -748,13 +748,14 @@ static void ddebug_remove_all_tables(void)
+ mutex_unlock(&ddebug_lock);
+ }
+
+-static int __init dynamic_debug_init(void)
++static __initdata int ddebug_init_success;
++
++static int __init dynamic_debug_init_debugfs(void)
+ {
+ struct dentry *dir, *file;
+- struct _ddebug *iter, *iter_start;
+- const char *modname = NULL;
+- int ret = 0;
+- int n = 0;
++
++ if (!ddebug_init_success)
++ return -ENODEV;
+
+ dir = debugfs_create_dir("dynamic_debug", NULL);
+ if (!dir)
+@@ -765,6 +766,16 @@ static int __init dynamic_debug_init(void)
+ debugfs_remove(dir);
+ return -ENOMEM;
+ }
++ return 0;
++}
++
++static int __init dynamic_debug_init(void)
++{
++ struct _ddebug *iter, *iter_start;
++ const char *modname = NULL;
++ int ret = 0;
++ int n = 0;
++
+ if (__start___verbose != __stop___verbose) {
+ iter = __start___verbose;
+ modname = iter->modname;
+@@ -795,11 +806,13 @@ static int __init dynamic_debug_init(void)
+ }
+
+ out_free:
+- if (ret) {
++ if (ret)
+ ddebug_remove_all_tables();
+- debugfs_remove(dir);
+- debugfs_remove(file);
+- }
++ else
++ ddebug_init_success = 1;
+ return 0;
+ }
+-module_init(dynamic_debug_init);
++/* Allow early initialization for boot messages via boot param */
++arch_initcall(dynamic_debug_init);
++/* Debugfs setup must be done later */
++module_init(dynamic_debug_init_debugfs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/dynamic_debug_4.patch new/patches.drivers/dynamic_debug_4.patch
--- old/patches.drivers/dynamic_debug_4.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/dynamic_debug_4.patch 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,356 @@
+From: Thomas Renninger
+Subject: Dynamic Debug: Introduce global fake module param module.ddebug - V4
+References: none
+Patch-Mainline: queued for 2.6.37 (in a Greg tree, no idea which)
+
+Dynamic Debug allows enabling of pr_debug and dev_dbg messages at runtime.
+This is controlled via /sys/kernel/debug/dynamic_debug/control.
+One major drawback is that the whole initialization of a module cannot be
+tracked, because ddebug is only aware of debug strings of loaded modules.
+But this is the most interesting part...
+
+This patch introduces a fake module parameter module.ddebug(not shown in
+/sys/module/*/parameters, thus it does not use any resources/memory).
+
+If a module passes ddebug as a module parameter (e.g. via module.ddebug
+kernel boot param or via "modprobe module ddebug"), all debug strings of this
+module get activated by issuing "module module_name +p" internally
+(not via sysfs) when the module gets loaded.
+
+Possible enhancements for the future if ddebug might get extended with
+further flags:
+module.ddebug=flags
+Then module.ddebug="p" would be the same as module.ddebug, but if there
+is a "x" ddebug flag added, one could pass:
+module.ddebug="xp"
+which would result in such a dynamic debug query:
+module module_name +xp
+
+Modules must not use "ddebug" as module parameter or it will get ignored.
+If it's tried, a warning will show up at module load time that it will get
+ignored (only works for not built-in modules).
+
+Tested with (additional added pr_debug messages):
+options hp-wmi ddebug
+in modprobe.conf
+-> works and pr_debug messages issued at module initialization time show
+up. Also "p" flag gets set for the whole hp-wmi module:
+grep hp-wmi /sys/../dynamic_debug/control
+also tested with compiled-in modules, e.g. pnp.ddebug and an additional
+patch later in the patch series which instruments pnp code to work with ddebug.
+
+Signed-off-by: Thomas Renninger
+CC: Bjorn Helgaas
+CC: Jason Baron
+CC: Greg KH
+CC: lkml
+
+
+---
+ Documentation/dynamic-debug-howto.txt | 28 ++++++++++
+ include/linux/dynamic_debug.h | 15 +++++
+ include/linux/moduleparam.h | 3 +
+ kernel/module.c | 1
+ kernel/params.c | 15 ++++-
+ lib/dynamic_debug.c | 91 ++++++++++++++++++++++++++++++++--
+ 6 files changed, 147 insertions(+), 6 deletions(-)
+
+Index: linux-2.6.35-master/Documentation/dynamic-debug-howto.txt
+===================================================================
+--- linux-2.6.35-master.orig/Documentation/dynamic-debug-howto.txt
++++ linux-2.6.35-master/Documentation/dynamic-debug-howto.txt
+@@ -213,7 +213,7 @@ Note also that there is no convenient sy
+ the flags at once, you need to use "-psc".
+
+
+-Debug messages during boot process
++Debug Messages during Boot Process
+ ==================================
+
+ To be able to activate debug messages during the boot process,
+@@ -232,6 +232,32 @@ PCI (or other devices) initialization al
+ this boot parameter for debugging purposes.
+
+
++Debug Messages at Module Initialization Time
++============================================
++
++Enabling debug messages inside a module is only possible if the module itself
++is loaded already. If you unload a module, the dynamic debug flags associated
++to its debug messages are lost.
++Therefore, enabling debug messages that get processed at module initialization
++time through the <debugfs>/dynamic_debug/control interface is not possible.
++Instead, a "ddebug" module paramter can be passed:
++
++ - via kernel boot parameter:
++ module.ddebug
++
++ - as an ordinary module parameter via modprobe
++ modprobe module ddebug
++
++ - or the parameter can be used permanently via modprobe.conf(.local)
++ options module ddebug
++
++The ddebug option is not implemented as an ordinary module parameter and thus
++will not show up in /sys/module/module_name/parameters/ddebug
++The settings can get reverted through the sysfs interface again when the
++module got loaded as soon as debug messages are not needed anymore:
++echo "module module_name -p" > <debugfs>/dynamic_debug/control
++as described in the "Command Language Reference" chapter above.
++
+ Examples
+ ========
+
+Index: linux-2.6.35-master/include/linux/dynamic_debug.h
+===================================================================
+--- linux-2.6.35-master.orig/include/linux/dynamic_debug.h
++++ linux-2.6.35-master/include/linux/dynamic_debug.h
+@@ -39,8 +39,13 @@ struct _ddebug {
+ int ddebug_add_module(struct _ddebug *tab, unsigned int n,
+ const char *modname);
+
++struct kernel_param;
++
+ #if defined(CONFIG_DYNAMIC_DEBUG)
+ extern int ddebug_remove_module(const char *mod_name);
++extern int ddebug_exec_query(char *query_string);
++extern void ddebug_module_parse_args(const char *name, char* args,
++ struct kernel_param *params, unsigned num);
+
+ #define __dynamic_dbg_enabled(dd) ({ \
+ int __ret = 0; \
+@@ -77,6 +82,15 @@ static inline int ddebug_remove_module(c
+ {
+ return 0;
+ }
++static inline int ddebug_exec_query(char *query_string)
++{
++ return 0;
++}
++static inline void ddebug_module_parse_args(const char *name, char* args,
++ struct kernel_param *params,
++ unsigned num)
++{
++}
+
+ #define dynamic_pr_debug(fmt, ...) \
+ do { if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); } while (0)
+Index: linux-2.6.35-master/include/linux/moduleparam.h
+===================================================================
+--- linux-2.6.35-master.orig/include/linux/moduleparam.h
++++ linux-2.6.35-master/include/linux/moduleparam.h
+@@ -405,4 +405,7 @@ static inline void module_param_sysfs_re
+ { }
+ #endif
+
++/* For being able to parse parameters the same way params.c does */
++extern char *next_arg(char *args, char **param, char **val);
++
+ #endif /* _LINUX_MODULE_PARAMS_H */
+Index: linux-2.6.35-master/kernel/module.c
+===================================================================
+--- linux-2.6.35-master.orig/kernel/module.c
++++ linux-2.6.35-master/kernel/module.c
+@@ -2701,6 +2701,7 @@ static struct module *load_module(void _
+ list_add_rcu(&mod->list, &modules);
+ mutex_unlock(&module_mutex);
+
++ ddebug_module_parse_args(mod->name, mod->args, mod->kp, mod->num_kp);
+ /* Module is ready to execute: parsing args may do that. */
+ err = parse_args(mod->name, mod->args, mod->kp, mod->num_kp, NULL);
+ if (err < 0)
+Index: linux-2.6.35-master/kernel/params.c
+===================================================================
+--- linux-2.6.35-master.orig/kernel/params.c
++++ linux-2.6.35-master/kernel/params.c
+@@ -91,6 +91,7 @@ static int parse_one(char *param,
+ {
+ unsigned int i;
+ int err;
++ char *tmp;
+
+ /* Find parameter */
+ for (i = 0; i < num_params; i++) {
+@@ -107,6 +108,16 @@ static int parse_one(char *param,
+ }
+ }
+
++ /*
++ * Ignore ddebug module params and module.ddebug boot params:
++ * Documentation/dynamic-debug-howto.txt
++ */
++ tmp = strstr(param, ".ddebug");
++ if (parameq(param, "ddebug") || (tmp && strlen(tmp) == 7)) {
++ DEBUGP("Ignoring ddebug parameter %s\n", param);
++ return 0;
++ }
++
+ if (handle_unknown) {
+ DEBUGP("Unknown argument: calling %p\n", handle_unknown);
+ return handle_unknown(param, val);
+@@ -118,7 +129,7 @@ static int parse_one(char *param,
+
+ /* You can use " around spaces, but can't escape ". */
+ /* Hyphens and underscores equivalent in parameter names. */
+-static char *next_arg(char *args, char **param, char **val)
++char *next_arg(char *args, char **param, char **val)
+ {
+ unsigned int i, equals = 0;
+ int in_quote = 0, quoted = 0;
+@@ -178,7 +189,6 @@ int parse_args(const char *name,
+ char *param, *val;
+
+ DEBUGP("Parsing ARGS: %s\n", args);
+-
+ /* Chew leading spaces */
+ args = skip_spaces(args);
+
+Index: linux-2.6.35-master/lib/dynamic_debug.c
+===================================================================
+--- linux-2.6.35-master.orig/lib/dynamic_debug.c
++++ linux-2.6.35-master/lib/dynamic_debug.c
+@@ -10,6 +10,7 @@
+ */
+
+ #include
++#include
+ #include
+ #include
+ #include
+@@ -27,9 +28,13 @@
+ #include
+ #include
+
++#include
++
+ extern struct _ddebug __start___verbose[];
+ extern struct _ddebug __stop___verbose[];
+
++#define DDEBUG_STRING_SIZE 1024
++
+ /* dynamic_debug_enabled, and dynamic_debug_enabled2 are bitmasks in which
+ * bit n is set to 1 if any modname hashes into the bucket n, 0 otherwise. They
+ * use independent hash functions, to reduce the chance of false positives.
+@@ -429,7 +434,7 @@ static int ddebug_parse_flags(const char
+ return 0;
+ }
+
+-static int ddebug_exec_query(char *query_string)
++int ddebug_exec_query(char *query_string)
+ {
+ unsigned int flags = 0, mask = 0;
+ struct ddebug_query query;
+@@ -437,6 +442,9 @@ static int ddebug_exec_query(char *query
+ int nwords;
+ char *words[MAXWORDS];
+
++ if (verbose)
++ printk(KERN_INFO "%s: got query: %s\n", __func__, query_string);
++
+ nwords = ddebug_tokenize(query_string, words, MAXWORDS);
+ if (nwords <= 0)
+ return -EINVAL;
+@@ -450,10 +458,10 @@ static int ddebug_exec_query(char *query
+ return 0;
+ }
+
+-static __initdata char ddebug_setup_string[1024];
++static __initdata char ddebug_setup_string[DDEBUG_STRING_SIZE];
+ static __init int ddebug_setup_query(char *str)
+ {
+- if (strlen(str) >= 1024) {
++ if (strlen(str) >= DDEBUG_STRING_SIZE) {
+ pr_warning("ddebug boot param string too large\n");
+ return 0;
+ }
+@@ -704,6 +712,81 @@ int ddebug_add_module(struct _ddebug *ta
+ }
+ EXPORT_SYMBOL_GPL(ddebug_add_module);
+
++/* We search for *ddebug* module params */
++void ddebug_module_parse_args(const char *name, char* args,
++ struct kernel_param *params, unsigned num)
++{
++ char *ddebug, *param, *val, *args_it, *arg_dup_ptr;
++ int i;
++
++ /*
++ * We must not modify the passed args string and need to store the
++ * kstrdup pointer to be able to free memory later, TBD: find a way
++ * to do this nicer
++ */
++ arg_dup_ptr = args_it = kstrdup(args, GFP_KERNEL);
++ ddebug = kzalloc(DDEBUG_STRING_SIZE, GFP_KERNEL);
++ if (verbose)
++ printk(KERN_INFO "%s: Parsing ARGS: -%s- of %s\n",
++ __func__, args_it, name);
++
++ for (i = 0; i < num; i++) {
++ if (!strcmp("ddebug", params[i].name))
++ pr_warning("Module %s uses reserved keyword "
++ "*ddebug* as parameter\n", name);
++ }
++
++ /* Chew leading spaces */
++ args_it = skip_spaces(args_it);
++
++ while (*args_it) {
++ args_it = next_arg(args_it, ¶m, &val);
++ if (verbose)
++ printk(KERN_INFO "%s: Param: %s, val: %s\n",
++ __func__, param, val);
++ if (!strcmp(param, "ddebug")) {
++ pr_info("Enabling debugging for module %s\n", name);
++ snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s +p",
++ name);
++ ddebug_exec_query(ddebug);
++ }
++ }
++ kfree(arg_dup_ptr);
++ kfree(ddebug);
++}
++
++/* We search for module.ddebug kernel boot params */
++static void __init ddebug_boot_parse_args(void)
++{
++ char *param, *val, *tmp, *args_it, *arg_dup_ptr;
++ char module[MODULE_NAME_LEN], *ddebug;
++
++ /* next_arg touches the passed buffer and chops each argument */
++ arg_dup_ptr = args_it = kstrdup(saved_command_line, GFP_KERNEL);
++
++ ddebug = kzalloc(DDEBUG_STRING_SIZE, GFP_KERNEL);
++
++ /* Chew leading spaces */
++ args_it = skip_spaces(args_it);
++
++ while (*args_it) {
++ args_it = next_arg(args_it, ¶m, &val);
++ if (verbose)
++ printk(KERN_INFO "%s: Param: %s, val: %s\n",
++ __func__, param, val);
++ tmp = strstr(param, ".ddebug");
++ if (tmp && strlen(tmp) == 7) {
++ strlcpy(module, param, tmp - param + 1);
++ pr_info("Enabling debugging for module %s\n", module);
++ snprintf(ddebug, DDEBUG_STRING_SIZE, "module %s +p",
++ module);
++ ddebug_exec_query(ddebug);
++ }
++ }
++ kfree(ddebug);
++ kfree(arg_dup_ptr);
++}
++
+ static void ddebug_table_free(struct ddebug_table *dt)
+ {
+ list_del_init(&dt->link);
+@@ -805,6 +888,8 @@ static int __init dynamic_debug_init(voi
+ ddebug_setup_string);
+ }
+
++ ddebug_boot_parse_args();
++
+ out_free:
+ if (ret)
+ ddebug_remove_all_tables();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/dynamic_debug_5.patch new/patches.drivers/dynamic_debug_5.patch
--- old/patches.drivers/dynamic_debug_5.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/dynamic_debug_5.patch 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,95 @@
+From: Thomas Renninger
+Subject: PNP: Compile all pnp built-in stuff in one module namespace
+References: none
+Patch-Mainline: queued for 2.6.37 (in a Greg tree, no idea which)
+
+
+before, dynamic debug info (/sys/kernel/debug/dynamic_debug/control) showed
+the file name as module name of each dynamic debug message (in square brackets):
+drivers/pnp/core.c:198 [core]pnp_add_device p "%s device, IDs%s (%s)\012"
+drivers/pnp/resource.c:619 [resource]pnp_add_bus_resource p " add %pr\012"
+..
+drivers/pnp/pnpacpi/core.c:89 [core]pnpacpi_set_resources p "set resources\012"
+..
+
+With this patch the module name will be pnp for all "drivers/pnp/* -r" code:
+drivers/pnp/core.c:198 [pnp]pnp_add_device p "%s device, IDs%s (%s)\012"
+drivers/pnp/resource.c:619 [pnp]pnp_add_bus_resource p " add %pr\012"
+..
+drivers/pnp/pnpacpi/core.c:112 [pnp]pnpacpi_disable_resources p "disable resources\012"
+
+This has advantages:
+ - Any pnp code can make use of the moduleparam.h interface, the modules
+ will show up as pnp.param.
+ - Passing pnp.ddebug as kernel boot param will enable all pnp debug messages
+ with my previous patch and CONFIG_DYNAMIC_DEBUG enabled.
+
+
+Signed-off-by: Thomas Renninger
+CC: Bjorn Helgaas
+CC: Jason Baron
+CC: Greg KH
+CC: lkml
+
+diff --git a/drivers/pnp/Makefile b/drivers/pnp/Makefile
+index 8de3775..bfba893 100644
+--- a/drivers/pnp/Makefile
++++ b/drivers/pnp/Makefile
+@@ -2,11 +2,13 @@
+ # Makefile for the Linux Plug-and-Play Support.
+ #
+
+-obj-y := core.o card.o driver.o resource.o manager.o support.o interface.o quirks.o
++obj-y := pnp.o
++
++pnp-y := core.o card.o driver.o resource.o manager.o support.o interface.o quirks.o
+
+ obj-$(CONFIG_PNPACPI) += pnpacpi/
+ obj-$(CONFIG_PNPBIOS) += pnpbios/
+ obj-$(CONFIG_ISAPNP) += isapnp/
+
+ # pnp_system_init goes after pnpacpi/pnpbios init
+-obj-y += system.o
++pnp-y += system.o
+diff --git a/drivers/pnp/isapnp/Makefile b/drivers/pnp/isapnp/Makefile
+index cac18bb..6e607aa 100644
+--- a/drivers/pnp/isapnp/Makefile
++++ b/drivers/pnp/isapnp/Makefile
+@@ -1,7 +1,7 @@
+ #
+ # Makefile for the kernel ISAPNP driver.
+ #
++obj-y += pnp.o
++pnp-y := core.o compat.o
+
+-isapnp-proc-$(CONFIG_PROC_FS) = proc.o
+-
+-obj-y := core.o compat.o $(isapnp-proc-y)
++pnp-$(CONFIG_PROC_FS) += proc.o
+diff --git a/drivers/pnp/pnpacpi/Makefile b/drivers/pnp/pnpacpi/Makefile
+index 905326f..40c93da 100644
+--- a/drivers/pnp/pnpacpi/Makefile
++++ b/drivers/pnp/pnpacpi/Makefile
+@@ -1,5 +1,6 @@
+ #
+ # Makefile for the kernel PNPACPI driver.
+ #
++obj-y += pnp.o
+
+-obj-y := core.o rsparser.o
++pnp-y := core.o rsparser.o
+diff --git a/drivers/pnp/pnpbios/Makefile b/drivers/pnp/pnpbios/Makefile
+index 3cd3ed7..240b0ff 100644
+--- a/drivers/pnp/pnpbios/Makefile
++++ b/drivers/pnp/pnpbios/Makefile
+@@ -1,7 +1,8 @@
+ #
+ # Makefile for the kernel PNPBIOS driver.
+ #
++obj-y := pnp.o
+
+-pnpbios-proc-$(CONFIG_PNPBIOS_PROC_FS) = proc.o
++pnp-y := core.o bioscalls.o rsparser.o
+
+-obj-y := core.o bioscalls.o rsparser.o $(pnpbios-proc-y)
++pnp-$(CONFIG_PNPBIOS_PROC_FS) += proc.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/dynamic_debug_6.patch new/patches.drivers/dynamic_debug_6.patch
--- old/patches.drivers/dynamic_debug_6.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/dynamic_debug_6.patch 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,75 @@
+From: Thomas Renninger
+Subject: PNP: Use dev_dbg instead of dev_printk(KERN_DEBUG.. if DYNAMIC_DEBUG is compiled in
+References: none
+Patch-Mainline: queued for 2.6.37 (in a Greg tree, no idea which)
+
+This allows usage of generic pnp.ddebug debug parameter instead of pnp.debug
+PNP specific parameter.
+
+I wonder whether CONFIG_PNP_DEBUG_MESSAGES can vanish totally with this or
+at some time. Only advantage having it is:
+If you are restricted and your kernel must not exceed X bytes, you cannot compile
+in PNP debug messages only, but you have to compile in all debug messages.
+
+Signed-off-by: Thomas Renninger
+CC: Bjorn Helgaas
+CC: Jason Baron
+CC: Greg KH
+CC: lkml
+
+diff --git a/drivers/pnp/base.h b/drivers/pnp/base.h
+index 0bab84e..1f7f9bd 100644
+--- a/drivers/pnp/base.h
++++ b/drivers/pnp/base.h
+@@ -170,12 +170,16 @@ struct pnp_resource *pnp_add_bus_resource(struct pnp_dev *dev,
+ resource_size_t start,
+ resource_size_t end);
+
+-extern int pnp_debug;
+-
++#if defined(CONFIG_DYNAMIC_DEBUG)
++#define pnp_dbg(dev, format, arg...) \
++ ({ dev_dbg(dev, format, ## arg); 0; })
++#else
+ #if defined(CONFIG_PNP_DEBUG_MESSAGES)
++extern int pnp_debug;
+ #define pnp_dbg(dev, format, arg...) \
+ ({ if (pnp_debug) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; })
+ #else
+ #define pnp_dbg(dev, format, arg...) \
+ ({ if (0) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; })
+ #endif
++#endif
+diff --git a/drivers/pnp/core.c b/drivers/pnp/core.c
+index 88b3cde..fe834ac 100644
+--- a/drivers/pnp/core.c
++++ b/drivers/pnp/core.c
+@@ -215,9 +215,21 @@ static int __init pnp_init(void)
+
+ subsys_initcall(pnp_init);
+
+-int pnp_debug;
++#if defined(CONFIG_DYNAMIC_DEBUG)
++static int __init pnp_debug_setup(char *__unused)
++{
++ printk(KERN_INFO "DYNAMIC_DEBUG enabled use pnp.ddebug instead of "
++ "pnp.debug boot param\n");
++ return 1;
++}
++__setup("pnp.debug", pnp_debug_setup);
++
++#else
+
+ #if defined(CONFIG_PNP_DEBUG_MESSAGES)
++
++int pnp_debug;
++
+ static int __init pnp_debug_setup(char *__unused)
+ {
+ pnp_debug = 1;
+@@ -225,3 +237,5 @@ static int __init pnp_debug_setup(char *__unused)
+ }
+ __setup("pnp.debug", pnp_debug_setup);
+ #endif
++
++#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/dynamic_debug_7.patch new/patches.drivers/dynamic_debug_7.patch
--- old/patches.drivers/dynamic_debug_7.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/dynamic_debug_7.patch 2010-10-25 08:58:32.000000000 +0200
@@ -0,0 +1,51 @@
+From: Thomas Renninger
+Subject: kernel/module.c: Fix compiler warnings if debug is compiled in
+References: none
+Patch-Mainline: queued for 2.6.37 (in a Greg tree, no idea which)
+
+
+kernel/module.c: Fix compiler warnings if debug is compiled in
+
+Fixes these warnings:
+kernel/module.c: In function ‘layout_sections’:
+kernel/module.c:1776: error: ‘name’ undeclared (first use in this function)
+kernel/module.c:1776: error: (Each undeclared identifier is reported only once
+kernel/module.c:1776: error: for each function it appears in.)
+kernel/module.c: In function ‘move_module’:
+kernel/module.c:2394: warning: format ‘%lx’ expects type ‘long unsigned int’,
+but argument 2 has type ‘Elf64_Addr’
+
+if DEBUGP is defined in kernel/module.c
+
+Signed-off-by: Thomas Renninger
+CC: greg@kroah.com
+CC: jbaron@redhat.com
+
+
+---
+ kernel/module.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+Index: linux-2.6.35-master/kernel/module.c
+===================================================================
+--- linux-2.6.35-master.orig/kernel/module.c
++++ linux-2.6.35-master/kernel/module.c
+@@ -1846,7 +1846,6 @@ static void layout_sections(struct modul
+ || strstarts(sname, ".init"))
+ continue;
+ s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
+- DEBUGP("\t%s\n", name);
+ }
+ if (m == 0)
+ mod->core_text_size = mod->core_size;
+@@ -2463,8 +2462,8 @@ static int move_module(struct module *mo
+ memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
+ /* Update sh_addr to point to copy in image. */
+ shdr->sh_addr = (unsigned long)dest;
+- DEBUGP("\t0x%lx %s\n",
+- shdr->sh_addr, info->secstrings + shdr->sh_name);
++ DEBUGP("\t0x%p %s\n",
++ (void *)shdr->sh_addr, info->secstrings + shdr->sh_name);
+ }
+
+ return 0;
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/acpi_ec_sys_access_user_space_with_get_user.patch new/patches.fixes/acpi_ec_sys_access_user_space_with_get_user.patch
--- old/patches.fixes/acpi_ec_sys_access_user_space_with_get_user.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/acpi_ec_sys_access_user_space_with_get_user.patch 2010-09-24 13:23:13.000000000 +0200
@@ -0,0 +1,78 @@
+From: Vasiliy Kulikov
+Subject: acpi: ec_sys: access user space with get_user()/put_user()
+Patch-Mainline: hopefully still 2.6.36
+References: none
+
+User space pointer may not be dereferenced. Use get_user()/put_user()
+instead and check their return codes.
+
+Signed-off-by: Vasiliy Kulikov
+Signed-off-by: Thomas Renninger
+---
+ Compile tested.
+
+ drivers/acpi/ec_sys.c | 18 ++++++++++++++----
+ 1 files changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/acpi/ec_sys.c b/drivers/acpi/ec_sys.c
+index 0e869b3..cc007d8 100644
+--- a/drivers/acpi/ec_sys.c
++++ b/drivers/acpi/ec_sys.c
+@@ -11,6 +11,7 @@
+ #include
+ #include
+ #include
++#include
+ #include "internal.h"
+
+ MODULE_AUTHOR("Thomas Renninger ");
+@@ -43,7 +44,6 @@ static ssize_t acpi_ec_read_io(struct file *f, char __user *buf,
+ * struct acpi_ec *ec = ((struct seq_file *)f->private_data)->private;
+ */
+ unsigned int size = EC_SPACE_SIZE;
+- u8 *data = (u8 *) buf;
+ loff_t init_off = *off;
+ int err = 0;
+
+@@ -56,9 +56,15 @@ static ssize_t acpi_ec_read_io(struct file *f, char __user *buf,
+ size = count;
+
+ while (size) {
+- err = ec_read(*off, &data[*off - init_off]);
++ u8 byte_read;
++ err = ec_read(*off, &byte_read);
+ if (err)
+ return err;
++ if (put_user(byte_read, buf + *off - init_off)) {
++ if (*off - init_off)
++ return *off - init_off; /* partial read */
++ return -EFAULT;
++ }
+ *off += 1;
+ size--;
+ }
+@@ -74,7 +80,6 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
+
+ unsigned int size = count;
+ loff_t init_off = *off;
+- u8 *data = (u8 *) buf;
+ int err = 0;
+
+ if (*off >= EC_SPACE_SIZE)
+@@ -85,7 +90,12 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
+ }
+
+ while (size) {
+- u8 byte_write = data[*off - init_off];
++ u8 byte_write;
++ if (get_user(byte_write, buf + *off - init_off)) {
++ if (*off - init_off)
++ return *off - init_off; /* partial write */
++ return -EFAULT;
++ }
+ err = ec_write(*off, byte_write);
+ if (err)
+ return err;
+--
+1.7.0.4
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/compat-make-compat_alloc_user_space-incorporate-the-access_ok new/patches.fixes/compat-make-compat_alloc_user_space-incorporate-the-access_ok
--- old/patches.fixes/compat-make-compat_alloc_user_space-incorporate-the-access_ok 2010-09-16 20:58:38.000000000 +0200
+++ new/patches.fixes/compat-make-compat_alloc_user_space-incorporate-the-access_ok 1970-01-01 01:00:00.000000000 +0100
@@ -1,207 +0,0 @@
-From: H. Peter Anvin
-Date: Tue, 7 Sep 2010 23:16:18 +0000 (-0700)
-Subject: compat: Make compat_alloc_user_space() incorporate the access_ok()
-Git-commit: c41d68a513c71e35a14f66d71782d27a79a81ea6
-References: CVE-2010-3081 bnc#639709
-Patch-mainline: 2.6.36
-Introduced-by: Prior to 2.6.5
-
-compat: Make compat_alloc_user_space() incorporate the access_ok()
-
-compat_alloc_user_space() expects the caller to independently call
-access_ok() to verify the returned area. A missing call could
-introduce problems on some architectures.
-
-This patch incorporates the access_ok() check into
-compat_alloc_user_space() and also adds a sanity check on the length.
-The existing compat_alloc_user_space() implementations are renamed
-arch_compat_alloc_user_space() and are used as part of the
-implementation of the new global function.
-
-This patch assumes NULL will cause __get_user()/__put_user() to either
-fail or access userspace on all architectures. This should be
-followed by checking the return value of compat_access_user_space()
-for NULL in the callers, at which time the access_ok() in the callers
-can also be removed.
-
-Reported-by: Ben Hawkes
-Signed-off-by: H. Peter Anvin
-Acked-by: Benjamin Herrenschmidt
-Acked-by: Chris Metcalf
-Acked-by: David S. Miller
-Acked-by: Ingo Molnar
-Acked-by: Thomas Gleixner
-Acked-by: Tony Luck
-Cc: Andrew Morton
-Cc: Arnd Bergmann
-Cc: Fenghua Yu
-Cc: H. Peter Anvin
-Cc: Heiko Carstens
-Cc: Helge Deller
-Cc: James Bottomley
-Cc: Kyle McMartin
-Cc: Martin Schwidefsky
-Cc: Paul Mackerras
-Cc: Ralf Baechle
-Cc:
-Acked-by: Jeff Mahoney
----
-
- arch/ia64/include/asm/compat.h | 2 +-
- arch/mips/include/asm/compat.h | 2 +-
- arch/parisc/include/asm/compat.h | 2 +-
- arch/powerpc/include/asm/compat.h | 2 +-
- arch/s390/include/asm/compat.h | 2 +-
- arch/sparc/include/asm/compat.h | 2 +-
- arch/tile/include/asm/compat.h | 2 +-
- arch/x86/include/asm/compat.h | 2 +-
- include/linux/compat.h | 3 +++
- kernel/compat.c | 21 +++++++++++++++++++++
- 10 files changed, 32 insertions(+), 8 deletions(-)
-
-diff --git a/arch/ia64/include/asm/compat.h b/arch/ia64/include/asm/compat.h
-index f90edc8..9301a28 100644
---- a/arch/ia64/include/asm/compat.h
-+++ b/arch/ia64/include/asm/compat.h
-@@ -199,7 +199,7 @@ ptr_to_compat(void __user *uptr)
- }
-
- static __inline__ void __user *
--compat_alloc_user_space (long len)
-+arch_compat_alloc_user_space (long len)
- {
- struct pt_regs *regs = task_pt_regs(current);
- return (void __user *) (((regs->r12 & 0xffffffff) & -16) - len);
-diff --git a/arch/mips/include/asm/compat.h b/arch/mips/include/asm/compat.h
-index 613f691..dbc5106 100644
---- a/arch/mips/include/asm/compat.h
-+++ b/arch/mips/include/asm/compat.h
-@@ -145,7 +145,7 @@ static inline compat_uptr_t ptr_to_compat(void __user *uptr)
- return (u32)(unsigned long)uptr;
- }
-
--static inline void __user *compat_alloc_user_space(long len)
-+static inline void __user *arch_compat_alloc_user_space(long len)
- {
- struct pt_regs *regs = (struct pt_regs *)
- ((unsigned long) current_thread_info() + THREAD_SIZE - 32) - 1;
-diff --git a/arch/parisc/include/asm/compat.h b/arch/parisc/include/asm/compat.h
-index 02b77ba..efa0b60 100644
---- a/arch/parisc/include/asm/compat.h
-+++ b/arch/parisc/include/asm/compat.h
-@@ -147,7 +147,7 @@ static inline compat_uptr_t ptr_to_compat(void __user *uptr)
- return (u32)(unsigned long)uptr;
- }
-
--static __inline__ void __user *compat_alloc_user_space(long len)
-+static __inline__ void __user *arch_compat_alloc_user_space(long len)
- {
- struct pt_regs *regs = ¤t->thread.regs;
- return (void __user *)regs->gr[30];
-diff --git a/arch/powerpc/include/asm/compat.h b/arch/powerpc/include/asm/compat.h
-index 396d21a..a11d4ea 100644
---- a/arch/powerpc/include/asm/compat.h
-+++ b/arch/powerpc/include/asm/compat.h
-@@ -134,7 +134,7 @@ static inline compat_uptr_t ptr_to_compat(void __user *uptr)
- return (u32)(unsigned long)uptr;
- }
-
--static inline void __user *compat_alloc_user_space(long len)
-+static inline void __user *arch_compat_alloc_user_space(long len)
- {
- struct pt_regs *regs = current->thread.regs;
- unsigned long usp = regs->gpr[1];
-diff --git a/arch/s390/include/asm/compat.h b/arch/s390/include/asm/compat.h
-index 104f200..a875c2f 100644
---- a/arch/s390/include/asm/compat.h
-+++ b/arch/s390/include/asm/compat.h
-@@ -181,7 +181,7 @@ static inline int is_compat_task(void)
-
- #endif
-
--static inline void __user *compat_alloc_user_space(long len)
-+static inline void __user *arch_compat_alloc_user_space(long len)
- {
- unsigned long stack;
-
-diff --git a/arch/sparc/include/asm/compat.h b/arch/sparc/include/asm/compat.h
-index 5016f76..6f57325 100644
---- a/arch/sparc/include/asm/compat.h
-+++ b/arch/sparc/include/asm/compat.h
-@@ -167,7 +167,7 @@ static inline compat_uptr_t ptr_to_compat(void __user *uptr)
- return (u32)(unsigned long)uptr;
- }
-
--static inline void __user *compat_alloc_user_space(long len)
-+static inline void __user *arch_compat_alloc_user_space(long len)
- {
- struct pt_regs *regs = current_thread_info()->kregs;
- unsigned long usp = regs->u_regs[UREG_I6];
-diff --git a/arch/tile/include/asm/compat.h b/arch/tile/include/asm/compat.h
-index 5a34da6..345d81c 100644
---- a/arch/tile/include/asm/compat.h
-+++ b/arch/tile/include/asm/compat.h
-@@ -195,7 +195,7 @@ static inline unsigned long ptr_to_compat_reg(void __user *uptr)
- return (long)(int)(long __force)uptr;
- }
-
--static inline void __user *compat_alloc_user_space(long len)
-+static inline void __user *arch_compat_alloc_user_space(long len)
- {
- struct pt_regs *regs = task_pt_regs(current);
- return (void __user *)regs->sp - len;
-diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h
-index 306160e..1d9cd27 100644
---- a/arch/x86/include/asm/compat.h
-+++ b/arch/x86/include/asm/compat.h
-@@ -205,7 +205,7 @@ static inline compat_uptr_t ptr_to_compat(void __user *uptr)
- return (u32)(unsigned long)uptr;
- }
-
--static inline void __user *compat_alloc_user_space(long len)
-+static inline void __user *arch_compat_alloc_user_space(long len)
- {
- struct pt_regs *regs = task_pt_regs(current);
- return (void __user *)regs->sp - len;
-diff --git a/include/linux/compat.h b/include/linux/compat.h
-index 9ddc878..5778b55 100644
---- a/include/linux/compat.h
-+++ b/include/linux/compat.h
-@@ -360,5 +360,8 @@ extern ssize_t compat_rw_copy_check_uvector(int type,
- const struct compat_iovec __user *uvector, unsigned long nr_segs,
- unsigned long fast_segs, struct iovec *fast_pointer,
- struct iovec **ret_pointer);
-+
-+extern void __user *compat_alloc_user_space(unsigned long len);
-+
- #endif /* CONFIG_COMPAT */
- #endif /* _LINUX_COMPAT_H */
-diff --git a/kernel/compat.c b/kernel/compat.c
-index e167efc..c9e2ec0 100644
---- a/kernel/compat.c
-+++ b/kernel/compat.c
-@@ -1126,3 +1126,24 @@ compat_sys_sysinfo(struct compat_sysinfo __user *info)
-
- return 0;
- }
-+
-+/*
-+ * Allocate user-space memory for the duration of a single system call,
-+ * in order to marshall parameters inside a compat thunk.
-+ */
-+void __user *compat_alloc_user_space(unsigned long len)
-+{
-+ void __user *ptr;
-+
-+ /* If len would occupy more than half of the entire compat space... */
-+ if (unlikely(len > (((compat_uptr_t)~0) >> 1)))
-+ return NULL;
-+
-+ ptr = arch_compat_alloc_user_space(len);
-+
-+ if (unlikely(!access_ok(VERIFY_WRITE, ptr, len)))
-+ return NULL;
-+
-+ return ptr;
-+}
-+EXPORT_SYMBOL_GPL(compat_alloc_user_space);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drivers-net-cxgb3-cxgb3_main-c-prevent-reading-uninitialized-stack-memory new/patches.fixes/drivers-net-cxgb3-cxgb3_main-c-prevent-reading-uninitialized-stack-memory
--- old/patches.fixes/drivers-net-cxgb3-cxgb3_main-c-prevent-reading-uninitialized-stack-memory 2010-09-16 20:58:38.000000000 +0200
+++ new/patches.fixes/drivers-net-cxgb3-cxgb3_main-c-prevent-reading-uninitialized-stack-memory 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-From: Dan Rosenberg
-Subject: [PATCH] drivers/net/cxgb3/cxgb3_main.c: prevent reading uninitialized stack memory
-Patch-mainline: Submitted Sep 11, 2010
-References: CVE-2010-3296 bnc#639481
-Introduced-by: 2.6.21
-
-The CHELSIO_GET_QSET_NUM device ioctl allows unprivileged users to
-read 4 bytes of uninitialized stack memory, because the "addr" member
-of the ch_reg struct declared on the stack in cxgb_extension_ioctl()
-is not altered or zeroed before being copied back to the user. This
-patch takes care of it.
-
-Signed-off-by: Dan Rosenberg
-Acked-by: Jeff Mahoney
----
-
- drivers/net/cxgb3/cxgb3_main.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/cxgb3/cxgb3_main.c
-+++ b/drivers/net/cxgb3/cxgb3_main.c
-@@ -2296,6 +2296,8 @@ static int cxgb_extension_ioctl(struct n
- case CHELSIO_GET_QSET_NUM:{
- struct ch_reg edata;
-
-+ memset(&edata, 0, sizeof(struct ch_reg));
-+
- edata.cmd = CHELSIO_GET_QSET_NUM;
- edata.val = pi->nqsets;
- if (copy_to_user(useraddr, &edata, sizeof(edata)))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drivers-net-eql-c-prevent-reading-uninitialized-stack-memory new/patches.fixes/drivers-net-eql-c-prevent-reading-uninitialized-stack-memory
--- old/patches.fixes/drivers-net-eql-c-prevent-reading-uninitialized-stack-memory 2010-09-16 20:58:38.000000000 +0200
+++ new/patches.fixes/drivers-net-eql-c-prevent-reading-uninitialized-stack-memory 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-From: Dan Rosenberg
-Subject: [PATCH] drivers/net/eql.c: prevent reading uninitialized stack memory
-Patch-mainline: Submitted Sep 11, 2010
-References: CVE-2010-3297 bnc#639482
-Introduced-by: Prior to 2.6.5
-
-The EQL_GETMASTRCFG device ioctl allows unprivileged users to read 16
-bytes of uninitialized stack memory, because the "master_name" member
-of the master_config_t struct declared on the stack in
-eql_g_master_cfg() is not altered or zeroed before being copied back
-to the user. This patch takes care of it.
-
-Signed-off-by: Dan Rosenberg
-Acked-by: Jeff Mahoney
----
-
- drivers/net/eql.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/eql.c
-+++ b/drivers/net/eql.c
-@@ -555,6 +555,8 @@ static int eql_g_master_cfg(struct net_d
- equalizer_t *eql;
- master_config_t mc;
-
-+ memset(&mc, 0, sizeof(master_config_t));
-+
- if (eql_is_master(dev)) {
- eql = netdev_priv(dev);
- mc.max_slaves = eql->max_slaves;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drivers-net-usb-hso-c-prevent-reading-uninitialized-memory new/patches.fixes/drivers-net-usb-hso-c-prevent-reading-uninitialized-memory
--- old/patches.fixes/drivers-net-usb-hso-c-prevent-reading-uninitialized-memory 2010-09-16 20:58:38.000000000 +0200
+++ new/patches.fixes/drivers-net-usb-hso-c-prevent-reading-uninitialized-memory 1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-From: Dan Rosenberg
-Subject: [PATCH] drivers/net/usb/hso.c: prevent reading uninitialized memory
-References: CVE-2010-3298 bnc#639483
-Patch-mainline: Submitted Sep 11, 2010
-Introduced-by: 2.6.29
-
-The TIOCGICOUNT device ioctl allows unprivileged users to read 9 bytes
-of uninitialized stack memory, because the "reserved" member of the
-serial_icounter_struct struct declared on the stack in hso_get_count()
-is not altered or zeroed before being copied back to the user. This
-patch takes care of it.
-
-Signed-off-by: Dan Rosenberg
-Acked-by: Jeff Mahoney
----
-
- drivers/net/usb/hso.c | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/drivers/net/usb/hso.c
-+++ b/drivers/net/usb/hso.c
-@@ -1652,6 +1652,8 @@ static int hso_get_count(struct hso_seri
- struct uart_icount cnow;
- struct hso_tiocmget *tiocmget = serial->tiocmget;
-
-+ memset(&icount, 0, sizeof(struct serial_icounter_struct));
-+
- if (!tiocmget)
- return -ENOENT;
- spin_lock_irq(&serial->serial_lock);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/x86-64-compat-retruncate-rax-after-ia32-syscall-entry-tracing new/patches.fixes/x86-64-compat-retruncate-rax-after-ia32-syscall-entry-tracing
--- old/patches.fixes/x86-64-compat-retruncate-rax-after-ia32-syscall-entry-tracing 2010-09-16 20:58:38.000000000 +0200
+++ new/patches.fixes/x86-64-compat-retruncate-rax-after-ia32-syscall-entry-tracing 1970-01-01 01:00:00.000000000 +0100
@@ -1,53 +0,0 @@
-From: Roland McGrath
-Date: Tue, 14 Sep 2010 19:22:58 +0000 (-0700)
-Subject: x86-64, compat: Retruncate rax after ia32 syscall entry tracing
-Git-commit: eefdca043e8391dcd719711716492063030b55ac
-References: CVE-2010-3301 bnc#639708
-Patch-mainline: 2.6.36
-Introduced-by: 2.6.27
-
-x86-64, compat: Retruncate rax after ia32 syscall entry tracing
-
-In commit d4d6715, we reopened an old hole for a 64-bit ptracer touching a
-32-bit tracee in system call entry. A %rax value set via ptrace at the
-entry tracing stop gets used whole as a 32-bit syscall number, while we
-only check the low 32 bits for validity.
-
-Fix it by truncating %rax back to 32 bits after syscall_trace_enter,
-in addition to testing the full 64 bits as has already been added.
-
-Reported-by: Ben Hawkes
-Signed-off-by: Roland McGrath
-Signed-off-by: H. Peter Anvin
-Acked-by: Jeff Mahoney
----
-
- arch/x86/ia32/ia32entry.S | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
-index 84e3a4e..518bb99 100644
---- a/arch/x86/ia32/ia32entry.S
-+++ b/arch/x86/ia32/ia32entry.S
-@@ -50,7 +50,12 @@
- /*
- * Reload arg registers from stack in case ptrace changed them.
- * We don't reload %eax because syscall_trace_enter() returned
-- * the value it wants us to use in the table lookup.
-+ * the %rax value we should see. Instead, we just truncate that
-+ * value to 32 bits again as we did on entry from user mode.
-+ * If it's a new value set by user_regset during entry tracing,
-+ * this matches the normal truncation of the user-mode value.
-+ * If it's -1 to make us punt the syscall, then (u32)-1 is still
-+ * an appropriately invalid value.
- */
- .macro LOAD_ARGS32 offset, _r9=0
- .if \_r9
-@@ -60,6 +65,7 @@
- movl \offset+48(%rsp),%edx
- movl \offset+56(%rsp),%esi
- movl \offset+64(%rsp),%edi
-+ movl %eax,%eax /* zero extension */
- .endm
-
- .macro CFI_STARTPROC32 simple
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/x86-64-compat-test-rax-for-the-syscall-number-not-eax new/patches.fixes/x86-64-compat-test-rax-for-the-syscall-number-not-eax
--- old/patches.fixes/x86-64-compat-test-rax-for-the-syscall-number-not-eax 2010-09-16 20:58:38.000000000 +0200
+++ new/patches.fixes/x86-64-compat-test-rax-for-the-syscall-number-not-eax 1970-01-01 01:00:00.000000000 +0100
@@ -1,101 +0,0 @@
-From: H. Peter Anvin
-Date: Tue, 14 Sep 2010 19:42:41 +0000 (-0700)
-Subject: x86-64, compat: Test %rax for the syscall number, not %eax
-Git-commit: 36d001c70d8a0144ac1d038f6876c484849a74de
-References: CVE-2010-3301 bnc#639708
-Patch-mainline: 2.6.36
-Introduced-by: 2.6.27
-
-x86-64, compat: Test %rax for the syscall number, not %eax
-
-On 64 bits, we always, by necessity, jump through the system call
-table via %rax. For 32-bit system calls, in theory the system call
-number is stored in %eax, and the code was testing %eax for a valid
-system call number. At one point we loaded the stored value back from
-the stack to enforce zero-extension, but that was removed in checkin
-d4d67150165df8bf1cc05e532f6efca96f907cab. An actual 32-bit process
-will not be able to introduce a non-zero-extended number, but it can
-happen via ptrace.
-
-Instead of re-introducing the zero-extension, test what we are
-actually going to use, i.e. %rax. This only adds a handful of REX
-prefixes to the code.
-
-Reported-by: Ben Hawkes
-Signed-off-by: H. Peter Anvin
-Cc:
-Cc: Roland McGrath
-Cc: Andrew Morton
-Acked-by: Jeff Mahoney
----
-
- arch/x86/ia32/ia32entry.S | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
-index b86feab..84e3a4e 100644
---- a/arch/x86/ia32/ia32entry.S
-+++ b/arch/x86/ia32/ia32entry.S
-@@ -153,7 +153,7 @@ ENTRY(ia32_sysenter_target)
- testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
- CFI_REMEMBER_STATE
- jnz sysenter_tracesys
-- cmpl $(IA32_NR_syscalls-1),%eax
-+ cmpq $(IA32_NR_syscalls-1),%rax
- ja ia32_badsys
- sysenter_do_call:
- IA32_ARG_FIXUP
-@@ -195,7 +195,7 @@ sysexit_from_sys_call:
- movl $AUDIT_ARCH_I386,%edi /* 1st arg: audit arch */
- call audit_syscall_entry
- movl RAX-ARGOFFSET(%rsp),%eax /* reload syscall number */
-- cmpl $(IA32_NR_syscalls-1),%eax
-+ cmpq $(IA32_NR_syscalls-1),%rax
- ja ia32_badsys
- movl %ebx,%edi /* reload 1st syscall arg */
- movl RCX-ARGOFFSET(%rsp),%esi /* reload 2nd syscall arg */
-@@ -248,7 +248,7 @@ sysenter_tracesys:
- call syscall_trace_enter
- LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */
- RESTORE_REST
-- cmpl $(IA32_NR_syscalls-1),%eax
-+ cmpq $(IA32_NR_syscalls-1),%rax
- ja int_ret_from_sys_call /* sysenter_tracesys has set RAX(%rsp) */
- jmp sysenter_do_call
- CFI_ENDPROC
-@@ -314,7 +314,7 @@ ENTRY(ia32_cstar_target)
- testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
- CFI_REMEMBER_STATE
- jnz cstar_tracesys
-- cmpl $IA32_NR_syscalls-1,%eax
-+ cmpq $IA32_NR_syscalls-1,%rax
- ja ia32_badsys
- cstar_do_call:
- IA32_ARG_FIXUP 1
-@@ -367,7 +367,7 @@ cstar_tracesys:
- LOAD_ARGS32 ARGOFFSET, 1 /* reload args from stack in case ptrace changed it */
- RESTORE_REST
- xchgl %ebp,%r9d
-- cmpl $(IA32_NR_syscalls-1),%eax
-+ cmpq $(IA32_NR_syscalls-1),%rax
- ja int_ret_from_sys_call /* cstar_tracesys has set RAX(%rsp) */
- jmp cstar_do_call
- END(ia32_cstar_target)
-@@ -425,7 +425,7 @@ ENTRY(ia32_syscall)
- orl $TS_COMPAT,TI_status(%r10)
- testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r10)
- jnz ia32_tracesys
-- cmpl $(IA32_NR_syscalls-1),%eax
-+ cmpq $(IA32_NR_syscalls-1),%rax
- ja ia32_badsys
- ia32_do_call:
- IA32_ARG_FIXUP
-@@ -444,7 +444,7 @@ ia32_tracesys:
- call syscall_trace_enter
- LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */
- RESTORE_REST
-- cmpl $(IA32_NR_syscalls-1),%eax
-+ cmpq $(IA32_NR_syscalls-1),%rax
- ja int_ret_from_sys_call /* ia32_tracesys has set RAX(%rsp) */
- jmp ia32_do_call
- END(ia32_syscall)
++++++ patches.kernel.org.tar.bz2 ++++++
kernel-source/patches.kernel.org.tar.bz2 kernel-source/patches.kernel.org.tar.bz2 differ: char 11, line 1
++++++ patches.rpmify.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.rpmify/qla4xx-missing-readq-definition new/patches.rpmify/qla4xx-missing-readq-definition
--- old/patches.rpmify/qla4xx-missing-readq-definition 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.rpmify/qla4xx-missing-readq-definition 2010-09-21 21:41:15.000000000 +0200
@@ -0,0 +1,38 @@
+From: Jeff Mahoney
+Subject: qla4xxx: add workaround for missing readq/writeq
+Patch-mainline: submitted Sep 21, 2010
+
+ Commit f4f5df23 added support for ISP82XX devices but unconditionally
+ used readq/writeq without defining it for architectures that don't
+ support it natively.
+
+ This patch copies the readq/writeq definitions from the qla2xxx driver
+ to allow the code to build on e.g. ppc32 hardware.
+
+Signed-off-by: Jeff Mahoney
+---
+ drivers/scsi/qla4xxx/ql4_nx.h | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+--- a/drivers/scsi/qla4xxx/ql4_nx.h
++++ b/drivers/scsi/qla4xxx/ql4_nx.h
+@@ -776,4 +776,19 @@ struct crb_addr_pair {
+ #define MIU_TEST_AGT_WRDATA_UPPER_LO (0x0b0)
+ #define MIU_TEST_AGT_WRDATA_UPPER_HI (0x0b4)
+
++#ifndef readq
++static inline u64 readq(void __iomem *addr)
++{
++ return readl(addr) | (((u64) readl(addr + 4)) << 32LL);
++}
++#endif
++
++#ifndef writeq
++static inline void writeq(u64 val, void __iomem *addr)
++{
++ writel(((u32) (val)), (addr));
++ writel(((u32) (val >> 32)), (addr + 4));
++}
++#endif
++
+ #endif
++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/SoN-05-reserve-slub.patch new/patches.suse/SoN-05-reserve-slub.patch
--- old/patches.suse/SoN-05-reserve-slub.patch 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.suse/SoN-05-reserve-slub.patch 2010-10-21 10:11:03.000000000 +0200
@@ -23,8 +23,10 @@
mm/slub.c | 41 ++++++++++++++++++++++++++-----
4 files changed, 103 insertions(+), 16 deletions(-)
---- a/include/linux/slub_def.h
-+++ b/include/linux/slub_def.h
+Index: linux-2.6.35-master/include/linux/slub_def.h
+===================================================================
+--- linux-2.6.35-master.orig/include/linux/slub_def.h
++++ linux-2.6.35-master/include/linux/slub_def.h
@@ -39,6 +39,7 @@ struct kmem_cache_cpu {
void **freelist; /* Pointer to first free per cpu object */
struct page *page; /* The slab from which we are allocating */
@@ -33,8 +35,10 @@
#ifdef CONFIG_SLUB_STATS
unsigned stat[NR_SLUB_STAT_ITEMS];
#endif
---- a/mm/slab.c
-+++ b/mm/slab.c
+Index: linux-2.6.35-master/mm/slab.c
+===================================================================
+--- linux-2.6.35-master.orig/mm/slab.c
++++ linux-2.6.35-master/mm/slab.c
@@ -120,6 +120,8 @@
#include
#include
@@ -238,8 +242,10 @@
x = cache_grow(cachep, flags | GFP_THISNODE, nodeid, NULL);
if (x)
goto retry;
---- a/mm/slob.c
-+++ b/mm/slob.c
+Index: linux-2.6.35-master/mm/slob.c
+===================================================================
+--- linux-2.6.35-master.orig/mm/slob.c
++++ linux-2.6.35-master/mm/slob.c
@@ -71,6 +71,7 @@
#include
@@ -298,8 +304,10 @@
/* Not enough space: must allocate a new page */
if (!b) {
b = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
---- a/mm/slub.c
-+++ b/mm/slub.c
+Index: linux-2.6.35-master/mm/slub.c
+===================================================================
+--- linux-2.6.35-master.orig/mm/slub.c
++++ linux-2.6.35-master/mm/slub.c
@@ -27,6 +27,8 @@
#include
#include
@@ -382,11 +390,10 @@
if (!(gfpflags & __GFP_NOWARN) && printk_ratelimit())
slab_out_of_memory(s, gfpflags, node);
return NULL;
--debug:
-- if (!alloc_debug_processing(s, c->page, object, addr))
+
-+slow_path:
-+ if (PageSlubDebug(c->page) &&
+ debug:
+- if (!alloc_debug_processing(s, c->page, object, addr))
++ if (kmem_cache_debug(s) &&
+ !alloc_debug_processing(s, c->page, object, addr))
goto another_slab;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/SoN-22-netvm.patch new/patches.suse/SoN-22-netvm.patch
--- old/patches.suse/SoN-22-netvm.patch 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.suse/SoN-22-netvm.patch 2010-10-21 10:11:03.000000000 +0200
@@ -9,13 +9,14 @@
Skip taps, since those are user-space again.
+Signed-off-by: Jiri Slaby [lock imbalance fix]
Signed-off-by: Peter Zijlstra
Signed-off-by: Suresh Jayaraman
---
- include/net/sock.h | 5 +++++
- net/core/dev.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
- net/core/sock.c | 16 ++++++++++++++++
- 3 files changed, 69 insertions(+), 2 deletions(-)
+ include/net/sock.h | 5 ++++
+ net/core/dev.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++----
+ net/core/sock.c | 16 +++++++++++++++
+ 3 files changed, 72 insertions(+), 4 deletions(-)
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -107,8 +108,8 @@
list_for_each_entry_rcu(ptype, &ptype_all, list) {
if (ptype->dev == null_or_orig || ptype->dev == skb->dev ||
ptype->dev == orig_dev) {
-@@ -2891,13 +2931,17 @@ static int __netif_receive_skb(struct sk
- }
+@@ -2884,13 +2924,17 @@ static int __netif_receive_skb(struct sk
+ }
}
+skip_taps:
@@ -126,7 +127,16 @@
/* Handle special case of bridge or macvlan */
rx_handler = rcu_dereference(skb->dev->rx_handler);
if (rx_handler) {
-@@ -2930,6 +2973,7 @@ ncls:
+@@ -2900,7 +2944,7 @@ ncls:
+ }
+ skb = rx_handler(skb);
+ if (!skb)
+- goto out;
++ goto unlock;
+ }
+
+ /*
+@@ -2930,6 +2974,7 @@ ncls:
if (pt_prev) {
ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
} else {
@@ -134,7 +144,7 @@
kfree_skb(skb);
/* Jamal, now you will not able to escape explaining
* me how you were going to use this. :-)
-@@ -2937,8 +2981,10 @@ ncls:
+@@ -2937,8 +2982,10 @@ ncls:
ret = NET_RX_DROP;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/SoN-27-nfs-swap_ops.patch new/patches.suse/SoN-27-nfs-swap_ops.patch
--- old/patches.suse/SoN-27-nfs-swap_ops.patch 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.suse/SoN-27-nfs-swap_ops.patch 2010-10-21 10:11:03.000000000 +0200
@@ -159,7 +159,7 @@
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -591,6 +591,8 @@ void rpc_task_set_client(struct rpc_task
- kref_get(&clnt->cl_kref);
+ atomic_inc(&clnt->cl_count);
if (clnt->cl_softrtry)
task->tk_flags |= RPC_TASK_SOFT;
+ if (task->tk_client->cl_xprt->swapper)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/SoN-31-fix-null-pointer-dereference new/patches.suse/SoN-31-fix-null-pointer-dereference
--- old/patches.suse/SoN-31-fix-null-pointer-dereference 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/SoN-31-fix-null-pointer-dereference 2010-10-21 10:11:03.000000000 +0200
@@ -0,0 +1,37 @@
+From: Xiaotian Feng
+Subject: fix null pointer deref in swap_entry_free
+Patch-mainline: Not yet
+
+Commit b3a27d uses p->bdev->bd_disk, this will lead a null pointer
+deref with swap over nfs.
+
+Signed-off-by: Xiaotian Feng
+Signed-off-by: Suresh Jayaraman
+--
+Index: linux-2.6.35-master/mm/swapfile.c
+===================================================================
+--- linux-2.6.35-master.orig/mm/swapfile.c
++++ linux-2.6.35-master/mm/swapfile.c
+@@ -574,7 +574,6 @@ static unsigned char swap_entry_free(str
+
+ /* free if no reference */
+ if (!usage) {
+- struct gendisk *disk = p->bdev->bd_disk;
+ if (offset < p->lowest_bit)
+ p->lowest_bit = offset;
+ if (offset > p->highest_bit)
+@@ -584,9 +583,11 @@ static unsigned char swap_entry_free(str
+ swap_list.next = p->type;
+ nr_swap_pages++;
+ p->inuse_pages--;
+- if ((p->flags & SWP_BLKDEV) &&
+- disk->fops->swap_slot_free_notify)
+- disk->fops->swap_slot_free_notify(p->bdev, offset);
++ if (p->flags & SWP_BLKDEV) {
++ struct gendisk *disk = p->bdev->bd_disk;
++ if (disk->fops->swap_slot_free_notify)
++ disk->fops->swap_slot_free_notify(p->bdev, offset);
++ }
+ }
+
+ return usage;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/SoN-32-fix-kernel-bug-with-multiple-swapfiles new/patches.suse/SoN-32-fix-kernel-bug-with-multiple-swapfiles
--- old/patches.suse/SoN-32-fix-kernel-bug-with-multiple-swapfiles 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/SoN-32-fix-kernel-bug-with-multiple-swapfiles 2010-10-21 10:11:03.000000000 +0200
@@ -0,0 +1,45 @@
+From: Xiaotian Feng
+Subject: fix mess up on swap with multi files from same nfs server
+Patch-mainline: Not yet
+
+xs_swapper() will set xprt->swapper when swapon nfs files, unset xprt->swapper
+when swapoff nfs files. This will lead a bug if we swapon multi files from
+the same nfs server, they had the same xprt, then the reserved memory could
+not be disconnected when we swapoff all files.
+
+Signed-off-by: Xiaotian Feng
+---
+Index: linux-2.6.35-master/include/linux/sunrpc/xprt.h
+===================================================================
+--- linux-2.6.35-master.orig/include/linux/sunrpc/xprt.h
++++ linux-2.6.35-master/include/linux/sunrpc/xprt.h
+@@ -172,8 +172,8 @@ struct rpc_xprt {
+ unsigned int max_reqs; /* total slots */
+ unsigned long state; /* transport state */
+ unsigned char shutdown : 1, /* being shut down */
+- resvport : 1, /* use a reserved port */
+- swapper : 1; /* we're swapping over this
++ resvport : 1; /* use a reserved port */
++ unsigned int swapper; /* we're swapping over this
+ transport */
+ unsigned int bind_index; /* bind function index */
+
+Index: linux-2.6.35-master/net/sunrpc/xprtsock.c
+===================================================================
+--- linux-2.6.35-master.orig/net/sunrpc/xprtsock.c
++++ linux-2.6.35-master/net/sunrpc/xprtsock.c
+@@ -1665,11 +1665,11 @@ int xs_swapper(struct rpc_xprt *xprt, in
+ */
+ err = sk_adjust_memalloc(1, RPC_RESERVE_PAGES);
+ if (!err) {
+- xprt->swapper = 1;
++ xprt->swapper++;
+ xs_set_memalloc(xprt);
+ }
+ } else if (xprt->swapper) {
+- xprt->swapper = 0;
++ xprt->swapper--;
+ sk_clear_memalloc(transport->inet);
+ sk_adjust_memalloc(-1, -RPC_RESERVE_PAGES);
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/cgroup-disable-memory.patch new/patches.suse/cgroup-disable-memory.patch
--- old/patches.suse/cgroup-disable-memory.patch 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.suse/cgroup-disable-memory.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,89 +0,0 @@
-From: Balbir Singh
-Date: Thu, 01 May 2008 02:48:58 -0700
-Subject: memcg: disable the memory controller by default
-Patch-mainline: not yet
-
-Due to the overhead of the memory controller the memory controller is now
-disabled by default. This patch adds cgroup_enable.
-
-[akpm@linux-foundation.org: `inline __init' doesn't make sense]
-Signed-off-by: Balbir Singh
-Cc: AMAMOTO Takashi
-Acked-by: Paul Menage
-Cc: Pavel Emelianov
-Acked-by: KAMEZAWA Hiroyuki
-Cc:
-Signed-off-by: Andrew Morton
-Signed-off-by: Jiri Slaby
----
-
- Documentation/kernel-parameters.txt | 3 +++
- kernel/cgroup.c | 17 +++++++++++++----
- mm/memcontrol.c | 1 +
- 3 files changed, 17 insertions(+), 4 deletions(-)
-
---- a/Documentation/kernel-parameters.txt
-+++ b/Documentation/kernel-parameters.txt
-@@ -425,8 +425,11 @@ and is between 256 and 4096 characters.
- See Documentation/s390/CommonIO for details.
-
- cgroup_disable= [KNL] Disable a particular controller
-+ cgroup_enable= [KNL] Enable a particular controller
-+ For both cgroup_enable and cgroup_enable
- Format: {name of the controller(s) to disable}
- {Currently supported controllers - "memory"}
-+ {Memory controller is disabled by default}
-
- checkreqprot [SELINUX] Set initial checkreqprot flag value.
- Format: { "0" | "1" }
---- a/kernel/cgroup.c
-+++ b/kernel/cgroup.c
-@@ -4432,7 +4432,7 @@ static void cgroup_release_agent(struct
- mutex_unlock(&cgroup_mutex);
- }
-
--static int __init cgroup_disable(char *str)
-+static int __init cgroup_turnonoff(char *str, int disable)
- {
- int i;
- char *token;
-@@ -4448,17 +4448,26 @@ static int __init cgroup_disable(char *s
- struct cgroup_subsys *ss = subsys[i];
-
- if (!strcmp(token, ss->name)) {
-- ss->disabled = 1;
-- printk(KERN_INFO "Disabling %s control group"
-- " subsystem\n", ss->name);
-+ ss->disabled = disable;
- break;
- }
- }
- }
- return 1;
- }
-+
-+static int __init cgroup_disable(char *str)
-+{
-+ return cgroup_turnonoff(str, 1);
-+}
- __setup("cgroup_disable=", cgroup_disable);
-
-+static int __init cgroup_enable(char *str)
-+{
-+ return cgroup_turnonoff(str, 0);
-+}
-+__setup("cgroup_enable=", cgroup_enable);
-+
- /*
- * Functons for CSS ID.
- */
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -4716,6 +4716,7 @@ struct cgroup_subsys mem_cgroup_subsys =
- .attach = mem_cgroup_move_task,
- .early_init = 0,
- .use_id = 1,
-+ .disabled = 1,
- };
-
- #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/linux-2.6.29-kms-after-sata.patch new/patches.suse/linux-2.6.29-kms-after-sata.patch
--- old/patches.suse/linux-2.6.29-kms-after-sata.patch 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.suse/linux-2.6.29-kms-after-sata.patch 2010-10-21 10:11:03.000000000 +0200
@@ -43,4 +43,4 @@
+
obj-$(CONFIG_ATM) += atm/
obj-$(CONFIG_FUSION) += message/
- obj-$(CONFIG_FIREWIRE) += firewire/
+ obj-y += firewire/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/uvcvideo-ignore-hue-control-for-5986-0241.patch new/patches.suse/uvcvideo-ignore-hue-control-for-5986-0241.patch
--- old/patches.suse/uvcvideo-ignore-hue-control-for-5986-0241.patch 2010-09-14 15:10:08.000000000 +0200
+++ new/patches.suse/uvcvideo-ignore-hue-control-for-5986-0241.patch 2010-10-21 10:11:03.000000000 +0200
@@ -48,10 +48,10 @@
--- a/drivers/media/video/uvc/uvcvideo.h
+++ b/drivers/media/video/uvc/uvcvideo.h
@@ -182,6 +182,7 @@ struct uvc_xu_control {
- #define UVC_QUIRK_IGNORE_SELECTOR_UNIT 0x00000020
#define UVC_QUIRK_FIX_BANDWIDTH 0x00000080
#define UVC_QUIRK_PROBE_DEF 0x00000100
-+#define UVC_QUIRK_HUE_EPIPE 0x00000200
+ #define UVC_QUIRK_RESTRICT_FRAME_RATE 0x00000200
++#define UVC_QUIRK_HUE_EPIPE 0x00000400
/* Format flags */
#define UVC_FMT_FLAG_COMPRESSED 0x00000001
++++++ patches.xen.tar.bz2 ++++++
++++ 66066 lines of diff (skipped)
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:45.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:45.000000000 +0200
@@ -27,10 +27,6 @@
# DO NOT MODIFY THEM!
# Send separate patches upstream if you find a problem...
########################################################
- patches.kernel.org/patch-2.6.36-rc1
- patches.kernel.org/patch-2.6.36-rc1-rc2
- patches.kernel.org/patch-2.6.36-rc2-rc3
- patches.kernel.org/patch-2.6.36-rc3-rc4
########################################################
# Build fixes that apply to the vanilla kernel too.
@@ -39,6 +35,7 @@
########################################################
patches.rpmify/tioca-fix-assignment-from-incompatible-pointer-warnings
patches.rpmify/ia64-mca-fix-cast-from-integer-to-pointer-warning
+ patches.rpmify/qla4xx-missing-readq-definition
########################################################
# kABI consistency patches
@@ -91,7 +88,6 @@
patches.fixes/make-note_interrupt-fast.diff
patches.fixes/twl6030-fix-note_interrupt-call
- patches.fixes/compat-make-compat_alloc_user_space-incorporate-the-access_ok
########################################################
# Architecture-specific patches. These used to be all
@@ -135,8 +131,6 @@
patches.arch/kvm-replace-kvm-io-delay-pv-ops-with-linux-magic
patches.suse/x86-mark_rodata_rw.patch
- patches.fixes/x86-64-compat-retruncate-rax-after-ia32-syscall-entry-tracing
- patches.fixes/x86-64-compat-test-rax-for-the-syscall-number-not-eax
########################################################
# x86 MCE/MCA (Machine Check Error/Architecture) extensions
@@ -262,6 +256,10 @@
patches.arch/acpi_srat-pxm-rev-ia64.patch
patches.arch/acpi_srat-pxm-rev-x86-64.patch
+ # Queued for 2.6.36 -> just revert after some time
+ patches.fixes/acpi_ec_sys_access_user_space_with_get_user.patch
+
+ patches.arch/acpi_ec_delay_param.patch
########################################################
# CPUFREQ
########################################################
@@ -428,6 +426,8 @@
patches.suse/SoN-28-nfs-alloc-recursions.patch
patches.suse/SoN-29-fix-swap_sync_page-race
patches.suse/SoN-30-fix-uninitialized-var.patch
+ patches.suse/SoN-31-fix-null-pointer-dereference
+ patches.suse/SoN-32-fix-kernel-bug-with-multiple-swapfiles
# don't want to rediff SoN until this gets more testing
patches.suse/slab-handle-memoryless-nodes-v2a.patch
@@ -447,6 +447,15 @@
patches.drivers/disable-catas_reset-by-default-to-avoid-problems-with-eeh.patch
+ # Queued for 2.6.37 -> just revert after some time
+ patches.drivers/dynamic_debug_1.patch
+ patches.drivers/dynamic_debug_2.patch
+ patches.drivers/dynamic_debug_3.patch
+ patches.drivers/dynamic_debug_4.patch
+ patches.drivers/dynamic_debug_5.patch
+ patches.drivers/dynamic_debug_6.patch
+ patches.drivers/dynamic_debug_7.patch
+
########################################################
# Storage
########################################################
@@ -504,9 +513,6 @@
patches.drivers/tg3-entropy-source.patch
patches.drivers/tg3-5785-and-57780-asic-revs-not-working.patch
- patches.fixes/drivers-net-eql-c-prevent-reading-uninitialized-stack-memory
- patches.fixes/drivers-net-cxgb3-cxgb3_main-c-prevent-reading-uninitialized-stack-memory
- patches.fixes/drivers-net-usb-hso-c-prevent-reading-uninitialized-memory
########################################################
@@ -552,6 +558,9 @@
##########################################################
# Sound
##########################################################
+ patches.drivers/alsa-hda-01-Fix-wrong-SPDIF-NID-assignment-for-CA0110
+ patches.drivers/alsa-hda-02-Add-some-workarounds-for-Creative-IBG
+ patches.drivers/alsa-hda-03-Add-workarounds-for-CT-IBG-controllers
########################################################
# Other driver fixes
@@ -609,6 +618,10 @@
##########################################################
# AppArmor
##########################################################
+ patches.apparmor/apparmor-compatibility-patch-for-v5-network-control
+ patches.apparmor/apparmor-compatibility-patch-for-v5-interface
+ patches.apparmor/apparmor-allow-dfa-backward-compatibility-with-broken-userspace
+
########################################################
# Address space layout randomization
@@ -648,7 +661,6 @@
########################################################
# cgroups
########################################################
- patches.suse/cgroup-disable-memory.patch
########################################################
# audit subsystem
@@ -770,8 +782,7 @@
patches.xen/xen3-patch-2.6.33
patches.xen/xen3-patch-2.6.34
patches.xen/xen3-patch-2.6.35
- patches.xen/xen3-patch-2.6.36-rc3
- patches.xen/xen3-patch-2.6.36-rc4
+ patches.xen/xen3-patch-2.6.36
patches.xen/xen3-seccomp-disable-tsc-option
patches.xen/xen3-x86-mcp51-no-dac
patches.xen/xen3-x86-mark_rodata_rw.patch
@@ -782,7 +793,6 @@
patches.xen/xen3-x86_64-unwind-annotations
# bugfixes and enhancements
- patches.xen/xen-device-names
patches.xen/xen-balloon-max-target
patches.xen/xen-modular-blktap
patches.xen/xen-blkback-bimodal-suse
@@ -804,12 +814,13 @@
patches.xen/xen-configurable-guest-devices
patches.xen/xen-netback-nr-irqs
patches.xen/xen-netback-notify-multi
+ patches.xen/xen-netback-sched-list-remove
patches.xen/xen-netback-generalize
patches.xen/xen-netback-multiple-tasklets
patches.xen/xen-netback-kernel-threads
patches.xen/xen-netback-extend-pull
patches.xen/xen-netback-allow-large-mtu
- patches.xen/xen-netfront-ethtool
+ patches.xen/xen-tmem-v1
patches.xen/xen-dcdbas
patches.xen/xen-floppy
patches.xen/xen-kzalloc
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.zCp8TR/_old 2010-10-28 13:04:45.000000000 +0200
+++ /var/tmp/diff_new_pack.zCp8TR/_new 2010-10-28 13:04:45.000000000 +0200
@@ -1,3 +1,3 @@
-2010-09-16 20:58:38 +0200
-GIT Revision: fb77404ee89e0c39edfd61cc9fe6a64ad1fb39b7
+2010-10-26 21:31:22 +0200
+GIT Revision: 9035254381cf8ac062ed5e6d1f517206e40ca124
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