5.9.12-rc1 review
Subsystems (5)
Greg Kroah-Hartman
maintainerPATCH 151/152 x86/resctrl: Add necessary kernfs_put() calls to prevent refcount leak
In reply to Greg Kroah-HartmanFrom: Xiaochen Shen <[email protected]>
commit 758999246965eeb8b253d47e72f7bfe508804b16 upstream.
On resource group creation via a mkdir an extra kernfs_node reference is obtained by kernfs_get() to ensure that the rdtgroup structure remains accessible for the rdtgroup_kn_unlock() calls where it is removed on deletion. Currently the extra kernfs_node reference count is only dropped by kernfs_put() in rdtgroup_kn_unlock() while the rdtgroup structure is removed in a few other locations that lack the matching reference drop.
In call paths of rmdir and umount, when a control group is removed, kernfs_remove() is called to remove the whole kernfs nodes tree of the control group (including the kernfs nodes trees of all child monitoring groups), and then rdtgroup structure is freed by kfree(). The rdtgroup structures of all child monitoring groups under the control group are freed by kfree() in free_all_child_rdtgrp().
Before calling kfree() to free the rdtgroup structures, the kernfs node of the control group itself as well as the kernfs nodes of all child monitoring groups still take the extra references which will never be dropped to 0 and the kernfs nodes will never be freed. It leads to reference count leak and kernfs_node_cache memory leak.
For example, reference count leak is observed in these two cases:
(1) mount -t resctrl resctrl /sys/fs/resctrl
mkdir /sys/fs/resctrl/c1
mkdir /sys/fs/resctrl/c1/mon_groups/m1
umount /sys/fs/resctrl
(2) mkdir /sys/fs/resctrl/c1
mkdir /sys/fs/resctrl/c1/mon_groups/m1
rmdir /sys/fs/resctrl/c1
The same reference count leak issue also exists in the error exit paths of mkdir in mkdir_rdt_prepare() and rdtgroup_mkdir_ctrl_mon().
Fix this issue by following changes to make sure the extra kernfs_node reference on rdtgroup is dropped before freeing the rdtgroup structure.
(1) Introduce rdtgroup removal helper rdtgroup_remove() to wrap up kernfs_put() and kfree().
(2) Call rdtgroup_remove() in rdtgroup removal path where the rdtgroup structure is about to be freed by kfree().
(3) Call rdtgroup_remove() or kernfs_put() as appropriate in the error exit paths of mkdir where an extra reference is taken by kernfs_get().
--- arch/x86/kernel/cpu/resctrl/rdtgroup.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-)
arch/x86/kernel/cpu/resctrl/rdtgroup.c +25 -7
@@ -507,6 +507,24 @@ unlock:return ret ?: nbytes; } +/** +* rdtgroup_remove - the helper to remove resource group safely +* @rdtgrp: resource group to remove +* +* On resource group creation via a mkdir, an extra kernfs_node reference is +* taken to ensure that the rdtgroup structure remains accessible for the +* rdtgroup_kn_unlock() calls where it is removed. +* +* Drop the extra reference here, then free the rdtgroup structure. +* +* Return: void +*/ +static void rdtgroup_remove (struct rdtgroup *rdtgrp) +{ +kernfs_put (rdtgrp->kn); +kfree (rdtgrp); +} +struct task_move_callback {struct callback_head work;struct rdtgroup *rdtgrp;
@@ -529,7 +547,7 @@ static void move_myself(struct callback_ (rdtgrp->flags & RDT_DELETED)) { current->closid =0 ; current->rmid =0 ; -kfree (rdtgrp); +rdtgroup_remove (rdtgrp); }if (unlikely (current->flags &PF_EXITING ))
@@ -2004,8 +2022,7 @@ void rdtgroup_kn_unlock(struct kernfs_no rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED)rdtgroup_pseudo_lock_remove (rdtgrp);kernfs_unbreak_active_protection (kn); -kernfs_put (rdtgrp->kn); -kfree (rdtgrp); +rdtgroup_remove (rdtgrp); }else {kernfs_unbreak_active_protection (kn); }
@@ -2292,7 +2309,7 @@ static void free_all_child_rdtgrp(structif (atomic_read (&sentry->waitcount) !=0 ) sentry->flags =RDT_DELETED ;else -kfree (sentry); +rdtgroup_remove (sentry); } }
@@ -2334,7 +2351,7 @@ static void rmdir_all_sub(void)if (atomic_read (&rdtgrp->waitcount) !=0 ) rdtgrp->flags =RDT_DELETED ;else -kfree (rdtgrp); +rdtgroup_remove (rdtgrp); }/* Notify online CPUs to update per cpu storage and PQR_ASSOC MSR */ update_closid_rmid (cpu_online_mask, &rdtgroup_default);
@@ -2769,7 +2786,7 @@ static int mkdir_rdt_prepare(struct kern* kernfs_remove() will drop the reference count on "kn" which * will free it. But we still need it to stick around for the * rdtgroup_kn_unlock(kn) call. Take one extra reference here, -* which will be dropped inside rdtgroup_kn_unlock(). +* which will be dropped by kernfs_put() in rdtgroup_remove(). */ kernfs_get (kn);
@@ -2810,6 +2827,7 @@ static int mkdir_rdt_prepare(struct kern out_idfree:free_rmid (rdtgrp->mon.rmid); out_destroy: +kernfs_put (rdtgrp->kn);kernfs_remove (rdtgrp->kn); out_free_rgrp:kfree (rdtgrp);
@@ -2822,7 +2840,7 @@ static void mkdir_rdt_prepare_clean(stru {kernfs_remove (rgrp->kn);free_rmid (rgrp->mon.rmid); -kfree (rgrp); +rdtgroup_remove (rgrp); }/*
Greg Kroah-Hartman
maintainerPATCH 152/152 drm/amdgpu: add rlc iram and dram firmware support
In reply to Greg Kroah-HartmanFrom: Likun Gao <[email protected]>
commit 843c7eb2f7571aa092a8ea010c80e8d94c197f67 upstream.
Support to load RLC iram and dram ucode when RLC firmware struct use v2.2
--- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 6 ++++ drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h | 4 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c | 10 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h | 11 ++++++++ drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 39 +++++++++++++++++++++++++----- drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h | 4 +-- 6 files changed, 66 insertions(+), 8 deletions(-)
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +6 -0
@@ -1571,6 +1571,12 @@ static int psp_get_fw_type(struct amdgpucase AMDGPU_UCODE_ID_RLC_RESTORE_LIST_SRM_MEM : *type =GFX_FW_TYPE_RLC_RESTORE_LIST_SRM_MEM ;break ; +case AMDGPU_UCODE_ID_RLC_IRAM : + *type =GFX_FW_TYPE_RLC_IRAM ; +break ; +case AMDGPU_UCODE_ID_RLC_DRAM : + *type =GFX_FW_TYPE_RLC_DRAM_BOOT ; +break ;case AMDGPU_UCODE_ID_SMC : *type =GFX_FW_TYPE_SMU ;break ;
drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h +4 -0
@@ -168,12 +168,16 @@ struct amdgpu_rlc {u32 save_restore_list_cntl_size_bytes;u32 save_restore_list_gpm_size_bytes;u32 save_restore_list_srm_size_bytes; +u32 rlc_iram_ucode_size_bytes; +u32 rlc_dram_ucode_size_bytes;u32 *register_list_format;u32 *register_restore;u8 *save_restore_list_cntl;u8 *save_restore_list_gpm;u8 *save_restore_list_srm; +u8 *rlc_iram_ucode; +u8 *rlc_dram_ucode;bool is_rlc_v2_1;
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c +10 -0
@@ -500,6 +500,8 @@ static int amdgpu_ucode_init_single_fw(s ucode->ucode_id !=AMDGPU_UCODE_ID_RLC_RESTORE_LIST_CNTL && ucode->ucode_id !=AMDGPU_UCODE_ID_RLC_RESTORE_LIST_GPM_MEM && ucode->ucode_id !=AMDGPU_UCODE_ID_RLC_RESTORE_LIST_SRM_MEM && + ucode->ucode_id !=AMDGPU_UCODE_ID_RLC_IRAM && + ucode->ucode_id !=AMDGPU_UCODE_ID_RLC_DRAM && ucode->ucode_id !=AMDGPU_UCODE_ID_DMCU_ERAM && ucode->ucode_id !=AMDGPU_UCODE_ID_DMCU_INTV && ucode->ucode_id != AMDGPU_UCODE_ID_DMCUB)) {
@@ -556,6 +558,14 @@ static int amdgpu_ucode_init_single_fw(s ucode->ucode_size = adev->gfx.rlc.save_restore_list_srm_size_bytes;memcpy (ucode->kaddr, adev->gfx.rlc.save_restore_list_srm, ucode->ucode_size); + }else if (ucode->ucode_id ==AMDGPU_UCODE_ID_RLC_IRAM ) { + ucode->ucode_size = adev->gfx.rlc.rlc_iram_ucode_size_bytes; +memcpy (ucode->kaddr, adev->gfx.rlc.rlc_iram_ucode, + ucode->ucode_size); + }else if (ucode->ucode_id ==AMDGPU_UCODE_ID_RLC_DRAM ) { + ucode->ucode_size = adev->gfx.rlc.rlc_dram_ucode_size_bytes; +memcpy (ucode->kaddr, adev->gfx.rlc.rlc_dram_ucode, + ucode->ucode_size); }else if (ucode->ucode_id ==AMDGPU_UCODE_ID_CP_MES ) { ucode->ucode_size =le32_to_cpu (mes_hdr->mes_ucode_size_bytes); memcpy(ucode->kaddr, (void *)((uint8_t *)adev->mes.fw->data +
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h +11 -0
@@ -221,6 +221,15 @@ struct rlc_firmware_header_v2_1 {uint32_t save_restore_list_srm_offset_bytes; }; +/* version_major=2, version_minor=1 */ +struct rlc_firmware_header_v2_2 { +struct rlc_firmware_header_v2_1 v2_1; +uint32_t rlc_iram_ucode_size_bytes; +uint32_t rlc_iram_ucode_offset_bytes; +uint32_t rlc_dram_ucode_size_bytes; +uint32_t rlc_dram_ucode_offset_bytes; +}; +/* version_major=1, version_minor=0 */ struct sdma_firmware_header_v1_0 {struct common_firmware_header header;
@@ -338,6 +347,8 @@ enum AMDGPU_UCODE_ID {AMDGPU_UCODE_ID_RLC_RESTORE_LIST_CNTL ,AMDGPU_UCODE_ID_RLC_RESTORE_LIST_GPM_MEM ,AMDGPU_UCODE_ID_RLC_RESTORE_LIST_SRM_MEM , +AMDGPU_UCODE_ID_RLC_IRAM , +AMDGPU_UCODE_ID_RLC_DRAM ,AMDGPU_UCODE_ID_RLC_G ,AMDGPU_UCODE_ID_STORAGE , AMDGPU_UCODE_ID_SMC,
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +33 -6
@@ -3596,6 +3596,17 @@ static void gfx_v10_0_init_rlc_ext_microle32_to_cpu (rlc_hdr->reg_list_format_direct_reg_list_length); } +static void gfx_v10_0_init_rlc_iram_dram_microcode (struct amdgpu_device *adev) +{ +const struct rlc_firmware_header_v2_2 *rlc_hdr; + + rlc_hdr = (const struct rlc_firmware_header_v2_2 *)adev->gfx.rlc_fw->data; + adev->gfx.rlc.rlc_iram_ucode_size_bytes =le32_to_cpu (rlc_hdr->rlc_iram_ucode_size_bytes); + adev->gfx.rlc.rlc_iram_ucode = (u8 *)rlc_hdr +le32_to_cpu (rlc_hdr->rlc_iram_ucode_offset_bytes); + adev->gfx.rlc.rlc_dram_ucode_size_bytes =le32_to_cpu (rlc_hdr->rlc_dram_ucode_size_bytes); + adev->gfx.rlc.rlc_dram_ucode = (u8 *)rlc_hdr +le32_to_cpu (rlc_hdr->rlc_dram_ucode_offset_bytes); +} +static bool gfx_v10_0_navi10_gfxoff_should_enable (struct amdgpu_device *adev) {bool ret = false;
@@ -3711,8 +3722,6 @@ static int gfx_v10_0_init_microcode(stru rlc_hdr = (const struct rlc_firmware_header_v2_0 *)adev->gfx.rlc_fw->data; version_major =le16_to_cpu (rlc_hdr->header.header_version_major); version_minor =le16_to_cpu (rlc_hdr->header.header_version_minor); -if (version_major ==2 && version_minor ==1 ) - adev->gfx.rlc.is_rlc_v2_1 = true; adev->gfx.rlc_fw_version =le32_to_cpu (rlc_hdr->header.ucode_version); adev->gfx.rlc_feature_version =le32_to_cpu (rlc_hdr->ucode_feature_version);
@@ -3754,8 +3763,12 @@ static int gfx_v10_0_init_microcode(strufor (i =0 ; i < (rlc_hdr->reg_list_size_bytes >>2 ); i++) adev->gfx.rlc.register_restore[i] =le32_to_cpu (tmp[i]); -if (adev->gfx.rlc.is_rlc_v2_1) -gfx_v10_0_init_rlc_ext_microcode (adev); +if (version_major ==2 ) { +if (version_minor >=1 ) +gfx_v10_0_init_rlc_ext_microcode (adev); +if (version_minor ==2 ) +gfx_v10_0_init_rlc_iram_dram_microcode (adev); + } }snprintf (fw_name,sizeof (fw_name),"amdgpu/%s_mec%s.bin" , chip_name, wks);
@@ -3816,8 +3829,7 @@ static int gfx_v10_0_init_microcode(stru adev->firmware.fw_size +=ALIGN (le32_to_cpu (header->ucode_size_bytes),PAGE_SIZE ); } -if (adev->gfx.rlc.is_rlc_v2_1 && - adev->gfx.rlc.save_restore_list_cntl_size_bytes && +if (adev->gfx.rlc.save_restore_list_cntl_size_bytes && adev->gfx.rlc.save_restore_list_gpm_size_bytes && adev->gfx.rlc.save_restore_list_srm_size_bytes) { info = &adev->firmware.ucode[AMDGPU_UCODE_ID_RLC_RESTORE_LIST_CNTL ];
@@ -3837,6 +3849,21 @@ static int gfx_v10_0_init_microcode(stru info->fw = adev->gfx.rlc_fw; adev->firmware.fw_size +=ALIGN (adev->gfx.rlc.save_restore_list_srm_size_bytes,PAGE_SIZE ); + +if (adev->gfx.rlc.rlc_iram_ucode_size_bytes && + adev->gfx.rlc.rlc_dram_ucode_size_bytes) { + info = &adev->firmware.ucode[AMDGPU_UCODE_ID_RLC_IRAM ]; + info->ucode_id =AMDGPU_UCODE_ID_RLC_IRAM ; + info->fw = adev->gfx.rlc_fw; + adev->firmware.fw_size += +ALIGN (adev->gfx.rlc.rlc_iram_ucode_size_bytes,PAGE_SIZE ); + + info = &adev->firmware.ucode[AMDGPU_UCODE_ID_RLC_DRAM ]; + info->ucode_id =AMDGPU_UCODE_ID_RLC_DRAM ; + info->fw = adev->gfx.rlc_fw; + adev->firmware.fw_size += +ALIGN (adev->gfx.rlc.rlc_dram_ucode_size_bytes,PAGE_SIZE ); + } } info = &adev->firmware.ucode[AMDGPU_UCODE_ID_CP_MEC1 ];
drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h +2 -2
@@ -214,7 +214,7 @@ enum psp_gfx_fw_type {GFX_FW_TYPE_UVD1 =23 ,/* UVD1 VG-20 */ GFX_FW_TYPE_TOC =24 ,/* TOC NV-10 */ GFX_FW_TYPE_RLC_P =25 ,/* RLC P NV */ -GFX_FW_TYPE_RLX6 =26 ,/* RLX6 NV */ +GFX_FW_TYPE_RLC_IRAM =26 ,/* RLC_IRAM NV */ GFX_FW_TYPE_GLOBAL_TAP_DELAYS =27 ,/* GLOBAL TAP DELAYS NV */ GFX_FW_TYPE_SE0_TAP_DELAYS =28 ,/* SE0 TAP DELAYS NV */ GFX_FW_TYPE_SE1_TAP_DELAYS = 29, /* SE1 TAP DELAYS NV */
@@ -236,7 +236,7 @@ enum psp_gfx_fw_type {GFX_FW_TYPE_ACCUM_CTRL_RAM =45 ,/* ACCUM CTRL RAM NV */ GFX_FW_TYPE_RLCP_CAM =46 ,/* RLCP CAM NV */ GFX_FW_TYPE_RLC_SPP_CAM_EXT =47 ,/* RLC SPP CAM EXT NV */ -GFX_FW_TYPE_RLX6_DRAM_BOOT =48 ,/* RLX6 DRAM BOOT NV */ +GFX_FW_TYPE_RLC_DRAM_BOOT =48 ,/* RLC DRAM BOOT NV */ GFX_FW_TYPE_VCN0_RAM =49 ,/* VCN_RAM NV + RN */ GFX_FW_TYPE_VCN1_RAM =50 ,/* VCN_RAM NV + RN */ GFX_FW_TYPE_DMUB = 51, /* DMUB RN */
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.9.12 release. There are 152 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 03 Dec 2020 08:46:29 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.9.12-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.9.y
and the diffstat can be found below.thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.9:
15 builds: 15 pass, 0 fail
26 boots: 26 pass, 0 fail
64 tests: 64 pass, 0 failLinux version: 5.9.12-rc1-gfb49ad2107f4
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra20-ventana,
tegra210-p2371-2180, tegra210-p3450-0000,
tegra30-cardhu-a04Jon
Quoted 18 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.9.12 release. There are 152 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.Responses should be made by Thu, 03 Dec 2020 08:46:29 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.9.12-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-
stable-rc.git linux-5.9.y
and the diffstat can be found below.
Quoted 3 lines
thanks,
greg k-h
hello,
Compiled and booted 5.9.12-rc1+. No typical dmesg regression or regressions.
Signature · 2 lines
software engineer rajagiri school of engineering and technology - autonomous
Quoted 8 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.9.12 release. There are 152 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 03 Dec 2020 08:46:29 +0000. Anything received after that time might be too late.
Build results:
total: 154 pass: 154 fail: 0 Qemu test results: total: 426 pass: 426 fail: 0
Guenter
Quoted 10 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.9.12 release. There are 152 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 03 Dec 2020 08:46:29 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 8 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.9.12-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.9.y
and the diffstat can be found below.thanks,
greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
NOTE:
BUG: Invalid wait context on arm64 db410c device.
This is an intermittent issue seen while booting and while running kselftests.
https://lore.kernel.org/stable/CA+G9fYupbQK02Yor=U-80JEdkwacZ7bi3RKt3+D=e+qZ-o0uCA@mail.gmail.com/
https://lore.kernel.org/stable/CA+G9fYsk54r9Re4E9BWpqsoxLjpCvxRKFWRgdiKVcPoYE5z0Hw@mail.gmail.com/
Summary
------------------------------------------------------------------------
kernel: 5.9.12-rc1
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git branch: linux-5.9.y
git commit: fb49ad2107f4b740257c84ec2991fc6afb447f53
git describe: v5.9.11-153-gfb49ad2107f4
Test details: https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.9.y/build/v5.9.11-153-gfb49ad2107f4
No regressions (compared to build v5.9.11)
No fixes (compared to build v5.9.11)
Ran 53637 total tests in the following environments and test suites.
Environments
--------------
- arc
- arm
- arm64
- dragonboard-410c
- hi6220-hikey
- i386
- juno-r2
- juno-r2-compat
- juno-r2-kasan
- mips
- nxp-ls2088
- parisc
- powerpc
- qemu-arm-clang
- qemu-arm64-clang
- qemu-arm64-kasan
- qemu-i386-clang
- qemu-x86_64-clang
- qemu-x86_64-kasan
- qemu_arm
- qemu_arm64
- qemu_arm64-compat
- qemu_i386
- qemu_x86_64
- qemu_x86_64-compat
- riscv
- s390
- sh
- sparc
- x15
- x86
- x86-kasan
Test Suites
-----------
* build
* linux-log-parser
* igt-gpu-tools
* install-android-platform-tools-r2600
* libhugetlbfs
* ltp-cap_bounds-tests
* ltp-commands-tests
* ltp-cpuhotplug-tests
* ltp-crypto-tests
* ltp-cve-tests
* ltp-dio-tests
* ltp-fcntl-locktests-tests
* ltp-filecaps-tests
* ltp-fs_bind-tests
* ltp-fs_perms_simple-tests
* ltp-fsx-tests
* ltp-io-tests
* ltp-ipc-tests
* ltp-math-tests
* ltp-nptl-tests
* ltp-pty-tests
* ltp-securebits-tests
* ltp-syscalls-tests
* ltp-tracing-tests
* perf
* v4l2-compliance
* ltp-containers-tests
* ltp-fs-tests
* ltp-hugetlb-tests
* ltp-mm-tests
* ltp-sched-tests
* network-basic-tests
* kselftest
* ltp-controllers-tests
* ltp-open-posix-tests
* kvm-unit-tests
* kunit
* kselftest-vsyscall-mode-native
* kselftest-vsyscall-mode-none
Signature · 2 lines
Linaro LKFT https://lkft.linaro.org
Quoted 9 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.9.12 release. There are 152 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 03 Dec 2020 08:46:29 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
Quoted 9 lines
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.9.12-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.9.y
and the diffstat can be found below.thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
thanks,
-- Shuah
Greg Kroah-Hartman
maintainerQuoted 15 lines · Shuah Khan
Quoted 14 lines · Greg Kroah-Hartman
This is the start of the stable review cycle for the 5.9.12 release. There are 152 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Thu, 03 Dec 2020 08:46:29 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.9.12-rc1.gzor in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gitlinux-5.9.y
and the diffstat can be found below.
Quoted 8 lines
Quoted 4 lines
thanks,
greg k-h
Compiled and booted on my test system. No dmesg regressions.
Tested-by Shuah Khan <[email protected]>
Thanks for testing all of these and letting me know.
greg k-h