Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2017-07-17 09:15:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source" Mon Jul 17 09:15:12 2017 rev:372 rq:509108 version:4.12.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes 2017-07-03 09:35:55.163580312 +0200 +++ /work/SRC/openSUSE:Factory/.kernel-source.new/dtb-aarch64.changes 2017-07-17 09:15:19.308756220 +0200 @@ -1,0 +2,69 @@ +Mon Jul 10 09:29:07 CEST 2017 - jsl...@suse.cz + +- fs/fcntl: f_setown, avoid undefined behaviour (bnc#1006180). +- fs/fcntl: f_setown, allow returning error (bnc#1006180). +- commit c67ada2 + +------------------------------------------------------------------- +Mon Jul 10 09:25:05 CEST 2017 - jsl...@suse.cz + +- x86/entry/64: Refactor IRQ stacks and make them NMI-safe + (bnc#1018348). +- x86/entry/64: Initialize the top of the IRQ stack before + switching stacks (bnc#1018348). +- x86/dumpstack: fix occasionally missing registers (bnc#1018348). +- x86/dumpstack: fix interrupt and exception stack boundary checks + (bnc#1018348). + Update ORC to v3. +- commit dca9bfc + +------------------------------------------------------------------- +Mon Jul 10 09:12:02 CEST 2017 - jsl...@suse.cz + +- Refresh + patches.suse/0001-objtool-Move-checking-code-to-check.c.patch. +- Refresh + patches.suse/0002-objtool-x86-Add-several-functions-and-files-to-the-o.patch. +- Refresh + patches.suse/0003-objtool-Implement-stack-validation-2.0.patch. +- Refresh + patches.suse/0004-objtool-Silence-warnings-for-functions-which-use-IRE.patch. + Update upstream status. +- commit f413050 + +------------------------------------------------------------------- +Mon Jul 10 08:49:23 CEST 2017 - jsl...@suse.cz + +- rpm/kernel-docs.spec.in: temporary fix for 4.12 and later + There is a little DocBook in 4.12 and none in 4.13. So remove creating + the link. +- commit 1d6ee3e + +------------------------------------------------------------------- +Tue Jul 4 10:49:11 CEST 2017 - jsl...@suse.cz + +- Refresh + patches.fixes/tty-handle-the-case-where-we-cannot-restore-a-line-d.patch. + Update upstream status. +- commit 50443d0 + +------------------------------------------------------------------- +Tue Jul 4 08:03:22 CEST 2017 - jsl...@suse.cz + +- Update to 4.12-final. +- commit f35ee68 + +------------------------------------------------------------------- +Mon Jul 3 11:36:04 CEST 2017 - jsl...@suse.cz + +- objtool: Silence warnings for functions which use IRET + (bnc#1018348). +- Update config files. +- Refresh + patches.suse/0002-dwarf-do-not-throw-away-unwind-info.patch. + Push the new version of unDWARF unwinder which is now called Orc. The + first 4 patches were accepted to the -tip tree, so they are marked + appropriatelly. +- commit 48ca048 + +------------------------------------------------------------------- @@ -7,0 +77,12 @@ +Tue Jun 27 10:58:37 CEST 2017 - ti...@suse.de + +- config/x86_64: Align 8250 serial configs for many ports (bsc#1024449) +- commit 7a8608e + +------------------------------------------------------------------- +Mon Jun 26 17:10:55 CEST 2017 - je...@suse.com + +- Update to 4.12-rc7. +- commit aec31ef + +------------------------------------------------------------------- @@ -13,0 +95,9 @@ +Sun Jun 25 21:17:28 CEST 2017 - afaer...@suse.de + +- config: ARM: Consistently enable SPI_GPIO + Bit-banging is needed when a SoC doesn't support native SPI or when such + drivers are missing. SPI_GPIO was enabled for armv6hl and armv7hl default, + but missing for armv7hl lpae and arm64. Set CONFIG_SPI_GPIO=m consistently. +- commit 8750062 + +------------------------------------------------------------------- @@ -26,0 +117,7 @@ +Thu Jun 22 22:48:39 CEST 2017 - je...@suse.com + +- reiserfs: don't preallocate blocks for extended attributes + (bsc#990682). +- commit ffd9401 + +------------------------------------------------------------------- @@ -41,0 +139,33 @@ +Thu Jun 22 16:44:14 CEST 2017 - je...@suse.com + +- config: VGACON_SOFT_SCROLLBACK_SIZE=128 (FATE#307471). + This doubles the scrollback buffer on VGA consoles with only a little + bit of memory cost. +- commit b8a18f3 + +------------------------------------------------------------------- +Thu Jun 22 09:56:51 CEST 2017 - jsl...@suse.cz + +- x86/unwind: add undwarf unwinder (bnc#1018348). +- Refresh + patches.suse/0001-objtool-move-checking-code-to-check.c.patch. +- Refresh patches.suse/0003-objtool-stack-validation-2.0.patch. +- Refresh + patches.suse/0004-objtool-add-undwarf-debuginfo-generation.patch. +- Delete + patches.suse/0008-extable-rename-sortextable-script-to-sorttable.patch. +- Delete + patches.suse/0009-extable-add-undwarf-table-sorting-ability-to-sorttab.patch. +- Delete patches.suse/0010-x86-unwind-add-undwarf-unwinder.patch. + Refresh the UNDWARF unwinder according to usptream reviews. And add + few fixes fro DRAP sequences again and handle more exceptions. +- commit 31d141e + +------------------------------------------------------------------- +Tue Jun 20 20:58:13 CEST 2017 - je...@suse.com + +- btrfs: serialize subvolume mounts with potentially mismatching + rw flags (bsc#951844 bsc#1024015). +- commit 638ee5d + +------------------------------------------------------------------- @@ -48,0 +179,13 @@ +Tue Jun 20 16:26:53 CEST 2017 - jjo...@suse.de + +- Update config files. +- config.conf: Added s390x zfcpdump kernel +- commit 5162e6c + +------------------------------------------------------------------- +Tue Jun 20 14:22:42 CEST 2017 - je...@suse.com + +- Update to 4.12-rc6. +- commit 4d2b302 + +------------------------------------------------------------------- @@ -55,0 +199,6 @@ +Tue Jun 20 12:17:15 CEST 2017 - mma...@suse.com + +- Only set CONFIG_GCC_PLUGINS=y in kernel-syzkaller (boo#1043591) +- commit 1fffb22 + +------------------------------------------------------------------- @@ -110,0 +260,7 @@ +Mon Jun 12 18:40:31 CEST 2017 - je...@suse.com + +- Update to 4.12-rc5. +- Eliminated 1 patch. +- commit 270295f + +------------------------------------------------------------------- @@ -159,0 +316,36 @@ +Wed Jun 7 10:08:05 CEST 2017 - mkube...@suse.cz + +- Update upstream reference: + patches.fixes/virtio_net-lower-limit-on-buffer-size.patch. +- commit 922d3e3 + +------------------------------------------------------------------- +Tue Jun 6 12:45:39 CEST 2017 - jsl...@suse.cz + +- tty: handle the case where we cannot restore a line discipline + (bnc#1042878). +- commit 9273e2f + +------------------------------------------------------------------- +Tue Jun 6 12:41:20 CEST 2017 - mkube...@suse.cz + +- usb/early: Remove trace_printk() callers in xhci-dbc + (bsc#1042295). +- commit 52a1432 + +------------------------------------------------------------------- +Tue Jun 6 12:27:55 CEST 2017 - mkube...@suse.cz + +- virtio_net: lower limit on buffer size (bsc#1042717). +- commit a3aa4ed + +------------------------------------------------------------------- +Tue Jun 6 11:15:29 CEST 2017 - jsl...@suse.cz + +- Update config files. + Disable CONFIG_DRM_I915_WERROR, i.e. -Werror in i915. It causes build + failures in -syzkaller flavor due to a bit oversized frames: + drivers/gpu/drm/i915/intel_dpll_mgr.c:1548:1: error: the frame size of 2240 bytes is larger than 2048 bytes ++++ 333 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes ++++ and /work/SRC/openSUSE:Factory/.kernel-source.new/dtb-aarch64.changes dtb-armv6l.changes: same change dtb-armv7l.changes: same change kernel-64kb.changes: same change kernel-debug.changes: same change kernel-default.changes: same change kernel-docs.changes: same change kernel-lpae.changes: same change kernel-obs-build.changes: same change kernel-obs-qa.changes: same change kernel-pae.changes: same change kernel-source.changes: same change kernel-syms.changes: same change kernel-syzkaller.changes: same change kernel-vanilla.changes: same change kernel-zfcpdump.changes: same change Old: ---- linux-4.11.tar.xz New: ---- linux-4.12.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dtb-aarch64.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.103577696 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.107577133 +0200 @@ -16,8 +16,8 @@ # -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -29,9 +29,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb}) Name: dtb-aarch64 -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif @@ -338,6 +338,7 @@ %build source=linux-%srcversion cp $source/COPYING . +SRCDIR=`pwd`/$source mkdir pp PPDIR=`pwd`/pp export DTC_FLAGS="-R 4 -p 0x1000" @@ -349,7 +350,7 @@ for dts in al/*.dts allwinner/*.dts altera/*.dts amd/*.dts amlogic/*.dts apm/*.dts arm/*.dts broadcom/*.dts cavium/*.dts exynos/*.dts freescale/*.dts hisilicon/*.dts lg/*.dts marvell/*.dts mediatek/*.dts nvidia/*.dts qcom/*.dts renesas/*.dts rockchip/*.dts socionext/*.dts sprd/*.dts xilinx/*.dts zte/*.dts ; do target=${dts%*.dts} mkdir -p $PPDIR/$(dirname $target) - cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I./include/ -P $target.dts -o $PPDIR/$target.dts + cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I$SRCDIR/include/ -I$SRCDIR/scripts/dtc/include-prefixes/ -P $target.dts -o $PPDIR/$target.dts dtc $DTC_FLAGS -I dts -O dtb -i ./$(dirname $target) -o $PPDIR/$target.dtb $PPDIR/$target.dts done ++++++ dtb-armv6l.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.135573193 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.139572630 +0200 @@ -16,8 +16,8 @@ # -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -29,9 +29,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb}) Name: dtb-armv6l -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif @@ -135,6 +135,7 @@ %build source=linux-%srcversion cp $source/COPYING . +SRCDIR=`pwd`/$source mkdir pp PPDIR=`pwd`/pp export DTC_FLAGS="-R 4 -p 0x1000" @@ -146,7 +147,7 @@ for dts in bcm2835*.dts ; do target=${dts%*.dts} mkdir -p $PPDIR/$(dirname $target) - cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I./include/ -P $target.dts -o $PPDIR/$target.dts + cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I$SRCDIR/include/ -I$SRCDIR/scripts/dtc/include-prefixes/ -P $target.dts -o $PPDIR/$target.dts dtc $DTC_FLAGS -I dts -O dtb -i ./$(dirname $target) -o $PPDIR/$target.dtb $PPDIR/$target.dts done ++++++ dtb-armv7l.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.167568690 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.171568127 +0200 @@ -16,8 +16,8 @@ # -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -29,9 +29,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb}) Name: dtb-armv7l -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif @@ -506,6 +506,7 @@ %build source=linux-%srcversion cp $source/COPYING . +SRCDIR=`pwd`/$source mkdir pp PPDIR=`pwd`/pp export DTC_FLAGS="-R 4 -p 0x1000" @@ -517,7 +518,7 @@ for dts in am335x-*.dts am3517*.dts am57xx-*.dts armada-370-*.dts armada-375-*.dts armada-385-*.dts armada-388-*.dts armada-398-*.dts armada-xp-*.dts bcm2836*.dts dove-*.dts exynos4*.dts exynos5*.dts imx5*.dts imx6*.dts imx7*.dts keystone-*.dts meson6-*.dts meson8-*.dts meson8b-*.dts omap3*.dts omap4*.dts omap5*.dts qcom-*.dts rk3*.dts socfpga_*.dts ste-*.dts sun4i-*.dts sun5i-*.dts sun6i-*.dts sun7i-*.dts sun8i-*.dts sun9i-*.dts tegra20-*.dts tegra30-*.dts tegra114-*.dts tegra124-*.dts vexpress-*.dts vf500-*.dts vf610-*.dts xenvm-*.dts zynq-*.dts ; do target=${dts%*.dts} mkdir -p $PPDIR/$(dirname $target) - cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I./include/ -P $target.dts -o $PPDIR/$target.dts + cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I$SRCDIR/include/ -I$SRCDIR/scripts/dtc/include-prefixes/ -P $target.dts -o $PPDIR/$target.dts dtc $DTC_FLAGS -I dts -O dtb -i ./$(dirname $target) -o $PPDIR/$target.dtb $PPDIR/$target.dts done ++++++ kernel-64kb.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.203563624 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.207563061 +0200 @@ -17,8 +17,8 @@ # needssslcertforbuild -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel with 64kb PAGE_SIZE License: GPL-2.0 Group: System/Kernel -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif kernel-debug.spec: same change kernel-default.spec: same change ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.299550114 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.303549552 +0200 @@ -16,7 +16,7 @@ # -%define patchversion 4.11.8 +%define patchversion 4.12.0 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -42,9 +42,9 @@ Summary: Kernel Documentation (man pages) License: GPL-2.0 Group: Documentation/Man -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif @@ -147,7 +147,7 @@ done fi -ln -s %{_mandir}/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT%{_mandir}/man9/request_irq.9.gz +#ln -s %{_mandir}/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT%{_mandir}/man9/request_irq.9.gz install -d $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf cp -a pdf/Documentation/DocBook/*.pdf $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf || true ++++++ kernel-lpae.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.327546174 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.331545612 +0200 @@ -17,8 +17,8 @@ # needssslcertforbuild -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel for LPAE enabled systems License: GPL-2.0 Group: System/Kernel -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.363541108 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.363541108 +0200 @@ -19,7 +19,7 @@ #!BuildIgnore: post-build-checks -%define patchversion 4.11.8 +%define patchversion 4.12.0 %define variant %{nil} %define vanilla_only 0 @@ -57,9 +57,9 @@ Summary: package kernel and initrd for OBS VM builds License: GPL-2.0 Group: SLES -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif ++++++ kernel-obs-qa.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.395536605 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.395536605 +0200 @@ -17,7 +17,7 @@ # needsrootforbuild -%define patchversion 4.11.8 +%define patchversion 4.12.0 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -36,9 +36,9 @@ Summary: Basic QA tests for the kernel License: GPL-2.0 Group: SLES -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.423532665 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.423532665 +0200 @@ -17,8 +17,8 @@ # needssslcertforbuild -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel with PAE Support License: GPL-2.0 Group: System/Kernel -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.447529288 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.451528725 +0200 @@ -17,8 +17,8 @@ # icecream 0 -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %define vanilla_only 0 @@ -30,9 +30,9 @@ Summary: The Linux Kernel Sources License: GPL-2.0 Group: Development/Sources -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.475525347 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.479524784 +0200 @@ -24,10 +24,10 @@ Summary: Kernel Symbol Versions (modversions) License: GPL-2.0 Group: Development/Sources -Version: 4.11.8 +Version: 4.12.0 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif ++++++ kernel-syzkaller.spec ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.503521407 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.503521407 +0200 @@ -17,8 +17,8 @@ # needssslcertforbuild -%define srcversion 4.11 -%define patchversion 4.11.8 +%define srcversion 4.12 +%define patchversion 4.12.0 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel used for fuzzing by syzkaller License: GPL-2.0 Group: System/Kernel -Version: 4.11.8 +Version: 4.12.0 %if 0%{?is_kotd} -Release: <RELEASE>.g42bd7a0 +Release: <RELEASE>.gae25ff8 %else Release: 0 %endif kernel-vanilla.spec: same change kernel-zfcpdump.spec: same change ++++++ config.sh ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:56.815477502 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:56.819476939 +0200 @@ -1,5 +1,5 @@ # The version of the main tarball to use -SRCVERSION=4.11 +SRCVERSION=4.12 # variant of the kernel-source package, either empty or "-rt" VARIANT= # buildservice projects to build the kernel against ++++++ config.tar.bz2 ++++++ ++++ 8974 lines of diff (skipped) ++++++ dtb.spec.in.in ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:57.227419524 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:57.227419524 +0200 @@ -65,6 +65,7 @@ %build source=linux-%srcversion cp $source/COPYING . +SRCDIR=`pwd`/$source mkdir pp PPDIR=`pwd`/pp export DTC_FLAGS="-R 4 -p 0x1000" @@ -76,7 +77,7 @@ for dts in $ALL_SUPPORTED_DTB; do target=${dts%*.dts} mkdir -p $PPDIR/$(dirname $target) - cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I./include/ -P $target.dts -o $PPDIR/$target.dts + cpp -x assembler-with-cpp -undef -D__DTS__ -nostdinc -I. -I$SRCDIR/include/ -I$SRCDIR/scripts/dtc/include-prefixes/ -P $target.dts -o $PPDIR/$target.dts dtc $DTC_FLAGS -I dts -O dtb -i ./$(dirname $target) -o $PPDIR/$target.dtb $PPDIR/$target.dts done ++++++ kernel-docs.spec.in ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:57.371399260 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:57.371399260 +0200 @@ -147,7 +147,7 @@ done fi -ln -s %{_mandir}/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT%{_mandir}/man9/request_irq.9.gz +#ln -s %{_mandir}/man9/request_threaded_irq.9.gz $RPM_BUILD_ROOT%{_mandir}/man9/request_irq.9.gz install -d $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf cp -a pdf/Documentation/DocBook/*.pdf $RPM_BUILD_ROOT%{_datadir}/doc/kernel/pdf || true ++++++ linux-4.11.tar.xz -> linux-4.12.tar.xz ++++++ /work/SRC/openSUSE:Factory/kernel-source/linux-4.11.tar.xz /work/SRC/openSUSE:Factory/.kernel-source.new/linux-4.12.tar.xz differ: char 8, line 1 ++++++ patches.apparmor.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.apparmor/apparmor-basic-networking-rules-4.11-rc1.patch new/patches.apparmor/apparmor-basic-networking-rules-4.11-rc1.patch --- old/patches.apparmor/apparmor-basic-networking-rules-4.11-rc1.patch 2017-03-07 16:07:46.000000000 +0100 +++ new/patches.apparmor/apparmor-basic-networking-rules-4.11-rc1.patch 2017-05-29 15:03:41.000000000 +0200 @@ -12,11 +12,13 @@ Signed-off-by: Jeff Mahoney <je...@suse.com> --- - security/apparmor/include/net.h | 4 ++-- - security/apparmor/lsm.c | 2 +- - security/apparmor/net.c | 39 ++++++++++++++++++++------------------- + security/apparmor/include/net.h | 4 ++-- + security/apparmor/lsm.c | 2 +- + security/apparmor/net.c | 39 ++++++++++++++++++++------------------- 3 files changed, 23 insertions(+), 22 deletions(-) +diff --git a/security/apparmor/include/net.h b/security/apparmor/include/net.h +index cb8a12109b7a..2f40d7e54398 100644 --- a/security/apparmor/include/net.h +++ b/security/apparmor/include/net.h @@ -32,9 +32,9 @@ struct aa_net { @@ -31,9 +33,11 @@ static inline void aa_free_net_rules(struct aa_net *new) { +diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c +index b83cbd494e17..758ddf4a0791 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c -@@ -683,7 +683,7 @@ static int apparmor_socket_shutdown(stru +@@ -683,7 +683,7 @@ static int apparmor_socket_shutdown(struct socket *sock, int how) { struct sock *sk = sock->sk; @@ -41,10 +45,12 @@ + return aa_revalidate_sk(OP_SHUTDOWN, sk); } - static struct security_hook_list apparmor_hooks[] = { + static struct security_hook_list apparmor_hooks[] __lsm_ro_after_init = { +diff --git a/security/apparmor/net.c b/security/apparmor/net.c +index 003dd18c61a5..ac9622de8b6d 100644 --- a/security/apparmor/net.c +++ b/security/apparmor/net.c -@@ -37,12 +37,12 @@ static void audit_cb(struct audit_buffer +@@ -37,12 +37,12 @@ static void audit_cb(struct audit_buffer *ab, void *va) audit_log_format(ab, "\"unknown(%d)\"", sa->u.net->family); } audit_log_format(ab, " sock_type="); @@ -61,7 +67,7 @@ } /** -@@ -57,8 +57,9 @@ static void audit_cb(struct audit_buffer +@@ -57,8 +57,9 @@ static void audit_cb(struct audit_buffer *ab, void *va) * * Returns: %0 or sa->error else other errorcode on failure */ @@ -73,7 +79,7 @@ { int audit_type = AUDIT_APPARMOR_AUTO; struct common_audit_data sa; -@@ -70,25 +71,25 @@ static int audit_net(struct aa_profile * +@@ -70,25 +71,25 @@ static int audit_net(struct aa_profile *profile, int op, u16 family, int type, sa.type = LSM_AUDIT_DATA_NONE; } /* todo fill in socket addr info */ @@ -107,7 +113,7 @@ if (denied & kill_mask) audit_type = AUDIT_APPARMOR_KILL; -@@ -96,10 +97,10 @@ static int audit_net(struct aa_profile * +@@ -96,10 +97,10 @@ static int audit_net(struct aa_profile *profile, int op, u16 family, int type, if ((denied & quiet_mask) && AUDIT_MODE(profile) != AUDIT_NOQUIET && AUDIT_MODE(profile) != AUDIT_ALL) @@ -120,7 +126,7 @@ } /** -@@ -112,8 +113,8 @@ static int audit_net(struct aa_profile * +@@ -112,8 +113,8 @@ static int audit_net(struct aa_profile *profile, int op, u16 family, int type, * * Returns: %0 else error if permission denied */ @@ -131,7 +137,7 @@ { u16 family_mask; int error; -@@ -142,7 +143,7 @@ int aa_net_perm(int op, struct aa_profil +@@ -142,7 +143,7 @@ int aa_net_perm(int op, struct aa_profile *profile, u16 family, int type, * * Returns: %0 else error if permission denied */ @@ -140,3 +146,6 @@ { struct aa_profile *profile; int error = 0; +-- +2.13.0 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.apparmor/apparmor-basic-networking-rules.patch new/patches.apparmor/apparmor-basic-networking-rules.patch --- old/patches.apparmor/apparmor-basic-networking-rules.patch 2017-03-07 16:07:46.000000000 +0100 +++ new/patches.apparmor/apparmor-basic-networking-rules.patch 2017-05-29 15:03:41.000000000 +0200 @@ -22,9 +22,11 @@ security/apparmor/policy.c | 1 + security/apparmor/policy_unpack.c | 46 +++++++++++ 10 files changed, 414 insertions(+), 2 deletions(-) + create mode 100644 security/apparmor/include/net.h + create mode 100644 security/apparmor/net.c diff --git a/security/apparmor/.gitignore b/security/apparmor/.gitignore -index 9cdec70..d5b291e 100644 +index 9cdec70d72b8..d5b291e94264 100644 --- a/security/apparmor/.gitignore +++ b/security/apparmor/.gitignore @@ -1,5 +1,6 @@ @@ -35,7 +37,7 @@ capability_names.h rlim_names.h diff --git a/security/apparmor/Makefile b/security/apparmor/Makefile -index d693df8..5dbb72f 100644 +index ad369a7aac24..a7dc10be232d 100644 --- a/security/apparmor/Makefile +++ b/security/apparmor/Makefile @@ -4,10 +4,10 @@ obj-$(CONFIG_SECURITY_APPARMOR) += apparmor.o @@ -108,10 +110,10 @@ + $(call cmd,make-af) + $(call cmd,make-sock) diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c -index 729e595..181d961 100644 +index 4f6ac9dbc65d..4b121211e5e7 100644 --- a/security/apparmor/apparmorfs.c +++ b/security/apparmor/apparmorfs.c -@@ -807,6 +807,7 @@ static struct aa_fs_entry aa_fs_entry_features[] = { +@@ -1209,6 +1209,7 @@ static struct aa_fs_entry aa_fs_entry_features[] = { AA_FS_DIR("policy", aa_fs_entry_policy), AA_FS_DIR("domain", aa_fs_entry_domain), AA_FS_DIR("file", aa_fs_entry_file), @@ -120,10 +122,10 @@ AA_FS_DIR("rlimit", aa_fs_entry_rlimit), AA_FS_DIR("caps", aa_fs_entry_caps), diff --git a/security/apparmor/include/audit.h b/security/apparmor/include/audit.h -index ba3dfd1..5d3c419 100644 +index fdc4774318ba..947b0447c9bf 100644 --- a/security/apparmor/include/audit.h +++ b/security/apparmor/include/audit.h -@@ -125,6 +125,10 @@ struct apparmor_audit_data { +@@ -117,6 +117,10 @@ struct apparmor_audit_data { u32 denied; kuid_t ouid; } fs; @@ -136,7 +138,7 @@ const char *name; diff --git a/security/apparmor/include/net.h b/security/apparmor/include/net.h new file mode 100644 -index 0000000..cb8a121 +index 000000000000..cb8a12109b7a --- /dev/null +++ b/security/apparmor/include/net.h @@ -0,0 +1,44 @@ @@ -185,10 +187,10 @@ + +#endif /* __AA_NET_H */ diff --git a/security/apparmor/include/policy.h b/security/apparmor/include/policy.h -index 52275f0..4fc4dac 100644 +index 67bc96afe541..a3d18ea8d730 100644 --- a/security/apparmor/include/policy.h +++ b/security/apparmor/include/policy.h -@@ -27,6 +27,7 @@ +@@ -28,6 +28,7 @@ #include "capability.h" #include "domain.h" #include "file.h" @@ -196,7 +198,7 @@ #include "lib.h" #include "resource.h" -@@ -176,6 +177,7 @@ struct aa_replacedby { +@@ -132,6 +133,7 @@ struct aa_data { * @policy: general match rules governing policy * @file: The set of rules governing basic file access and domain transitions * @caps: capabilities for the profile @@ -204,7 +206,7 @@ * @rlimits: rlimits for the profile * * @dents: dentries for the profiles file entries in apparmorfs -@@ -217,6 +219,7 @@ struct aa_profile { +@@ -174,6 +176,7 @@ struct aa_profile { struct aa_policydb policy; struct aa_file_rules file; struct aa_caps caps; @@ -213,10 +215,10 @@ struct aa_loaddata *rawdata; diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c -index 41b8cb1..d96b5f7 100644 +index 8f3c0f7aca5a..b83cbd494e17 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c -@@ -32,6 +32,7 @@ +@@ -33,6 +33,7 @@ #include "include/context.h" #include "include/file.h" #include "include/ipc.h" @@ -224,7 +226,7 @@ #include "include/path.h" #include "include/policy.h" #include "include/policy_ns.h" -@@ -584,6 +585,104 @@ static int apparmor_task_setrlimit(struct task_struct *task, +@@ -587,6 +588,104 @@ static int apparmor_task_setrlimit(struct task_struct *task, return error; } @@ -326,10 +328,10 @@ + return aa_revalidate_sk(OP_SOCK_SHUTDOWN, sk); +} + - static struct security_hook_list apparmor_hooks[] = { + static struct security_hook_list apparmor_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(ptrace_access_check, apparmor_ptrace_access_check), LSM_HOOK_INIT(ptrace_traceme, apparmor_ptrace_traceme), -@@ -613,6 +712,19 @@ static struct security_hook_list apparmor_hooks[] = { +@@ -616,6 +715,19 @@ static struct security_hook_list apparmor_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(getprocattr, apparmor_getprocattr), LSM_HOOK_INIT(setprocattr, apparmor_setprocattr), @@ -351,7 +353,7 @@ LSM_HOOK_INIT(cred_prepare, apparmor_cred_prepare), diff --git a/security/apparmor/net.c b/security/apparmor/net.c new file mode 100644 -index 0000000..003dd18 +index 000000000000..003dd18c61a5 --- /dev/null +++ b/security/apparmor/net.c @@ -0,0 +1,162 @@ @@ -518,10 +520,10 @@ + return error; +} diff --git a/security/apparmor/policy.c b/security/apparmor/policy.c -index 179e68d..f1a8541 100644 +index cf9d670dca94..0eea92aeb02d 100644 --- a/security/apparmor/policy.c +++ b/security/apparmor/policy.c -@@ -603,6 +603,7 @@ void aa_free_profile(struct aa_profile *profile) +@@ -237,6 +237,7 @@ void aa_free_profile(struct aa_profile *profile) aa_free_file_rules(&profile->file); aa_free_cap_rules(&profile->caps); @@ -530,10 +532,10 @@ kzfree(profile->dirname); diff --git a/security/apparmor/policy_unpack.c b/security/apparmor/policy_unpack.c -index 1381206..7dc15ff 100644 +index f3422a91353c..92d02d77c0d6 100644 --- a/security/apparmor/policy_unpack.c +++ b/security/apparmor/policy_unpack.c -@@ -193,6 +193,19 @@ fail: +@@ -217,6 +217,19 @@ static bool unpack_nameX(struct aa_ext *e, enum aa_code code, const char *name) return 0; } @@ -553,7 +555,7 @@ static bool unpack_u32(struct aa_ext *e, u32 *data, const char *name) { if (unpack_nameX(e, AA_U32, name)) { -@@ -476,6 +489,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e) +@@ -526,6 +539,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e, char **ns_name) int i, error = -EPROTO; kernel_cap_t tmpcap; u32 tmp; @@ -561,7 +563,7 @@ *ns_name = NULL; -@@ -576,6 +590,38 @@ static struct aa_profile *unpack_profile(struct aa_ext *e) +@@ -635,6 +649,38 @@ static struct aa_profile *unpack_profile(struct aa_ext *e, char **ns_name) if (!unpack_rlimits(e, profile)) goto fail; @@ -600,4 +602,6 @@ if (unpack_nameX(e, AA_STRUCT, "policydb")) { /* generic policy dfa - optional and may be NULL */ profile->policy.dfa = unpack_dfa(e); +-- +2.13.0 ++++++ patches.arch.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/x86_64-unwind-annotations new/patches.arch/x86_64-unwind-annotations --- old/patches.arch/x86_64-unwind-annotations 2017-03-15 16:32:32.000000000 +0100 +++ new/patches.arch/x86_64-unwind-annotations 1970-01-01 01:00:00.000000000 +0100 @@ -1,159 +0,0 @@ -From: jbeul...@suse.com -Subject: fix unwind annotations -Patch-mainline: tbd -References: bnc#472783, bnc#588458 - ---- a/arch/x86/kernel/entry_64.S -+++ b/arch/x86/kernel/entry_64.S -@@ -115,21 +115,21 @@ ENDPROC(native_usergs_sysret64) - /* - * empty frame - */ -- .macro EMPTY_FRAME start=1 offset=0 -- .if \start -+ .macro EMPTY_FRAME offset=0 - CFI_STARTPROC simple - CFI_SIGNAL_FRAME -- CFI_DEF_CFA rsp,8+\offset -- .else -- CFI_DEF_CFA_OFFSET 8+\offset -- .endif -+ CFI_DEF_CFA rsp,\offset - .endm - - /* - * initial frame state for interrupts (and exceptions without error code) - */ - .macro INTR_FRAME start=1 offset=0 -- EMPTY_FRAME \start, 5*8+\offset -+ .if \start -+ EMPTY_FRAME 5*8+\offset -+ .else -+ CFI_DEF_CFA_OFFSET 5*8+\offset -+ .endif - /*CFI_REL_OFFSET ss, 4*8+\offset*/ - CFI_REL_OFFSET rsp, 3*8+\offset - /*CFI_REL_OFFSET rflags, 2*8+\offset*/ -@@ -148,7 +148,7 @@ ENDPROC(native_usergs_sysret64) - /* - * frame that enables passing a complete pt_regs to a C function. - */ -- .macro DEFAULT_FRAME start=1 offset=0 -+ .macro DEFAULT_FRAME start=1 offset=0 extra=1 - XCPT_FRAME \start, ORIG_RAX+\offset - CFI_REL_OFFSET rdi, RDI+\offset - CFI_REL_OFFSET rsi, RSI+\offset -@@ -159,12 +159,14 @@ ENDPROC(native_usergs_sysret64) - CFI_REL_OFFSET r9, R9+\offset - CFI_REL_OFFSET r10, R10+\offset - CFI_REL_OFFSET r11, R11+\offset -+ .if \extra - CFI_REL_OFFSET rbx, RBX+\offset - CFI_REL_OFFSET rbp, RBP+\offset - CFI_REL_OFFSET r12, R12+\offset - CFI_REL_OFFSET r13, R13+\offset - CFI_REL_OFFSET r14, R14+\offset - CFI_REL_OFFSET r15, R15+\offset -+ .endif - .endm - - /* -@@ -491,7 +493,7 @@ END(system_call) - .macro FORK_LIKE func - ENTRY(stub_\func) - CFI_STARTPROC -- DEFAULT_FRAME 0, 8 /* offset 8: return address */ -+ DEFAULT_FRAME 0, 8, 0 /* offset 8: return address */ - SAVE_EXTRA_REGS 8 - jmp sys_\func - CFI_ENDPROC -@@ -504,7 +506,7 @@ END(stub_\func) - - ENTRY(stub_execve) - CFI_STARTPROC -- DEFAULT_FRAME 0, 8 -+ DEFAULT_FRAME 0, 8, 0 - call sys_execve - return_from_execve: - testl %eax, %eax -@@ -527,7 +529,7 @@ END(stub_execve) - .align 8 - GLOBAL(stub_execveat) - CFI_STARTPROC -- DEFAULT_FRAME 0, 8 -+ DEFAULT_FRAME 0, 8, 0 - call sys_execveat - jmp return_from_execve - CFI_ENDPROC -@@ -537,7 +539,7 @@ END(stub_execveat) - .align 8 - GLOBAL(stub_x32_execve) - CFI_STARTPROC -- DEFAULT_FRAME 0, 8 -+ DEFAULT_FRAME 0, 8, 0 - call compat_sys_execve - jmp return_from_execve - CFI_ENDPROC -@@ -545,7 +547,7 @@ END(stub_x32_execve) - .align 8 - GLOBAL(stub_x32_execveat) - CFI_STARTPROC -- DEFAULT_FRAME 0, 8 -+ DEFAULT_FRAME 0, 8, 0 - call compat_sys_execveat - jmp return_from_execve - CFI_ENDPROC -@@ -575,7 +577,7 @@ END(stub32_execveat) - */ - ENTRY(stub_rt_sigreturn) - CFI_STARTPROC -- DEFAULT_FRAME 0, 8 -+ DEFAULT_FRAME 0, 8, 0 - /* - * SAVE_EXTRA_REGS result is not normally needed: - * sigreturn overwrites all pt_regs->GPREGS. -@@ -597,7 +599,7 @@ END(stub_rt_sigreturn) - #ifdef CONFIG_X86_X32_ABI - ENTRY(stub_x32_rt_sigreturn) - CFI_STARTPROC -- DEFAULT_FRAME 0, 8 -+ DEFAULT_FRAME 0, 8, 0 - SAVE_EXTRA_REGS 8 - call sys32_x32_rt_sigreturn - jmp return_from_stub ---- a/arch/x86/kernel/head_64.S -+++ b/arch/x86/kernel/head_64.S -@@ -378,6 +378,25 @@ ENTRY(early_idt_handler) - - 11: - #ifdef CONFIG_EARLY_PRINTK -+#include <asm/dwarf2.h> -+ CFI_STARTPROC simple -+ CFI_SIGNAL_FRAME -+ CFI_DEF_CFA rsp, 16*8 -+# CFI_REL_OFFSET ss, 15*8 -+ CFI_REL_OFFSET rsp, 14*8 -+# CFI_REL_OFFSET rflags, 13*8 -+# CFI_REL_OFFSET cs, 12*8 -+ CFI_REL_OFFSET rip, 11*8 -+ CFI_REL_OFFSET rax, 8*8 -+ CFI_REL_OFFSET rcx, 7*8 -+ CFI_REL_OFFSET rdx, 6*8 -+ CFI_REL_OFFSET rsi, 5*8 -+ CFI_REL_OFFSET rdi, 4*8 -+ CFI_REL_OFFSET r8, 3*8 -+ CFI_REL_OFFSET r9, 2*8 -+ CFI_REL_OFFSET r10, 1*8 -+ CFI_REL_OFFSET r11, 0*8 -+ - GET_CR2_INTO(%r9) # can clobber any volatile register if pv - movl 80(%rsp),%r8d # error code - movl 72(%rsp),%esi # vector number -@@ -394,6 +413,7 @@ ENTRY(early_idt_handler) - movq 40(%rsp),%rsi # %rip again - call __print_symbol - #endif -+ CFI_ENDPROC - #endif /* EARLY_PRINTK */ - 1: hlt - jmp 1b ++++++ patches.drivers.tar.bz2 ++++++ ++++ 3144 lines of diff (skipped) ++++++ patches.fixes.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-SUNRPC-Refactor-svc_set_num_threads.patch new/patches.fixes/0001-SUNRPC-Refactor-svc_set_num_threads.patch --- old/patches.fixes/0001-SUNRPC-Refactor-svc_set_num_threads.patch 2017-06-26 08:56:10.000000000 +0200 +++ new/patches.fixes/0001-SUNRPC-Refactor-svc_set_num_threads.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,155 +0,0 @@ -From: Trond Myklebust <trond.mykleb...@primarydata.com> -Date: Wed, 26 Apr 2017 11:55:26 -0400 -Subject: [PATCH] SUNRPC: Refactor svc_set_num_threads() -Git-commit: 9e0d87680d689f1758185851c3da6eafb16e71e1 -Patch-mainline: v4.12 -References: bsc#1039674 CVE-2017-9059 - -Refactor to separate out the functions of starting and stopping threads -so that they can be used in other helpers. - -Signed-off-by: Trond Myklebust <trond.mykleb...@primarydata.com> -Tested-and-reviewed-by: Kinglong Mee <kinglong...@gmail.com> -Signed-off-by: J. Bruce Fields <bfie...@redhat.com> -Acked-by: NeilBrown <ne...@suse.com> - ---- - net/sunrpc/svc.c | 96 +++++++++++++++++++++++++++++++++---------------------- - 1 file changed, 58 insertions(+), 38 deletions(-) - ---- a/net/sunrpc/svc.c -+++ b/net/sunrpc/svc.c -@@ -702,59 +702,32 @@ found_pool: - return task; - } - --/* -- * Create or destroy enough new threads to make the number -- * of threads the given number. If `pool' is non-NULL, applies -- * only to threads in that pool, otherwise round-robins between -- * all pools. Caller must ensure that mutual exclusion between this and -- * server startup or shutdown. -- * -- * Destroying threads relies on the service threads filling in -- * rqstp->rq_task, which only the nfs ones do. Assumes the serv -- * has been created using svc_create_pooled(). -- * -- * Based on code that used to be in nfsd_svc() but tweaked -- * to be pool-aware. -- */ --int --svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) -+/* create new threads */ -+static int -+svc_start_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) - { - struct svc_rqst *rqstp; - struct task_struct *task; - struct svc_pool *chosen_pool; -- int error = 0; - unsigned int state = serv->sv_nrthreads-1; - int node; - -- if (pool == NULL) { -- /* The -1 assumes caller has done a svc_get() */ -- nrservs -= (serv->sv_nrthreads-1); -- } else { -- spin_lock_bh(&pool->sp_lock); -- nrservs -= pool->sp_nrthreads; -- spin_unlock_bh(&pool->sp_lock); -- } -- -- /* create new threads */ -- while (nrservs > 0) { -+ do { - nrservs--; - chosen_pool = choose_pool(serv, pool, &state); - - node = svc_pool_map_get_node(chosen_pool->sp_id); - rqstp = svc_prepare_thread(serv, chosen_pool, node); -- if (IS_ERR(rqstp)) { -- error = PTR_ERR(rqstp); -- break; -- } -+ if (IS_ERR(rqstp)) -+ return PTR_ERR(rqstp); - - __module_get(serv->sv_ops->svo_module); - task = kthread_create_on_node(serv->sv_ops->svo_function, rqstp, - node, "%s", serv->sv_name); - if (IS_ERR(task)) { -- error = PTR_ERR(task); - module_put(serv->sv_ops->svo_module); - svc_exit_thread(rqstp); -- break; -+ return PTR_ERR(task); - } - - rqstp->rq_task = task; -@@ -763,15 +736,62 @@ svc_set_num_threads(struct svc_serv *ser - - svc_sock_update_bufs(serv); - wake_up_process(task); -- } -+ } while (nrservs > 0); -+ -+ return 0; -+} -+ -+ -+/* destroy old threads */ -+static int -+svc_signal_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) -+{ -+ struct task_struct *task; -+ unsigned int state = serv->sv_nrthreads-1; -+ - /* destroy old threads */ -- while (nrservs < 0 && -- (task = choose_victim(serv, pool, &state)) != NULL) { -+ do { -+ task = choose_victim(serv, pool, &state); -+ if (task == NULL) -+ break; - send_sig(SIGINT, task, 1); - nrservs++; -+ } while (nrservs < 0); -+ -+ return 0; -+} -+ -+/* -+ * Create or destroy enough new threads to make the number -+ * of threads the given number. If `pool' is non-NULL, applies -+ * only to threads in that pool, otherwise round-robins between -+ * all pools. Caller must ensure that mutual exclusion between this and -+ * server startup or shutdown. -+ * -+ * Destroying threads relies on the service threads filling in -+ * rqstp->rq_task, which only the nfs ones do. Assumes the serv -+ * has been created using svc_create_pooled(). -+ * -+ * Based on code that used to be in nfsd_svc() but tweaked -+ * to be pool-aware. -+ */ -+int -+svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) -+{ -+ if (pool == NULL) { -+ /* The -1 assumes caller has done a svc_get() */ -+ nrservs -= (serv->sv_nrthreads-1); -+ } else { -+ spin_lock_bh(&pool->sp_lock); -+ nrservs -= pool->sp_nrthreads; -+ spin_unlock_bh(&pool->sp_lock); - } - -- return error; -+ if (nrservs > 0) -+ return svc_start_kthreads(serv, pool, nrservs); -+ if (nrservs < 0) -+ return svc_signal_kthreads(serv, pool, nrservs); -+ return 0; - } - EXPORT_SYMBOL_GPL(svc_set_num_threads); - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-fs-fcntl-f_setown-allow-returning-error.patch new/patches.fixes/0001-fs-fcntl-f_setown-allow-returning-error.patch --- old/patches.fixes/0001-fs-fcntl-f_setown-allow-returning-error.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/0001-fs-fcntl-f_setown-allow-returning-error.patch 2017-07-10 09:29:09.000000000 +0200 @@ -0,0 +1,77 @@ +From: Jiri Slaby <jsl...@suse.cz> +Date: Tue, 13 Jun 2017 13:35:50 +0200 +Subject: fs/fcntl: f_setown, allow returning error +Patch-mainline: 4.13-rc1 +Git-commit: 393cc3f51135ea2520521f776ef3afdf3395c797 +References: bnc#1006180 + +Allow f_setown to return an error value. We will fail in the next patch +with EINVAL for bad input to f_setown, so tile the path for the later +patch. + +Signed-off-by: Jiri Slaby <jsl...@suse.cz> +Reviewed-by: Jeff Layton <jlay...@redhat.com> +Cc: Jeff Layton <jlay...@poochiereds.net> +Cc: "J. Bruce Fields" <bfie...@fieldses.org> +Cc: Alexander Viro <v...@zeniv.linux.org.uk> +Cc: linux-fsde...@vger.kernel.org +Signed-off-by: Jeff Layton <jlay...@redhat.com> +--- + fs/fcntl.c | 7 ++++--- + include/linux/fs.h | 2 +- + net/socket.c | 3 +-- + 3 files changed, 6 insertions(+), 6 deletions(-) + +--- a/fs/fcntl.c ++++ b/fs/fcntl.c +@@ -109,7 +109,7 @@ void __f_setown(struct file *filp, struc + } + EXPORT_SYMBOL(__f_setown); + +-void f_setown(struct file *filp, unsigned long arg, int force) ++int f_setown(struct file *filp, unsigned long arg, int force) + { + enum pid_type type; + struct pid *pid; +@@ -123,6 +123,8 @@ void f_setown(struct file *filp, unsigne + pid = find_vpid(who); + __f_setown(filp, pid, type, force); + rcu_read_unlock(); ++ ++ return 0; + } + EXPORT_SYMBOL(f_setown); + +@@ -297,8 +299,7 @@ static long do_fcntl(int fd, unsigned in + force_successful_syscall_return(); + break; + case F_SETOWN: +- f_setown(filp, arg, 1); +- err = 0; ++ err = f_setown(filp, arg, 1); + break; + case F_GETOWN_EX: + err = f_getown_ex(filp, arg); +--- a/include/linux/fs.h ++++ b/include/linux/fs.h +@@ -1249,7 +1249,7 @@ extern void fasync_free(struct fasync_st + extern void kill_fasync(struct fasync_struct **, int, int); + + extern void __f_setown(struct file *filp, struct pid *, enum pid_type, int force); +-extern void f_setown(struct file *filp, unsigned long arg, int force); ++extern int f_setown(struct file *filp, unsigned long arg, int force); + extern void f_delown(struct file *filp); + extern pid_t f_getown(struct file *filp); + extern int send_sigurg(struct fown_struct *fown); +--- a/net/socket.c ++++ b/net/socket.c +@@ -950,8 +950,7 @@ static long sock_ioctl(struct file *file + err = -EFAULT; + if (get_user(pid, (int __user *)argp)) + break; +- f_setown(sock->file, pid, 1); +- err = 0; ++ err = f_setown(sock->file, pid, 1); + break; + case FIOGETOWN: + case SIOCGPGRP: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0002-NFSv4-Fix-callback-server-shutdown.patch new/patches.fixes/0002-NFSv4-Fix-callback-server-shutdown.patch --- old/patches.fixes/0002-NFSv4-Fix-callback-server-shutdown.patch 2017-06-26 08:56:10.000000000 +0200 +++ new/patches.fixes/0002-NFSv4-Fix-callback-server-shutdown.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,150 +0,0 @@ -From: Trond Myklebust <trond.mykleb...@primarydata.com> -Date: Wed, 26 Apr 2017 11:55:27 -0400 -Subject: [PATCH] NFSv4: Fix callback server shutdown -Git-commit: ed6473ddc704a2005b9900ca08e236ebb2d8540a -Patch-mainline: v4.12 -References: bsc#1039674 CVE-2017-9059 - -We want to use kthread_stop() in order to ensure the threads are -shut down before we tear down the nfs_callback_info in nfs_callback_down. - -Tested-and-reviewed-by: Kinglong Mee <kinglong...@gmail.com> -Reported-by: Kinglong Mee <kinglong...@gmail.com> -Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using svc_set_num_threads()...") -Signed-off-by: Trond Myklebust <trond.mykleb...@primarydata.com> -Signed-off-by: J. Bruce Fields <bfie...@redhat.com> -Acked-by: NeilBrown <ne...@suse.com> - ---- - fs/nfs/callback.c | 24 ++++++++++++++++-------- - include/linux/sunrpc/svc.h | 1 + - net/sunrpc/svc.c | 38 ++++++++++++++++++++++++++++++++++++++ - 3 files changed, 55 insertions(+), 8 deletions(-) - ---- a/fs/nfs/callback.c -+++ b/fs/nfs/callback.c -@@ -76,7 +76,10 @@ nfs4_callback_svc(void *vrqstp) - - set_freezable(); - -- while (!kthread_should_stop()) { -+ while (!kthread_freezable_should_stop(NULL)) { -+ -+ if (signal_pending(current)) -+ flush_signals(current); - /* - * Listen for a request on the socket - */ -@@ -85,6 +88,8 @@ nfs4_callback_svc(void *vrqstp) - continue; - svc_process(rqstp); - } -+ svc_exit_thread(rqstp); -+ module_put_and_exit(0); - return 0; - } - -@@ -103,9 +108,10 @@ nfs41_callback_svc(void *vrqstp) - - set_freezable(); - -- while (!kthread_should_stop()) { -- if (try_to_freeze()) -- continue; -+ while (!kthread_freezable_should_stop(NULL)) { -+ -+ if (signal_pending(current)) -+ flush_signals(current); - - prepare_to_wait(&serv->sv_cb_waitq, &wq, TASK_INTERRUPTIBLE); - spin_lock_bh(&serv->sv_cb_lock); -@@ -121,11 +127,13 @@ nfs41_callback_svc(void *vrqstp) - error); - } else { - spin_unlock_bh(&serv->sv_cb_lock); -- schedule(); -+ if (!kthread_should_stop()) -+ schedule(); - finish_wait(&serv->sv_cb_waitq, &wq); - } -- flush_signals(current); - } -+ svc_exit_thread(rqstp); -+ module_put_and_exit(0); - return 0; - } - -@@ -221,14 +229,14 @@ err_bind: - static struct svc_serv_ops nfs40_cb_sv_ops = { - .svo_function = nfs4_callback_svc, - .svo_enqueue_xprt = svc_xprt_do_enqueue, -- .svo_setup = svc_set_num_threads, -+ .svo_setup = svc_set_num_threads_sync, - .svo_module = THIS_MODULE, - }; - #if defined(CONFIG_NFS_V4_1) - static struct svc_serv_ops nfs41_cb_sv_ops = { - .svo_function = nfs41_callback_svc, - .svo_enqueue_xprt = svc_xprt_do_enqueue, -- .svo_setup = svc_set_num_threads, -+ .svo_setup = svc_set_num_threads_sync, - .svo_module = THIS_MODULE, - }; - ---- a/include/linux/sunrpc/svc.h -+++ b/include/linux/sunrpc/svc.h -@@ -474,6 +474,7 @@ void svc_pool_map_put(void); - struct svc_serv * svc_create_pooled(struct svc_program *, unsigned int, - struct svc_serv_ops *); - int svc_set_num_threads(struct svc_serv *, struct svc_pool *, int); -+int svc_set_num_threads_sync(struct svc_serv *, struct svc_pool *, int); - int svc_pool_stats_open(struct svc_serv *serv, struct file *file); - void svc_destroy(struct svc_serv *); - void svc_shutdown_net(struct svc_serv *, struct net *); ---- a/net/sunrpc/svc.c -+++ b/net/sunrpc/svc.c -@@ -795,6 +795,44 @@ svc_set_num_threads(struct svc_serv *ser - } - EXPORT_SYMBOL_GPL(svc_set_num_threads); - -+/* destroy old threads */ -+static int -+svc_stop_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs) -+{ -+ struct task_struct *task; -+ unsigned int state = serv->sv_nrthreads-1; -+ -+ /* destroy old threads */ -+ do { -+ task = choose_victim(serv, pool, &state); -+ if (task == NULL) -+ break; -+ kthread_stop(task); -+ nrservs++; -+ } while (nrservs < 0); -+ return 0; -+} -+ -+int -+svc_set_num_threads_sync(struct svc_serv *serv, struct svc_pool *pool, int nrservs) -+{ -+ if (pool == NULL) { -+ /* The -1 assumes caller has done a svc_get() */ -+ nrservs -= (serv->sv_nrthreads-1); -+ } else { -+ spin_lock_bh(&pool->sp_lock); -+ nrservs -= pool->sp_nrthreads; -+ spin_unlock_bh(&pool->sp_lock); -+ } -+ -+ if (nrservs > 0) -+ return svc_start_kthreads(serv, pool, nrservs); -+ if (nrservs < 0) -+ return svc_stop_kthreads(serv, pool, nrservs); -+ return 0; -+} -+EXPORT_SYMBOL_GPL(svc_set_num_threads_sync); -+ - /* - * Called from a server thread as it's exiting. Caller must hold the "service - * mutex" for the service. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0002-fs-fcntl-f_setown-avoid-undefined-behaviour.patch new/patches.fixes/0002-fs-fcntl-f_setown-avoid-undefined-behaviour.patch --- old/patches.fixes/0002-fs-fcntl-f_setown-avoid-undefined-behaviour.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/0002-fs-fcntl-f_setown-avoid-undefined-behaviour.patch 2017-07-10 09:29:09.000000000 +0200 @@ -0,0 +1,53 @@ +From: Jiri Slaby <jsl...@suse.cz> +Date: Tue, 13 Jun 2017 13:35:51 +0200 +Subject: fs/fcntl: f_setown, avoid undefined behaviour +Patch-mainline: 4.13-rc1 +Git-commit: fc3dc67471461c0efcb1ed22fb7595121d65fad9 +References: bnc#1006180 + +fcntl(0, F_SETOWN, 0x80000000) triggers: +UBSAN: Undefined behaviour in fs/fcntl.c:118:7 +negation of -2147483648 cannot be represented in type 'int': +CPU: 1 PID: 18261 Comm: syz-executor Not tainted 4.8.1-0-syzkaller #1 +... +Call Trace: +... + [<ffffffffad8f0868>] ? f_setown+0x1d8/0x200 + [<ffffffffad8f19a9>] ? SyS_fcntl+0x999/0xf30 + [<ffffffffaed1fb00>] ? entry_SYSCALL_64_fastpath+0x23/0xc1 + +Fix that by checking the arg parameter properly (against INT_MAX) before +"who = -who". And return immediatelly with -EINVAL in case it is wrong. +Note that according to POSIX we can return EINVAL: + http://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html + + [EINVAL] + The cmd argument is F_SETOWN and the value of the argument + is not valid as a process or process group identifier. + +[v2] returns an error, v1 used to fail silently +[v3] implement proper check for the bad value INT_MIN + +Signed-off-by: Jiri Slaby <jsl...@suse.cz> +Cc: Jeff Layton <jlay...@poochiereds.net> +Cc: "J. Bruce Fields" <bfie...@fieldses.org> +Cc: Alexander Viro <v...@zeniv.linux.org.uk> +Cc: linux-fsde...@vger.kernel.org +Signed-off-by: Jeff Layton <jlay...@redhat.com> +--- + fs/fcntl.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/fs/fcntl.c ++++ b/fs/fcntl.c +@@ -116,6 +116,10 @@ int f_setown(struct file *filp, unsigned + int who = arg; + type = PIDTYPE_PID; + if (who < 0) { ++ /* avoid overflow below */ ++ if (who == INT_MIN) ++ return -EINVAL; ++ + type = PIDTYPE_PGID; + who = -who; + } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/btrfs-qgroups-Retry-after-commit-on-getting-EDQUOT.patch new/patches.fixes/btrfs-qgroups-Retry-after-commit-on-getting-EDQUOT.patch --- old/patches.fixes/btrfs-qgroups-Retry-after-commit-on-getting-EDQUOT.patch 2017-06-26 08:56:10.000000000 +0200 +++ new/patches.fixes/btrfs-qgroups-Retry-after-commit-on-getting-EDQUOT.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,127 +0,0 @@ -From a950e8b3aebb16d547f1bfcd076eb894f7c1cb05 Mon Sep 17 00:00:00 2001 -From: Goldwyn Rodrigues <rgold...@suse.com> -Date: Mon, 27 Mar 2017 12:29:57 -0500 -Subject: [PATCH] btrfs: qgroups: Retry after commit on getting EDQUOT -Patch-mainline: Submitted, https://patchwork.kernel.org/patch/9647211/ -References: bsc#1019614 - - -We are facing the same problem with EDQUOT which was experienced with -ENOSPC. Not sure if we require a full ticketing system such as ENOSPC, but -here is a quick fix, which may be too big a hammer. - -Quotas are reserved during the start of an operation, incrementing -qg->reserved. However, it is written to disk in a commit_transaction -which could take as long as commit_interval. In the meantime there -could be deletions which are not accounted for because deletions are -accounted for only while committed (free_refroot). So, when we get -a EDQUOT flush the data to disk and try again. - -This fixes fstests btrfs/139. - -Here is a sample script which shows this issue. - -DEVICE=/dev/vdb -MOUNTPOINT=/mnt -TESTVOL=$MOUNTPOINT/tmp -QUOTA=5 -PROG=btrfs -DD_BS="4k" -DD_COUNT="256" -RUN_TIMES=5000 - -mkfs.btrfs -f $DEVICE -mount -o commit=240 $DEVICE $MOUNTPOINT -$PROG subvolume create $TESTVOL -$PROG quota enable $TESTVOL -$PROG qgroup limit ${QUOTA}G $TESTVOL - -typeset -i DD_RUN_GOOD -typeset -i QUOTA - -function _check_cmd() { - if [[ ${?} > 0 ]]; then - echo -n "$(date) E: Running previous command" - echo ${*} - echo "Without sync" - $PROG qgroup show -pcreFf ${TESTVOL} - echo "With sync" - $PROG qgroup show -pcreFf --sync ${TESTVOL} - exit 1 - fi -} - -while true; do - DD_RUN_GOOD=$RUN_TIMES - - while (( ${DD_RUN_GOOD} != 0 )); do - dd if=/dev/zero of=${TESTVOL}/quotatest${DD_RUN_GOOD} bs=${DD_BS} count=${DD_COUNT} - _check_cmd "dd if=/dev/zero of=${TESTVOL}/quotatest${DD_RUN_GOOD} bs=${DD_BS} count=${DD_COUNT}" - DD_RUN_GOOD=(${DD_RUN_GOOD}-1) - done - - $PROG qgroup show -pcref $TESTVOL - echo "----------- Cleanup ---------- " - rm $TESTVOL/quotatest* - -done - -Signed-off-by: Goldwyn Rodrigues <rgold...@suse.com> -Reviewed-by: Qu Wenruo <quwen...@cn.fujitsu.com> -Signed-off-by: David Sterba <dste...@suse.com> ---- - fs/btrfs/qgroup.c | 24 +++++++++++++++++++++++- - 1 file changed, 23 insertions(+), 1 deletion(-) - -diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c -index a59801d..284366a 100644 ---- a/fs/btrfs/qgroup.c -+++ b/fs/btrfs/qgroup.c -@@ -2367,6 +2367,7 @@ static int qgroup_reserve(struct btrfs_root *root, u64 num_bytes, bool enforce) - struct btrfs_fs_info *fs_info = root->fs_info; - u64 ref_root = root->root_key.objectid; - int ret = 0; -+ int retried = 0; - struct ulist_node *unode; - struct ulist_iterator uiter; - -@@ -2375,7 +2376,7 @@ static int qgroup_reserve(struct btrfs_root *root, u64 num_bytes, bool enforce) - - if (num_bytes == 0) - return 0; -- -+retry: - spin_lock(&fs_info->qgroup_lock); - quota_root = fs_info->quota_root; - if (!quota_root) -@@ -2402,6 +2403,27 @@ static int qgroup_reserve(struct btrfs_root *root, u64 num_bytes, bool enforce) - qg = unode_aux_to_qgroup(unode); - - if (enforce && !qgroup_check_limits(qg, num_bytes)) { -+ /* -+ * Commit the tree and retry, since we may have -+ * deletions which would free up space. -+ */ -+ if (!retried && qg->reserved > 0) { -+ struct btrfs_trans_handle *trans; -+ -+ spin_unlock(&fs_info->qgroup_lock); -+ ret = btrfs_start_delalloc_inodes(root, 0); -+ if (ret) -+ return ret; -+ btrfs_wait_ordered_extents(root, -1, 0, (u64)-1); -+ trans = btrfs_join_transaction(root); -+ if (IS_ERR(trans)) -+ return PTR_ERR(trans); -+ ret = btrfs_commit_transaction(trans); -+ if (ret) -+ return ret; -+ retried++; -+ goto retry; -+ } - ret = -EDQUOT; - goto out; - } --- -2.10.2 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drm-nouveau-gpio-enable-interrupts-on-cards-with-32-.patch new/patches.fixes/drm-nouveau-gpio-enable-interrupts-on-cards-with-32-.patch --- old/patches.fixes/drm-nouveau-gpio-enable-interrupts-on-cards-with-32-.patch 2017-06-26 08:56:10.000000000 +0200 +++ new/patches.fixes/drm-nouveau-gpio-enable-interrupts-on-cards-with-32-.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,34 +0,0 @@ -From: Adam Borowski <kilob...@angband.pl> -Date: Sun, 2 Apr 2017 07:03:28 +0200 -Subject: drm/nouveau/gpio: enable interrupts on cards with 32 gpio lines -Git-commit: 99a97a8ba9881fc47901ff36b057e5cd0bf06af0 -Patch-mainline: v4.12-rc1 -References: bnc#1045105 - -The code attempts to enable them, but hits an undefined behaviour by -shifting by the entire register's width: - - int lines = 32; - u32 mask = (1 << lines) - 1; // 00000000 on x86 - u32 mask = (1 << lines) - 1; // ffffffff on arm (32) - u32 mask = (1 << lines) - 1; // 00000000 on arm64 - u32 mask = (1ULL << lines) - 1; // ffffffff everywhere - -Signed-off-by: Adam Borowski <kilob...@angband.pl> -Signed-off-by: Ben Skeggs <bske...@redhat.com> -Signed-off-by: Jiri Slaby <jsl...@suse.cz> ---- - drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c -+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.c -@@ -164,7 +164,7 @@ static int - nvkm_gpio_fini(struct nvkm_subdev *subdev, bool suspend) - { - struct nvkm_gpio *gpio = nvkm_gpio(subdev); -- u32 mask = (1 << gpio->func->lines) - 1; -+ u32 mask = (1ULL << gpio->func->lines) - 1; - - gpio->func->intr_mask(gpio, NVKM_GPIO_TOGGLED, mask, 0); - gpio->func->intr_stat(gpio, &mask, &mask); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/reiserfs-make-cancel_old_flush-reliable.patch new/patches.fixes/reiserfs-make-cancel_old_flush-reliable.patch --- old/patches.fixes/reiserfs-make-cancel_old_flush-reliable.patch 2017-06-26 08:56:10.000000000 +0200 +++ new/patches.fixes/reiserfs-make-cancel_old_flush-reliable.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,115 +0,0 @@ -From: Jan Kara <j...@suse.cz> -Date: Wed, 5 Apr 2017 14:09:48 +0200 -Subject: reiserfs: Make cancel_old_flush() reliable -Git-commit: 71b0576bdb862e964a82c73327cdd1a249c53e67 -Patch-mainline: v4.12-rc1 -References: bsc#1037795 - -Currently canceling of delayed work that flushes old data using -cancel_old_flush() does not prevent work from being requeued. Thus -in theory new work can be queued after cancel_old_flush() from -reiserfs_freeze() has run. This will become larger problem once -flush_old_commits() can requeue the work itself. - -Fix the problem by recording in sbi->work_queue that flushing work is -canceled and should not be requeued. - -Signed-off-by: Jan Kara <j...@suse.cz> -Acked-by: Jeff Mahoney <je...@suse.com> ---- - fs/reiserfs/journal.c | 2 +- - fs/reiserfs/reiserfs.h | 1 + - fs/reiserfs/super.c | 21 +++++++++++++++------ - 3 files changed, 17 insertions(+), 7 deletions(-) - -diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c -index aa40c242f1db..da01f497180a 100644 ---- a/fs/reiserfs/journal.c -+++ b/fs/reiserfs/journal.c -@@ -1961,7 +1961,7 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, - * will be requeued because superblock is being shutdown and doesn't - * have MS_ACTIVE set. - */ -- cancel_delayed_work_sync(&REISERFS_SB(sb)->old_work); -+ reiserfs_cancel_old_flush(sb); - /* wait for all commits to finish */ - cancel_delayed_work_sync(&SB_JOURNAL(sb)->j_work); - -diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h -index 5dcf3ab83886..6ca00471afbf 100644 ---- a/fs/reiserfs/reiserfs.h -+++ b/fs/reiserfs/reiserfs.h -@@ -2948,6 +2948,7 @@ int reiserfs_allocate_list_bitmaps(struct super_block *s, - struct reiserfs_list_bitmap *, unsigned int); - - void reiserfs_schedule_old_flush(struct super_block *s); -+void reiserfs_cancel_old_flush(struct super_block *s); - void add_save_link(struct reiserfs_transaction_handle *th, - struct inode *inode, int truncate); - int remove_save_link(struct inode *inode, int truncate); -diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c -index feabcde0290d..91cf5cbd6332 100644 ---- a/fs/reiserfs/super.c -+++ b/fs/reiserfs/super.c -@@ -90,7 +90,9 @@ static void flush_old_commits(struct work_struct *work) - s = sbi->s_journal->j_work_sb; - - spin_lock(&sbi->old_work_lock); -- sbi->work_queued = 0; -+ /* Avoid clobbering the cancel state... */ -+ if (sbi->work_queued == 1) -+ sbi->work_queued = 0; - spin_unlock(&sbi->old_work_lock); - - reiserfs_sync_fs(s, 1); -@@ -117,21 +119,22 @@ void reiserfs_schedule_old_flush(struct super_block *s) - spin_unlock(&sbi->old_work_lock); - } - --static void cancel_old_flush(struct super_block *s) -+void reiserfs_cancel_old_flush(struct super_block *s) - { - struct reiserfs_sb_info *sbi = REISERFS_SB(s); - -- cancel_delayed_work_sync(&REISERFS_SB(s)->old_work); - spin_lock(&sbi->old_work_lock); -- sbi->work_queued = 0; -+ /* Make sure no new flushes will be queued */ -+ sbi->work_queued = 2; - spin_unlock(&sbi->old_work_lock); -+ cancel_delayed_work_sync(&REISERFS_SB(s)->old_work); - } - - static int reiserfs_freeze(struct super_block *s) - { - struct reiserfs_transaction_handle th; - -- cancel_old_flush(s); -+ reiserfs_cancel_old_flush(s); - - reiserfs_write_lock(s); - if (!(s->s_flags & MS_RDONLY)) { -@@ -152,7 +155,13 @@ static int reiserfs_freeze(struct super_block *s) - - static int reiserfs_unfreeze(struct super_block *s) - { -+ struct reiserfs_sb_info *sbi = REISERFS_SB(s); -+ - reiserfs_allow_writes(s); -+ spin_lock(&sbi->old_work_lock); -+ /* Allow old_work to run again */ -+ sbi->work_queued = 0; -+ spin_unlock(&sbi->old_work_lock); - return 0; - } - -@@ -2194,7 +2203,7 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent) - if (sbi->commit_wq) - destroy_workqueue(sbi->commit_wq); - -- cancel_delayed_work_sync(&REISERFS_SB(s)->old_work); -+ reiserfs_cancel_old_flush(s); - - reiserfs_free_bitmap_cache(s); - if (SB_BUFFER_WITH_SB(s)) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/reiserfs-protect-dquot_writeback_dquots-by-s_umount-semaphore.patch new/patches.fixes/reiserfs-protect-dquot_writeback_dquots-by-s_umount-semaphore.patch --- old/patches.fixes/reiserfs-protect-dquot_writeback_dquots-by-s_umount-semaphore.patch 2017-06-26 08:56:10.000000000 +0200 +++ new/patches.fixes/reiserfs-protect-dquot_writeback_dquots-by-s_umount-semaphore.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,59 +0,0 @@ -From: Jan Kara <j...@suse.cz> -Date: Wed, 5 Apr 2017 14:17:30 +0200 -Subject: reiserfs: Protect dquot_writeback_dquots() by s_umount semaphore -Git-commit: 1e0e653f1136a413a9969e5d0d548ee6499b9763 -Patch-mainline: v4.12-rc1 -References: bsc#1037795 - -dquot_writeback_dquots() expects s_umount semaphore to be held to -protect it from other concurrent quota operations. reiserfs_sync_fs() -can call dquot_writeback_dquots() without holding s_umount semaphore -when called from flush_old_commits(). - -Fix the problem by grabbing s_umount in flush_old_commits(). However we -have to be careful and use only trylock since reiserfs_cancel_old_sync() -can be waiting for flush_old_commits() to complete while holding -s_umount semaphore. Possible postponing of sync work is not a big deal -though as that is only an opportunistic flush. - -Fixes: 9d1ccbe70e0b14545caad12dc73adb3605447df0 -Reported-by: Jan Beulich <jbeul...@suse.com> -Signed-off-by: Jan Kara <j...@suse.cz> -Acked-by: Jeff Mahoney <je...@suse.com> ---- - fs/reiserfs/super.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c -index 91cf5cbd6332..f536e12c4b1d 100644 ---- a/fs/reiserfs/super.c -+++ b/fs/reiserfs/super.c -@@ -89,6 +89,19 @@ static void flush_old_commits(struct work_struct *work) - sbi = container_of(work, struct reiserfs_sb_info, old_work.work); - s = sbi->s_journal->j_work_sb; - -+ /* -+ * We need s_umount for protecting quota writeback. We have to use -+ * trylock as reiserfs_cancel_old_flush() may be waiting for this work -+ * to complete with s_umount held. -+ */ -+ if (!down_read_trylock(&s->s_umount)) { -+ /* Requeue work if we are not cancelling it */ -+ spin_lock(&sbi->old_work_lock); -+ if (sbi->work_queued == 1) -+ queue_delayed_work(system_long_wq, &sbi->old_work, HZ); -+ spin_unlock(&sbi->old_work_lock); -+ return; -+ } - spin_lock(&sbi->old_work_lock); - /* Avoid clobbering the cancel state... */ - if (sbi->work_queued == 1) -@@ -96,6 +109,7 @@ static void flush_old_commits(struct work_struct *work) - spin_unlock(&sbi->old_work_lock); - - reiserfs_sync_fs(s, 1); -+ up_read(&s->s_umount); - } - - void reiserfs_schedule_old_flush(struct super_block *s) - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/tty-Fix-ldisc-crash-on-reopened-tty.patch new/patches.fixes/tty-Fix-ldisc-crash-on-reopened-tty.patch --- old/patches.fixes/tty-Fix-ldisc-crash-on-reopened-tty.patch 2017-06-26 08:56:10.000000000 +0200 +++ new/patches.fixes/tty-Fix-ldisc-crash-on-reopened-tty.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,97 +0,0 @@ -From: Peter Hurley <pe...@hurleysoftware.com> -Date: Thu, 16 Mar 2017 14:08:26 +1100 -Subject: tty: Fix ldisc crash on reopened tty -Git-commit: 71472fa9c52b1da27663c275d416d8654b905f05 -Patch-mainline: v4.12-rc1 -References: bnc#1043488 - -If the tty has been hungup, the ldisc instance may have been destroyed. -Continued input to the tty will be ignored as long as the ldisc instance -is not visible to the flush_to_ldisc kworker. However, when the tty -is reopened and a new ldisc instance is created, the flush_to_ldisc -kworker can obtain an ldisc reference before the new ldisc is -completely initialized. This will likely crash: - - BUG: unable to handle kernel paging request at 0000000000002260 - IP: [<ffffffff8152dc5d>] n_tty_receive_buf_common+0x6d/0xb80 - PGD 2ab581067 PUD 290c11067 PMD 0 - Oops: 0000 [#1] PREEMPT SMP - Modules linked in: nls_iso8859_1 ip6table_filter [.....] - CPU: 2 PID: 103 Comm: kworker/u16:1 Not tainted 4.6.0-rc7+wip-xeon+debug #rc7+wip - Hardware name: Dell Inc. Precision WorkStation T5400 /0RW203, BIOS A11 04/30/2012 - Workqueue: events_unbound flush_to_ldisc - task: ffff8802ad16d100 ti: ffff8802ad31c000 task.ti: ffff8802ad31c000 - RIP: 0010:[<ffffffff8152dc5d>] [<ffffffff8152dc5d>] n_tty_receive_buf_common+0x6d/0xb80 - RSP: 0018:ffff8802ad31fc70 EFLAGS: 00010296 - RAX: 0000000000000000 RBX: ffff8802aaddd800 RCX: 0000000000000001 - RDX: 00000000ffffffff RSI: ffffffff810db48f RDI: 0000000000000246 - RBP: ffff8802ad31fd08 R08: 0000000000000000 R09: 0000000000000001 - R10: ffff8802aadddb28 R11: 0000000000000001 R12: ffff8800ba6da808 - R13: ffff8802ad18be80 R14: ffff8800ba6da858 R15: ffff8800ba6da800 - FS: 0000000000000000(0000) GS:ffff8802b0a00000(0000) knlGS:0000000000000000 - CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 - CR2: 0000000000002260 CR3: 000000028ee5d000 CR4: 00000000000006e0 - Stack: - ffffffff81531219 ffff8802aadddab8 ffff8802aadddde0 ffff8802aadddd78 - ffffffff00000001 ffff8800ba6da858 ffff8800ba6da860 ffff8802ad31fd30 - ffffffff81885f78 ffffffff81531219 0000000000000000 0000000200000000 - Call Trace: - [<ffffffff81531219>] ? flush_to_ldisc+0x49/0xd0 - [<ffffffff81885f78>] ? mutex_lock_nested+0x2c8/0x430 - [<ffffffff81531219>] ? flush_to_ldisc+0x49/0xd0 - [<ffffffff8152e784>] n_tty_receive_buf2+0x14/0x20 - [<ffffffff81530cb2>] tty_ldisc_receive_buf+0x22/0x50 - [<ffffffff8153128e>] flush_to_ldisc+0xbe/0xd0 - [<ffffffff810a0ebd>] process_one_work+0x1ed/0x6e0 - [<ffffffff810a0e3f>] ? process_one_work+0x16f/0x6e0 - [<ffffffff810a13fe>] worker_thread+0x4e/0x490 - [<ffffffff810a13b0>] ? process_one_work+0x6e0/0x6e0 - [<ffffffff810a7ef2>] kthread+0xf2/0x110 - [<ffffffff810ae68c>] ? preempt_count_sub+0x4c/0x80 - [<ffffffff8188ab52>] ret_from_fork+0x22/0x50 - [<ffffffff810a7e00>] ? kthread_create_on_node+0x220/0x220 - Code: ff ff e8 27 a0 35 00 48 8d 83 78 05 00 00 c7 45 c0 00 00 00 00 48 89 45 80 48 - 8d 83 e0 05 00 00 48 89 85 78 ff ff ff 48 8b 45 b8 <48> 8b b8 60 22 00 00 48 - 8b 30 89 f8 8b 8b 88 04 00 00 29 f0 8d - RIP [<ffffffff8152dc5d>] n_tty_receive_buf_common+0x6d/0xb80 - RSP <ffff8802ad31fc70> - CR2: 0000000000002260 - -Ensure the kworker cannot obtain the ldisc reference until the new ldisc -is completely initialized. - -Fixes: 892d1fa7eaae ("tty: Destroy ldisc instance on hangup") -Reported-by: Mikulas Patocka <mpato...@redhat.com> -Signed-off-by: Peter Hurley <pe...@hurleysoftware.com> -Signed-off-by: Michael Neuling <mi...@neuling.org> -Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> -Signed-off-by: Jiri Slaby <jsl...@suse.cz> ---- - drivers/tty/tty_ldisc.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - ---- a/drivers/tty/tty_ldisc.c -+++ b/drivers/tty/tty_ldisc.c -@@ -672,16 +672,17 @@ int tty_ldisc_reinit(struct tty_struct * - tty_ldisc_put(tty->ldisc); - } - -- /* switch the line discipline */ -- tty->ldisc = ld; - tty_set_termios_ldisc(tty, disc); -- retval = tty_ldisc_open(tty, tty->ldisc); -+ retval = tty_ldisc_open(tty, ld); - if (retval) { - if (!WARN_ON(disc == N_TTY)) { -- tty_ldisc_put(tty->ldisc); -- tty->ldisc = NULL; -+ tty_ldisc_put(ld); -+ ld = NULL; - } - } -+ -+ /* switch the line discipline */ -+ smp_store_release(&tty->ldisc, ld); - return retval; - } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/tty-handle-the-case-where-we-cannot-restore-a-line-d.patch new/patches.fixes/tty-handle-the-case-where-we-cannot-restore-a-line-d.patch --- old/patches.fixes/tty-handle-the-case-where-we-cannot-restore-a-line-d.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/tty-handle-the-case-where-we-cannot-restore-a-line-d.patch 2017-07-10 09:29:09.000000000 +0200 @@ -0,0 +1,200 @@ +From: Alan Cox <alan@llwyncelyn.cymru> +Date: Fri, 2 Jun 2017 13:49:30 +0100 +Subject: tty: handle the case where we cannot restore a line discipline +Patch-mainline: v4.13-rc1 +Git-commit: 8a8dabf2dd68caff842d38057097c23bc514ea6e +References: bnc#1042878 + +Historically the N_TTY driver could never fail but this has become broken over +time. Rather than trying to rewrite half the ldisc layer to fix the breakage +introduce a second level of fallback with an N_NULL ldisc which cannot fail, +and thus restore the guarantees required by the ldisc layer. + +We still try and fail to N_TTY first. It's much more useful to find yourself +back in your old ldisc (first attempt) or in N_TTY (second attempt), and while +I'm not aware of any code out there that makes those assumptions it's good to +drive(r) defensively. + +Signed-off-by: Alan Cox <a...@linux.intel.com> +Reported-by: Dmitry Vyukov <dvyu...@google.com> +Tested-by: Dmitry Vyukov <dvyu...@google.com> +Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> +Signed-off-by: Jiri Slaby <jsl...@suse.cz> +--- + drivers/tty/Makefile | 3 + + drivers/tty/n_null.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++ + drivers/tty/tty_ldisc.c | 44 +++++++++++++++++-------- + include/uapi/linux/tty.h | 1 + 4 files changed, 113 insertions(+), 15 deletions(-) + create mode 100644 drivers/tty/n_null.c + +--- a/drivers/tty/Makefile ++++ b/drivers/tty/Makefile +@@ -1,6 +1,7 @@ + obj-$(CONFIG_TTY) += tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \ + tty_buffer.o tty_port.o tty_mutex.o \ +- tty_ldsem.o tty_baudrate.o tty_jobctrl.o ++ tty_ldsem.o tty_baudrate.o tty_jobctrl.o \ ++ n_null.o + obj-$(CONFIG_LEGACY_PTYS) += pty.o + obj-$(CONFIG_UNIX98_PTYS) += pty.o + obj-$(CONFIG_AUDIT) += tty_audit.o +--- /dev/null ++++ b/drivers/tty/n_null.c +@@ -0,0 +1,80 @@ ++#include <linux/types.h> ++#include <linux/errno.h> ++#include <linux/tty.h> ++#include <linux/module.h> ++ ++/* ++ * n_null.c - Null line discipline used in the failure path ++ * ++ * Copyright (C) Intel 2017 ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 ++ * as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ */ ++ ++static int n_null_open(struct tty_struct *tty) ++{ ++ return 0; ++} ++ ++static void n_null_close(struct tty_struct *tty) ++{ ++} ++ ++static ssize_t n_null_read(struct tty_struct *tty, struct file *file, ++ unsigned char __user * buf, size_t nr) ++{ ++ return -EOPNOTSUPP; ++} ++ ++static ssize_t n_null_write(struct tty_struct *tty, struct file *file, ++ const unsigned char *buf, size_t nr) ++{ ++ return -EOPNOTSUPP; ++} ++ ++static void n_null_receivebuf(struct tty_struct *tty, ++ const unsigned char *cp, char *fp, ++ int cnt) ++{ ++} ++ ++static struct tty_ldisc_ops null_ldisc = { ++ .owner = THIS_MODULE, ++ .magic = TTY_LDISC_MAGIC, ++ .name = "n_null", ++ .open = n_null_open, ++ .close = n_null_close, ++ .read = n_null_read, ++ .write = n_null_write, ++ .receive_buf = n_null_receivebuf ++}; ++ ++static int __init n_null_init(void) ++{ ++ BUG_ON(tty_register_ldisc(N_NULL, &null_ldisc)); ++ return 0; ++} ++ ++static void __exit n_null_exit(void) ++{ ++ tty_unregister_ldisc(N_NULL); ++} ++ ++module_init(n_null_init); ++module_exit(n_null_exit); ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Alan Cox"); ++MODULE_ALIAS_LDISC(N_NULL); ++MODULE_DESCRIPTION("Null ldisc driver"); +--- a/drivers/tty/tty_ldisc.c ++++ b/drivers/tty/tty_ldisc.c +@@ -492,6 +492,29 @@ static void tty_ldisc_close(struct tty_s + } + + /** ++ * tty_ldisc_failto - helper for ldisc failback ++ * @tty: tty to open the ldisc on ++ * @ld: ldisc we are trying to fail back to ++ * ++ * Helper to try and recover a tty when switching back to the old ++ * ldisc fails and we need something attached. ++ */ ++ ++static int tty_ldisc_failto(struct tty_struct *tty, int ld) ++{ ++ struct tty_ldisc *disc = tty_ldisc_get(tty, ld); ++ int r; ++ ++ if (IS_ERR(disc)) ++ return PTR_ERR(disc); ++ tty->ldisc = disc; ++ tty_set_termios_ldisc(tty, ld); ++ if ((r = tty_ldisc_open(tty, disc)) < 0) ++ tty_ldisc_put(disc); ++ return r; ++} ++ ++/** + * tty_ldisc_restore - helper for tty ldisc change + * @tty: tty to recover + * @old: previous ldisc +@@ -502,9 +525,6 @@ static void tty_ldisc_close(struct tty_s + + static void tty_ldisc_restore(struct tty_struct *tty, struct tty_ldisc *old) + { +- struct tty_ldisc *new_ldisc; +- int r; +- + /* There is an outstanding reference here so this is safe */ + old = tty_ldisc_get(tty, old->ops->num); + WARN_ON(IS_ERR(old)); +@@ -512,17 +532,13 @@ static void tty_ldisc_restore(struct tty + tty_set_termios_ldisc(tty, old->ops->num); + if (tty_ldisc_open(tty, old) < 0) { + tty_ldisc_put(old); +- /* This driver is always present */ +- new_ldisc = tty_ldisc_get(tty, N_TTY); +- if (IS_ERR(new_ldisc)) +- panic("n_tty: get"); +- tty->ldisc = new_ldisc; +- tty_set_termios_ldisc(tty, N_TTY); +- r = tty_ldisc_open(tty, new_ldisc); +- if (r < 0) +- panic("Couldn't open N_TTY ldisc for " +- "%s --- error %d.", +- tty_name(tty), r); ++ /* The traditional behaviour is to fall back to N_TTY, we ++ want to avoid falling back to N_NULL unless we have no ++ choice to avoid the risk of breaking anything */ ++ if (tty_ldisc_failto(tty, N_TTY) < 0 && ++ tty_ldisc_failto(tty, N_NULL) < 0) ++ panic("Couldn't open N_NULL ldisc for %s.", ++ tty_name(tty)); + } + } + +--- a/include/uapi/linux/tty.h ++++ b/include/uapi/linux/tty.h +@@ -35,5 +35,6 @@ + #define N_TRACESINK 23 /* Trace data routing for MIPI P1149.7 */ + #define N_TRACEROUTER 24 /* Trace data routing for MIPI P1149.7 */ + #define N_NCI 25 /* NFC NCI UART */ ++#define N_NULL 27 /* Null ldisc used for error handling */ + + #endif /* _UAPI_LINUX_TTY_H */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/usb-early-Remove-trace_printk-callers-in-xhci-dbc.patch new/patches.fixes/usb-early-Remove-trace_printk-callers-in-xhci-dbc.patch --- old/patches.fixes/usb-early-Remove-trace_printk-callers-in-xhci-dbc.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/usb-early-Remove-trace_printk-callers-in-xhci-dbc.patch 2017-07-10 09:29:09.000000000 +0200 @@ -0,0 +1,35 @@ +From: Lu Baolu <baolu...@linux.intel.com> +Date: Sat, 3 Jun 2017 17:15:06 +0800 +Subject: usb/early: Remove trace_printk() callers in xhci-dbc +Patch-mainline: Submitted - 20170603 +References: bsc#1042295 + +Trace_printk() was used to log debug messages in xhci-dbc.c where +printk() isn't feasible. As there should not be a single caller to +trace_printk() in normal kernels, replace them with empty functions. + +Cc: Vlastimil Babka <vbabka.l...@gmail.com> +Cc: Steven Rostedt <rost...@goodmis.org> +Cc: Peter Zijlstra <pet...@infradead.org> +Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org> +Signed-off-by: Lu Baolu <baolu...@linux.intel.com> +Acked-by: Michal Kubecek <mkube...@suse.cz> +--- + drivers/usb/early/xhci-dbc.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/drivers/usb/early/xhci-dbc.c b/drivers/usb/early/xhci-dbc.c +index 1268818e2263..12fe70beae69 100644 +--- a/drivers/usb/early/xhci-dbc.c ++++ b/drivers/usb/early/xhci-dbc.c +@@ -32,7 +32,6 @@ + static struct xdbc_state xdbc; + static bool early_console_keep; + +-#define XDBC_TRACE + #ifdef XDBC_TRACE + #define xdbc_trace trace_printk + #else +-- +2.13.1 + ++++++ patches.kernel.org.tar.bz2 ++++++ ++++ 31934 lines of diff (skipped) ++++++ patches.suse.tar.bz2 ++++++ ++++ 10710 lines of diff (skipped) ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:58.359260226 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:58.359260226 +0200 @@ -27,14 +27,6 @@ # DO NOT MODIFY THEM! # Send separate patches upstream if you find a problem... ######################################################## - patches.kernel.org/patch-4.11.1 - patches.kernel.org/patch-4.11.1-2 - patches.kernel.org/patch-4.11.2-3 - patches.kernel.org/patch-4.11.3-4 - patches.kernel.org/patch-4.11.4-5 - patches.kernel.org/patch-4.11.5-6 - patches.kernel.org/patch-4.11.6-7 - patches.kernel.org/patch-4.11.7-8 ######################################################## # Build fixes that apply to the vanilla kernel too. @@ -229,8 +221,6 @@ ######################################################## patches.fixes/0001-Revert-SUNRPC-xs_sock_mark_closed-does-not-need-to-t.patch - patches.fixes/0001-SUNRPC-Refactor-svc_set_num_threads.patch - patches.fixes/0002-NFSv4-Fix-callback-server-shutdown.patch ######################################################## # lockd + statd @@ -253,8 +243,6 @@ # btrfs ######################################################## - patches.fixes/btrfs-qgroups-Retry-after-commit-on-getting-EDQUOT.patch - # Not upstream yet patches.suse/btrfs-add-cond_resched-to-btrfs_qgroup_trace_leaf_items @@ -262,13 +250,12 @@ patches.suse/btrfs-provide-super_operations-get_inode_dev patches.suse/btrfs-fs-super.c-add-new-super-block-devices-super_block_d.patch patches.suse/btrfs-btrfs-use-the-new-VFS-super_block_dev.patch + patches.suse/btrfs-8447-serialize-subvolume-mounts-with-potentially-mi.patch ######################################################## # Reiserfs Patches ######################################################## patches.fixes/reiserfs-fix-race-in-prealloc-discard.patch - patches.fixes/reiserfs-make-cancel_old_flush-reliable.patch - patches.fixes/reiserfs-protect-dquot_writeback_dquots-by-s_umount-semaphore.patch patches.fixes/reiserfs-don-t-preallocate-blocks-for-extended-attributes.patch ######################################################## @@ -294,6 +281,9 @@ patches.drivers/pstore_disable_efi_backend_by_default.patch patches.suse/pstore-backend-autoaction + patches.fixes/0001-fs-fcntl-f_setown-allow-returning-error.patch + patches.fixes/0002-fs-fcntl-f_setown-avoid-undefined-behaviour.patch + ######################################################## # Overlayfs ######################################################## @@ -336,7 +326,6 @@ ######################################################## patches.fixes/drm-i915-Fix-S4-resume-breakage patches.fixes/drm-amdgpu-revert-update-tile-table-for-oland-hainan.patch - patches.fixes/drm-nouveau-gpio-enable-interrupts-on-cards-with-32-.patch ######################################################## # video4linux @@ -346,7 +335,6 @@ # Network ######################################################## patches.drivers/e1000e-Don-t-return-uninitialized-stats.patch - patches.drivers/0001-IB-rxe-Don-t-clamp-residual-length-to-mtu.patch ######################################################## # Wireless Networking @@ -374,48 +362,17 @@ ######################################################## # USB ######################################################## + patches.fixes/usb-early-Remove-trace_printk-callers-in-xhci-dbc.patch ######################################################## # I2C ######################################################## - patches.drivers/001-x86-platform-intel-iosf_mbi-Add-a-mutex-for-P-Unit-a - patches.drivers/002-x86-platform-intel-iosf_mbi-Add-a-PMIC-bus-access-no - patches.drivers/003-i2c-designware-Rename-accessor_flags-to-flags - patches.drivers/004-i2c-designware-baytrail-Pass-dw_i2c_dev-into-helper- - patches.drivers/005-i2c-designware-baytrail-Only-check-iosf_mbi_availabl - patches.drivers/006-i2c-designware-baytrail-Disallow-the-CPU-to-enter-C6 - patches.drivers/007-i2c-designware-baytrail-Fix-race-when-resetting-the- - patches.drivers/008-i2c-designware-baytrail-Add-support-for-cherrytrail - patches.drivers/009-i2c-designware-baytrail-Acquire-P-Unit-access-on-bus - patches.drivers/010-i2c-designware-baytrail-Call-pmic_bus_access_notifie - patches.drivers/011-drm-i915-Add-intel_uncore_suspend-resume-functions - patches.drivers/012-drm-i915-Listen-for-PMIC-bus-access-notifications - patches.drivers/013-i2c-designware-increase-timeout-of-semaphore-transfe - patches.drivers/014-i2c-designware-Never-suspend-i2c-busses-used-for-acc - patches.drivers/015-i2c-designware-Disable-pm-for-PMIC-i2c-bus-even-if-t - patches.drivers/016-i2c-designware-Get-selected-speed-mode-sda-hold-time - patches.drivers/017-i2c-designware-baytrail-fix-potential-null-pointer-d ######################################################## # Input & Console ######################################################## # patches.suse/SUSE-bootsplash # patches.suse/SUSE-bootsplash-mgadrmfb-workaround - patches.drivers/HID-asus-drop-dependency-on-I2C_HID - patches.drivers/HID-asus-support-Republic-of-Gamers-special-keys - patches.drivers/HID-asus-fix-and-generalize-ambiguous-preprocessor-m - patches.drivers/HID-asus-ignore-declared-dummy-usages - patches.drivers/HID-asus-change-mapping-from-KEY_WLAN-to-KEY_RFKILL - - patches.drivers/Input-axp20x-pek-use-our-own-device-for-errors - patches.drivers/Input-axp20x_pek-add-axp20x_pek_probe_input_device-h - patches.drivers/Input-axp20x-pek-do-not-register-input-device-on-som - - patches.drivers/Input-soc_button_array-use-NULL-for-GPIO-connection - patches.drivers/Input-soc_button_array-Propagate-error-from-gpiod_co - patches.drivers/Input-soc_button_array-get-rid-of-MAX_NBUTTONS - patches.drivers/Input-soc_button_array-add-support-for-ACPI-6.0-Gene - patches.drivers/Input-soc_button_array-properly-map-usage-0x07-0xe3 ########################################################## # Sound @@ -424,7 +381,7 @@ ######################################################## # Char / serial ######################################################## - patches.fixes/tty-Fix-ldisc-crash-on-reopened-tty.patch + patches.fixes/tty-handle-the-case-where-we-cannot-restore-a-line-d.patch ######################################################## # Other driver fixes @@ -432,7 +389,6 @@ # Needs updating WRT d27769ec (block: add GENHD_FL_NO_PART_SCAN) +hare patches.suse/no-partition-scan - patches.drivers/dell-laptop-Adds-support-for-keyboard-backlight-timeout ######################################################## # Other drivers we have added to the tree @@ -486,11 +442,27 @@ # Other patches for debugging ######################################################## patches.suse/crasher.patch - patches.suse/0001-linkage-new-macros-for-assembler-symbols.patch ++dwarf patches.suse/0001-linkage-new-macros-for-assembler-symbols.patch patches.suse/0002-dwarf-do-not-throw-away-unwind-info.patch - patches.suse/0003-DWARF-EH-frame-based-stack-unwinding.patch - patches.suse/stack-unwind-disable-kasan.patch -+needs_updating patches.arch/x86_64-unwind-annotations ++dwarf patches.suse/0003-DWARF-EH-frame-based-stack-unwinding.patch ++dwarf patches.suse/stack-unwind-disable-kasan.patch + + # from upstream + patches.suse/0001-objtool-Move-checking-code-to-check.c.patch + patches.suse/0002-objtool-x86-Add-several-functions-and-files-to-the-o.patch + patches.suse/0003-objtool-Implement-stack-validation-2.0.patch + patches.suse/0004-objtool-Silence-warnings-for-functions-which-use-IRE.patch + + # pending + patches.suse/0001-x86-entry-64-Refactor-IRQ-stacks-and-make-them-NMI-s.patch + patches.suse/0002-x86-entry-64-Initialize-the-top-of-the-IRQ-stack-bef.patch + patches.suse/0003-x86-dumpstack-fix-occasionally-missing-registers.patch + patches.suse/0004-x86-dumpstack-fix-interrupt-and-exception-stack-boun.patch + patches.suse/0005-objtool-add-ORC-unwind-table-generation.patch + patches.suse/0006-objtool-x86-add-facility-for-asm-code-to-provide-unw.patch + patches.suse/0007-x86-entry-64-add-unwind-hint-annotations.patch + patches.suse/0008-x86-asm-add-unwind-hint-annotations-to-sync_core.patch + patches.suse/0009-x86-unwind-add-ORC-unwinder.patch ######################################################## # Kdump ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.8z95hY/_old 2017-07-17 09:15:58.399254598 +0200 +++ /var/tmp/diff_new_pack.8z95hY/_new 2017-07-17 09:15:58.403254034 +0200 @@ -1,3 +1,3 @@ -2017-06-29 16:37:33 +0200 -GIT Revision: 42bd7a027035420d318d4cb5a3db7233aff32b44 +2017-07-10 09:44:59 +0200 +GIT Revision: ae25ff80fb23f4b229ff95fbc9b2cba627c02751 GIT Branch: stable