kernel-6.14.8-200

* Thu May 22 2025 Augusto Caringi <acaringi@redhat.com> [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 <acaringi@redhat.com>
This commit is contained in:
Augusto Caringi 2025-05-22 15:55:12 -03:00
parent d52b2f38e1
commit 92bf8bd362
5 changed files with 243 additions and 15 deletions

View File

@ -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 https://gitlab.com/cki-project/kernel-ark/-/commit/b58d3f80cb10dac25b2503f2a537e96dd2457218
b58d3f80cb10dac25b2503f2a537e96dd2457218 Revert "loop: Add sanity check for read/write_iter" b58d3f80cb10dac25b2503f2a537e96dd2457218 Revert "loop: Add sanity check for read/write_iter"

View File

@ -1,3 +1,10 @@
* Thu May 22 2025 Augusto Caringi <acaringi@redhat.com> [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 <jforbes@fedoraproject.org> [6.14.7-0] * Sun May 18 2025 Justin M. Forbes <jforbes@fedoraproject.org> [6.14.7-0]
- Turn on MITIGATION_ITS for RHEL configs (Justin M. Forbes) - Turn on MITIGATION_ITS for RHEL configs (Justin M. Forbes)
- Add bug to Bugsfixed for 6.14.7 (Justin M. Forbes) - Add bug to Bugsfixed for 6.14.7 (Justin M. Forbes)

View File

@ -159,18 +159,18 @@ Summary: The Linux kernel
# the --with-release option overrides this setting.) # the --with-release option overrides this setting.)
%define debugbuildsenabled 1 %define debugbuildsenabled 1
# define buildid .local # define buildid .local
%define specrpmversion 6.14.7 %define specrpmversion 6.14.8
%define specversion 6.14.7 %define specversion 6.14.8
%define patchversion 6.14 %define patchversion 6.14
%define pkgrelease 201 %define pkgrelease 200
%define kversion 6 %define kversion 6
%define tarfile_release 6.14.7 %define tarfile_release 6.14.8
# This is needed to do merge window version magic # This is needed to do merge window version magic
%define patchlevel 14 %define patchlevel 14
# This allows pkg_release to have configurable %%{?dist} tag # 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 # 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 # If this variable is set to 1, a bpf selftests build failure will cause a
# fatal kernel package build error # fatal kernel package build error
@ -4205,9 +4205,11 @@ fi\
# #
# #
%changelog %changelog
* Mon May 19 2025 Justin M. Forbes <jforbes@fedoraproject.org> [6.14.7-201] * Thu May 22 2025 Augusto Caringi <acaringi@redhat.com> [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) - Revert "loop: Add sanity check for read/write_iter" (Justin M. Forbes)
- Fix up typo in release_targets (Justin M. Forbes) - Fix up typo in release_targets (Justin M. Forbes)
- Linux v6.14.8
* Sun May 18 2025 Justin M. Forbes <jforbes@fedoraproject.org> [6.14.7-0] * Sun May 18 2025 Justin M. Forbes <jforbes@fedoraproject.org> [6.14.7-0]
- Turn on MITIGATION_ITS for RHEL configs (Justin M. Forbes) - Turn on MITIGATION_ITS for RHEL configs (Justin M. Forbes)

View File

@ -31,6 +31,14 @@
drivers/firmware/efi/Makefile | 1 + drivers/firmware/efi/Makefile | 1 +
drivers/firmware/efi/efi.c | 124 ++- drivers/firmware/efi/efi.c | 124 ++-
drivers/firmware/efi/secureboot.c | 38 + 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/hid/hid-rmi.c | 66 --
drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 + drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 +
drivers/input/rmi4/rmi_driver.c | 124 ++- drivers/input/rmi4/rmi_driver.c | 124 ++-
@ -69,7 +77,7 @@
security/integrity/platform_certs/load_uefi.c | 6 +- security/integrity/platform_certs/load_uefi.c | 6 +-
security/lockdown/Kconfig | 13 + security/lockdown/Kconfig | 13 +
security/lockdown/lockdown.c | 11 + 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 diff --git a/Documentation/ABI/testing/sysfs-kernel-fadump b/Documentation/ABI/testing/sysfs-kernel-fadump
index 2f9daa7ca55b..b64b7622e6fc 100644 index 2f9daa7ca55b..b64b7622e6fc 100644
@ -116,7 +124,7 @@ index 7e37aadd1f77..7e266e749cd5 100644
----------------------- -----------------------
diff --git a/MAINTAINERS b/MAINTAINERS diff --git a/MAINTAINERS b/MAINTAINERS
index 00e94bec401e..292b51652cca 100644 index c0d5232a473b..00b60a837d5e 100644
--- a/MAINTAINERS --- a/MAINTAINERS
+++ b/MAINTAINERS +++ b/MAINTAINERS
@@ -17461,6 +17461,23 @@ T: git git://linuxtv.org/media.git @@ -17461,6 +17461,23 @@ T: git git://linuxtv.org/media.git
@ -144,7 +152,7 @@ index 00e94bec401e..292b51652cca 100644
M: Jimmy Su <jimmy.su@intel.com> M: Jimmy Su <jimmy.su@intel.com>
L: linux-media@vger.kernel.org L: linux-media@vger.kernel.org
diff --git a/Makefile b/Makefile diff --git a/Makefile b/Makefile
index 70bd8847c867..870ed6a45aa8 100644 index 70011eb4745f..656884906cea 100644
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -22,6 +22,18 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -22,6 +22,18 @@ $(if $(filter __%, $(MAKECMDGOALS)), \
@ -184,7 +192,7 @@ index 70bd8847c867..870ed6a45aa8 100644
ifdef mixed-build ifdef mixed-build
# =========================================================================== # ===========================================================================
# We're called with mixed targets (*config and build targets). # We're called with mixed targets (*config and build targets).
@@ -1918,6 +1941,23 @@ endif @@ -1917,6 +1940,23 @@ endif
ifdef CONFIG_MODULES 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 <linux/refcount.h>
+
/* 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 diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
index d4af17fdba46..154f0403cbf4 100644 index d4af17fdba46..154f0403cbf4 100644
--- a/drivers/hid/hid-rmi.c --- a/drivers/hid/hid-rmi.c
@ -5318,7 +5534,7 @@ index a2ff4242e623..f0d2be1ee4f1 100644
int module_sig_check(struct load_info *info, int flags) int module_sig_check(struct load_info *info, int flags)
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
index dc081cf46d21..25fe35170155 100644 index 686197407c3c..ca5427a94deb 100644
--- a/scripts/Makefile.extrawarn --- a/scripts/Makefile.extrawarn
+++ b/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn
@@ -20,6 +20,10 @@ KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member) @@ -20,6 +20,10 @@ KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)

View File

@ -1,3 +1,3 @@
SHA512 (linux-6.14.7.tar.xz) = 767421666bdc34f4cdc3f010e4e22a038b3588597ad2027988ebabad4c1b683e4c86fd6e54380f6befd61e4350884442299fe1522adbe93a72a3f05cd2cb9a85 SHA512 (linux-6.14.8.tar.xz) = 4af05f7cbb291b73183de8ea00a45f8c57fb1eac3307bf01e8550bcef83e5c5167d76f3e91453ddd65342d6ace576c3772c19336f097dc1e672f4dfa3435e5b0
SHA512 (kernel-abi-stablelists-6.14.7.tar.xz) = 4430d6e046f8005ce1880f8965f97074c93f9dfce4bd7ec286eb9cba86b78e5b6f7669c41f1f58bfc0620bb4d06a7022e4f10cd0d2ade89a38105be41c7a375a SHA512 (kernel-abi-stablelists-6.14.8.tar.xz) = 967ec90d674ecf832e8b22154643813f9ff04e8257aa354d0b03a44deb0bc162ff98c01b7d223e350e1adc3d93c2c0cbd6418594538367d136b4863a5a054559
SHA512 (kernel-kabi-dw-6.14.7.tar.xz) = a3f97551e75d4db323c9abac98601374be7577e8a02e5d09244a1e58c73a3c16259dc69ebdd3f1b8e5e65f58b712e123864a7df4c26abcd1aed98b09605b7993 SHA512 (kernel-kabi-dw-6.14.8.tar.xz) = 084a432a295695e5cbfc4ac750676bdd13e38a94bbbe27718997a9d2650521722cde1438702c6cfc13f7248b47dccbd121a7ab8990570480774c74d5e098c39a