From 0e0e5a4029ab0096fa88294810e3bf10c26fff75 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Thu, 15 Sep 2022 10:24:35 +0100 Subject: kernel-5.19.9-200 * Thu Sep 15 2022 Justin M. Forbes [5.19.9-0] - Add CONFIG_ARM64_ERRATUM_2457168 as new stable config option (Justin M. Forbes) - fedora: disable IWLMEI (Peter Robinson) - [PATCH] drm/i915: Ensure damage clip area is within pipe area (Mark Pearson) - [PATCH] drm/i915/psr: Use full update In case of area calculation fails (Mark Pearson) - Config update for stable ARM64_ERRATUM_2441009 (Justin M. Forbes) - Linux v5.19.9 Resolves: Signed-off-by: Justin M. Forbes --- Patchlist.changelog | 6 ++ kernel-aarch64-debug-fedora.config | 1 + kernel-aarch64-debug-rhel.config | 1 + kernel-aarch64-fedora.config | 1 + kernel-aarch64-rhel.config | 1 + kernel-x86_64-debug-fedora.config | 2 +- kernel-x86_64-fedora.config | 2 +- kernel.spec | 13 ++-- patch-5.19-redhat.patch | 122 +++++++++++++++++++++++++++++++++---- sources | 6 +- 10 files changed, 133 insertions(+), 22 deletions(-) diff --git a/Patchlist.changelog b/Patchlist.changelog index b69b1b046..bb08f3e34 100644 --- a/Patchlist.changelog +++ b/Patchlist.changelog @@ -1,3 +1,9 @@ +"https://gitlab.com/cki-project/kernel-ark/-/commit"/81d89458f7f2d872c7de7181acb857fe041ee953 + 81d89458f7f2d872c7de7181acb857fe041ee953 [PATCH] drm/i915: Ensure damage clip area is within pipe area + +"https://gitlab.com/cki-project/kernel-ark/-/commit"/633114f82410496dc31e1cdbbbc5a793abebd058 + 633114f82410496dc31e1cdbbbc5a793abebd058 [PATCH] drm/i915/psr: Use full update In case of area calculation fails + "https://gitlab.com/cki-project/kernel-ark/-/commit"/7879af7639a11a5388ef7e590e1b480ac79c29ef 7879af7639a11a5388ef7e590e1b480ac79c29ef [PATCH] drm/i915/bios: Use hardcoded fp_timing size for generating LFP data pointers diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config index d15af893f..c5ab64e19 100644 --- a/kernel-aarch64-debug-fedora.config +++ b/kernel-aarch64-debug-fedora.config @@ -370,6 +370,7 @@ CONFIG_ARM64_ERRATUM_2139208=y CONFIG_ARM64_ERRATUM_2224489=y CONFIG_ARM64_ERRATUM_2253138=y CONFIG_ARM64_ERRATUM_2441009=y +CONFIG_ARM64_ERRATUM_2457168=y CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y diff --git a/kernel-aarch64-debug-rhel.config b/kernel-aarch64-debug-rhel.config index 818866473..0221f800c 100644 --- a/kernel-aarch64-debug-rhel.config +++ b/kernel-aarch64-debug-rhel.config @@ -295,6 +295,7 @@ CONFIG_ARM64_ERRATUM_2139208=y CONFIG_ARM64_ERRATUM_2224489=y CONFIG_ARM64_ERRATUM_2253138=y CONFIG_ARM64_ERRATUM_2441009=y +CONFIG_ARM64_ERRATUM_2457168=y CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config index 382c81851..5bf8fa6f0 100644 --- a/kernel-aarch64-fedora.config +++ b/kernel-aarch64-fedora.config @@ -370,6 +370,7 @@ CONFIG_ARM64_ERRATUM_2139208=y CONFIG_ARM64_ERRATUM_2224489=y CONFIG_ARM64_ERRATUM_2253138=y CONFIG_ARM64_ERRATUM_2441009=y +CONFIG_ARM64_ERRATUM_2457168=y CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y diff --git a/kernel-aarch64-rhel.config b/kernel-aarch64-rhel.config index 5f6794c0b..7a87bf321 100644 --- a/kernel-aarch64-rhel.config +++ b/kernel-aarch64-rhel.config @@ -295,6 +295,7 @@ CONFIG_ARM64_ERRATUM_2139208=y CONFIG_ARM64_ERRATUM_2224489=y CONFIG_ARM64_ERRATUM_2253138=y CONFIG_ARM64_ERRATUM_2441009=y +CONFIG_ARM64_ERRATUM_2457168=y CONFIG_ARM64_ERRATUM_819472=y CONFIG_ARM64_ERRATUM_824069=y CONFIG_ARM64_ERRATUM_826319=y diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config index 10a577d64..f958222ec 100644 --- a/kernel-x86_64-debug-fedora.config +++ b/kernel-x86_64-debug-fedora.config @@ -3044,7 +3044,7 @@ CONFIG_IWLDVM=m CONFIG_IWLEGACY_DEBUGFS=y CONFIG_IWLEGACY_DEBUG=y CONFIG_IWLEGACY=m -CONFIG_IWLMEI=m +# CONFIG_IWLMEI is not set CONFIG_IWLMVM=m # CONFIG_IWLWIFI_BCAST_FILTERING is not set CONFIG_IWLWIFI_DEBUGFS=y diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config index 1268d054e..9f8597b2b 100644 --- a/kernel-x86_64-fedora.config +++ b/kernel-x86_64-fedora.config @@ -3027,7 +3027,7 @@ CONFIG_IWLDVM=m CONFIG_IWLEGACY_DEBUGFS=y CONFIG_IWLEGACY_DEBUG=y CONFIG_IWLEGACY=m -CONFIG_IWLMEI=m +# CONFIG_IWLMEI is not set CONFIG_IWLMVM=m # CONFIG_IWLWIFI_BCAST_FILTERING is not set CONFIG_IWLWIFI_DEBUGFS=y diff --git a/kernel.spec b/kernel.spec index d5d13056e..c058327b3 100755 --- a/kernel.spec +++ b/kernel.spec @@ -122,17 +122,17 @@ Summary: The Linux kernel # the --with-release option overrides this setting.) %define debugbuildsenabled 1 # define buildid .local -%define specversion 5.19.8 +%define specversion 5.19.9 %define patchversion 5.19 %define pkgrelease 200 %define kversion 5 -%define tarfile_release 5.19.8 +%define tarfile_release 5.19.9 # This is needed to do merge window version magic %define patchlevel 19 # This allows pkg_release to have configurable %%{?dist} tag %define specrelease 200%{?buildid}%{?dist} # This defines the kabi tarball version -%define kabiversion 5.19.8 +%define kabiversion 5.19.9 # # End of genspec.sh variables @@ -3138,8 +3138,13 @@ fi # # %changelog -* Thu Sep 08 2022 Justin M. Forbes [5.19.8-200] +* Thu Sep 15 2022 Justin M. Forbes [5.19.9-0] +- Add CONFIG_ARM64_ERRATUM_2457168 as new stable config option (Justin M. Forbes) +- fedora: disable IWLMEI (Peter Robinson) +- [PATCH] drm/i915: Ensure damage clip area is within pipe area (Mark Pearson) +- [PATCH] drm/i915/psr: Use full update In case of area calculation fails (Mark Pearson) - Config update for stable ARM64_ERRATUM_2441009 (Justin M. Forbes) +- Linux v5.19.9 * Thu Sep 08 2022 Justin M. Forbes [5.19.8-0] - [PATCH] drm/i915/bios: Use hardcoded fp_timing size for generating LFP data pointers (Mark Pearson) diff --git a/patch-5.19-redhat.patch b/patch-5.19-redhat.patch index dae2ff293..0b4a8c246 100644 --- a/patch-5.19-redhat.patch +++ b/patch-5.19-redhat.patch @@ -29,6 +29,7 @@ drivers/firmware/sysfb.c | 18 +- drivers/gpu/drm/drm_ioctl.c | 8 +- drivers/gpu/drm/i915/display/intel_bios.c | 46 +- + drivers/gpu/drm/i915/display/intel_psr.c | 37 +- drivers/gpu/drm/v3d/Kconfig | 5 +- drivers/gpu/drm/v3d/v3d_debugfs.c | 18 +- drivers/gpu/drm/v3d/v3d_drv.c | 12 +- @@ -60,7 +61,7 @@ security/lockdown/Kconfig | 13 + security/lockdown/lockdown.c | 1 + security/security.c | 6 + - 62 files changed, 1747 insertions(+), 342 deletions(-) + 63 files changed, 1777 insertions(+), 349 deletions(-) diff --git a/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml b/Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.yaml index e6485f7b046f..217c42874f41 100644 @@ -252,7 +253,7 @@ index 000000000000..733a26bd887a + +endmenu diff --git a/Makefile b/Makefile -index e361c6230e9e..2c6324eff16a 100644 +index 1f27c4bd09e6..ec5fbc9dc8ae 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -371,10 +372,10 @@ index ce9826bce29b..948d18e59cf5 100644 CONFIG_DRM_ETNAVIV=m CONFIG_DRM_MXSFB=m diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 001eaba5a6b4..cc20aaacd741 100644 +index cc1e7bb49d38..8bb79230ac24 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -1162,7 +1162,7 @@ endchoice +@@ -1179,7 +1179,7 @@ endchoice config ARM64_FORCE_52BIT bool "Force 52-bit virtual addresses for userspace" @@ -383,7 +384,7 @@ index 001eaba5a6b4..cc20aaacd741 100644 help For systems with 52-bit userspace VAs enabled, the kernel will attempt to maintain compatibility with older software by providing 48-bit VAs -@@ -1401,6 +1401,7 @@ config XEN +@@ -1418,6 +1418,7 @@ config XEN config FORCE_MAX_ZONEORDER int default "14" if ARM64_64K_PAGES @@ -429,7 +430,7 @@ index 1cc85b8ff42e..b7ee128c67ce 100644 + return !!ipl_secure_flag; +} diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c -index 0a37f5de2863..e2644fc7a172 100644 +index 3e0361db963e..9b59492fc2f4 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c @@ -49,6 +49,7 @@ @@ -440,7 +441,7 @@ index 0a37f5de2863..e2644fc7a172 100644 #include #include -@@ -970,6 +971,9 @@ void __init setup_arch(char **cmdline_p) +@@ -971,6 +972,9 @@ void __init setup_arch(char **cmdline_p) log_component_list(); @@ -947,7 +948,7 @@ index 51fcf1298023..7f1097947731 100644 /* don't overflow userbuf */ len = strlen(value); diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c -index 0c5638f5b72b..a532958ad85f 100644 +index 91caf4523b34..84c086610235 100644 --- a/drivers/gpu/drm/i915/display/intel_bios.c +++ b/drivers/gpu/drm/i915/display/intel_bios.c @@ -332,18 +332,6 @@ static bool fixup_lfp_data_ptrs(const void *bdb, void *ptrs_block) @@ -1040,6 +1041,101 @@ index 0c5638f5b72b..a532958ad85f 100644 table_size = sizeof(struct lvds_lfp_panel_name); if (16 * (size + table_size) <= block_size) { +diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c +index 06db407e2749..36356893c7ca 100644 +--- a/drivers/gpu/drm/i915/display/intel_psr.c ++++ b/drivers/gpu/drm/i915/display/intel_psr.c +@@ -1618,8 +1618,12 @@ static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state, + } + + static void clip_area_update(struct drm_rect *overlap_damage_area, +- struct drm_rect *damage_area) ++ struct drm_rect *damage_area, ++ struct drm_rect *pipe_src) + { ++ if (!drm_rect_intersect(damage_area, pipe_src)) ++ return; ++ + if (overlap_damage_area->y1 == -1) { + overlap_damage_area->y1 = damage_area->y1; + overlap_damage_area->y2 = damage_area->y2; +@@ -1685,6 +1689,7 @@ static bool psr2_sel_fetch_pipe_state_supported(const struct intel_crtc_state *c + int intel_psr2_sel_fetch_update(struct intel_atomic_state *state, + struct intel_crtc *crtc) + { ++ struct drm_i915_private *dev_priv = to_i915(state->base.dev); + struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc); + struct drm_rect pipe_clip = { .x1 = 0, .y1 = -1, .x2 = INT_MAX, .y2 = -1 }; + struct intel_plane_state *new_plane_state, *old_plane_state; +@@ -1708,7 +1713,8 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state, + */ + for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state, + new_plane_state, i) { +- struct drm_rect src, damaged_area = { .y1 = -1 }; ++ struct drm_rect src, damaged_area = { .x1 = 0, .y1 = -1, ++ .x2 = INT_MAX }; + struct drm_atomic_helper_damage_iter iter; + struct drm_rect clip; + +@@ -1735,20 +1741,23 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state, + if (old_plane_state->uapi.visible) { + damaged_area.y1 = old_plane_state->uapi.dst.y1; + damaged_area.y2 = old_plane_state->uapi.dst.y2; +- clip_area_update(&pipe_clip, &damaged_area); ++ clip_area_update(&pipe_clip, &damaged_area, ++ &crtc_state->pipe_src); + } + + if (new_plane_state->uapi.visible) { + damaged_area.y1 = new_plane_state->uapi.dst.y1; + damaged_area.y2 = new_plane_state->uapi.dst.y2; +- clip_area_update(&pipe_clip, &damaged_area); ++ clip_area_update(&pipe_clip, &damaged_area, ++ &crtc_state->pipe_src); + } + continue; + } else if (new_plane_state->uapi.alpha != old_plane_state->uapi.alpha) { + /* If alpha changed mark the whole plane area as damaged */ + damaged_area.y1 = new_plane_state->uapi.dst.y1; + damaged_area.y2 = new_plane_state->uapi.dst.y2; +- clip_area_update(&pipe_clip, &damaged_area); ++ clip_area_update(&pipe_clip, &damaged_area, ++ &crtc_state->pipe_src); + continue; + } + +@@ -1759,7 +1768,8 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state, + &new_plane_state->uapi); + drm_atomic_for_each_plane_damage(&iter, &clip) { + if (drm_rect_intersect(&clip, &src)) +- clip_area_update(&damaged_area, &clip); ++ clip_area_update(&damaged_area, &clip, ++ &crtc_state->pipe_src); + } + + if (damaged_area.y1 == -1) +@@ -1767,7 +1777,20 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state, + + damaged_area.y1 += new_plane_state->uapi.dst.y1 - src.y1; + damaged_area.y2 += new_plane_state->uapi.dst.y1 - src.y1; +- clip_area_update(&pipe_clip, &damaged_area); ++ clip_area_update(&pipe_clip, &damaged_area, &crtc_state->pipe_src); ++ } ++ ++ /* ++ * TODO: For now we are just using full update in case ++ * selective fetch area calculation fails. To optimize this we ++ * should identify cases where this happens and fix the area ++ * calculation for those. ++ */ ++ if (pipe_clip.y1 == -1) { ++ drm_info_once(&dev_priv->drm, ++ "Selective fetch area calculation failed in pipe %c\n", ++ pipe_name(crtc->pipe)); ++ full_update = true; + } + + if (full_update) diff --git a/drivers/gpu/drm/v3d/Kconfig b/drivers/gpu/drm/v3d/Kconfig index e973ec487484..ce62c5908e1d 100644 --- a/drivers/gpu/drm/v3d/Kconfig @@ -1565,7 +1661,7 @@ index 258d5fe3d395..f7298e3dc8f3 100644 if (data->f01_container->dev.driver) { /* Driver already bound, so enable ATTN now. */ diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index 847ad47a2dfd..e5e545c80de7 100644 +index f113833c3075..09b90271036f 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -7,6 +7,7 @@ @@ -3066,7 +3162,7 @@ index 7d9b0bb47eb3..221776a5377a 100644 enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) { diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h -index eafa1d2489fd..8a7165ea78d5 100644 +index 4e94755098f1..f97d4de2996f 100644 --- a/include/linux/lsm_hook_defs.h +++ b/include/linux/lsm_hook_defs.h @@ -394,6 +394,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux) @@ -3079,7 +3175,7 @@ index eafa1d2489fd..8a7165ea78d5 100644 #ifdef CONFIG_PERF_EVENTS LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h -index 91c8146649f5..42a73934404e 100644 +index b681cfce6190..9cf4ac43050c 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h @@ -1550,6 +1550,12 @@ @@ -3120,7 +3216,7 @@ index ab7eea01ab42..fff7c5f737fc 100644 int rmi_register_transport_device(struct rmi_transport_dev *xport); diff --git a/include/linux/security.h b/include/linux/security.h -index 7fc4e9f49f54..6f0b0b2dc73d 100644 +index 3cc127bb5bfd..2fecdfb03eb5 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -473,6 +473,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); @@ -3283,7 +3379,7 @@ index 87cbdc64d272..18555cf18da7 100644 static int __init lockdown_lsm_init(void) diff --git a/security/security.c b/security/security.c -index 188b8f782220..dab400de2335 100644 +index 8b62654ff3f9..1c03d1cff35c 100644 --- a/security/security.c +++ b/security/security.c @@ -2617,6 +2617,12 @@ int security_locked_down(enum lockdown_reason what) diff --git a/sources b/sources index c19393653..7b4626199 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-5.19.8.tar.xz) = ad2fdc7b15d53636a72af15877e72d47010ef040c5fe973fbe9bc0d7ffa60f3d928719fc480a8344d96a345e234d4fa45b6e7b234a6ac0d62ccf6310b5b02387 -SHA512 (kernel-abi-stablelists-5.19.8.tar.bz2) = 16939f86a354f7ced81aacc2d15cc6e2ef9cfa765433ef49d99f611374f5b8904158cd01470b2570e2e3c8ad0526b186ecfe9b3392f1bac09883701caeedc483 -SHA512 (kernel-kabi-dw-5.19.8.tar.bz2) = 1de3b33f4992759093e4fd47338566be096f5f622e6a734cb10e3446ad9cfcc21d14f6e06c1e04ddb15cd570f783f32ec89e281b01b37b0cd076a4f86221ccd2 +SHA512 (linux-5.19.9.tar.xz) = 0a02363a7c195b6b696e4fb904f4070adbb4377029f94d20e58703a7b8fef6a903a28dbec8225ec0950ce8ebc0b51c38de6817c6ff291678ac8e19ef1a061577 +SHA512 (kernel-abi-stablelists-5.19.9.tar.bz2) = e41b0505b363feca3c5915089bb4a259956376e891dfe7c367317af0125e6b7600d1782ad1d5dd2045d4e7a31bedc88f755de2cb2da9cba18a0bf09a19cdf615 +SHA512 (kernel-kabi-dw-5.19.9.tar.bz2) = b1c5479776478d559868efc8307981a8863d01e013e241fd4f54f4f389b45e803acd5a78da29bfbf93b51ad4937065c6eae0fdfb01c09289cbe400dd4cfa30e1 -- cgit