From 92bf8bd362028bdada3d197677c167cc1bfd36c6 Mon Sep 17 00:00:00 2001 From: Augusto Caringi Date: Thu, 22 May 2025 15:55:12 -0300 Subject: [PATCH] kernel-6.14.8-200 * Thu May 22 2025 Augusto Caringi [6.14.8-0] - drm/xe/display: Re-use display vmas when possible (Maarten Lankhorst) [2367813] - Revert "loop: Add sanity check for read/write_iter" (Justin M. Forbes) - Fix up typo in release_targets (Justin M. Forbes) - Linux v6.14.8 Resolves: rhbz#2367813 Signed-off-by: Augusto Caringi --- Patchlist.changelog | 3 + kernel.changelog | 7 ++ kernel.spec | 16 +-- patch-6.14-redhat.patch | 226 +++++++++++++++++++++++++++++++++++++++- sources | 6 +- 5 files changed, 243 insertions(+), 15 deletions(-) diff --git a/Patchlist.changelog b/Patchlist.changelog index 491af90cc..5f6e820d4 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,6 @@ +https://gitlab.com/cki-project/kernel-ark/-/commit/9db433b73d8cf57ca0ac9cb17fda0d7609a3deb7 + 9db433b73d8cf57ca0ac9cb17fda0d7609a3deb7 drm/xe/display: Re-use display vmas when possible + https://gitlab.com/cki-project/kernel-ark/-/commit/b58d3f80cb10dac25b2503f2a537e96dd2457218 b58d3f80cb10dac25b2503f2a537e96dd2457218 Revert "loop: Add sanity check for read/write_iter" diff --git a/kernel.changelog b/kernel.changelog index 5d7737eff..3b7ce934b 100644 --- a/kernel.changelog +++ b/kernel.changelog @@ -1,3 +1,10 @@ +* Thu May 22 2025 Augusto Caringi [6.14.8-0] +- drm/xe/display: Re-use display vmas when possible (Maarten Lankhorst) [2367813] +- Revert "loop: Add sanity check for read/write_iter" (Justin M. Forbes) +- Fix up typo in release_targets (Justin M. Forbes) +- Linux v6.14.8 +Resolves: rhbz#2367813 + * Sun May 18 2025 Justin M. Forbes [6.14.7-0] - Turn on MITIGATION_ITS for RHEL configs (Justin M. Forbes) - Add bug to Bugsfixed for 6.14.7 (Justin M. Forbes) diff --git a/kernel.spec b/kernel.spec index 0a6a047a6..c4eec2891 100644 --- a/kernel.spec +++ b/kernel.spec @@ -159,18 +159,18 @@ Summary: The Linux kernel # the --with-release option overrides this setting.) %define debugbuildsenabled 1 # define buildid .local -%define specrpmversion 6.14.7 -%define specversion 6.14.7 +%define specrpmversion 6.14.8 +%define specversion 6.14.8 %define patchversion 6.14 -%define pkgrelease 201 +%define pkgrelease 200 %define kversion 6 -%define tarfile_release 6.14.7 +%define tarfile_release 6.14.8 # This is needed to do merge window version magic %define patchlevel 14 # This allows pkg_release to have configurable %%{?dist} tag -%define specrelease 201%{?buildid}%{?dist} +%define specrelease 200%{?buildid}%{?dist} # This defines the kabi tarball version -%define kabiversion 6.14.7 +%define kabiversion 6.14.8 # If this variable is set to 1, a bpf selftests build failure will cause a # fatal kernel package build error @@ -4205,9 +4205,11 @@ fi\ # # %changelog -* Mon May 19 2025 Justin M. Forbes [6.14.7-201] +* Thu May 22 2025 Augusto Caringi [6.14.8-0] +- drm/xe/display: Re-use display vmas when possible (Maarten Lankhorst) [2367813] - Revert "loop: Add sanity check for read/write_iter" (Justin M. Forbes) - Fix up typo in release_targets (Justin M. Forbes) +- Linux v6.14.8 * Sun May 18 2025 Justin M. Forbes [6.14.7-0] - Turn on MITIGATION_ITS for RHEL configs (Justin M. Forbes) diff --git a/patch-6.14-redhat.patch b/patch-6.14-redhat.patch index 7fa442dee..3c20052c5 100644 --- a/patch-6.14-redhat.patch +++ b/patch-6.14-redhat.patch @@ -31,6 +31,14 @@ drivers/firmware/efi/Makefile | 1 + drivers/firmware/efi/efi.c | 124 ++- drivers/firmware/efi/secureboot.c | 38 + + drivers/gpu/drm/i915/display/intel_atomic_plane.c | 2 +- + drivers/gpu/drm/i915/display/intel_cursor.c | 2 +- + drivers/gpu/drm/i915/display/intel_fb_pin.c | 3 +- + drivers/gpu/drm/i915/display/intel_fb_pin.h | 3 +- + drivers/gpu/drm/i915/display/intel_fbdev.c | 5 + + drivers/gpu/drm/i915/display/intel_fbdev.h | 8 + + drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h | 3 + + drivers/gpu/drm/xe/display/xe_fb_pin.c | 48 +- drivers/hid/hid-rmi.c | 66 -- drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + drivers/input/rmi4/rmi_driver.c | 124 ++- @@ -69,7 +77,7 @@ security/integrity/platform_certs/load_uefi.c | 6 +- security/lockdown/Kconfig | 13 + security/lockdown/lockdown.c | 11 + - 71 files changed, 3097 insertions(+), 682 deletions(-) + 79 files changed, 3162 insertions(+), 691 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-kernel-fadump b/Documentation/ABI/testing/sysfs-kernel-fadump index 2f9daa7ca55b..b64b7622e6fc 100644 @@ -116,7 +124,7 @@ index 7e37aadd1f77..7e266e749cd5 100644 ----------------------- diff --git a/MAINTAINERS b/MAINTAINERS -index 00e94bec401e..292b51652cca 100644 +index c0d5232a473b..00b60a837d5e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17461,6 +17461,23 @@ T: git git://linuxtv.org/media.git @@ -144,7 +152,7 @@ index 00e94bec401e..292b51652cca 100644 M: Jimmy Su L: linux-media@vger.kernel.org diff --git a/Makefile b/Makefile -index 70bd8847c867..870ed6a45aa8 100644 +index 70011eb4745f..656884906cea 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,18 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -184,7 +192,7 @@ index 70bd8847c867..870ed6a45aa8 100644 ifdef mixed-build # =========================================================================== # We're called with mixed targets (*config and build targets). -@@ -1918,6 +1941,23 @@ endif +@@ -1917,6 +1940,23 @@ endif ifdef CONFIG_MODULES @@ -1154,6 +1162,214 @@ index 000000000000..de0a3714a5d4 + } + } +} +diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c +index 612e9b0ec14a..3e014afaee08 100644 +--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c ++++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c +@@ -1130,7 +1130,7 @@ intel_prepare_plane_fb(struct drm_plane *_plane, + if (!obj) + return 0; + +- ret = intel_plane_pin_fb(new_plane_state); ++ ret = intel_plane_pin_fb(new_plane_state, old_plane_state); + if (ret) + return ret; + +diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c +index 57cf8f46a458..ae7243ad6e0c 100644 +--- a/drivers/gpu/drm/i915/display/intel_cursor.c ++++ b/drivers/gpu/drm/i915/display/intel_cursor.c +@@ -865,7 +865,7 @@ intel_legacy_cursor_update(struct drm_plane *_plane, + if (ret) + goto out_free; + +- ret = intel_plane_pin_fb(new_plane_state); ++ ret = intel_plane_pin_fb(new_plane_state, old_plane_state); + if (ret) + goto out_free; + +diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.c b/drivers/gpu/drm/i915/display/intel_fb_pin.c +index d3a86f9c6bc8..dd3ac7f98dfc 100644 +--- a/drivers/gpu/drm/i915/display/intel_fb_pin.c ++++ b/drivers/gpu/drm/i915/display/intel_fb_pin.c +@@ -252,7 +252,8 @@ intel_plane_fb_min_phys_alignment(const struct intel_plane_state *plane_state) + return plane->min_alignment(plane, fb, 0); + } + +-int intel_plane_pin_fb(struct intel_plane_state *plane_state) ++int intel_plane_pin_fb(struct intel_plane_state *plane_state, ++ const struct intel_plane_state *old_plane_state) + { + struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane); + const struct intel_framebuffer *fb = +diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h +index ac0319b53af0..0fc6d9044638 100644 +--- a/drivers/gpu/drm/i915/display/intel_fb_pin.h ++++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h +@@ -23,7 +23,8 @@ intel_fb_pin_to_ggtt(const struct drm_framebuffer *fb, + + void intel_fb_unpin_vma(struct i915_vma *vma, unsigned long flags); + +-int intel_plane_pin_fb(struct intel_plane_state *plane_state); ++int intel_plane_pin_fb(struct intel_plane_state *new_plane_state, ++ const struct intel_plane_state *old_plane_state); + void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state); + + #endif +diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c +index 00852ff5b247..6c0808133397 100644 +--- a/drivers/gpu/drm/i915/display/intel_fbdev.c ++++ b/drivers/gpu/drm/i915/display/intel_fbdev.c +@@ -695,3 +695,8 @@ struct intel_framebuffer *intel_fbdev_framebuffer(struct intel_fbdev *fbdev) + + return to_intel_framebuffer(fbdev->helper.fb); + } ++ ++struct i915_vma *intel_fbdev_vma_pointer(struct intel_fbdev *fbdev) ++{ ++ return fbdev ? fbdev->vma : NULL; ++} +diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.h b/drivers/gpu/drm/i915/display/intel_fbdev.h +index 08de2d5b3433..24a3434558cb 100644 +--- a/drivers/gpu/drm/i915/display/intel_fbdev.h ++++ b/drivers/gpu/drm/i915/display/intel_fbdev.h +@@ -17,6 +17,8 @@ struct intel_framebuffer; + void intel_fbdev_setup(struct drm_i915_private *dev_priv); + void intel_fbdev_set_suspend(struct drm_device *dev, int state, bool synchronous); + struct intel_framebuffer *intel_fbdev_framebuffer(struct intel_fbdev *fbdev); ++struct i915_vma *intel_fbdev_vma_pointer(struct intel_fbdev *fbdev); ++ + #else + static inline void intel_fbdev_setup(struct drm_i915_private *dev_priv) + { +@@ -30,6 +32,12 @@ static inline struct intel_framebuffer *intel_fbdev_framebuffer(struct intel_fbd + { + return NULL; + } ++ ++static inline struct i915_vma *intel_fbdev_vma_pointer(struct intel_fbdev *fbdev) ++{ ++ return NULL; ++} ++ + #endif + + #endif /* __INTEL_FBDEV_H__ */ +diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h +index bdae8392e125..4465c40f8134 100644 +--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h ++++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h +@@ -10,6 +10,8 @@ + + #include "xe_ggtt_types.h" + ++#include ++ + /* We don't want these from i915_drm.h in case of Xe */ + #undef I915_TILING_X + #undef I915_TILING_Y +@@ -19,6 +21,7 @@ + struct xe_bo; + + struct i915_vma { ++ refcount_t ref; + struct xe_bo *bo, *dpt; + struct xe_ggtt_node *node; + }; +diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c +index 9fa51b84737c..25ce032bb293 100644 +--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c ++++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c +@@ -9,6 +9,7 @@ + #include "intel_dpt.h" + #include "intel_fb.h" + #include "intel_fb_pin.h" ++#include "intel_fbdev.h" + #include "xe_bo.h" + #include "xe_device.h" + #include "xe_ggtt.h" +@@ -287,6 +288,7 @@ static struct i915_vma *__xe_pin_fb_vma(const struct intel_framebuffer *fb, + if (!vma) + return ERR_PTR(-ENODEV); + ++ refcount_set(&vma->ref, 1); + if (IS_DGFX(to_xe_device(bo->ttm.base.dev)) && + intel_fb_rc_ccs_cc_plane(&fb->base) >= 0 && + !(bo->flags & XE_BO_FLAG_NEEDS_CPU_ACCESS)) { +@@ -347,6 +349,9 @@ static void __xe_unpin_fb_vma(struct i915_vma *vma) + { + u8 tile_id = vma->node->ggtt->tile->id; + ++ if (!refcount_dec_and_test(&vma->ref)) ++ return; ++ + if (vma->dpt) + xe_bo_unpin_map_no_vm(vma->dpt); + else if (!xe_ggtt_node_allocated(vma->bo->ggtt_node[tile_id]) || +@@ -377,25 +382,58 @@ void intel_fb_unpin_vma(struct i915_vma *vma, unsigned long flags) + __xe_unpin_fb_vma(vma); + } + +-int intel_plane_pin_fb(struct intel_plane_state *plane_state) ++static bool reuse_vma(struct intel_plane_state *new_plane_state, ++ const struct intel_plane_state *old_plane_state) + { +- struct drm_framebuffer *fb = plane_state->hw.fb; ++ struct intel_framebuffer *fb = to_intel_framebuffer(new_plane_state->hw.fb); ++ struct xe_device *xe = to_xe_device(fb->base.dev); ++ struct i915_vma *vma; ++ ++ if (old_plane_state->hw.fb == new_plane_state->hw.fb && ++ !memcmp(&old_plane_state->view.gtt, ++ &new_plane_state->view.gtt, ++ sizeof(new_plane_state->view.gtt))) { ++ vma = old_plane_state->ggtt_vma; ++ goto found; ++ } ++ ++ if (fb == intel_fbdev_framebuffer(xe->display.fbdev.fbdev)) { ++ vma = intel_fbdev_vma_pointer(xe->display.fbdev.fbdev); ++ if (vma) ++ goto found; ++ } ++ ++ return false; ++ ++found: ++ refcount_inc(&vma->ref); ++ new_plane_state->ggtt_vma = vma; ++ return true; ++} ++ ++int intel_plane_pin_fb(struct intel_plane_state *new_plane_state, ++ const struct intel_plane_state *old_plane_state) ++{ ++ struct drm_framebuffer *fb = new_plane_state->hw.fb; + struct drm_gem_object *obj = intel_fb_bo(fb); + struct xe_bo *bo = gem_to_xe_bo(obj); + struct i915_vma *vma; + struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb); +- struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane); ++ struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane); + u64 phys_alignment = plane->min_alignment(plane, fb, 0); + ++ if (reuse_vma(new_plane_state, old_plane_state)) ++ return 0; ++ + /* We reject creating !SCANOUT fb's, so this is weird.. */ + drm_WARN_ON(bo->ttm.base.dev, !(bo->flags & XE_BO_FLAG_SCANOUT)); + +- vma = __xe_pin_fb_vma(intel_fb, &plane_state->view.gtt, phys_alignment); ++ vma = __xe_pin_fb_vma(intel_fb, &new_plane_state->view.gtt, phys_alignment); + + if (IS_ERR(vma)) + return PTR_ERR(vma); + +- plane_state->ggtt_vma = vma; ++ new_plane_state->ggtt_vma = vma; + return 0; + } + diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c index d4af17fdba46..154f0403cbf4 100644 --- a/drivers/hid/hid-rmi.c @@ -5318,7 +5534,7 @@ index a2ff4242e623..f0d2be1ee4f1 100644 int module_sig_check(struct load_info *info, int flags) diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn -index dc081cf46d21..25fe35170155 100644 +index 686197407c3c..ca5427a94deb 100644 --- a/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn @@ -20,6 +20,10 @@ KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) diff --git a/sources b/sources index 8dcb12f76..715b097e0 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-6.14.7.tar.xz) = 767421666bdc34f4cdc3f010e4e22a038b3588597ad2027988ebabad4c1b683e4c86fd6e54380f6befd61e4350884442299fe1522adbe93a72a3f05cd2cb9a85 -SHA512 (kernel-abi-stablelists-6.14.7.tar.xz) = 4430d6e046f8005ce1880f8965f97074c93f9dfce4bd7ec286eb9cba86b78e5b6f7669c41f1f58bfc0620bb4d06a7022e4f10cd0d2ade89a38105be41c7a375a -SHA512 (kernel-kabi-dw-6.14.7.tar.xz) = a3f97551e75d4db323c9abac98601374be7577e8a02e5d09244a1e58c73a3c16259dc69ebdd3f1b8e5e65f58b712e123864a7df4c26abcd1aed98b09605b7993 +SHA512 (linux-6.14.8.tar.xz) = 4af05f7cbb291b73183de8ea00a45f8c57fb1eac3307bf01e8550bcef83e5c5167d76f3e91453ddd65342d6ace576c3772c19336f097dc1e672f4dfa3435e5b0 +SHA512 (kernel-abi-stablelists-6.14.8.tar.xz) = 967ec90d674ecf832e8b22154643813f9ff04e8257aa354d0b03a44deb0bc162ff98c01b7d223e350e1adc3d93c2c0cbd6418594538367d136b4863a5a054559 +SHA512 (kernel-kabi-dw-6.14.8.tar.xz) = 084a432a295695e5cbfc4ac750676bdd13e38a94bbbe27718997a9d2650521722cde1438702c6cfc13f7248b47dccbd121a7ab8990570480774c74d5e098c39a