Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2022-07-09 16:59:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new.1523 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source" Sat Jul 9 16:59:37 2022 rev:648 rq:987329 version:5.18.9 Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes 2022-07-06 15:41:46.802497822 +0200 +++ /work/SRC/openSUSE:Factory/.kernel-source.new.1523/dtb-aarch64.changes 2022-07-09 16:59:55.468516087 +0200 @@ -1,0 +2,31 @@ +Tue Jul 5 17:41:39 CEST 2022 - tzimmerm...@suse.de + +- drm/aperture: Run fbdev removal before internal helpers (boo#1193472) +- commit aff8e8a + +------------------------------------------------------------------- +Tue Jul 5 11:31:58 CEST 2022 - ti...@suse.de + +- netfilter: nf_tables: stricter validation of element data + (CVE-2022-34918 bsc#1201171). +- commit a1fda0d + +------------------------------------------------------------------- +Mon Jul 4 10:02:15 CEST 2022 - tzimmerm...@suse.de + +- fbdev: Disable sysfb device registration when removing conflicting (boo#1193472) +- commit c76a69f + +------------------------------------------------------------------- +Mon Jul 4 10:02:09 CEST 2022 - tzimmerm...@suse.de + +- firmware: sysfb: Add sysfb_disable() helper function (boo#1193472) +- commit 6072450 + +------------------------------------------------------------------- +Mon Jul 4 10:01:53 CEST 2022 - tzimmerm...@suse.de + +- firmware: sysfb: Make sysfb_create_simplefb() return a pdev pointer (boo#1193472) +- commit 326d1c1 + +------------------------------------------------------------------- @@ -1307,0 +1339,53 @@ +Mon Jun 13 10:42:30 CEST 2022 - tzimmerm...@suse.de + +- drm/format-helper: Add RGB565-to-XRGB8888 conversion (boo#1193472) +- commit b55db46 + +------------------------------------------------------------------- +Mon Jun 13 10:42:14 CEST 2022 - tzimmerm...@suse.de + +- drm/format-helper: Add RGB888-to-XRGB8888 conversion (boo#1193472) +- commit 24daa98 + +------------------------------------------------------------------- +Mon Jun 13 10:41:55 CEST 2022 - tzimmerm...@suse.de + +- drm/format-helper: Print warning on missing format conversion (boo#1193472) +- commit 4895b27 + +------------------------------------------------------------------- +Fri Jun 10 12:23:42 CEST 2022 - tzimmerm...@suse.de + +- Add parameter to disable simple-framebuffer devices (boo#1193472) + Temporary workaround for simpledrm bugs. +- commit 6a1517e + +------------------------------------------------------------------- +Fri Jun 10 11:32:14 CEST 2022 - tzimmerm...@suse.de + +- drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set (boo#1193472) + Temporary workaround for nvidia.ko with simpledrm. +- commit 6295297 + +------------------------------------------------------------------- +Fri Jun 10 11:17:00 CEST 2022 - tzimmerm...@suse.de + +- drm/client: Don't add new command-line mode (boo#1193472) + Backported for simpledrm support. +- commit 8dea538 + +------------------------------------------------------------------- +Fri Jun 10 11:15:58 CEST 2022 - tzimmerm...@suse.de + +- drm/client: Look for command-line modes first (boo#1193472) + Backported for simpledrm support. +- commit 54f7b89 + +------------------------------------------------------------------- +Fri Jun 10 11:14:24 CEST 2022 - tzimmerm...@suse.de + +- drm: Always warn if user-defined modes are not supported (boo#1193472) + Backported for simpledrm support. +- commit 043dddf + +------------------------------------------------------------------- @@ -10623 +10707 @@ -- commit 8e500f5 +- commit e00841d dtb-armv6l.changes: same change dtb-armv7l.changes: same change dtb-riscv64.changes: same change kernel-64kb.changes: same change kernel-debug.changes: same change kernel-default.changes: same change kernel-docs.changes: same change kernel-kvmsmall.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-vanilla.changes: same change kernel-zfcpdump.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dtb-aarch64.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.080523018 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.080523018 +0200 @@ -31,7 +31,7 @@ Name: dtb-aarch64 Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif dtb-armv6l.spec: same change dtb-armv7l.spec: same change dtb-riscv64.spec: same change ++++++ kernel-64kb.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.188523180 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.192523186 +0200 @@ -109,7 +109,7 @@ Group: System/Kernel Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -234,10 +234,10 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel -Provides: kernel-%build_flavor-base-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f -Provides: kernel-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: kernel-%build_flavor-base-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 +Provides: kernel-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 # END COMMON DEPS -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 %obsolete_rebuilds %name Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.216523222 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.220523228 +0200 @@ -109,7 +109,7 @@ Group: System/Kernel Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -234,10 +234,10 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel -Provides: kernel-%build_flavor-base-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f -Provides: kernel-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: kernel-%build_flavor-base-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 +Provides: kernel-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 # END COMMON DEPS -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 %ifarch ppc64 Provides: kernel-kdump = 2.6.28 Obsoletes: kernel-kdump <= 2.6.28 ++++++ kernel-default.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.244523264 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.248523270 +0200 @@ -109,7 +109,7 @@ Group: System/Kernel Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -234,10 +234,10 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel -Provides: kernel-%build_flavor-base-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f -Provides: kernel-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: kernel-%build_flavor-base-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 +Provides: kernel-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 # END COMMON DEPS -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 %ifarch %ix86 Provides: kernel-smp = 2.6.17 Obsoletes: kernel-smp <= 2.6.17 ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.276523312 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.280523318 +0200 @@ -33,7 +33,7 @@ Group: Documentation/Man Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -67,7 +67,7 @@ %endif URL: https://www.kernel.org/ Provides: %name = %version-%source_rel -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%srcversion.tar.xz ++++++ kernel-kvmsmall.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.308523360 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.312523366 +0200 @@ -109,7 +109,7 @@ Group: System/Kernel Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -234,10 +234,10 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel -Provides: kernel-%build_flavor-base-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f -Provides: kernel-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: kernel-%build_flavor-base-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 +Provides: kernel-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 # END COMMON DEPS -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 %obsolete_rebuilds %name Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc kernel-lpae.spec: same change ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.352523426 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.356523432 +0200 @@ -45,7 +45,7 @@ %endif %endif %endif -BuildRequires: kernel%kernel_flavor-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +BuildRequires: kernel%kernel_flavor-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 %if 0%{?rhel_version} BuildRequires: kernel @@ -66,7 +66,7 @@ Group: SLES Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif ++++++ kernel-obs-qa.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.372523456 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.380523468 +0200 @@ -38,7 +38,7 @@ Group: SLES Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.408523510 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.412523516 +0200 @@ -109,7 +109,7 @@ Group: System/Kernel Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -234,10 +234,10 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel -Provides: kernel-%build_flavor-base-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f -Provides: kernel-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: kernel-%build_flavor-base-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 +Provides: kernel-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 # END COMMON DEPS -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 %ifarch %ix86 Provides: kernel-bigsmp = 2.6.17 Obsoletes: kernel-bigsmp <= 2.6.17 ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.440523558 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.452523576 +0200 @@ -33,7 +33,7 @@ Name: kernel-source Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -50,7 +50,7 @@ BuildRequires: sed Requires(post): coreutils sed Provides: %name = %version-%source_rel -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 Provides: linux Provides: multiversion(kernel) Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%srcversion.tar.xz ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.472523606 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.476523613 +0200 @@ -27,7 +27,7 @@ Version: 5.18.9 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -52,7 +52,7 @@ %endif Requires: pesign-obs-integration Provides: %name = %version-%source_rel -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 Provides: multiversion(kernel) Source: README.KSYMS Requires: kernel-devel%variant = %version-%source_rel ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:00.496523643 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:00.500523648 +0200 @@ -109,7 +109,7 @@ Group: System/Kernel Version: 5.18.9 %if 0%{?is_kotd} -Release: <RELEASE>.g0e67dc1 +Release: <RELEASE>.ga7c5f9c %else Release: 0 %endif @@ -234,10 +234,10 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel -Provides: kernel-%build_flavor-base-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f -Provides: kernel-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: kernel-%build_flavor-base-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 +Provides: kernel-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 # END COMMON DEPS -Provides: %name-srchash-0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +Provides: %name-srchash-a7c5f9c7ea0c3909de5203a4e059cfa244f82641 %obsolete_rebuilds %name Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc kernel-zfcpdump.spec: same change ++++++ config.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/default new/config/x86_64/default --- old/config/x86_64/default 2022-06-27 08:41:53.000000000 +0200 +++ new/config/x86_64/default 2022-07-04 10:08:29.000000000 +0200 @@ -2359,7 +2359,7 @@ CONFIG_FW_CFG_SYSFS=m CONFIG_FW_CFG_SYSFS_CMDLINE=y CONFIG_SYSFB=y -# CONFIG_SYSFB_SIMPLEFB is not set +CONFIG_SYSFB_SIMPLEFB=y CONFIG_CS_DSP=m # CONFIG_GOOGLE_FIRMWARE is not set @@ -4599,7 +4599,7 @@ CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m -CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCA=m # @@ -5611,14 +5611,13 @@ CONFIG_RC_ATI_REMOTE=m CONFIG_RC_LOOPBACK=m CONFIG_RC_XBOX_DVD=m -CONFIG_CEC_CORE=m +CONFIG_CEC_CORE=y CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PIN=y # # CEC support # -CONFIG_MEDIA_CEC_RC=y # CONFIG_CEC_PIN_ERROR_INJ is not set CONFIG_MEDIA_CEC_SUPPORT=y CONFIG_CEC_CH7322=m @@ -6408,13 +6407,14 @@ CONFIG_AGP_VIA=y CONFIG_INTEL_GTT=y CONFIG_VGA_SWITCHEROO=y -CONFIG_DRM=m +CONFIG_DRM=y CONFIG_DRM_MIPI_DBI=m CONFIG_DRM_MIPI_DSI=y CONFIG_DRM_DP_AUX_CHARDEV=y +# CONFIG_DRM_DEBUG_MM is not set # CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_DP_HELPER=m -CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_KMS_HELPER=y # CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set # CONFIG_DRM_DEBUG_MODESET_LOCK is not set CONFIG_DRM_FBDEV_EMULATION=y @@ -6427,7 +6427,7 @@ CONFIG_DRM_VRAM_HELPER=m CONFIG_DRM_TTM_HELPER=m CONFIG_DRM_GEM_CMA_HELPER=m -CONFIG_DRM_GEM_SHMEM_HELPER=m +CONFIG_DRM_GEM_SHMEM_HELPER=y CONFIG_DRM_SCHED=m # @@ -6549,7 +6549,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_GM12U320=m CONFIG_DRM_PANEL_MIPI_DBI=m -CONFIG_DRM_SIMPLEDRM=m +CONFIG_DRM_SIMPLEDRM=y # CONFIG_TINYDRM_HX8357D is not set # CONFIG_TINYDRM_ILI9163 is not set # CONFIG_TINYDRM_ILI9225 is not set @@ -6581,11 +6581,11 @@ CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_SYS_FILLRECT=m -CONFIG_FB_SYS_COPYAREA=m -CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set -CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_BACKLIGHT=m CONFIG_FB_MODE_HELPERS=y @@ -6601,7 +6601,7 @@ # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set -CONFIG_FB_UVESA=m +# CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set @@ -6638,7 +6638,6 @@ # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_HYPERV is not set -# CONFIG_FB_SIMPLE is not set CONFIG_FB_SSD1307=m # CONFIG_FB_SM712 is not set # end of Frame buffer Devices diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/kvmsmall new/config/x86_64/kvmsmall --- old/config/x86_64/kvmsmall 2022-06-27 08:41:53.000000000 +0200 +++ new/config/x86_64/kvmsmall 2022-07-04 10:08:29.000000000 +0200 @@ -132,7 +132,6 @@ # CONFIG_F71808E_WDT is not set CONFIG_FAILOVER=y # CONFIG_FB_IBM_GXT4500 is not set -# CONFIG_FB_UVESA is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FCOE_FNIC is not set # CONFIG_FDDI is not set ++++++ patches.suse.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-drm-Always-warn-if-user-defined-modes-are-not-suppor.patch new/patches.suse/0001-drm-Always-warn-if-user-defined-modes-are-not-suppor.patch --- old/patches.suse/0001-drm-Always-warn-if-user-defined-modes-are-not-suppor.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-drm-Always-warn-if-user-defined-modes-are-not-suppor.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,42 @@ +From b6415bd7386bcf9d2e0d6ee1d4ef4186e7a87b24 Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Wed, 11 May 2022 20:31:23 +0200 +Subject: drm: Always warn if user-defined modes are not supported +Git-commit: b6415bd7386bcf9d2e0d6ee1d4ef4186e7a87b24 +Git-repo: git://anongit.freedesktop.org/drm/drm-misc +Patch-mainline: Queued in subsystem maintainer repository +References: boo#1193472 + +Print a warning if a user-specifed display mode is not supported by +the display pipeline. Users specified the display mode on the kernel +command line with the use of the video= parameter. Setting an +unsupported mode will leave the console blank, so we should at least +let the user know why. + +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> +Reviewed-by: Maxime Ripard <max...@cerno.tech> +Link: https://patchwork.freedesktop.org/patch/msgid/20220511183125.14294-2-tzimmerm...@suse.de +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/gpu/drm/drm_modes.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c +index 14b746f7ba975..40b7b245e98c5 100644 +--- a/drivers/gpu/drm/drm_modes.c ++++ b/drivers/gpu/drm/drm_modes.c +@@ -1328,6 +1328,10 @@ void drm_mode_prune_invalid(struct drm_device *dev, + list_for_each_entry_safe(mode, t, mode_list, head) { + if (mode->status != MODE_OK) { + list_del(&mode->head); ++ if (mode->type & DRM_MODE_TYPE_USERDEF) { ++ drm_warn(dev, "User-defined mode not supported: " ++ DRM_MODE_FMT "\n", DRM_MODE_ARG(mode)); ++ } + if (verbose) { + drm_mode_debug_printmodeline(mode); + DRM_DEBUG_KMS("Not using %s mode: %s\n", +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-drm-aperture-Run-fbdev-removal-before-internal-helpe.patch new/patches.suse/0001-drm-aperture-Run-fbdev-removal-before-internal-helpe.patch --- old/patches.suse/0001-drm-aperture-Run-fbdev-removal-before-internal-helpe.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-drm-aperture-Run-fbdev-removal-before-internal-helpe.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,114 @@ +From fb84efa28a48e30b87fa1122e8aab8016c7347cd Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Fri, 17 Jun 2022 14:10:27 +0200 +Subject: drm/aperture: Run fbdev removal before internal helpers +Git-commit: fb84efa28a48e30b87fa1122e8aab8016c7347cd +Git-repo: git://anongit.freedesktop.org/drm/drm.git +Patch-mainline: Queued in subsystem maintainer repository +References: boo#1193472 + +Always run fbdev removal first to remove simpledrm via +sysfb_disable(). This clears the internal state. The later call +to drm_aperture_detach_drivers() then does nothing. Otherwise, +with drm_aperture_detach_drivers() running first, the call to +sysfb_disable() uses inconsistent state. + +Example backtrace show below: + +[ 11.663422] ================================================================== +[ 11.663426] BUG: KASAN: use-after-free in device_del+0x79/0x5f0 +[ 11.663435] Read of size 8 at addr ffff888108185050 by task systemd-udevd/311 +[ 11.663440] CPU: 0 PID: 311 Comm: systemd-udevd Tainted: G E 5 + .19.0-rc2-1-default+ #1689 +[ 11.663445] Hardware name: HP ProLiant DL120 G7, BIOS J01 04/21/2011 +[ 11.663447] Call Trace: +[ 11.663449] <TASK> +[ 11.663451] ? device_del+0x79/0x5f0 +[ 11.663456] dump_stack_lvl+0x5b/0x73 +[ 11.663462] print_address_description.constprop.0+0x1f/0x1b0 +[ 11.663468] ? device_del+0x79/0x5f0 +[ 11.663471] ? device_del+0x79/0x5f0 +[ 11.663475] print_report.cold+0x3c/0x21c +[ 11.663481] ? lock_acquired+0x87/0x1e0 +[ 11.663484] ? lock_acquired+0x87/0x1e0 +[ 11.663489] ? device_del+0x79/0x5f0 +[ 11.663492] kasan_report+0xbf/0xf0 +[ 11.663498] ? device_del+0x79/0x5f0 +[ 11.663503] device_del+0x79/0x5f0 +[ 11.663509] ? device_remove_attrs+0x170/0x170 +[ 11.663514] ? lock_is_held_type+0xe8/0x140 +[ 11.663523] platform_device_del.part.0+0x19/0xe0 +[ 11.663530] platform_device_unregister+0x1c/0x30 +[ 11.663535] sysfb_disable+0x2d/0x70 +[ 11.663540] remove_conflicting_framebuffers+0x1c/0xf0 +[ 11.663546] remove_conflicting_pci_framebuffers+0x130/0x1a0 +[ 11.663554] drm_aperture_remove_conflicting_pci_framebuffers+0x86/0xb0 +[ 11.663561] ? mgag200_pci_remove+0x30/0x30 [mgag200] +[ 11.663578] mgag200_pci_probe+0x2d/0x140 [mgag200] + +Reported-by: Zack Rusin <za...@vmware.com> +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> +Reviewed-by: Zack Rusin <za...@vmware.com> +Fixes: 873eb3b11860 ("fbdev: Disable sysfb device registration when removing conflicting FBs") +Cc: Javier Martinez Canillas <javi...@redhat.com> +Cc: Daniel Vetter <daniel.vet...@ffwll.ch> +Cc: Daniel Vetter <dan...@ffwll.ch> +Cc: Sam Ravnborg <s...@ravnborg.org> +Cc: Helge Deller <del...@gmx.de> +Cc: Thomas Zimmermann <tzimmerm...@suse.de> +Cc: Alex Deucher <alexander.deuc...@amd.com> +Cc: Zhen Lei <thunder.leiz...@huawei.com> +Cc: Changcheng Deng <deng.changch...@zte.com.cn> +Link: https://patchwork.freedesktop.org/patch/msgid/20220617121027.30273-1-tzimmerm...@suse.de +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/gpu/drm/drm_aperture.c | 26 +++++++++++++++----------- + 1 file changed, 15 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/drm_aperture.c b/drivers/gpu/drm/drm_aperture.c +index 74bd4a76b253..059fd71424f6 100644 +--- a/drivers/gpu/drm/drm_aperture.c ++++ b/drivers/gpu/drm/drm_aperture.c +@@ -329,7 +329,20 @@ int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, + const struct drm_driver *req_driver) + { + resource_size_t base, size; +- int bar, ret = 0; ++ int bar, ret; ++ ++ /* ++ * WARNING: Apparently we must kick fbdev drivers before vgacon, ++ * otherwise the vga fbdev driver falls over. ++ */ ++#if IS_REACHABLE(CONFIG_FB) ++ ret = remove_conflicting_pci_framebuffers(pdev, req_driver->name); ++ if (ret) ++ return ret; ++#endif ++ ret = vga_remove_vgacon(pdev); ++ if (ret) ++ return ret; + + for (bar = 0; bar < PCI_STD_NUM_BARS; ++bar) { + if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM)) +@@ -339,15 +352,6 @@ int drm_aperture_remove_conflicting_pci_framebuffers(struct pci_dev *pdev, + drm_aperture_detach_drivers(base, size); + } + +- /* +- * WARNING: Apparently we must kick fbdev drivers before vgacon, +- * otherwise the vga fbdev driver falls over. +- */ +-#if IS_REACHABLE(CONFIG_FB) +- ret = remove_conflicting_pci_framebuffers(pdev, req_driver->name); +-#endif +- if (ret == 0) +- ret = vga_remove_vgacon(pdev); +- return ret; ++ return 0; + } + EXPORT_SYMBOL(drm_aperture_remove_conflicting_pci_framebuffers); +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-drm-client-Don-t-add-new-command-line-mode.patch new/patches.suse/0001-drm-client-Don-t-add-new-command-line-mode.patch --- old/patches.suse/0001-drm-client-Don-t-add-new-command-line-mode.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-drm-client-Don-t-add-new-command-line-mode.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,78 @@ +From 0facdaa249c4e97346bc0b49c893e4a1d336b7dd Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Wed, 11 May 2022 20:31:25 +0200 +Subject: drm/client: Don't add new command-line mode +Git-commit: 0facdaa249c4e97346bc0b49c893e4a1d336b7dd +Git-repo: git://anongit.freedesktop.org/drm/drm-misc +Patch-mainline: Queued in subsystem maintainer repository +References: boo#1193472 + +Don't add a mode for the kernel's command-line parameters from +within the DRM client code. Doing so can result in an unusable +display. If there's no compatible command-line mode, the client +will use one of the connector's preferred modes. + +All mode creation and validation has to be performed by the +connector. When clients run, the connector's fill_modes callback +has already processed the kernel parameters and validated each +mode before adding it. The connector's mode list does not contain +invalid modes. + +v2: + * grammar in commit message (Javier) + +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> +Reviewed-by: Maxime Ripard <max...@cerno.tech> +Link: https://patchwork.freedesktop.org/patch/msgid/20220511183125.14294-4-tzimmerm...@suse.de +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/gpu/drm/drm_client_modeset.c | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c +index b777faa87f043..48e6ce16439fd 100644 +--- a/drivers/gpu/drm/drm_client_modeset.c ++++ b/drivers/gpu/drm/drm_client_modeset.c +@@ -158,8 +158,7 @@ drm_connector_has_preferred_mode(struct drm_connector *connector, int width, int + return NULL; + } + +-static struct drm_display_mode * +-drm_connector_pick_cmdline_mode(struct drm_connector *connector) ++static struct drm_display_mode *drm_connector_pick_cmdline_mode(struct drm_connector *connector) + { + struct drm_cmdline_mode *cmdline_mode; + struct drm_display_mode *mode; +@@ -180,11 +179,10 @@ drm_connector_pick_cmdline_mode(struct drm_connector *connector) + if (cmdline_mode->specified == false) + return NULL; + +- /* attempt to find a matching mode in the list of modes +- * we have gotten so far, if not add a CVT mode that conforms ++ /* ++ * Attempt to find a matching mode in the list of modes we ++ * have gotten so far. + */ +- if (cmdline_mode->rb || cmdline_mode->margins) +- goto create_mode; + + prefer_non_interlace = !cmdline_mode->interlace; + again: +@@ -218,12 +216,7 @@ drm_connector_pick_cmdline_mode(struct drm_connector *connector) + goto again; + } + +-create_mode: +- mode = drm_mode_create_from_cmdline_mode(connector->dev, cmdline_mode); +- if (mode) +- list_add(&mode->head, &connector->modes); +- +- return mode; ++ return NULL; + } + + static bool drm_connector_enabled(struct drm_connector *connector, bool strict) +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-drm-client-Look-for-command-line-modes-first.patch new/patches.suse/0001-drm-client-Look-for-command-line-modes-first.patch --- old/patches.suse/0001-drm-client-Look-for-command-line-modes-first.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-drm-client-Look-for-command-line-modes-first.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,48 @@ +From b959eb4f5b7ea49b47e95c9047d33d1b1cf81057 Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Wed, 11 May 2022 20:31:24 +0200 +Subject: drm/client: Look for command-line modes first +Git-commit: b959eb4f5b7ea49b47e95c9047d33d1b1cf81057 +Git-repo: git://anongit.freedesktop.org/drm/drm-misc +Patch-mainline: Queued in subsystem maintainer repository +References: boo#1193472 + +When picking a mode, first look for modes that have been specified +by the user on the kernel's command line. Only if that fails, use +the existing heuristic of picking a nearby mode from it's various +parameters. + +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> +Reviewed-by: Maxime Ripard <max...@cerno.tech> +Link: https://patchwork.freedesktop.org/patch/msgid/20220511183125.14294-3-tzimmerm...@suse.de +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/gpu/drm/drm_client_modeset.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c +index e6346a67cd981..b777faa87f043 100644 +--- a/drivers/gpu/drm/drm_client_modeset.c ++++ b/drivers/gpu/drm/drm_client_modeset.c +@@ -165,6 +165,17 @@ drm_connector_pick_cmdline_mode(struct drm_connector *connector) + struct drm_display_mode *mode; + bool prefer_non_interlace; + ++ /* ++ * Find a user-defined mode. If the user gave us a valid ++ * mode on the kernel command line, it will show up in this ++ * list. ++ */ ++ ++ list_for_each_entry(mode, &connector->modes, head) { ++ if (mode->type & DRM_MODE_TYPE_USERDEF) ++ return mode; ++ } ++ + cmdline_mode = &connector->cmdline_mode; + if (cmdline_mode->specified == false) + return NULL; +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-drm-format-helper-Add-RGB565-to-XRGB8888-conversion.patch new/patches.suse/0001-drm-format-helper-Add-RGB565-to-XRGB8888-conversion.patch --- old/patches.suse/0001-drm-format-helper-Add-RGB565-to-XRGB8888-conversion.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-drm-format-helper-Add-RGB565-to-XRGB8888-conversion.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,103 @@ +From e08a99d005588f7f1d0647cdbc3368c98471fa6c Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Mon, 25 Apr 2022 09:59:39 +0200 +Subject: drm/format-helper: Add RGB565-to-XRGB8888 conversion +Git-commit: e08a99d005588f7f1d0647cdbc3368c98471fa6c +Patch-mainline: v5.19-rc1 +References: boo#1193472 + +Add a format helper that converts RGB565 to XRGB8888. Use this +function in drm_fb_blit_toio(). Fixes simpledrm output for this +combination of formats. + +UEFI and/or Grub will usually set 32-bit output in XRGB8888 format. +The issue can be reproduced by enabling simpledrm and requesting a +console framebuffer of different format on the kernel command line; +for example + + nomodeset video=1024x768-16 + +In this case, conversion helpers will display nothing on the console. +The patch makes this work by implementing the rsp conversion helpers. +It also enables odd userspace configurations, such as running Xorg +with 16-bit color depth on a 32-bit output buffer. + +v2: + * use helpers for struct drm_rect (Javier) + * improve commit message (Javier) + +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20220425075939.30450-4-tzimmerm...@suse.de +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/gpu/drm/drm_format_helper.c | 46 +++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +diff --git a/drivers/gpu/drm/drm_format_helper.c b/drivers/gpu/drm/drm_format_helper.c +index c83e0bb2e8c75..34b7ef443ad2e 100644 +--- a/drivers/gpu/drm/drm_format_helper.c ++++ b/drivers/gpu/drm/drm_format_helper.c +@@ -411,6 +411,49 @@ void drm_fb_xrgb8888_to_rgb888_toio(void __iomem *dst, unsigned int dst_pitch, + } + EXPORT_SYMBOL(drm_fb_xrgb8888_to_rgb888_toio); + ++static void drm_fb_rgb565_to_xrgb8888_line(void *dbuf, const void *sbuf, unsigned int pixels) ++{ ++ u32 *dbuf32 = dbuf; ++ const u16 *sbuf16 = sbuf; ++ unsigned int x; ++ ++ for (x = 0; x < pixels; x++, ++sbuf16, ++dbuf32) { ++ u32 val32 = ((*sbuf16 & 0xf800) << 8) | ++ ((*sbuf16 & 0x07e0) << 5) | ++ ((*sbuf16 & 0x001f) << 3); ++ *dbuf32 = 0xff000000 | val32 | ++ ((val32 >> 3) & 0x00070007) | ++ ((val32 >> 2) & 0x00000300); ++ } ++} ++ ++static void drm_fb_rgb565_to_xrgb8888_toio(void __iomem *dst, unsigned int dst_pitch, ++ const void *vaddr, const struct drm_framebuffer *fb, ++ const struct drm_rect *clip) ++{ ++ size_t linepixels = drm_rect_width(clip); ++ size_t dst_len = linepixels * 4; ++ unsigned int y, lines = drm_rect_height(clip); ++ void *dbuf; ++ ++ if (!dst_pitch) ++ dst_pitch = dst_len; ++ ++ dbuf = kmalloc(dst_len, GFP_KERNEL); ++ if (!dbuf) ++ return; ++ ++ vaddr += clip_offset(clip, fb->pitches[0], 2); ++ for (y = 0; y < lines; y++) { ++ drm_fb_rgb565_to_xrgb8888_line(dbuf, vaddr, linepixels); ++ memcpy_toio(dst, dbuf, dst_len); ++ vaddr += fb->pitches[0]; ++ dst += dst_pitch; ++ } ++ ++ kfree(dbuf); ++} ++ + static void drm_fb_rgb888_to_xrgb8888_line(void *dbuf, const void *sbuf, unsigned int pixels) + { + u32 *dbuf32 = dbuf; +@@ -628,6 +671,9 @@ int drm_fb_blit_toio(void __iomem *dst, unsigned int dst_pitch, uint32_t dst_for + if (fb_format == DRM_FORMAT_RGB888) { + drm_fb_rgb888_to_xrgb8888_toio(dst, dst_pitch, vmap, fb, clip); + return 0; ++ } else if (fb_format == DRM_FORMAT_RGB565) { ++ drm_fb_rgb565_to_xrgb8888_toio(dst, dst_pitch, vmap, fb, clip); ++ return 0; + } + } else if (dst_format == DRM_FORMAT_XRGB2101010) { + if (fb_format == DRM_FORMAT_XRGB8888) { +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-drm-format-helper-Add-RGB888-to-XRGB8888-conversion.patch new/patches.suse/0001-drm-format-helper-Add-RGB888-to-XRGB8888-conversion.patch --- old/patches.suse/0001-drm-format-helper-Add-RGB888-to-XRGB8888-conversion.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-drm-format-helper-Add-RGB888-to-XRGB8888-conversion.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,103 @@ +From 26c30f223123b7feff0ca8722af2f93935b08b85 Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Mon, 25 Apr 2022 09:59:38 +0200 +Subject: drm/format-helper: Add RGB888-to-XRGB8888 conversion +Git-commit: 26c30f223123b7feff0ca8722af2f93935b08b85 +Patch-mainline: v5.19-rc1 +References: boo#1193472 + +Add a format helper that converts RGB888 to XRGB8888. Use this +function in drm_fb_blit_toio(). Fixes simpledrm output for this +combination of formats. + +UEFI and/or Grub will usually set 32-bit output in XRGB8888 format. +The issue can be reproduced by enabling simpledrm and requesting a +console framebuffer of different format on the kernel command line; +for example + + nomodeset video=1024x768-24 + +In this case, conversion helpers will display nothing on the console. +The patch makes this work by implementing the rsp conversion helpers. +It also enables odd userspace configurations, such as running Xorg +with 24-bit color depth on a 32-bit output buffer. + +v2: + * use helpers for struct drm_rect (Javier) + * improve commit message (Javier) + +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20220425075939.30450-3-tzimmerm...@suse.de +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/gpu/drm/drm_format_helper.c | 46 +++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +diff --git a/drivers/gpu/drm/drm_format_helper.c b/drivers/gpu/drm/drm_format_helper.c +index b648f29b21b67..c83e0bb2e8c75 100644 +--- a/drivers/gpu/drm/drm_format_helper.c ++++ b/drivers/gpu/drm/drm_format_helper.c +@@ -411,6 +411,47 @@ void drm_fb_xrgb8888_to_rgb888_toio(void __iomem *dst, unsigned int dst_pitch, + } + EXPORT_SYMBOL(drm_fb_xrgb8888_to_rgb888_toio); + ++static void drm_fb_rgb888_to_xrgb8888_line(void *dbuf, const void *sbuf, unsigned int pixels) ++{ ++ u32 *dbuf32 = dbuf; ++ const u8 *sbuf8 = sbuf; ++ unsigned int x; ++ ++ for (x = 0; x < pixels; x++) { ++ u8 r = *sbuf8++; ++ u8 g = *sbuf8++; ++ u8 b = *sbuf8++; ++ *dbuf32++ = 0xff000000 | (r << 16) | (g << 8) | b; ++ } ++} ++ ++static void drm_fb_rgb888_to_xrgb8888_toio(void __iomem *dst, unsigned int dst_pitch, ++ const void *vaddr, const struct drm_framebuffer *fb, ++ const struct drm_rect *clip) ++{ ++ size_t linepixels = drm_rect_width(clip); ++ size_t dst_len = linepixels * 4; ++ unsigned int y, lines = drm_rect_height(clip); ++ void *dbuf; ++ ++ if (!dst_pitch) ++ dst_pitch = dst_len; ++ ++ dbuf = kmalloc(dst_len, GFP_KERNEL); ++ if (!dbuf) ++ return; ++ ++ vaddr += clip_offset(clip, fb->pitches[0], 3); ++ for (y = 0; y < lines; y++) { ++ drm_fb_rgb888_to_xrgb8888_line(dbuf, vaddr, linepixels); ++ memcpy_toio(dst, dbuf, dst_len); ++ vaddr += fb->pitches[0]; ++ dst += dst_pitch; ++ } ++ ++ kfree(dbuf); ++} ++ + static void drm_fb_xrgb8888_to_xrgb2101010_line(u32 *dbuf, const u32 *sbuf, + unsigned int pixels) + { +@@ -583,6 +624,11 @@ int drm_fb_blit_toio(void __iomem *dst, unsigned int dst_pitch, uint32_t dst_for + drm_fb_xrgb8888_to_rgb888_toio(dst, dst_pitch, vmap, fb, clip); + return 0; + } ++ } else if (dst_format == DRM_FORMAT_XRGB8888) { ++ if (fb_format == DRM_FORMAT_RGB888) { ++ drm_fb_rgb888_to_xrgb8888_toio(dst, dst_pitch, vmap, fb, clip); ++ return 0; ++ } + } else if (dst_format == DRM_FORMAT_XRGB2101010) { + if (fb_format == DRM_FORMAT_XRGB8888) { + drm_fb_xrgb8888_to_xrgb2101010_toio(dst, dst_pitch, vmap, fb, clip); +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-drm-format-helper-Print-warning-on-missing-format-co.patch new/patches.suse/0001-drm-format-helper-Print-warning-on-missing-format-co.patch --- old/patches.suse/0001-drm-format-helper-Print-warning-on-missing-format-co.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-drm-format-helper-Print-warning-on-missing-format-co.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,36 @@ +From 7e553e2ab79a13511bb84559287c06db80a461b1 Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Mon, 25 Apr 2022 09:59:37 +0200 +Subject: drm/format-helper: Print warning on missing format conversion +Git-commit: 7e553e2ab79a13511bb84559287c06db80a461b1 +Patch-mainline: v5.19-rc1 +References: boo#1193472 + +Not all possible format conversions are supported yet. Print a +warning on unsupported combinations. + +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Reviewed-by: Javier Martinez Canillas <javi...@redhat.com> +Link: https://patchwork.freedesktop.org/patch/msgid/20220425075939.30450-2-tzimmerm...@suse.de +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/gpu/drm/drm_format_helper.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/drm_format_helper.c b/drivers/gpu/drm/drm_format_helper.c +index 0e71351147287..b648f29b21b67 100644 +--- a/drivers/gpu/drm/drm_format_helper.c ++++ b/drivers/gpu/drm/drm_format_helper.c +@@ -590,6 +590,9 @@ int drm_fb_blit_toio(void __iomem *dst, unsigned int dst_pitch, uint32_t dst_for + } + } + ++ drm_warn_once(fb->dev, "No conversion helper from %p4cc to %p4cc found.\n", ++ &fb_format, &dst_format); ++ + return -EINVAL; + } + EXPORT_SYMBOL(drm_fb_blit_toio); +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-fbdev-Disable-sysfb-device-registration-when-removin.patch new/patches.suse/0001-fbdev-Disable-sysfb-device-registration-when-removin.patch --- old/patches.suse/0001-fbdev-Disable-sysfb-device-registration-when-removin.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-fbdev-Disable-sysfb-device-registration-when-removin.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,67 @@ +From 873eb3b11860aada97ddc02d48b54522b92848db Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas <javi...@redhat.com> +Date: Tue, 7 Jun 2022 20:23:36 +0200 +Subject: fbdev: Disable sysfb device registration when removing conflicting + FBs +Git-commit: 873eb3b11860aada97ddc02d48b54522b92848db +Git-repo: git://anongit.freedesktop.org/drm/drm.git +Patch-mainline: Queued in subsystem maintainer repository +References: boo#1193472 + +The platform devices registered by sysfb match with firmware-based DRM or +fbdev drivers, that are used to have early graphics using a framebuffer +provided by the system firmware. + +DRM or fbdev drivers later are probed and remove conflicting framebuffers, +leading to these platform devices for generic drivers to be unregistered. + +But the current solution has a race, since the sysfb_init() function could +be called after a DRM or fbdev driver is probed and request to unregister +the devices for drivers with conflicting framebuffes. + +To prevent this, disable any future sysfb platform device registration by +calling sysfb_disable(), if a driver requests to remove the conflicting +framebuffers. + +Suggested-by: Daniel Vetter <daniel.vet...@ffwll.ch> +Signed-off-by: Javier Martinez Canillas <javi...@redhat.com> +Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch> +Link: https://patchwork.freedesktop.org/patch/msgid/20220607182338.344270-4-javi...@redhat.com +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/video/fbdev/core/fbmem.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c +index 2fda5917c212..e0720fef0ee6 100644 +--- a/drivers/video/fbdev/core/fbmem.c ++++ b/drivers/video/fbdev/core/fbmem.c +@@ -19,6 +19,7 @@ + #include <linux/kernel.h> + #include <linux/major.h> + #include <linux/slab.h> ++#include <linux/sysfb.h> + #include <linux/mm.h> + #include <linux/mman.h> + #include <linux/vt.h> +@@ -1764,6 +1765,17 @@ int remove_conflicting_framebuffers(struct apertures_struct *a, + do_free = true; + } + ++ /* ++ * If a driver asked to unregister a platform device registered by ++ * sysfb, then can be assumed that this is a driver for a display ++ * that is set up by the system firmware and has a generic driver. ++ * ++ * Drivers for devices that don't have a generic driver will never ++ * ask for this, so let's assume that a real driver for the display ++ * was already probed and prevent sysfb to register devices later. ++ */ ++ sysfb_disable(); ++ + mutex_lock(®istration_lock); + do_remove_conflicting_framebuffers(a, name, primary); + mutex_unlock(®istration_lock); +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-firmware-sysfb-Add-sysfb_disable-helper-function.patch new/patches.suse/0001-firmware-sysfb-Add-sysfb_disable-helper-function.patch --- old/patches.suse/0001-firmware-sysfb-Add-sysfb_disable-helper-function.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-firmware-sysfb-Add-sysfb_disable-helper-function.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,159 @@ +From bc824922b264aff40eba8c160972ee07a95e7dd4 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas <javi...@redhat.com> +Date: Tue, 7 Jun 2022 20:23:35 +0200 +Subject: firmware: sysfb: Add sysfb_disable() helper function +Git-commit: bc824922b264aff40eba8c160972ee07a95e7dd4 +Git-repo: git://anongit.freedesktop.org/drm/drm.git +Patch-mainline: Queued in subsystem maintainer repository +References: boo#1193472 + +This can be used by subsystems to unregister a platform device registered +by sysfb and also to disable future platform device registration in sysfb. + +Suggested-by: Daniel Vetter <daniel.vet...@ffwll.ch> +Signed-off-by: Javier Martinez Canillas <javi...@redhat.com> +Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch> +Link: https://patchwork.freedesktop.org/patch/msgid/20220607182338.344270-3-javi...@redhat.com +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + .../driver-api/firmware/other_interfaces.rst | 6 +++ + drivers/firmware/sysfb.c | 54 ++++++++++++++++--- + include/linux/sysfb.h | 12 +++++ + 3 files changed, 66 insertions(+), 6 deletions(-) + +diff --git a/Documentation/driver-api/firmware/other_interfaces.rst b/Documentation/driver-api/firmware/other_interfaces.rst +index b81794e0cfbb..06ac89adaafb 100644 +--- a/Documentation/driver-api/firmware/other_interfaces.rst ++++ b/Documentation/driver-api/firmware/other_interfaces.rst +@@ -13,6 +13,12 @@ EDD Interfaces + .. kernel-doc:: drivers/firmware/edd.c + :internal: + ++Generic System Framebuffers Interface ++------------------------------------- ++ ++.. kernel-doc:: drivers/firmware/sysfb.c ++ :export: ++ + Intel Stratix10 SoC Service Layer + --------------------------------- + Some features of the Intel Stratix10 SoC require a level of privilege +diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c +index b032f40a92de..1f276f108cc9 100644 +--- a/drivers/firmware/sysfb.c ++++ b/drivers/firmware/sysfb.c +@@ -34,21 +34,59 @@ + #include <linux/screen_info.h> + #include <linux/sysfb.h> + ++static struct platform_device *pd; ++static DEFINE_MUTEX(disable_lock); ++static bool disabled; ++ ++static bool sysfb_unregister(void) ++{ ++ if (IS_ERR_OR_NULL(pd)) ++ return false; ++ ++ platform_device_unregister(pd); ++ pd = NULL; ++ ++ return true; ++} ++ ++/** ++ * sysfb_disable() - disable the Generic System Framebuffers support ++ * ++ * This disables the registration of system framebuffer devices that match the ++ * generic drivers that make use of the system framebuffer set up by firmware. ++ * ++ * It also unregisters a device if this was already registered by sysfb_init(). ++ * ++ * Context: The function can sleep. A @disable_lock mutex is acquired to serialize ++ * against sysfb_init(), that registers a system framebuffer device. ++ */ ++void sysfb_disable(void) ++{ ++ mutex_lock(&disable_lock); ++ sysfb_unregister(); ++ disabled = true; ++ mutex_unlock(&disable_lock); ++} ++EXPORT_SYMBOL_GPL(sysfb_disable); ++ + static __init int sysfb_init(void) + { + struct screen_info *si = &screen_info; + struct simplefb_platform_data mode; +- struct platform_device *pd; + const char *name; + bool compatible; +- int ret; ++ int ret = 0; ++ ++ mutex_lock(&disable_lock); ++ if (disabled) ++ goto unlock_mutex; + + /* try to create a simple-framebuffer device */ + compatible = sysfb_parse_mode(si, &mode); + if (compatible) { + pd = sysfb_create_simplefb(si, &mode); + if (!IS_ERR(pd)) +- return 0; ++ goto unlock_mutex; + } + + /* if the FB is incompatible, create a legacy framebuffer device */ +@@ -60,8 +98,10 @@ static __init int sysfb_init(void) + name = "platform-framebuffer"; + + pd = platform_device_alloc(name, 0); +- if (!pd) +- return -ENOMEM; ++ if (!pd) { ++ ret = -ENOMEM; ++ goto unlock_mutex; ++ } + + sysfb_apply_efi_quirks(pd); + +@@ -73,9 +113,11 @@ static __init int sysfb_init(void) + if (ret) + goto err; + +- return 0; ++ goto unlock_mutex; + err: + platform_device_put(pd); ++unlock_mutex: ++ mutex_unlock(&disable_lock); + return ret; + } + +diff --git a/include/linux/sysfb.h b/include/linux/sysfb.h +index 708152e9037b..8ba8b5be5567 100644 +--- a/include/linux/sysfb.h ++++ b/include/linux/sysfb.h +@@ -55,6 +55,18 @@ struct efifb_dmi_info { + int flags; + }; + ++#ifdef CONFIG_SYSFB ++ ++void sysfb_disable(void); ++ ++#else /* CONFIG_SYSFB */ ++ ++static inline void sysfb_disable(void) ++{ ++} ++ ++#endif /* CONFIG_SYSFB */ ++ + #ifdef CONFIG_EFI + + extern struct efifb_dmi_info efifb_dmi_list[]; +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0001-firmware-sysfb-Make-sysfb_create_simplefb-return-a-p.patch new/patches.suse/0001-firmware-sysfb-Make-sysfb_create_simplefb-return-a-p.patch --- old/patches.suse/0001-firmware-sysfb-Make-sysfb_create_simplefb-return-a-p.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/0001-firmware-sysfb-Make-sysfb_create_simplefb-return-a-p.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,130 @@ +From 0949ee75da6c918fcbd567e1bfa4943a56ab4e5d Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas <javi...@redhat.com> +Date: Tue, 7 Jun 2022 20:23:34 +0200 +Subject: firmware: sysfb: Make sysfb_create_simplefb() return a pdev pointer +Git-commit: 0949ee75da6c918fcbd567e1bfa4943a56ab4e5d +Git-repo: git://anongit.freedesktop.org/drm/drm.git +Patch-mainline: Queued in subsystem maintainer repository +References: boo#1193472 + +This function just returned 0 on success or an errno code on error, but it +could be useful for sysfb_init() callers to have a pointer to the device. + +Signed-off-by: Javier Martinez Canillas <javi...@redhat.com> +Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch> +Reviewed-by: Thomas Zimmermann <tzimmerm...@suse.de> +Link: https://patchwork.freedesktop.org/patch/msgid/20220607182338.344270-2-javi...@redhat.com +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/firmware/sysfb.c | 4 ++-- + drivers/firmware/sysfb_simplefb.c | 16 ++++++++-------- + include/linux/sysfb.h | 10 +++++----- + 3 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c +index 2bfbb05f7d89..b032f40a92de 100644 +--- a/drivers/firmware/sysfb.c ++++ b/drivers/firmware/sysfb.c +@@ -46,8 +46,8 @@ static __init int sysfb_init(void) + /* try to create a simple-framebuffer device */ + compatible = sysfb_parse_mode(si, &mode); + if (compatible) { +- ret = sysfb_create_simplefb(si, &mode); +- if (!ret) ++ pd = sysfb_create_simplefb(si, &mode); ++ if (!IS_ERR(pd)) + return 0; + } + +diff --git a/drivers/firmware/sysfb_simplefb.c b/drivers/firmware/sysfb_simplefb.c +index bda8712bfd8c..a353e27f83f5 100644 +--- a/drivers/firmware/sysfb_simplefb.c ++++ b/drivers/firmware/sysfb_simplefb.c +@@ -57,8 +57,8 @@ __init bool sysfb_parse_mode(const struct screen_info *si, + return false; + } + +-__init int sysfb_create_simplefb(const struct screen_info *si, +- const struct simplefb_platform_data *mode) ++__init struct platform_device *sysfb_create_simplefb(const struct screen_info *si, ++ const struct simplefb_platform_data *mode) + { + struct platform_device *pd; + struct resource res; +@@ -76,7 +76,7 @@ __init int sysfb_create_simplefb(const struct screen_info *si, + base |= (u64)si->ext_lfb_base << 32; + if (!base || (u64)(resource_size_t)base != base) { + printk(KERN_DEBUG "sysfb: inaccessible VRAM base\n"); +- return -EINVAL; ++ return ERR_PTR(-EINVAL); + } + + /* +@@ -93,7 +93,7 @@ __init int sysfb_create_simplefb(const struct screen_info *si, + length = mode->height * mode->stride; + if (length > size) { + printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n"); +- return -EINVAL; ++ return ERR_PTR(-EINVAL); + } + length = PAGE_ALIGN(length); + +@@ -104,11 +104,11 @@ __init int sysfb_create_simplefb(const struct screen_info *si, + res.start = base; + res.end = res.start + length - 1; + if (res.end <= res.start) +- return -EINVAL; ++ return ERR_PTR(-EINVAL); + + pd = platform_device_alloc("simple-framebuffer", 0); + if (!pd) +- return -ENOMEM; ++ return ERR_PTR(-ENOMEM); + + sysfb_apply_efi_quirks(pd); + +@@ -124,10 +124,10 @@ __init int sysfb_create_simplefb(const struct screen_info *si, + if (ret) + goto err_put_device; + +- return 0; ++ return pd; + + err_put_device: + platform_device_put(pd); + +- return ret; ++ return ERR_PTR(ret); + } +diff --git a/include/linux/sysfb.h b/include/linux/sysfb.h +index b0dcfa26d07b..708152e9037b 100644 +--- a/include/linux/sysfb.h ++++ b/include/linux/sysfb.h +@@ -72,8 +72,8 @@ static inline void sysfb_apply_efi_quirks(struct platform_device *pd) + + bool sysfb_parse_mode(const struct screen_info *si, + struct simplefb_platform_data *mode); +-int sysfb_create_simplefb(const struct screen_info *si, +- const struct simplefb_platform_data *mode); ++struct platform_device *sysfb_create_simplefb(const struct screen_info *si, ++ const struct simplefb_platform_data *mode); + + #else /* CONFIG_SYSFB_SIMPLE */ + +@@ -83,10 +83,10 @@ static inline bool sysfb_parse_mode(const struct screen_info *si, + return false; + } + +-static inline int sysfb_create_simplefb(const struct screen_info *si, +- const struct simplefb_platform_data *mode) ++static inline struct platform_device *sysfb_create_simplefb(const struct screen_info *si, ++ const struct simplefb_platform_data *mode) + { +- return -EINVAL; ++ return ERR_PTR(-EINVAL); + } + + #endif /* CONFIG_SYSFB_SIMPLE */ +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/Add-parameter-to-disable-simple-framebuffer-devices.patch new/patches.suse/Add-parameter-to-disable-simple-framebuffer-devices.patch --- old/patches.suse/Add-parameter-to-disable-simple-framebuffer-devices.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/Add-parameter-to-disable-simple-framebuffer-devices.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,39 @@ +From f45fd10c7bacf2ec2483509356093d90d0cd2bc8 Mon Sep 17 00:00:00 2001 +From: Thomas Zimmermann <tzimmerm...@suse.de> +Date: Fri, 10 Jun 2022 11:36:52 +0200 +Subject: [PATCH] Add parameter to disable simple-framebuffer devices +Patch-mainline: Never, temporary workaround for simpledrm bugs +References: boo#1193472 + +Temporary workaround for systems that break with simpledrm. Use +'nosimplefb' to go back to the old setup with efifb/vesafb. + +Remaining bugs will get fixed, but in the meantime, we cannot leave +users without display output in any case. + +Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de> +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/firmware/sysfb.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/firmware/sysfb.c b/drivers/firmware/sysfb.c +index a504f7234f352..940c9d6d530ca 100644 +--- a/drivers/firmware/sysfb.c ++++ b/drivers/firmware/sysfb.c +@@ -50,6 +50,12 @@ static int __init simpledrm_disable(char *opt) + } + early_param("nvidia-drm.modeset", simpledrm_disable); + ++static int __init simpledrm_disable_nosimplefb(char *opt) ++{ ++ return simpledrm_disable(opt); ++} ++early_param("nosimplefb", simpledrm_disable_nosimplefb); ++ + static __init int sysfb_init(void) + { + struct screen_info *si = &screen_info; +-- +2.36.1 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch new/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch --- old/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,86 @@ +From 205bec68a0ea67b6bff6fea9603b7b8aeacc9d46 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas <javi...@redhat.com> +Date: Thu, 19 May 2022 14:40:07 +0200 +Subject: [PATCH] drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is + set +Patch-mainline: Never, temporary workaround for nvidia.ko +References: boo#1193472 + +The Nvidia proprietary driver has some bugs that leads to issues if used +with the simpledrm driver. The most noticeable is that does not register +an emulated fbdev device. + +It just relies on a fbdev to be registered by another driver, that could +be that could be attached to the framebuffer console. On UEFI machines, +this is the efifb driver. + +This means that disabling the efifb driver will cause virtual consoles to +not be present in the system when using the Nvidia driver. Legacy BIOS is +not affected just because fbcon is not used there, but instead vgacon. + +Unless a VGA mode is specified using the vga= kernel command line option, +in that case the vesafb driver is used instead and its fbdev attached to +the fbcon. + +This is a problem because with CONFIG_SYSFB_SIMPLEFB=y, the sysfb platform +code attempts to register a "simple-framebuffer" platform device (that is +matched against simpledrm) and only registers either an "efi-framebuffer" +or "vesa-framebuffer" if this fails to be registered due the video modes +not being compatible. + +The Nvidia driver relying on another driver to register the fbdev is quite +fragile, since it can't really assume those will stick around. For example +there are patches posted to remove the EFI and VESA platform devices once +a real DRM or fbdev driver probes. + +But in any case, moving to a simpledrm + emulated fbdev only breaks this +assumption and causes users to not have VT if the Nvidia driver is used. + +So to prevent this, let's add a workaround and make the sysfb to skip the +"simple-framebuffer" registration when nvidia-drm.modeset=1 option is set. + +This is quite horrible, but honestly I can't think of any other approach. + +For this to work, the CONFIG_FB_EFI and CONFIG_FB_VESA config options must +be enabled besides CONFIG_DRM_SIMPLEDRM. + +Signed-off-by: Javier Martinez Canillas <javi...@redhat.com> +Acked-by: Thomas Zimmermann <tzimmerm...@suse.de> +--- + drivers/firmware/sysfb.c | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +--- a/drivers/firmware/sysfb.c ++++ b/drivers/firmware/sysfb.c +@@ -69,6 +69,22 @@ void sysfb_disable(void) + } + EXPORT_SYMBOL_GPL(sysfb_disable); + ++static int skip_simpledrm; ++ ++static int __init simpledrm_disable(char *opt) ++{ ++ if (!opt) ++ return -EINVAL; ++ ++ get_option(&opt, &skip_simpledrm); ++ ++ if (skip_simpledrm) ++ pr_info("The simpledrm driver will not be probed\n"); ++ ++ return 0; ++} ++early_param("nvidia-drm.modeset", simpledrm_disable); ++ + static __init int sysfb_init(void) + { + struct screen_info *si = &screen_info; +@@ -83,7 +99,7 @@ static __init int sysfb_init(void) + + /* try to create a simple-framebuffer device */ + compatible = sysfb_parse_mode(si, &mode); +- if (compatible) { ++ if (compatible && !skip_simpledrm) { + pd = sysfb_create_simplefb(si, &mode); + if (!IS_ERR(pd)) + goto unlock_mutex; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/netfilter-nf_tables-stricter-validation-of-element-d.patch new/patches.suse/netfilter-nf_tables-stricter-validation-of-element-d.patch --- old/patches.suse/netfilter-nf_tables-stricter-validation-of-element-d.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/netfilter-nf_tables-stricter-validation-of-element-d.patch 2022-07-06 07:57:32.000000000 +0200 @@ -0,0 +1,50 @@ +From 7e6bc1f6cabcd30aba0b11219d8e01b952eacbb6 Mon Sep 17 00:00:00 2001 +From: Pablo Neira Ayuso <pa...@netfilter.org> +Date: Sat, 2 Jul 2022 04:16:30 +0200 +Subject: [PATCH] netfilter: nf_tables: stricter validation of element data +Git-commit: 7e6bc1f6cabcd30aba0b11219d8e01b952eacbb6 +Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git +Patch-mainline: Queued in subsystem maintainer repo +References: CVE-2022-34918 bsc#1201171 + +Make sure element data type and length do not mismatch the one specified +by the set declaration. + +Fixes: 7d7402642eaf ("netfilter: nf_tables: variable sized set element keys / data") +Reported-by: Hugues ANGUELKOV <hanguel...@randorisec.fr> +Signed-off-by: Pablo Neira Ayuso <pa...@netfilter.org> +Acked-by: Takashi Iwai <ti...@suse.de> + +--- + net/netfilter/nf_tables_api.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c +index 51144fc66889..d6b59beab3a9 100644 +--- a/net/netfilter/nf_tables_api.c ++++ b/net/netfilter/nf_tables_api.c +@@ -5213,13 +5213,20 @@ static int nft_setelem_parse_data(struct nft_ctx *ctx, struct nft_set *set, + struct nft_data *data, + struct nlattr *attr) + { ++ u32 dtype; + int err; + + err = nft_data_init(ctx, data, NFT_DATA_VALUE_MAXLEN, desc, attr); + if (err < 0) + return err; + +- if (desc->type != NFT_DATA_VERDICT && desc->len != set->dlen) { ++ if (set->dtype == NFT_DATA_VERDICT) ++ dtype = NFT_DATA_VERDICT; ++ else ++ dtype = NFT_DATA_VALUE; ++ ++ if (dtype != desc->type || ++ set->dlen != desc->len) { + nft_data_release(data, desc->type); + return -EINVAL; + } +-- +2.35.3 + ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:01.500525152 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:01.504525157 +0200 @@ -1752,6 +1752,22 @@ # sorted patches ######################################################## patches.suse/simplefb-Enable-boot-time-VESA-graphic-mode-selectio.patch + patches.suse/0001-drm-format-helper-Print-warning-on-missing-format-co.patch + patches.suse/0001-drm-format-helper-Add-RGB888-to-XRGB8888-conversion.patch + patches.suse/0001-drm-format-helper-Add-RGB565-to-XRGB8888-conversion.patch + + # git://anongit.freedesktop.org/drm/drm.git drm-next + patches.suse/0001-firmware-sysfb-Make-sysfb_create_simplefb-return-a-p.patch + patches.suse/0001-firmware-sysfb-Add-sysfb_disable-helper-function.patch + patches.suse/0001-fbdev-Disable-sysfb-device-registration-when-removin.patch + + # git://anongit.freedesktop.org/drm/drm-misc.git drm-misc-next + patches.suse/0001-drm-Always-warn-if-user-defined-modes-are-not-suppor.patch + patches.suse/0001-drm-client-Look-for-command-line-modes-first.patch + patches.suse/0001-drm-client-Don-t-add-new-command-line-mode.patch + + # git://anongit.freedesktop.org/drm/drm.git drm-next + patches.suse/0001-drm-aperture-Run-fbdev-removal-before-internal-helpe.patch ######################################################## # end of sorted patches @@ -1769,6 +1785,7 @@ # to get into mainline any time soon (or ever) belong # to area specific sections below. ######################################################## + patches.suse/netfilter-nf_tables-stricter-validation-of-element-d.patch ######################################################## # kbuild/module infrastructure fixes @@ -1861,6 +1878,8 @@ ######################################################## # DRM / Graphics ######################################################## + patches.suse/drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch + patches.suse/Add-parameter-to-disable-simple-framebuffer-devices.patch ######################################################## # Storage ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.g6BbRF/_old 2022-07-09 17:00:01.524525188 +0200 +++ /var/tmp/diff_new_pack.g6BbRF/_new 2022-07-09 17:00:01.528525193 +0200 @@ -1,4 +1,4 @@ -2022-07-03 08:04:03 +0000 -GIT Revision: 0e67dc1e33ee02c2edff307e49d59bd4c73ce79f +2022-07-06 05:57:32 +0000 +GIT Revision: a7c5f9c7ea0c3909de5203a4e059cfa244f82641 GIT Branch: stable