Hello community, here is the log from the commit of package kernel-source checked in at Tue Oct 28 00:21:20 CET 2008. -------- --- kernel-source/kernel-debug.changes 2008-10-24 17:43:49.000000000 +0200 +++ /d/STABLE/kernel-source/kernel-debug.changes 2008-10-27 19:55:19.000000000 +0100 @@ -1,0 +2,73 @@ +Mon Oct 27 14:13:04 CET 2008 - trenn@suse.de + +- patches.arch/x86_uv_early_detect.patch: Delete hacks that were + necessary while waiting for x2apic code. (bnc#429984). + +------------------------------------------------------------------- +Mon Oct 27 11:46:43 CET 2008 - tj@suse.de + +Refresh the govault patch. + +- patches.drivers/libata-add-waits-for-govault: libata: add + waits for GoVault (bnc#246451). + +------------------------------------------------------------------- +Sun Oct 26 18:48:09 CET 2008 - bwalle@suse.de + +- patches.fixes/kdb-oops-panic.diff: + Fix NULL pointer dereference when regs == NULL (bnc#439007). +- patches.fixes/hpwdt-kdump.diff: + Fix kdump when using hpwdt (bnc#436786). + +------------------------------------------------------------------- +Sun Oct 26 06:58:29 CET 2008 - gregkh@suse.de + +- refresh patches to apply cleanly and properly. + +------------------------------------------------------------------- +Sun Oct 26 06:44:24 CET 2008 - gregkh@suse.de + +- Update to 2.6.27.4 + +------------------------------------------------------------------- +Sat Oct 25 20:47:27 CEST 2008 - agruen@suse.de + +- Fix the dependencies between the split kernel packages and KMPs + (FATE 303631). +- Fix for kernel paclages which are not split. +- rpm/kernel-source.spec.in: Update list of scripts to include. + +------------------------------------------------------------------- +Sat Oct 25 18:36:05 CEST 2008 - jjolly@suse.de + +- patches.arch/s390-02-02-smp-sysdev.patch: kernel: sysdev class + file creation (bnc#434333) +- patches.arch/s390-02-03-zfcp.patch: Fix zfcp problems that have + been found (bnc#434333) +- patches.arch/s390-02-04-qeth-mac.patch: qeth: use firmware + MAC-address for layer2 hsi-devices (bnc#434333) +- patches.arch/s390-02-05-qeth-recovery.patch: qeth: qeth recovery + fails (bnc#434333) +- patches.arch/s390-02-06-qeth-offset.patch: qeth: fix offset error + in non prealloc header path (bnc#434333,LTC#48840) +- patches.arch/s390-02-07-qeth-ipv6check.patch: qeth: remove + unnecessary support ckeck in sysfs route6 (bnc#434333) +- patches.arch/s390-02-08-qeth-panic.patch: qeth: avoid + skb_under_panic for malformatted inbound data (bnc#434333) +- patches.arch/s390-02-09-tape-lock.patch: tape device driver: + improve locking (bnc#434333) + +------------------------------------------------------------------- +Sat Oct 25 11:51:28 CEST 2008 - neilb@suse.de + +- patches.kernel.org/touch_mnt_namespace-when-the-mount-flags-change.patch: + touch_mnt_namespace when the mount flags change (FATE#304218). + +------------------------------------------------------------------- +Fri Oct 24 23:57:11 CEST 2008 - gregkh@suse.de + +- Updated to 2.6.27.4-rc3: + - fixed ath5k suspend/resume regression + - fixed pvrusb2 so it actually works + +------------------------------------------------------------------- @@ -622 +695 @@ -Thu Oct 16 23:57:16 CEST 2008 - mfasheh@suse.com +Fri Oct 17 00:57:16 CEST 2008 - mfasheh@suse.com kernel-default.changes: same change kernel-dummy.changes: same change kernel-kdump.changes: same change kernel-pae.changes: same change kernel-ppc64.changes: same change kernel-ps3.changes: same change kernel-rt.changes: same change kernel-rt_debug.changes: same change kernel-s390.changes: same change kernel-source.changes: same change kernel-source-rt.changes: same change kernel-syms.changes: same change kernel-syms-rt.changes: same change kernel-trace.changes: same change kernel-vanilla.changes: same change kernel-xen.changes: same change calling whatdependson for head-i586 Old: ---- make-symsets New: ---- list-exported-symbols split-into-symsets ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:03.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:03.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-debug (Version 2.6.27.3) +# spec file for package kernel-debug (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-debug debug $(case debug in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/debug$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-debug Summary: A Debug Version of the Kernel -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch %ix86 %else @@ -149,8 +149,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -215,12 +216,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-debug-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-debug-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -299,7 +300,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-debug +KERNELRELEASE=2.6.27.4-$RELEASE-debug EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -459,6 +460,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -469,20 +476,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-debug.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/debug # so that kernel-source + kernel-debug is sufficient for building # modules that have modversions as well. @@ -606,6 +599,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-debug.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -700,7 +726,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -737,7 +763,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-default.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:03.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:03.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-default (Version 2.6.27.3) +# spec file for package kernel-default (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-default default $(case default in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/default$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-default Summary: The Standard Kernel -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch %ix86 Provides: k_athlon k_debug k_deflt k_deflt_22 k_deflt_24 k_eide k_laptop k_orig k_pentiu k_pos_ibm k_psmp k_smp k_smp_22 k_smp_24 smp kernel-smp @@ -168,8 +168,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -233,12 +234,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-default-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-default-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -317,7 +318,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-default +KERNELRELEASE=2.6.27.4-$RELEASE-default EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -477,6 +478,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -487,20 +494,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-default.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/default # so that kernel-source + kernel-default is sufficient for building # modules that have modversions as well. @@ -624,6 +617,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-default.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -717,7 +743,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -753,7 +779,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-dummy.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:04.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:04.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-dummy (Version 2.6.27.3) +# spec file for package kernel-dummy (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -22,8 +22,8 @@ Name: kernel-dummy Summary: Internal dummy package for synchronizing release numbers -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel AutoReqProv: off @@ -36,7 +36,7 @@ -------- Andreas Gruenbacher <agruen@suse.de> -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %install rm -rf %buildroot ++++++ kernel-kdump.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:04.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:04.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-kdump (Version 2.6.27.3) +# spec file for package kernel-kdump (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-kdump kdump $(case kdump in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/kdump$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-kdump Summary: kernel for kdump -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch ppc %else @@ -146,8 +146,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -214,12 +215,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-kdump-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-kdump-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -298,7 +299,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-kdump +KERNELRELEASE=2.6.27.4-$RELEASE-kdump EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -458,6 +459,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -468,20 +475,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-kdump.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/kdump # so that kernel-source + kernel-kdump is sufficient for building # modules that have modversions as well. @@ -605,6 +598,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-kdump.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -701,7 +727,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -740,7 +766,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:05.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:05.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-pae (Version 2.6.27.3) +# spec file for package kernel-pae (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-pae pae $(case pae in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/pae$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-pae Summary: Kernel with PAE Support -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif Provides: k_smp4G kernel-bigsmp Obsoletes: k_smp4G kernel-bigsmp @@ -143,8 +143,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -215,12 +216,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-pae-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-pae-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -299,7 +300,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-pae +KERNELRELEASE=2.6.27.4-$RELEASE-pae EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -459,6 +460,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -469,20 +476,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-pae.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/pae # so that kernel-source + kernel-pae is sufficient for building # modules that have modversions as well. @@ -606,6 +599,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-pae.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -706,7 +732,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -749,7 +775,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-ppc64.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:06.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:06.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-ppc64 (Version 2.6.27.3) +# spec file for package kernel-ppc64 (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-ppc64 ppc64 $(case ppc64 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/ppc64$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-ppc64 Summary: Kernel for ppc64 Systems -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch ppc Provides: kernel-pmac64 kernel-pseries64 kernel-iseries64 @@ -148,8 +148,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -227,12 +228,12 @@ Tom Gall <tom_gall@vnet.ibm.com> see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-ppc64-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-ppc64-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -311,7 +312,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-ppc64 +KERNELRELEASE=2.6.27.4-$RELEASE-ppc64 EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -471,6 +472,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -481,20 +488,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-ppc64.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/ppc64 # so that kernel-source + kernel-ppc64 is sufficient for building # modules that have modversions as well. @@ -618,6 +611,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-ppc64.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -725,7 +751,7 @@ Tom Gall <tom_gall@vnet.ibm.com> see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -775,7 +801,7 @@ Tom Gall <tom_gall@vnet.ibm.com> see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-ps3.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:06.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:06.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-ps3 (Version 2.6.27.3) +# spec file for package kernel-ps3 (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-ps3 ps3 $(case ps3 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/ps3$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-ps3 Summary: kernel for ps3 bootloader -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch ppc %else @@ -146,8 +146,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -213,12 +214,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-ps3-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-ps3-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -297,7 +298,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-ps3 +KERNELRELEASE=2.6.27.4-$RELEASE-ps3 EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -457,6 +458,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -467,20 +474,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-ps3.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/ps3 # so that kernel-source + kernel-ps3 is sufficient for building # modules that have modversions as well. @@ -604,6 +597,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-ps3.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -697,7 +723,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -733,7 +759,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-rt_debug.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:07.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:07.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-rt_debug (Version 2.6.27.3) +# spec file for package kernel-rt_debug (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-rt_debug rt_debug $(case rt_debug in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/rt_debug$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-rt_debug Summary: A Debug Version of the Kernel -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch %ix86 %else @@ -146,8 +146,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -212,12 +213,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-rt_debug-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-rt_debug-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -296,7 +297,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-rt_debug +KERNELRELEASE=2.6.27.4-$RELEASE-rt_debug EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -456,6 +457,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -466,20 +473,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-rt_debug.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/rt_debug # so that kernel-source + kernel-rt_debug is sufficient for building # modules that have modversions as well. @@ -603,6 +596,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-rt_debug.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -697,7 +723,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -734,7 +760,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-rt.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:07.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:08.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-rt (Version 2.6.27.3) +# spec file for package kernel-rt (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-rt rt $(case rt in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/rt$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-rt Summary: The Realtime Linux Kernel -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch %ix86 %else @@ -146,8 +146,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -217,12 +218,12 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-rt-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-rt-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -301,7 +302,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-rt +KERNELRELEASE=2.6.27.4-$RELEASE-rt EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -461,6 +462,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -471,20 +478,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-rt.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/rt # so that kernel-source + kernel-rt is sufficient for building # modules that have modversions as well. @@ -608,6 +601,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-rt.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -707,7 +733,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -749,7 +775,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-s390.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:08.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:08.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-s390 (Version 2.6.27.3) +# spec file for package kernel-s390 (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-s390 s390 $(case s390 in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/s390$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-s390 Summary: The Standard Kernel -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif Provides: kernel-32bit k_deflt Obsoletes: kernel-32bit k_deflt @@ -143,8 +143,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -208,12 +209,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-s390-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-s390-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -292,7 +293,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-s390 +KERNELRELEASE=2.6.27.4-$RELEASE-s390 EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -452,6 +453,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -462,20 +469,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-s390.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/s390 # so that kernel-source + kernel-s390 is sufficient for building # modules that have modversions as well. @@ -599,6 +592,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-s390.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -692,7 +718,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -728,7 +754,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-source-rt.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:09.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:09.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-source-rt (Version 2.6.27.3) +# spec file for package kernel-source-rt (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -29,8 +29,8 @@ Name: kernel-source-rt Summary: The Linux Kernel Sources, including the real-time patches -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: Development/Sources AutoReqProv: off @@ -42,7 +42,7 @@ %endif ExclusiveArch: %ix86 x86_64 Provides: linux -Provides: kernel-source-rt = 2.6.27.3-%source_rel +Provides: kernel-source-rt = 2.6.27.4-%source_rel %if "kernel-source-rt" == "kernel-source" Provides: linux lx_suse lx_sus22 lx_sus24 Obsoletes: linux lx-gdt lx-hack lx-suse lx1162_1 lx1162_2 lx1212_1 lx1212_2 lx1213_1 lx1213_2 lx121_1 lx121_2 lx126_1 lx126_2 lx129_1 lx129_2 lx_large kernel_headers lx_suse lx_sus22 lx_sus24 @@ -66,8 +66,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source47: extract-modaliases @@ -120,7 +121,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -137,7 +138,7 @@ while [ "$RELEASE" != "${RELEASE#[^0-9]*.}" ]; do RELEASE=${RELEASE#[^0-9]*.} done -KERNELRELEASE=2.6.27.3-$RELEASE +KERNELRELEASE=2.6.27.4-$RELEASE case kernel-source-rt in (*-rt) variant=-rt @@ -164,7 +165,7 @@ > .patches for patch in $(< .patches); do if ! patch -s -F0 -E -p1 --no-backup-if-mismatch \ - -i %_builddir/kernel-source-rt-2.6.27.3/$patch; then + -i %_builddir/kernel-source-rt-2.6.27.4/$patch; then echo "*** Patch $patch failed ***" exit 1 fi ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:10.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:10.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-source (Version 2.6.27.3) +# spec file for package kernel-source (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -29,8 +29,8 @@ Name: kernel-source Summary: The Linux Kernel Sources -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: Development/Sources AutoReqProv: off @@ -42,7 +42,7 @@ %endif ExclusiveArch: %ix86 ppc ppc64 s390 s390x ia64 x86_64 Provides: linux -Provides: kernel-source = 2.6.27.3-%source_rel +Provides: kernel-source = 2.6.27.4-%source_rel %if "kernel-source" == "kernel-source" Provides: linux lx_suse lx_sus22 lx_sus24 Obsoletes: linux lx-gdt lx-hack lx-suse lx1162_1 lx1162_2 lx1212_1 lx1212_2 lx1213_1 lx1213_2 lx121_1 lx121_2 lx126_1 lx126_2 lx129_1 lx129_2 lx_large kernel_headers lx_suse lx_sus22 lx_sus24 @@ -66,8 +66,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source47: extract-modaliases @@ -120,7 +121,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then @@ -137,7 +138,7 @@ while [ "$RELEASE" != "${RELEASE#[^0-9]*.}" ]; do RELEASE=${RELEASE#[^0-9]*.} done -KERNELRELEASE=2.6.27.3-$RELEASE +KERNELRELEASE=2.6.27.4-$RELEASE case kernel-source in (*-rt) variant=-rt @@ -164,7 +165,7 @@ > .patches for patch in $(< .patches); do if ! patch -s -F0 -E -p1 --no-backup-if-mismatch \ - -i %_builddir/kernel-source-2.6.27.3/$patch; then + -i %_builddir/kernel-source-2.6.27.4/$patch; then echo "*** Patch $patch failed ***" exit 1 fi ++++++ kernel-syms-rt.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:10.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:10.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-syms-rt (Version 2.6.27.3) +# spec file for package kernel-syms-rt (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -28,8 +28,8 @@ Name: kernel-syms-rt Summary: Kernel Symbol Versions (modversions) For Real-Time Kernels -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: Development/Sources AutoReqProv: off @@ -49,7 +49,7 @@ #!BuildIgnore: irqbalance xen #!BuildIgnore: perl-Bootloader mkinitrd Requires: linux -Requires: kernel-source = 2.6.27.3-%source_rel +Requires: kernel-source = 2.6.27.4-%source_rel Source11: arch-symbols Source12: guards Source21: config.conf @@ -74,7 +74,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep echo "Architecture symbol(s):" %symbols kernel-syms.spec: same change ++++++ kernel-trace.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:11.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:11.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-trace (Version 2.6.27.3) +# spec file for package kernel-trace (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-trace trace $(case trace in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/trace$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-trace Summary: The Realtime Linux Kernel -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch %ix86 %else @@ -149,8 +149,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -220,12 +221,12 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-trace-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-trace-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -304,7 +305,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-trace +KERNELRELEASE=2.6.27.4-$RELEASE-trace EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -464,6 +465,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -474,20 +481,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-trace.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/trace # so that kernel-source + kernel-trace is sufficient for building # modules that have modversions as well. @@ -611,6 +604,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-trace.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -708,7 +734,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -748,7 +774,7 @@ see /usr/src/linux/CREDITS for more details. -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:12.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:12.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-vanilla (Version 2.6.27.3) +# spec file for package kernel-vanilla (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-vanilla vanilla $(case vanilla in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/vanilla$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-vanilla Summary: The Standard Kernel - without any SUSE patches -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch %ix86 %else @@ -165,8 +165,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -230,12 +231,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-vanilla-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-vanilla-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -314,7 +315,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-vanilla +KERNELRELEASE=2.6.27.4-$RELEASE-vanilla EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -474,6 +475,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -484,20 +491,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-vanilla.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/vanilla # so that kernel-source + kernel-vanilla is sufficient for building # modules that have modversions as well. @@ -621,6 +614,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-vanilla.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -712,7 +738,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -746,7 +772,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ kernel-xen.spec ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:13.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:13.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package kernel-xen (Version 2.6.27.3) +# spec file for package kernel-xen (Version 2.6.27.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -42,7 +42,7 @@ %if %{build_flavor} == "vanilla" %define build_vanilla 1 %endif -%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,make-symsets,modversions,kabi-checks}) +%(chmod +x %_sourcedir/{arch-symbols,guards,config-subst,check-for-config-changes,check-supported-list,built-in-where,find-provides,list-exported-symbols,split-into-symsets,modversions,kabi-checks}) %define symbols %(set -- kernel-xen xen $(case xen in (rt|rt_*) echo RT ;; esac) $(%_sourcedir/arch-symbols %_target_cpu) $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*) %define subarch_flavor %(%_sourcedir/guards %symbols < %_sourcedir/config.conf | grep '/xen$') # Define some CONFIG variables as rpm macros as well. (rpm cannot handle @@ -57,8 +57,8 @@ Name: kernel-xen Summary: The Xen Kernel -Version: 2.6.27.3 -Release: 2 +Version: 2.6.27.4 +Release: 1 License: GPL v2 only Group: System/Kernel Url: http://www.kernel.org/ @@ -97,8 +97,8 @@ %endif %if %build_xen %ifarch %ix86 -Provides: kernel-xenpae = 2.6.27.3 -Obsoletes: kernel-xenpae <= 2.6.27.3 +Provides: kernel-xenpae = 2.6.27.4 +Obsoletes: kernel-xenpae <= 2.6.27.4 %endif #!BuildIgnore: xen %endif @@ -123,7 +123,7 @@ %if %build_um #Conflicts: kernel %else -Provides: kernel = 2.6.27.3-%source_rel +Provides: kernel = 2.6.27.4-%source_rel %endif %ifarch %ix86 %else @@ -146,8 +146,9 @@ Source38: kabi-checks Source40: build-source-timestamp Source41: built-in-where -Source42: make-symsets -Source43: find-provides +Source42: list-exported-symbols +Source43: split-into-symsets +Source44: find-provides Source45: module-renames Source46: modversions Source100: config.tar.bz2 @@ -214,12 +215,12 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %prep if ! [ -e %_sourcedir/linux-2.6.27.tar.bz2 ]; then - echo "The kernel-xen-2.6.27.3.nosrc.rpm package does not contain the" \ - "complete sources. Please install kernel-source-2.6.27.3.src.rpm." + echo "The kernel-xen-2.6.27.4.nosrc.rpm package does not contain the" \ + "complete sources. Please install kernel-source-2.6.27.4.src.rpm." exit 1 fi echo "Architecture symbol(s):" %symbols @@ -298,7 +299,7 @@ EOF %endif cat >> ../.rpm-defs <<EOF -KERNELRELEASE=2.6.27.3-$RELEASE-xen +KERNELRELEASE=2.6.27.4-$RELEASE-xen EOF %if 0%{?__debug_package:1} cat >> ../.rpm-defs <<EOF @@ -458,6 +459,12 @@ ln -s $image$suffix %buildroot/boot/$image$suffix ln -s initrd$suffix %buildroot/boot/initrd$suffix cp .config %buildroot/boot/config-$KERNELRELEASE +# Figure out where the symbols that vmlinux exports are defined. +# (We need this information below as well as in find-provides; we "annotate" +# the original Module.symvers here to make sure that we are consistent in +# both places.) +%_sourcedir/built-in-where < Module.symvers > Module.symvers.split +mv Module.symvers.split Module.symvers gzip -c9 < Module.symvers > %buildroot/boot/symvers-$KERNELRELEASE.gz if [ $CONFIG_MODULES = y ]; then make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot @@ -468,20 +475,6 @@ %endif echo "Consistency check error: please update supported.conf." fi - # Preserve exports from previous kernels when possible. - old_symsets=%my_builddir/kabi/$SUBARCH/symsets-xen.tar.gz - [ -e $old_symsets ] || old_symsets= - # Group the exported symbols listed in symvers.gz by directory, and - # create a database of sets. - { awk '$3 != "vmlinux" { print }' Module.symvers - # Find out in which built-in.o files the exported symbols that ended - # up in vmlinux were defined. - awk '$3 == "vmlinux" { print }' Module.symvers \ - | %_sourcedir/built-in-where - } | %_sourcedir/make-symsets \ - %buildroot/boot/symsets-$KERNELRELEASE.tar.gz \ - $old_symsets || - [ -n "$ignore_kabi_changes" -o %tolerate_kabi_changes -ge 8 ] # Also put the resulting file in $obj_dir/$SUBARCH/xen # so that kernel-source + kernel-xen is sufficient for building # modules that have modversions as well. @@ -605,6 +598,39 @@ find lib/modules/$KERNELRELEASE -type f -name '*.ko' -printf '/%%p\n' ) > %my_builddir/base-modules %endif + exported_by_modules() { + local module + while read module; do + %_sourcedir/list-exported-symbols $RPM_BUILD_ROOT$module + done + } + mkdir %my_builddir/{base,main,extra} + ( awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' Module.symvers + exported_by_modules < %my_builddir/base-modules + ) | %_sourcedir/split-into-symsets %my_builddir/base +%if %split_packages + exported_by_modules < %my_builddir/main-modules \ + | %_sourcedir/split-into-symsets %my_builddir/main + exported_by_modules < %my_builddir/unsupported-modules \ + | %_sourcedir/split-into-symsets %my_builddir/extra +%endif + # Notes: + # - We rely on list-exported-symbols to correctly extract all exported + # symbols from modules; Module.symvers is disregarded for that. + # - We recompute the symsets in find-provides. Take care to keep the + # algorithm the same in both places. + ## Preserve exports from previous kernels when possible. + #old_symsets=%my_builddir/kabi/$SUBARCH/symsets-xen.tar.gz + #[ -e $old_symsets ] || old_symsets= + # FIXME: implement + symsets=%my_builddir/symsets-$KERNELRELEASE + mkdir $symsets + find %my_builddir/{base,main,extra} -type f \ + | xargs --replace='{}' cp '{}' $symsets/ + tar c -C ${symsets%/*} ${symsets##*/} \ + | gzip -9 \ + > %buildroot/boot/symsets-$KERNELRELEASE.tar.gz + # FIXME: check for abi changes # Set up some module aliases install -d -m 755 %buildroot/etc/modprobe.d/ install -m 644 %_sourcedir/module-renames %buildroot/etc/modprobe.d/ @@ -701,7 +727,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun base -f preun-base.sh @@ -740,7 +766,7 @@ -Source Timestamp: 2008-10-24 17:40:47 +0200 +Source Timestamp: 2008-10-27 19:53:11 +0100 %preun extra -f preun-extra.sh ++++++ build-source-timestamp ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:14.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:14.000000000 +0100 @@ -1 +1 @@ -2008-10-24 17:40:47 +0200 +2008-10-27 19:53:11 +0100 ++++++ built-in-where ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:14.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:14.000000000 +0100 @@ -1,5 +1,7 @@ #! /bin/bash +sourcedir=${0%/*} + # A lot of symbols are exported by the main kernel image. Find out # more precisely which built-in.o file defines them, and fill in # that information in Module.symvers. (The built-in.o files are @@ -11,22 +13,44 @@ unset LANG ${!LC_*} # Create a table of all symbol export in a built-in.o file, e.g., -# mtrr_add arch/i386/kernel/cpu/mtrr/built-in +# 0xc87c1f84 ktime_get kernel/built-in EXPORT_SYMBOL_GPL built_in_exports() { - for obj in $(find -name built-in.o -printf '%P\n'); do - nm $obj \ - | sed -nre 's:(00000000)?([0-9a-f]+) A __crc_(.*):\3\t'"${obj%.o}:p" + # a/b/c/built-in.o gets linked into a/b/built-in.o, so ensure + # that we visit sub-directories first to split up symbols as + # much as possible. + for obj in $(find -name built-in.o -printf '%d %P\n' \ + | sort -r \ + | awk '{ print $2 }'); do + $sourcedir/list-exported-symbols -n ${obj%.o} $obj done + + # We could go through the libraries as well, but those functions + # are so unlikely to change that this wouldn't help. + # (All remaining symbols will end up in the vmlinux set.) + #for archive in $(find -name '*.a'); do + # $sourcedir/list-exported-symbols -n ${archive%.a} $archive + #done +} + +# Filter out duplicates from a Module.symvers dump +unique_symbols() { + awk ' + { if ($2 in seen) + next + seen[$2] = 1 + print + } + ' } # Join together the two tables, including all lines from the first -# file that don't have a match in the second. Finally remove the -# duplicate column. -join -t $'\t' -1 2 -2 1 -a 1 \ - <(cut -f1,2,3 | sort -k2) \ - <(built_in_exports | sort -k1) \ +# file that don't have a match in the second. +# Finally, remove the duplicate columns. +join -t $'\t' -j 2 -a 1 \ + <(sort -k2) \ + <(built_in_exports | unique_symbols | sort -k2) \ | awk ' BEGIN { FS = "\t" ; OFS = "\t" } -NF == 3 { print $2, $1, $3 } -NF == 4 { print $2, $1, $4 } +NF == 7 { print $2, $1, $6, $4 } +NF == 4 { print $2, $1, $3, $4 } ' ++++++ config.tar.bz2 ++++++ ++++++ find-provides ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:17.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:17.000000000 +0100 @@ -5,15 +5,27 @@ printf "%s\n" "${filelist[@]}" | /usr/lib/rpm/find-provides "$@" +sourcedir=${0%/*} +flavor=${1##*-} + +tmpdir=$(mktemp -dt ${0##*/}.XXXXXXXXXX) +trap "rm -rf $tmpdir" EXIT + for file in "${filelist[@]}"; do - case "$file" in - */symsets-*.tar.gz) - flavor=${file%.tar.gz} - flavor=${flavor##*-} - for symset in $(tar tfz "$file" | grep -v '/$'); do - class=${symset##*/} ; class=${class%.*} - echo "kernel($flavor:$class) = ${symset##*.}" - done + case "$file" in + */boot/symvers-*.gz) + zcat "$file" \ + | awk '$3 == "vmlinux" || $3 ~ /\/built-in$/ { print }' ;; - esac + *.ko) + $sourcedir/list-exported-symbols $file + ;; + esac +done \ +| $sourcedir/split-into-symsets $tmpdir + +shopt -s nullglob +for symset in $tmpdir/*; do + class=${symset##*/} ; class=${class%.*} + echo "kernel($flavor:$class) = ${symset##*.}" done ++++++ kabi.tar.bz2 ++++++ ++++++ list-exported-symbols ++++++ #! /bin/sh # Generate a Module.symvers-like list of symbols a module exports. usage() { echo "USAGE: ${0##*/} [-n name] objfile" >&2 exit 1 } options=`getopt -o n: -- "$@"` [ $? -eq 0 ] || usage eval set -- "$options" while :; do case "$1" in -n) opt_n=$2 shift ;; --) shift break ;; esac shift done [ $# -eq 1 ] || usage if [ -z "$opt_n" ]; then opt_n=${1%.ko} opt_n=${opt_n#*/kernel/} fi objdump -t "$1" | awk ' BEGIN { known_types["__ksymtab"] = "EXPORT_SYMBOL" known_types["__ksymtab_unused"] = "EXPORT_UNUSED_SYMBOL" known_types["__ksymtab_gpl"] = "EXPORT_SYMBOL_GPL" known_types["__ksymtab_unused_gpl"] = "EXPORT_UNUSED_SYMBOL_GPL" known_types["__ksymtab_gpl_future"] = "EXPORT_SYMBOL_GPL_FUTURE" } { if (NF < 3) next if (substr($0, index($0, " ") + 6, 1) == "d") next # debug symbol if (gsub(/^__crc_/, "", $NF)) crcs[$NF] = gensub(/^00000000(.+)/, "\\1", "", $1) else if (gsub(/^__ksymtab_/, "", $NF) && ($(NF-2) in known_types)) types[$NF] = known_types[$(NF-2)] } END { for (sym in types) { crc = (sym in crcs ? crcs[sym] : "00000000") print "0x" crc "\t" sym "\t" module "\t" types[sym] } } ' module="$opt_n" ++++++ minmem ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:26.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:26.000000000 +0100 @@ -1 +1 @@ -2096000 +1048576 ++++++ needed_space_in_mb ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:26.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:26.000000000 +0100 @@ -1 +1 @@ -6000 +6144 ++++++ patches.addon.tar.bz2 ++++++ ++++++ patches.apparmor.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/add-path_permission.diff new/patches.apparmor/add-path_permission.diff --- old/patches.apparmor/add-path_permission.diff 2008-10-24 17:41:46.000000000 +0200 +++ new/patches.apparmor/add-path_permission.diff 2008-10-26 10:58:59.000000000 +0100 @@ -187,7 +187,7 @@ --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1186,6 +1186,11 @@ extern void dentry_unhash(struct dentry +@@ -1189,6 +1189,11 @@ extern void dentry_unhash(struct dentry extern int file_permission(struct file *, int); /* diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/d_namespace_path.diff new/patches.apparmor/d_namespace_path.diff --- old/patches.apparmor/d_namespace_path.diff 2008-08-14 19:59:13.000000000 +0200 +++ new/patches.apparmor/d_namespace_path.diff 2008-10-26 10:58:59.000000000 +0100 @@ -15,7 +15,7 @@ --- a/fs/namespace.c +++ b/fs/namespace.c -@@ -2352,3 +2352,33 @@ void __put_mnt_ns(struct mnt_namespace * +@@ -2357,3 +2357,33 @@ void __put_mnt_ns(struct mnt_namespace * release_mounts(&umount_list); kfree(ns); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/fsetattr.diff new/patches.apparmor/fsetattr.diff --- old/patches.apparmor/fsetattr.diff 2008-10-24 17:41:46.000000000 +0200 +++ new/patches.apparmor/fsetattr.diff 2008-10-26 10:58:59.000000000 +0100 @@ -382,7 +382,7 @@ --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -359,13 +359,6 @@ struct iattr { +@@ -362,13 +362,6 @@ struct iattr { struct timespec ia_atime; struct timespec ia_mtime; struct timespec ia_ctime; @@ -396,7 +396,7 @@ }; /* -@@ -1265,6 +1258,7 @@ struct file_operations { +@@ -1268,6 +1261,7 @@ struct file_operations { #define HAVE_FOP_OPEN_EXEC int (*open_exec) (struct inode *); int (*setlease)(struct file *, long, struct file_lock **); @@ -404,7 +404,7 @@ }; struct inode_operations { -@@ -1784,6 +1778,7 @@ extern int do_remount_sb(struct super_bl +@@ -1787,6 +1781,7 @@ extern int do_remount_sb(struct super_bl extern sector_t bmap(struct inode *, sector_t); #endif extern int notify_change(struct dentry *, struct vfsmount *, struct iattr *); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/fsetattr-restore-ia_file.diff new/patches.apparmor/fsetattr-restore-ia_file.diff --- old/patches.apparmor/fsetattr-restore-ia_file.diff 2008-10-14 15:54:49.000000000 +0200 +++ new/patches.apparmor/fsetattr-restore-ia_file.diff 2008-10-26 10:58:59.000000000 +0100 @@ -38,7 +38,7 @@ error = inode_change_ok(inode, attr); --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -359,6 +359,17 @@ struct iattr { +@@ -362,6 +362,17 @@ struct iattr { struct timespec ia_atime; struct timespec ia_mtime; struct timespec ia_ctime; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/sysctl-pathname.diff new/patches.apparmor/sysctl-pathname.diff --- old/patches.apparmor/sysctl-pathname.diff 2008-10-14 15:54:49.000000000 +0200 +++ new/patches.apparmor/sysctl-pathname.diff 2008-10-26 10:58:59.000000000 +0100 @@ -27,7 +27,7 @@ void __user *newval, size_t newlen); --- a/kernel/sysctl.c +++ b/kernel/sysctl.c -@@ -1536,6 +1536,33 @@ void register_sysctl_root(struct ctl_tab +@@ -1544,6 +1544,33 @@ void register_sysctl_root(struct ctl_tab spin_unlock(&sysctl_lock); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-link.diff new/patches.apparmor/vfs-link.diff --- old/patches.apparmor/vfs-link.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-link.diff 2008-10-26 10:58:59.000000000 +0100 @@ -80,7 +80,7 @@ err = nfserrno(nfsd_sync_dir(ddir)); --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1166,7 +1166,7 @@ extern int vfs_create(struct inode *, st +@@ -1169,7 +1169,7 @@ extern int vfs_create(struct inode *, st extern int vfs_mkdir(struct inode *, struct dentry *, struct vfsmount *, int); extern int vfs_mknod(struct inode *, struct dentry *, struct vfsmount *, int, dev_t); extern int vfs_symlink(struct inode *, struct dentry *, struct vfsmount *, const char *); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-mkdir.diff new/patches.apparmor/vfs-mkdir.diff --- old/patches.apparmor/vfs-mkdir.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-mkdir.diff 2008-10-26 10:58:59.000000000 +0100 @@ -115,7 +115,7 @@ } --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1163,7 +1163,7 @@ extern void unlock_super(struct super_bl +@@ -1166,7 +1166,7 @@ extern void unlock_super(struct super_bl */ extern int vfs_permission(struct nameidata *, int); extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-mknod.diff new/patches.apparmor/vfs-mknod.diff --- old/patches.apparmor/vfs-mknod.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-mknod.diff 2008-10-26 10:58:59.000000000 +0100 @@ -76,7 +76,7 @@ if (host_err < 0) { --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1164,7 +1164,7 @@ extern void unlock_super(struct super_bl +@@ -1167,7 +1167,7 @@ extern void unlock_super(struct super_bl extern int vfs_permission(struct nameidata *, int); extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *); extern int vfs_mkdir(struct inode *, struct dentry *, struct vfsmount *, int); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-notify_change.diff new/patches.apparmor/vfs-notify_change.diff --- old/patches.apparmor/vfs-notify_change.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-notify_change.diff 2008-10-26 10:58:59.000000000 +0100 @@ -258,7 +258,7 @@ mnt_drop_write_and_out: --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1621,8 +1621,8 @@ static inline int break_lease(struct ino +@@ -1624,8 +1624,8 @@ static inline int break_lease(struct ino /* fs/open.c */ @@ -269,7 +269,7 @@ extern long do_sys_open(int dfd, const char __user *filename, int flags, int mode); extern struct file *filp_open(const char *, int, int); -@@ -1783,7 +1783,7 @@ extern int do_remount_sb(struct super_bl +@@ -1786,7 +1786,7 @@ extern int do_remount_sb(struct super_bl #ifdef CONFIG_BLOCK extern sector_t bmap(struct inode *, sector_t); #endif diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-rename.diff new/patches.apparmor/vfs-rename.diff --- old/patches.apparmor/vfs-rename.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-rename.diff 2008-10-26 10:58:59.000000000 +0100 @@ -114,7 +114,7 @@ if (!host_err) --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1169,7 +1169,7 @@ extern int vfs_symlink(struct inode *, s +@@ -1172,7 +1172,7 @@ extern int vfs_symlink(struct inode *, s extern int vfs_link(struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *); extern int vfs_rmdir(struct inode *, struct dentry *, struct vfsmount *); extern int vfs_unlink(struct inode *, struct dentry *, struct vfsmount *); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-rmdir.diff new/patches.apparmor/vfs-rmdir.diff --- old/patches.apparmor/vfs-rmdir.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-rmdir.diff 2008-10-26 10:58:59.000000000 +0100 @@ -112,7 +112,7 @@ out_drop: --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1167,7 +1167,7 @@ extern int vfs_mkdir(struct inode *, str +@@ -1170,7 +1170,7 @@ extern int vfs_mkdir(struct inode *, str extern int vfs_mknod(struct inode *, struct dentry *, struct vfsmount *, int, dev_t); extern int vfs_symlink(struct inode *, struct dentry *, struct vfsmount *, const char *); extern int vfs_link(struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-symlink.diff new/patches.apparmor/vfs-symlink.diff --- old/patches.apparmor/vfs-symlink.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-symlink.diff 2008-10-26 10:58:59.000000000 +0100 @@ -112,7 +112,7 @@ out: --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1165,7 +1165,7 @@ extern int vfs_permission(struct nameida +@@ -1168,7 +1168,7 @@ extern int vfs_permission(struct nameida extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *); extern int vfs_mkdir(struct inode *, struct dentry *, struct vfsmount *, int); extern int vfs_mknod(struct inode *, struct dentry *, struct vfsmount *, int, dev_t); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.apparmor/vfs-unlink.diff new/patches.apparmor/vfs-unlink.diff --- old/patches.apparmor/vfs-unlink.diff 2008-10-24 17:41:47.000000000 +0200 +++ new/patches.apparmor/vfs-unlink.diff 2008-10-26 10:58:59.000000000 +0100 @@ -77,7 +77,7 @@ } --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -1168,7 +1168,7 @@ extern int vfs_mknod(struct inode *, str +@@ -1171,7 +1171,7 @@ extern int vfs_mknod(struct inode *, str extern int vfs_symlink(struct inode *, struct dentry *, struct vfsmount *, const char *); extern int vfs_link(struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *); extern int vfs_rmdir(struct inode *, struct dentry *, struct vfsmount *); ++++++ patches.arch.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-02-smp-sysdev.patch new/patches.arch/s390-02-02-smp-sysdev.patch --- old/patches.arch/s390-02-02-smp-sysdev.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-02-smp-sysdev.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,86 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: kernel: sysdev class file creation +References: bnc#434333 + +Symptom: Kernel panic, data corruption if the user accesses files in + /sys/devices/system/cpu. +Problem: The sysdev class attributes where registered with sysfs_file_create + instead of sysdev_class_create_file. The show and store functions + of sysdev class files and sysfs files have a different number of + parameters. In particular the pointer to the buffer is the last + argument and therefore accesses to random memory regions happened. +Solution: Use correct function to register attributes. + +Acked-by: John Jolly <jjolly@suse.de> +--- + arch/s390/kernel/smp.c | 24 +++++++++--------------- + 1 file changed, 9 insertions(+), 15 deletions(-) + +Index: linux-sles11/arch/s390/kernel/smp.c +=================================================================== +--- linux-sles11.orig/arch/s390/kernel/smp.c ++++ linux-sles11/arch/s390/kernel/smp.c +@@ -1116,9 +1116,7 @@ out: + return rc; + } + +-static ssize_t __ref rescan_store(struct sys_device *dev, +- struct sysdev_attribute *attr, +- const char *buf, ++static ssize_t __ref rescan_store(struct sysdev_class *class, const char *buf, + size_t count) + { + int rc; +@@ -1126,12 +1124,10 @@ static ssize_t __ref rescan_store(struct + rc = smp_rescan_cpus(); + return rc ? rc : count; + } +-static SYSDEV_ATTR(rescan, 0200, NULL, rescan_store); ++static SYSDEV_CLASS_ATTR(rescan, 0200, NULL, rescan_store); + #endif /* CONFIG_HOTPLUG_CPU */ + +-static ssize_t dispatching_show(struct sys_device *dev, +- struct sysdev_attribute *attr, +- char *buf) ++static ssize_t dispatching_show(struct sysdev_class *class, char *buf) + { + ssize_t count; + +@@ -1141,9 +1137,8 @@ static ssize_t dispatching_show(struct s + return count; + } + +-static ssize_t dispatching_store(struct sys_device *dev, +- struct sysdev_attribute *attr, +- const char *buf, size_t count) ++static ssize_t dispatching_store(struct sysdev_class *dev, const char *buf, ++ size_t count) + { + int val, rc; + char delim; +@@ -1165,7 +1160,8 @@ out: + put_online_cpus(); + return rc ? rc : count; + } +-static SYSDEV_ATTR(dispatching, 0644, dispatching_show, dispatching_store); ++static SYSDEV_CLASS_ATTR(dispatching, 0644, dispatching_show, ++ dispatching_store); + + static int __init topology_init(void) + { +@@ -1175,13 +1171,11 @@ static int __init topology_init(void) + register_cpu_notifier(&smp_cpu_nb); + + #ifdef CONFIG_HOTPLUG_CPU +- rc = sysfs_create_file(&cpu_sysdev_class.kset.kobj, +- &attr_rescan.attr); ++ rc = sysdev_class_create_file(&cpu_sysdev_class, &attr_rescan); + if (rc) + return rc; + #endif +- rc = sysfs_create_file(&cpu_sysdev_class.kset.kobj, +- &attr_dispatching.attr); ++ rc = sysdev_class_create_file(&cpu_sysdev_class, &attr_dispatching); + if (rc) + return rc; + for_each_present_cpu(cpu) { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-03-zfcp.patch new/patches.arch/s390-02-03-zfcp.patch --- old/patches.arch/s390-02-03-zfcp.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-03-zfcp.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,87 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: Fix zfcp problems that have been found +References: bnc#434333 + +Symptom: lock dependency warnings and flaws found during code review +Problem: various small zfcp problems +Solution: fix zfcp problems + - SCSI command times out on "deleted scsi device" + - fix memory leak for status_read requests + - locking for req_list + - fix error path for failed request send + +Acked-by: John Jolly <jjolly@suse.de> +--- + drivers/s390/scsi/zfcp_fsf.c | 23 ++++++++++------------- + drivers/s390/scsi/zfcp_scsi.c | 12 ++++-------- + 2 files changed, 14 insertions(+), 21 deletions(-) + +--- a/drivers/s390/scsi/zfcp_scsi.c 2008-10-15 16:39:08.000000000 +0200 ++++ b/drivers/s390/scsi/zfcp_scsi.c 2008-10-15 16:39:08.000000000 +0200 +@@ -26,14 +26,10 @@ char *zfcp_get_fcp_sns_info_ptr(struct f + static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt) + { + struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata; +- WARN_ON(!unit); +- if (unit) { +- atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status); +- sdpnt->hostdata = NULL; +- unit->device = NULL; +- zfcp_erp_unit_failed(unit, 12, NULL); +- zfcp_unit_put(unit); +- } ++ atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status); ++ unit->device = NULL; ++ zfcp_erp_unit_failed(unit, 12, NULL); ++ zfcp_unit_put(unit); + } + + static int zfcp_scsi_slave_configure(struct scsi_device *sdp) +--- a/drivers/s390/scsi/zfcp_fsf.c 2008-10-15 16:39:08.000000000 +0200 ++++ b/drivers/s390/scsi/zfcp_fsf.c 2008-10-15 16:40:11.000000000 +0200 +@@ -685,6 +685,7 @@ static struct zfcp_fsf_req *zfcp_fsf_all + if (!req) + return NULL; + memset(req, 0, sizeof(*req)); ++ req->pool = pool; + return req; + } + +@@ -771,28 +772,24 @@ static struct zfcp_fsf_req *zfcp_fsf_req + static int zfcp_fsf_req_send(struct zfcp_fsf_req *req) + { + struct zfcp_adapter *adapter = req->adapter; +- struct zfcp_qdio_queue *req_q = &adapter->req_q; ++ unsigned long flags; + int idx; + + /* put allocated FSF request into hash table */ +- spin_lock(&adapter->req_list_lock); ++ spin_lock_irqsave(&adapter->req_list_lock, flags); + idx = zfcp_reqlist_hash(req->req_id); + list_add_tail(&req->list, &adapter->req_list[idx]); +- spin_unlock(&adapter->req_list_lock); ++ spin_unlock_irqrestore(&adapter->req_list_lock, flags); + +- req->qdio_outb_usage = atomic_read(&req_q->count); ++ req->qdio_outb_usage = atomic_read(&adapter->req_q.count); + req->issued = get_clock(); + if (zfcp_qdio_send(req)) { +- /* Queues are down..... */ + del_timer(&req->timer); +- spin_lock(&adapter->req_list_lock); +- zfcp_reqlist_remove(adapter, req); +- spin_unlock(&adapter->req_list_lock); +- /* undo changes in request queue made for this request */ +- atomic_add(req->sbal_number, &req_q->count); +- req_q->first -= req->sbal_number; +- req_q->first += QDIO_MAX_BUFFERS_PER_Q; +- req_q->first %= QDIO_MAX_BUFFERS_PER_Q; /* wrap */ ++ spin_lock_irqsave(&adapter->req_list_lock, flags); ++ /* lookup request again, list might have changed */ ++ if (zfcp_reqlist_find_safe(adapter, req)) ++ zfcp_reqlist_remove(adapter, req); ++ spin_unlock_irqrestore(&adapter->req_list_lock, flags); + zfcp_erp_adapter_reopen(adapter, 0, 116, req); + return -EIO; + } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-04-qeth-mac.patch new/patches.arch/s390-02-04-qeth-mac.patch --- old/patches.arch/s390-02-04-qeth-mac.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-04-qeth-mac.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,31 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: qeth: use firmware MAC-address for layer2 hsi-devices +References: bnc#434333 + +Symptom: Real HiperSocket devices in layer2 show random MAC-address. +Problem: Usability +Solution: Use firmware MAC-address + +Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> +Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> + +Acked-by: John Jolly <jjolly@suse.de> +--- + + drivers/s390/net/qeth_l2_main.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: linux-sles11/drivers/s390/net/qeth_l2_main.c +=================================================================== +--- linux-sles11.orig/drivers/s390/net/qeth_l2_main.c ++++ linux-sles11/drivers/s390/net/qeth_l2_main.c +@@ -562,7 +562,8 @@ static int qeth_l2_request_initial_mac(s + "device %s: x%x\n", CARD_BUS_ID(card), rc); + } + +- if (card->info.guestlan) { ++ if ((card->info.type == QETH_CARD_TYPE_IQD) || ++ (card->info.guestlan)) { + rc = qeth_setadpparms_change_macaddr(card); + if (rc) { + QETH_DBF_MESSAGE(2, "couldn't get MAC address on " diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-05-qeth-recovery.patch new/patches.arch/s390-02-05-qeth-recovery.patch --- old/patches.arch/s390-02-05-qeth-recovery.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-05-qeth-recovery.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,133 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: qeth: qeth recovery fails +References: bnc#434333 + +Symptom: Device is not functional after a recovery +Problem: The handling of the IFF flags changed in 2.6.27 code +Solution: Do not touch IFF_UP flag during qeth recovery, but invoke + dev_close() in case of failing recovery. + Cancel outstanding control commands in case of Data Checks or + Channel Checks. + Do not invoke qeth_l2_del_all_mc() in case of a hard stop to speed + up removal of qeth devices. + +Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> +Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> + +Acked-by: John Jolly <jjolly@suse.de> +--- + + drivers/s390/net/qeth_core_main.c | 4 +++- + drivers/s390/net/qeth_l2_main.c | 11 +++++++---- + drivers/s390/net/qeth_l3_main.c | 8 +++++--- + 3 files changed, 15 insertions(+), 8 deletions(-) + +Index: linux-sles11/drivers/s390/net/qeth_core_main.c +=================================================================== +--- linux-sles11.orig/drivers/s390/net/qeth_core_main.c ++++ linux-sles11/drivers/s390/net/qeth_core_main.c +@@ -767,7 +767,7 @@ static int qeth_get_problem(struct ccw_d + if (sense[SENSE_COMMAND_REJECT_BYTE] & + SENSE_COMMAND_REJECT_FLAG) { + QETH_DBF_TEXT(TRACE, 2, "CMDREJi"); +- return 0; ++ return 1; + } + if ((sense[2] == 0xaf) && (sense[3] == 0xfe)) { + QETH_DBF_TEXT(TRACE, 2, "AFFE"); +@@ -895,6 +895,7 @@ static void qeth_irq(struct ccw_device * + } + rc = qeth_get_problem(cdev, irb); + if (rc) { ++ qeth_clear_ipacmd_list(card); + qeth_schedule_recovery(card); + goto out; + } +@@ -4160,6 +4161,7 @@ static void qeth_core_remove_device(stru + unsigned long flags; + struct qeth_card *card = dev_get_drvdata(&gdev->dev); + ++ QETH_DBF_TEXT(SETUP, 2, "removedv"); + if (card->discipline.ccwgdriver) { + card->discipline.ccwgdriver->remove(gdev); + qeth_core_free_discipline(card); +Index: linux-sles11/drivers/s390/net/qeth_l2_main.c +=================================================================== +--- linux-sles11.orig/drivers/s390/net/qeth_l2_main.c ++++ linux-sles11/drivers/s390/net/qeth_l2_main.c +@@ -397,7 +397,8 @@ static int qeth_l2_stop_card(struct qeth + } + if (card->state == CARD_STATE_SOFTSETUP) { + qeth_l2_process_vlans(card, 1); +- qeth_l2_del_all_mc(card); ++ if (!card->use_hard_stop) ++ qeth_l2_del_all_mc(card); + qeth_clear_ipacmd_list(card); + card->state = CARD_STATE_HARDSETUP; + } +@@ -829,7 +830,6 @@ static int qeth_l2_open(struct net_devic + } + card->data.state = CH_STATE_UP; + card->state = CARD_STATE_UP; +- card->dev->flags |= IFF_UP; + netif_start_queue(dev); + + if (!card->lan_online && netif_carrier_ok(dev)) +@@ -844,7 +844,6 @@ static int qeth_l2_stop(struct net_devic + + QETH_DBF_TEXT(TRACE, 4, "qethstop"); + netif_tx_disable(dev); +- card->dev->flags &= ~IFF_UP; + if (card->state == CARD_STATE_UP) + card->state = CARD_STATE_SOFTSETUP; + return 0; +@@ -1136,9 +1135,13 @@ static int qeth_l2_recover(void *ptr) + if (!rc) + dev_info(&card->gdev->dev, + "Device successfully recovered!\n"); +- else ++ else { ++ rtnl_lock(); ++ dev_close(card->dev); ++ rtnl_unlock(); + dev_warn(&card->gdev->dev, "The qeth device driver " + "failed to recover an error on the device\n"); ++ } + return 0; + } + +Index: linux-sles11/drivers/s390/net/qeth_l3_main.c +=================================================================== +--- linux-sles11.orig/drivers/s390/net/qeth_l3_main.c ++++ linux-sles11/drivers/s390/net/qeth_l3_main.c +@@ -2804,7 +2804,6 @@ static int qeth_l3_open(struct net_devic + return -ENODEV; + card->data.state = CH_STATE_UP; + card->state = CARD_STATE_UP; +- card->dev->flags |= IFF_UP; + netif_start_queue(dev); + + if (!card->lan_online && netif_carrier_ok(dev)) +@@ -2818,7 +2817,6 @@ static int qeth_l3_stop(struct net_devic + + QETH_DBF_TEXT(TRACE, 4, "qethstop"); + netif_tx_disable(dev); +- card->dev->flags &= ~IFF_UP; + if (card->state == CARD_STATE_UP) + card->state = CARD_STATE_SOFTSETUP; + return 0; +@@ -3222,9 +3220,13 @@ static int qeth_l3_recover(void *ptr) + if (!rc) + dev_info(&card->gdev->dev, + "Device successfully recovered!\n"); +- else ++ else { ++ rtnl_lock(); ++ dev_close(card->dev); ++ rtnl_unlock(); + dev_warn(&card->gdev->dev, "The qeth device driver " + "failed to recover an error on the device\n"); ++ } + return 0; + } + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-06-qeth-offset.patch new/patches.arch/s390-02-06-qeth-offset.patch --- old/patches.arch/s390-02-06-qeth-offset.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-06-qeth-offset.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,38 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: qeth: fix offset error in non prealloc header path +References: bnc#434333,LTC#48840 + +Symptom: bad or no VSWITCH/guest lan network traffic +Problem: Offset error in the non prealloc header path +Solution: For the non preallocated qeth header code path we should not + change the header length. + +Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> + +Acked-by: John Jolly <jjolly@suse.de> +--- + + drivers/s390/net/qeth_core_main.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: linux-sles11/drivers/s390/net/qeth_core_main.c +=================================================================== +--- linux-sles11.orig/drivers/s390/net/qeth_core_main.c ++++ linux-sles11/drivers/s390/net/qeth_core_main.c +@@ -3034,7 +3034,7 @@ static inline void __qeth_fill_buffer(st + struct qdio_buffer *buffer, int is_tso, int *next_element_to_fill, + int offset) + { +- int length = skb->len - offset; ++ int length = skb->len; + int length_here; + int element; + char *data; +@@ -3046,6 +3046,7 @@ static inline void __qeth_fill_buffer(st + + if (offset >= 0) { + data = skb->data + offset; ++ length -= offset; + first_lap = 0; + } + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-07-qeth-ipv6check.patch new/patches.arch/s390-02-07-qeth-ipv6check.patch --- old/patches.arch/s390-02-07-qeth-ipv6check.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-07-qeth-ipv6check.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,42 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: qeth: remove unnecessary support ckeck in sysfs route6 +References: bnc#434333 + +Symptom: route6 attribute can not be set in initial device condition +Problem: Usability +Solution: Remove this check improves usability because you do not have to + set the device online to initially set ipv6 routing option. + +Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> + +Acked-by: John Jolly <jjolly@suse.de> +--- + + drivers/s390/net/qeth_l3_sys.c | 7 ------- + 1 file changed, 7 deletions(-) + +Index: linux-sles11/drivers/s390/net/qeth_l3_sys.c +=================================================================== +--- linux-sles11.orig/drivers/s390/net/qeth_l3_sys.c ++++ linux-sles11/drivers/s390/net/qeth_l3_sys.c +@@ -121,9 +121,6 @@ static ssize_t qeth_l3_dev_route6_show(s + if (!card) + return -EINVAL; + +- if (!qeth_is_supported(card, IPA_IPV6)) +- return sprintf(buf, "%s\n", "n/a"); +- + return qeth_l3_dev_route_show(card, &card->options.route6, buf); + } + +@@ -135,10 +132,6 @@ static ssize_t qeth_l3_dev_route6_store( + if (!card) + return -EINVAL; + +- if (!qeth_is_supported(card, IPA_IPV6)) { +- return -EOPNOTSUPP; +- } +- + return qeth_l3_dev_route_store(card, &card->options.route6, + QETH_PROT_IPV6, buf, count); + } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-08-qeth-panic.patch new/patches.arch/s390-02-08-qeth-panic.patch --- old/patches.arch/s390-02-08-qeth-panic.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-08-qeth-panic.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,43 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: qeth: avoid skb_under_panic for malformatted inbound data +References: bnc#434333 + +Symptom: kernel dump +Problem: malformatted inbound packets due to hardware problems +Solution: make the qeth driver more robust in case of malformatted inbound + packets due to hardware problems, an additional check for + OSN-card-type is added for OSN-type packets. + +Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> + +Acked-by: John Jolly <jjolly@suse.de> +--- + + drivers/s390/net/qeth_l2_main.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +Index: linux-sles11/drivers/s390/net/qeth_l2_main.c +=================================================================== +--- linux-sles11.orig/drivers/s390/net/qeth_l2_main.c ++++ linux-sles11/drivers/s390/net/qeth_l2_main.c +@@ -453,12 +453,15 @@ static void qeth_l2_process_inbound_buff + netif_rx(skb); + break; + case QETH_HEADER_TYPE_OSN: +- skb_push(skb, sizeof(struct qeth_hdr)); +- skb_copy_to_linear_data(skb, hdr, ++ if (card->info.type == QETH_CARD_TYPE_OSN) { ++ skb_push(skb, sizeof(struct qeth_hdr)); ++ skb_copy_to_linear_data(skb, hdr, + sizeof(struct qeth_hdr)); +- len = skb->len; +- card->osn_info.data_cb(skb); +- break; ++ len = skb->len; ++ card->osn_info.data_cb(skb); ++ break; ++ } ++ /* else unknown */ + default: + dev_kfree_skb_any(skb); + QETH_DBF_TEXT(TRACE, 3, "inbunkno"); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/s390-02-09-tape-lock.patch new/patches.arch/s390-02-09-tape-lock.patch --- old/patches.arch/s390-02-09-tape-lock.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/s390-02-09-tape-lock.patch 2008-10-25 18:59:38.000000000 +0200 @@ -0,0 +1,87 @@ +From: Gerald Schaefer <geraldsc@de.ibm.com> +Subject: tape device driver: improve locking +References: bnc#434333 + +Symptom: 1. message "Badness at include/linux/blkdev.h" + 2. lockdep message "INFO: inconsistent lock state" +Problem: 1. Tape block device driver does not hold request queue lock + when completing request via __blk_end_request. + 2. During open() processing tape device driver receives + interrupt while holding the tape device lock. +Solution: 1. Use blk_end_request rather than __blk_end_request + 2. Use spin_lock_irq to disable interrupts rather than spin_lock. + +Acked-by: John Jolly <jjolly@suse.de> +--- + drivers/s390/char/tape_block.c | 6 ++++-- + drivers/s390/char/tape_core.c | 8 ++++---- + 2 files changed, 8 insertions(+), 6 deletions(-) + +Index: temp_orig/drivers/s390/char/tape_block.c +=================================================================== +--- temp_orig.orig/drivers/s390/char/tape_block.c ++++ temp_orig/drivers/s390/char/tape_block.c +@@ -76,7 +76,7 @@ tapeblock_trigger_requeue(struct tape_de + static void + tapeblock_end_request(struct request *req, int error) + { +- if (__blk_end_request(req, error, blk_rq_bytes(req))) ++ if (blk_end_request(req, error, blk_rq_bytes(req))) + BUG(); + } + +@@ -166,7 +166,7 @@ tapeblock_requeue(struct work_struct *wo + nr_queued++; + spin_unlock(get_ccwdev_lock(device->cdev)); + +- spin_lock(&device->blk_data.request_queue_lock); ++ spin_lock_irq(&device->blk_data.request_queue_lock); + while ( + !blk_queue_plugged(queue) && + elv_next_request(queue) && +@@ -176,7 +176,9 @@ tapeblock_requeue(struct work_struct *wo + if (rq_data_dir(req) == WRITE) { + DBF_EVENT(1, "TBLOCK: Rejecting write request\n"); + blkdev_dequeue_request(req); ++ spin_unlock_irq(&device->blk_data.request_queue_lock); + tapeblock_end_request(req, -EIO); ++ spin_lock_irq(&device->blk_data.request_queue_lock); + continue; + } + blkdev_dequeue_request(req); +Index: temp_orig/drivers/s390/char/tape_core.c +=================================================================== +--- temp_orig.orig/drivers/s390/char/tape_core.c ++++ temp_orig/drivers/s390/char/tape_core.c +@@ -1199,7 +1199,7 @@ tape_open(struct tape_device *device) + { + int rc; + +- spin_lock(get_ccwdev_lock(device->cdev)); ++ spin_lock_irq(get_ccwdev_lock(device->cdev)); + if (device->tape_state == TS_NOT_OPER) { + DBF_EVENT(6, "TAPE:nodev\n"); + rc = -ENODEV; +@@ -1217,7 +1217,7 @@ tape_open(struct tape_device *device) + tape_state_set(device, TS_IN_USE); + rc = 0; + } +- spin_unlock(get_ccwdev_lock(device->cdev)); ++ spin_unlock_irq(get_ccwdev_lock(device->cdev)); + return rc; + } + +@@ -1227,11 +1227,11 @@ tape_open(struct tape_device *device) + int + tape_release(struct tape_device *device) + { +- spin_lock(get_ccwdev_lock(device->cdev)); ++ spin_lock_irq(get_ccwdev_lock(device->cdev)); + if (device->tape_state == TS_IN_USE) + tape_state_set(device, TS_UNUSED); + module_put(device->discipline->owner); +- spin_unlock(get_ccwdev_lock(device->cdev)); ++ spin_unlock_irq(get_ccwdev_lock(device->cdev)); + return 0; + } + diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/patches.arch/x86_uv_early_detect.patch new/patches.arch/x86_uv_early_detect.patch --- old/patches.arch/x86_uv_early_detect.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.arch/x86_uv_early_detect.patch 2008-10-27 14:13:29.000000000 +0100 @@ -0,0 +1,212 @@ +From: Jack Steiner <steiner@sgi.com> +Subject: Delete hacks that were necessary while waiting for x2apic code. +References: bnc#429984 +Patch-Mainline: should be in 2.6.28 + +Bug fixes related to mapping UV memory MMRs. + +Fix large APIC ids in SRAT. + +Use the correct memory allocator. Originally, uv_system_init was +called early & used the boot memory allocation. Community restructuring +move the call later - use kmalloc. + +These fixes were posted as: + http://marc.info/?l=linux-kernel&m=122217746109578&w=2 + http://marc.info/?l=linux-kernel&m=122234718018066&w=2 + http://marc.info/?l=linux-kernel&m=122480249023345&w=2 + http://lkml.org/lkml/2008/7/18/384 + +The fixes were commited to linux-2.6 with: + d2f904bb9a1ba88a58a03612abd8c6c54bdaf73a genx2apic_uv_x.c + 8da077d6f31da291ee3a7dd559671cb8ca48cbe2 genx2apic_uv_x.c + 2e42060c19cb79adacc48beb5e9ec5361df976a2 srat_64.c + +The last fix (http://lkml.org/lkml/2008/7/18/384) has not yet been accepted into +linux-2.6. I'll post the commit id when it is available. + +Signed-off-by: Thomas Renninger <trenn@suse.de> + +--- + arch/x86/kernel/genx2apic_uv_x.c | 58 +++++++++++++++++++-------------------- + arch/x86/mm/srat_64.c | 2 - + 2 files changed, 30 insertions(+), 30 deletions(-) + +Index: linux/arch/x86/kernel/genx2apic_uv_x.c +=================================================================== +--- linux.orig/arch/x86/kernel/genx2apic_uv_x.c 2008-10-24 13:10:30.000000000 -0500 ++++ linux/arch/x86/kernel/genx2apic_uv_x.c 2008-10-24 13:35:17.000000000 -0500 +@@ -17,7 +17,6 @@ + #include <linux/ctype.h> + #include <linux/init.h> + #include <linux/sched.h> +-#include <linux/bootmem.h> + #include <linux/module.h> + #include <linux/hardirq.h> + #include <asm/idle.h> +@@ -205,12 +204,10 @@ static unsigned int phys_pkg_id(int inde + return uv_read_apic_id() >> index_msb; + } + +-#ifdef ZZZ /* Needs x2apic patch */ + static void uv_send_IPI_self(int vector) + { + apic_write(APIC_SELF_IPI, vector); + } +-#endif + + struct genapic apic_x2apic_uv_x = { + .name = "UV large system", +@@ -224,7 +221,7 @@ struct genapic apic_x2apic_uv_x = { + .send_IPI_all = uv_send_IPI_all, + .send_IPI_allbutself = uv_send_IPI_allbutself, + .send_IPI_mask = uv_send_IPI_mask, +- /* ZZZ.send_IPI_self = uv_send_IPI_self, */ ++ .send_IPI_self = uv_send_IPI_self, + .cpu_mask_to_apicid = uv_cpu_mask_to_apicid, + .phys_pkg_id = phys_pkg_id, /* Fixme ZZZ */ + .get_apic_id = get_apic_id, +@@ -289,12 +286,13 @@ static __init void map_low_mmrs(void) + + enum map_type {map_wb, map_uc}; + +-static __init void map_high(char *id, unsigned long base, int shift, enum map_type map_type) ++static __init void map_high(char *id, unsigned long base, int shift, ++ int max_pnode, enum map_type map_type) + { + unsigned long bytes, paddr; + + paddr = base << shift; +- bytes = (1UL << shift); ++ bytes = (1UL << shift) * (max_pnode + 1); + printk(KERN_INFO "UV: Map %s_HI 0x%lx - 0x%lx\n", id, paddr, + paddr + bytes); + if (map_type == map_uc) +@@ -310,7 +308,7 @@ static __init void map_gru_high(int max_ + + gru.v = uv_read_local_mmr(UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR); + if (gru.s.enable) +- map_high("GRU", gru.s.base, shift, map_wb); ++ map_high("GRU", gru.s.base, shift, max_pnode, map_wb); + } + + static __init void map_config_high(int max_pnode) +@@ -320,7 +318,7 @@ static __init void map_config_high(int m + + cfg.v = uv_read_local_mmr(UVH_RH_GAM_CFG_OVERLAY_CONFIG_MMR); + if (cfg.s.enable) +- map_high("CONFIG", cfg.s.base, shift, map_uc); ++ map_high("CONFIG", cfg.s.base, shift, max_pnode, map_uc); + } + + static __init void map_mmr_high(int max_pnode) +@@ -330,7 +328,7 @@ static __init void map_mmr_high(int max_ + + mmr.v = uv_read_local_mmr(UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR); + if (mmr.s.enable) +- map_high("MMR", mmr.s.base, shift, map_uc); ++ map_high("MMR", mmr.s.base, shift, max_pnode, map_uc); + } + + static __init void map_mmioh_high(int max_pnode) +@@ -340,7 +338,7 @@ static __init void map_mmioh_high(int ma + + mmioh.v = uv_read_local_mmr(UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR); + if (mmioh.s.enable) +- map_high("MMIOH", mmioh.s.base, shift, map_uc); ++ map_high("MMIOH", mmioh.s.base, shift, max_pnode, map_uc); + } + + static __init void uv_rtc_init(void) +@@ -379,7 +377,22 @@ static void uv_display_heartbeat(void) + } + #endif + +-static bool uv_system_inited; ++/* ++ * Called on each cpu to initialize the per_cpu UV data area. ++ * ZZZ hotplug not supported yet ++ */ ++void __cpuinit uv_cpu_init(void) ++{ ++ /* CPU 0 initilization will be done via uv_system_init. */ ++ if (!uv_blade_info) ++ return; ++ ++ uv_blade_info[uv_numa_blade_id()].nr_online_cpus++; ++ ++ if (get_uv_system_type() == UV_NON_UNIQUE_APIC) ++ set_x2apic_extra_bits(uv_hub_info->pnode); ++} ++ + + void __init uv_system_init(void) + { +@@ -406,16 +419,16 @@ void __init uv_system_init(void) + printk(KERN_DEBUG "UV: Found %d blades\n", uv_num_possible_blades()); + + bytes = sizeof(struct uv_blade_info) * uv_num_possible_blades(); +- uv_blade_info = alloc_bootmem_pages(bytes); ++ uv_blade_info = kmalloc(bytes, GFP_KERNEL); + + get_lowmem_redirect(&lowmem_redir_base, &lowmem_redir_size); + + bytes = sizeof(uv_node_to_blade[0]) * num_possible_nodes(); +- uv_node_to_blade = alloc_bootmem_pages(bytes); ++ uv_node_to_blade = kmalloc(bytes, GFP_KERNEL); + memset(uv_node_to_blade, 255, bytes); + + bytes = sizeof(uv_cpu_to_blade[0]) * num_possible_cpus(); +- uv_cpu_to_blade = alloc_bootmem_pages(bytes); ++ uv_cpu_to_blade = kmalloc(bytes, GFP_KERNEL); + memset(uv_cpu_to_blade, 255, bytes); + + blade = 0; +@@ -474,11 +487,12 @@ void __init uv_system_init(void) + map_mmr_high(max_pnode); + map_config_high(max_pnode); + map_mmioh_high(max_pnode); +- uv_system_inited = true; + + /* enable post-smp_cpus_done processing */ + smp_cpus_done_system = uv_start_system; + ++ uv_cpu_init(); ++ + #ifdef CONFIG_CLOCKSOURCE_WATCHDOG + /* enable heartbeat display callback */ + display_heartbeat = uv_display_heartbeat; +@@ -489,20 +503,6 @@ void __init uv_system_init(void) + } + + /* +- * Called on each cpu to initialize the per_cpu UV data area. +- * ZZZ hotplug not supported yet +- */ +-void __cpuinit uv_cpu_init(void) +-{ +- BUG_ON(!uv_system_inited); +- +- uv_blade_info[uv_numa_blade_id()].nr_online_cpus++; +- +- if (get_uv_system_type() == UV_NON_UNIQUE_APIC) +- set_x2apic_extra_bits(uv_hub_info->pnode); +-} +- +-/* + * Illuminate "activity" LED when CPU is going "active", + * extinguish when going "idle". + */ +Index: linux/arch/x86/mm/srat_64.c +=================================================================== +--- linux.orig/arch/x86/mm/srat_64.c 2008-10-24 13:10:30.000000000 -0500 ++++ linux/arch/x86/mm/srat_64.c 2008-10-24 13:35:12.000000000 -0500 +@@ -138,7 +138,7 @@ acpi_numa_processor_affinity_init(struct + return; + } + +- if (is_uv_system()) ++ if (get_uv_system_type() >= UV_X2APIC) + apic_id = (pa->apic_id << 8) | pa->local_sapic_eid; + else + apic_id = pa->apic_id; ++++++ patches.drivers.tar.bz2 ++++++ ++++ 14394 lines of diff (skipped) ++++++ patches.fixes.tar.bz2 ++++++ ++++ 2628 lines of diff (skipped) ++++++ patches.kernel.org.tar.bz2 ++++++ ++++ 1900 lines of diff (skipped) ++++++ patches.rpmify.tar.bz2 ++++++ ++++++ patches.rt.tar.bz2 ++++++ ++++++ patches.suse.tar.bz2 ++++++ ++++ 4506 lines of diff (skipped) ++++++ patches.trace.tar.bz2 ++++++ ++++++ patches.uml.tar.bz2 ++++++ ++++++ patches.xen.tar.bz2 ++++++ ++++ 44241 lines of diff (skipped) ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.j11846/_old 2008-10-28 00:13:40.000000000 +0100 +++ /var/tmp/diff_new_pack.j11846/_new 2008-10-28 00:13:40.000000000 +0100 @@ -30,7 +30,7 @@ patches.kernel.org/patch-2.6.27.1 patches.kernel.org/patch-2.6.27.1-2 patches.kernel.org/patch-2.6.27.2-3 - patches.kernel.org/patch-2.6.27.4-rc2 + patches.kernel.org/patch-2.6.27.3-4 ######################################################## # Build fixes that apply to the vanilla kernel too. @@ -247,6 +247,14 @@ patches.arch/s390-01-06-zfcp-cleanup-v2.patch patches.arch/s390-02-01-xpram.patch + patches.arch/s390-02-02-smp-sysdev.patch + patches.arch/s390-02-03-zfcp.patch + patches.arch/s390-02-04-qeth-mac.patch + patches.arch/s390-02-05-qeth-recovery.patch + patches.arch/s390-02-06-qeth-offset.patch + patches.arch/s390-02-07-qeth-ipv6check.patch + patches.arch/s390-02-08-qeth-panic.patch + patches.arch/s390-02-09-tape-lock.patch ######################################################## # VM/FS patches @@ -632,6 +640,10 @@ patches.drivers/sgi-uv-led patches.drivers/sgi-ioc4-request-submodules + # This one is more related to x2APIC patches, but adjusted by SGI to cleanly + # patch on-top of sgi-uv-led -> I don't do the extra work and keep it here + patches.arch/x86_uv_early_detect.patch + patches.fixes/cxgb3_fix_race_in_EEH # Add support for Montevina hardware; series mainlined 2.6.26 @@ -645,7 +657,7 @@ ######################################################## # Storage ######################################################## -+2.6.26-teheo patches.drivers/libata-add-waits-for-govault + patches.drivers/libata-add-waits-for-govault patches.drivers/libata-unlock-hpa-by-default patches.drivers/libata-prefer-over-ide @@ -787,6 +799,7 @@ ######################################################## patches.fixes/md-Allow-metadata_version-to-be-updated-for-externa.patch patches.fixes/md-Don-t-try-to-set-an-array-to-read-auto-if-it-i.patch + patches.kernel.org/touch_mnt_namespace-when-the-mount-flags-change.patch ########################################################## @@ -863,7 +876,6 @@ patches.suse/kdb-x86 patches.suse/kdb-ia64 patches.suse/kdb-serial-8250 - patches.fixes/kdb-kdump.diff ######################################################## # Other patches for debugging @@ -873,9 +885,13 @@ patches.suse/no-frame-pointer-select patches.arch/x86_64-unwind-annotations - # dump_after_notifier_table sysctl for Teradata - # and others (bnc#436678) + ######################################################## + # Kdump + ######################################################## + patches.fixes/kdb-kdump.diff + patches.fixes/kdb-oops-panic.diff patches.suse/kdump-dump_after_notifier.patch + patches.fixes/hpwdt-kdump.diff ######################################################## # cgroups ++++++ split-into-symsets ++++++ #! /bin/bash usage() { echo "Usage: ${0##*/} {dir} < Module.symvers" exit $1 } [ $# -eq 1 ] || usage 1 dir=$1 tmpdir=$(mktemp -dt ${0##*/}.XXXXXXXXXX) trap "rm -rf $tmpdir" EXIT split_into_sets() { local dir=$1 awk ' { set = gensub(/\/[^\/]+$/, "", "", $3) sets[set] = sets[set] $0 "\n" } END { for (set in sets) { filename = gensub(/\//, "_", "g", set) printf "%s", sets[set] > dir "/" filename } } ' dir="$dir" } sort -k2 \ | split_into_sets "$tmpdir" shopt -s nullglob set -- $tmpdir/* if [ $# -ne 0 ]; then md5sum "$@" \ | while read md5sum set; do cp $set $dir/${set##*/}.${md5sum:0:16} done fi ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de