From 1583859d11bbe644d2a25fc01159b4f97fd79afe Mon Sep 17 00:00:00 2001 From: liuzh Date: Mon, 15 Jul 2024 15:48:47 +0800 Subject: [PATCH] add Haoc patch and spec file. --- 0005-haoc-kernel-22.03.patch | 20925 ++++++++++++++++++ _multibuild | 1 + haoc-kernel.spec | 38530 +++++++++++++++++++++++++++++++++ 3 files changed, 59456 insertions(+) create mode 100644 0005-haoc-kernel-22.03.patch create mode 100644 haoc-kernel.spec diff --git a/0005-haoc-kernel-22.03.patch b/0005-haoc-kernel-22.03.patch new file mode 100644 index 00000000..7602ea07 --- /dev/null +++ b/0005-haoc-kernel-22.03.patch @@ -0,0 +1,20925 @@ +From d355274da48be15267ae57ec98537d217f923071 Mon Sep 17 00:00:00 2001 +From: liuzh +Date: Wed, 10 Jul 2024 10:57:31 +0800 +Subject: [PATCH] Squashed commit of the following: + +commit 58ee2e8dc8b7df0e009c123bc8b33860aa18f6f3 +Author: liuzh +Date: Wed Jul 10 10:52:28 2024 +0800 + + disable HIVE and KOI + +commit d9bf4b256b0c4eef5c5493f4d4c71a29a1c2823c +Author: ljl +Date: Tue Jun 18 12:59:16 2024 +0800 + + HIVE: fixed parameter error of set_pte in sfi_bpf.c. + +commit 9c1738021128a134802f18277170ed9e21dabdbf +Author: clf <1599101385@qq.com> +Date: Mon Jun 17 14:03:49 2024 +0000 + + set all kernel pagetable to nG in KOI + +commit db890e88f3f53b19ff4f08abbf9f59d007767f03 +Author: clf <1599101385@qq.com> +Date: Mon Jun 17 12:58:49 2024 +0000 + + fix koi nG bug + +commit 2c4b8d3cf7db816e78972d15ed9a6e51a6f1b016 +Author: clf <1599101385@qq.com> +Date: Sat Jun 15 14:36:12 2024 +0000 + + fix koi kaslr bug + +commit 9314a7bd72f7d927d68a90f9329ecd68d6816b3f +Author: mxy <1356464784@qq.com> +Date: Wed Jun 12 17:33:23 2024 +0800 + + fix ifdef err, delete pr_err output, modify hive config + +commit 90789672bb85b33c362c967c84fa5aabc5947f24 +Author: mxy <1356464784@qq.com> +Date: Tue Jun 11 20:40:43 2024 +0800 + + fix an ignorance of ifdef + +commit ef4354bdc059754532de080d865076c9b9e3c313 +Author: mxy <1356464784@qq.com> +Date: Mon Jun 10 19:59:30 2024 +0800 + + merge bpf sfi + +commit a87b2acf5c274841dc578eab7205bc433cc7f934 +Author: clingfei <1599101385@qq.com> +Date: Tue May 28 14:13:17 2024 +0800 + + reset tcp_bbr + +commit 0113543b9e8875eecf160d8157592d61c3155129 +Author: clingfei <1599101385@qq.com> +Date: Tue May 28 14:06:28 2024 +0800 + + fix deadlock + +commit 1540918bd8afbf1ae287091b5e0513edb4a0d7a8 +Author: clingfei <1599101385@qq.com> +Date: Mon May 27 19:13:41 2024 +0800 + + fix uninitialized ptl in struct page + +commit 65191c9e3033858c832b1d21f07254416162913c +Author: clingfei <1599101385@qq.com> +Date: Fri May 24 16:25:53 2024 +0800 + + update + +commit 3d585e02921143516188bd290d5ff473ab7e8712 +Author: clingfei <1599101385@qq.com> +Date: Fri May 24 09:48:43 2024 +0800 + + update + +commit 6c6d487118385b36a0cde5041778744e496040cf +Author: clingfei <1599101385@qq.com> +Date: Thu May 23 10:48:54 2024 +0800 + + fix dead lock + +commit 2b61b4da6f7e170cd417bbe09cbb058b6b4b6eb2 +Author: clingfei <1599101385@qq.com> +Date: Thu May 23 09:53:24 2024 +0800 + + fix koi again + +commit 12248ddb567879b86b85712e537a4b5709907991 +Author: clingfei <1599101385@qq.com> +Date: Mon May 20 21:43:01 2024 +0800 + + fix koi + +commit a4f2e693bf727a0b0bf69506ea5bb474f3af0712 +Author: clingfei <1599101385@qq.com> +Date: Tue May 14 14:19:49 2024 +0800 + + fix bugs + +commit f0f6975bc4290582465b6ec8eb0f03aa61c58673 +Author: clingfei <1599101385@qq.com> +Date: Mon May 13 19:07:29 2024 +0800 + + set non-global + +commit e59d6a2ffe4d796f429c64848667c3752c11e7bb +Author: zhangsy +Date: Wed May 15 09:56:34 2024 +0800 + + Adapted to default config. + +commit 2c6e2af32308ebc9f06b662e001b686425339241 +Merge: 8354d1f4736e f59751a65815 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Mon May 13 12:11:35 2024 +0000 + + Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit + +commit 8354d1f4736e1713070a21f70e5486f198337ceb +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Mon May 13 12:10:37 2024 +0000 + + Adapted to default config. + +commit f59751a6581571cf9e08d5cd03bd030b02fbf12f +Author: ljl +Date: Mon May 13 17:33:46 2024 +0800 + + fixed KOI errors in merge with zsy. + +commit e6169b6b43aa1df0e433bdde07267f4c77dcf08c +Author: ljl +Date: Mon May 13 16:49:49 2024 +0800 + + fixed error in merge with zsy. + +commit 7891772450a90a19c8fe05d63769407fcbc9bc94 +Author: clingfei <1599101385@qq.com> +Date: Mon May 13 16:12:31 2024 +0800 + + reset tcp_bbr + +commit 75f28e7873dbe3e85dd3f6ecc2f8b195641354f6 +Merge: b3a40347c537 b8494c14ad48 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Mon May 13 07:00:10 2024 +0000 + + Merge but KOI has compiling error. + +commit b3a40347c537c42a07c6da3929fb2ef52fac54a9 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Mon May 13 05:51:27 2024 +0000 + + Optimize for UnixBench. + +commit b8494c14ad480518f005d6c086c48f92f80474bd +Author: ljl +Date: Tue Apr 30 11:39:30 2024 +0800 + + IEE SI: KOI switch gates are updated. + +commit 06b282d95ae216f507f1dd950afe7feef6214a8a +Author: clingfei <1599101385@qq.com> +Date: Tue Apr 30 10:17:06 2024 +0800 + + alloc new asid for koi when CONFIG_IEE is enabled, the original is the best:) + +commit 0f1579fa5c1191c84838c9f755f0a1700590c0da +Author: clingfei <1599101385@qq.com> +Date: Mon Apr 29 14:18:57 2024 +0800 + + fix free_task + +commit 74f5b10b6e9bffe32b35054f5180d4dc5a009b2b +Author: clingfei <1599101385@qq.com> +Date: Mon Apr 29 11:45:10 2024 +0800 + + fix koi_copy_pagetable, remove rwx_gate temporarily + +commit 38e53f0027fe37d6afa6790a9e18967ede464b99 +Author: clingfei <1599101385@qq.com> +Date: Mon Apr 29 06:25:19 2024 +0800 + + fix TLB conflict in koi + +commit 98d1f71e529878ecca018c19c1173870d27896ff +Author: clingfei <1599101385@qq.com> +Date: Sat Apr 27 09:30:19 2024 +0800 + + bypass iee switch stack when rwx gate called by koi, fix iee_set_koi_pgd_writable + +commit d348c8cdb01a51529a47bc6cfa9525e7e9f51f67 +Author: clingfei <1599101385@qq.com> +Date: Wed Apr 24 18:48:57 2024 +0800 + + fix bugs + +commit 1afd0068d2f159e109ed5a835fcf5908a7fa984f +Author: clingfei <1599101385@qq.com> +Date: Mon Apr 22 16:58:14 2024 +0800 + + fix koi_destroy_pagetable + +commit 4a32d063b1763551bbc74c83ff0997e130bc2d27 +Author: clingfei <1599101385@qq.com> +Date: Tue Apr 23 11:50:54 2024 +0800 + + fix koi_unmap_mem + +commit f396d85c384daaa4e0a33ec4ab868b921a58a80d +Author: clingfei <1599101385@qq.com> +Date: Tue Apr 23 08:10:23 2024 +0800 + + update + +commit 7ed8f17b7def1a12cf10f108e81e185349103a04 +Author: clingfei <1599101385@qq.com> +Date: Tue Apr 23 07:42:08 2024 +0800 + + fix panic when rmmod + +commit 1c3459295642313147ff2b76b694698acfc777c8 +Author: clingfei <1599101385@qq.com> +Date: Sat Apr 20 10:11:32 2024 +0800 + + fix delete module to avoid access to struct module even after module has been unloaded + +commit 32669f34e8166261d05e4a7b67d46ead6a7027ab +Author: clingfei <1599101385@qq.com> +Date: Sat Apr 20 07:19:45 2024 +0800 + + bypass DEP check when creating pagetable, release memory when unload kernel modules + +commit b5a71ce835beadadbebb447e54eea90f62d18eb0 +Author: ljl +Date: Tue Apr 23 13:35:52 2024 +0800 + + IEE SI: Added Interface IEE_SET_KOI_PGD for KOI. + +commit 663d8efd796b608703256c98389275c57b617167 +Author: ljl +Date: Tue Apr 23 12:02:40 2024 +0800 + + IEE: Replace iee flags by enum in KOI switch gates. + +commit 5cfff7f0d02bf344fa990a505d6e1fc4208fd7cd +Merge: c31d6b374677 d0d955095e0d +Author: ljl +Date: Tue Apr 23 09:24:43 2024 +0800 + + Merge branch 'ljl-tmp' into openeuler-commit + +commit d0d955095e0d6a33e24fbbcdb43977e2b502e2e2 +Author: ljl +Date: Tue Apr 23 06:23:36 2024 +0800 + + Removed file token (IEE CREDP) and reworked iee flags by enum. + +commit c31d6b374677505f6c03a6afc899a0920ee49dfe +Author: clingfei <1599101385@qq.com> +Date: Tue Apr 16 18:45:36 2024 +0800 + + fix bugs, still CAN NOT pass DEP check when creating ko's pagetable NOW + +commit 1efff823c329d220dd7cbc1b86e383699ebb1514 +Merge: 71277723ab8d 3b597cbc4f92 +Author: clingfei <1599101385@qq.com> +Date: Sat Apr 13 09:38:11 2024 +0800 + + Merge branch 'koi-dev' into openeuler-commit + +commit 4ec1144f0dac49a73e00ccb622112ea709382463 +Author: ljl +Date: Fri Apr 12 10:04:13 2024 +0000 + + IEE SI: Provides KOI switch gates. + +commit f5fdc1a66a1ded5e8d054b13e8430bfe1605dd6e +Author: ljl +Date: Fri Apr 12 15:14:19 2024 +0800 + + IEE CREDP: protect commit_creds from ROP reuse. + +commit bcfecdb511efb02f30ee557714ef3a62c9cc7b43 +Author: ljl +Date: Wed Apr 10 11:59:05 2024 +0800 + + IEE CREDP: added file token. + +commit 71277723ab8da283d5c56b6ed5d0f9adda91c410 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Sun Apr 7 10:04:23 2024 +0000 + + Fix bug of CONFIG_IEE. + +commit 540714959404ca367788594b1a79cb4e1fd76093 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Sun Apr 7 02:25:37 2024 +0000 + + Fix compiling error. + +commit 2092ed22afda2f84ec1e1e6ae62902bd22f91a76 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Wed Apr 3 10:46:38 2024 +0000 + + Optimize CONFIG_IEE and CONFIG_PTP. + +commit 3b597cbc4f92b233e8585de7f990246c1780c744 +Author: clingfei <1599101385@qq.com> +Date: Mon Apr 1 14:23:24 2024 +0800 + + fix bug + +commit a453e89af4d693d9d450f42b9caf3a7c38b438bf +Author: clingfei <1599101385@qq.com> +Date: Sat Mar 30 22:26:01 2024 +0800 + + fix bug + +commit aef9920d23eed46ec100c69e6a543bd99db31f7f +Author: clingfei <1599101385@qq.com> +Date: Tue Mar 26 17:18:14 2024 +0800 + + fix koi_create_pagetable bug caused by huge pud page + +commit 4520db7d8b0fc6f2a5e740b6757c8965dd0cdaf7 +Author: clingfei <1599101385@qq.com> +Date: Tue Mar 26 14:22:51 2024 +0800 + + update + +commit 3e389afbb70cdf7f0f51e7fee495b8f4755b0fff +Author: clingfei <1599101385@qq.com> +Date: Sat Mar 23 22:34:05 2024 +0800 + + fix bugs + +commit 8c15bc003ba4cc95b5bed6aeafd5b82192b970d4 +Author: clingfei <1599101385@qq.com> +Date: Sat Mar 23 10:58:54 2024 +0800 + + fix koi only, now it can boot successfully + +commit d9f7c428fd871f2053bcd3549dd5231241421462 +Author: clingfei <1599101385@qq.com> +Date: Tue Feb 13 15:56:24 2024 +0800 + + enable configs + +commit b0d72dfa149958f8688329a65a709bc7d4ae255b +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Thu Mar 21 03:22:30 2024 +0000 + + Fix pgtable free bug. + +commit 5a995cebd8b894373ac80cc2f8dea87f4c1a643c +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Thu Mar 21 02:55:25 2024 +0000 + + Fix TLB FLUSH bug when switching HPD1. + +commit 1dc1d72cd4fa7915974c3425505f0b9795dabfd0 +Author: ljl +Date: Tue Mar 19 10:26:47 2024 +0000 + + IEE SI: Disable PAN in rwx gate to skip the CNP BUG. + +commit 628e782c8093d0dac99e02ad73a7eefc990492ed +Author: ljl +Date: Mon Mar 18 15:21:15 2024 +0000 + + IEE SI: Skip CNP setting BUG. + +commit 6bd2f269909700d98e47ab62cde16f8156c4b5c9 +Merge: 22a030598732 34a590c91cda +Author: zhangsy +Date: Mon Mar 18 19:57:16 2024 +0800 + + Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit + +commit 22a030598732108955634de4afbe7537de809c27 +Author: zhangsy +Date: Mon Mar 18 19:56:15 2024 +0800 + + Fix bugs existing in 5.10 but only triggered in 6.6. + +commit 34a590c91cda756c1aeffa4fdda9523edd56120d +Author: ljl +Date: Thu Mar 14 11:57:21 2024 +0000 + + IEE SI [WARN]:STILL May crash when booting up. Please reboot when it happens :). + +commit e5ffbb8fef97847ac592265e3f7202749f2ddaec +Author: ljl +Date: Wed Mar 13 16:11:49 2024 +0000 + + IEE SI [WARN]: Remake rwx gate by TCR switching. May crush when booting up. + +commit d5bdf02493bfe29b7c82452769183e64346827da +Author: zhangsy +Date: Thu Mar 7 10:58:26 2024 +0800 + + Fix a compiling error of CONFIG_IEE. + +commit 5421759f866ee45eeca3a07c2b97a855fcb8440b +Merge: cb56dac142c1 88acc4ad4875 +Author: zhangsy +Date: Tue Mar 5 17:29:43 2024 +0800 + + Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit + +commit cb56dac142c1136c45f303a45fc50317caba2975 +Author: zhangsy +Date: Tue Mar 5 17:24:33 2024 +0800 + + Fix CONFIG bug. + +commit 88acc4ad4875088325931169f7626d19e529a3dd +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Thu Feb 29 11:57:17 2024 +0000 + + Fix some warnings of credp. + +commit 71ed6a79a9672f4afc0827a332878f5ad09d7701 +Author: zhangsy +Date: Wed Feb 28 18:17:40 2024 +0800 + + Opt interruption support of iee. + +commit 3b19f12592e3907c33aaf46a75f0ede24544e260 +Author: zhangsy +Date: Wed Feb 28 16:36:58 2024 +0800 + + Change support of iee interruption as a config and optimize the EL1 exception. + +commit d19a552fd1b14a6bb1156c6aedce084a70a03324 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Mon Feb 26 12:05:58 2024 +0000 + + Fix ELR_EL1 set error. + +commit a33d7d4976a4aa555bc2a1f0c474e16ac5a46aa2 +Author: zhangsy +Date: Mon Feb 26 17:21:55 2024 +0800 + + Normalize the iee code. + +commit 5db8d4b57cc062191f657d307d2693cfaa73edc5 +Author: zhangsy +Date: Mon Feb 26 11:36:37 2024 +0800 + + Normalize interfaces of setting iee and simplify iee_exception_gate. + +commit 66d0f9ca5e7a62256137a8797e3e3ca9a770912e +Author: ljl +Date: Fri Feb 23 12:01:32 2024 +0000 + + IEE SI: Commented all DBG breakpoint codes to prepare remaking rwx gate again :) + +commit a3312aca506dc8b23ecce85713e513729dc3b1c8 +Merge: 2905589e9912 70f6d17b3f2b +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Fri Feb 23 06:57:19 2024 +0000 + + Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit + +commit 2905589e99122db5c3978a3c260e861c5d932b75 +Author: zhangshiyang17@mails.ucas.ac.cn +Date: Fri Feb 23 06:57:10 2024 +0000 + + Optimize HPDS switch. + +commit 70f6d17b3f2bb33b30bf0bd20f5e58ffc800b159 +Author: ljl +Date: Fri Feb 23 05:18:25 2024 +0000 + + IEE SI: Optimized DBG Breakpoint ctrl. + +commit 9d51a74c200a1326a5a7b28c33196e2ddb42a9d9 +Author: zhangsy +Date: Thu Feb 22 09:19:27 2024 +0800 + + Fix kaslr bug when opening KPTI. + +commit b3d02e656e163f6d2423c0f9e4039d43c6c9cb2b +Author: clingfei <1599101385@qq.com> +Date: Tue Feb 13 10:19:31 2024 +0800 + + free koi stack and set token page invalid + +commit 73be7b30b7e42611a877610d1821efbe5ed9574b +Author: clingfei <1599101385@qq.com> +Date: Sat Feb 10 20:27:06 2024 +0800 + + fix koi token alloc, fix koi_create_pagetable + +commit 8ff4b296e3cf5ab14c44fa782b9d2b6daa344609 +Author: clingfei <1599101385@qq.com> +Date: Tue Feb 6 21:15:13 2024 +0800 + + fix koi + +commit 78b8cbe4ac4a2f28e9946df3ecafbe80dcc9b73b +Author: clingfei <1599101385@qq.com> +Date: Tue Feb 6 14:10:05 2024 +0800 + + Fix koi token alloc and free + +commit e521d2363044e5a0d6cfbb6173452b5514f08f12 +Author: clingfei <1599101385@qq.com> +Date: Sun Feb 4 17:42:45 2024 +0800 + + use user process's asid when calling into driver view, and use corresponding kernel's asid when returning from driver view + +commit fe3c93519cdb1cc22ae499a12fca80fea88fa0d8 +Author: ljl +Date: Tue Feb 6 04:11:12 2024 +0000 + + IEE tested on Unixbench without KOI. + +commit d8c00905445df1b7c0c78e5de9a9bcf3c709e2cb +Author: zhangsy +Date: Mon Feb 5 20:54:34 2024 +0800 + + Fix Unix bench bugs. + +commit 3c8d267ab1035b7acbe1b3610adcd3e44d0f8410 +Author: ljl +Date: Sun Feb 4 19:04:48 2024 +0800 + + IEE SI: Temporaily remove modification in arch_local_irq_restore() to eliminate deadlock BUG. + +commit 71c2b981d33fb54b299be09875ac9c82e2bbfc7a +Author: clingfei <1599101385@qq.com> +Date: Sun Feb 4 17:42:45 2024 +0800 + + use user process's asid when calling into driver view, and use corresponding kernel's asid when returning from driver view + +commit 1c37c2f3bf4153d59d6cd64da7b683506038a29f +Author: clingfei <1599101385@qq.com> +Date: Sun Feb 4 16:23:57 2024 +0800 + + free koi stack when free task_struct + +commit f0b258973fbba56d9e6baeed21e12e339a8f7de8 +Author: ljl +Date: Sat Feb 3 21:43:10 2024 +0800 + + IEE SI: MFit in KOI switch with new ASID design. + +commit 145387a16b9a2fa08c6a8060a9220b4ec6e14912 +Author: ljl +Date: Wed Jan 31 12:20:38 2024 +0800 + + IEE SI: Remove PSTATE D to protect iee rwx gate. + +commit 1ec930d63303de3cc1fd36ddbe48a1509cb4c91c +Author: clingfei <1599101385@qq.com> +Date: Fri Feb 2 20:52:37 2024 +0800 + + modify koi to adapt to UEFI + +commit eb53dbe1880794ad71612cc924b7638c3d4e1b57 +Author: clingfei <1599101385@qq.com> +Date: Thu Feb 1 19:46:38 2024 +0800 + + modify ASID design in KOI + +commit 4ba5fde05b09c2d2e3183973a8185c28ce358d0e +Author: clingfei <1599101385@qq.com> +Date: Thu Feb 1 15:25:00 2024 +0800 + + fix koi token init and switch stack bugs + +commit a1f16dfcb3683f98d403fa6fd324bfb5c01d8159 +Author: clingfei <1599101385@qq.com> +Date: Thu Feb 1 10:06:21 2024 +0800 + + put ko's pgtable in IEE region when PTP is enabled + +commit f95804874b5d648f2339cb476a4a81f9771d2af9 +Author: clingfei <1599101385@qq.com> +Date: Wed Jan 31 09:22:07 2024 +0800 + + fix dead lock when mapping from kernel pgtable to driver pgtable, which is caused by spin_lock used in irq context + +commit 9d9b2d60c3a3a6a5d21a8c3e002ba5dc121d84f4 +Author: zhangsy +Date: Thu Feb 1 16:21:33 2024 +0800 + + Fix rw gate bugs and modify ASID design. + +commit a0c84631af4d6f6b830a031b1602a220bf718d99 +Author: zhangsy +Date: Wed Jan 31 16:26:37 2024 +0800 + + Fix cred KABI. + +commit 955a01eeacd81d7d05aefbb907ba4ddc86f102b3 +Author: clingfei <1599101385@qq.com> +Date: Sat Jan 27 15:16:54 2024 +0800 + + Add koi_irq_current_ttbr1 to record the ttbr1 status in softirq context, fix compile errors when koi enabled only + +commit b5368c3eca57aa6a81f904a8cb84c70ea33d37f2 +Merge: c19756c5df85 a10d30ec7087 +Author: clingfei <1599101385@qq.com> +Date: Wed Jan 24 11:30:20 2024 +0800 + + Merge branch 'openeuler-commit' into koi-dev + +commit c19756c5df85de506621ade90f9c8113760e1e1d +Author: clingfei <1599101385@qq.com> +Date: Tue Jan 23 21:24:19 2024 +0800 + + modify koi interfaces to adapt to iee_rw_gate and iee_rwx_gate + +commit a10d30ec7087f97e2c43191b8c11132097f8677e +Author: ljl +Date: Tue Jan 23 11:01:17 2024 +0800 + + IEE SI: fixed KASLR bug in smp. + +commit 5863c857fc17aa85d568cdf736b18767ba3da04b +Author: zhangsy +Date: Mon Jan 22 16:07:09 2024 +0800 + + Delete set iee_pg_dir rw. + +commit 7168c8974763ed1af9646d612e063ead9654c39d +Author: zhangsy +Date: Mon Jan 22 15:03:28 2024 +0800 + + Fix DEP error. + +commit a225a6aa75b88fd12c53bb5e6a7561972201c1dc +Author: zhangsy +Date: Sat Jan 20 17:57:03 2024 +0800 + + Fix iee si error when opening CONFIG_IEE only with nokaslr, but remaining problem on kaslr. + +commit f5ee81865751b031f102bf70cbb55490bf343a0e +Author: zhangsy +Date: Sat Jan 20 15:16:06 2024 +0800 + + Merge IEE:oooo patch. + +commit 2bc2f6fd16e5499e27794886bc052b2b5c317f25 +Merge: 605411e7042e e9f44b355842 +Author: zhangsy +Date: Sat Jan 20 15:00:41 2024 +0800 + + Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit + +commit 605411e7042e55c4c2395234e65a6b028c6e6466 +Author: zhangsy +Date: Sat Jan 20 14:58:58 2024 +0800 + + Fix memblock size. + +commit e9f44b355842193322ed8657755fd83ed7a76131 +Author: clingfei <1599101385@qq.com> +Date: Fri Jan 19 17:09:02 2024 +0800 + + add iee_rw_gate handlers to support access to task_token in koi, use iee_rwx_gate_entry to switch kernel and ko pgtable, and modify koi interfaces to use iee_rw_gate to access task_token + +commit c25f4c4ad1e8fe00d1f8ac5421869922c72b843f +Author: clingfei <1599101385@qq.com> +Date: Fri Jan 19 09:31:14 2024 +0800 + + optimize implementation of switch pgtable and stack between kernel and ko, now tpiddro_el0 is not needed + +commit 4691190f9c6bf7ee74742ca428636eb7208b5010 +Author: clingfei <1599101385@qq.com> +Date: Wed Jan 17 22:02:17 2024 +0800 + + add koi support for softirq + +commit 4b0e20c9e749b5d091797107072d2f6414a346dc +Author: losky <502878997@qq.com> +Date: Wed Jan 17 09:16:30 2024 +0800 + + wrap iee_rw_gate, make interface looks more concise + +commit 54d6046e009429fab2a9ab88de26ef191363e4fc +Author: ljl +Date: Wed Jan 17 19:54:05 2024 +0800 + + IEE SI: testing on lmbench successfully. + +commit af8a4a94639cdeb1298834b845bbbce14385fbe3 +Author: ljl +Date: Wed Jan 17 15:33:21 2024 +0800 + + IEE SI: Remake again. Who cares what's new? :) + +commit 2eed3cff6ce7e1e4a57301c8c3ede3279fc73f0c +Author: zhangsy +Date: Wed Jan 17 18:58:05 2024 +0800 + + Fix smp sp_el0 check error. + +commit 0287a93c2cfbb1c21c36d3f4fc540d1a133bd3b3 +Merge: e622cff6564b d6cce9128bae +Author: zhangsy +Date: Wed Jan 17 13:59:09 2024 +0800 + + Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit + +commit e622cff6564b4001f6cf2b4d1e433e39e8480e41 +Author: zhangsy +Date: Wed Jan 17 13:56:12 2024 +0800 + + Fix task->children!=lm_va error. + +commit d6cce9128bae909033a59649d7d33f545e0dfcee +Author: clingfei <1599101385@qq.com> +Date: Wed Jan 17 12:48:20 2024 +0800 + + Fix ko stack alloc policy + +commit d007b35066a5d87338a25a9fb42a7c441b15afe7 +Author: zhangsy +Date: Wed Jan 17 10:12:32 2024 +0800 + + Fix SP_EL0 check error. + +commit a5b72dd0449b4342d40d12477fb5b0b241d424bd +Author: clingfei <1599101385@qq.com> +Date: Tue Jan 16 19:47:16 2024 +0800 + + Fix koi + +commit 41683e1d2df452ab9331f5d0eda805636472b85c +Author: clingfei <1599101385@qq.com> +Date: Tue Jan 16 19:12:11 2024 +0800 + + Fix conflict between KOI NG and set_pte/pmd/pud_pre_init + +commit 7c47cf8b51dd033f86c804cab58d17b6096ff501 +Merge: e977de979261 55d205381288 +Author: clingfei <1599101385@qq.com> +Date: Tue Jan 16 18:39:33 2024 +0800 + + Merge branch 'openeuler-commit' into koi-dev + +commit 55d205381288b02f433be1be1c231fe0571308fa +Author: zhangsy +Date: Tue Jan 16 16:52:06 2024 +0800 + + Fix conflict between KOI NG and IEE_RWX_GATE. + +commit e977de9792612ef4b677c45e7b56a6ede8249fdb +Author: clingfei <1599101385@qq.com> +Date: Tue Jan 16 16:42:53 2024 +0800 + + fix koi, now dm-zero can run successfully with KOI Enabled, IEE/PTP/CREDP and kaslr disabled + +commit c5738930667262dc3b2e98b90622a7b38b984c39 +Author: zhangsy +Date: Tue Jan 16 12:32:34 2024 +0800 + + Add __entry_task protection and SP_EL0 check. + +commit e03710aebb040b8169316a461cfbe58f4c578f0a +Author: clingfei <1599101385@qq.com> +Date: Tue Jan 16 08:58:17 2024 +0800 + + fix kabi breakage caused by koi + +commit 7b74a6853c277086c7bf13e0083128105d818d3f +Author: zhangsy +Date: Mon Jan 15 16:57:07 2024 +0800 + + Adapted to openeuler_cfg. + +commit 7449451399268f501a269b8de5069a82d5b04eb9 +Author: zhangsy +Date: Mon Jan 15 16:09:21 2024 +0800 + + Fix smp error and optimize rw_gate. + +commit e972fcb324951320b38861a8f9a761aabe69cd50 +Author: clingfei <1599101385@qq.com> +Date: Mon Jan 15 11:24:02 2024 +0800 + + refactor koi + +commit 15f40f87ed137a545c1f77b2fa1f5102681ac3ff +Author: zhangsy +Date: Sat Jan 13 20:46:01 2024 +0800 + + Modify design of task_token + +commit 54643bae59a581556b84838d5bd5e219e6337df7 +Author: zhangsy +Date: Fri Jan 12 19:08:09 2024 +0800 + + Adapted DEP to EFI. + +commit 8ccb559a9a2582e430fd4f62e211e804600690a2 +Author: zsy +Date: Fri Jan 12 14:01:58 2024 +0800 + + IEE adapted to EFI. + +commit ed6d4da47fb65f9ebc1a008ed840773469383ecc +Author: zzw +Date: Thu Jan 11 09:40:40 2024 +0800 + + asid set ttbr + +commit d9b3ad405e430996324f2ccfb5accee6ed5eff43 +Author: zzw +Date: Thu Jan 11 09:12:06 2024 +0800 + + asid set ttbr + +commit 120155a515243cd90f3098ebdd91e133d54962ff +Author: zzw +Date: Tue Jan 9 22:51:12 2024 +0800 + + asid + +commit a668e6b7b8ff591bd20292a7cbfabc063283af67 +Author: ljl +Date: Sat Jan 6 12:58:56 2024 +0800 + + IEE SI: fixed merge bugs. + +commit 73608d30048363d1e4b6aafaeae3bceb93835cf8 +Author: ljl +Date: Sat Jan 6 11:12:57 2024 +0800 + + IEE SI: added DBG ctrl protection and fixed some bug. + +commit c86cc6cd8be0bb92e2cfd934e6a62301c95c1925 +Author: zhangsy +Date: Fri Jan 5 15:05:23 2024 +0800 + + Revert "Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit" + + This reverts commit 7ba23365ca846837af0857e2eab196bc4c196d46, reversing + changes made to 551cbb14d965ae2b147c11eb953a0da2cfe02bf5. + +commit 7ba23365ca846837af0857e2eab196bc4c196d46 +Merge: 551cbb14d965 a3f69446f6ce +Author: zhangsy +Date: Fri Jan 5 15:00:15 2024 +0800 + + Merge branch 'openeuler-commit' of http://10.208.128.169/hhz/linux-kernel-pti into openeuler-commit + +commit 551cbb14d965ae2b147c11eb953a0da2cfe02bf5 +Author: zhangsy +Date: Fri Jan 5 14:04:22 2024 +0800 + + Add iee stack check. + +commit a3f69446f6ce9a166581ecf964c5ebbf4f464e03 +Author: clingfei <1599101385@qq.com> +Date: Thu Jan 4 09:45:27 2024 +0000 + + modify iee_rwx_gate_entry to support msr ttbr1 in koi + +commit d40dcb4321ea26adc9fd32c3edfe5cff13bfc0f0 +Author: zhangsy +Date: Tue Jan 2 12:23:07 2024 +0000 + + Fix some merge errors. + +commit 0f486f03c11afc34b95107ca418a6506b5fbac76 +Merge: 625c02b1f925 b535dc2e0aca +Author: zhangsy +Date: Tue Jan 2 11:59:40 2024 +0000 + + Merge IEE selfprotect. + +commit 625c02b1f925f963d2ca4a27d73c50649d1b2d27 +Author: zhangsy +Date: Tue Jan 2 11:53:02 2024 +0000 + + Add owner registing but not checked iee stack and more. + +commit bf8f9c888410a7cef0e4f4711bd4b437238cfb1b +Author: zhangsy +Date: Tue Jan 2 08:37:03 2024 +0000 + + Fix the random error and add IEE selfprotect. + +commit b535dc2e0aca2821f891a25c6e44a212a7e4a2e3 +Author: ljl +Date: Mon Jan 1 14:39:09 2024 +0000 + + IEE SI: expend iee si stack to 4 pg with 8 pg alignment. + +commit c9cd56e2751b17268b92d00b1b935339aa09bdfd +Merge: 530cda0ba12a 00c25ac42f2f +Author: zhangsy +Date: Mon Jan 1 13:21:41 2024 +0000 + + Merge but have random error. + +commit 530cda0ba12a018413f94f68b0890427bf8f46ef +Author: zhangsy +Date: Mon Jan 1 11:10:31 2024 +0000 + + Add check for remapping IEE region. + +commit 73386fb999dd8bca213a19a27889652335d42d17 +Author: clingfei <1599101385@qq.com> +Date: Mon Jan 1 09:57:07 2024 +0000 + + set all kernel pte to NG + +commit 6fef90196ad86bde91265e8e33830d3dfd6daac8 +Author: zzw +Date: Mon Jan 1 04:35:33 2024 +0000 + + add notes finish + +commit 7df2e0c3b2535e690d9ce023876841c09afba088 +Author: clingfei <1599101385@qq.com> +Date: Sun Dec 31 16:22:41 2023 +0000 + + add switch pgtable, buffer management, heap allocator wrapper interfaces + +commit 00c25ac42f2f1fe86177b1390d6cecd33319140d +Author: zyf +Date: Sun Dec 31 16:17:22 2023 +0000 + + Replaced switch with function pointers in iee.c and added documentation. + +commit 14dc2fa9680d2a6eeaa6083788f239f64e3696ec +Author: ljl +Date: Sun Dec 31 14:55:06 2023 +0000 + + replaced el1 sctlr, tcr, ttbr0 inst by iee si gate in kernel. + +commit d44dffc7097063c743f46fa8da95132421778263 +Author: zyf +Date: Sun Dec 31 12:13:33 2023 +0000 + + Standardize IEE InterfacIEEing Convention + +commit ce4d2be5ea9dbe52f9e5297f90a872404e8aa358 +Merge: 6e4c9d9917ef 977c5bb0e4f3 +Author: zzw +Date: Sun Dec 31 06:54:16 2023 +0000 + + Merge remote-tracking branch 'origin/openeuler-commit' into openeuler-commit + +commit 6e4c9d9917efcbf9d12ba121998ce9b4b925a370 +Author: zzw +Date: Sun Dec 31 06:49:37 2023 +0000 + + add notes 2nd + +commit 95bf3e5bcce82283406ac65154e97c65e4ea104f +Author: zhangsy +Date: Sun Dec 31 05:02:42 2023 +0000 + + Add TCR check. + +commit 977c5bb0e4f351d2f5886e12624b08c24fc878de +Author: ljl +Date: Sun Dec 31 03:25:25 2023 +0000 + + implemented iee si base functions. + +commit c914e698f371651bec2a1fbe2358c0bc9da0cc51 +Author: zzw +Date: Sun Dec 31 03:42:51 2023 +0000 + + add notes 2 + +commit b453ea4f5822d6809f175bf3a9986c3ed8c06487 +Author: zzw +Date: Sun Dec 31 03:33:31 2023 +0000 + + add notes 1 + +commit bb450696d12d38c9adc5c9a3d1f18dabcf20afbe +Author: clingfei <1599101385@qq.com> +Date: Sun Dec 31 02:30:25 2023 +0000 + + add ko pagetable construction interfaces + +commit 4137f4b1fb1c760a190cbedd2f6b36054b07586e +Author: zhangsy +Date: Sat Dec 30 09:23:45 2023 +0000 + + Modify config name. + +commit a125bf2d678187d714a245dde8d17f90bda905da +Author: zhangsy +Date: Sat Dec 30 09:11:53 2023 +0000 + + Add achitecture check. + +commit 11d2b6b3c5d9db1ce9e41983f7300dc033b93e65 +Author: clingfei <1599101385@qq.com> +Date: Sat Dec 30 04:58:09 2023 +0000 + + merge koi modification for Kconfig, kernel_ventry, vmlinux.lds, pgd_alloc and set_pte/set_pud/set_pmd, BUT set_pte will cause kernel crash, remains to be fixed + +commit 688816c920e476f68ff23e89bdad5f48cf6e37d1 +Author: zhangsy +Date: Fri Dec 29 13:49:11 2023 +0000 + + Add kernel DEP. + +commit 782697697fc139aadb5320d52a5d87ce4f355024 +Author: zhangsy +Date: Fri Dec 29 12:51:19 2023 +0000 + + Fix rcu problem and set track problem. Disable interrupt in iee_exception_exit. + +commit 8d07f2656e3526e8e35b5b4f3db8353de921f7d9 +Author: zhangsy +Date: Thu Dec 21 06:28:32 2023 +0000 + + Adapted to openeuler_defconfig. + +commit 70e7d3764252e417924df0c44635a9b8b8dee993 +Author: zhangsy +Date: Tue Dec 19 06:26:46 2023 +0000 + + Add cred protection. + +commit 70e9ee95aa14d6bbe35a0467f566bbfa99e62cce +Author: zhangsy +Date: Fri Dec 15 08:45:05 2023 +0000 + + Fix flush tlb bug. + +commit 9e9f14e3731fd9a0d2ec4fc5ae675ed817674ce6 +Author: zhangsy +Date: Sat Dec 9 11:34:37 2023 +0000 + + Fix synchronize bugs. + +commit 2f2628aa7cae5b007e17ee992d42b736677673b8 +Author: zhangsy +Date: Mon Dec 4 08:39:30 2023 +0000 + + Switch ASID instead of flush TLB. + +commit 3644911dfc5bc7710515e49d164394654eccc315 +Author: zhangsy +Date: Thu Nov 30 09:18:45 2023 +0000 + + Fix KASLR Error. + +commit 0673a6190b0cb0c8db67a7833e1ccdb283f146ed +Author: zhangsy +Date: Thu Sep 28 03:58:04 2023 +0000 + + Adapted to GCC. + +commit 0d2ab7303bdb644815329dffbb558334fd2cb3ab +Author: zhangsy +Date: Tue Sep 26 07:43:59 2023 +0000 + + Fix set pte by cmpxchg bug. + +commit 548152aee5caf3e460ae3402b7fcb3f6401d63c0 +Author: zhangsy +Date: Fri Sep 22 02:52:26 2023 +0000 + + Add Page Table Isolation. +--- + .gitignore | 12 + + Makefile | 4 +- + arch/arm64/Kconfig | 18 + + arch/arm64/include/asm/assembler.h | 75 + + arch/arm64/include/asm/daifflags.h | 16 + + arch/arm64/include/asm/efi.h | 4 + + arch/arm64/include/asm/fixmap.h | 3 + + arch/arm64/include/asm/hw_breakpoint.h | 12 + + arch/arm64/include/asm/iee-access.h | 41 + + arch/arm64/include/asm/iee-cred.h | 156 ++ + arch/arm64/include/asm/iee-def.h | 29 + + arch/arm64/include/asm/iee-si.h | 73 + + arch/arm64/include/asm/iee-slab.h | 16 + + arch/arm64/include/asm/iee-token.h | 33 + + arch/arm64/include/asm/iee.h | 8 + + arch/arm64/include/asm/irqflags.h | 12 + + arch/arm64/include/asm/kernel-pgtable.h | 12 + + arch/arm64/include/asm/koi.h | 346 +++++ + arch/arm64/include/asm/memory.h | 27 + + arch/arm64/include/asm/mmu_context.h | 16 + + arch/arm64/include/asm/pgalloc.h | 4 + + arch/arm64/include/asm/pgtable-hwdef.h | 13 + + arch/arm64/include/asm/pgtable.h | 179 ++- + arch/arm64/include/asm/pgtable_slab.h | 15 + + arch/arm64/include/asm/sysreg.h | 58 + + arch/arm64/include/asm/tlb.h | 32 + + arch/arm64/include/asm/tlbflush.h | 35 +- + arch/arm64/kernel/Makefile | 2 + + arch/arm64/kernel/armv8_deprecated.c | 16 + + arch/arm64/kernel/asm-offsets.c | 12 + + arch/arm64/kernel/cpu_errata.c | 12 + + arch/arm64/kernel/cpufeature.c | 101 ++ + arch/arm64/kernel/debug-monitors.c | 4 + + arch/arm64/kernel/entry.S | 732 +++++++++- + arch/arm64/kernel/head.S | 12 + + arch/arm64/kernel/hibernate.c | 35 + + arch/arm64/kernel/hw_breakpoint.c | 99 ++ + arch/arm64/kernel/iee/Makefile | 1 + + arch/arm64/kernel/iee/iee-func.c | 883 +++++++++++ + arch/arm64/kernel/iee/iee-gate.S | 326 +++++ + arch/arm64/kernel/iee/iee-pgtable.c | 356 +++++ + arch/arm64/kernel/iee/iee.c | 1427 ++++++++++++++++++ + arch/arm64/kernel/iee/pgtable_slab.c | 116 ++ + arch/arm64/kernel/irq.c | 4 +- + arch/arm64/kernel/koi/Makefile | 1 + + arch/arm64/kernel/koi/koi.c | 1653 +++++++++++++++++++++ + arch/arm64/kernel/mte.c | 4 + + arch/arm64/kernel/process.c | 17 +- + arch/arm64/kernel/proton-pack.c | 8 + + arch/arm64/kernel/setup.c | 35 + + arch/arm64/kernel/syscall.c | 8 + + arch/arm64/kernel/traps.c | 6 +- + arch/arm64/kernel/vmlinux.lds.S | 62 + + arch/arm64/mm/context.c | 126 +- + arch/arm64/mm/fault.c | 20 + + arch/arm64/mm/init.c | 37 +- + arch/arm64/mm/mmu.c | 1783 +++++++++++++++++++++-- + arch/arm64/mm/numa.c | 4 + + arch/arm64/mm/pgd.c | 30 + + arch/arm64/mm/proc.S | 9 + + arch/arm64/net/bpf_jit_comp.c | 138 +- + drivers/firmware/efi/arm-runtime.c | 4 + + drivers/firmware/efi/memmap.c | 20 + + drivers/tty/serial/earlycon.c | 4 + + drivers/usb/early/ehci-dbgp.c | 4 + + fs/cifs/cifs_spnego.c | 9 + + fs/cifs/cifsacl.c | 9 + + fs/coredump.c | 8 + + fs/exec.c | 23 + + fs/file_table.c | 1 + + fs/nfs/flexfilelayout/flexfilelayout.c | 9 + + fs/nfs/nfs4idmap.c | 9 + + fs/nfsd/auth.c | 38 + + fs/nfsd/nfs4callback.c | 8 + + fs/nfsd/nfs4recover.c | 9 + + fs/nfsd/nfsfh.c | 9 + + fs/open.c | 23 + + fs/overlayfs/dir.c | 9 + + fs/overlayfs/super.c | 12 + + include/asm-generic/early_ioremap.h | 3 + + include/asm-generic/fixmap.h | 18 + + include/asm-generic/pgalloc.h | 44 + + include/asm-generic/tlb.h | 3 + + include/asm-generic/vmlinux.lds.h | 24 +- + include/linux/bpf.h | 11 + + include/linux/bpf_verifier.h | 18 + + include/linux/cred.h | 43 + + include/linux/efi.h | 3 + + include/linux/filter.h | 11 + + include/linux/iee-flag.h | 74 + + include/linux/iee-func.h | 39 + + include/linux/mm.h | 24 + + include/linux/mm_types.h | 28 + + include/linux/module.h | 1 + + include/linux/sched.h | 23 + + include/linux/sfi_bpf.h | 89 ++ + include/linux/skbuff.h | 7 + + include/linux/stacktrace.h | 4 + + include/uapi/linux/bpf.h | 1 + + include/uapi/linux/bpf_common.h | 1 + + init/Kconfig | 12 + + init/main.c | 34 +- + kernel/bpf/Makefile | 1 + + kernel/bpf/arraymap.c | 208 ++- + kernel/bpf/hashtab.c | 298 ++++ + kernel/bpf/sfi_bpf.c | 1430 ++++++++++++++++++ + kernel/bpf/verifier.c | 352 ++++- + kernel/cred.c | 174 +++ + kernel/exit.c | 7 + + kernel/fork.c | 386 +++-- + kernel/groups.c | 7 + + kernel/kthread.c | 10 + + kernel/module.c | 71 +- + kernel/smpboot.c | 1 + + kernel/stacktrace.c | 38 + + kernel/sys.c | 107 ++ + kernel/umh.c | 10 + + kernel/user_namespace.c | 18 + + mm/Kconfig | 12 + + mm/damon/ops-common.c | 8 + + mm/debug_vm_pgtable.c | 24 + + mm/early_ioremap.c | 57 + + mm/huge_memory.c | 10 +- + mm/init-mm.c | 17 + + mm/memory.c | 54 +- + mm/mmap.c | 8 + + mm/mmu_gather.c | 118 ++ + mm/pgtable-generic.c | 23 + + mm/slab.h | 16 + + mm/slab_common.c | 18 + + mm/slub.c | 391 ++++- + mm/sparse-vmemmap.c | 10 + + mm/swap.c | 2 +- + mm/vmalloc.c | 4 + + net/core/filter.c | 20 +- + net/dns_resolver/dns_key.c | 9 + + net/ipv4/tcp_bbr.c | 2 +- + net/sched/cls_bpf.c | 136 ++ + samples/bpf/Makefile | 4 +- + security/commoncap.c | 153 ++ + security/keys/keyctl.c | 23 + + security/keys/process_keys.c | 45 + + security/security.c | 15 + + 143 files changed, 13970 insertions(+), 378 deletions(-) + create mode 100644 arch/arm64/include/asm/iee-access.h + create mode 100644 arch/arm64/include/asm/iee-cred.h + create mode 100644 arch/arm64/include/asm/iee-def.h + create mode 100644 arch/arm64/include/asm/iee-si.h + create mode 100644 arch/arm64/include/asm/iee-slab.h + create mode 100644 arch/arm64/include/asm/iee-token.h + create mode 100644 arch/arm64/include/asm/iee.h + create mode 100644 arch/arm64/include/asm/koi.h + create mode 100644 arch/arm64/include/asm/pgtable_slab.h + create mode 100644 arch/arm64/kernel/iee/Makefile + create mode 100644 arch/arm64/kernel/iee/iee-func.c + create mode 100644 arch/arm64/kernel/iee/iee-gate.S + create mode 100644 arch/arm64/kernel/iee/iee-pgtable.c + create mode 100644 arch/arm64/kernel/iee/iee.c + create mode 100644 arch/arm64/kernel/iee/pgtable_slab.c + create mode 100644 arch/arm64/kernel/koi/Makefile + create mode 100644 arch/arm64/kernel/koi/koi.c + create mode 100644 include/linux/iee-flag.h + create mode 100644 include/linux/iee-func.h + create mode 100644 include/linux/sfi_bpf.h + create mode 100644 kernel/bpf/sfi_bpf.c + +diff --git a/.gitignore b/.gitignore +index 67d2f3503128..2702bc437ab3 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -45,6 +45,7 @@ + *.tar + *.xz + *.zst ++*.log + Module.symvers + modules.builtin + modules.order +@@ -156,3 +157,14 @@ x509.genkey + + # Documentation toolchain + sphinx_*/ ++ ++#command ++command.txt ++ ++#build ++/build/* ++ ++dm-zero.c.koi ++ ++run.sh ++gdb.txt +diff --git a/Makefile b/Makefile +index e1e4ca4737a7..803c77376c46 100644 +--- a/Makefile ++++ b/Makefile +@@ -504,12 +504,12 @@ LINUXINCLUDE := \ + -I$(objtree)/include \ + $(USERINCLUDE) + +-KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE ++KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE -march=armv8.2-a + KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \ + -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \ + -Werror=implicit-function-declaration -Werror=implicit-int \ + -Werror=return-type -Wno-format-security \ +- -std=gnu89 ++ -std=gnu89 -march=armv8.2-a + KBUILD_CPPFLAGS := -D__KERNEL__ + KBUILD_AFLAGS_KERNEL := + KBUILD_CFLAGS_KERNEL := +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index cae54a9bf65d..79b06f0c11d5 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -1394,6 +1394,24 @@ config UNMAP_KERNEL_AT_EL0 + + If unsure, say Y. + ++# Config for iee ++config IEE ++ depends on ARM64 ++ depends on ARM64_PAN ++ depends on ARM64_VA_BITS_48 ++ depends on ARM64_4K_PAGES ++ def_bool y ++ ++# Config for support of interruption of iee ++config IEE_INTERRUPTABLE ++ depends on IEE ++ def_bool n ++ ++# Config for credentials isolation ++config CREDP ++ depends on IEE ++ def_bool y ++ + config MITIGATE_SPECTRE_BRANCH_HISTORY + bool "Mitigate Spectre style attacks against branch history" if EXPERT + default y +diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h +index 5e6bacda05d8..090ce447d576 100644 +--- a/arch/arm64/include/asm/assembler.h ++++ b/arch/arm64/include/asm/assembler.h +@@ -24,6 +24,41 @@ + #include + #include + ++#ifdef CONFIG_IEE ++ .macro iee_si_restore_daif, flags:req ++ msr daifclr, #0xf ++ tbnz \flags, #6, 114221f ++ tbnz \flags, #7, 114210f ++ tbnz \flags, #8, 114100f ++ msr daifset, #0b000 ++ b 114514f ++114221: ++ tbnz \flags, #7, 114211f ++ tbnz \flags, #8, 114101f ++ msr daifset, #0b001 ++ b 114514f ++114211: ++ tbnz \flags, #8, 114111f ++ msr daifset, #0b011 ++ b 114514f ++114210: ++ tbnz \flags, #8, 114110f ++ msr daifset, #0b010 ++ b 114514f ++114100: ++ msr daifset, #0b100 ++ b 114514f ++114101: ++ msr daifset, #0b101 ++ b 114514f ++114110: ++ msr daifset, #0b110 ++ b 114514f ++114111: ++ msr daifset, #0b111 ++114514: ++ .endm ++#endif + /* + * Provide a wxN alias for each wN register so what we can paste a xN + * reference after a 'w' to obtain the 32-bit version. +@@ -34,11 +69,19 @@ + + .macro save_and_disable_daif, flags + mrs \flags, daif ++// #ifdef CONFIG_IEE ++// msr daifset, #0x7 ++// #else + msr daifset, #0xf ++// #endif + .endm + + .macro disable_daif ++// #ifdef CONFIG_IEE ++// msr daifset, #0x7 ++// #else + msr daifset, #0xf ++// #endif + .endm + + .macro enable_daif +@@ -46,7 +89,11 @@ + .endm + + .macro restore_daif, flags:req ++// #ifdef CONFIG_IEE ++// iee_si_restore_daif \flags ++// #else + msr daif, \flags ++// #endif + .endm + + /* IRQ is the lowest priority flag, unconditionally unmask the rest. */ +@@ -63,7 +110,11 @@ + .endm + + .macro restore_irq, flags ++// #ifdef CONFIG_IEE ++// iee_si_restore_daif \flags ++// #else + msr daif, \flags ++// #endif + .endm + + .macro enable_dbg +@@ -71,20 +122,44 @@ + .endm + + .macro disable_step_tsk, flgs, tmp ++// #ifdef CONFIG_IEE ++// 1145: ++// tbz \flgs, #TIF_SINGLESTEP, 9990f ++// mrs \tmp, mdscr_el1 ++// bic \tmp, \tmp, #DBG_MDSCR_SS ++// orr \tmp, \tmp, #DBG_MDSCR_MDE ++// msr mdscr_el1, \tmp ++// isb // Synchronise with enable_dbg ++// mrs \tmp, mdscr_el1 ++// tbz \tmp, #15, 1145b ++// #else + tbz \flgs, #TIF_SINGLESTEP, 9990f + mrs \tmp, mdscr_el1 + bic \tmp, \tmp, #DBG_MDSCR_SS + msr mdscr_el1, \tmp + isb // Synchronise with enable_dbg ++// #endif + 9990: + .endm + + /* call with daif masked */ + .macro enable_step_tsk, flgs, tmp ++// #ifdef CONFIG_IEE ++// 1146: ++// tbz \flgs, #TIF_SINGLESTEP, 9990f ++// mrs \tmp, mdscr_el1 ++// orr \tmp, \tmp, #DBG_MDSCR_SS ++// orr \tmp, \tmp, #DBG_MDSCR_MDE ++// msr mdscr_el1, \tmp ++// isb // Synchronise with enable_dbg ++// mrs \tmp, mdscr_el1 ++// tbz \tmp, #15, 1146b ++// #else + tbz \flgs, #TIF_SINGLESTEP, 9990f + mrs \tmp, mdscr_el1 + orr \tmp, \tmp, #DBG_MDSCR_SS + msr mdscr_el1, \tmp ++// #endif + 9990: + .endm + +diff --git a/arch/arm64/include/asm/daifflags.h b/arch/arm64/include/asm/daifflags.h +index cfdde3a56805..9bc43023c072 100644 +--- a/arch/arm64/include/asm/daifflags.h ++++ b/arch/arm64/include/asm/daifflags.h +@@ -25,11 +25,19 @@ static inline void local_daif_mask(void) + (read_sysreg_s(SYS_ICC_PMR_EL1) == (GIC_PRIO_IRQOFF | + GIC_PRIO_PSR_I_SET))); + ++// #ifdef CONFIG_IEE ++// asm volatile( ++// "msr daifset, #0x7 // local_daif_mask\n" ++// : ++// : ++// : "memory"); ++// #else + asm volatile( + "msr daifset, #0xf // local_daif_mask\n" + : + : + : "memory"); ++// #endif + + /* Don't really care for a dsb here, we don't intend to enable IRQs */ + if (system_uses_irq_prio_masking()) +@@ -114,7 +122,11 @@ static inline void local_daif_restore(unsigned long flags) + gic_write_pmr(pmr); + } + ++// #ifdef CONFIG_IEE ++// iee_si_write_daif(flags); ++// #else + write_sysreg(flags, daif); ++// #endif + + if (irq_disabled) + trace_hardirqs_off(); +@@ -139,6 +151,10 @@ static inline void local_daif_inherit(struct pt_regs *regs) + * system_has_prio_mask_debugging() won't restore the I bit if it can + * use the pmr instead. + */ ++// #ifdef CONFIG_IEE ++// iee_si_write_daif(flags); ++// #else + write_sysreg(flags, daif); ++// #endif + } + #endif +diff --git a/arch/arm64/include/asm/efi.h b/arch/arm64/include/asm/efi.h +index 8fa8a3c9af3e..518ce0d6aa49 100644 +--- a/arch/arm64/include/asm/efi.h ++++ b/arch/arm64/include/asm/efi.h +@@ -52,7 +52,11 @@ efi_status_t __efi_rt_asm_wrapper(void *, const char *, ...); + #define arch_efi_save_flags(state_flags) \ + ((void)((state_flags) = read_sysreg(daif))) + ++// #ifdef CONFIG_IEE ++// #define arch_efi_restore_flags(state_flags) iee_si_write_daif(state_flags) ++// #else + #define arch_efi_restore_flags(state_flags) write_sysreg(state_flags, daif) ++// #endif + + + /* arch specific definitions used by the stub code */ +diff --git a/arch/arm64/include/asm/fixmap.h b/arch/arm64/include/asm/fixmap.h +index daff882883f9..7511e89ed954 100644 +--- a/arch/arm64/include/asm/fixmap.h ++++ b/arch/arm64/include/asm/fixmap.h +@@ -106,6 +106,9 @@ void __init early_fixmap_init(void); + #define __late_clear_fixmap(idx) __set_fixmap((idx), 0, FIXMAP_PAGE_CLEAR) + + extern void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot); ++#ifdef CONFIG_PTP ++extern void __iee_set_fixmap_pre_init(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot); ++#endif + + #include + +diff --git a/arch/arm64/include/asm/hw_breakpoint.h b/arch/arm64/include/asm/hw_breakpoint.h +index bc7aaed4b34e..16e0e8cfea1d 100644 +--- a/arch/arm64/include/asm/hw_breakpoint.h ++++ b/arch/arm64/include/asm/hw_breakpoint.h +@@ -104,6 +104,18 @@ static inline void decode_ctrl_reg(u32 reg, + write_sysreg(VAL, dbg##REG##N##_el1);\ + } while (0) + ++#ifdef CONFIG_IEE ++#define IEE_SI_AARCH64_DBG_READ(N, REG, VAL) do{\ ++ VAL = this_cpu_read(iee_si_user_##REG##N);\ ++} while (0) ++ ++#define IEE_SI_AARCH64_DBG_WRITE(N, REG, VAL) do{\ ++ u64 __val = (u64)(VAL); \ ++ this_cpu_write(iee_si_user_##REG##N, __val);\ ++ iee_rwx_gate_entry(IEE_WRITE_AFSR0);\ ++} while (0) ++#endif ++ + struct task_struct; + struct notifier_block; + struct perf_event_attr; +diff --git a/arch/arm64/include/asm/iee-access.h b/arch/arm64/include/asm/iee-access.h +new file mode 100644 +index 000000000000..cd3344090d0b +--- /dev/null ++++ b/arch/arm64/include/asm/iee-access.h +@@ -0,0 +1,41 @@ ++#ifndef _LINUX_IEE_ACCESS_H ++#define _LINUX_IEE_ACCESS_H ++ ++#include ++#include ++ ++extern unsigned long long iee_rw_gate(int flag, ...); ++ ++#ifdef CONFIG_IEE ++void iee_write_in_byte(void *ptr, u64 data, int length) ++{ ++ iee_rw_gate(IEE_WRITE_IN_BYTE, ptr, data, length); ++} ++ ++void iee_memset(void *ptr, int data, size_t n) ++{ ++ iee_rw_gate(IEE_MEMSET, ptr, data, n); ++} ++ ++void iee_set_track(struct track *ptr, struct track *data) ++{ ++ iee_rw_gate(IEE_OP_SET_TRACK, ptr, data); ++} ++ ++void iee_set_freeptr(void **pptr, void *ptr) ++{ ++ iee_rw_gate(IEE_OP_SET_FREEPTR, pptr, ptr); ++} ++ ++void iee_copy_pte_range(pte_t *new_dst, pte_t *old_dst, pte_t *src_pte, struct vm_area_struct *src_vma, unsigned long dst_vm_flags, pte_t *end_pte) ++{ ++ iee_rw_gate(IEE_COPY_PTE_RANGE, new_dst, old_dst, src_pte, src_vma, dst_vm_flags, end_pte); ++} ++ ++void iee_split_huge_pmd(pmd_t *pmdp, pte_t *pgtable) ++{ ++ iee_rw_gate(IEE_SPLIT_HUGE_PMD, pmdp, pgtable); ++} ++#endif ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/iee-cred.h b/arch/arm64/include/asm/iee-cred.h +new file mode 100644 +index 000000000000..a9c0dafbfe9c +--- /dev/null ++++ b/arch/arm64/include/asm/iee-cred.h +@@ -0,0 +1,156 @@ ++#ifndef _LINUX_IEE_CRED_H ++#define _LINUX_IEE_CRED_H ++ ++#include ++#include ++ ++extern unsigned long long iee_rw_gate(int flag, ...); ++ ++#ifdef CONFIG_CREDP ++ ++extern void _iee_do_commit_cred(unsigned long iee_offset, struct cred *new); ++static void __maybe_unused iee_commit_cred(struct cred *cred) ++{ ++ iee_rw_gate(IEE_OP_COMMIT_CRED, cred); ++} ++static void __maybe_unused iee_copy_cred_kernel(const struct cred *old, struct cred *new) ++{ ++ iee_rw_gate(IEE_OP_COPY_CRED_KERNEL,old,new); ++} ++ ++static void __maybe_unused iee_copy_cred(const struct cred *old, struct cred *new) ++{ ++ iee_rw_gate(IEE_OP_COPY_CRED,old,new); ++} ++ ++static void __maybe_unused iee_set_cred_uid(struct cred *cred, kuid_t uid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_UID,cred,uid); ++} ++ ++static void __maybe_unused iee_set_cred_gid(struct cred *cred, kgid_t gid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_GID,cred,gid); ++} ++ ++static void __maybe_unused iee_set_cred_suid(struct cred *cred, kuid_t suid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_SUID,cred,suid); ++} ++ ++static void __maybe_unused iee_set_cred_sgid(struct cred *cred, kgid_t sgid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_SGID,cred,sgid); ++} ++ ++static void __maybe_unused iee_set_cred_euid(struct cred *cred, kuid_t euid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_EUID,cred,euid); ++} ++ ++static void __maybe_unused iee_set_cred_egid(struct cred *cred, kgid_t egid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_EGID,cred,egid); ++} ++ ++static void __maybe_unused iee_set_cred_fsuid(struct cred *cred, kuid_t fsuid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_FSUID,cred,fsuid); ++} ++ ++static void __maybe_unused iee_set_cred_fsgid(struct cred *cred, kgid_t fsgid) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_FSGID,cred,fsgid); ++} ++ ++static void __maybe_unused iee_set_cred_user(struct cred *cred, struct user_struct *user) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_USER,cred,user); ++} ++ ++static void __maybe_unused iee_set_cred_user_ns(struct cred *cred, struct user_namespace *user_ns) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_USER_NS,cred,user_ns); ++} ++ ++static void __maybe_unused iee_set_cred_group_info(struct cred *cred, struct group_info *group_info) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_GROUP_INFO,cred,group_info); ++} ++ ++static void __maybe_unused iee_set_cred_securebits(struct cred *cred, unsigned securebits) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_SECUREBITS,cred,securebits); ++} ++ ++static void __maybe_unused iee_set_cred_cap_inheritable(struct cred *cred, kernel_cap_t cap_inheritable) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_CAP_INHER,cred,cap_inheritable); ++} ++ ++static void __maybe_unused iee_set_cred_cap_permitted(struct cred *cred, kernel_cap_t cap_permitted) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_CAP_PERM,cred,cap_permitted); ++} ++ ++static void __maybe_unused iee_set_cred_cap_effective(struct cred *cred, kernel_cap_t cap_effective) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_CAP_EFFECT,cred,cap_effective); ++} ++ ++static void __maybe_unused iee_set_cred_cap_bset(struct cred *cred, kernel_cap_t cap_bset) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_CAP_BSET,cred,cap_bset); ++} ++ ++static void __maybe_unused iee_set_cred_cap_ambient(struct cred *cred, kernel_cap_t cap_ambient) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_CAP_AMBIENT,cred,cap_ambient); ++} ++ ++#ifdef CONFIG_KEYS ++static void __maybe_unused iee_set_cred_jit_keyring(struct cred *cred, unsigned char jit_keyring) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_JIT_KEYRING,cred,jit_keyring); ++} ++ ++static void __maybe_unused iee_set_cred_session_keyring(struct cred *cred, struct key *session_keyring) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_SESS_KEYRING,cred,session_keyring); ++} ++ ++static void __maybe_unused iee_set_cred_process_keyring(struct cred *cred, struct key *process_keyring) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_PROC_KEYRING,cred,process_keyring); ++} ++ ++static void __maybe_unused iee_set_cred_thread_keyring(struct cred *cred, struct key *thread_keyring) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_THREAD_KEYRING,cred,thread_keyring); ++} ++ ++static void __maybe_unused iee_set_cred_request_key_auth(struct cred *cred, struct key *request_key_auth) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_REQ_KEYRING,cred,request_key_auth); ++} ++#endif ++ ++static void __maybe_unused iee_set_cred_atomic_set_usage(struct cred *cred, int i) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_ATSET_USAGE,cred,i); ++} ++ ++#ifdef CONFIG_SECURITY ++static void __maybe_unused iee_set_cred_security(struct cred *cred, void *security) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_SECURITY,cred,security); ++} ++#endif ++ ++static void __maybe_unused iee_set_cred_rcu(struct cred *cred, struct rcu_head *rcu) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_RCU,cred,rcu); ++} ++#endif ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/iee-def.h b/arch/arm64/include/asm/iee-def.h +new file mode 100644 +index 000000000000..bcd0502b28c4 +--- /dev/null ++++ b/arch/arm64/include/asm/iee-def.h +@@ -0,0 +1,29 @@ ++#ifndef _LINUX_IEE_DEF_H ++#define _LINUX_IEE_DEF_H ++// Function Identifiers with Parameters Description ++ ++/* Add new IEE ops here */ ++ ++#define AT_INC 1 ++#define AT_INC_NOT_ZERO 2 ++#define AT_DEC_AND_TEST 3 ++/* Atomic ops for atomic_t */ ++ ++#ifdef CONFIG_KOI ++#define IEE_SWITCH_TO_KERNEL 7 ++#define IEE_SWITCH_TO_KOI 8 ++#endif ++ ++#if defined(CONFIG_KOI) && defined(CONFIG_IEE) ++#define IEE_READ_KOI_STACK 51 ++#define IEE_WRITE_KOI_STACK 52 ++#define IEE_READ_TOKEN_TTBR1 53 ++#define IEE_WRITE_TOKEN_TTBR1 54 ++#define IEE_READ_KOI_KERNEL_STACK 55 ++#define IEE_WRITE_KOI_KERNEL_STACK 56 ++#define IEE_READ_KOI_STACK_BASE 57 ++#define IEE_WRITE_KOI_STACK_BASE 58 ++#define IEE_SET_KOI_PGD 59 ++#endif ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/iee-si.h b/arch/arm64/include/asm/iee-si.h +new file mode 100644 +index 000000000000..6a48fe0aef9d +--- /dev/null ++++ b/arch/arm64/include/asm/iee-si.h +@@ -0,0 +1,73 @@ ++#ifndef _LINUX_IEE_SI_H ++#define _LINUX_IEE_SI_H ++ ++#include ++#define __iee_si_code __section(".iee.si_text") ++#define __iee_si_base __section(".iee.si_base") ++#define __iee_si_data __section(".iee.si_data") ++ ++/* Used for copying globals that iee rwx gate needs. */ ++extern unsigned long iee_base_swapper_pg_dir; ++extern unsigned long iee_base_idmap_pg_dir; ++extern unsigned long iee_base_reserved_pg_dir; ++extern unsigned long iee_base__bp_harden_el1_vectors; ++extern bool iee_init_done; ++extern unsigned long iee_si_tcr; ++extern unsigned long iee_si_tcr_outside; ++extern unsigned long iee_si_tcr_inside; ++ ++DECLARE_PER_CPU(unsigned long, iee_si_user_bvr0); ++DECLARE_PER_CPU(unsigned long, iee_si_user_bcr0); ++ ++/* The following are __init functions used for iee si initialization. */ ++extern void mark_idmap_vmallc_map_ROU(void); ++extern void iee_si_prepare_data(void); ++ ++extern int iee_si_test_page_attr(unsigned long addr); ++// extern void iee_si_test_page_attr_all(unsigned long addr); ++extern unsigned long __iee_si_start[]; ++// Handler function for sensitive inst ++u64 iee_si_handler(int flag, ...); ++/* ++ * TODO: scan a page to check whether it contains sensitive instructions ++ * return 1 when finding sensitive inst, 0 on safe page. ++ */ ++extern int iee_si_scan_page(unsigned long addr); ++ ++ ++#define DBG_MDSCR_SS (1 << 0) ++#define DBG_MDSCR_MDE (1 << 15) ++ ++#define IEE_SI_TEST 0 ++#define IEE_WRITE_SCTLR 1 ++#define IEE_WRITE_TTBR0 2 ++#define IEE_WRITE_VBAR 3 ++#define IEE_WRITE_TCR 4 ++#define IEE_WRITE_MDSCR 5 ++#define IEE_CONTEXT_SWITCH 6 ++#define IEE_WRITE_AFSR0 10 ++#define IEE_ENABLE_CNP 11 ++#define IEE_NONBOOT_TTBR1 12 ++/* Provide ttbr1 switch gate for KOI */ ++#ifdef CONFIG_KOI ++#define IEE_SWITCH_TO_KERNEL 7 ++#define IEE_SWITCH_TO_KOI 8 ++#endif ++/* MASK modify-permitted bits on IEE protected sys registers */ ++#define IEE_SCTLR_MASK (SCTLR_EL1_CP15BEN | SCTLR_EL1_SED | SCTLR_EL1_UCT | SCTLR_EL1_UCI |\ ++ SCTLR_EL1_BT0 | SCTLR_EL1_BT1 | SCTLR_EL1_TCF0_MASK | SCTLR_ELx_DSSBS) ++#define IEE_TTBR0_MASK ~0 ++#define IEE_TTBR1_MASK ~0 ++#define IEE_TCR_MASK (TCR_HD | TCR_T0SZ_MASK | TCR_E0PD1) ++#define IEE_MDSCR_MASK (DBG_MDSCR_SS | DBG_MDSCR_MDE) ++ ++#define IEE_DBGBCR_BT 0b0000 << 20 ++#define IEE_DBGBCR_SSC 0b00 << 14 ++#define IEE_DBGBCR_HMC 0b1 << 13 ++#define IEE_DBGBCR_BAS 0b1111 << 5 ++#define IEE_DBGBCR_PMC 0b11 << 1 ++#define IEE_DBGBCR_E 0b1 ++#define IEE_DBGBCR IEE_DBGBCR_BT | IEE_DBGBCR_SSC | IEE_DBGBCR_HMC | IEE_DBGBCR_BAS \ ++ | IEE_DBGBCR_PMC | IEE_DBGBCR_E ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/iee-slab.h b/arch/arm64/include/asm/iee-slab.h +new file mode 100644 +index 000000000000..7a0bba204483 +--- /dev/null ++++ b/arch/arm64/include/asm/iee-slab.h +@@ -0,0 +1,16 @@ ++#ifndef _LINUX_IEE_SLAB_H ++#define _LINUX_IEE_SLAB_H ++ ++#define TRACK_ADDRS_COUNT 16 ++ ++struct track { ++ unsigned long addr; /* Called from address */ ++#ifdef CONFIG_STACKTRACE ++ unsigned long addrs[TRACK_ADDRS_COUNT]; /* Called from address */ ++#endif ++ int cpu; /* Was running on cpu */ ++ int pid; /* Pid context */ ++ unsigned long when; /* When did the operation occur */ ++}; ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/iee-token.h b/arch/arm64/include/asm/iee-token.h +new file mode 100644 +index 000000000000..14b21cb63bd9 +--- /dev/null ++++ b/arch/arm64/include/asm/iee-token.h +@@ -0,0 +1,33 @@ ++#ifndef _LINUX_IEE_TOKEN_H ++#define _LINUX_IEE_TOKEN_H ++ ++#include ++ ++extern unsigned long long iee_rw_gate(int flag, ...); ++struct task_token; ++struct task_struct; ++struct mm_struct; ++ ++#ifdef CONFIG_IEE ++void iee_set_token_pgd(struct task_struct *tsk, pgd_t *pgd) ++{ ++ iee_rw_gate(IEE_SET_TOKEN_PGD, tsk, pgd); ++} ++ ++void iee_init_token(struct task_struct *tsk, void *iee_stack, void *tmp_page) ++{ ++ iee_rw_gate(IEE_INIT_TOKEN, tsk, iee_stack, tmp_page); ++} ++ ++void iee_invalidate_token(struct task_struct *tsk) ++{ ++ iee_rw_gate(IEE_INVALIDATE_TOKEN, tsk); ++} ++ ++void iee_validate_token(struct task_struct *tsk) ++{ ++ iee_rw_gate(IEE_VALIDATE_TOKEN, tsk); ++} ++#endif ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/iee.h b/arch/arm64/include/asm/iee.h +new file mode 100644 +index 000000000000..2afdfe6cf89b +--- /dev/null ++++ b/arch/arm64/include/asm/iee.h +@@ -0,0 +1,8 @@ ++#ifndef _LINUX_IEE_H ++#define _LINUX_IEE_H ++#define __iee_code __section(".iee.text") ++#define __iee_header __section(".iee.text.header") ++ ++#include ++ ++#endif +diff --git a/arch/arm64/include/asm/irqflags.h b/arch/arm64/include/asm/irqflags.h +index ff328e5bbb75..022acbea44cc 100644 +--- a/arch/arm64/include/asm/irqflags.h ++++ b/arch/arm64/include/asm/irqflags.h +@@ -121,6 +121,17 @@ static inline unsigned long arch_local_irq_save(void) + */ + static inline void arch_local_irq_restore(unsigned long flags) + { ++// #ifdef CONFIG_IEE ++// asm volatile(ALTERNATIVE( ++// IEE_SI_WRITE_DAIF_SEL, ++// __msr_s(SYS_ICC_PMR_EL1, "%0")"\n\tb 114f\n\tnop\n\tnop\n\tnop\n\tnop" ++// "\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop" ++// "\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\tnop\n\t114:\n\t", ++// ARM64_HAS_IRQ_PRIO_MASKING) ++// : ++// : "r" (flags) ++// : "memory"); ++// #else + asm volatile(ALTERNATIVE( + "msr daif, %0", + __msr_s(SYS_ICC_PMR_EL1, "%0"), +@@ -129,6 +140,7 @@ static inline void arch_local_irq_restore(unsigned long flags) + : "r" (flags) + : "memory"); + ++// #endif + pmr_sync(); + } + +diff --git a/arch/arm64/include/asm/kernel-pgtable.h b/arch/arm64/include/asm/kernel-pgtable.h +index 4b06cf9a8c8a..67b9b6c04093 100644 +--- a/arch/arm64/include/asm/kernel-pgtable.h ++++ b/arch/arm64/include/asm/kernel-pgtable.h +@@ -115,6 +115,18 @@ + #define SWAPPER_MM_MMUFLAGS (PTE_ATTRINDX(MT_NORMAL) | SWAPPER_PTE_FLAGS) + #endif + ++#ifdef CONFIG_IEE ++ ++#define SWAPPER_PTE_FLAGS_IDMAP (PTE_TYPE_PAGE | PTE_AF | PTE_SHARED | PTE_RDONLY) ++#define SWAPPER_PMD_FLAGS_IDMAP (PMD_TYPE_SECT | PMD_SECT_AF | PMD_SECT_S | PMD_SECT_RDONLY) ++ ++#if ARM64_SWAPPER_USES_SECTION_MAPS ++#define SWAPPER_MM_MMUFLAGS_IDMAP (PMD_ATTRINDX(MT_NORMAL) | SWAPPER_PMD_FLAGS_IDMAP) ++#else ++#define SWAPPER_MM_MMUFLAGS_IDMAP (PTE_ATTRINDX(MT_NORMAL) | SWAPPER_PTE_FLAGS_IDMAP) ++#endif ++ ++#endif + /* + * To make optimal use of block mappings when laying out the linear + * mapping, round down the base of physical memory to a size that can +diff --git a/arch/arm64/include/asm/koi.h b/arch/arm64/include/asm/koi.h +new file mode 100644 +index 000000000000..2955ac6b0208 +--- /dev/null ++++ b/arch/arm64/include/asm/koi.h +@@ -0,0 +1,346 @@ ++#include "linux/mm.h" ++#include "asm/current.h" ++#include "asm/pgtable-hwdef.h" ++#include "asm/pgtable-types.h" ++#include "asm/pgtable.h" ++#include "linux/mm_types.h" ++#include "linux/pgtable.h" ++#include "linux/printk.h" ++#include "linux/slab.h" ++#include "linux/string.h" ++#include ++#include "linux/hashtable.h" ++#include "linux/module.h" ++#include "linux/vmalloc.h" ++#include "stacktrace.h" ++#include "asm/mmu.h" ++#ifdef CONFIG_IEE ++#include "asm/iee-si.h" ++#include "asm/iee-def.h" ++#endif ++ ++#ifdef CONFIG_KOI ++#ifdef CONFIG_PTP ++extern void set_iee_page(unsigned long addr); ++#endif ++ ++#define HASH_TABLE_BIT 10 ++#define HASH_TABLE_LEN (1 << HASH_TABLE_BIT) ++#define HASH_KEY_MASK ((1 << HASH_TABLE_BIT) - 1) ++ ++#define MAX_VAR_NAME 64 ++#define DRIVER_ISOLATION_VAR_ARRAY_SIZE 32 ++#define DRIVER_ISOLATION_MAX_VAL 256 ++ ++extern struct hlist_head koi_mem_htbl[1024]; ++extern spinlock_t koi_mem_htbl_spin_lock; ++extern unsigned long koi_swapper_ttbr1; ++extern s64 koi_offset; ++ ++#ifdef CONFIG_IEE ++extern unsigned long long iee_rw_gate(int flag, ...); ++#endif ++ ++DECLARE_PER_CPU(unsigned long[PAGE_SIZE / sizeof(unsigned long)], ++ koi_irq_current_ttbr1); ++ ++/** ++* struct koi_mem_hash_node - ++*@mod:pointer to driver module ++*@mem_list_head:free memory list head ++*@ko_mm: mm_struct in each driver ++*@pgdp:entry to Page Global Directory :pgd ++*@node:hash linked list node ++*@addr_htbl[1 << (HASH_TABLE_BIT)]: ++*@rcu: ++*/ ++struct koi_mem_hash_node { ++ struct module *mod; ++ struct list_head mem_list_head; ++ struct mm_struct *ko_mm; ++ pgd_t *pgdp; ++ unsigned long ko_ttbr1; ++ struct hlist_node node; ++ struct hlist_head addr_htbl[1 << (HASH_TABLE_BIT)]; ++ struct rcu_head rcu; ++ // used to protect free mem list ++ spinlock_t spin_lock; ++ // used to protect addr hashtable ++ spinlock_t addr_htbl_spin_lock; ++ bool is_valid; ++ spinlock_t mod_lock; ++}; ++//describe the global shared var ++struct shared_variable_descriptor { ++ unsigned int id; ++ unsigned int type; ++ char name[MAX_VAR_NAME]; ++ unsigned long offset; ++ unsigned int size; ++ unsigned int self_ptr_ids[DRIVER_ISOLATION_VAR_ARRAY_SIZE]; ++}; ++ ++int koi_do_switch_to_kernel_pgtbl(void); ++ ++int koi_copy_pagetable(struct mm_struct *ko_mm, pgd_t *koi_pg_dir, ++ unsigned long addr, unsigned long end); ++ ++void koi_create_pagetable(struct module *mod); ++void koi_destroy_pagetable(struct module *mod); ++ ++void koi_map_kostack(struct module *mod); ++unsigned long koi_mem_alloc(struct module *mod, unsigned long orig_addr, ++ unsigned long size); ++void koi_mem_free(struct module *mod, unsigned long addr, unsigned long size, ++ bool is_const, int count, ...); ++void *koi_mem_lookup(struct module *mod, unsigned long addr); ++void koi_mem_free_callback(struct module *mod, unsigned long addr, ++ unsigned long size, void (*func)(void *)); ++void koi_map_mem(struct module *mod, unsigned long addr, unsigned long size); ++void koi_unmap_mem(struct module *mod, unsigned long addr, unsigned long size); ++void koi_mem_free_to_user(struct module *mod, unsigned long addr, ++ unsigned long size); ++ ++unsigned long koi_ttbr_ctor(struct module *mod); ++extern void koi_do_switch_to_kernel_stack(void); ++extern void koi_do_switch_to_ko_stack(void); ++ ++// unsigned long koi_get_token_addr(struct task_struct *tsk); ++ ++#define switch_pgtable(ttbr1) \ ++ do { \ ++ write_sysreg((ttbr1), ttbr1_el1); \ ++ isb(); \ ++ asm volatile(ALTERNATIVE("nop; nop; nop", \ ++ "ic iallu; dsb nsh; isb", \ ++ ARM64_WORKAROUND_CAVIUM_27456)); \ ++ } while (0); ++ ++#ifndef CONFIG_IEE ++#define koi_switch_to_ko() \ ++ do { \ ++ unsigned long flags, ko_ttbr1, cur_sp; \ ++ unsigned long *ptr; \ ++ struct task_token *token; \ ++ asm volatile("mrs %0, daif\n" \ ++ "msr daifset, #2\n" \ ++ "isb\n" \ ++ "mov %1, sp\n" \ ++ : "=r"(flags), "=r"(cur_sp) \ ++ :); \ ++ if (!on_irq_stack(cur_sp, NULL)) { \ ++ koi_do_switch_to_ko_stack(); \ ++ ko_ttbr1 = koi_ttbr_ctor(THIS_MODULE); \ ++ token = (struct task_token *)((unsigned long)current + \ ++ (unsigned long)koi_offset); \ ++ token->current_ttbr1 = ko_ttbr1 & (~TTBR_ASID_MASK); \ ++ } else { \ ++ ko_ttbr1 = koi_ttbr_ctor(THIS_MODULE); \ ++ ptr = SHIFT_PERCPU_PTR(koi_irq_current_ttbr1, \ ++ __kern_my_cpu_offset()); \ ++ *ptr = ko_ttbr1 & ~(TTBR_ASID_MASK); \ ++ } \ ++ switch_pgtable(ko_ttbr1); \ ++ asm volatile("msr daif, %0\n" \ ++ "isb\n" \ ++ : \ ++ : "r"(flags)); \ ++ } while (0); ++ ++#define koi_switch_to_kernel() \ ++ do { \ ++ unsigned long cur_sp, flags, asid; \ ++ unsigned long *ptr; \ ++ struct task_token *token; \ ++ asm volatile("mrs %0, daif\n" \ ++ "msr daifset, #2\n" \ ++ "isb\n" \ ++ "mov %1, sp\n" \ ++ : "=r"(flags), "=r"(cur_sp) \ ++ :); \ ++ asid = read_sysreg(ttbr0_el1) & (~USER_ASID_FLAG); \ ++ asid &= TTBR_ASID_MASK; \ ++ switch_pgtable((koi_swapper_ttbr1 | asid)); \ ++ if (!on_irq_stack(cur_sp, NULL)) { \ ++ token = (struct task_token *)((unsigned long)current + \ ++ (unsigned long)koi_offset); \ ++ token->current_ttbr1 = koi_swapper_ttbr1; \ ++ koi_do_switch_to_kernel_stack(); \ ++ } else { \ ++ ptr = SHIFT_PERCPU_PTR(koi_irq_current_ttbr1, \ ++ __kern_my_cpu_offset()); \ ++ *ptr = koi_swapper_ttbr1; \ ++ } \ ++ asm volatile("msr daif, %0\n" \ ++ "isb\n" \ ++ : \ ++ : "r"(flags)); \ ++ } while (0); ++#else ++#define koi_switch_to_ko() \ ++ do { \ ++ unsigned long cur_sp, flags, ko_ttbr1; \ ++ unsigned long *ptr; \ ++ asm volatile("mrs %0, daif\n" \ ++ "msr daifset, #2\n" \ ++ "isb\n" \ ++ "mov %1, sp\n" \ ++ : "=r"(flags), "=r"(cur_sp) \ ++ :); \ ++ if (!on_irq_stack(cur_sp, NULL)) { \ ++ koi_do_switch_to_ko_stack(); \ ++ ko_ttbr1 = koi_ttbr_ctor(THIS_MODULE); \ ++ iee_rw_gate(IEE_WRITE_TOKEN_TTBR1, current, \ ++ ko_ttbr1 &(~TTBR_ASID_MASK)); \ ++ } else { \ ++ ko_ttbr1 = koi_ttbr_ctor(THIS_MODULE); \ ++ ptr = SHIFT_PERCPU_PTR(koi_irq_current_ttbr1, \ ++ __kern_my_cpu_offset()); \ ++ *ptr = ko_ttbr1 & (~TTBR_ASID_MASK); \ ++ } \ ++ iee_rwx_gate_entry(IEE_SWITCH_TO_KOI, ko_ttbr1); \ ++ asm volatile("msr daif, %0\n" \ ++ "isb\n" \ ++ : \ ++ : "r"(flags)); \ ++ } while (0); ++ ++#define koi_switch_to_kernel() \ ++ do { \ ++ unsigned long flags, cur_sp; \ ++ unsigned long *ptr; \ ++ asm volatile("mrs %0, daif\n" \ ++ "msr daifset, #2\n" \ ++ "isb\n" \ ++ "mov %1, sp\n" \ ++ : "=r"(flags), "=r"(cur_sp) \ ++ :); \ ++ iee_rwx_gate_entry(IEE_SWITCH_TO_KERNEL); \ ++ if (!on_irq_stack(cur_sp, NULL)) { \ ++ iee_rw_gate(IEE_WRITE_TOKEN_TTBR1, current, \ ++ koi_swapper_ttbr1); \ ++ koi_do_switch_to_kernel_stack(); \ ++ } else { \ ++ ptr = SHIFT_PERCPU_PTR(koi_irq_current_ttbr1, \ ++ __kern_my_cpu_offset()); \ ++ *ptr = koi_swapper_ttbr1; \ ++ } \ ++ asm volatile("msr daif, %0\n" \ ++ "isb\n" \ ++ : \ ++ : "r"(flags)); \ ++ } while (0); ++#endif ++//kzalloc function in driver space ++static __maybe_unused noinline void * ++koi_kzalloc_wrapper(struct module *mod, size_t size, gfp_t flags) ++{ ++ int cnt = (size + PAGE_SIZE - 1) / PAGE_SIZE; ++ void *addr; ++ struct koi_mem_hash_node *target = NULL; ++ koi_switch_to_kernel(); ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk("mem node for module: %s not found\n", mod->name); ++ return NULL; ++ } ++ ++ addr = kzalloc(size, flags); ++ koi_copy_pagetable(target->ko_mm, target->pgdp, (unsigned long)addr, ++ (unsigned long)addr + PAGE_SIZE * cnt); ++ koi_switch_to_ko(); ++ return addr; ++} ++//kmalloc function in driver space ++static __maybe_unused __always_inline void * ++koi_kmalloc_wrapper(struct module *mod, size_t size, gfp_t flags) ++{ ++ int cnt = (size + PAGE_SIZE - 1) / PAGE_SIZE; ++ void *addr; ++ struct koi_mem_hash_node *target = NULL; ++ koi_switch_to_kernel(); ++ ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk("mem node for module: %s not found\n", mod->name); ++ return 0; ++ } ++ ++ addr = kmalloc(cnt * PAGE_SIZE, flags); ++ koi_copy_pagetable(target->ko_mm, target->pgdp, (unsigned long)addr, ++ (unsigned long)addr + PAGE_SIZE * cnt); ++ koi_switch_to_ko(); ++ return (void *)addr; ++} ++//vmalloc function in driver space ++static __maybe_unused void *koi_vmalloc_wrapper(struct module *mod, ++ unsigned long size) ++{ ++ int cnt = (size + PAGE_SIZE - 1) / PAGE_SIZE; ++ void *addr; ++ struct koi_mem_hash_node *target = NULL; ++ koi_switch_to_kernel(); ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk("mem node for module: %s not found\n", mod->name); ++ koi_switch_to_ko(); ++ return 0; ++ } ++ addr = vmalloc(cnt * PAGE_SIZE); ++ koi_copy_pagetable(target->ko_mm, target->pgdp, (unsigned long)addr, ++ (unsigned long)addr + PAGE_SIZE * cnt); ++ koi_switch_to_ko(); ++ return addr; ++} ++//kmalloc_array function in driver space ++static __maybe_unused void *koi_kmalloc_array_wrapper(struct module *mod, ++ size_t n, size_t size, ++ gfp_t flags) ++{ ++ int kpage; ++ void *addr; ++ struct koi_mem_hash_node *target = NULL; ++ koi_switch_to_kernel(); ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk("mem node for module: %s not found\n", mod->name); ++ koi_switch_to_ko(); ++ return 0; ++ } ++ kpage = (n * size + PAGE_SIZE - 1) / PAGE_SIZE; ++ n = (kpage * PAGE_SIZE) / size; ++ addr = kmalloc_array(n, size, flags); ++ koi_copy_pagetable(target->ko_mm, target->pgdp, (unsigned long)addr, ++ (unsigned long)addr + PAGE_SIZE * kpage); ++ koi_switch_to_ko(); ++ return addr; ++} ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h +index 644cfa3284a7..40e8a384c55e 100644 +--- a/arch/arm64/include/asm/memory.h ++++ b/arch/arm64/include/asm/memory.h +@@ -170,6 +170,13 @@ extern u64 vabits_actual; + #define PAGE_END (_PAGE_END(vabits_actual)) + + extern s64 memstart_addr; ++ ++#if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++extern s64 memstart_addr_init; ++extern s64 iee_offset; ++#define LOGICAL_RANDOM (long long int)((long unsigned int)__va(memstart_addr_init) & (~PAGE_OFFSET)) ++#endif ++ + /* PHYS_OFFSET - the physical address of the start of memory. */ + #define PHYS_OFFSET ({ VM_BUG_ON(memstart_addr & 1); memstart_addr; }) + +@@ -265,6 +272,26 @@ extern phys_addr_t __phys_addr_symbol(unsigned long x); + #define __phys_to_virt(x) ((unsigned long)((x) - PHYS_OFFSET) | PAGE_OFFSET) + #define __phys_to_kimg(x) ((unsigned long)((x) + kimage_voffset)) + ++#ifdef CONFIG_KOI ++#define KOI_OFFSET (((unsigned long)BIT(vabits_actual - 2)) - LOGICAL_RANDOM) ++#endif ++ ++#ifdef CONFIG_IEE ++#ifdef CONFIG_IEE_OFFSET ++#define IEE_OFFSET ((CONFIG_IEE_OFFSET) - LOGICAL_RANDOM) ++#else ++#define IEE_OFFSET (((unsigned long)BIT(vabits_actual - 2)) - LOGICAL_RANDOM) ++#endif ++#define __phys_to_iee(x) (__phys_to_virt(x) + IEE_OFFSET) ++#define SET_UPAGE(x) __pgprot(pgprot_val(x) | PTE_USER) ++#define SET_PPAGE(x) __pgprot(pgprot_val(x) & (~PTE_USER)) ++#endif ++ ++#if defined(CONFIG_IEE) || defined (CONFIG_KOI) ++#define SET_NG(x) __pgprot(pgprot_val(x) | PTE_NG) ++#define SET_INVALID(x) __pgprot(pgprot_val(x) & (~PTE_VALID)) ++#endif ++ + /* + * Convert a page to/from a physical address + */ +diff --git a/arch/arm64/include/asm/mmu_context.h b/arch/arm64/include/asm/mmu_context.h +index 5a54a5ab5f92..dec84d69bcc1 100644 +--- a/arch/arm64/include/asm/mmu_context.h ++++ b/arch/arm64/include/asm/mmu_context.h +@@ -23,6 +23,9 @@ + #include + #include + #include ++#ifdef CONFIG_IEE ++#define INIT_ASID 0x2 ++#endif + + extern bool rodata_full; + +@@ -42,7 +45,12 @@ static inline void cpu_set_reserved_ttbr0(void) + { + unsigned long ttbr = phys_to_ttbr(__pa_symbol(reserved_pg_dir)); + ++#ifdef CONFIG_IEE ++ ttbr |= FIELD_PREP(TTBR_ASID_MASK, 1); ++ iee_rwx_gate_entry(IEE_WRITE_ttbr0_el1, ttbr); ++#else + write_sysreg(ttbr, ttbr0_el1); ++#endif + isb(); + } + +@@ -90,7 +98,11 @@ static inline void __cpu_set_tcr_t0sz(unsigned long t0sz) + tcr = read_sysreg(tcr_el1); + tcr &= ~TCR_T0SZ_MASK; + tcr |= t0sz << TCR_T0SZ_OFFSET; ++#ifdef CONFIG_IEE ++ iee_rwx_gate_entry(IEE_WRITE_tcr_el1, tcr); ++#else + write_sysreg(tcr, tcr_el1); ++#endif + isb(); + } + +@@ -155,6 +167,10 @@ static inline void cpu_replace_ttbr1(pgd_t *pgdp) + ttbr1 |= TTBR_CNP_BIT; + } + ++ #ifdef CONFIG_IEE ++ ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, ASID(current->active_mm)); ++ #endif ++ + replace_phys = (void *)__pa_symbol(idmap_cpu_replace_ttbr1); + + cpu_install_idmap(); +diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h +index 3c6a7f5988b1..157aead56290 100644 +--- a/arch/arm64/include/asm/pgalloc.h ++++ b/arch/arm64/include/asm/pgalloc.h +@@ -57,6 +57,10 @@ static inline void __p4d_populate(p4d_t *p4dp, phys_addr_t pudp, p4dval_t prot) + extern pgd_t *pgd_alloc(struct mm_struct *mm); + extern void pgd_free(struct mm_struct *mm, pgd_t *pgdp); + ++#ifdef CONFIG_KOI ++pgd_t *koi_pgd_alloc(void); ++#endif ++ + static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t ptep, + pmdval_t prot) + { +diff --git a/arch/arm64/include/asm/pgtable-hwdef.h b/arch/arm64/include/asm/pgtable-hwdef.h +index a5cff5b376f6..9ff234b3ba74 100644 +--- a/arch/arm64/include/asm/pgtable-hwdef.h ++++ b/arch/arm64/include/asm/pgtable-hwdef.h +@@ -91,6 +91,13 @@ + #define CONT_PMD_SIZE (CONT_PMDS * PMD_SIZE) + #define CONT_PMD_MASK (~(CONT_PMD_SIZE - 1)) + ++#ifdef CONFIG_IEE ++#define PGD_APT_RO (_AT(pudval_t, 1) << 62) ++#endif ++#define PGD_APT (_AT(pudval_t, 1) << 61) ++#define PGD_PXN (_AT(pudval_t, 1) << 59) ++#define PGD_UXN (_AT(pudval_t, 1) << 60) ++ + /* + * Hardware page table definitions. + * +@@ -148,6 +155,9 @@ + #define PTE_UXN (_AT(pteval_t, 1) << 54) /* User XN */ + #define PTE_PBHA_MASK (_AT(pteval_t, 0xf) << 59) /* Page Base Hardware Attributes */ + #define PTE_PBHA0 (_AT(pteval_t, 1) << 59) /* PBHA 59 bit */ ++#ifdef CONFIG_HIVE ++#define PTE_BPF_SFI_GP (_AT(pteval_t, 1) << 55) /* BPF_SFI guarded */ ++#endif + + #define PTE_ADDR_LOW (((_AT(pteval_t, 1) << (48 - PAGE_SHIFT)) - 1) << PAGE_SHIFT) + #ifdef CONFIG_ARM64_PA_BITS_52 +@@ -271,6 +281,9 @@ + #define TCR_E0PD0 (UL(1) << 55) + #define TCR_E0PD1 (UL(1) << 56) + ++#ifdef CONFIG_IEE ++#define TCR_HPD1 (UL(1) << 42) ++#endif + /* + * TTBR. + */ +diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h +index f914c30b7487..9bfe99662758 100644 +--- a/arch/arm64/include/asm/pgtable.h ++++ b/arch/arm64/include/asm/pgtable.h +@@ -35,6 +35,9 @@ + #include + #include + #include ++#ifdef CONFIG_PTP ++#include ++#endif + + #ifdef CONFIG_TRANSPARENT_HUGEPAGE + #define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE +@@ -156,6 +159,15 @@ static inline pteval_t __phys_to_pte_val(phys_addr_t phys) + #define pud_access_permitted(pud, write) \ + (pte_access_permitted(pud_pte(pud), (write))) + ++#ifdef CONFIG_PTP ++extern bool in_tramp_pgdir(void *addr); ++extern unsigned long long iee_rw_gate(int flag, ...); ++ ++extern void iee_set_tramp_pgd_pre_init(pgd_t *pgdp, pgd_t pgd); ++extern pteval_t iee_set_xchg_relaxed(pte_t *ptep, pteval_t pteval); ++extern pteval_t iee_set_cmpxchg_relaxed(pte_t *ptep, pteval_t old_pteval, pteval_t new_pteval); ++#endif ++ + static inline pte_t clear_pte_bit(pte_t pte, pgprot_t prot) + { + pte_val(pte) &= ~pgprot_val(prot); +@@ -260,19 +272,35 @@ static inline pte_t pte_mkdevmap(pte_t pte) + return set_pte_bit(pte, __pgprot(PTE_DEVMAP | PTE_SPECIAL)); + } + ++#ifdef CONFIG_PTP ++extern void iee_set_bm_pte(pte_t *ptep, pte_t pte); ++extern void iee_set_fixmap_pte_pre_init(pte_t *ptep, pte_t pte); ++#endif ++ ++#ifdef CONFIG_IEE ++extern void set_pte(pte_t *ptep, pte_t pte); ++#else + static inline void set_pte(pte_t *ptep, pte_t pte) + { ++#ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++#endif + WRITE_ONCE(*ptep, pte); +- +- /* +- * Only if the new pte is valid and kernel, otherwise TLB maintenance +- * or update_mmu_cache() have the necessary barriers. +- */ + if (pte_valid_not_user(pte)) { + dsb(ishst); + isb(); + } + } ++#endif ++ ++#ifdef CONFIG_IEE ++extern void iee_set_pte_upage(pte_t *ptep, int order, int use_block_pmd); ++extern void iee_set_pte_ppage(pte_t *ptep, int order, int use_block_pmd); ++extern void iee_set_sensitive_pte(pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd); ++extern void iee_unset_sensitive_pte(pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd); ++#endif + + extern void __sync_icache_dcache(pte_t pteval); + +@@ -335,6 +363,14 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, + set_pte(ptep, pte); + } + ++#ifdef CONFIG_PTP ++extern void iee_set_pte_pre_init(pte_t *ptep, pte_t pte); ++extern void iee_set_pte_at(struct mm_struct *mm, unsigned long addr, ++ pte_t *ptep, pte_t pte); ++extern void iee_set_pte_at_delayed(struct mm_struct *mm, unsigned long addr, ++ pte_t *ptep, pte_t pte); ++#endif ++ + /* + * Huge pte definitions. + */ +@@ -476,8 +512,42 @@ static inline pmd_t pmd_mkdevmap(pmd_t pmd) + #define pud_pfn(pud) ((__pud_to_phys(pud) & PUD_MASK) >> PAGE_SHIFT) + #define pfn_pud(pfn,prot) __pud(__phys_to_pud_val((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)) + ++#ifdef CONFIG_PTP ++extern void set_pmd(pmd_t *pmdp, pmd_t pmd); ++static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr, ++ pmd_t *pmdp, pmd_t pmd) ++{ ++ if (pte_present(pmd_pte(pmd)) && pte_user_exec(pmd_pte(pmd)) && !pte_special(pmd_pte(pmd))) ++ __sync_icache_dcache(pmd_pte(pmd)); ++ ++ if (system_supports_mte() && ++ pte_present(pmd_pte(pmd)) && pte_tagged(pmd_pte(pmd)) && !pte_special(pmd_pte(pmd))) ++ mte_sync_tags((pte_t *)pmdp, pmd_pte(pmd)); ++ ++ __check_racy_pte_update(mm, (pte_t *)pmdp, pmd_pte(pmd)); ++ ++ set_pmd(pmdp, pmd); ++} ++ ++extern void set_pud(pud_t *pudp, pud_t pud); ++static inline void set_pud_at(struct mm_struct *mm, unsigned long addr, ++ pud_t *pudp, pud_t pud) ++{ ++ if (pte_present(pud_pte(pud)) && pte_user_exec(pud_pte(pud)) && !pte_special(pud_pte(pud))) ++ __sync_icache_dcache(pud_pte(pud)); ++ ++ if (system_supports_mte() && ++ pte_present(pud_pte(pud)) && pte_tagged(pud_pte(pud)) && !pte_special(pud_pte(pud))) ++ mte_sync_tags((pte_t *)pudp, pud_pte(pud)); ++ ++ __check_racy_pte_update(mm, (pte_t *)pudp, pud_pte(pud)); ++ ++ set_pud(pudp, pud); ++} ++#else + #define set_pmd_at(mm, addr, pmdp, pmd) set_pte_at(mm, addr, (pte_t *)pmdp, pmd_pte(pmd)) + #define set_pud_at(mm, addr, pudp, pud) set_pte_at(mm, addr, (pte_t *)pudp, pud_pte(pud)) ++#endif + + #define __p4d_to_phys(p4d) __pte_to_phys(p4d_pte(p4d)) + #define __phys_to_p4d_val(phys) __phys_to_pte_val(phys) +@@ -581,6 +651,14 @@ static inline bool in_swapper_pgdir(void *addr) + ((unsigned long)swapper_pg_dir & PAGE_MASK); + } + ++#ifdef CONFIG_PTP ++extern bool in_tramp_pgdir(void *addr); ++extern void iee_set_fixmap_pmd_pre_init(pmd_t *pmdp, pmd_t pmd); ++#endif ++ ++#ifdef CONFIG_IEE ++extern void set_pmd(pmd_t *pmdp, pmd_t pmd); ++#else + static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) + { + #ifdef __PAGETABLE_PMD_FOLDED +@@ -589,14 +667,19 @@ static inline void set_pmd(pmd_t *pmdp, pmd_t pmd) + return; + } + #endif /* __PAGETABLE_PMD_FOLDED */ +- ++#ifdef CONFIG_KOI ++ pmdval_t val = pmd_val(pmd); ++ if (pmd_valid(pmd) && !(val & PMD_TABLE_BIT)) { ++ pmd = __pmd(val | PMD_SECT_NG); ++ } ++#endif + WRITE_ONCE(*pmdp, pmd); +- + if (pmd_valid(pmd)) { + dsb(ishst); + isb(); + } + } ++#endif + + static inline void pmd_clear(pmd_t *pmdp) + { +@@ -616,6 +699,12 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) + /* Find an entry in the third-level page table. */ + #define pte_offset_phys(dir,addr) (pmd_page_paddr(READ_ONCE(*(dir))) + pte_index(addr) * sizeof(pte_t)) + ++#ifdef CONFIG_PTP ++#define pte_set_fixmap_init(addr) ((pte_t *)iee_set_fixmap_offset_pre_init(FIX_PTE, addr)) ++#define pte_set_fixmap_offset_init(pmd, addr) pte_set_fixmap_init(pte_offset_phys(pmd, addr)) ++#define pte_clear_fixmap_init() clear_fixmap_init(FIX_PTE) ++#endif ++ + #define pte_set_fixmap(addr) ((pte_t *)set_fixmap_offset(FIX_PTE, addr)) + #define pte_set_fixmap_offset(pmd, addr) pte_set_fixmap(pte_offset_phys(pmd, addr)) + #define pte_clear_fixmap() clear_fixmap(FIX_PTE) +@@ -642,6 +731,14 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) + #define pud_leaf(pud) (pud_present(pud) && !pud_table(pud)) + #define pud_valid(pud) pte_valid(pud_pte(pud)) + ++ ++#ifdef CONFIG_PTP ++extern void iee_set_fixmap_pud_pre_init(pud_t *pudp, pud_t pud); ++#endif ++ ++#ifdef CONFIG_IEE ++extern void set_pud(pud_t *pudp, pud_t pud); ++#else + static inline void set_pud(pud_t *pudp, pud_t pud) + { + #ifdef __PAGETABLE_PUD_FOLDED +@@ -650,14 +747,20 @@ static inline void set_pud(pud_t *pudp, pud_t pud) + return; + } + #endif /* __PAGETABLE_PUD_FOLDED */ +- ++#ifdef CONFIG_KOI ++ pudval_t val = pud_val(pud); ++ if (pud_valid(pud) && !(val & PUD_TABLE_BIT)) { ++ // There is no PUD_SEC_NG, so we use PMD_SECT_NG instead. ++ pud = __pud(val | PMD_SECT_NG); ++ } ++#endif + WRITE_ONCE(*pudp, pud); +- + if (pud_valid(pud)) { + dsb(ishst); + isb(); + } + } ++#endif + + static inline void pud_clear(pud_t *pudp) + { +@@ -677,6 +780,12 @@ static inline pmd_t *pud_pgtable(pud_t pud) + /* Find an entry in the second-level page table. */ + #define pmd_offset_phys(dir, addr) (pud_page_paddr(READ_ONCE(*(dir))) + pmd_index(addr) * sizeof(pmd_t)) + ++#ifdef CONFIG_PTP ++#define pmd_set_fixmap_init(addr) ((pmd_t *)iee_set_fixmap_offset_pre_init(FIX_PMD, addr)) ++#define pmd_set_fixmap_offset_init(pud, addr) pmd_set_fixmap_init(pmd_offset_phys(pud, addr)) ++#define pmd_clear_fixmap_init() clear_fixmap_init(FIX_PMD) ++#endif ++ + #define pmd_set_fixmap(addr) ((pmd_t *)set_fixmap_offset(FIX_PMD, addr)) + #define pmd_set_fixmap_offset(pud, addr) pmd_set_fixmap(pmd_offset_phys(pud, addr)) + #define pmd_clear_fixmap() clear_fixmap(FIX_PMD) +@@ -707,10 +816,15 @@ static inline pmd_t *pud_pgtable(pud_t pud) + #define p4d_none(p4d) (!p4d_val(p4d)) + #define p4d_bad(p4d) (!(p4d_val(p4d) & 2)) + #define p4d_present(p4d) (p4d_val(p4d)) ++#define p4d_valid(p4d) pte_valid(p4d_pte(p4d)) + ++#ifdef CONFIG_IEE ++extern void set_p4d(p4d_t *p4dp, p4d_t p4d); ++#else + static inline void set_p4d(p4d_t *p4dp, p4d_t p4d) + { +- if (in_swapper_pgdir(p4dp)) { ++ if (in_swapper_pgdir(p4dp)) ++ { + set_swapper_pgd((pgd_t *)p4dp, __pgd(p4d_val(p4d))); + return; + } +@@ -719,6 +833,7 @@ static inline void set_p4d(p4d_t *p4dp, p4d_t p4d) + dsb(ishst); + isb(); + } ++#endif + + static inline void p4d_clear(p4d_t *p4dp) + { +@@ -738,6 +853,12 @@ static inline pud_t *p4d_pgtable(p4d_t p4d) + /* Find an entry in the frst-level page table. */ + #define pud_offset_phys(dir, addr) (p4d_page_paddr(READ_ONCE(*(dir))) + pud_index(addr) * sizeof(pud_t)) + ++#ifdef CONFIG_PTP ++#define pud_set_fixmap_init(addr) ((pud_t *)iee_set_fixmap_offset_pre_init(FIX_PUD, addr)) ++#define pud_set_fixmap_offset_init(p4d, addr) pud_set_fixmap_init(pud_offset_phys(p4d, addr)) ++#define pud_clear_fixmap_init() clear_fixmap_init(FIX_PUD) ++#endif ++ + #define pud_set_fixmap(addr) ((pud_t *)set_fixmap_offset(FIX_PUD, addr)) + #define pud_set_fixmap_offset(p4d, addr) pud_set_fixmap(pud_offset_phys(p4d, addr)) + #define pud_clear_fixmap() clear_fixmap(FIX_PUD) +@@ -764,6 +885,10 @@ static inline pud_t *p4d_pgtable(p4d_t p4d) + #define pgd_ERROR(e) \ + pr_err("%s:%d: bad pgd %016llx.\n", __FILE__, __LINE__, pgd_val(e)) + ++#ifdef CONFIG_PTP ++#define pgd_set_fixmap_init(addr) ((pgd_t *)iee_set_fixmap_offset_pre_init(FIX_PGD, addr)) ++#define pgd_clear_fixmap_init() clear_fixmap_init(FIX_PGD) ++#endif + #define pgd_set_fixmap(addr) ((pgd_t *)set_fixmap_offset(FIX_PGD, addr)) + #define pgd_clear_fixmap() clear_fixmap(FIX_PGD) + +@@ -829,10 +954,19 @@ static inline int __ptep_test_and_clear_young(pte_t *ptep) + + pte = READ_ONCE(*ptep); + do { ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif + old_pte = pte; + pte = pte_mkold(pte); ++ #ifdef CONFIG_PTP ++ pte_val(pte) = iee_set_cmpxchg_relaxed(ptep, ++ pte_val(old_pte), pte_val(pte)); ++ #else + pte_val(pte) = cmpxchg_relaxed(&pte_val(*ptep), + pte_val(old_pte), pte_val(pte)); ++ #endif + } while (pte_val(pte) != pte_val(old_pte)); + + return pte_young(pte); +@@ -880,7 +1014,13 @@ static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, + static inline pte_t ptep_get_and_clear(struct mm_struct *mm, + unsigned long address, pte_t *ptep) + { ++ #ifdef CONFIG_PTP ++ pteval_t pteval= iee_set_xchg_relaxed(ptep, (pteval_t)0); ++ pte_t ret = __pte(pteval); ++ return ret; ++ #else + return __pte(xchg_relaxed(&pte_val(*ptep), 0)); ++ #endif + } + + #ifdef CONFIG_TRANSPARENT_HUGEPAGE +@@ -903,10 +1043,19 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres + + pte = READ_ONCE(*ptep); + do { ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif + old_pte = pte; + pte = pte_wrprotect(pte); ++ #ifdef CONFIG_PTP ++ pte_val(pte) = iee_set_cmpxchg_relaxed(ptep,pte_val(old_pte), pte_val(pte)); ++ #else + pte_val(pte) = cmpxchg_relaxed(&pte_val(*ptep), + pte_val(old_pte), pte_val(pte)); ++ #endif + } while (pte_val(pte) != pte_val(old_pte)); + } + +@@ -922,7 +1071,17 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm, + static inline pmd_t pmdp_establish(struct vm_area_struct *vma, + unsigned long address, pmd_t *pmdp, pmd_t pmd) + { ++ #ifdef CONFIG_KOI ++ pmdval_t val = pmd_val(pmd); ++ if (pmd_valid(pmd) && !(val & PMD_TABLE_BIT)) { ++ pmd = __pmd(val | PMD_SECT_NG); ++ } ++ #endif ++ #ifdef CONFIG_PTP ++ return __pmd(iee_set_xchg_relaxed((pte_t *)pmdp, pmd_val(pmd))); ++ #else + return __pmd(xchg_relaxed(&pmd_val(*pmdp), pmd_val(pmd))); ++ #endif + } + #endif + +diff --git a/arch/arm64/include/asm/pgtable_slab.h b/arch/arm64/include/asm/pgtable_slab.h +new file mode 100644 +index 000000000000..00a0af999201 +--- /dev/null ++++ b/arch/arm64/include/asm/pgtable_slab.h +@@ -0,0 +1,15 @@ ++#ifndef _LINUX_PGTABLE_SLAB_H ++#define _LINUX_PGTABLE_SLAB_H ++ ++#define PGTABLE_ORDER 9 ++#define PGTABLE_MAX_ORDER (20-PGTABLE_ORDER) ++ ++extern void __init iee_pgtable_init(void); ++extern void *get_iee_pgtable_page(gfp_t gfpflags); ++extern void free_iee_pgtable_page(void *obj); ++ ++extern void __init iee_stack_init(void); ++extern void *get_iee_stack(void); ++extern void free_iee_stack(void *obj); ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h +index 8bcc9ac9963e..7e833c5dbf0a 100644 +--- a/arch/arm64/include/asm/sysreg.h ++++ b/arch/arm64/include/asm/sysreg.h +@@ -1784,6 +1784,64 @@ + write_sysreg_s(__scs_new, sysreg); \ + } while (0) + ++ ++#ifdef CONFIG_IEE ++ ++#define SYS_TCR_IEE_SI TCR_HPD1 | TCR_A1 ++ ++extern void iee_rwx_gate_entry(int flag, ...); ++#define IEE_SI_TEST 0 ++#define IEE_WRITE_sctlr_el1 1 ++#define IEE_WRITE_ttbr0_el1 2 ++#define IEE_WRITE_vbar_el1 3 ++#define IEE_WRITE_tcr_el1 4 ++#define IEE_WRITE_mdscr_el1 5 ++#define IEE_WRITE_AFSR0 10 ++ ++#define sysreg_clear_set_iee_si(sysreg, clear, set) do { \ ++ u64 __scs_val = read_sysreg(sysreg); \ ++ u64 __scs_new = (__scs_val & ~(u64)(clear)) | (set); \ ++ if (__scs_new != __scs_val) \ ++ iee_rwx_gate_entry(IEE_WRITE_##sysreg, __scs_new); \ ++} while (0) ++ ++#define IEE_SI_WRITE_DAIF_SEL "msr daifclr, #0xf\n\t" \ ++ "tbnz %x0, #6, 114221f\n\t" \ ++ "tbnz %x0, #7, 114210f\n\t" \ ++ "tbnz %x0, #8, 114100f\n\t" \ ++ "msr daifset, #0b000\n\t" \ ++ "b 114514f\n\t" \ ++"114221:\n\t" \ ++ "tbnz %x0, #7, 114211f\n\t" \ ++ "tbnz %x0, #8, 114101f\n\t" \ ++ "msr daifset, #0b001\n\t" \ ++ "b 114514f\n\t" \ ++"114211:\n\t" \ ++ "tbnz %x0, #8, 114111f\n\t" \ ++ "msr daifset, #0b011\n\t" \ ++ "b 114514f\n\t" \ ++"114210:\n\t" \ ++ "tbnz %x0, #8, 114110f\n\t" \ ++ "msr daifset, #0b010\n\t" \ ++ "b 114514f\n\t" \ ++"114100:\n\t" \ ++ "msr daifset, #0b100\n\t" \ ++ "b 114514f\n\t" \ ++"114101:\n\t" \ ++ "msr daifset, #0b101\n\t" \ ++ "b 114514f\n\t" \ ++"114110:\n\t" \ ++ "msr daifset, #0b110\n\t" \ ++ "b 114514f\n\t" \ ++"114111:\n\t" \ ++ "msr daifset, #0b111\n\t" \ ++"114514:\n\t" ++ ++#define iee_si_write_daif(v) do { \ ++ u64 __val = (u64)(v); \ ++ asm volatile(IEE_SI_WRITE_DAIF_SEL: : "rZ" (__val));} while (0) ++#endif ++ + #define read_sysreg_par() ({ \ + u64 par; \ + asm(ALTERNATIVE("nop", "dmb sy", ARM64_WORKAROUND_1508412)); \ +diff --git a/arch/arm64/include/asm/tlb.h b/arch/arm64/include/asm/tlb.h +index c995d1f4594f..04fbba7d8846 100644 +--- a/arch/arm64/include/asm/tlb.h ++++ b/arch/arm64/include/asm/tlb.h +@@ -11,11 +11,31 @@ + #include + #include + ++#ifdef CONFIG_PTP ++#include ++#include "pgtable_slab.h" ++#endif ++ + static inline void __tlb_remove_table(void *_table) + { + free_page_and_swap_cache((struct page *)_table); + } + ++#ifdef CONFIG_PTP ++static inline void __iee_tlb_remove_table(void *_table) ++{ ++ struct page *page = (struct page *)_table; ++ ++ if (!is_huge_zero_page(page)) ++ { ++ if (page_ref_dec_return(page) == 1) ++ { ++ free_iee_pgtable_page((void *)page_to_virt(page)); ++ } ++ } ++} ++#endif ++ + #define tlb_flush tlb_flush + static void tlb_flush(struct mmu_gather *tlb); + +@@ -76,7 +96,11 @@ static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, + unsigned long addr) + { + pgtable_pte_page_dtor(pte); ++ #ifdef CONFIG_PTP ++ iee_tlb_remove_table(tlb, pte); ++ #else + tlb_remove_table(tlb, pte); ++ #endif + } + + #if CONFIG_PGTABLE_LEVELS > 2 +@@ -86,7 +110,11 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, + struct page *page = virt_to_page(pmdp); + + pgtable_pmd_page_dtor(page); ++ #ifdef CONFIG_PTP ++ iee_tlb_remove_table(tlb, page); ++ #else + tlb_remove_table(tlb, page); ++ #endif + } + #endif + +@@ -94,7 +122,11 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, + static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pudp, + unsigned long addr) + { ++ #ifdef CONFIG_PTP ++ iee_tlb_remove_table(tlb, virt_to_page(pudp)); ++ #else + tlb_remove_table(tlb, virt_to_page(pudp)); ++ #endif + } + #endif + +diff --git a/arch/arm64/include/asm/tlbflush.h b/arch/arm64/include/asm/tlbflush.h +index 353ec955915e..1ddb0de4d682 100644 +--- a/arch/arm64/include/asm/tlbflush.h ++++ b/arch/arm64/include/asm/tlbflush.h +@@ -48,6 +48,7 @@ + + #define __tlbi(op, ...) __TLBI_N(op, ##__VA_ARGS__, 1, 0) + ++ + #define __tlbi_user(op, arg) do { \ + if (arm64_kernel_unmapped_at_el0()) \ + __tlbi(op, (arg) | USER_ASID_FLAG); \ +@@ -251,6 +252,11 @@ static inline void flush_tlb_mm(struct mm_struct *mm) + asid = __TLBI_VADDR(0, ASID(mm)); + __tlbi(aside1is, asid); + __tlbi_user(aside1is, asid); ++ #if defined(CONFIG_IEE) || defined (CONFIG_KOI) ++ asid = __TLBI_VADDR(0, ASID(mm)+1); ++ __tlbi(aside1is, asid); ++ __tlbi_user(aside1is, asid); ++ #endif + dsb(ish); + } + +@@ -263,6 +269,11 @@ static inline void __flush_tlb_page_nosync(struct mm_struct *mm, + addr = __TLBI_VADDR(uaddr, ASID(mm)); + __tlbi(vale1is, addr); + __tlbi_user(vale1is, addr); ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ addr = __TLBI_VADDR(uaddr, ASID(mm)+1); ++ __tlbi(vale1is, addr); ++ __tlbi_user(vale1is, addr); ++ #endif + } + + static inline void flush_tlb_page_nosync(struct vm_area_struct *vma, +@@ -369,9 +380,17 @@ static inline void __flush_tlb_range(struct vm_area_struct *vma, + addr = __TLBI_VADDR(start, asid); + if (last_level) { + __tlbi_level(vale1is, addr, tlb_level); ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ if (!arm64_kernel_unmapped_at_el0()) ++ __tlbi_level(vale1is, addr | USER_ASID_FLAG, tlb_level); ++ #endif + __tlbi_user_level(vale1is, addr, tlb_level); + } else { + __tlbi_level(vae1is, addr, tlb_level); ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ if (!arm64_kernel_unmapped_at_el0()) ++ __tlbi_level(vae1is, addr | USER_ASID_FLAG, tlb_level); ++ #endif + __tlbi_user_level(vae1is, addr, tlb_level); + } + start += stride; +@@ -385,9 +404,17 @@ static inline void __flush_tlb_range(struct vm_area_struct *vma, + num, tlb_level); + if (last_level) { + __tlbi(rvale1is, addr); ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ if (!arm64_kernel_unmapped_at_el0()) ++ __tlbi(rvale1is, addr | USER_ASID_FLAG); ++ #endif + __tlbi_user(rvale1is, addr); + } else { + __tlbi(rvae1is, addr); ++ #if defined(CONFIG_IEE) || defined (CONFIG_KOI) ++ if (!arm64_kernel_unmapped_at_el0()) ++ __tlbi(rvae1is, addr | USER_ASID_FLAG); ++ #endif + __tlbi_user(rvae1is, addr); + } + start += __TLBI_RANGE_PAGES(num, scale) << PAGE_SHIFT; +@@ -418,7 +445,7 @@ static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end + return; + } + +- start = __TLBI_VADDR(start, 0); ++ start = __TLBI_VADDR(start, 0); + end = __TLBI_VADDR(end, 0); + + dsb(ishst); +@@ -434,9 +461,9 @@ static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end + */ + static inline void __flush_tlb_kernel_pgtable(unsigned long kaddr) + { +- unsigned long addr = __TLBI_VADDR(kaddr, 0); +- +- dsb(ishst); ++ unsigned long addr = __TLBI_VADDR(kaddr, 0); ++ ++ dsb(ishst); + __tlbi(vaae1is, addr); + dsb(ish); + isb(); +diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile +index 5b9951b6fb05..ba7ed557b165 100644 +--- a/arch/arm64/kernel/Makefile ++++ b/arch/arm64/kernel/Makefile +@@ -30,6 +30,8 @@ OBJCOPYFLAGS := --prefix-symbols=__efistub_ + $(obj)/%.stub.o: $(obj)/%.o FORCE + $(call if_changed,objcopy) + ++obj-y += iee/ ++obj-$(CONFIG_KOI) += koi/ + obj-$(CONFIG_AARCH32_EL0) += binfmt_elf32.o sys32.o signal32.o \ + sys_compat.o + ifdef CONFIG_CC_IS_CLANG +diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c +index cc736c5309fd..e87c0d977656 100644 +--- a/arch/arm64/kernel/armv8_deprecated.c ++++ b/arch/arm64/kernel/armv8_deprecated.c +@@ -312,11 +312,19 @@ static int cp15barrier_handler(struct pt_regs *regs, u32 instr) + + static int cp15_barrier_set_hw_mode(bool enable) + { ++#ifdef CONFIG_IEE ++ if (enable) ++ sysreg_clear_set_iee_si(sctlr_el1, 0, SCTLR_EL1_CP15BEN); ++ else ++ sysreg_clear_set_iee_si(sctlr_el1, SCTLR_EL1_CP15BEN, 0); ++ return 0; ++#else + if (enable) + sysreg_clear_set(sctlr_el1, 0, SCTLR_EL1_CP15BEN); + else + sysreg_clear_set(sctlr_el1, SCTLR_EL1_CP15BEN, 0); + return 0; ++#endif + } + + static bool try_emulate_cp15_barrier(struct pt_regs *regs, u32 insn) +@@ -347,11 +355,19 @@ static int setend_set_hw_mode(bool enable) + if (!cpu_supports_mixed_endian_el0()) + return -EINVAL; + ++#ifdef CONFIG_IEE ++ if (enable) ++ sysreg_clear_set_iee_si(sctlr_el1, 0, SCTLR_EL1_CP15BEN); ++ else ++ sysreg_clear_set_iee_si(sctlr_el1, SCTLR_EL1_CP15BEN, 0); ++ return 0; ++#else + if (enable) + sysreg_clear_set(sctlr_el1, SCTLR_EL1_SED, 0); + else + sysreg_clear_set(sctlr_el1, 0, SCTLR_EL1_SED); + return 0; ++#endif + } + + static int __a32_setend_handler(struct pt_regs *regs, u32 big_endian) +diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c +index c247e11130db..f00622d9be3d 100644 +--- a/arch/arm64/kernel/asm-offsets.c ++++ b/arch/arm64/kernel/asm-offsets.c +@@ -75,6 +75,18 @@ int main(void) + DEFINE(S_STACKFRAME, offsetof(struct pt_regs, stackframe)); + DEFINE(S_ORIG_X0, offsetof(struct pt_regs, orig_x0)); + DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs)); ++#ifdef CONFIG_IEE ++ DEFINE(iee_from_token_offset, offsetof(struct task_token, iee_stack)); ++ DEFINE(tmp_page_from_token_offset, offsetof(struct task_token, tmp_page)); ++ DEFINE(kernel_from_token_offset, offsetof(struct task_token, kernel_stack)); ++ DEFINE(mm_from_task_offset, offsetof(struct task_struct, mm)); ++#endif ++#ifdef CONFIG_KOI ++ DEFINE(koi_kernel_from_token_offset, offsetof(struct task_token, koi_kernel_stack)); ++ DEFINE(koi_from_token_offset, offsetof(struct task_token, koi_stack)); ++ DEFINE(ttbr1_from_token_offset, offsetof(struct task_token, current_ttbr1)); ++ DEFINE(koi_stack_base_from_token_offset, offsetof(struct task_token, koi_stack_base)); ++#endif + BLANK(); + #ifdef CONFIG_AARCH32_EL0 + DEFINE(COMPAT_SIGFRAME_REGS_OFFSET, offsetof(struct a32_sigframe, uc.uc_mcontext.arm_r0)); +diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c +index 7f175b3aac15..2cd625a17ecb 100644 +--- a/arch/arm64/kernel/cpu_errata.c ++++ b/arch/arm64/kernel/cpu_errata.c +@@ -81,7 +81,11 @@ hisilicon_1980005_enable(const struct arm64_cpu_capabilities *__unused) + cpus_set_cap(ARM64_HAS_CACHE_IDC); + arm64_ftr_reg_ctrel0.sys_val |= BIT(CTR_IDC_SHIFT); + arm64_ftr_reg_ctrel0.strict_mask &= ~BIT(CTR_IDC_SHIFT); ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(sctlr_el1, SCTLR_EL1_UCT, 0); ++#else + sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCT, 0); ++#endif + } + #endif + +@@ -133,7 +137,11 @@ cpu_enable_trap_ctr_access(const struct arm64_cpu_capabilities *cap) + enable_uct_trap = true; + + if (enable_uct_trap) ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(sctlr_el1, SCTLR_EL1_UCT, 0); ++#else + sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCT, 0); ++#endif + } + + #ifdef CONFIG_ARM64_ERRATUM_1463225 +@@ -150,7 +158,11 @@ has_cortex_a76_erratum_1463225(const struct arm64_cpu_capabilities *entry, + static void __maybe_unused + cpu_enable_cache_maint_trap(const struct arm64_cpu_capabilities *__unused) + { ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(sctlr_el1, SCTLR_EL1_UCI, 0); ++#else + sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCI, 0); ++#endif + } + + #ifdef CONFIG_HISILICON_ERRATUM_HIP08_RU_PREFETCH +diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c +index 9a4193991be5..01194ac94a56 100644 +--- a/arch/arm64/kernel/cpufeature.c ++++ b/arch/arm64/kernel/cpufeature.c +@@ -91,6 +91,10 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#endif ++ + /* Kernel representation of AT_HWCAP and AT_HWCAP2 */ + static unsigned long elf_hwcap __read_mostly; + +@@ -1375,7 +1379,11 @@ static void cpu_emulate_effective_ctr(const struct arm64_cpu_capabilities *__unu + * value. + */ + if (!(read_cpuid_cachetype() & BIT(CTR_IDC_SHIFT))) ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(sctlr_el1, SCTLR_EL1_UCT, 0); ++#else + sysreg_clear_set(sctlr_el1, SCTLR_EL1_UCT, 0); ++#endif + } + + static bool has_cache_dic(const struct arm64_cpu_capabilities *entry, +@@ -1583,7 +1591,11 @@ static inline void __cpu_enable_hw_dbm(void) + { + u64 tcr = read_sysreg(tcr_el1) | TCR_HD; + ++#ifdef CONFIG_IEE ++ iee_rwx_gate_entry(IEE_WRITE_tcr_el1, tcr); ++#else + write_sysreg(tcr, tcr_el1); ++#endif + isb(); + local_flush_tlb_all(); + } +@@ -1963,7 +1975,9 @@ static void cpu_enable_pan(const struct arm64_cpu_capabilities *__unused) + */ + WARN_ON_ONCE(in_interrupt()); + ++ #ifndef CONFIG_IEE + sysreg_clear_set(sctlr_el1, SCTLR_EL1_SPAN, 0); ++ #endif + set_pstate_pan(1); + } + #endif /* CONFIG_ARM64_PAN */ +@@ -2045,7 +2059,11 @@ static bool has_generic_auth(const struct arm64_cpu_capabilities *entry, + static void cpu_enable_e0pd(struct arm64_cpu_capabilities const *cap) + { + if (this_cpu_has_cap(ARM64_HAS_E0PD)) ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(tcr_el1, 0, TCR_E0PD1); ++#else + sysreg_clear_set(tcr_el1, 0, TCR_E0PD1); ++#endif + } + #endif /* CONFIG_ARM64_E0PD */ + +@@ -2075,7 +2093,11 @@ static void bti_enable(const struct arm64_cpu_capabilities *__unused) + * So, be strict and forbid other BRs using other registers to + * jump onto a PACIxSP instruction: + */ ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(sctlr_el1, 0, SCTLR_EL1_BT0 | SCTLR_EL1_BT1); ++#else + sysreg_clear_set(sctlr_el1, 0, SCTLR_EL1_BT0 | SCTLR_EL1_BT1); ++#endif + isb(); + } + #endif /* CONFIG_ARM64_BTI */ +@@ -2983,6 +3005,42 @@ static int cpu_enable_non_boot_scope_capabilities(void *__unused) + return 0; + } + ++// #ifdef CONFIG_IEE ++ ++// atomic_t __initdata iee_si_cpu_cnt; ++ ++// static int __init iee_si_enable_cnp_cpu(void *__unused) ++// { ++// int total_cpu; ++// // Enable CNP by setting TTBR1 ++// phys_addr_t ttbr1 = read_sysreg(ttbr1_el1); ++// if (ttbr1 >> 48 == 0){ ++// ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, ASID(current->active_mm)); ++// } ++// if (system_supports_cnp()) ++// ttbr1 |= TTBR_CNP_BIT; ++// printk("IEE SI: Write ASID to ttbr1:%lx on cpu %d", ttbr1, smp_processor_id()); ++// write_sysreg(ttbr1, ttbr1_el1); ++ ++// // loop until setting all cpus ++// atomic_inc(&iee_si_cpu_cnt); ++// total_cpu = num_online_cpus(); ++// while (atomic_read(&iee_si_cpu_cnt) < total_cpu) ++// cpu_relax(); ++ ++// return 0; ++// } ++ ++// /* Replace CNP settings.*/ ++// static void __init iee_si_enable_cnp(void) ++// { ++// atomic_set(&iee_si_cpu_cnt, 0); ++// stop_machine(iee_si_enable_cnp_cpu, NULL, cpu_online_mask); ++// pr_info("IEE SI: Enable CNP done.\n"); ++// } ++ ++// #endif ++ + /* + * Run through the enabled capabilities and enable() it on all active + * CPUs +@@ -3021,6 +3079,10 @@ static void __init enable_cpu_capabilities(u16 scope_mask) + */ + caps->cpu_enable(caps); + } ++ // #ifdef CONFIG_IEE ++ // iee_si_enable_cnp(); ++ // flush_tlb_all(); ++ // #endif + + /* + * For all non-boot scope capabilities, use stop_machine() +@@ -3309,6 +3371,41 @@ static void __init setup_system_capabilities(void) + enable_cpu_capabilities(SCOPE_ALL & ~SCOPE_BOOT_CPU); + } + ++#ifdef CONFIG_IEE ++ ++static void iee_si_test_end(void) ++{ ++ pr_info("IEE: testing iee_exec_entry sctlr...\n"); ++ iee_rwx_gate_entry(IEE_WRITE_SCTLR, read_sysreg(sctlr_el1)& ~SCTLR_ELx_M); ++ pr_info("IEE: testing iee_exec_entry ttbr0_el1...\n"); ++ iee_rwx_gate_entry(IEE_WRITE_TTBR0, read_sysreg(ttbr0_el1)); ++ pr_info("IEE: testing iee_exec_entry vbar...\n"); ++ iee_rwx_gate_entry(IEE_WRITE_VBAR, read_sysreg(vbar_el1)); ++ pr_info("IEE: testing iee_exec_entry tcr...\n"); ++ iee_rwx_gate_entry(IEE_WRITE_TCR, read_sysreg(tcr_el1)); ++ #ifdef CONFIG_KOI ++ pr_info("IEE: current TTBR1_EL1:%llx, TTBR0:%llx\n", read_sysreg(ttbr1_el1), read_sysreg(ttbr0_el1)); ++ pr_info("IEE: testing iee_exec_entry switch to koi...\n"); ++ iee_rwx_gate_entry(IEE_SWITCH_TO_KOI, phys_to_ttbr(__pa_symbol(swapper_pg_dir))); ++ pr_info("IEE: current TTBR1_EL1:%llx, TTBR0:%llx\n", read_sysreg(ttbr1_el1), read_sysreg(ttbr0_el1)); ++ pr_info("IEE: testing iee_exec_entry switch to kernel...\n"); ++ iee_rwx_gate_entry(IEE_SWITCH_TO_KERNEL); ++ flush_tlb_all(); ++ #endif ++} ++ ++/* Finish iee rwx gate initializations. */ ++static void __init iee_si_init_done(void) ++{ ++ // Protect idmap functions ++ mark_idmap_vmallc_map_ROU(); ++ // Prepare data for iee rwx gate ++ iee_si_prepare_data(); ++ // All initialization is done. Do some simple tests. ++ iee_si_test_end(); ++} ++#endif ++ + void __init setup_cpu_features(void) + { + u32 cwg; +@@ -3338,6 +3435,10 @@ void __init setup_cpu_features(void) + if (!cwg) + pr_warn("No Cache Writeback Granule information, assuming %d\n", + ARCH_DMA_MINALIGN); ++ ++ #ifdef CONFIG_IEE ++ iee_si_init_done(); ++ #endif + } + + static void __maybe_unused cpu_enable_cnp(struct arm64_cpu_capabilities const *cap) +diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c +index 9e0816d04370..76fe9e121c5c 100644 +--- a/arch/arm64/kernel/debug-monitors.c ++++ b/arch/arm64/kernel/debug-monitors.c +@@ -36,10 +36,14 @@ u8 debug_monitors_arch(void) + */ + static void mdscr_write(u32 mdscr) + { ++// #ifdef CONFIG_IEE ++// iee_rwx_gate_entry(IEE_WRITE_mdscr_el1, mdscr); ++// #else + unsigned long flags; + flags = local_daif_save(); + write_sysreg(mdscr, mdscr_el1); + local_daif_restore(flags); ++// #endif + } + NOKPROBE_SYMBOL(mdscr_write); + +diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S +index ab8ed1b62da1..a8d728b9b491 100644 +--- a/arch/arm64/kernel/entry.S ++++ b/arch/arm64/kernel/entry.S +@@ -28,6 +28,9 @@ + #include + #include + #include ++#ifdef CONFIG_IEE ++#include ++#endif + + /* + * Context tracking and irqflag tracing need to instrument transitions between +@@ -59,10 +62,395 @@ + #define BAD_IRQ 1 + #define BAD_FIQ 2 + #define BAD_ERROR 3 ++#define BAD_IEE 4 ++#define BAD_IEE_SI 5 ++ ++ ++#ifdef CONFIG_KOI ++#ifdef CONFIG_IEE ++/* ++ * This function is used to switch to ko stack in glue code ++ */ ++SYM_FUNC_START(koi_do_switch_to_ko_stack) ++ sub sp, sp, #48 ++ stp x29, x30, [sp] ++ str x2, [sp, #16] ++ stp x0, x1, [sp, #32] ++ ++ // iee_rw_gate(IEE_WRITE_KERNEL_STACK, current, sp) ++ mov x0, #IEE_WRITE_KOI_KERNEL_STACK ++ mrs x1, sp_el0 ++ add x2, sp, #48 ++ ++ bl iee_rw_gate ++ ++ // iee_rw_gate(IEE_READ_KOI_STACK, current) ++ mov x0, #IEE_READ_KOI_STACK ++ mrs x1, sp_el0 ++ bl iee_rw_gate ++ ++ ldp x29, x30, [sp] ++ ldr x2, [sp, #16] ++ add x1, sp, #32 ++ mov sp, x0 ++ ldp x0, x1, [x1] ++ ++ isb ++ ret ++SYM_FUNC_END(koi_do_switch_to_ko_stack) ++ ++/* ++ * This fucntion is used to switch to kernel stack in glue code ++ */ ++SYM_FUNC_START(koi_do_switch_to_kernel_stack) ++ sub sp, sp, #48 ++ stp x29, x30, [sp] ++ str x2, [sp, #16] ++ stp x0, x1, [sp, #32] ++ // iee_rw_gate(IEE_WRITE_KOI_STACK, current, sp) ++ mov x0, #IEE_WRITE_KOI_STACK ++ mrs x1, sp_el0 ++ add x2, sp, #48 ++ bl iee_rw_gate ++ ++ // iee_rw_gate(IEE_READ_KOI_KERNEL_STACK, current) ++ mov x0, #IEE_READ_KOI_KERNEL_STACK ++ mrs x1, sp_el0 ++ bl iee_rw_gate ++ ++ ldp x29, x30, [sp] ++ ldr x2, [sp, #16] ++ add x1, sp, #32 ++ mov sp, x0 ++ ldp x0, x1, [x1] ++ isb ++ ret ++SYM_FUNC_END(koi_do_switch_to_kernel_stack) ++ ++/* ++ * Before switch to ko's pgtable, we must switch current stack to ko's stack. ++ * We have stored registers to kernel stack, and we need to restore them from ko's stack after switching, ++ * so we need to copy from kernel stack to ko stack ++ * the memory region to copy is [sp, stack_top) ++ * void koi_switch_to_ko_stack(void); ++ */ ++SYM_FUNC_START(koi_switch_to_ko_stack) ++ mrs x17, pan ++ msr pan, 0x0 ++ ++ sub sp, sp, #32 ++ str x17, [sp, #16] ++ stp x30, x29, [sp] ++ ++ // current sp stores in x2 ++ add x2, x1, #176 ++ // current sp_el0 stores in x0 ++ mov x1, x0 ++ adrp x0, iee_offset ++ ldr x0, [x0, #:lo12:iee_offset] ++ bl _iee_write_koi_kernel_stack ++ ++ adrp x0, iee_offset ++ ldr x0, [x0, #:lo12:iee_offset] ++ mrs x1, sp_el0 ++ bl _iee_read_koi_stack ++ ++ ldr x17, [sp, #16] ++ ldp x30, x29, [sp] ++ add sp, sp, #32 ++ ++ msr pan, x17 ++ ++ sub x0, x0, #176 ++ mov x1, sp ++ mov x2, #176 ++ ++ // memcpy(current->driver_stack, current->kernel_stack, 176) ++ mov x16, lr ++ bl memcpy ++ mov lr, x16 ++ ++ mov sp, x0 ++ isb ++ ret ++SYM_FUNC_END(koi_switch_to_ko_stack) ++ ++SYM_FUNC_START(koi_switch_to_kernel_stack) ++ /* ++ * current sp belongs to driver stack, and the bottom 160 bytes saves registers when exception occurred, ++ * so we should add 160 to current sp, and store it in task_struct ++ * also, fetch kernel sp from task_struct, copy the bottom 160 bytes from driver stack to kernel stack ++ */ ++ mrs x17, pan ++ msr pan, 0x0 ++ ++ sub sp, sp, #32 ++ stp x30, x29, [sp] ++ str x17, [sp, #16] ++ ++ adrp x0, iee_offset ++ ldr x0, [x0, #:lo12:iee_offset] ++ mrs x1, sp_el0 ++ add x2, sp, #192 ++ bl _iee_write_koi_stack ++ ++ adrp x0, iee_offset ++ ldr x0, [x0, #:lo12:iee_offset] ++ mrs x1, sp_el0 ++ bl _iee_read_koi_kernel_stack ++ ++ ldr x17, [sp, #16] ++ ldp x30, x29, [sp] ++ add sp, sp, #32 ++ ++ msr pan, x17 ++ ++ // x0 = kernel_stack ++ sub x0, x0, #160 ++ mov x1, sp ++ // x2 = 160 ++ mov x2, #160 ++ ++ mov x16, lr ++ bl memcpy ++ mov lr, x16 ++ ++ mov sp, x0 ++ isb ++ ret ++SYM_FUNC_END(koi_switch_to_kernel_stack) ++#else ++/* ++ * This function is used to switch to ko stack in glue code ++ */ ++SYM_FUNC_START(koi_do_switch_to_ko_stack) ++ sub sp, sp, #16 ++ stp x16, x17, [sp] ++ mrs x17, sp_el0 ++ adrp x16, koi_offset ++ ldr x16, [x16, #:lo12:koi_offset] ++ add x17, x17, x16 ++ add x16, sp, #16 ++ str x16, [x17, #koi_kernel_from_token_offset] ++ ldr x16, [x17, #koi_from_token_offset] ++ mov x17, sp ++ mov sp, x16 ++ ldp x16, x17, [x17] ++ isb ++ ret ++SYM_FUNC_END(koi_do_switch_to_ko_stack) ++ ++/* ++ * This fucntion is used to switch to kernel stack in glue code ++ */ ++SYM_FUNC_START(koi_do_switch_to_kernel_stack) ++ sub sp, sp, #16 ++ stp x16, x17, [sp] ++ mrs x17, sp_el0 ++ adrp x16, koi_offset ++ ldr x16, [x16, #:lo12:koi_offset] ++ add x17, x17, x16 ++ add x16, sp, #16 ++ str x16, [x17, #koi_from_token_offset] ++ ldr x16, [x17, #koi_kernel_from_token_offset] ++ mov x17, sp ++ mov sp, x16 ++ ldp x16, x17, [x17] ++ isb ++ ret ++SYM_FUNC_END(koi_do_switch_to_kernel_stack) ++ ++/* ++ * Before switch to ko's pgtable, we must switch current stack to ko's stack. ++ * We have stored registers to kernel stack, and we need to restore them from ko's stack after switching, ++ * so we need to copy from kernel stack to ko stack ++ * the memory region to copy is [sp, stack_top) ++ * void koi_switch_to_ko_stack(unsigned long stack_top); ++ */ ++SYM_FUNC_START(koi_switch_to_ko_stack) ++ // current sp stores in x1 ++ add x3, x1, #176 ++ adrp x4, koi_offset ++ ldr x4, [x4, #:lo12:koi_offset] ++ add x4, x0, x4 ++ // current sp_el0 stores in x0 ++ str x3, [x4, #koi_kernel_from_token_offset] ++ ldr x0, [x4, #koi_from_token_offset] ++ sub x0, x0, #176 ++ mov x2, #176 ++ ++ // memcpy(current->driver_stack, current->kernel_stack, 176) ++ mov x16, lr ++ bl memcpy ++ mov lr, x16 ++ ++ mov sp, x0 ++ isb ++ ret ++SYM_FUNC_END(koi_switch_to_ko_stack) ++ ++SYM_FUNC_START(koi_switch_to_kernel_stack) ++ /* ++ * current sp belongs to driver stack, and the bottom 176 bytes saves registers when exception occurred, ++ * so we should add 176 to current sp, and store it in task_struct ++ * also, fetch kernel sp from task_struct, copy the bottom 176 bytes from driver stack to kernel stack ++ */ ++ mov x1, sp ++ add x3, sp, #160 ++ ++ mrs x16, sp_el0 ++ adrp x2, koi_offset ++ ldr x2, [x2, #:lo12:koi_offset] ++ add x16, x16, x2 ++ str x3, [x16, #koi_from_token_offset] ++ // sp points to kernel_stack ++ ldr x0, [x16, #koi_kernel_from_token_offset] ++ ++ // x0 = kernel_stack ++ sub x0, x0, #160 ++ // x2 = 160 ++ mov x2, #160 ++ mov x16, lr ++ // memcpy(kernel_stack, driver_stack, 160) ++ bl memcpy ++ mov lr, x16 ++ mov sp, x0 ++ isb ++ ret ++SYM_FUNC_END(koi_switch_to_kernel_stack) ++#endif ++ ++SYM_FUNC_START(koi_switch_to_ko_pgtbl) ++ stp x0, x1, [sp, #16 * 1] ++ stp x2, x3, [sp, #16 * 2] ++ stp x4, x5, [sp, #16 * 3] ++ stp x6, x7, [sp, #16 * 4] ++ stp x8, x9, [sp, #16 * 5] ++ stp x10, x11, [sp, #16 * 6] ++ stp x12, x13, [sp, #16 * 7] ++ stp x14, x15, [sp, #16 * 8] ++ stp x16, x17, [sp, #16 * 9] ++ stp x18, x30, [sp, #16 * 10] ++ ++ adrp x0, koi_swapper_ttbr1 ++ ldr x0, [x0, #:lo12:koi_swapper_ttbr1] ++ cbz x0, 0f ++ bl koi_do_switch_to_ko_pgtbl ++ // if x0 == 0, don't need to switch pgtable and stack, jump to 0 ++ cbz x0, 0f ++ mov x19, x0 ++ // if current on task's kernel stack, switch to ko stack ++ mrs x0, sp_el0 ++ mov x1, sp ++ ldr x2, [x0, TSK_STACK] ++ eor x2, x2, x1 ++ and x2, x2, #~(THREAD_SIZE - 1) ++ cbnz x2, 1f ++ ++ bl koi_switch_to_ko_stack ++1: ++#ifndef CONFIG_IEE ++ msr ttbr1_el1, x19 ++ isb ++ nop ++ nop ++ nop ++#else ++ mov x0, #IEE_SWITCH_TO_KOI ++ mov x1, x19 ++ bl iee_rwx_gate_entry ++#endif ++0: ++ ++ ldp x0, x1, [sp, #16 * 1] ++ ldp x2, x3, [sp, #16 * 2] ++ ldp x4, x5, [sp, #16 * 3] ++ ldp x6, x7, [sp, #16 * 4] ++ ldp x8, x9, [sp, #16 * 5] ++ ldp x10, x11, [sp, #16 * 6] ++ ldp x12, x13, [sp, #16 * 7] ++ ldp x14, x15, [sp, #16 * 8] ++ ldp x16, x17, [sp, #16 * 9] ++ ldp x18, x30, [sp, #16 * 10] ++ ret ++SYM_FUNC_END(koi_switch_to_ko_pgtbl) ++ ++.pushsection ".koi.text", "ax" ++SYM_FUNC_START(koi_switch_to_kernel_pgtbl) ++ sub sp, sp, #160 ++ stp x0, x1, [sp, #16 * 0] ++ stp x2, x3, [sp, #16 * 1] ++ stp x4, x5, [sp, #16 * 2] ++ stp x6, x7, [sp, #16 * 3] ++ stp x8, x9, [sp, #16 * 4] ++ stp x10, x11, [sp, #16 * 5] ++ ++ stp x12, x13, [sp, #16 * 6] ++ stp x14, x15, [sp, #16 * 7] ++ stp x16, x17, [sp, #16 * 8] ++ stp x18, x30, [sp, #16 * 9] ++ // check whether paging init finished ++ adrp x0, koi_swapper_ttbr1 ++ ldr x0, [x0, #:lo12:koi_swapper_ttbr1] ++ cbz x0, 0f ++ ++ bl koi_do_switch_to_kernel_pgtbl ++ /* ++ * koi_do_switch_to_kernel_pgtbl return 0 indicates ++ * that when exception occurred, the isolated ko is executing under koi pgtbl, ++ * so we need to switch stack to kernel stack after switch pgtbl back to koi_swapper_ttbr1. ++ */ ++ cbz x0, 0f ++#ifndef CONFIG_IEE ++ mrs x0, sp_el0 ++ adrp x1, koi_offset ++ ldr x1, [x1, #:lo12:koi_offset] ++ add x0, x0, x1 ++ mov x16, sp ++ ldr x17, [x0, koi_stack_base_from_token_offset] ++ eor x17, x17, x16 ++ and x17, x17, #~(THREAD_SIZE - 1) ++ cbnz x17, 0f ++#else ++ // save current pan ++ mrs x17, pan ++ // disable pan ++ msr pan, 0x0 ++ adrp x0, iee_offset ++ ldr x0, [x0, #:lo12:iee_offset] ++ mrs x1, sp_el0 ++ bl _iee_read_koi_stack_base ++ // restore pan ++ msr pan, x17 ++ ++ mov x16, sp ++ eor x0, x0, x16 ++ and x0, x0, #~(THREAD_SIZE - 1) ++ cbnz x0, 0f ++#endif ++ bl koi_switch_to_kernel_stack ++0: ++ ++ ldp x0, x1, [sp, #16 * 0] ++ ldp x2, x3, [sp, #16 * 1] ++ ldp x4, x5, [sp, #16 * 2] ++ ldp x6, x7, [sp, #16 * 3] ++ ldp x8, x9, [sp, #16 * 4] ++ ldp x10, x11, [sp, #16 * 5] ++ ldp x12, x13, [sp, #16 * 6] ++ ldp x14, x15, [sp, #16 * 7] ++ ldp x16, x17, [sp, #16 * 8] ++ ldp x18, x30, [sp, #16 * 9] ++ add sp, sp, #160 ++ ret ++SYM_FUNC_END(koi_switch_to_kernel_pgtbl) ++.popsection ++#endif + + .macro kernel_ventry, el, label, regsize = 64 + .align 7 + .Lventry_start\@: ++ + .if \el == 0 + /* + * This must be the first instruction of the EL0 vector entries. It is +@@ -78,6 +466,15 @@ + .Lskip_tramp_vectors_cleanup\@: + .endif + ++#ifdef CONFIG_KOI ++ .if \el == 1 ++ msr tpidrro_el0, x30 ++ bl koi_switch_to_kernel_pgtbl ++ mrs x30, tpidrro_el0 ++ msr tpidrro_el0, xzr ++ .endif ++#endif ++ + sub sp, sp, #S_FRAME_SIZE + #ifdef CONFIG_VMAP_STACK + /* +@@ -182,6 +579,7 @@ alternative_else_nop_endif + #endif + .endm + ++ + .macro kernel_entry, el, regsize = 64 + .if \regsize == 32 + mov w0, w0 // zero upper 32 bits of x0 +@@ -271,6 +669,17 @@ alternative_else_nop_endif + alternative_if ARM64_MTE + SET_PSTATE_TCO(0) + alternative_else_nop_endif ++#endif ++ ++#ifndef CONFIG_IEE ++#ifdef CONFIG_KOI ++ // set tcr_el1 to choose asid from ttbr1_el1 or ttbr0_el1 ++ .if \el == 0 ++ mrs x0, tcr_el1 ++ orr x0, x0 ,#0x0000000000400000 ++ msr tcr_el1,x0 ++ .endif ++#endif + #endif + + /* +@@ -284,9 +693,11 @@ alternative_else_nop_endif + .endm + + .macro kernel_exit, el ++ #ifndef CONFIG_IEE + .if \el != 0 + disable_daif + .endif ++ #endif + + #ifdef CONFIG_ARM64_PSEUDO_NMI + /* Restore pmr */ +@@ -335,6 +746,50 @@ alternative_else_nop_endif + + msr elr_el1, x21 // set up the return data + msr spsr_el1, x22 ++ ++#ifdef CONFIG_IEE ++ ++ .if \el == 0 ++ ++ #ifndef CONFIG_UNMAP_KERNEL_AT_EL0 ++ // SET hpd1 = 0 start ++ mrs x0, tcr_el1 ++ and x0, x0, #0xFFFFFBFFFFFFFFFF ++ and x0, x0, #0xFFFFFFFFFFBFFFFF ++ msr tcr_el1, x0 ++ // SET hpd1 = 0 end ++ ++ disable_daif ++ ++ // Check ELR_EL1 ++ mrs x0, elr_el1 ++ lsr x0, x0, #48 ++ tst x0, #0xffff ++ b.ne 5f ++ #endif ++ ++ // write dbg ctrl registers for breakpoint 0 to serve user ptrace. ++ //mrs x5, afsr0_el1 ++ //cbz x5, 1145f // skip if not used by user ++ //ldr_this_cpu x1, iee_si_user_bvr0, x2 ++ //ldr_this_cpu x3, iee_si_user_bcr0, x4 ++ //msr dbgbvr0_el1, x1 ++ //msr dbgbcr0_el1, x3 ++1145: ++ ++ .endif ++ ++#else ++#ifdef CONFIG_KOI ++ .if \el==0 ++ mrs x0, tcr_el1 ++ and x0, x0, #0xFFFFFFFFFFBFFFFF ++ msr tcr_el1,x0 ++ .endif ++#endif ++ ++#endif ++ + ldp x0, x1, [sp, #16 * 0] + ldp x2, x3, [sp, #16 * 1] + ldp x4, x5, [sp, #16 * 2] +@@ -366,13 +821,30 @@ alternative_else_nop_endif + tramp_alias x30, tramp_exit_compat, x29 + br x30 + #endif ++ ++#ifdef CONFIG_IEE ++5: ++ // ELR_EL1 check fail ++ mov x0, sp ++ mov x1, #BAD_IEE ++ mrs x2, esr_el1 ++ bl bad_mode ++ ASM_BUG() ++#endif ++ + .else + ldr lr, [sp, #S_LR] + add sp, sp, #S_FRAME_SIZE // restore sp + + /* Ensure any device/NC reads complete */ + alternative_insn nop, "dmb sy", ARM64_WORKAROUND_1508412 +- ++#ifdef CONFIG_KOI ++ sub sp, sp, #176 ++ stp x30, x19, [sp, #16 * 0] ++ bl koi_switch_to_ko_pgtbl ++ ldp x30, x19, [sp, #16 * 0] ++ add sp, sp, #176 ++#endif + eret + .endif + sb +@@ -651,21 +1123,227 @@ SYM_CODE_START_LOCAL(el1_error_invalid) + inv_entry 1, BAD_ERROR + SYM_CODE_END(el1_error_invalid) + ++/* ++ * iee exception entry ++ */ ++ .macro iee_exception_entry, el ++ ++ /* Check whether exception is permmited. */ ++ //ldr x1, =__iee_si_start ++ //cmp x1, x22 ++ //b.hi 1148f ++ //ldr x1, =__iee_si_end ++ //cmp x1, x22 ++ //b.lo 1148f ++ /* ELR check fail */ ++ //mov x0, sp ++ //mov x1, #BAD_IEE_SI ++ //mrs x2, esr_el1 ++ //bl bad_mode ++ //ASM_BUG() ++ ++ /* skip setting breakpoint 0 if user hasn't change it. */ ++ //.if \el == 0 ++ //mrs x0, afsr0_el1 ++ //cbz x0, 1148f ++ //.endif ++ ++ //b 1147f ++ /* enable breakpoint 0 to proctect iee rwx gate */ ++ //adrp x1, iee_rwx_gate_entry ++ //add x1, x1, #:lo12:iee_rwx_gate_entry ++#ifdef CONFIG_KOI ++ //add x1, x1, #120 ++#else ++ //add x1, x1, #36 ++#endif ++1145: ++ //msr dbgbvr0_el1, x1 ++ //mov x2, 0x21e7 ++1146: ++ //msr dbgbcr0_el1, x2 ++ //isb ++ ++1147: ++ /* check val of dbg ctrl registers */ ++ //mrs x3, dbgbvr0_el1 ++ //adrp x1, iee_rwx_gate_entry ++ //add x1, x1, #:lo12:iee_rwx_gate_entry ++#ifdef CONFIG_KOI ++ //add x1, x1, #120 ++#else ++ //add x1, x1, #36 ++#endif ++ //cmp x1, x3 ++ //bne 1145b ++ //mov x2, 0x21e7 ++ //mrs x0, dbgbcr0_el1 ++ //cmp x2, x0 ++ //bne 1146b ++ //enable_dbg ++1148: ++ ++ /* el0 set hpds */ ++ .if \el == 0 ++ ++ #ifndef CONFIG_UNMAP_KERNEL_AT_EL0 ++ /* SET hpd1 = 1 start */ ++ mrs x0, tcr_el1 ++ orr x0, x0, #0x0000040000000000 ++ orr x0, x0, #0x0000000000400000 ++ msr tcr_el1, x0 ++ /* SET hpd1 = 1 end */ ++ ++ disable_daif ++ ++ /* Check TCR_EL1 */ ++ mrs x0, tcr_el1 ++ tst x0, #0x0000040000000000 ++ b.eq 5f ++ tst x0, #0x0000000000400000 ++ b.ne 6f ++ ++5: ++ /* TCR_EL1 check fail */ ++ mov x0, sp ++ mov x1, #BAD_IEE ++ mrs x2, esr_el1 ++ bl bad_mode ++ ASM_BUG() ++ ++6: ++ nop ++ #endif ++ ++ .else ++#ifdef CONFIG_IEE_INTERRUPTABLE ++ /* el1 save elr_el1 and set pan */ ++ /* Check ELR_EL1 */ ++ ldr x1, =__iee_code_start ++ cmp x1, x22 ++ b.hi 7f ++ ldr x1, =__iee_code_end ++ cmp x1, x22 ++ b.lo 7f ++ /* Exception from iee code */ ++ /* Switch to kernel stack */ ++ mrs x0, sp_el0 /* x0 -> task_struct(VA) */ ++ adrp x2, iee_offset ++ ldr x2, [x2, #:lo12:iee_offset] ++ add x1, x0, x2 /* x1 -> task_token(IEE) */ ++ // store iee stack ++ mov x3, sp ++ str x3, [x1, #iee_from_token_offset] ++ // load kernel stack ++ ldr x3, [x1, #kernel_from_token_offset] ++ mov sp, x3 ++ sub sp, sp, #S_FRAME_SIZE ++ /* Enable PAN */ ++ msr pan, #0x1 ++ ++7: ++ /* Exception from kernel code */ ++ mov x0, #0x0 ++ mov x1, #0x0 ++ mov x2, #0x0 ++ mov x3, #0x0 ++#endif ++ .endif ++ .endm ++ ++/* ++ * iee exception exit ++ */ ++ .macro iee_exception_exit, el ++ // Disable daif ++ disable_daif ++ ++ .if \el == 1 ++#ifdef CONFIG_IEE_INTERRUPTABLE ++ /* el1 pop elr_el1 and set pan */ ++ /* Check ELR_EL1 */ ++ ldr x1, =__iee_code_start ++ cmp x1, x22 ++ b.hi 9f ++ ldr x1, =__iee_code_end ++ cmp x1, x22 ++ b.lo 9f ++ /* Eret iee code */ ++ /* Disable PAN */ ++ msr pan, #0x0 ++ /* Switch to iee stack */ ++ add sp, sp, #S_FRAME_SIZE ++ mrs x0, sp_el0 /* x0 -> task_struct */ ++ adrp x2, iee_offset ++ ldr x2, [x2, #:lo12:iee_offset] ++ add x1, x0, x2 /* x1 -> task_token(IEE) */ ++ // store kernel stack ++ mov x3, sp ++ str x3, [x1, #kernel_from_token_offset] ++ // load iee stack ++ ldr x2, [x1, #iee_from_token_offset] ++ mov sp, x2 ++ /* Load ELR_EL1 from iee stack */ ++ ldr x21, [sp, #S_PC] ++ /* Check the modify of ELR_EL1 */ ++ cmp x21, x22 ++ b.ne 8f ++ /* ELR_EL1 not modified */ ++ b 9f ++ ++8: ++ // ELR_EL1 modified ++ mov x0, sp ++ mov x1, #BAD_IEE ++ mrs x2, esr_el1 ++ bl bad_mode ++ ASM_BUG() ++ ++9: ++ // Eret kernel code ++ mov x0, #0x0 ++ mov x1, #0x0 ++ mov x2, #0x0 ++ mov x3, #0x0 ++#endif ++ .endif ++ .endm ++ + /* + * EL1 mode handlers. + */ + .align 6 + SYM_CODE_START_LOCAL_NOALIGN(el1_sync) + kernel_entry 1 ++ ++ #ifdef CONFIG_IEE ++ iee_exception_entry 1 ++ #endif ++ + mov x0, sp + bl el1_sync_handler ++ ++ #ifdef CONFIG_IEE ++ iee_exception_exit 1 ++ #endif ++ + kernel_exit 1 + SYM_CODE_END(el1_sync) + + .align 6 + SYM_CODE_START_LOCAL_NOALIGN(el1_irq) + kernel_entry 1 ++ ++ #ifdef CONFIG_IEE ++ iee_exception_entry 1 ++ #endif ++ + el1_interrupt_handler handle_arch_irq ++ ++ #ifdef CONFIG_IEE ++ iee_exception_exit 1 ++ #endif ++ + kernel_exit 1 + SYM_CODE_END(el1_irq) + +@@ -675,8 +1353,18 @@ SYM_CODE_END(el1_irq) + .align 6 + SYM_CODE_START_LOCAL_NOALIGN(el0_sync) + kernel_entry 0 ++ ++ #ifdef CONFIG_IEE ++ iee_exception_entry 0 ++ #endif ++ + mov x0, sp + bl el0_sync_handler ++ ++ #ifdef CONFIG_IEE ++ iee_exception_exit 0 ++ #endif ++ + b ret_to_user + SYM_CODE_END(el0_sync) + +@@ -684,8 +1372,18 @@ SYM_CODE_END(el0_sync) + .align 6 + SYM_CODE_START_LOCAL_NOALIGN(el0_sync_compat) + kernel_entry 0, 32 ++ ++ #ifdef CONFIG_IEE ++ iee_exception_entry 0 ++ #endif ++ + mov x0, sp + bl el0_sync_compat_handler ++ ++ #ifdef CONFIG_IEE ++ iee_exception_exit 0 ++ #endif ++ + b ret_to_user + SYM_CODE_END(el0_sync_compat) + +@@ -705,22 +1403,47 @@ SYM_CODE_END(el0_error_compat) + SYM_CODE_START_LOCAL_NOALIGN(el0_irq) + kernel_entry 0 + el0_irq_naked: ++ ++ #ifdef CONFIG_IEE ++ iee_exception_entry 0 ++ #endif ++ + el0_interrupt_handler handle_arch_irq ++ ++ #ifdef CONFIG_IEE ++ iee_exception_exit 0 ++ #endif ++ + b ret_to_user + SYM_CODE_END(el0_irq) + + SYM_CODE_START_LOCAL(el1_error) + kernel_entry 1 ++ ++ #ifdef CONFIG_IEE ++ iee_exception_entry 1 ++ #endif ++ + mrs x1, esr_el1 + enable_dbg + mov x0, sp + bl do_serror ++ ++ #ifdef CONFIG_IEE ++ iee_exception_exit 1 ++ #endif ++ + kernel_exit 1 + SYM_CODE_END(el1_error) + + SYM_CODE_START_LOCAL(el0_error) + kernel_entry 0 + el0_error_naked: ++ ++ #ifdef CONFIG_IEE ++ iee_exception_entry 0 ++ #endif ++ + mrs x25, esr_el1 + user_exit_irqoff + enable_dbg +@@ -728,6 +1451,11 @@ el0_error_naked: + mov x1, x25 + bl do_serror + enable_da_f ++ ++ #ifdef CONFIG_IEE ++ iee_exception_exit 0 ++ #endif ++ + b ret_to_user + SYM_CODE_END(el0_error) + +@@ -751,6 +1479,8 @@ finish_ret_to_user: + #ifdef CONFIG_GCC_PLUGIN_STACKLEAK + bl stackleak_erase + #endif ++ ++ + kernel_exit 0 + + /* +diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S +index 91890de6cefa..a964a5502311 100644 +--- a/arch/arm64/kernel/head.S ++++ b/arch/arm64/kernel/head.S +@@ -300,7 +300,11 @@ SYM_FUNC_START_LOCAL(__create_page_tables) + subs x1, x1, #64 + b.ne 1b + ++#ifdef CONFIG_IEE ++ mov x7, SWAPPER_MM_MMUFLAGS_IDMAP ++#else + mov x7, SWAPPER_MM_MMUFLAGS ++#endif + + /* + * Create the identity mapping. +@@ -375,6 +379,10 @@ SYM_FUNC_START_LOCAL(__create_page_tables) + + map_memory x0, x1, x3, x6, x7, x3, x4, x10, x11, x12, x13, x14 + ++#ifdef CONFIG_IEE ++ mov x7, SWAPPER_MM_MMUFLAGS ++#endif ++ + /* + * Map the kernel image (starting with PHYS_OFFSET). + */ +@@ -950,6 +958,10 @@ SYM_FUNC_START(__enable_mmu) + adrp x2, idmap_pg_dir + phys_to_ttbr x1, x1 + phys_to_ttbr x2, x2 ++#ifdef CONFIG_IEE ++ mov x3, #1 ++ bfi x2, x3, #48, #16 // ASID 1 is used by IEE rwx gate. ++#endif + msr ttbr0_el1, x2 // load TTBR0 + offset_ttbr1 x1, x3 + msr ttbr1_el1, x1 // load TTBR1 +diff --git a/arch/arm64/kernel/hibernate.c b/arch/arm64/kernel/hibernate.c +index 42003774d261..26fc494b5524 100644 +--- a/arch/arm64/kernel/hibernate.c ++++ b/arch/arm64/kernel/hibernate.c +@@ -40,6 +40,10 @@ + #include + #include + ++#ifdef CONFIG_PTP ++#include ++#endif ++ + /* + * Hibernate core relies on this value being 0 on resume, and marks it + * __nosavedata assuming it will keep the resume kernel's '0' value. This +@@ -193,6 +197,9 @@ static int trans_pgd_map_page(pgd_t *trans_pgd, void *page, + pudp = (void *)get_safe_page(GFP_ATOMIC); + if (!pudp) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)pudp, 0); ++ #endif + pgd_populate(&init_mm, pgdp, pudp); + } + +@@ -201,6 +208,9 @@ static int trans_pgd_map_page(pgd_t *trans_pgd, void *page, + pudp = (void *)get_safe_page(GFP_ATOMIC); + if (!pudp) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)pudp, 0); ++ #endif + p4d_populate(&init_mm, p4dp, pudp); + } + +@@ -209,6 +219,9 @@ static int trans_pgd_map_page(pgd_t *trans_pgd, void *page, + pmdp = (void *)get_safe_page(GFP_ATOMIC); + if (!pmdp) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)pmdp, 0); ++ #endif + pud_populate(&init_mm, pudp, pmdp); + } + +@@ -217,6 +230,9 @@ static int trans_pgd_map_page(pgd_t *trans_pgd, void *page, + ptep = (void *)get_safe_page(GFP_ATOMIC); + if (!ptep) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)ptep, 0); ++ #endif + pmd_populate_kernel(&init_mm, pmdp, ptep); + } + +@@ -255,6 +271,9 @@ static int create_safe_exec_page(void *src_start, size_t length, + trans_pgd = (void *)get_safe_page(GFP_ATOMIC); + if (!trans_pgd) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)trans_pgd, 0); ++ #endif + + rc = trans_pgd_map_page(trans_pgd, page, dst_addr, + PAGE_KERNEL_EXEC); +@@ -275,7 +294,11 @@ static int create_safe_exec_page(void *src_start, size_t length, + */ + cpu_set_reserved_ttbr0(); + local_flush_tlb_all(); ++#ifdef CONFIG_IEE ++ iee_rwx_gate_entry(IEE_WRITE_ttbr0_el1, phys_to_ttbr(virt_to_phys(trans_pgd))); ++#else + write_sysreg(phys_to_ttbr(virt_to_phys(trans_pgd)), ttbr0_el1); ++#endif + isb(); + + *phys_dst_addr = virt_to_phys(page); +@@ -494,6 +517,9 @@ static int copy_pte(pmd_t *dst_pmdp, pmd_t *src_pmdp, unsigned long start, + dst_ptep = (pte_t *)get_safe_page(GFP_ATOMIC); + if (!dst_ptep) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)dst_ptep, 0); ++ #endif + pmd_populate_kernel(&init_mm, dst_pmdp, dst_ptep); + dst_ptep = pte_offset_kernel(dst_pmdp, start); + +@@ -517,6 +543,9 @@ static int copy_pmd(pud_t *dst_pudp, pud_t *src_pudp, unsigned long start, + dst_pmdp = (pmd_t *)get_safe_page(GFP_ATOMIC); + if (!dst_pmdp) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)dst_pmdp, 0); ++ #endif + pud_populate(&init_mm, dst_pudp, dst_pmdp); + } + dst_pmdp = pmd_offset(dst_pudp, start); +@@ -552,6 +581,9 @@ static int copy_pud(p4d_t *dst_p4dp, p4d_t *src_p4dp, unsigned long start, + dst_pudp = (pud_t *)get_safe_page(GFP_ATOMIC); + if (!dst_pudp) + return -ENOMEM; ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)dst_pudp, 0); ++ #endif + p4d_populate(&init_mm, dst_p4dp, dst_pudp); + } + dst_pudp = pud_offset(dst_p4dp, start); +@@ -620,6 +652,9 @@ static int trans_pgd_create_copy(pgd_t **dst_pgdp, unsigned long start, + { + int rc; + pgd_t *trans_pgd = (pgd_t *)get_safe_page(GFP_ATOMIC); ++ #ifdef CONFIG_PTP ++ set_iee_page((unsigned long)trans_pgd, 0); ++ #endif + + if (!trans_pgd) { + pr_err("Failed to allocate memory for temporary page tables.\n"); +diff --git a/arch/arm64/kernel/hw_breakpoint.c b/arch/arm64/kernel/hw_breakpoint.c +index b152e69c0401..2a2df3087956 100644 +--- a/arch/arm64/kernel/hw_breakpoint.c ++++ b/arch/arm64/kernel/hw_breakpoint.c +@@ -26,6 +26,10 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#endif ++ + /* Breakpoint currently in use for each BRP. */ + static DEFINE_PER_CPU(struct perf_event *, bp_on_reg[ARM_MAX_BRP]); + +@@ -102,13 +106,68 @@ int hw_breakpoint_slots(int type) + WRITE_WB_REG_CASE(OFF, 14, REG, VAL); \ + WRITE_WB_REG_CASE(OFF, 15, REG, VAL) + ++#ifdef CONFIG_IEE ++ ++#define IEE_SI_READ_WB_REG_CASE(OFF, N, REG, VAL) \ ++ case (OFF + N): \ ++ IEE_SI_AARCH64_DBG_READ(N, REG, VAL); \ ++ break ++ ++#define IEE_SI_WRITE_WB_REG_CASE(OFF, N, REG, VAL) \ ++ case (OFF + N): \ ++ IEE_SI_AARCH64_DBG_WRITE(N, REG, VAL); \ ++ break ++ ++#define IEE_SI_GEN_READ_REG_CASES(OFF, REG, VAL) \ ++ IEE_SI_READ_WB_REG_CASE(OFF, 0, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 1, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 2, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 3, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 4, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 5, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 6, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 7, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 8, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 9, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 10, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 11, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 12, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 13, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 14, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 15, REG, VAL) ++ ++#define IEE_SI_GEN_WRITE_REG_CASES(OFF, REG, VAL) \ ++ IEE_SI_WRITE_WB_REG_CASE(OFF, 0, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 1, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 2, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 3, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 4, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 5, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 6, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 7, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 8, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 9, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 10, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 11, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 12, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 13, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 14, REG, VAL); \ ++ WRITE_WB_REG_CASE(OFF, 15, REG, VAL) ++ ++#endif ++ + static u64 read_wb_reg(int reg, int n) + { + u64 val = 0; + + switch (reg + n) { ++// #ifdef CONFIG_IEE ++// IEE_SI_GEN_READ_REG_CASES(AARCH64_DBG_REG_BVR, AARCH64_DBG_REG_NAME_BVR, val); ++// IEE_SI_GEN_READ_REG_CASES(AARCH64_DBG_REG_BCR, AARCH64_DBG_REG_NAME_BCR, val); ++// #else + GEN_READ_WB_REG_CASES(AARCH64_DBG_REG_BVR, AARCH64_DBG_REG_NAME_BVR, val); + GEN_READ_WB_REG_CASES(AARCH64_DBG_REG_BCR, AARCH64_DBG_REG_NAME_BCR, val); ++// #endif + GEN_READ_WB_REG_CASES(AARCH64_DBG_REG_WVR, AARCH64_DBG_REG_NAME_WVR, val); + GEN_READ_WB_REG_CASES(AARCH64_DBG_REG_WCR, AARCH64_DBG_REG_NAME_WCR, val); + default: +@@ -122,8 +181,13 @@ NOKPROBE_SYMBOL(read_wb_reg); + static void write_wb_reg(int reg, int n, u64 val) + { + switch (reg + n) { ++// #ifdef CONFIG_IEE ++// IEE_SI_GEN_WRITE_REG_CASES(AARCH64_DBG_REG_BVR, AARCH64_DBG_REG_NAME_BVR, val); ++// IEE_SI_GEN_WRITE_REG_CASES(AARCH64_DBG_REG_BCR, AARCH64_DBG_REG_NAME_BCR, val); ++// #else + GEN_WRITE_WB_REG_CASES(AARCH64_DBG_REG_BVR, AARCH64_DBG_REG_NAME_BVR, val); + GEN_WRITE_WB_REG_CASES(AARCH64_DBG_REG_BCR, AARCH64_DBG_REG_NAME_BCR, val); ++// #endif + GEN_WRITE_WB_REG_CASES(AARCH64_DBG_REG_WVR, AARCH64_DBG_REG_NAME_WVR, val); + GEN_WRITE_WB_REG_CASES(AARCH64_DBG_REG_WCR, AARCH64_DBG_REG_NAME_WCR, val); + default: +@@ -171,6 +235,10 @@ static int is_a32_compat_bp(struct perf_event *bp) + return tsk && is_a32_compat_thread(task_thread_info(tsk)); + } + ++#ifdef CONFIG_IEE ++int arch_check_bp_in_kernelspace(struct arch_hw_breakpoint *hw); ++#endif ++ + /** + * hw_breakpoint_slot_setup - Find and setup a perf slot according to + * operations +@@ -191,6 +259,37 @@ static int hw_breakpoint_slot_setup(struct perf_event **slots, int max_slots, + { + int i; + struct perf_event **slot; ++// reserve hw breakpoint 0 for iee rwx gate in kernel sapce. ++// #ifdef CONFIG_IEE ++// struct arch_hw_breakpoint *info = counter_arch_bp(bp); ++// if (arch_check_bp_in_kernelspace(info)){ ++// for (i = 1; i < max_slots; ++i) { // search from hw breakpoint 1 ++// slot = &slots[i]; ++// switch (ops) { ++// case HW_BREAKPOINT_INSTALL: ++// if (!*slot) { ++// *slot = bp; ++// return i; ++// } ++// break; ++// case HW_BREAKPOINT_UNINSTALL: ++// if (*slot == bp) { ++// *slot = NULL; ++// return i; ++// } ++// break; ++// case HW_BREAKPOINT_RESTORE: ++// if (*slot == bp) ++// return i; ++// break; ++// default: ++// pr_warn_once("Unhandled hw breakpoint ops %d\n", ops); ++// return -EINVAL; ++// } ++// } ++// return -ENOSPC; ++// } ++// #endif + + for (i = 0; i < max_slots; ++i) { + slot = &slots[i]; +diff --git a/arch/arm64/kernel/iee/Makefile b/arch/arm64/kernel/iee/Makefile +new file mode 100644 +index 000000000000..db138c53b8e4 +--- /dev/null ++++ b/arch/arm64/kernel/iee/Makefile +@@ -0,0 +1 @@ ++obj-$(CONFIG_IEE) += iee.o iee-gate.o iee-func.o iee-pgtable.o pgtable_slab.o +\ No newline at end of file +diff --git a/arch/arm64/kernel/iee/iee-func.c b/arch/arm64/kernel/iee/iee-func.c +new file mode 100644 +index 000000000000..e872d41da86f +--- /dev/null ++++ b/arch/arm64/kernel/iee/iee-func.c +@@ -0,0 +1,883 @@ ++#include "asm/pgtable.h" ++#include ++#include ++#include ++#include ++#include ++ ++extern s64 iee_offset; ++extern void iee_memset(void *ptr, int data, size_t n); ++extern void iee_split_huge_pmd(pmd_t *pmdp, pte_t *pgtable); ++#ifdef CONFIG_PTP ++extern phys_addr_t __init early_pgtable_alloc(int shift); ++#endif ++ ++static inline void iee_set_token(pte_t *ptep, void *new, unsigned long order) ++{ ++#ifdef CONFIG_PTP ++ pgd_t *pgdir; ++ pgd_t *pgdp; ++ p4d_t *p4dp; ++ pud_t *pudp; ++ pmd_t *pmdp; ++ int use_block_pmd = 0; ++ ++ pgdir = swapper_pg_dir; ++ pgdp = pgd_offset_pgd(pgdir, (unsigned long)new); ++ p4dp = p4d_offset(pgdp, (unsigned long)new); ++ pudp = pud_offset(p4dp, (unsigned long)new); ++ pmdp = pmd_offset(pudp, (unsigned long)new); ++ ++ // Handling cont mapping. ++ if(pmd_val(*pmdp) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pmd_t *pmdp = pmd_offset(pudp, (unsigned long)new & CONT_PMD_MASK); ++ for(i = 0; i < CONT_PMDS; i++) ++ { ++ set_pmd(pmdp,__pmd(pmd_val(*pmdp) & ~PTE_CONT)); ++ pmdp++; ++ } ++ } ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp)) ++ { ++ #ifndef CONFIG_PTP ++ struct page *page = pmd_page(*pmdp); ++ #endif ++ pte_t *pgtable = pte_alloc_one_kernel(&init_mm); ++ ++ if (!pgtable) ++ panic("Alloc pgtable error.\n"); ++ ++ iee_split_huge_pmd(pmdp, pgtable); ++ ++ spin_lock(&init_mm.page_table_lock); ++ if(pmd_leaf(READ_ONCE(*pmdp))) ++ { ++ smp_wmb(); ++ pmd_populate_kernel(&init_mm, pmdp, pgtable); ++ pgtable = NULL; ++ } ++ spin_unlock(&init_mm.page_table_lock); ++ ++ if(pgtable) ++ { ++ iee_memset(pgtable, 0, PAGE_SIZE); ++ pte_free_kernel(&init_mm, pgtable); ++ } ++ } ++ else if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ } ++ ++ iee_rw_gate(IEE_SET_TOKEN, ptep, new, order, use_block_pmd); ++#else ++ int i; ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, new); ++ p4d_t *p4dp = p4d_offset(pgdp, new); ++ pud_t *pudp = pud_offset(p4dp, new); ++ pmd_t *pmdp; ++ pte_t *lm_ptep; ++ pte_t *iee_ptep; ++ unsigned long iee_addr; ++ int use_block_pmd = 0; ++ ++ pmdp = pmd_offset(pudp, new); ++ ++ // Handling cont mapping. ++ if(pmd_val(*pmdp) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pmd_t *pmdp = pmd_offset(pudp, (unsigned long)new & CONT_PMD_MASK); ++ for(i = 0; i < CONT_PMDS; i++) ++ { ++ set_pmd(pmdp,__pmd(pmd_val(*pmdp) & ~PTE_CONT)); ++ pmdp++; ++ } ++ } ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp) && order < 9) ++ { ++ struct page *page = pmd_page(*pmdp); ++ pte_t *pgtable = pte_alloc_one_kernel(&init_mm); ++ int i; ++ pte_t *ptep = pgtable; ++ ++ if (!pgtable) ++ panic("Alloc pgtable error.\n"); ++ ++ for (i = 0; i < PMD_SIZE / PAGE_SIZE; i++, ptep++) { ++ pte_t entry; ++ pgprot_t pgprot = PAGE_KERNEL; ++ pgprot = __pgprot(pgprot_val(pgprot) | PTE_CONT); ++ ++ entry = mk_pte(page + i, pgprot); ++ set_pte(ptep, entry); ++ } ++ ++ spin_lock(&init_mm.page_table_lock); ++ if(pmd_leaf(READ_ONCE(*pmdp))) ++ { ++ smp_wmb(); ++ pmd_populate_kernel(&init_mm, pmdp, pgtable); ++ pgtable = NULL; ++ } ++ spin_unlock(&init_mm.page_table_lock); ++ ++ if(pgtable) ++ { ++ pte_free_kernel(&init_mm, pgtable); ++ } ++ } ++ else if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ } ++ ++ if(use_block_pmd) ++ lm_ptep = (pte_t *)pmdp; ++ else ++ lm_ptep = pte_offset_kernel(pmdp, new); ++ ++ // Handling cont mapping. ++ if(pte_val(*lm_ptep) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pte_t *ptep = pte_offset_kernel(pmdp, (unsigned long)new & CONT_PTE_MASK); ++ if(order < CONFIG_ARM64_CONT_PTE_SHIFT) ++ { ++ for(i = 0; i < CONT_PTES; i++) ++ { ++ set_pte(ptep,__pte(pte_val(*ptep) & ~PTE_CONT)); ++ ptep++; ++ } ++ } ++ } ++ ++ iee_addr = ((unsigned long)new + (unsigned long)iee_offset); ++ pgdp = pgd_offset_pgd(pgdir, iee_addr); ++ p4dp = p4d_offset(pgdp, iee_addr); ++ pudp = pud_offset(p4dp, iee_addr); ++ pmdp = pmd_offset(pudp, iee_addr); ++ iee_ptep = pte_offset_kernel(pmdp, iee_addr); ++ ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)lm_ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd((pmd_val(pmd) | PMD_SECT_RDONLY) & ~PTE_DBM); ++ #ifdef CONFIG_KOI ++ if (pmd_valid(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT)) { ++ pmd = __pmd(pmd_val(pmd) | PMD_SECT_NG); ++ } ++ #endif ++ WRITE_ONCE(*pmdp, pmd); ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) | 0x1) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(new))); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | 0x1); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ iee_ptep++; ++ new += PAGE_SIZE; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) | 0x1) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(new))); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*lm_ptep); ++ pte = __pte((pte_val(pte) | PTE_RDONLY) & ~PTE_DBM); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | 0x1); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ lm_ptep++; ++ iee_ptep++; ++ new += PAGE_SIZE; ++ } ++ } ++#endif ++ dsb(ishst); ++ isb(); ++} ++ ++static inline void iee_unset_token(pte_t *ptep, void *token_addr, void *token_page, unsigned long order) ++{ ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_UNSET_TOKEN, ptep, token_addr, token_page, order); ++#else ++ int i; ++ pgd_t *pgdir = swapper_pg_dir; ++ ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, token_page); ++ p4d_t *p4dp = p4d_offset(pgdp, token_page); ++ pud_t *pudp = pud_offset(p4dp, token_page); ++ pmd_t *pmdp = pmd_offset(pudp, token_page); ++ pte_t *lm_ptep; ++ pte_t *iee_ptep; ++ unsigned long iee_addr; ++ int use_block_pmd = 0; ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ lm_ptep = (pte_t *)pmdp; ++ } ++ else ++ lm_ptep = pte_offset_kernel(pmdp, token_page); ++ ++ iee_addr = ((unsigned long)token_page + (unsigned long)iee_offset); ++ pgdp = pgd_offset_pgd(pgdir, iee_addr); ++ p4dp = p4d_offset(pgdp, iee_addr); ++ pudp = pud_offset(p4dp, iee_addr); ++ pmdp = pmd_offset(pudp, iee_addr); ++ iee_ptep = pte_offset_kernel(pmdp, iee_addr); ++ ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)lm_ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd(pmd_val(pmd) | PTE_DBM); ++ #ifdef CONFIG_KOI ++ if (pmd_valid(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT)) { ++ pmd = __pmd(pmd_val(pmd) | PMD_SECT_NG); ++ } ++ #endif ++ WRITE_ONCE(*pmdp, pmd); ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) & ~((unsigned long)0x1)) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(token_addr - IEE_OFFSET))); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~0x1); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ iee_ptep++; ++ token_addr += PAGE_SIZE; ++ token_page += PAGE_SIZE; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) & ~((unsigned long)0x1)) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(token_addr - IEE_OFFSET))); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*lm_ptep); ++ pte = __pte(pte_val(pte) | PTE_DBM); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~0x1); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++ #endif ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ lm_ptep++; ++ iee_ptep++; ++ token_addr += PAGE_SIZE; ++ token_page += PAGE_SIZE; ++ } ++ } ++#endif ++ dsb(ishst); ++ isb(); ++} ++ ++// Input is the lm vaddr of sensitive data. ++void set_iee_page(unsigned long addr, int order) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp = pud_offset(p4dp, addr); ++ pmd_t *pmdp; ++ pte_t *lm_ptep; ++ pte_t *iee_ptep; ++ unsigned long iee_addr; ++ int use_block_pmd = 0; ++ ++ pmdp = pmd_offset(pudp, addr); ++ ++ // Handling cont mapping. ++ if(pmd_val(*pmdp) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pmd_t *pmdp = pmd_offset(pudp, addr & CONT_PMD_MASK); ++ for(i = 0; i < CONT_PMDS; i++) ++ { ++ set_pmd(pmdp,__pmd(pmd_val(*pmdp) & ~PTE_CONT)); ++ pmdp++; ++ } ++ } ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp) && order < 9) ++ { ++ #ifndef CONFIG_PTP ++ struct page *page = pmd_page(*pmdp); ++ #endif ++ pte_t *pgtable = pte_alloc_one_kernel(&init_mm); ++ ++ if (!pgtable) ++ panic("Alloc pgtable error.\n"); ++ ++ #ifdef CONFIG_PTP ++ iee_split_huge_pmd(pmdp, pgtable); ++ #else ++ { ++ int i; ++ pte_t *ptep = pgtable; ++ for (i = 0; i < PMD_SIZE / PAGE_SIZE; i++, ptep++) { ++ pte_t entry; ++ pgprot_t pgprot = PAGE_KERNEL; ++ pgprot = __pgprot(pgprot_val(pgprot) | PTE_CONT); ++ ++ entry = mk_pte(page + i, pgprot); ++ set_pte(ptep, entry); ++ } ++ } ++ #endif ++ ++ spin_lock(&init_mm.page_table_lock); ++ if(pmd_leaf(READ_ONCE(*pmdp))) ++ { ++ smp_wmb(); ++ pmd_populate_kernel(&init_mm, pmdp, pgtable); ++ pgtable = NULL; ++ } ++ spin_unlock(&init_mm.page_table_lock); ++ ++ if(pgtable) ++ { ++ #ifdef CONFIG_PTP ++ iee_memset(pgtable, 0, PAGE_SIZE); ++ #endif ++ pte_free_kernel(&init_mm, pgtable); ++ } ++ } ++ else if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ } ++ ++ if(use_block_pmd) ++ lm_ptep = (pte_t *)pmdp; ++ else ++ lm_ptep = pte_offset_kernel(pmdp, addr); ++ ++ // Handling cont mapping. ++ if(pte_val(*lm_ptep) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pte_t *ptep = pte_offset_kernel(pmdp, addr & CONT_PTE_MASK); ++ if(order < CONFIG_ARM64_CONT_PTE_SHIFT) ++ { ++ for(i = 0; i < CONT_PTES; i++) ++ { ++ set_pte(ptep,__pte(pte_val(*ptep) & ~PTE_CONT)); ++ ptep++; ++ } ++ } ++ } ++ ++ iee_addr = ((unsigned long)addr + (unsigned long)iee_offset); ++ pgdp = pgd_offset_pgd(pgdir, iee_addr); ++ p4dp = p4d_offset(pgdp, iee_addr); ++ pudp = pud_offset(p4dp, iee_addr); ++ pmdp = pmd_offset(pudp, iee_addr); ++ iee_ptep = pte_offset_kernel(pmdp, iee_addr); ++ ++ iee_set_sensitive_pte(lm_ptep, iee_ptep, order, use_block_pmd); ++ ++ flush_tlb_kernel_range(addr, addr+PAGE_SIZE*(1 << order)); ++ isb(); ++} ++ ++// Input is the lm vaddr of sensitive data. ++void unset_iee_page(unsigned long addr, int order) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp = pud_offset(p4dp, addr); ++ pmd_t *pmdp = pmd_offset(pudp, addr); ++ pte_t *lm_ptep; ++ pte_t *iee_ptep; ++ unsigned long iee_addr; ++ int use_block_pmd = 0; ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ lm_ptep = (pte_t *)pmdp; ++ } ++ else ++ lm_ptep = pte_offset_kernel(pmdp, addr); ++ ++ iee_addr = ((unsigned long)addr + (unsigned long)iee_offset); ++ pgdp = pgd_offset_pgd(pgdir, iee_addr); ++ p4dp = p4d_offset(pgdp, iee_addr); ++ pudp = pud_offset(p4dp, iee_addr); ++ pmdp = pmd_offset(pudp, iee_addr); ++ iee_ptep = pte_offset_kernel(pmdp, iee_addr); ++ ++ iee_unset_sensitive_pte(lm_ptep, iee_ptep, order, use_block_pmd); ++ ++ flush_tlb_kernel_range(addr, addr+PAGE_SIZE*(1 << order)); ++ flush_tlb_kernel_range(iee_addr, iee_addr+PAGE_SIZE*(1 << order)); ++ isb(); ++} ++ ++void set_iee_page_valid(unsigned long addr) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ ++ pud_t *pudp = pud_offset(p4dp, addr); ++ ++ pmd_t *pmdp = pmd_offset(pudp, addr); ++ ++ pte_t *ptep = pte_offset_kernel(pmdp, addr); ++ pte_t pte = READ_ONCE(*ptep); ++ ++ if((addr < (PAGE_OFFSET + IEE_OFFSET)) | (addr > (PAGE_OFFSET + BIT(vabits_actual - 1)))) ++ return; ++ ++ pte = __pte(pte_val(pte) | 0x1); ++ set_pte(ptep, pte); ++} ++ ++void iee_set_logical_mem_ro(unsigned long addr) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp = pud_offset(p4dp, addr); ++ pmd_t *pmdp; ++ pte_t *ptep; ++ pte_t pte; ++ ++ pmdp = pmd_offset(pudp, addr); ++ ++ // Handling cont mapping. ++ if(pmd_val(*pmdp) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pmd_t *pmdp = pmd_offset(pudp, addr & CONT_PMD_MASK); ++ for(i = 0; i < CONT_PMDS; i++) ++ { ++ set_pmd(pmdp,__pmd(pmd_val(*pmdp) & ~PTE_CONT)); ++ pmdp++; ++ } ++ } ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp)) ++ { ++ #ifndef CONFIG_PTP ++ struct page *page = pmd_page(*pmdp); ++ #endif ++ pte_t *pgtable = pte_alloc_one_kernel(&init_mm); ++ ++ if (!pgtable) ++ panic("Alloc pgtable error.\n"); ++ ++ #ifdef CONFIG_PTP ++ iee_split_huge_pmd(pmdp, pgtable); ++ #else ++ { ++ int i; ++ pte_t *ptep = pgtable; ++ for (i = 0; i < PMD_SIZE / PAGE_SIZE; i++, ptep++) { ++ pte_t entry; ++ pgprot_t pgprot = PAGE_KERNEL; ++ pgprot = __pgprot(pgprot_val(pgprot) | PTE_CONT); ++ ++ entry = mk_pte(page + i, pgprot); ++ set_pte(ptep, entry); ++ } ++ } ++ #endif ++ ++ spin_lock(&init_mm.page_table_lock); ++ if(pmd_leaf(READ_ONCE(*pmdp))) ++ { ++ smp_wmb(); ++ pmd_populate_kernel(&init_mm, pmdp, pgtable); ++ pgtable = NULL; ++ } ++ spin_unlock(&init_mm.page_table_lock); ++ ++ if(pgtable) ++ { ++ #ifdef CONFIG_PTP ++ iee_memset(pgtable, 0, PAGE_SIZE); ++ #endif ++ pte_free_kernel(&init_mm, pgtable); ++ } ++ } ++ ++ ptep = pte_offset_kernel(pmdp, addr); ++ ++ // Handling cont mapping. ++ if(pte_val(*ptep) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pte_t *ptep = pte_offset_kernel(pmdp, addr & CONT_PTE_MASK); ++ for(i = 0; i < CONT_PTES; i++) ++ { ++ set_pte(ptep,__pte(pte_val(*ptep) & ~PTE_CONT)); ++ ptep++; ++ } ++ } ++ ++ pte = READ_ONCE(*ptep); ++ ++ if(addr < PAGE_OFFSET) ++ return; ++ ++ pte = __pte((pte_val(pte) | PTE_RDONLY) & ~PTE_DBM); ++ set_pte(ptep, pte); ++ flush_tlb_kernel_range(addr, addr+PAGE_SIZE); ++ isb(); ++} ++ ++void iee_set_token_page_valid(void *token, void *new, unsigned int order) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, (unsigned long)token); ++ p4d_t *p4dp = p4d_offset(pgdp, (unsigned long)token); ++ pud_t *pudp = pud_offset(p4dp, (unsigned long)token); ++ pmd_t *pmdp = pmd_offset(pudp, (unsigned long)token); ++ pte_t *ptep = pte_offset_kernel(pmdp, (unsigned long)token); ++ ++ iee_set_token(ptep, new, order); ++ ++ flush_tlb_kernel_range((unsigned long)token, (unsigned long)(token + (PAGE_SIZE * (1 << order)))); ++ flush_tlb_kernel_range((unsigned long)new, (unsigned long)(new + (PAGE_SIZE * (1 << order)))); ++ isb(); ++} ++ ++void iee_set_token_page_invalid(void *token_addr, void *token_page, unsigned long order) ++{ ++ unsigned long iee_addr = ((unsigned long)token_page + (unsigned long)iee_offset); ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, (unsigned long)token_addr); ++ p4d_t *p4dp = p4d_offset(pgdp, (unsigned long)token_addr); ++ pud_t *pudp = pud_offset(p4dp, (unsigned long)token_addr); ++ pmd_t *pmdp = pmd_offset(pudp, (unsigned long)token_addr); ++ pte_t *ptep = pte_offset_kernel(pmdp, (unsigned long)token_addr); ++ ++ if(token_page == NULL) ++ panic("Token of task_struct was unset.\n"); ++ ++ iee_unset_token(ptep, token_addr, token_page, order); ++ ++ flush_tlb_kernel_range((unsigned long)token_addr, (unsigned long)(token_addr + (PAGE_SIZE * (1 << order)))); ++ flush_tlb_kernel_range((unsigned long)token_page, (unsigned long)(token_page + (PAGE_SIZE * (1 << order)))); ++ flush_tlb_kernel_range(iee_addr, iee_addr + (PAGE_SIZE * (1 << order))); ++ isb(); ++} ++ ++void iee_set_kernel_ppage(unsigned long addr, int order) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp = pud_offset(p4dp, addr); ++ pmd_t *pmdp = pmd_offset(pudp, addr); ++ pte_t *ptep; ++ int use_block_pmd = 0; ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ ptep = (pte_t *)pmdp; ++ } ++ else ++ ptep = pte_offset_kernel(pmdp, addr); ++ ++ iee_set_pte_ppage(ptep, order, use_block_pmd); ++ ++ flush_tlb_kernel_range(addr, addr+(1 << order)*PAGE_SIZE); ++ isb(); ++} ++ ++void __init iee_set_kernel_upage_early(unsigned long addr, int order) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp = pud_offset(p4dp, addr); ++ pmd_t *pmdp; ++ pte_t *ptep; ++ int use_block_pmd = 0; ++ ++ pmdp = pmd_offset(pudp, addr); ++ ++ // Handling cont mapping. ++ if(pmd_val(*pmdp) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pmd_t *pmdp = pmd_offset(pudp, addr & CONT_PMD_MASK); ++ for(i = 0; i < CONT_PMDS; i++) ++ { ++ set_pmd(pmdp,__pmd(pmd_val(*pmdp) & ~PTE_CONT)); ++ pmdp++; ++ } ++ } ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp) && order < 9) ++ { ++ #ifdef CONFIG_PTP ++ pte_t *pgtable = __va(early_pgtable_alloc(PAGE_SHIFT)); ++ set_iee_page_valid(__phys_to_iee(__pa(pgtable))); ++ #else ++ struct page *page = pmd_page(*pmdp); ++ pte_t *pgtable = pte_alloc_one_kernel(&init_mm); ++ #endif ++ ++ if (!pgtable) ++ panic("Alloc pgtable error.\n"); ++ ++ #ifdef CONFIG_PTP ++ iee_split_huge_pmd(pmdp, pgtable); ++ #else ++ { ++ int i; ++ pte_t *ptep = pgtable; ++ for (i = 0; i < PMD_SIZE / PAGE_SIZE; i++, ptep++) { ++ pte_t entry; ++ pgprot_t pgprot = PAGE_KERNEL; ++ pgprot = __pgprot(pgprot_val(pgprot) | PTE_CONT); ++ ++ entry = mk_pte(page + i, pgprot); ++ set_pte(ptep, entry); ++ } ++ } ++ #endif ++ ++ spin_lock(&init_mm.page_table_lock); ++ if(pmd_leaf(READ_ONCE(*pmdp))) ++ { ++ smp_wmb(); ++ pmd_populate_kernel(&init_mm, pmdp, pgtable); ++ pgtable = NULL; ++ } ++ spin_unlock(&init_mm.page_table_lock); ++ ++ if(pgtable) ++ { ++ #ifdef CONFIG_PTP ++ iee_memset(pgtable, 0, PAGE_SIZE); ++ #endif ++ pte_free_kernel(&init_mm, pgtable); ++ } ++ } ++ else if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ } ++ ++ if(use_block_pmd) ++ ptep = (pte_t *)pmdp; ++ else ++ ptep = pte_offset_kernel(pmdp, addr); ++ ++ // Handling cont mapping. ++ if(pte_val(*ptep) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pte_t *ptep = pte_offset_kernel(pmdp, addr & CONT_PTE_MASK); ++ if(order < CONFIG_ARM64_CONT_PTE_SHIFT) ++ { ++ for(i = 0; i < CONT_PTES; i++) ++ { ++ set_pte(ptep,__pte(pte_val(*ptep) & ~PTE_CONT)); ++ ptep++; ++ } ++ } ++ } ++ ++ iee_set_pte_upage(ptep, order, use_block_pmd); ++ ++ flush_tlb_kernel_range(addr, addr+(1 << order)*PAGE_SIZE); ++ isb(); ++} ++ ++void iee_set_kernel_upage(unsigned long addr, int order) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp = pud_offset(p4dp, addr); ++ pmd_t *pmdp; ++ pte_t *ptep; ++ int use_block_pmd = 0; ++ ++ pmdp = pmd_offset(pudp, addr); ++ ++ // Handling cont mapping. ++ if(pmd_val(*pmdp) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pmd_t *pmdp = pmd_offset(pudp, addr & CONT_PMD_MASK); ++ for(i = 0; i < CONT_PMDS; i++) ++ { ++ set_pmd(pmdp,__pmd(pmd_val(*pmdp) & ~PTE_CONT)); ++ pmdp++; ++ } ++ } ++ ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp) && order < 9) ++ { ++ #ifndef CONFIG_PTP ++ struct page *page = pmd_page(*pmdp); ++ #endif ++ pte_t *pgtable = pte_alloc_one_kernel(&init_mm); ++ ++ if (!pgtable) ++ panic("Alloc pgtable error.\n"); ++ ++ #ifdef CONFIG_PTP ++ iee_split_huge_pmd(pmdp, pgtable); ++ #else ++ { ++ int i; ++ pte_t *ptep = pgtable; ++ for (i = 0; i < PMD_SIZE / PAGE_SIZE; i++, ptep++) { ++ pte_t entry; ++ pgprot_t pgprot = PAGE_KERNEL; ++ pgprot = __pgprot(pgprot_val(pgprot) | PTE_CONT); ++ ++ entry = mk_pte(page + i, pgprot); ++ set_pte(ptep, entry); ++ } ++ } ++ #endif ++ ++ spin_lock(&init_mm.page_table_lock); ++ if(pmd_leaf(READ_ONCE(*pmdp))) ++ { ++ smp_wmb(); ++ pmd_populate_kernel(&init_mm, pmdp, pgtable); ++ pgtable = NULL; ++ } ++ spin_unlock(&init_mm.page_table_lock); ++ ++ if(pgtable) ++ { ++ #ifdef CONFIG_PTP ++ iee_memset(pgtable, 0, PAGE_SIZE); ++ #endif ++ pte_free_kernel(&init_mm, pgtable); ++ } ++ } ++ else if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ } ++ ++ if(use_block_pmd) ++ ptep = (pte_t *)pmdp; ++ else ++ ptep = pte_offset_kernel(pmdp, addr); ++ ++ // Handling cont mapping. ++ if(pte_val(*ptep) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pte_t *ptep = pte_offset_kernel(pmdp, addr & CONT_PTE_MASK); ++ if(order < CONFIG_ARM64_CONT_PTE_SHIFT) ++ { ++ for(i = 0; i < CONT_PTES; i++) ++ { ++ set_pte(ptep,__pte(pte_val(*ptep) & ~PTE_CONT)); ++ ptep++; ++ } ++ } ++ } ++ ++ iee_set_pte_upage(ptep, order, use_block_pmd); ++ ++ flush_tlb_kernel_range(addr, addr+(1 << order)*PAGE_SIZE); ++ isb(); ++} +\ No newline at end of file +diff --git a/arch/arm64/kernel/iee/iee-gate.S b/arch/arm64/kernel/iee/iee-gate.S +new file mode 100644 +index 000000000000..2a24cac0b97b +--- /dev/null ++++ b/arch/arm64/kernel/iee/iee-gate.S +@@ -0,0 +1,326 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_IEE ++ ++SYM_FUNC_START(iee_read_tmp_page) ++ /* save daif, close irq */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++ /* disable PAN */ ++ msr pan, #0x0 ++ adrp x12, iee_offset ++ ldr x12, [x12, #:lo12:iee_offset] ++ add x11, x0, x12 /* x11 -> task_token(IEE) */ ++ ldr x0, [x11, #tmp_page_from_token_offset] ++ /* enable PAN */ ++ msr pan, #0x1 ++ /* restore daif */ ++ msr daif, x13 ++ ret ++SYM_FUNC_END(iee_read_tmp_page) ++ ++SYM_FUNC_START(iee_read_freeptr) ++ /* save daif, close irq */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++ /* disable PAN */ ++ msr pan, #0x0 ++ ldr x0, [x0] ++ /* enable PAN */ ++ msr pan, #0x1 ++ /* restore daif */ ++ msr daif, x13 ++ ret ++SYM_FUNC_END(iee_read_freeptr) ++ ++SYM_FUNC_START(iee_set_stack_freeptr) ++ /* save daif, close irq */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++ /* disable PAN */ ++ msr pan, #0x0 ++ str x1, [x0] ++ /* enable PAN */ ++ msr pan, #0x1 ++ /* restore daif */ ++ msr daif, x13 ++ ret ++SYM_FUNC_END(iee_set_stack_freeptr) ++ ++SYM_FUNC_START(iee_read_token_stack) ++ /* save daif, close irq */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++ /* disable PAN */ ++ msr pan, #0x0 ++ adrp x12, iee_offset ++ ldr x12, [x12, #:lo12:iee_offset] ++ add x11, x0, x12 /* x11 -> task_token(IEE) */ ++ ldr x0, [x11, #iee_from_token_offset] ++ /* enable PAN */ ++ msr pan, #0x1 ++ /* restore daif */ ++ msr daif, x13 ++ ret ++SYM_FUNC_END(iee_read_token_stack) ++ ++SYM_FUNC_START(iee_set_xchg_relaxed) ++ /* save daif, close irq */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++ /* disable PAN */ ++ msr pan, #0x0 ++ /* begin */ ++ adrp x2, iee_offset ++ ldr x2, [x2, #:lo12:iee_offset] ++ add x0, x0, x2 ++ prfm pstl1strm, [x0] ++12: ++ ldxr x3, [x0] ++ stxr w4, x1, [x0] ++ cbnz w4, 12b ++ mov x0, x3 ++ /* end */ ++ /* enable PAN */ ++ msr pan, #0x1 ++ /* restore daif */ ++ msr daif, x13 ++ ret ++SYM_FUNC_END(iee_set_xchg_relaxed) ++ ++SYM_FUNC_START(iee_set_cmpxchg_relaxed) ++ /* save daif, close irq */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++ /* disable PAN */ ++ msr pan, #0x0 ++ /* begin */ ++ adrp x9, iee_offset ++ ldr x9, [x9, #:lo12:iee_offset] ++ add x3, x0, x9 ++ prfm pstl1strm, [x3] ++11: ++ ldxr x0, [x3] ++ eor x4, x0, x1 ++ cbnz w4, 13f ++ stxr w4, x2, [x3] ++ cbnz w4, 11b ++13: ++ /* end */ ++ /* enable PAN */ ++ msr pan, #0x1 ++ /* restore daif */ ++ msr daif, x13 ++ ret ++SYM_FUNC_END(iee_set_cmpxchg_relaxed) ++ ++SYM_FUNC_START(iee_rw_gate) ++ /* save daif, close irq */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++ /* save lr */ ++ sub sp, sp, #16 ++ stp x29, x30, [sp] ++ bl iee_protected_rw_gate ++ /* restore lr */ ++ ldp x29, x30, [sp] ++ add sp, sp, #16 ++ /* restore daif */ ++ msr daif, x13 ++ ret ++SYM_FUNC_END(iee_rw_gate) ++#if defined(CONFIG_CREDP) || defined(CONFIG_KOI) ++EXPORT_SYMBOL(iee_rw_gate) ++#endif ++ ++ .pushsection ".iee.text.header", "ax" ++ ++SYM_FUNC_START(iee_protected_rw_gate) ++ /* disable PAN */ ++ msr pan, #0x0 ++ /* switch to iee stack */ ++ mrs x9, sp_el0 /* x9 -> task_struct */ ++ adrp x7, iee_offset ++ ldr x7, [x7, #:lo12:iee_offset] ++ add x11, x9, x7 /* x11 -> task_token(IEE) */ ++ // store kernel stack ++ mov x10, sp ++ str x10, [x11, #kernel_from_token_offset] ++ // load iee stack ++ ldr x10, [x11, #iee_from_token_offset] ++ mov sp, x10 ++#ifdef CONFIG_IEE_INTERRUPTABLE ++ isb ++ /* restore daif */ ++ msr daif, x13 ++ sub sp, sp, #16 ++ stp x11, x30, [sp] ++#else ++ sub sp, sp, #32 ++ stp x11, x7, [sp, #16] ++ stp x13, x30, [sp] ++#endif ++ /* call iee func */ ++ adrp x12, iee_funcs ++ add x12, x12, x0, lsl #3 ++ ldr x12, [x12, #:lo12:iee_funcs] ++ mov x0, x7 ++ blr x12 ++#ifdef CONFIG_IEE_INTERRUPTABLE ++ ldp x11, x30, [sp] ++ add sp, sp, #16 ++ /* store and disable daif */ ++ mrs x13, daif ++ msr daifset, #0x2 ++ isb ++#else ++ ldp x13, x30, [sp] ++ ldp x11, x7, [sp, #16] ++ add sp, sp, #32 ++#endif ++ /* switch to kernel stack */ ++ // load kernel stack ++ ldr x10, [x11, #kernel_from_token_offset] ++ mov sp, x10 ++ /* enable PAN */ ++ msr pan, #0x1 ++ ret ++SYM_FUNC_END(iee_protected_rw_gate) ++ ++ .popsection ++ ++#include ++#define BAD_IEE 4 ++#define BAD_IEE_SI 5 ++ ++#define SYS_TCR_EL1_HPD1 0x40000000000 ++#define SYS_TCR_EL1_A1 0x400000 ++ ++ .pushsection ".iee.exec_entry", "ax" ++ ++SYM_FUNC_START(iee_rwx_gate_entry) ++ /* Disable irq first. */ ++ mrs x15, daif // use x15 to restore daif ++ msr DAIFSet, #0x2 ++ ++ /* Set HPD1 = 1 to exec follwing codes in U RWX page */ ++ mrs x9, tcr_el1 ++ bic x9, x9, #SYS_TCR_EL1_HPD1 ++ bic x9, x9, #SYS_TCR_EL1_A1 ++ msr tcr_el1, x9 ++ isb ++ ++ b iee_rwx_gate_tramp ++SYM_FUNC_END(iee_rwx_gate_entry) ++EXPORT_SYMBOL(iee_rwx_gate_entry) ++ .popsection ++ ++#define IEE_TCR_MASK_0 0x3F ++#define IEE_TCR_MASK_32 0x100 ++#define IEE_TCR_MASK_48 0x100 ++#define USER_ASID_FLAG (UL(1) << 48) ++ ++ .pushsection ".iee.si_text", "awx" ++ ++SYM_FUNC_START(iee_rwx_gate_tramp) ++ /* Check tcr val. */ ++ mrs x10, tcr_el1 ++ adrp x12, iee_si_tcr // tcr val shall be const after init ++ ldr x12, [x12, #:lo12:iee_si_tcr] ++ cbz x12, 1f ++ cmp x12, x10 ++ b.ne 3f ++1: ++ mov x13, sp ++ /* if called by koi, skip stack switch */ ++#ifdef CONFIG_KOI ++ cmp x0, #IEE_SWITCH_TO_KERNEL ++ b.eq 4f ++ cmp x0, #IEE_SWITCH_TO_KOI ++ b.eq 5f ++#endif ++ ++ /* If iee hasn't been initialized, skip stack switch. */ ++ adrp x11, iee_init_done ++ ldr x10, [x11, #:lo12:iee_init_done] ++ cbz x10, 2f ++ ++ /* Switch to iee stack */ ++ mrs x9, sp_el0 // x9 -> task_struct ++ adrp x12, iee_si_offset ++ ldr x12, [x12, #:lo12:iee_si_offset] ++ add x11, x9, x12 // x11 -> task_token(IEE) ++ // load iee stack ++ ldr x10, [x11, #iee_from_token_offset] ++ mov sp, x10 ++ ++ /* x15 stores daif and x13 stores previous sp */ ++2: ++ stp x15, x13, [sp, #-32]! ++ stp x29, x30, [sp, #16] ++ bl iee_si_handler // enter actual handler ++ ldp x29, x30, [sp, #16] ++ ++ b iee_rwx_gate_exit // jump to iee exit ++3: ++ mov x0, sp ++ mov x1, #BAD_IEE_SI ++ mrs x2, esr_el1 ++ bl bad_mode ++ ASM_BUG() ++#ifdef CONFIG_KOI ++/* Handle KOI switch gates. */ ++4: ++ /* IEE_SWITCH_TO_KERNEL */ ++ mrs x9, ttbr1_el1 ++ bic x9, x9, #USER_ASID_FLAG // Set new ASID to even ++ adrp x11, iee_base_swapper_pg_dir ++ ldr x11, [x11, #:lo12:iee_base_swapper_pg_dir] ++ b 6f ++5: ++ /* IEE_SWITCH_TO_KOI */ ++ mov x11, x1 ++6: ++ ubfx x10, x9, #48, #16 // x10 -> new TTBR1 ASID ++ bfi x11, x10, #48, #16 ++ msr ttbr1_el1, x11 ++ isb ++ stp x15, x13, [sp, #-32]! ++ b iee_rwx_gate_exit ++#endif ++SYM_FUNC_END(iee_rwx_gate_tramp) ++ ++ .popsection ++ ++ .pushsection ".iee.exec_exit", "ax" ++ ++SYM_FUNC_START(iee_rwx_gate_exit) ++ ldp x15, x13, [sp], #32 ++ mov sp, x13 // switch to kernel stack ++ mrs x9, tcr_el1 ++ orr x9, x9, #SYS_TCR_EL1_HPD1 ++ orr x9, x9, #SYS_TCR_EL1_A1 ++ msr tcr_el1, x9 ++/* --------Page boundary-------- */ ++ isb ++ msr daif, x15 ++ isb ++ ret ++SYM_FUNC_END(iee_rwx_gate_exit) ++ ++ .popsection ++ ++#endif +diff --git a/arch/arm64/kernel/iee/iee-pgtable.c b/arch/arm64/kernel/iee/iee-pgtable.c +new file mode 100644 +index 000000000000..7ebbf247ad4d +--- /dev/null ++++ b/arch/arm64/kernel/iee/iee-pgtable.c +@@ -0,0 +1,356 @@ ++#include ++#include ++#include ++ ++#ifdef CONFIG_PTP ++void iee_set_tramp_pgd_pre_init(pgd_t *pgdp, pgd_t pgd) ++{ ++ iee_rw_gate(IEE_OP_SET_TRAMP_PGD, pgdp, pgd); ++} ++ ++inline void iee_set_bm_pte(pte_t *ptep, pte_t pte) ++{ ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ ++ // If it is pre init, write once. ++ // Else, write once will cause exception. So it is safe. ++ iee_rw_gate(IEE_OP_SET_BM_PTE, ptep, pte); ++ ++ /* ++ * Only if the new pte is valid and kernel, otherwise TLB maintenance ++ * or update_mmu_cache() have the necessary barriers. ++ */ ++ if (pte_valid_not_user(pte)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++inline void iee_set_fixmap_pte_pre_init(pte_t *ptep, pte_t pte) ++{ ++#ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++#endif ++ WRITE_ONCE(*ptep, pte); ++ ++ /* ++ * Only if the new pte is valid and kernel, otherwise TLB maintenance ++ * or update_mmu_cache() have the necessary barriers. ++ */ ++ if (pte_valid_not_user(pte)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++inline void iee_set_pte_at(struct mm_struct *mm, unsigned long addr, ++ pte_t *ptep, pte_t pte) ++{ ++ if (pte_present(pte) && pte_user_exec(pte) && !pte_special(pte)) ++ __sync_icache_dcache(pte); ++ ++ if (system_supports_mte() && ++ pte_present(pte) && pte_tagged(pte) && !pte_special(pte)) ++ mte_sync_tags(ptep, pte); ++ ++ __check_racy_pte_update(mm, ptep, pte); ++ ++ iee_set_pte_pre_init(ptep, pte); ++} ++ ++inline void iee_set_pte_at_delayed(struct mm_struct *mm, unsigned long addr, ++ pte_t *ptep, pte_t pte) ++{ ++ if (pte_present(pte) && pte_user_exec(pte) && !pte_special(pte)) ++ __sync_icache_dcache(pte); ++ ++ if (system_supports_mte() && ++ pte_present(pte) && pte_tagged(pte) && !pte_special(pte)) ++ mte_sync_tags(ptep, pte); ++ ++ __check_racy_pte_update(mm, ptep, pte); ++} ++ ++inline bool in_tramp_pgdir(void *addr) ++{ ++ return ((unsigned long)addr & PAGE_MASK) == ++ ((unsigned long)tramp_pg_dir & PAGE_MASK); ++} ++ ++inline void iee_set_fixmap_pmd_pre_init(pmd_t *pmdp, pmd_t pmd) ++{ ++#ifdef __PAGETABLE_PMD_FOLDED ++ if (in_swapper_pgdir(pmdp)) { ++ set_swapper_pgd((pgd_t *)pmdp, __pgd(pmd_val(pmd))); ++ return; ++ } ++#endif /* __PAGETABLE_PMD_FOLDED */ ++ WRITE_ONCE(*pmdp, pmd); ++ ++ if (pmd_valid(pmd)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++inline void iee_set_fixmap_pud_pre_init(pud_t *pudp, pud_t pud) ++{ ++#ifdef __PAGETABLE_PUD_FOLDED ++ if (in_swapper_pgdir(pudp)) { ++ set_swapper_pgd((pgd_t *)pudp, __pgd(pud_val(pud))); ++ return; ++ } ++#endif /* __PAGETABLE_PUD_FOLDED */ ++ WRITE_ONCE(*pudp, pud); ++ ++ if (pud_valid(pud)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++#endif //#ifdef CONFIG_PTP ++ ++inline void set_pte(pte_t *ptep, pte_t pte) ++{ ++#ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++#endif ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_OP_SET_PTE, ptep, pte); ++ dsb(ishst); ++ isb(); ++#else ++ WRITE_ONCE(*ptep, pte); ++ if (pte_valid_not_user(pte)) { ++ dsb(ishst); ++ isb(); ++ } ++#endif ++} ++ ++inline void set_pmd(pmd_t *pmdp, pmd_t pmd) ++{ ++#ifdef __PAGETABLE_PMD_FOLDED ++ if (in_swapper_pgdir(pmdp)) { ++ set_swapper_pgd((pgd_t *)pmdp, __pgd(pmd_val(pmd))); ++ return; ++ } ++#endif /* __PAGETABLE_PMD_FOLDED */ ++#ifdef CONFIG_KOI ++ pmdval_t val = pmd_val(pmd); ++ if (pmd_valid(pmd) && !(val & PMD_TABLE_BIT)) { ++ pmd = __pmd(val | PMD_SECT_NG); ++ } ++#endif ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_OP_SET_PMD, pmdp, pmd); ++#else ++ WRITE_ONCE(*pmdp, pmd); ++#endif ++ if (pmd_valid(pmd)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++inline void set_pud(pud_t *pudp, pud_t pud) ++{ ++#ifdef __PAGETABLE_PUD_FOLDED ++ if (in_swapper_pgdir(pudp)) { ++ set_swapper_pgd((pgd_t *)pudp, __pgd(pud_val(pud))); ++ return; ++ } ++#endif /* __PAGETABLE_PUD_FOLDED */ ++#ifdef CONFIG_KOI ++ pudval_t val = pud_val(pud); ++ if (pud_valid(pud) && !(val & PUD_TABLE_BIT)) { ++ // There is no PUD_SEC_NG, so we use PMD_SECT_NG instead. ++ pud = __pud(val | PMD_SECT_NG); ++ } ++#endif ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_OP_SET_PUD, pudp, pud); ++#else ++ WRITE_ONCE(*pudp, pud); ++#endif ++ if (pud_valid(pud)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++inline void set_p4d(p4d_t *p4dp, p4d_t p4d) ++{ ++ if (in_swapper_pgdir(p4dp)) ++ { ++ set_swapper_pgd((pgd_t *)p4dp, __pgd(p4d_val(p4d))); ++ return; ++ } ++ ++#ifdef CONFIG_PTP ++ if(in_tramp_pgdir(p4dp)) ++ { ++ iee_set_tramp_pgd_pre_init((pgd_t *)p4dp, __pgd(p4d_val(p4d))); ++ return; ++ } ++ iee_rw_gate(IEE_OP_SET_P4D, p4dp, p4d); ++#else ++ WRITE_ONCE(*p4dp, p4d); ++#endif ++ dsb(ishst); ++ isb(); ++} ++ ++#ifdef CONFIG_IEE ++inline void iee_set_pte_upage(pte_t *ptep, int order, int use_block_pmd) ++{ ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_OP_SET_PTE_U, ptep, order, use_block_pmd); ++#else ++ int i; ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd(pmd_val(pmd) | PMD_SECT_USER | PMD_SECT_NG); ++ WRITE_ONCE(*pmdp, pmd); ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(pte_val(pte) | PTE_USER | PTE_NG); ++ WRITE_ONCE(*ptep, pte); ++ ptep++; ++ } ++ } ++#endif ++ dsb(ishst); ++ isb(); ++} ++ ++inline void iee_set_pte_ppage(pte_t *ptep, int order, int use_block_pmd) ++{ ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_OP_SET_PTE_P, ptep, order, use_block_pmd); ++#else ++ int i; ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd(pmd_val(pmd) & ~PMD_SECT_USER & ~PMD_SECT_NG); ++ WRITE_ONCE(*pmdp, pmd); ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(pte_val(pte) & ~PTE_USER & ~PTE_NG); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*ptep, pte); ++ ptep++; ++ } ++ } ++#endif ++ dsb(ishst); ++ isb(); ++} ++ ++inline void iee_set_sensitive_pte(pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd) ++{ ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_SET_SENSITIVE_PTE, lm_ptep, iee_ptep, order, use_block_pmd); ++#else ++ int i; ++ if(use_block_pmd) ++ { ++ pmd_t pmd = __pmd(pte_val(READ_ONCE(*lm_ptep))); ++ pmd = __pmd((pmd_val(pmd) | PMD_SECT_RDONLY) & ~PTE_DBM); ++ WRITE_ONCE(*lm_ptep, __pte(pmd_val(pmd))); ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ iee_ptep++; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*lm_ptep); ++ pte = __pte((pte_val(pte) | PTE_RDONLY) & ~PTE_DBM); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | PTE_VALID); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*iee_ptep, pte); ++ lm_ptep++; ++ iee_ptep++; ++ } ++ } ++#endif ++ dsb(ishst); ++ isb(); ++} ++ ++inline void iee_unset_sensitive_pte(pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd) ++{ ++#ifdef CONFIG_PTP ++ iee_rw_gate(IEE_UNSET_SENSITIVE_PTE, lm_ptep, iee_ptep, order, use_block_pmd); ++#else ++ int i; ++ if(use_block_pmd) ++ { ++ pmd_t pmd = __pmd(pte_val(READ_ONCE(*lm_ptep))); ++ pmd = __pmd(pmd_val(pmd) | PTE_DBM); ++ WRITE_ONCE(*lm_ptep, __pte(pmd_val(pmd))); ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ iee_ptep++; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*lm_ptep); ++ pte = __pte(pte_val(pte) | PTE_DBM); ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ lm_ptep++; ++ iee_ptep++; ++ } ++ } ++#endif ++ dsb(ishst); ++ isb(); ++} ++#endif //#ifdef CONFIG_IEE +diff --git a/arch/arm64/kernel/iee/iee.c b/arch/arm64/kernel/iee/iee.c +new file mode 100644 +index 000000000000..b27b9451dd5d +--- /dev/null ++++ b/arch/arm64/kernel/iee/iee.c +@@ -0,0 +1,1427 @@ ++#include "linux/sched.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_IEE ++#include ++#endif ++ ++#ifdef CONFIG_CREDP ++#include ++#endif ++ ++#define is_cow_mapping(flags) (((flags) & (VM_SHARED | VM_MAYWRITE)) == VM_MAYWRITE) ++ ++#ifdef CONFIG_IEE ++extern struct cred init_cred; ++extern s64 memstart_addr; ++extern unsigned long highest_memmap_pfn; ++ ++void __iee_code _iee_set_swapper_pgd(unsigned long iee_offset, pgd_t *pgdp, pgd_t pgd); ++void __iee_code _iee_set_tramp_pgd(unsigned long iee_offset, pgd_t *pgdp, pgd_t pgd); ++void __iee_code _iee_set_pte(unsigned long iee_offset, pte_t *ptep, pte_t pte); ++void __iee_code _iee_set_pmd(unsigned long iee_offset, pmd_t *pmdp, pmd_t pmd); ++void __iee_code _iee_set_pud(unsigned long iee_offset, pud_t *pudp, pud_t pud); ++void __iee_code _iee_set_p4d(unsigned long iee_offset, p4d_t *p4dp, p4d_t p4d); ++void __iee_code _iee_set_bm_pte(unsigned long iee_offset, pte_t *ptep, pte_t pte); ++void __iee_code _iee_write_in_byte(unsigned long iee_offset, void *ptr, __u64 data, int length); ++void __iee_code _iee_set_cred_uid(unsigned long iee_offset, struct cred *cred, kuid_t uid); ++void __iee_code _iee_set_cred_gid(unsigned long iee_offset, struct cred *cred, kgid_t gid); ++void __iee_code _iee_copy_cred(unsigned long iee_offset, struct cred *old, struct cred *new); ++void __iee_code _iee_set_cred_suid(unsigned long iee_offset, struct cred *cred, kuid_t suid); ++void __iee_code _iee_set_cred_sgid(unsigned long iee_offset, struct cred *cred, kgid_t sgid); ++void __iee_code _iee_set_cred_euid(unsigned long iee_offset, struct cred *cred, kuid_t euid); ++void __iee_code _iee_set_cred_egid(unsigned long iee_offset, struct cred *cred, kgid_t egid); ++void __iee_code _iee_set_cred_fsuid(unsigned long iee_offset, struct cred *cred, kuid_t fsuid); ++void __iee_code _iee_set_cred_fsgid(unsigned long iee_offset, struct cred *cred, kgid_t fsgid); ++void __iee_code _iee_set_cred_user(unsigned long iee_offset, struct cred *cred, struct user_struct *user); ++void __iee_code _iee_set_cred_user_ns(unsigned long iee_offset, struct cred *cred, struct user_namespace *user_ns); ++void __iee_code _iee_set_cred_group_info(unsigned long iee_offset, struct cred *cred, struct group_info *group_info); ++void __iee_code _iee_set_cred_securebits(unsigned long iee_offset, struct cred *cred, unsigned securebits); ++void __iee_code _iee_set_cred_cap_inheritable(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_inheritable); ++void __iee_code _iee_set_cred_cap_permitted(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_permitted); ++void __iee_code _iee_set_cred_cap_effective(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_effective); ++void __iee_code _iee_set_cred_cap_bset(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_bset); ++void __iee_code _iee_set_cred_cap_ambient(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_ambient); ++void __iee_code _iee_set_cred_jit_keyring(unsigned long iee_offset, struct cred *cred, unsigned char jit_keyring); ++void __iee_code _iee_set_cred_session_keyring(unsigned long iee_offset, struct cred *cred, struct key *session_keyring); ++void __iee_code _iee_set_cred_process_keyring(unsigned long iee_offset, struct cred *cred, struct key *process_keyring); ++void __iee_code _iee_set_cred_thread_keyring(unsigned long iee_offset, struct cred *cred, struct key *thread_keyring); ++void __iee_code _iee_set_cred_request_key_auth(unsigned long iee_offset, struct cred *cred, struct key *request_key_auth); ++void __iee_code _iee_set_cred_non_rcu(unsigned long iee_offset, struct cred *cred, int non_rcu); ++void __iee_code _iee_set_cred_atomic_set_usage(unsigned long iee_offset, struct cred *cred, int i); ++bool __iee_code _iee_set_cred_atomic_op_usage(unsigned long iee_offset, struct cred *cred, int flag); ++void __iee_code _iee_set_cred_security(unsigned long iee_offset, struct cred *cred, void *security); ++void __iee_code _iee_set_cred_rcu(unsigned long iee_offset, struct cred *cred, struct rcu_head *rcu); ++void __iee_code _iee_memset(unsigned long iee_offset, void *ptr, int data, size_t n); ++void __iee_code _iee_set_track(unsigned long iee_offset, struct track *ptr, struct track *data); ++void __iee_code _iee_set_freeptr(unsigned long iee_offset, void **pptr, void *ptr); ++void __iee_code _iee_set_pte_upage(unsigned long iee_offset, pte_t *ptep, int order, int use_block_pmd); ++void __iee_code _iee_set_pte_ppage(unsigned long iee_offset, pte_t *ptep, int order, int use_block_pmd); ++void __iee_code _iee_set_token_pgd(unsigned long iee_offset, struct task_struct *tsk, pgd_t *pgd); ++void __iee_code _iee_init_token(unsigned long iee_offset, struct task_struct *tsk, void *iee_stack, void *tmp_page); ++void __iee_code _iee_invalidate_token(unsigned long iee_offset, struct task_struct *tsk); ++void __iee_code _iee_validate_token(unsigned long iee_offset, struct task_struct *tsk); ++void __iee_code _iee_set_sensitive_pte(unsigned long iee_offset, pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd); ++void __iee_code _iee_unset_sensitive_pte(unsigned long iee_offset, pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd); ++void __iee_code _iee_set_token(unsigned long iee_offset, pte_t *ptep, void *new, unsigned long order, int use_block_pmd); ++void __iee_code _iee_unset_token(unsigned long iee_offset, pte_t *ptep, void *token_addr, void *token_page, unsigned long order); ++void __iee_code _iee_copy_pte_range(unsigned long iee_offset, pte_t *new_dst, pte_t *old_dst, pte_t *src_pte, struct vm_area_struct *src_vma, unsigned long dst_vm_flags, pte_t *end_pte); ++void __iee_code _iee_split_huge_pmd(unsigned long iee_offset, pmd_t *pmdp, pte_t *pgtable); ++#ifdef CONFIG_CREDP ++void __iee_code _iee_commit_cred(unsigned long iee_offset, struct cred *new); ++void __iee_code _iee_copy_cred_kernel(unsigned long iee_offset, struct cred *old, struct cred *new); ++#endif ++#ifdef CONFIG_KOI ++unsigned long __iee_code _iee_read_koi_stack(unsigned long iee_offset, struct task_struct *tsk); ++void __iee_code _iee_write_koi_stack(unsigned long iee_offset, struct task_struct *tsk, unsigned long koi_stack); ++unsigned long __iee_code _iee_read_token_ttbr1(unsigned long iee_offset, struct task_struct *tsk); ++void __iee_code _iee_write_token_ttbr1(unsigned long iee_offset, struct task_struct *tsk, unsigned long current_ttbr1); ++unsigned long __iee_code _iee_read_koi_kernel_stack(unsigned long iee_offset, struct task_struct *tsk); ++void __iee_code _iee_write_koi_kernel_stack(unsigned long iee_offset, struct task_struct *tsk, unsigned long kernel_stack); ++unsigned long __iee_code _iee_read_koi_stack_base(unsigned long iee_offset, struct task_struct *tsk); ++void __iee_code _iee_write_koi_stack_base(unsigned long iee_offset, struct task_struct *tsk, unsigned long koi_stack_base); ++void __iee_code _iee_set_koi_pgd(unsigned long iee_offset, unsigned long koi_pgd_addr); ++#endif ++ ++static void inline _iee_set_pte_single(pte_t *ptep, pte_t pte, unsigned long iee_offset); ++static pteval_t inline _iee_set_cmpxchg_relaxed(pte_t *ptep, pteval_t old_pteval, pteval_t new_pteval, unsigned long iee_offset); ++ ++// Define the function pointer type for wrapper functions. ++// Each function pointer conforms to a standardized calling convention ++// using a variable argument list (va_list) as its parameter. ++// This allows dynamic invocation of different functions with various arguments. ++ ++typedef void (*iee_func)(void); ++iee_func iee_funcs[] = { ++ (iee_func)_iee_write_in_byte, ++ (iee_func)_iee_set_pte, ++ (iee_func)_iee_set_pmd, ++ (iee_func)_iee_set_pud, ++ (iee_func)_iee_set_p4d, ++ (iee_func)_iee_set_bm_pte, ++ (iee_func)_iee_set_swapper_pgd, ++ (iee_func)_iee_set_tramp_pgd, ++ (iee_func)_iee_copy_cred, ++ (iee_func)_iee_set_cred_uid, ++ (iee_func)_iee_set_cred_gid, ++ (iee_func)_iee_set_cred_suid, ++ (iee_func)_iee_set_cred_sgid, ++ (iee_func)_iee_set_cred_euid, ++ (iee_func)_iee_set_cred_egid, ++ (iee_func)_iee_set_cred_fsuid, ++ (iee_func)_iee_set_cred_fsgid, ++ (iee_func)_iee_set_cred_user, ++ (iee_func)_iee_set_cred_user_ns, ++ (iee_func)_iee_set_cred_group_info, ++ (iee_func)_iee_set_cred_securebits, ++ (iee_func)_iee_set_cred_cap_inheritable, ++ (iee_func)_iee_set_cred_cap_permitted, ++ (iee_func)_iee_set_cred_cap_effective, ++ (iee_func)_iee_set_cred_cap_bset, ++ (iee_func)_iee_set_cred_cap_ambient, ++ (iee_func)_iee_set_cred_jit_keyring, ++ (iee_func)_iee_set_cred_session_keyring, ++ (iee_func)_iee_set_cred_process_keyring, ++ (iee_func)_iee_set_cred_thread_keyring, ++ (iee_func)_iee_set_cred_request_key_auth, ++ (iee_func)_iee_set_cred_non_rcu, ++ (iee_func)_iee_set_cred_atomic_set_usage, ++ (iee_func)_iee_set_cred_atomic_op_usage, ++ (iee_func)_iee_set_cred_security, ++ (iee_func)_iee_set_cred_rcu, ++ (iee_func)_iee_memset, ++ (iee_func)_iee_set_track, ++ (iee_func)_iee_set_freeptr, ++ (iee_func)_iee_set_pte_upage, ++ (iee_func)_iee_set_pte_ppage, ++ (iee_func)_iee_set_token_pgd, ++ (iee_func)_iee_init_token, ++ (iee_func)_iee_invalidate_token, ++ (iee_func)_iee_set_sensitive_pte, ++ (iee_func)_iee_unset_sensitive_pte, ++ (iee_func)_iee_set_token, ++ (iee_func)_iee_unset_token, ++ (iee_func)_iee_copy_pte_range, ++ (iee_func)_iee_split_huge_pmd, ++ (iee_func)_iee_validate_token, ++#ifdef CONFIG_KOI ++ (iee_func)_iee_read_koi_stack, ++ (iee_func)_iee_write_koi_stack, ++ (iee_func)_iee_read_token_ttbr1, ++ (iee_func)_iee_write_token_ttbr1, ++ (iee_func)_iee_read_koi_kernel_stack, ++ (iee_func)_iee_write_koi_kernel_stack, ++ (iee_func)_iee_read_koi_stack_base, ++ (iee_func)_iee_write_koi_stack_base, ++ (iee_func)_iee_set_koi_pgd, ++#endif ++#ifdef CONFIG_CREDP ++ (iee_func)_iee_commit_cred, ++ (iee_func)_iee_copy_cred_kernel, ++#endif ++ NULL ++}; ++ ++#ifdef CONFIG_KOI ++unsigned long __iee_code _iee_read_koi_stack(unsigned long iee_offset, struct task_struct *tsk) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ return (unsigned long)token->koi_stack; ++} ++ ++void __iee_code _iee_write_koi_stack(unsigned long iee_offset, struct task_struct *tsk, unsigned long koi_stack) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ token->koi_stack = (void *)koi_stack; ++} ++ ++unsigned long __iee_code _iee_read_token_ttbr1(unsigned long iee_offset, struct task_struct *tsk) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ return token->current_ttbr1; ++} ++ ++void __iee_code _iee_write_token_ttbr1(unsigned long iee_offset, struct task_struct *tsk, unsigned long current_ttbr1) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ token->current_ttbr1 = current_ttbr1; ++} ++ ++unsigned long __iee_code _iee_read_koi_kernel_stack(unsigned long iee_offset, struct task_struct *tsk) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ return (unsigned long)token->koi_kernel_stack; ++} ++ ++void __iee_code _iee_write_koi_kernel_stack(unsigned long iee_offset, struct task_struct *tsk, unsigned long kernel_stack) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ token->koi_kernel_stack = (void *)kernel_stack; ++} ++ ++unsigned long __iee_code _iee_read_koi_stack_base(unsigned long iee_offset, struct task_struct *tsk) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ return (unsigned long)token->koi_stack_base; ++} ++ ++void __iee_code _iee_write_koi_stack_base(unsigned long iee_offset, struct task_struct *tsk, unsigned long koi_stack_base) ++{ ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ token->koi_stack_base = (void *)koi_stack_base; ++} ++ ++static inline void iee_set_koi_pgd_writeable(unsigned long koi_pgd_addr, unsigned long iee_si_addr) ++{ ++ pgd_t *pgdir = (pgd_t *)koi_pgd_addr; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, iee_si_addr); ++ p4d_t *p4dp = p4d_offset(pgdp, iee_si_addr); ++ pud_t *pudp = pud_offset(p4dp, iee_si_addr); ++ pmd_t *pmdp = pmd_offset(pudp, iee_si_addr); ++ pte_t *ptep = pte_offset_kernel(pmdp, iee_si_addr); ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(pte_val(pte) | PTE_DBM); ++ WRITE_ONCE(*((pte_t *)(__phys_to_iee(__pa(ptep)))), pte); ++} ++/* ++ * Set IEE SI codes U RWX here to avoid IEE DEP checking fault. ++ * Mark koi pgd in the same time. ++ */ ++void __iee_code _iee_set_koi_pgd(unsigned long iee_offset, unsigned long koi_pgd_addr) ++{ ++ // IEE SI codes are 2 pages starting at __iee_si_start. ++ unsigned long iee_si_addr = (unsigned long)__iee_si_start; ++ iee_set_koi_pgd_writeable(koi_pgd_addr, iee_si_addr); ++ iee_si_addr += PAGE_SIZE; ++ iee_set_koi_pgd_writeable(koi_pgd_addr, iee_si_addr); ++ // Use DBM=0, AP[7]=0 to mark this page as a koi pgd in IEE. ++} ++#endif ++ ++void __iee_code _iee_split_huge_pmd(unsigned long iee_offset, pmd_t *pmdp, pte_t *pgtable) ++{ ++ int i; ++ struct page *page = pmd_page(*pmdp); ++ pte_t *ptep = (pte_t *)((unsigned long)pgtable + (unsigned long)iee_offset); ++ ++ if(pmd_val(*pmdp) & PMD_TABLE_BIT) ++ panic("Error: split a pgtable which is not a huge one.\n"); ++ ++ for (i = 0; i < PMD_SIZE / PAGE_SIZE; i++, ptep++) { ++ pte_t entry; ++ pgprot_t pgprot = PAGE_KERNEL; ++ pgprot = __pgprot(pgprot_val(pgprot) | PTE_CONT); ++ ++ entry = mk_pte(page + i, pgprot); ++ WRITE_ONCE(*ptep, entry); ++ } ++} ++ ++void __iee_code _iee_copy_pte_range(unsigned long iee_offset, pte_t *new_dst, pte_t *old_dst, pte_t *src_pte, struct vm_area_struct *src_vma, unsigned long dst_vm_flags, pte_t *end_pte) ++{ ++ pte_t pte, tmp; ++ swp_entry_t entry; ++ tmp = __pte(0); ++ while(src_pte < end_pte) ++ { ++ if (!pte_none(*src_pte) && unlikely(!pte_present(*src_pte))) ++ { ++ pte = *src_pte; ++ entry = pte_to_swp_entry(pte); ++ if (likely(!non_swap_entry(entry))) ++ ; ++ else if(is_migration_entry(entry)) ++ { ++ if (is_write_migration_entry(entry) && ++ is_cow_mapping(dst_vm_flags)) ++ { ++ make_migration_entry_read(&entry); ++ pte = swp_entry_to_pte(entry); ++ if (pte_swp_soft_dirty(*src_pte)) ++ pte = pte_swp_mksoft_dirty(pte); ++ if (pte_swp_uffd_wp(*src_pte)) ++ pte = pte_swp_mkuffd_wp(pte); ++ _iee_set_pte_single(src_pte, pte, iee_offset); ++ } ++ } ++ else ++ { ++ if (is_write_device_private_entry(entry) && ++ is_cow_mapping(dst_vm_flags)) { ++ make_device_private_entry_read(&entry); ++ pte = swp_entry_to_pte(entry); ++ if (pte_swp_uffd_wp(*src_pte)) ++ pte = pte_swp_mkuffd_wp(pte); ++ _iee_set_pte_single(src_pte, pte, iee_offset); ++ } ++ } ++ } ++ else if(!pte_none(*src_pte) && likely(pte_present(*src_pte))) ++ { ++ struct page *page = NULL; ++ #ifdef CONFIG_ARCH_HAS_PTE_SPECIAL ++ if (likely(!pte_special(*src_pte))) ++ { ++ if (unlikely(pte_pfn(*src_pte) > highest_memmap_pfn)) ++ page = NULL; ++ else ++ page = pte_page(*src_pte); ++ } ++ #else ++ if((!unlikely(src_vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP)) || ((src_vma->vm_flags & VM_MIXEDMAP) && pfn_valid(pte_pfn(*src_pte))) || (!(src_vma->vm_flags & VM_MIXEDMAP) && !(pfn == src_vma->vm_pgoff + off) && is_cow_mapping(src_vma->vm_flags))) && !is_zero_pfn(pte_pfn(*src_pte)) && !unlikely(pte_pfn(*src_pte) > highest_memmap_pfn)) ++ page = pte_page(*src_pte); ++ #endif ++ if(!(page) || (likely(!atomic_read(&(src_vma->vm_mm)->has_pinned))) || (likely(!page_maybe_dma_pinned(page))) || (!PageAnon(page))) ++ { ++ if (is_cow_mapping(src_vma->vm_flags) && pte_write(*src_pte)) ++ { ++ pte_t old_pte, new_pte; ++ ++ new_pte = READ_ONCE(*src_pte); ++ do { ++ old_pte = new_pte; ++ new_pte = pte_wrprotect(new_pte); ++ #ifdef CONFIG_KOI ++ if (pte_valid(old_pte)) ++ old_pte = __pte(pte_val(old_pte) | PTE_NG); ++ if (pte_valid(new_pte)) ++ new_pte = __pte(pte_val(new_pte) | PTE_NG); ++ #endif ++ _iee_set_cmpxchg_relaxed(src_pte, pte_val(old_pte), pte_val(new_pte), iee_offset); ++ } while (pte_val(new_pte) != pte_val(old_pte)); ++ } ++ } ++ } ++ if(!pte_none(*new_dst)) ++ { ++ _iee_set_pte_single(old_dst, *new_dst, iee_offset); ++ WRITE_ONCE(*new_dst, __pte(0)); ++ } ++ old_dst++; ++ src_pte++; ++ new_dst++; ++ } ++} ++ ++void __iee_code _iee_set_sensitive_pte(unsigned long iee_offset, pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd) ++{ ++ int i; ++ ++ lm_ptep = (pte_t *)((unsigned long)lm_ptep + iee_offset); ++ iee_ptep = (pte_t *)((unsigned long)iee_ptep + iee_offset); ++ if(use_block_pmd) ++ { ++ pmd_t pmd = __pmd(pte_val(READ_ONCE(*lm_ptep))); ++ pmd = __pmd((pmd_val(pmd) | PMD_SECT_RDONLY) & ~PTE_DBM); ++ WRITE_ONCE(*lm_ptep, __pte(pmd_val(pmd))); ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ iee_ptep++; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*lm_ptep); ++ pte = __pte((pte_val(pte) | PTE_RDONLY) & ~PTE_DBM); ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ lm_ptep++; ++ iee_ptep++; ++ } ++ } ++} ++ ++void __iee_code _iee_unset_sensitive_pte(unsigned long iee_offset, pte_t *lm_ptep, pte_t *iee_ptep, int order, int use_block_pmd) ++{ ++ int i; ++ ++ lm_ptep = (pte_t *)((unsigned long)lm_ptep + iee_offset); ++ iee_ptep = (pte_t *)((unsigned long)iee_ptep + iee_offset); ++ if(use_block_pmd) ++ { ++ pmd_t pmd = __pmd(pte_val(READ_ONCE(*lm_ptep))); ++ pmd = __pmd(pmd_val(pmd) | PTE_DBM); ++ WRITE_ONCE(*lm_ptep, __pte(pmd_val(pmd))); ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ iee_ptep++; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*lm_ptep); ++ pte = __pte(pte_val(pte) | PTE_DBM); ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ lm_ptep++; ++ iee_ptep++; ++ } ++ } ++} ++ ++void __iee_code _iee_set_token(unsigned long iee_offset, pte_t *ptep, void *new, unsigned long order, int use_block_pmd) ++{ ++ int i; ++ pgd_t *pgdir; ++ pgd_t *pgdp; ++ p4d_t *p4dp; ++ pud_t *pudp; ++ pmd_t *pmdp; ++ pte_t *lm_ptep; ++ pte_t *iee_ptep; ++ unsigned long iee_addr; ++ ++ pgdir = swapper_pg_dir; ++ ++ pgdp = pgd_offset_pgd(pgdir, (unsigned long)new); ++ p4dp = p4d_offset(pgdp, (unsigned long)new); ++ pudp = pud_offset(p4dp, (unsigned long)new); ++ pmdp = pmd_offset(pudp, (unsigned long)new); ++ if(use_block_pmd) ++ lm_ptep = (pte_t *)pmdp; ++ else ++ lm_ptep = pte_offset_kernel(pmdp, (unsigned long)new); ++ // Handling cont mapping. ++ if(pte_val(*lm_ptep) & PTE_CONT) ++ { ++ // The beginning of cont mapping. ++ int i; ++ pte_t *ptep = (pte_t *)((unsigned long)pte_offset_kernel(pmdp, (unsigned long)new & CONT_PTE_MASK) + iee_offset); ++ if(order < CONFIG_ARM64_CONT_PTE_SHIFT) ++ { ++ for(i = 0; i < CONT_PTES; i++) ++ { ++ WRITE_ONCE(*ptep,__pte(pte_val(*ptep) & ~PTE_CONT)); ++ ptep++; ++ } ++ } ++ } ++ ++ iee_addr = ((unsigned long)new + (unsigned long)iee_offset); ++ pgdp = pgd_offset_pgd(pgdir, iee_addr); ++ p4dp = p4d_offset(pgdp, iee_addr); ++ pudp = pud_offset(p4dp, iee_addr); ++ pmdp = pmd_offset(pudp, iee_addr); ++ iee_ptep = pte_offset_kernel(pmdp, iee_addr); ++ ++ ptep = (pte_t *)((unsigned long)ptep + iee_offset); ++ lm_ptep = (pte_t *)((unsigned long)lm_ptep + iee_offset); ++ iee_ptep = (pte_t *)((unsigned long)iee_ptep + iee_offset); ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)lm_ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd((pmd_val(pmd) | PMD_SECT_RDONLY) & ~PTE_DBM); ++ WRITE_ONCE(*pmdp, pmd); ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) | PTE_VALID) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(new))); ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ iee_ptep++; ++ new += PAGE_SIZE; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) | PTE_VALID) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(new))); ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*lm_ptep); ++ pte = __pte((pte_val(pte) | PTE_RDONLY) & ~PTE_DBM); ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) | PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ lm_ptep++; ++ iee_ptep++; ++ new += PAGE_SIZE; ++ } ++ } ++} ++ ++void __iee_code _iee_unset_token(unsigned long iee_offset, pte_t *ptep, void *token_addr, void *token_page, unsigned long order) ++{ ++ int i; ++ pgd_t *pgdir; ++ pgd_t *pgdp; ++ p4d_t *p4dp; ++ pud_t *pudp; ++ pmd_t *pmdp; ++ pte_t *lm_ptep; ++ pte_t *iee_ptep; ++ unsigned long iee_addr; ++ int use_block_pmd = 0; ++ ++ pgdir = swapper_pg_dir; ++ ++ pgdp = pgd_offset_pgd(pgdir, (unsigned long)token_page); ++ p4dp = p4d_offset(pgdp, (unsigned long)token_page); ++ pudp = pud_offset(p4dp, (unsigned long)token_page); ++ pmdp = pmd_offset(pudp, (unsigned long)token_page); ++ // Use Block Descriptor. ++ if(pmd_leaf(*pmdp)) ++ { ++ use_block_pmd = 1; ++ lm_ptep = (pte_t *)pmdp; ++ } ++ else ++ lm_ptep = pte_offset_kernel(pmdp, (unsigned long)token_page); ++ ++ iee_addr = ((unsigned long)token_page + (unsigned long)iee_offset); ++ pgdp = pgd_offset_pgd(pgdir, iee_addr); ++ p4dp = p4d_offset(pgdp, iee_addr); ++ pudp = pud_offset(p4dp, iee_addr); ++ pmdp = pmd_offset(pudp, iee_addr); ++ iee_ptep = pte_offset_kernel(pmdp, iee_addr); ++ ++ ptep = (pte_t *)((unsigned long)ptep + iee_offset); ++ lm_ptep = (pte_t *)((unsigned long)lm_ptep + iee_offset); ++ iee_ptep = (pte_t *)((unsigned long)iee_ptep + iee_offset); ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)lm_ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd(pmd_val(pmd) | PTE_DBM); ++ WRITE_ONCE(*pmdp, pmd); ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) & ~PTE_VALID) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(token_addr - IEE_OFFSET))); ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ iee_ptep++; ++ token_addr += PAGE_SIZE; ++ token_page += PAGE_SIZE; ++ } ++ } ++ else ++ { ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) & ~PTE_VALID) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(token_addr - IEE_OFFSET))); ++ WRITE_ONCE(*ptep, pte); ++ pte = READ_ONCE(*lm_ptep); ++ pte = __pte(pte_val(pte) | PTE_DBM); ++ WRITE_ONCE(*lm_ptep, pte); ++ pte = READ_ONCE(*iee_ptep); ++ pte = __pte(pte_val(pte) & ~PTE_VALID); ++ WRITE_ONCE(*iee_ptep, pte); ++ ptep++; ++ lm_ptep++; ++ iee_ptep++; ++ token_addr += PAGE_SIZE; ++ token_page += PAGE_SIZE; ++ } ++ } ++} ++ ++void __iee_code _iee_invalidate_token(unsigned long iee_offset, struct task_struct *tsk) ++{ ++ struct task_token *token = (struct task_token *)((unsigned long)tsk + (unsigned long)iee_offset); ++ token->pgd = NULL; ++ token->valid = false; ++ token->kernel_stack = NULL; ++#ifdef CONFIG_KOI ++ token->koi_kernel_stack = NULL; ++ token->koi_stack = NULL; ++ token->koi_stack_base = NULL; ++ token->current_ttbr1 = 0; ++#endif ++} ++ ++void __iee_code _iee_validate_token(unsigned long iee_offset, struct task_struct *tsk) ++{ ++ struct task_token *token = (struct task_token *)((unsigned long)tsk + (unsigned long)iee_offset); ++ token->valid = true; ++} ++ ++#ifdef CONFIG_KOI ++extern unsigned long koi_swapper_ttbr1; ++#endif ++void __iee_code _iee_init_token(unsigned long iee_offset, struct task_struct *tsk, void *iee_stack, void *tmp_page) ++{ ++ struct task_token *token; ++ ++ token = (struct task_token *)((unsigned long)tsk + (unsigned long)iee_offset); ++ token->iee_stack = iee_stack; ++ token->tmp_page = tmp_page; ++#ifdef CONFIG_KOI ++ token->koi_kernel_stack = NULL; ++ token->koi_stack = NULL; ++ token->koi_stack_base = NULL; ++ token->current_ttbr1 = 0; ++#endif ++} ++ ++void __iee_code _iee_set_token_pgd(unsigned long iee_offset, struct task_struct *tsk, pgd_t *pgd) ++{ ++ struct task_token *token; ++ ++ token = (struct task_token *)((unsigned long)tsk + (unsigned long)iee_offset); ++ token->pgd = pgd; ++} ++ ++void __iee_code _iee_set_freeptr(unsigned long iee_offset, void **pptr, void *ptr) ++{ ++ pptr = (void **)((unsigned long)pptr + (unsigned long)iee_offset); ++ *pptr = ptr; ++} ++ ++#pragma GCC push_options ++#pragma GCC optimize("O0") ++void __iee_code _iee_memset(unsigned long iee_offset, void *ptr, int data, size_t n) ++{ ++ char *_ptr; ++ ++ _ptr = (char *)((unsigned long)ptr + (unsigned long)iee_offset); ++ ++ while (n--) ++ *_ptr++ = data; ++} ++ ++void __iee_code _iee_memcpy(unsigned long iee_offset, void *dst, void *src, size_t n) ++{ ++ char *_dst, *_src; ++ ++ _dst = (char *)((unsigned long)dst + (unsigned long)iee_offset); ++ _src = (char *)src; ++ ++ while(n--) ++ *_dst++ = *_src++; ++} ++#pragma GCC pop_options ++ ++void __iee_code _iee_set_track(unsigned long iee_offset, struct track *ptr, struct track *data) ++{ ++ _iee_memcpy(iee_offset, ptr, data, sizeof(struct track)); ++} ++ ++void __iee_code _iee_set_cred_rcu(unsigned long iee_offset, struct cred *cred, struct rcu_head *rcu) ++{ ++ if(cred == &init_cred) ++ cred = (struct cred *)__phys_to_iee(__pa_symbol(cred)); ++ else ++ cred = (struct cred *)((unsigned long)cred + (unsigned long)iee_offset); ++ #ifdef CONFIG_CREDP ++ *((struct rcu_head **)(&(cred->rcu.func))) = rcu; ++ #endif ++} ++ ++void __iee_code _iee_set_cred_security(unsigned long iee_offset, struct cred *cred, void *security) ++{ ++ if(cred == &init_cred) ++ cred = (struct cred *)__phys_to_iee(__pa_symbol(cred)); ++ else ++ cred = (struct cred *)((unsigned long)cred + (unsigned long)iee_offset); ++ cred->security = security; ++} ++ ++bool __iee_code _iee_set_cred_atomic_op_usage(unsigned long iee_offset, struct cred *cred, int flag) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ switch (flag) ++ { ++ case AT_INC: { ++ atomic_inc(&cred->usage); ++ return 0; ++ } ++ case AT_INC_NOT_ZERO: { ++ return atomic_inc_not_zero(&cred->usage); ++ } ++ case AT_DEC_AND_TEST: { ++ return atomic_dec_and_test(&cred->usage); ++ } ++ } ++ return 0; ++} ++ ++void __iee_code _iee_set_cred_atomic_set_usage(unsigned long iee_offset, struct cred *cred, int i) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ atomic_set(&cred->usage,i); ++} ++ ++void __iee_code _iee_set_cred_non_rcu(unsigned long iee_offset, struct cred *cred, int non_rcu) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->non_rcu = non_rcu; ++} ++ ++void __iee_code _iee_set_cred_session_keyring(unsigned long iee_offset, struct cred *cred, struct key *session_keyring) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->session_keyring = session_keyring; ++} ++ ++void __iee_code _iee_set_cred_process_keyring(unsigned long iee_offset, struct cred *cred, struct key *process_keyring) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->process_keyring = process_keyring; ++} ++ ++void __iee_code _iee_set_cred_thread_keyring(unsigned long iee_offset, struct cred *cred, struct key *thread_keyring) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->thread_keyring = thread_keyring; ++} ++ ++void __iee_code _iee_set_cred_request_key_auth(unsigned long iee_offset, struct cred *cred, struct key *request_key_auth) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->request_key_auth = request_key_auth; ++} ++ ++void __iee_code _iee_set_cred_jit_keyring(unsigned long iee_offset, struct cred *cred, unsigned char jit_keyring) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->jit_keyring = jit_keyring; ++} ++ ++void __iee_code _iee_set_cred_cap_inheritable(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_inheritable) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->cap_inheritable = cap_inheritable; ++} ++ ++void __iee_code _iee_set_cred_cap_permitted(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_permitted) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->cap_permitted = cap_permitted; ++} ++ ++void __iee_code _iee_set_cred_cap_effective(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_effective) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->cap_effective = cap_effective; ++} ++ ++void __iee_code _iee_set_cred_cap_bset(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_bset) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->cap_bset = cap_bset; ++} ++ ++void __iee_code _iee_set_cred_cap_ambient(unsigned long iee_offset, struct cred *cred, kernel_cap_t cap_ambient) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->cap_ambient = cap_ambient; ++} ++ ++void __iee_code _iee_set_cred_securebits(unsigned long iee_offset, struct cred *cred, unsigned securebits) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->securebits = securebits; ++} ++ ++void __iee_code _iee_set_cred_group_info(unsigned long iee_offset, struct cred *cred, struct group_info *group_info) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->group_info = group_info; ++} ++ ++void __iee_code _iee_set_cred_user_ns(unsigned long iee_offset, struct cred *cred, struct user_namespace *user_ns) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->user_ns = user_ns; ++} ++ ++void __iee_code _iee_set_cred_user(unsigned long iee_offset, struct cred *cred, struct user_struct *user) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->user = user; ++} ++ ++void __iee_code _iee_set_cred_fsgid(unsigned long iee_offset, struct cred *cred, kgid_t fsgid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->fsgid = fsgid; ++} ++ ++void __iee_code _iee_set_cred_fsuid(unsigned long iee_offset, struct cred *cred, kuid_t fsuid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->fsuid = fsuid; ++} ++ ++void __iee_code _iee_set_cred_egid(unsigned long iee_offset, struct cred *cred, kgid_t egid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->egid = egid; ++} ++ ++void __iee_code _iee_set_cred_euid(unsigned long iee_offset, struct cred *cred, kuid_t euid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->euid = euid; ++} ++ ++void __iee_code _iee_set_cred_sgid(unsigned long iee_offset, struct cred *cred, kgid_t sgid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->sgid = sgid; ++} ++ ++void __iee_code _iee_set_cred_suid(unsigned long iee_offset, struct cred *cred, kuid_t suid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->suid = suid; ++} ++ ++/* Only permits new_cred in task_token to be used. */ ++void __iee_code _iee_commit_cred(unsigned long iee_offset, struct cred *new) ++{ ++ #ifdef CONFIG_CREDP ++ _iee_do_commit_cred(iee_offset, new); ++ #endif ++} ++ ++/* Copy from current cred and set task_token->new_cred to mark this as legal modification target. */ ++void __iee_code _iee_copy_cred(unsigned long iee_offset, struct cred *old, struct cred *new) ++{ ++ #ifdef CONFIG_CREDP ++ struct task_struct *tsk = current; ++ struct task_token *token = (struct task_token *)__phys_to_iee(__pa(tsk)); ++ struct rcu_head *rcu = (struct rcu_head *)(new->rcu.func); ++ struct cred *_new = (struct cred *)__phys_to_iee(__pa(new)); ++ ++ // Get old cred from current task directly is safer. ++ old = tsk->cred; ++ token->new_cred = new; ++ ++ _iee_memcpy(iee_offset, new, old, sizeof(struct cred)); ++ *(struct rcu_head **)(&(_new->rcu.func)) = rcu; ++ *(struct rcu_head *)(_new->rcu.func) = *(struct rcu_head *)(old->rcu.func); ++ #endif ++} ++ ++/* Can only be called by root tasks as it would copy privileged cred. */ ++void __iee_code _iee_copy_cred_kernel(unsigned long iee_offset, struct cred *old, struct cred *new) ++{ ++ #ifdef CONFIG_CREDP ++ struct rcu_head *rcu = (struct rcu_head *)(new->rcu.func); ++ struct cred *_new = (struct cred *)__phys_to_iee(__pa(new)); ++ _iee_memcpy(iee_offset, new, old, sizeof(struct cred)); ++ *(struct rcu_head **)(&(_new->rcu.func)) = rcu; ++ *(struct rcu_head *)(_new->rcu.func) = *(struct rcu_head *)(old->rcu.func); ++ #endif ++} ++ ++void __iee_code _iee_set_cred_gid(unsigned long iee_offset, struct cred *cred, kgid_t gid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->gid = gid; ++} ++ ++void __iee_code _iee_set_cred_uid(unsigned long iee_offset, struct cred *cred, kuid_t uid) ++{ ++ cred = (struct cred *)__phys_to_iee(__pa(cred)); ++ cred->uid = uid; ++} ++ ++void __iee_code _iee_write_in_byte(unsigned long iee_offset, void *ptr, __u64 data, int length) ++{ ++ ptr = (void *)((unsigned long)ptr + (unsigned long)iee_offset); ++ switch(length) { ++ case 8: { ++ *(__u64 *)ptr = data; ++ break; ++ } ++ case 4: { ++ *(__u32 *)ptr = (__u32)data; ++ break; ++ } ++ case 2: { ++ *(__u16 *)ptr = (__u16)data; ++ break; ++ } ++ case 1: { ++ *(__u8 *)ptr = (__u8)data; ++ break; ++ } ++ } ++} ++ ++static pteval_t inline _iee_set_cmpxchg_relaxed(pte_t *ptep, pteval_t old_pteval, pteval_t new_pteval, unsigned long iee_offset) ++{ ++ pteval_t pteval = cmpxchg_relaxed((pteval_t *)((unsigned long)ptep + iee_offset), old_pteval, new_pteval); ++ return pteval; ++} ++ ++/* Check if addr is allocated in IEE page */ ++static inline bool check_addr_in_iee_valid(unsigned long addr) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp; ++ pmd_t *pmdp; ++ pte_t *ptep; ++ ++ if(!(p4d_val(READ_ONCE(*p4dp)) & PTE_VALID)) ++ return false; ++ ++ pudp = pud_offset(p4dp, addr); ++ ++ if(!(pud_val(READ_ONCE(*pudp)) & PTE_VALID)) ++ return false; ++ ++ pmdp = pmd_offset(pudp, addr); ++ ++ if(!(pmd_val(READ_ONCE(*pmdp)) & PTE_VALID)) ++ return false; ++ ++ ptep = pte_offset_kernel(pmdp, addr); ++ ++ return (pte_val(READ_ONCE(*ptep)) & PTE_VALID); ++} ++ ++void __iee_code _iee_set_tramp_pgd(unsigned long iee_offset, pgd_t *pgdp, pgd_t pgd) ++{ ++ WRITE_ONCE(*((pgd_t *)(__phys_to_iee(__pa_symbol(pgdp)))), pgd); ++} ++ ++void __iee_code _iee_set_swapper_pgd(unsigned long iee_offset, pgd_t *pgdp, pgd_t pgd) ++{ ++ if(!(pgd_val(pgd) & PMD_SECT_VALID)) ++ { ++ WRITE_ONCE(*((pgd_t *)(__phys_to_iee(__pa_symbol(pgdp)))), pgd); ++ return; ++ } ++ ++ if ((pgd_val(pgd) & PMD_TABLE_BIT) && !check_addr_in_iee_valid(__phys_to_iee(__pgd_to_phys(pgd)))) ++ panic("You can't use non-iee-pgtable\n"); ++ ++ if((pgdp >= pgd_offset_pgd((pgd_t *)swapper_pg_dir, PAGE_OFFSET + BIT(vabits_actual - 2))) && (pgdp < pgd_offset_pgd((pgd_t *)swapper_pg_dir, PAGE_OFFSET + BIT(vabits_actual - 1))) && !(pgd_val(pgd) & PGD_APT)) ++ panic("Set IEE pgd U page.\n"); ++ ++ WRITE_ONCE(*((pgd_t *)(__phys_to_iee(__pa_symbol(pgdp)))), pgd); ++} ++ ++void __iee_code _iee_set_p4d(unsigned long iee_offset, p4d_t *p4dp, p4d_t p4d) ++{ ++ if(!(p4d_val(p4d) & PMD_SECT_VALID)) ++ { ++ WRITE_ONCE(*((p4d_t *)((unsigned long)p4dp + (unsigned long)iee_offset)), p4d); ++ return; ++ } ++ ++ if ((p4d_val(p4d) & PMD_TABLE_BIT) && !check_addr_in_iee_valid(__phys_to_iee(__p4d_to_phys(p4d)))) ++ panic("You can't use non-iee-pgtable\n"); ++ ++ WRITE_ONCE(*((p4d_t *)((unsigned long)p4dp + (unsigned long)iee_offset)), p4d); ++} ++ ++void __iee_code _iee_set_pud(unsigned long iee_offset, pud_t *pudp, pud_t pud) ++{ ++ if(!(pud_val(pud) & PMD_SECT_VALID)) ++ { ++ WRITE_ONCE(*((pud_t *)((unsigned long)pudp + (unsigned long)iee_offset)), pud); ++ return; ++ } ++ ++ if ((pud_val(pud) & PMD_TABLE_BIT) && !check_addr_in_iee_valid(__phys_to_iee(__pud_to_phys(pud)))) ++ panic("You can't use non-iee-pgtable\n"); ++ ++ WRITE_ONCE(*((pud_t *)((unsigned long)pudp + (unsigned long)iee_offset)), pud); ++} ++ ++// Return true if the modify does not break DEP. ++static inline bool check_pmd_dep(char *addr, pmd_t pmd) ++{ ++ // DEP for kernel code and readonly data ++ // _text: .text start addr, __init_begin: .rodata end addr ++ if (addr >= _text && addr < _etext) ++ { ++ if ((PTE_WRITE & pmd_val(pmd)) || // DBM == 1 --> writable ++ !(PTE_RDONLY & pmd_val(pmd))) // DBM == 0 && AP[2] = 0 --> writable ++ { ++ panic("Can't make kernel's text/readonly page as writable!\n" ++ "addr = 0x%16llx, pmd_val = 0x%16llx", ++ (u64)addr, pmd_val(pmd)); ++ } ++ } ++ return true; ++} ++ ++// Return true if the pmd table is a part of kernel page table. ++// TODO : Optimize to get lower overhead. ++static inline bool is_kernel_pmd_table(pmd_t *pmdp, pmd_t pmd) ++{ ++ int i = 0,j = 0; ++ for(i = 0; i < PAGE_SIZE/sizeof(pgd_t); i++) ++ { ++ pgd_t *pgdp = (pgd_t *)swapper_pg_dir + i; ++ if((pgd_val(*pgdp) & PMD_SECT_VALID) && (pgd_val(*pgdp) & PMD_TABLE_BIT)) ++ { ++ for(j = 0; j < PAGE_SIZE/sizeof(pud_t); j++) ++ { ++ pud_t *pudp = (pud_t *)__va(__pgd_to_phys(*pgdp)) + i; ++ if((pud_val(*pudp) & PMD_SECT_VALID) && (pud_val(*pudp) & PMD_TABLE_BIT)) ++ { ++ pmd_t *current_pmdp = __va(__pud_to_phys(*pudp)); ++ if((unsigned long)current_pmdp == ((unsigned long)pmdp & PAGE_MASK)) ++ return true; ++ } ++ } ++ } ++ } ++ return false; ++} ++ ++// Return true if it is mapped to a physical range containing IEE page. ++// TODO : Optimize to get lower overhead. ++static inline bool check_addr_range_in_iee_valid(pmd_t pmd) ++{ ++ int i = 0; ++ unsigned long addr = __phys_to_iee(__pmd_to_phys(pmd)); ++ ++ pgd_t *pgdir = swapper_pg_dir; ++ ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ pud_t *pudp; ++ pmd_t *pmdp; ++ pte_t *ptep; ++ ++ if(!(p4d_val(READ_ONCE(*p4dp)) & PTE_VALID)) ++ return false; ++ ++ pudp = pud_offset(p4dp, addr); ++ ++ if(!(pud_val(READ_ONCE(*pudp)) & PTE_VALID)) ++ return false; ++ ++ pmdp = pmd_offset(pudp, addr); ++ ++ if(!(pmd_val(READ_ONCE(*pmdp)) & PTE_VALID)) ++ return false; ++ ++ ptep = pte_offset_kernel(pmdp, addr); ++ ++ for(i = 0; i < PAGE_SIZE/sizeof(pte_t); i++) ++ { ++ if(pte_val(READ_ONCE(*ptep)) & PTE_VALID) ++ return true; ++ ptep++; ++ } ++ return false; ++} ++ ++void __iee_code _iee_set_pmd(unsigned long iee_offset, pmd_t *pmdp, pmd_t pmd) ++{ ++ char * addr = (char *)__phys_to_kimg(__pmd_to_phys(pmd)); ++ ++ if(!(pmd_val(pmd) & PMD_SECT_VALID)) ++ { ++ WRITE_ONCE(*((pmd_t *)((unsigned long)pmdp + (unsigned long)iee_offset)), pmd); ++ return; ++ } ++ ++ // Check if the pte table is legally allocated. ++ if ((pmd_val(pmd) & PMD_TABLE_BIT) && !check_addr_in_iee_valid(__phys_to_iee(__pmd_to_phys(pmd)))) ++ panic("You can't use non-iee-pgtable\n"); ++ ++ // // Avoid mapping a huge pmd as U page. ++ // if(!(pmd_val(pmd) & PMD_TABLE_BIT) && (pmd_val(pmd) & PMD_SECT_USER) && is_kernel_pmd_table(pmdp, pmd)) ++ // panic("Set a block descriptor in kernel space U page.\n"); ++ ++ // // Avoid mapping a huge pmd to IEE physical page. ++ // if(!(pmd_val(pmd) & PMD_TABLE_BIT) && check_addr_range_in_iee_valid(pmd)) ++ // panic("Mapping IEE physical page to a huge pmd.\n"); ++ ++ if(!check_pmd_dep(addr, pmd)) ++ return; ++ ++ WRITE_ONCE(*((pmd_t *)((unsigned long)pmdp + (unsigned long)iee_offset)), pmd); ++} ++ ++// Return true if the pte table is a part of kernel page table. ++// TODO : Optimize to get lower overhead. ++static inline bool is_kernel_pte_table(pte_t *ptep, pte_t pte) ++{ ++ return false; ++} ++ ++// Return true if it does not change the privilage or add new U page in kernel. ++static inline bool check_privilage_safe(pte_t *ptep, pte_t pte) ++{ ++ if(!(pte_val(pte) & PTE_VALID)) ++ return true; ++ ++ if((pte_val(*ptep) & PTE_VALID)) ++ { ++ if((pte_val(*ptep) & PTE_USER) != (pte_val(pte) & PTE_USER)) ++ panic("Incorrectly change privilage.\n"); ++ } ++ else ++ { ++ if((pte_val(pte) & PTE_USER) && is_kernel_pte_table(ptep, pte)) ++ panic("Add new U page in kernel space.\n"); ++ } ++ return true; ++} ++ ++// TODO : When adding a new executable page, check it for DEP. ++static inline bool safely_adding_new_exec_page(pte_t *ptep, pte_t pte) ++{ ++ return true; ++} ++ ++// Return true if it is only changing prot of a pte. ++static inline bool is_changing_pte_prot(pte_t *ptep, pte_t pte) ++{ ++ if(((pte_val(*ptep) ^ pte_val(pte)) & PTE_ADDR_MASK) == 0) ++ return true; ++ else ++ return false; ++} ++ ++// Return true if the modify does not break DEP. ++static inline bool check_pte_dep(char *addr, pte_t pte) ++{ ++ // DEP for kernel code and readonly data ++ // _text: .text start addr, __init_begin: .rodata end addr ++ if (addr >= _text && addr < _etext) ++ { ++ if ((PTE_WRITE & pte_val(pte)) // DBM == 1 --> writable ++ || !(PTE_RDONLY & pte_val(pte))) // DBM == 0 && AP[2] = 0 --> writable ++ { ++ panic("Can't make kernel's text/readonly page as writable!\n" ++ "addr = 0x%16llx, pte_val = 0x%16llx", ++ (u64)addr, pte_val(pte)); ++ } ++ } ++ return true; ++} ++ ++void __iee_code _iee_set_pte(unsigned long iee_offset, pte_t *ptep, pte_t pte) ++{ ++ char * addr = (char *)__phys_to_kimg(__pte_to_phys(pte)); ++ ++ if(!(pte_val(pte) & PTE_VALID)) ++ { ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*((pte_t *)((unsigned long)ptep + (unsigned long)iee_offset)), pte); ++ return; ++ } ++ ++ // Avoid modify privilage unsafely. ++ if(!check_privilage_safe(ptep, pte)) ++ panic("You are modify privilage unsafely.\n"); ++ ++ // Avoid mapping a new executable page. ++ if(!safely_adding_new_exec_page(ptep, pte)) ++ panic("You are adding a new executable page unsafely.\n"); ++ ++ // Avoid mapping a new VA to IEE PA. ++ if(!is_changing_pte_prot(ptep, pte) && ++ check_addr_in_iee_valid(__phys_to_iee(__pte_to_phys(pte)))) ++ panic("You are remmaping IEE page to other VA.\n"); ++ ++ // Avoid mapping a writable VA to kernel code PA. ++ if(!check_pte_dep(addr, pte)) ++ return; ++ ++ WRITE_ONCE(*((pte_t *)((unsigned long)ptep + (unsigned long)iee_offset)), pte); ++} ++ ++static void inline _iee_set_pte_single(pte_t *ptep, pte_t pte, unsigned long iee_offset) ++{ ++ char * addr = (char *)__phys_to_kimg(__pte_to_phys(pte)); ++ ++ if(!(pte_val(pte) & PTE_VALID)) ++ { ++ WRITE_ONCE(*((pte_t *)((unsigned long)ptep + (unsigned long)iee_offset)), pte); ++ return; ++ } ++ ++ // Avoid modify privilage unsafely. ++ if(!check_privilage_safe(ptep, pte)) ++ panic("You are modify privilage unsafely.\n"); ++ ++ // Avoid mapping a new executable page. ++ if(!safely_adding_new_exec_page(ptep, pte)) ++ panic("You are adding a new executable page unsafely.\n"); ++ ++ // Avoid mapping a new VA to IEE PA. ++ if(!is_changing_pte_prot(ptep, pte) && ++ check_addr_in_iee_valid(__phys_to_iee(__pte_to_phys(pte)))) ++ panic("You are remmaping IEE page to other VA.\n"); ++ ++ // Avoid mapping a writable VA to kernel code PA. ++ if(!check_pte_dep(addr, pte)) ++ return; ++ ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*((pte_t *)((unsigned long)ptep + (unsigned long)iee_offset)), pte); ++} ++ ++void __iee_code _iee_set_pte_upage(unsigned long iee_offset, pte_t *ptep, int order, int use_block_pmd) ++{ ++ int i; ++ ++ ptep = (pte_t *)((unsigned long)ptep + iee_offset); ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd(pmd_val(pmd) | PMD_SECT_USER | PMD_SECT_NG); ++ WRITE_ONCE(*pmdp, pmd); ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(pte_val(pte) | PTE_USER | PTE_NG); ++ WRITE_ONCE(*ptep, pte); ++ ptep++; ++ } ++ } ++} ++ ++void __iee_code _iee_set_pte_ppage(unsigned long iee_offset, pte_t *ptep, int order, int use_block_pmd) ++{ ++ int i; ++ ++ ptep = (pte_t *)((unsigned long)ptep + iee_offset); ++ if(use_block_pmd) ++ { ++ pmd_t *pmdp = (pmd_t *)ptep; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pmd = __pmd(pmd_val(pmd) & ~PMD_SECT_USER & ~PMD_SECT_NG); ++ WRITE_ONCE(*pmdp, pmd); ++ } ++ else ++ { ++ for(i = 0; i < (1 << order); i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(pte_val(pte) & ~PTE_USER & ~PTE_NG); ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*ptep, pte); ++ ptep++; ++ } ++ } ++} ++ ++void __iee_code _iee_set_bm_pte(unsigned long iee_offset, pte_t *ptep, pte_t pte) ++{ ++ #ifdef CONFIG_KOI ++ if (pte_valid(pte)) ++ pte = __pte(pte_val(pte) | PTE_NG); ++ #endif ++ WRITE_ONCE(*((pte_t *)(__phys_to_iee(__pa_symbol(ptep)))), pte); ++} ++ ++/* Data in iee_si_base is visible to all pgd while iee_si_data is private. */ ++unsigned long iee_base_swapper_pg_dir __iee_si_data; ++unsigned long iee_base_idmap_pg_dir __iee_si_data; ++unsigned long iee_base_reserved_pg_dir __iee_si_data; ++unsigned long iee_base__bp_harden_el1_vectors __iee_si_data; ++bool iee_init_done __iee_si_data; ++unsigned long iee_si_tcr __iee_si_data; ++unsigned long iee_si_tcr_outside __iee_si_data; ++unsigned long iee_si_tcr_inside __iee_si_data; ++s64 iee_si_offset __iee_si_data; ++ ++DEFINE_PER_CPU(unsigned long, iee_si_user_bvr0); ++DEFINE_PER_CPU(unsigned long, iee_si_user_bcr0); ++EXPORT_SYMBOL(iee_si_user_bvr0); ++EXPORT_SYMBOL(iee_si_user_bcr0); ++ ++static u64 inline iee_si_mask(unsigned long mask, unsigned long new_val, unsigned long old_val) ++{ ++ return (new_val & mask) | (old_val & ~mask); ++} ++/* ++ * Handler function for requests of executing sensitive instrutions. ++ */ ++u64 __iee_si_code notrace iee_si_handler(int flag, ...) ++{ ++ va_list pArgs; ++ u64 old_val, new_val; ++ ++ va_start(pArgs, flag); ++ switch (flag) { ++ case IEE_SI_TEST: ++ break; ++ case IEE_WRITE_SCTLR: { ++ old_val = read_sysreg(sctlr_el1); ++ new_val = va_arg(pArgs, u64); ++ new_val = iee_si_mask(IEE_SCTLR_MASK, new_val, old_val); ++ write_sysreg(new_val, sctlr_el1); ++ break; ++ } ++ case IEE_WRITE_TTBR0: ++ case IEE_CONTEXT_SWITCH: { ++ u64 new_asid, new_phys, old_phys, token_phys; ++ struct task_struct *tsk; ++ struct task_token *token; ++ new_val = va_arg(pArgs, u64); ++ new_phys = (new_val & PAGE_MASK) & ~TTBR_ASID_MASK; ++ new_asid = new_val >> 48; ++ ++ // Check ASID first ++ if (new_phys == iee_base_reserved_pg_dir){ ++ if (new_asid != 1) ++ panic("IEE SI warning: reserved_pg_dir ASID invalid: %llx:%llx", new_asid, new_val); ++ } ++ // Already reserved asid 1 for iee rwx gate. ++ else if (new_asid == 0){ ++ new_val |= FIELD_PREP(TTBR_ASID_MASK, 1); ++ printk("IEE SI: Modify ASID of %llx to 1.", new_val); ++ } ++ // TO DO: operations to protect idmap_pg_dir ++ else if (new_phys == iee_base_idmap_pg_dir) ++ { ++ // printk("IEE SI: switch to idmap_pg_dir.); ++ } ++ else if (new_asid % 2 ==0) ++ panic("IEE SI warning: TTBR0 ASID invalid: %llx:%llx", new_asid, new_val); ++ ++ /* Skip verification if iee hasn't been initialized. */ ++ if (iee_init_done){ ++ // Verify current sp_el0 with iee token info ++ asm volatile("mrs %x0, sp_el0":"=r"(tsk)); ++ token = (struct task_token *)((unsigned long)tsk + (unsigned long)iee_offset); ++ ++ /* ++ * token->pgd != NULL means it is a user task, then we need to check whether current ttbr0 is correct. ++ */ ++ if (token->pgd){ ++ old_val = read_sysreg(ttbr0_el1); ++ // When TTBR0 is reserved_pg_dir then no checking is available. ++ if (old_val != iee_base_reserved_pg_dir){ ++ old_phys = (old_val & PAGE_MASK) & ~TTBR_ASID_MASK; ++ token_phys = __pa(token->pgd); ++ if (old_phys != token_phys) ++ panic("IEE SI warning: Pgd set error. old ttbr0:%lx, token ttbr0:%lx, token pgd:%lx", ++ (unsigned long)old_phys, (unsigned long)token_phys, (unsigned long)(token->pgd)); ++ } ++ } ++ } ++ // all checks are done. ++ write_sysreg(new_val, ttbr0_el1); ++ ++ // SET ASID in TTBR1 when context switch ++ if (flag == IEE_CONTEXT_SWITCH){ ++ new_val = (read_sysreg(ttbr1_el1) & ~TTBR_ASID_MASK) | FIELD_PREP(TTBR_ASID_MASK, new_asid-1); ++ write_sysreg(new_val, ttbr1_el1); ++ } ++ break; ++ } ++ case IEE_WRITE_VBAR: { ++ u64 el1_vector; ++ new_val = va_arg(pArgs, u64); ++ el1_vector = iee_base__bp_harden_el1_vectors; ++ if(new_val == el1_vector || new_val == el1_vector+SZ_2K || ++ new_val == el1_vector+SZ_2K*2 || new_val == el1_vector+SZ_2K*3) ++ write_sysreg(new_val, vbar_el1); ++ break; ++ } ++ case IEE_WRITE_TCR: { ++ old_val = read_sysreg(tcr_el1); ++ new_val = va_arg(pArgs, u64); ++ new_val = iee_si_mask(IEE_TCR_MASK, new_val, old_val); ++ write_sysreg(new_val, tcr_el1); ++ break; ++ } ++ } ++ va_end(pArgs); ++ return 0; ++} ++/* ++ * TODO: scan a page to check whether it contains sensitive instructions ++ * return 1 when finding sensitive inst, 0 on safe page. ++ */ ++int iee_si_scan_page(unsigned long addr); ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/kernel/iee/pgtable_slab.c b/arch/arm64/kernel/iee/pgtable_slab.c +new file mode 100644 +index 000000000000..10d8a6727a44 +--- /dev/null ++++ b/arch/arm64/kernel/iee/pgtable_slab.c +@@ -0,0 +1,116 @@ ++#include ++#include ++#include ++#define PGTABLE_ORDER 9 ++#define PGTABLE_MAX_ORDER (20-PGTABLE_ORDER) ++ ++struct kmem_cache *pgtable_jar; ++struct kmem_cache *pgtable_page_jar; ++struct kmem_cache *iee_stack_jar; ++extern void iee_set_freeptr(void **pptr, void *ptr); ++ ++#ifdef CONFIG_PTP ++extern void early_pgtable_jar_alloc(struct kmem_cache *pgtable_jar); ++void __init iee_pmd_pgtable_init(pud_t *pud) { ++ struct page *page; ++ struct pgtable_page *tmp; ++ pmd_t *orig_pmd = pud_pgtable(*pud); ++ pmd_t *pmd; ++ int i; ++ ++ for (i = 0; i < PTRS_PER_PMD; i++) { ++ pmd = orig_pmd + i; ++ if (pmd_none(*pmd) || pmd_bad(*pmd)) ++ continue; ++ page = pmd_page(*pmd); ++ tmp = kmem_cache_alloc(pgtable_page_jar, GFP_KERNEL | __GFP_ZERO); ++ spin_lock_init(&tmp->ptl); ++ page->slab_cache = (struct kmem_cache *)tmp; ++ ((struct pgtable_page *)(page->slab_cache))->page = page; ++ } ++} ++ ++void __init iee_pud_pgtable_init(p4d_t *p4d) { ++ struct page *page; ++ struct pgtable_page *tmp; ++ pud_t *orig_pud = p4d_pgtable(*p4d); ++ pud_t *pud; ++ int i; ++ ++ for (i = 0; i < PTRS_PER_PUD; i++) { ++ pud = orig_pud + i; ++ if (pud_none(*pud) || pud_bad(*pud)) ++ continue; ++ iee_pmd_pgtable_init(pud); ++ page = pud_page(*pud); ++ tmp = kmem_cache_alloc(pgtable_page_jar, GFP_KERNEL | __GFP_ZERO); ++ spin_lock_init(&tmp->ptl); ++ page->slab_cache = (struct kmem_cache *)tmp; ++ ((struct pgtable_page *)(page->slab_cache))->page = page; ++ } ++} ++ ++void __init iee_pgtable_init(void) ++{ ++ int i; ++ pgd_t *pgd; ++ struct page* page; ++ struct pgtable_page *tmp; ++ pgtable_page_jar = kmem_cache_create("pgtable_page_jar", sizeof(struct pgtable_page), 0, SLAB_PANIC|SLAB_RED_ZONE, NULL); ++ pgtable_jar = kmem_cache_create("pgtable_jar", PAGE_SIZE, PAGE_SIZE, ++ SLAB_PANIC, NULL); ++ for(i = 0; i < (1 << (PGTABLE_MAX_ORDER))/nr_cpu_ids; i++) ++ { ++ early_pgtable_jar_alloc(pgtable_jar); ++ } ++ #ifdef CONFIG_KOI ++ for (i = 0; i < PTRS_PER_PGD; i++) { ++ pgd = swapper_pg_dir + i; ++ if (p4d_none_or_clear_bad((p4d_t *)pgd)) ++ continue; ++ iee_pud_pgtable_init((p4d_t *)pgd); ++ page = pgd_page(*pgd); ++ tmp = kmem_cache_alloc(pgtable_page_jar, GFP_KERNEL | __GFP_ZERO); ++ spin_lock_init(&tmp->ptl); ++ page->slab_cache = (struct kmem_cache *)tmp; ++ ((struct pgtable_page *)((page)->slab_cache))->page = page; ++ } ++ #endif ++} ++#else ++void __init iee_pgtable_init(void) ++{ ++ ; ++} ++#endif ++ ++void __init iee_stack_init(void) ++{ ++ iee_stack_jar = kmem_cache_create("iee_stack_jar", (PAGE_SIZE << 3), (PAGE_SIZE << 3), SLAB_PANIC, NULL); ++} ++ ++extern void iee_memset(void *ptr, int data, size_t n); ++void *get_iee_pgtable_page(gfp_t gfpflags) ++{ ++ struct page *page; ++ void *res = kmem_cache_alloc(pgtable_jar, gfpflags | __GFP_ZERO); ++ iee_set_freeptr((void **)((unsigned long)res + pgtable_jar->offset), NULL); ++ page = virt_to_page(res); ++ page_ref_inc(page); ++ return res; ++} ++ ++void free_iee_pgtable_page(void *obj) ++{ ++ kmem_cache_free(pgtable_jar, obj); ++} ++ ++void *get_iee_stack(void) ++{ ++ return kmem_cache_alloc(iee_stack_jar, GFP_KERNEL); ++} ++ ++void free_iee_stack(void *obj) ++{ ++ kmem_cache_free(iee_stack_jar, obj); ++} +\ No newline at end of file +diff --git a/arch/arm64/kernel/irq.c b/arch/arm64/kernel/irq.c +index 60456a62da11..6323369f1f4f 100644 +--- a/arch/arm64/kernel/irq.c ++++ b/arch/arm64/kernel/irq.c +@@ -26,7 +26,9 @@ + DEFINE_PER_CPU(struct nmi_ctx, nmi_contexts); + + DEFINE_PER_CPU(unsigned long *, irq_stack_ptr); +- ++#ifdef CONFIG_KOI ++EXPORT_SYMBOL(irq_stack_ptr); ++#endif + #ifdef CONFIG_VMAP_STACK + static void init_irq_stacks(void) + { +diff --git a/arch/arm64/kernel/koi/Makefile b/arch/arm64/kernel/koi/Makefile +new file mode 100644 +index 000000000000..9be8710b714a +--- /dev/null ++++ b/arch/arm64/kernel/koi/Makefile +@@ -0,0 +1 @@ ++obj-y += koi.o +\ No newline at end of file +diff --git a/arch/arm64/kernel/koi/koi.c b/arch/arm64/kernel/koi/koi.c +new file mode 100644 +index 000000000000..0c162f4c2795 +--- /dev/null ++++ b/arch/arm64/kernel/koi/koi.c +@@ -0,0 +1,1653 @@ ++#include "asm/koi.h" ++#include "linux/compiler_attributes.h" ++#include "linux/compiler_types.h" ++#include "asm/barrier.h" ++#include "asm-generic/bug.h" ++#include "asm-generic/errno-base.h" ++#include "asm-generic/memory_model.h" ++#include "asm-generic/pgtable-nop4d.h" ++#include "asm-generic/rwonce.h" ++#include "asm/pgalloc.h" ++#include "asm/memory.h" ++#include "linux/bitfield.h" ++#include "linux/compiler.h" ++#include "linux/types.h" ++#include "linux/spinlock.h" ++#include "linux/spinlock_types.h" ++#include "linux/kernel.h" ++#include "linux/rculist.h" ++#include "linux/rcupdate.h" ++#include "linux/list.h" ++#include "asm/current.h" ++#include "linux/compiler_types.h" ++#include "asm-generic/barrier.h" ++#include "asm-generic/rwonce.h" ++#include "asm-generic/pgalloc.h" ++#include "asm/cpufeature.h" ++#include "asm/kvm_hyp.h" ++#include "asm/mmu.h" ++#include "asm/mmu_context.h" ++#include "asm/page-def.h" ++#include "asm/pgalloc.h" ++#include "asm/pgtable-hwdef.h" ++#include "asm/pgtable-types.h" ++#include "asm/pgtable.h" ++#include "asm/string.h" ++#include "asm/sysreg.h" ++#include "linux/bitfield.h" ++#include "linux/compiler.h" ++#include "linux/export.h" ++#include "linux/gfp.h" ++#include "linux/huge_mm.h" ++#include "linux/kallsyms.h" ++#include "linux/kconfig.h" ++#include "linux/kern_levels.h" ++#include "linux/kernel.h" ++#include "linux/list.h" ++#include "linux/lockdep.h" ++#include "linux/mm.h" ++#include "linux/mm_types.h" ++#include "linux/pgtable.h" ++#include "linux/printk.h" ++#include "linux/rculist.h" ++#include "linux/rcupdate.h" ++#include "linux/rmap.h" ++#include "linux/sched.h" ++#include "linux/stddef.h" ++#include "linux/string.h" ++#include "linux/swap.h" ++#include "linux/swapops.h" ++#include "linux/types.h" ++#include "linux/slab.h" ++#include "linux/string.h" ++#include "linux/hashtable.h" ++ ++// #define DEBUG ++ ++#ifdef DEBUG ++#define debug_printk(...) printk(KERN_ERR __VA_ARGS__) ++#else ++#define debug_printk(...) ++#endif ++ ++#define __koi_code __section(".koi.text") ++#define __koi_data __section(".data..koi") ++ ++#define KOI_FLAG_MASK 0xffff000000000fff ++ ++extern unsigned long __koi_code_start[]; ++extern unsigned long __koi_code_end[]; ++extern unsigned long __koi_data_start[]; ++extern unsigned long __koi_data_end[]; ++#ifdef CONFIG_IEE ++extern unsigned long __iee_si_data_start[]; ++extern unsigned long __iee_si_text_end[]; ++#endif ++ ++__koi_data unsigned long koi_swapper_ttbr1 = 0; ++EXPORT_SYMBOL(koi_swapper_ttbr1); ++#define KOI_SWAPPER_MASK 0x0000fffffffffff0 ++ ++__attribute__((aligned(PAGE_SIZE))) ++DEFINE_PER_CPU(unsigned long[PAGE_SIZE / sizeof(unsigned long)], ++ koi_irq_current_ttbr1); ++EXPORT_SYMBOL(koi_irq_current_ttbr1); ++ ++extern void koi_switch_to_ko_stack(unsigned long stack_top); ++extern void init_ko_mm(struct mm_struct *ko_mm, pgd_t *pgdp); ++extern void koi_check_and_switch_context(struct mm_struct *mm); ++extern void koi_add_page_mapping(unsigned long dst, unsigned long src); ++extern unsigned long _iee_read_token_ttbr1(unsigned long iee_offset, struct task_struct *tsk); ++/** ++*struct koi_mem_list - maintain a linked list of free memory in the kernel ++*@addr: stating address of this memory ++*@size: the size of the memory ++*@list: the head of the koi_mem_list ++*@rcu: for rcu ++*/ ++struct koi_mem_list { ++ unsigned long addr; ++ unsigned long size; ++ struct list_head list; ++ struct rcu_head rcu; ++}; ++//mapping parameter pointer to copy ++struct koi_addr_map { ++ unsigned long buffer_addr; ++ unsigned long orig_addr; ++ int offset; ++ struct hlist_node node; ++ struct rcu_head rcu; ++}; ++ ++DEFINE_HASHTABLE(koi_mem_htbl, HASH_TABLE_BIT); ++EXPORT_SYMBOL(koi_mem_htbl); ++DEFINE_SPINLOCK(koi_mem_htbl_spin_lock); ++EXPORT_SYMBOL(koi_mem_htbl_spin_lock); ++ ++EXPORT_SYMBOL(koi_do_switch_to_kernel_stack); ++EXPORT_SYMBOL(koi_do_switch_to_ko_stack); ++ ++/** ++* koi_ttbr_ctor - return ttbr1 for the given driver module ++*/ ++unsigned long koi_ttbr_ctor(struct module *mod) ++{ ++ struct koi_mem_hash_node *ko; ++ struct mm_struct *ko_mm; ++ unsigned long ttbr1; ++ unsigned long asid; ++ int bkt; ++ rcu_read_lock(); ++ hash_for_each_rcu (koi_mem_htbl, bkt, ko, node) { ++ if (ko->mod == mod) { ++ ko_mm = ko->ko_mm; ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (!ko_mm) { ++ printk(KERN_ERR "cannot found module %s in koi_mem_htbl", ++ mod->name); ++ return 0; ++ } ++#ifndef CONFIG_IEE ++ asm volatile("mrs %0, ttbr0_el1\n":"=r"(asid):); ++ asid &= TTBR_ASID_MASK; ++ ttbr1 = ko->ko_ttbr1 | asid; ++#else ++ koi_check_and_switch_context(ko_mm); ++ asid = ASID(ko_mm) | USER_ASID_FLAG; ++ ttbr1 = ko->ko_ttbr1 | FIELD_PREP(TTBR_ASID_MASK, asid); ++#endif ++ return ttbr1; ++} ++EXPORT_SYMBOL(koi_ttbr_ctor); ++//release the hash node ++static __maybe_unused void koi_mem_hash_node_free(struct rcu_head *rcu) ++{ ++ struct koi_mem_hash_node *node = ++ container_of(rcu, struct koi_mem_hash_node, rcu); ++ kfree(node); ++} ++//release free memory linked list nodes ++static void koi_mem_node_free(struct rcu_head *rcu) ++{ ++ struct koi_mem_list *mem_node = ++ container_of(rcu, struct koi_mem_list, rcu); ++ kfree(mem_node); ++} ++//release the node in koi_addr_map ++static void koi_addr_map_node_free(struct rcu_head *rcu) ++{ ++ struct koi_addr_map *addr_map_node = ++ container_of(rcu, struct koi_addr_map, rcu); ++ kfree(addr_map_node); ++} ++ ++#ifndef CONFIG_IEE ++/* ++ * This function is used to switch to ko's pgtable. ++ */ ++__koi_code noinline unsigned long koi_do_switch_to_ko_pgtbl(void) ++{ ++ struct koi_mem_hash_node *ko; ++ // struct mm_struct *ko_mm; ++ unsigned long addr; ++ unsigned long ttbr1, asid; ++ unsigned long *ptr; ++ struct task_token *token_addr = ++ (struct task_token *)((unsigned long)current + ++ (unsigned long)koi_offset); ++ int bkt; ++ unsigned long flags; ++ asm volatile(" mrs %0, elr_el1\n" : "=r"(addr)); ++ ptr = SHIFT_PERCPU_PTR(koi_irq_current_ttbr1, __kern_my_cpu_offset()); ++ rcu_read_lock(); ++ hash_for_each_rcu (koi_mem_htbl, bkt, ko, node) { ++ spin_lock_irqsave(&ko->mod_lock, flags); ++ if (!ko->is_valid) { ++ spin_unlock_irqrestore(&ko->mod_lock, flags); ++ goto out; ++ } ++ if (ko->mod != NULL && ko->mod->init_layout.base != NULL) { ++ if (addr >= (unsigned long)ko->mod->init_layout.base && ++ addr < (unsigned long)(ko->mod->init_layout.base + ++ ko->mod->init_layout.size)) { ++ spin_unlock_irqrestore(&ko->mod_lock, flags); ++ if (token_addr->current_ttbr1 == ko->ko_ttbr1 || ++ *ptr == ko->ko_ttbr1) { ++ // ko_mm = ko->ko_mm; ++ // koi_check_and_switch_context(ko_mm); ++ // asid = ASID(ko_mm); ++ // ttbr1 = ko->ko_ttbr1; ++ // ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, asid); ++ asm volatile("mrs %0, ttbr0_el1\n":"=r"(asid):); ++ asid &= TTBR_ASID_MASK; ++ ttbr1 = ko->ko_ttbr1 | asid; ++ rcu_read_unlock(); ++ return ttbr1; ++ } ++ goto out; ++ } ++ } ++ if (addr >= (unsigned long)ko->mod->core_layout.base && ++ addr < (unsigned long)ko->mod->core_layout.base + ++ ko->mod->core_layout.size) { ++ spin_unlock_irqrestore(&ko->mod_lock, flags); ++ if (token_addr->current_ttbr1 == ko->ko_ttbr1 || ++ *ptr == ko->ko_ttbr1) { ++ // ko_mm = ko->ko_mm; ++ // koi_check_and_switch_context(ko_mm); ++ // asid = ASID(ko_mm); ++ // ttbr1 = ko->ko_ttbr1; ++ // ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, asid); ++ asm volatile("mrs %0, ttbr0_el1\n":"=r"(asid):); ++ asid &= TTBR_ASID_MASK; ++ ttbr1 = ko->ko_ttbr1 | asid; ++ rcu_read_unlock(); ++ return ttbr1; ++ } ++ goto out; ++ } ++ spin_unlock_irqrestore(&ko->mod_lock, flags); ++ } ++out: ++ rcu_read_unlock(); ++ return 0; ++} ++/** ++* koi_do_switch_to_kernel_pgtbl - switch to kernel pagetable ++*/ ++__koi_code noinline int koi_do_switch_to_kernel_pgtbl(void) ++{ ++ unsigned long curr_ttbr1, asid; ++ // if (!cpu_online(smp_processor_id())) ++ // return 0; ++ asm volatile(" mrs %0, ttbr1_el1\n" : "=r"(curr_ttbr1)); ++ if ((curr_ttbr1 & KOI_SWAPPER_MASK) == ++ (koi_swapper_ttbr1 & KOI_SWAPPER_MASK)) { ++ return 0; ++ } ++ // if (((curr_ttbr1 & TTBR_ASID_MASK) >> 48) <= 1) { ++ // return 0; ++ // } ++ asm volatile("mrs %0, ttbr0_el1\n":"=r"(asid):); ++ asid &= ~USER_ASID_FLAG; ++ asid &= TTBR_ASID_MASK; ++ write_sysreg(koi_swapper_ttbr1 | asid, ttbr1_el1); ++ isb(); ++ asm volatile(ALTERNATIVE("nop; nop; nop", "ic iallu; dsb nsh; isb", ++ ARM64_WORKAROUND_CAVIUM_27456)); ++ return 1; ++} ++#else ++__koi_code noinline unsigned long koi_do_switch_to_ko_pgtbl(void) ++{ ++ struct koi_mem_hash_node *ko; ++ unsigned long addr, pan_flag, current_ttbr1, asid, ttbr1; ++ unsigned long *ptr; ++ struct mm_struct *ko_mm; ++ int bkt; ++ asm volatile("mrs %0, pan\n" ++ "msr pan, 0x0\n" ++ : "=r"(pan_flag) ++ :); ++ current_ttbr1 = _iee_read_token_ttbr1(iee_offset, current); ++ asm volatile("msr pan, %0\n" : : "r"(pan_flag)); ++ ptr = SHIFT_PERCPU_PTR(koi_irq_current_ttbr1, __kern_my_cpu_offset()); ++ if (current_ttbr1 == 0 && *ptr == 0) ++ return 0; ++ asm volatile(" mrs %0, elr_el1\n" : "=r"(addr)); ++ rcu_read_lock(); ++ hash_for_each_rcu (koi_mem_htbl, bkt, ko, node) { ++ if (ko->mod != NULL && ko->mod->init_layout.base != NULL) { ++ if (addr >= (unsigned long)ko->mod->init_layout.base && ++ addr < (unsigned long)(ko->mod->init_layout.base + ++ ko->mod->init_layout.size)) { ++ rcu_read_unlock(); ++ if (current_ttbr1 == ko->ko_ttbr1 || *ptr == ko->ko_ttbr1) { ++ ko_mm = ko->ko_mm; ++ koi_check_and_switch_context(ko_mm); ++ asid = ASID(ko_mm) | USER_ASID_FLAG; ++ ttbr1 = ko->ko_ttbr1; ++ ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, asid); ++ return ttbr1; ++ } ++ return 0; ++ } ++ } ++ if (addr >= (unsigned long)ko->mod->core_layout.base && ++ addr < (unsigned long)ko->mod->core_layout.base + ++ ko->mod->core_layout.size) { ++ rcu_read_unlock(); ++ if (current_ttbr1 == ko->ko_ttbr1 || *ptr == ko->ko_ttbr1) { ++ ko_mm = ko->ko_mm; ++ koi_check_and_switch_context(ko_mm); ++ asid = ASID(ko_mm) | USER_ASID_FLAG; ++ ttbr1 = ko->ko_ttbr1; ++ ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, asid); ++ return ttbr1; ++ } ++ return 0; ++ } ++ } ++ rcu_read_unlock(); ++ return 0; ++} ++ ++__koi_code noinline int koi_do_switch_to_kernel_pgtbl(void) ++{ ++ unsigned long curr_ttbr1, asid, error_addr; ++ // if (!cpu_online(smp_processor_id())) ++ // return 0; ++ asm volatile(" mrs %0, ttbr1_el1\n" : "=r"(curr_ttbr1)); ++ if ((curr_ttbr1 & KOI_SWAPPER_MASK) == ++ (koi_swapper_ttbr1 & KOI_SWAPPER_MASK)) { ++ return 0; ++ } ++ // if (((curr_ttbr1 & TTBR_ASID_MASK) >> 48) <= 1) { ++ // return 0; ++ // } ++ error_addr = read_sysreg(elr_el1); ++ if ((error_addr >= (unsigned long)__iee_si_data_start) && (error_addr <= (unsigned long)__iee_si_text_end)) ++ { ++ unsigned long esr = read_sysreg(esr_el1); ++ asm volatile("mrs %0, ttbr1_el1\n":"=r"(asid):); ++ asid &= ~USER_ASID_FLAG; ++ asid &= TTBR_ASID_MASK; ++ write_sysreg(koi_swapper_ttbr1 | asid, ttbr1_el1); ++ isb(); ++ printk(KERN_ERR "IEE SI: Error on switch to kernel. ELR_EL1:0x%llx, ESR_EL1:0x%llx, TTBR1:0x%llx", error_addr, esr, curr_ttbr1); ++ } ++ else{ ++ iee_rwx_gate_entry(IEE_SWITCH_TO_KERNEL); ++ } ++ return 1; ++} ++#endif ++/** ++* koi_save_ttbr - save ttbr of each driver module ++* @mod: driver module ++* @pgdp:pointer to driver module top page table,pgd ++*/ ++static void koi_save_ttbr(struct module *mod, pgd_t *pgdp, ++ struct koi_mem_hash_node *node) ++{ ++ phys_addr_t ttbr1 = phys_to_ttbr(virt_to_phys(pgdp)); ++ if (system_supports_cnp()) ++ ttbr1 |= TTBR_CNP_BIT; ++ node->ko_ttbr1 = ttbr1; ++} ++/** ++*kio_normal_page - to obtain the pointer of the corresponding struct page structure ++*from a given page table entry(pte) ++*/ ++struct page *koi_normal_page(pte_t pte) ++{ ++ unsigned long pfn = pte_pfn(pte); ++ ++ if (IS_ENABLED(CONFIG_ARCH_HAS_PTE_SPECIAL)) { ++ if (likely(!pte_special(pte))) ++ goto check_pfn; ++ if (is_zero_pfn(pfn)) { ++ // printk(KERN_ERR "zero pfn found! pte=0x%16llx\n", pte); ++ return NULL; ++ } ++ // if (pte_devmap(pte)) { ++ // // printk(KERN_ERR "pte for dev found! pte=0x%16llx\n", ++ // // pte); ++ // return NULL; ++ // } ++ // return NULL; ++ } ++ ++check_pfn: ++ return pfn_to_page(pfn); ++} ++ ++/** ++ * Copy one pte. Returns 0 if succeeded, or -EAGAIN if one preallocated page ++ * is required to copy this pte. ++*/ ++static inline int koi_copy_present_pte(struct mm_struct *ko_mm, pte_t *dst_pte, pte_t *src_pte, ++ unsigned long addr) ++{ ++ pte_t pte = *src_pte; ++ struct page *page; ++ ++ page = koi_normal_page(pte); ++ if (!page) { ++ printk(KERN_ERR "pte_page unavailable. Impossible.....\n"); ++ return -1; ++ } ++ // printk(KERN_ERR "addr=0x%16llx, dst_pte=0x%16llx\n", addr, dst_pte); ++ #ifdef CONFIG_IEE ++ if ((pte_val(pte) & PTE_USER) && (pte_val(pte) & PTE_DBM) && !(pte_val(pte) & PTE_PXN)) { ++ set_pte(dst_pte, __pte(pte_val(pte) & (~PTE_DBM) | PTE_RDONLY)); ++ } else { ++ #endif ++ set_pte(dst_pte, pte); ++ #ifdef CONFIG_IEE ++ } ++ #endif ++ return 0; ++} ++/** ++* copy huge pmd from kernel space to driver space. ++*/ ++static int koi_copy_huge_pmd(struct mm_struct *ko_mm, pmd_t *dst_pmd, ++ pmd_t *src_pmd, unsigned long addr) ++{ ++ spinlock_t *src_ptl, *dst_ptl; ++ pmd_t pmd; ++ int ret = -ENOMEM; ++ debug_printk("hugepmd: src_pmd=0x%16llx, dst_pmd=0x%16llx, src_pmd_val=0x%16llx, dst_pmd_val=0x%16llx, addr=0x%16llx\n", ++ src_pmd, dst_pmd, pmd_val(*src_pmd), pmd_val(*dst_pmd), addr); ++ dst_ptl = pmd_lockptr(ko_mm, dst_pmd); ++ src_ptl = pmd_lockptr(&init_mm, src_pmd); ++ spin_lock_bh(dst_ptl); ++ spin_lock_bh(src_ptl); ++ ++ pmd = *src_pmd; ++ ++ set_pte((pte_t *)dst_pmd, pmd_pte(pmd)); ++ ret = 0; ++ spin_unlock_bh(src_ptl); ++ spin_unlock_bh(dst_ptl); ++ return ret; ++} ++ ++int __koi_pte_alloc(struct mm_struct *mm, pmd_t *pmd) ++{ ++ spinlock_t *ptl; ++ // pgtable_t new = alloc_page(GFP_PGTABLE_KERNEL); ++ pte_t *new = pte_alloc_one_kernel(mm); ++ printk(KERN_ERR "alloc new=0x%16llx\n", new); ++ if (!new) ++ return -ENOMEM; ++ ++ /* ++ * Ensure all pte setup (eg. pte page lock and page clearing) are ++ * visible before the pte is made visible to other CPUs by being ++ * put into page tables. ++ * ++ * The other side of the story is the pointer chasing in the page ++ * table walking code (when walking the page table without locking; ++ * ie. most of the time). Fortunately, these data accesses consist ++ * of a chain of data-dependent loads, meaning most CPUs (alpha ++ * being the notable exception) will already guarantee loads are ++ * seen in-order. See the alpha page table accessors for the ++ * smp_rmb() barriers in page table walking code. ++ */ ++ smp_wmb(); /* Could be smp_wmb__xxx(before|after)_spin_lock */ ++ ++ ptl = pmd_lockptr(mm, pmd); ++ spin_lock_bh(ptl); ++ if (likely(pmd_none(*pmd))) { /* Has another populated it ? */ ++ mm_inc_nr_ptes(mm); ++ pmd_populate_kernel(mm, pmd, new); ++ new = NULL; ++ } ++ spin_unlock_bh(ptl); ++ if (new) { ++ pte_free_kernel(mm, new); ++ } ++ return 0; ++} ++ ++#define koi_pte_alloc(mm, pmd) (unlikely(pmd_none(*(pmd))) && __koi_pte_alloc(mm, pmd)) ++ ++#define koi_pte_offset_map_lock(mm, pmd, address, ptlp) \ ++({ \ ++ spinlock_t *__ptl = pte_lockptr(mm, pmd); \ ++ pte_t *__pte = pte_offset_map(pmd, address); \ ++ *(ptlp) = __ptl; \ ++ spin_lock_bh(__ptl); \ ++ __pte; \ ++}) ++ ++#define koi_pte_alloc_map_lock(mm, pmd, address, ptlp) \ ++ (koi_pte_alloc(mm, pmd) ? \ ++ NULL : koi_pte_offset_map_lock(mm, pmd, address, ptlp)) ++ ++/** ++*koi_copy_pte_range - copy pte from kernel space to driver space ++*/ ++static int koi_copy_pte_range(struct mm_struct *ko_mm, pmd_t *dst_pmd, ++ pmd_t *src_pmd, unsigned long addr, ++ unsigned long end) ++{ ++ pte_t *src_pte, *dst_pte; ++ spinlock_t *src_ptl, *dst_ptl; ++ struct page* page; ++ int ret = 0; ++again: ++ dst_pte = koi_pte_alloc_map_lock(ko_mm, dst_pmd, addr, &dst_ptl); ++ if (!dst_pte) { ++ ret = -ENOMEM; ++ goto unlock; ++ } ++ src_pte = pte_offset_map(src_pmd, addr); ++ src_ptl = pte_lockptr(&init_mm, src_pmd); ++ spin_lock_bh(src_ptl); ++ do { ++ if (pte_none(*src_pte)) ++ continue; ++ if (unlikely(!pte_present(*src_pte))) { ++ printk(KERN_ERR "present pte found: addr=0x%16llx, end=0x%16llx\n", addr, end); ++ continue; ++ } ++ if (pte_valid(*dst_pte)) { ++ continue; ++ } ++ /* koi_copy_present_pte() will clear `*prealloc` if consumed */ ++ ret = koi_copy_present_pte(ko_mm, dst_pte, src_pte, addr); ++ debug_printk("dst_pte=0x%16llx, dst_pte_val=0x%16llx, src_pte=0x%16llx, src_pte_val=0x%16llx, addr=0x%16llx\n",dst_pte, pte_val(*dst_pte), src_pte, pte_val(*src_pte), addr); ++ if (unlikely(ret == -EAGAIN)) ++ break; ++ } while (dst_pte++, src_pte++, addr += PAGE_SIZE, addr != end); ++ spin_unlock_bh(src_ptl); ++ spin_unlock_bh(dst_ptl); ++ ++ if (ret) { ++ WARN_ON_ONCE(ret != -EAGAIN); ++ ret = 0; ++ } ++ if (addr != end) ++ goto again; ++ ++ return ret; ++unlock: ++ spin_unlock_bh(dst_ptl); ++ return ret; ++} ++ ++int __koi_pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) ++{ ++ spinlock_t *ptl; ++ // struct page* page = alloc_page(GFP_PGTABLE_KERNEL); ++ // pmd_t *new = (pmd_t *)page_address(page); ++ pmd_t *new = pmd_alloc_one(mm, address); ++ if (!new) ++ return -ENOMEM; ++ ++ smp_wmb(); /* See comment in __pte_alloc */ ++ ++ ptl = pud_lockptr(mm, pud); ++ spin_lock_bh(ptl); ++ if (!pud_present(*pud)) { ++ mm_inc_nr_pmds(mm); ++ pud_populate(mm, pud, new); ++ } else { /* Another has populated it */ ++ pmd_free(mm, new); ++ // free_page((unsigned long)new); ++ } ++ spin_unlock_bh(ptl); ++ return 0; ++} ++ ++static inline pmd_t *koi_pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) ++{ ++ return (unlikely(pud_none(*pud)) && __koi_pmd_alloc(mm, pud, address))? ++ NULL: pmd_offset(pud, address); ++} ++ ++/** ++*kio_copy_pmd_range - copy pmd from kernel to driver space ++*/ ++static inline int koi_copy_pmd_range(struct mm_struct *ko_mm, pud_t *dst_pud, ++ pud_t *src_pud, unsigned long addr, ++ unsigned long end) ++{ ++ pmd_t *src_pmd, *dst_pmd; ++ unsigned long next, flag; ++ int err; ++ debug_printk("copy_pud_range src_pud=0x%16llx, dst_pud=0x%16llx, addr=0x%16llx, end=0x%16llx\n", src_pud, dst_pud, addr, end); ++ dst_pmd = koi_pmd_alloc(ko_mm, dst_pud, addr); ++ if (!dst_pmd) { ++ return -ENOMEM; ++ } ++ src_pmd = pmd_offset(src_pud, addr); ++ do { ++ next = pmd_addr_end(addr, end); ++ flag = pmd_val(*src_pmd) & KOI_FLAG_MASK; ++ // debug_printk("src_pmd=0x%16llx, dst_pmd=0x%16llx, addr=0x%16llx\n", src_pmd, dst_pmd, next); ++ // CONFIG_TRANSPARENT_HUGEPAGE is enabled, so we must add copy_huge_pmd ++ if (pmd_none(*src_pmd)) ++ continue; ++ if (!(pmd_val(*src_pmd) & PMD_TABLE_BIT)) { ++ // if src_pmd is huge page ++ debug_printk("src_pmd=0x%16llx, dst_pmd=0x%16llx, addr=0x%16llx\n", src_pmd, dst_pmd, addr); ++ err = koi_copy_huge_pmd(ko_mm, dst_pmd, src_pmd, addr); ++ if (err == -ENOMEM) ++ return -ENOMEM; ++ continue; ++ } ++ if (koi_copy_pte_range(ko_mm, dst_pmd, src_pmd, addr, next)) ++ return -ENOMEM; ++ set_pmd(dst_pmd, __pmd(pmd_val(*dst_pmd) | flag)); ++ debug_printk("src_pmd_val=0x%16llx, dst_pmd_val=0x%16llx, addr=0x%16llx\n", pmd_val(*src_pmd), pmd_val(*dst_pmd), addr); ++ } while (dst_pmd++, src_pmd++, addr = next, addr != end); ++ return 0; ++} ++ ++int __koi_pud_alloc(struct mm_struct *mm, p4d_t *p4d, unsigned long address) ++{ ++ // pud_t *new = pud_alloc_one(mm, address); ++ ++ // struct page *page = alloc_page(GFP_PGTABLE_KERNEL); ++ // pud_t *new = (pud_t *)page_address(page); ++ pud_t *new = pud_alloc_one(mm, address); ++ printk(KERN_ERR "pud alloc pud=0x%16llx\n", new); ++ if (!new) ++ return -ENOMEM; ++ ++ smp_wmb(); /* See comment in __pte_alloc */ ++ ++ spin_lock_bh(&mm->page_table_lock); ++ if (!p4d_present(*p4d)) { ++ mm_inc_nr_puds(mm); ++ p4d_populate(mm, p4d, new); ++ } else {/* Another has populated it */ ++ printk(KERN_ERR "free pud=0x%16llx\n", new); ++ pud_free(mm, new); ++ // free_page((unsigned long)new); ++ } ++ spin_unlock_bh(&mm->page_table_lock); ++ return 0; ++} ++ ++static inline pud_t *koi_pud_alloc(struct mm_struct *mm, p4d_t *p4d, ++ unsigned long address) ++{ ++ return (unlikely(p4d_none(*p4d)) && __koi_pud_alloc(mm, p4d, address)) ? ++ NULL : pud_offset(p4d, address); ++} ++ ++static int koi_copy_huge_pud(struct mm_struct *ko_mm, pud_t *dst_pud, pud_t *src_pud, unsigned long addr) { ++ spinlock_t *src_ptl, *dst_ptl; ++ // pmd_t pmd; ++ int ret = -ENOMEM; ++ debug_printk("src_pud=0x%16llx, dst_pud=0x%16llx, addr=0x%16llx\n", src_pud, dst_pud, addr); ++ dst_ptl = pud_lockptr(ko_mm, dst_pud); ++ src_ptl = pud_lockptr(&init_mm, src_pud); ++ spin_lock_bh(dst_ptl); ++ spin_lock_bh(src_ptl); ++ set_pte((pte_t *)dst_pud, __pte(pud_val(*src_pud))); ++ spin_unlock_bh(src_ptl); ++ spin_unlock_bh(dst_ptl); ++ ret = 0; ++ return ret; ++} ++ ++/** ++*koi_copy_pud_range - copy pud from kernel to driver ++*/ ++static inline int koi_copy_pud_range(struct mm_struct *ko_mm, p4d_t *dst_p4d, ++ p4d_t *src_p4d, unsigned long addr, ++ unsigned long end) ++{ ++ pud_t *src_pud, *dst_pud; ++ unsigned long next, flag; ++ dst_pud = koi_pud_alloc(ko_mm, dst_p4d, addr); ++ if (!dst_pud) ++ return -ENOMEM; ++ src_pud = pud_offset(src_p4d, addr); ++ do { ++ next = pud_addr_end(addr, end); ++ flag = pud_val(*src_pud) & KOI_FLAG_MASK; ++ debug_printk("src_pud=0x%16llx, dst_pud=0x%16llx, addr=0x%16llx\n", src_pud, dst_pud, next); ++ if (pud_none(*src_pud)) { ++ continue; ++ } ++ if (!(pud_val(*src_pud) & PMD_TABLE_BIT)) { ++ // indicates that the src_pud maps to a huge page ++ koi_copy_huge_pud(ko_mm, dst_pud, src_pud, addr); ++ continue; ++ } ++ // if (pud_trans_huge(*src_pud) || pud_devmap(*src_pud)) { ++ // debug_printk("pud_trans_huge=%d, pud_devmap=%d, src_pud=0x%16llx\n", pud_trans_huge(*src_pud) , pud_devmap(*src_pud), src_pud); ++ // continue; ++ // /* fall through */ ++ // } ++ if (koi_copy_pmd_range(ko_mm, dst_pud, src_pud, addr, next)) ++ return -ENOMEM; ++ set_pud(dst_pud, __pud(pud_val(*dst_pud) | flag)); ++ } while (dst_pud++, src_pud++, addr = next, addr != end); ++ return 0; ++} ++ ++/** ++* koi_copy_p4d_range - map the kernel pagetable to the driver space level by level ++* @ko_mm: the mm_struct of driver module ++* @dst_pgd: destination pgd ++* @src_pgd: source pgd ++* @addr: the start of address ++* @end: the end of address ++*/ ++static inline int koi_copy_p4d_range(struct mm_struct *ko_mm, pgd_t *dst_pgd, ++ pgd_t *src_pgd, unsigned long addr, ++ unsigned long end) ++{ ++ p4d_t *src_p4d, *dst_p4d; ++ unsigned long next; ++ dst_p4d = p4d_alloc(ko_mm, dst_pgd, addr); ++ if (!dst_p4d) ++ return -ENOMEM; ++ src_p4d = p4d_offset(src_pgd, addr); ++ do { ++ next = p4d_addr_end(addr, end); ++ if (p4d_none(*src_p4d) || p4d_bad(*src_p4d)) ++ continue; ++ debug_printk(KERN_ERR "dst_p4d=0x%16llx, dst_p4d_val=0x%16llx\n", dst_p4d, p4d_val(*dst_p4d)); ++ if (koi_copy_pud_range(ko_mm, dst_p4d, src_p4d, addr, next)) { ++ return -ENOMEM; ++ } ++ } while (dst_p4d++, src_p4d++, addr = next, addr != end); ++ return 0; ++} ++ ++/** ++*int koi_copy_pagetable - map the address range from "addr" to "end" to the driver pagetable ++*@ko_mm: the mm_struct of the driver module ++*@koi_pg_dir: koi_pg_dir, related to the driver module, the entry for driver pagetable ++*@addr: the starting address of mapping zone ++*@end: the end address of mapping zone ++*/ ++int koi_copy_pagetable(struct mm_struct *ko_mm, pgd_t *koi_pg_dir, ++ unsigned long addr, unsigned long end) ++{ ++ int ret = 0; ++ unsigned long next; ++ ++ pgd_t *src_pgd, *dst_pgd; ++ unsigned long flag; ++ src_pgd = pgd_offset_pgd(swapper_pg_dir, addr); ++ dst_pgd = pgd_offset_pgd(koi_pg_dir, addr); ++ do { ++ flag = pgd_val(*src_pgd) & KOI_FLAG_MASK; ++ next = pgd_addr_end(addr, end); ++ if (pgd_none(*src_pgd) || pgd_bad(*src_pgd)) ++ continue; ++ if (unlikely(koi_copy_p4d_range(ko_mm, dst_pgd, src_pgd, addr, ++ next))) { ++ ret = -ENOMEM; ++ break; ++ } ++ set_pgd(dst_pgd, __pgd(pgd_val(*dst_pgd) | flag)); ++ } while (dst_pgd++, src_pgd++, addr = next, addr != end); ++ ++ return ret; ++} ++ ++void koi_set_rdonly(unsigned long addr, pgd_t *pgdir) ++{ ++ p4d_t *p4dp; ++ pud_t *pudp; ++ pmd_t *pmdp; ++ pte_t *ptep; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ if (pgd_none(*pgdp) || pgd_bad(*pgdp)) { ++ return; ++ } ++ ++ p4dp = p4d_offset(pgdp, addr); ++ if (p4d_none(*p4dp) || p4d_bad(*p4dp)) { ++ return; ++ } ++ ++ pudp = pud_offset(p4dp, addr); ++ if (pud_none(*pudp) || pud_bad(*pudp)) { ++ return; ++ } ++ pmdp = pmd_offset(pudp, addr); ++ if (pmd_none(*pmdp) || pmd_bad(*pmdp)) { ++ return; ++ } ++ ++ ptep = pte_offset_kernel(pmdp, addr); ++ if (pte_none(*ptep)) { ++ // printk(KERN_ERR "ptep 0x%16llx not available\n", ptep); ++ return; ++ } ++ set_pte(ptep, __pte(pte_val(*ptep) | PTE_RDONLY)); ++ // printk(KERN_ERR "set_readonly successfully\n"); ++ return; ++} ++ ++void koi_unmap_pte_table(struct mm_struct *ko_mm, pmd_t *pmd, unsigned long addr, unsigned long end) { ++ pte_t *pte; ++ if (!pmd) ++ return; ++ debug_printk("pmd=0x%16llx, addr=0x%16llx, end=0x%16llx\n", pmd, addr, end); ++ ++ // struct page *page = pte_page(*pte); ++ // printk(KERN_ERR "pte=0x%16llx, pte_val=0x%16llx\n", pte, pte_val(*pte)); ++ // debug_printk("free pte table 0x%16llx, pmd=0x%16llx, page=0x%16llx, pmd points to page=0x%16llx\n", pte, pmd, page, pte_page(pmd_pte(*pmd))); ++ // printk(KERN_ERR "pmd_pfn=0x%16llx, pte_pfn=0x%16llx\n", pmd_pfn(*pmd), pte_pfn(*pte)); ++ // pte_free(ko_mm, pte_page(pmd_pte(*pmd))); ++ do { ++ pte = pte_offset_kernel(pmd, addr); ++ debug_printk("pte=0x%16llx, pte_val=0x%16llx\n", pte, pte_val(*pte)); ++ set_pte(pte, __pte(0)); ++ } while (addr += PAGE_SIZE, addr != end); ++} ++ ++void koi_unmap_pmd_range(struct mm_struct *ko_mm, pud_t *pud, unsigned long addr, unsigned long end) { ++ pmd_t *pmd, *orig_pmd; ++ unsigned long next; ++ if (!pud) ++ return; ++ orig_pmd = pmd_offset(pud, addr); ++ pmd = orig_pmd; ++ debug_printk("pud=0x%16llx, addr=0x%16llx, end=0x%16llx\n", pud, addr, end); ++ // printk(KERN_ERR "pud_pfn=0x%16llx, pmd_pfn=0x%16llx\n", pud_pfn(*pud), pmd_pfn(*pmd)); ++ do { ++ // printk(KERN_ERR "pmd=0x%16llx, pmd_val=0x%16llx\n", pmd, pmd_val(*pmd)); ++ next = pmd_addr_end(addr, end); ++ if (pmd_none_or_clear_bad(pmd)) ++ continue; ++ koi_unmap_pte_table(ko_mm, pmd, addr, next); ++ } while(pmd++, addr = next, addr != end); ++} ++ ++void koi_unmap_pud_range(struct mm_struct *ko_mm, p4d_t *p4d, unsigned long addr, unsigned long end) { ++ pud_t *pud, *orig_pud; ++ unsigned long next; ++ if (!p4d) ++ return; ++ orig_pud = pud_offset(p4d, addr); ++ pud = orig_pud; ++ debug_printk("p4d=0x%16llx, addr=0x%16llx, end=0x%16llx\n", p4d, addr, end); ++ do { ++ // printk(KERN_ERR "pud=0x%16llx, pud_val=0x%16llx\n", pud, pud_val(*pud)); ++ next = pud_addr_end(addr, end); ++ if (pud_none_or_clear_bad(pud)) { ++ // if pud points to a huge page, just clear and skip it. ++ continue; ++ } ++ koi_unmap_pmd_range(ko_mm, pud, addr, next); ++ } while (pud++, addr = next, addr != end); ++ debug_printk("free pud 0x%16llx, p4d=0x%16llx, orig_pud=0x%16llx\n", pud, p4d, orig_pud); ++ // pud_free(ko_mm, (unsigned long)orig_pud & PAGE_MASK); ++} ++ ++void koi_unmap_p4d_range(struct mm_struct *ko_mm, pgd_t *pgd, unsigned long addr, unsigned long end) { ++ p4d_t *p4d, *orig_p4d; ++ unsigned long next; ++ if (!pgd) ++ return; ++ debug_printk("pgd=0x%16llx, addr=0x%16llx, end=0x%16llx\n", pgd, addr, end); ++ orig_p4d = p4d_offset(pgd, addr); ++ p4d = orig_p4d; ++ do { ++ next = p4d_addr_end(addr, end); ++ // printk(KERN_ERR "p4d=0x%16llx, p4d_val=0x%16llx, p4d_none=%d\n", p4d, p4d_val(*p4d), p4d_none(*p4d)); ++ if (p4d_none_or_clear_bad(p4d)) { ++ // printk(KERN_ERR "p4d none=%d, p4d_bad=%d\n", p4d_none(*p4d), p4d_bad(*p4d)); ++ continue; ++ } ++ koi_unmap_pud_range(ko_mm, p4d, addr, next); ++ } while (p4d++, addr = next, addr != end); ++} ++ ++void koi_unmap_pagetable(struct mm_struct *ko_mm, pgd_t *ko_pg_dir, unsigned long addr, unsigned long end) { ++ unsigned long next; ++ pgd_t *pgd = pgd_offset_pgd(ko_pg_dir, addr); ++ debug_printk("freepagetable addr=0x%16llx, end=0x%16llx\n", addr, end); ++ do { ++ next = pgd_addr_end(addr, end); ++ // printk(KERN_ERR "pgd=0x%16llx, pgd_val=0x%16llx\n", pgd, pgd_val(*pgd)); ++ if (pgd_none_or_clear_bad(pgd)) { ++ // printk(KERN_ERR "pgd none\n"); ++ continue; ++ } ++ koi_unmap_p4d_range(ko_mm, pgd, addr, next); ++ } while (pgd++, addr = next, addr != end); ++} ++ ++void koi_remove_pte_range(struct mm_struct *ko_mm, pgd_t *ko_pg_dir, pmd_t *pmd) { ++ pte_t *pte = (pte_t *)pmd_page_vaddr(*pmd); ++ debug_printk("pte=0x%16llx, page=0x%16llx, pmd=0x%16llx, pmd_val=0x%16llx\n", pte, pte_page(pmd_pte(*pmd)), pmd, pmd_val(*pmd)); ++ // printk(KERN_ERR "pte=0x%16llx, pte_val=0x%16llx, pte_page=0x%16llx\n", pte, pte_val(*pte), pte_page(*pte)); ++ printk(KERN_ERR "free orig_pte=0x%16llx\n", pte); ++ pte_free_kernel(ko_mm, pte); ++ // __free_page((unsigned long)pte_page(pmd_pte(*pmd))); ++ // free_page((unsigned long)pte); ++} ++ ++void koi_remove_pmd_range(struct mm_struct *ko_mm, pgd_t *ko_pg_dir, pud_t *pud) { ++ pmd_t *orig_pmd = pud_pgtable(*pud); ++ pmd_t *pmd; ++ int i; ++ for (i = 0; i < PTRS_PER_PMD; i++) { ++ pmd = orig_pmd + i; ++ if (pmd_none(*pmd) || pmd_bad(*pmd)) ++ continue; ++ debug_printk("pmd=0x%16llx, pmd_val=0x%16llx\n", pmd, pmd_val(*pmd)); ++ koi_remove_pte_range(ko_mm, ko_pg_dir, pmd); ++ } ++ debug_printk("free pmd=0x%16llx, page=0x%16llx\n", orig_pmd, pte_page(pud_pte(*pud))); ++ printk(KERN_ERR "free orig_pmd=0x%16llx\n", orig_pmd); ++ pmd_free(ko_mm, orig_pmd); ++ // free_page((unsigned long)orig_pmd); ++} ++ ++void koi_remove_pud_range(struct mm_struct *ko_mm, pgd_t *ko_pg_dir, p4d_t *p4d) { ++ pud_t *orig_pud = p4d_pgtable(*p4d); ++ pud_t *pud; ++ int i; ++ for (i = 0; i < PTRS_PER_PUD; i++) { ++ pud = orig_pud + i; ++ if (pud_none(*pud) || pud_bad(*pud)) ++ continue; ++ debug_printk("pud=0x%16llx, pud_val=0x%16llx\n", pud, pud_val(*pud)); ++ koi_remove_pmd_range(ko_mm, ko_pg_dir, pud); ++ } ++ debug_printk("free pud=0x%16llx, page=0x%16llx\n", orig_pud, pte_page(p4d_pte(*p4d))); ++ printk(KERN_ERR "free orig_pud=0x%16llx\n", orig_pud); ++ pud_free(ko_mm, orig_pud); ++ // free_page((unsigned long)orig_pud); ++} ++ ++void koi_remove_pagetable(struct mm_struct *ko_mm, pgd_t *ko_pg_dir) { ++ pgd_t *pgd; ++ int i; ++ for (i = 0; i < PTRS_PER_PGD; i++) { ++ pgd = ko_pg_dir + i; ++ if (p4d_none(*(p4d_t *)pgd) || p4d_bad(*(p4d_t *)pgd)) ++ continue; ++ debug_printk("pgd=0x%16llx, pgd_val=0x%16llx\n", pgd, pgd_val(*pgd)); ++ koi_remove_pud_range(ko_mm, ko_pg_dir, (p4d_t *)pgd); ++ } ++ debug_printk("free pgd=0x%16llx\n", ko_pg_dir); ++ pgd_free(ko_mm, ko_pg_dir); ++ flush_tlb_all(); ++} ++ ++void koi_destroy_pagetable(struct module *mod) ++{ ++ // int cpu; ++ // unsigned long *ptr; ++ struct koi_mem_hash_node *target = NULL; ++ struct koi_mem_list *mem_node; ++ struct koi_addr_map *addr_map_node; ++ unsigned long bkt; ++ unsigned long vbar; ++ unsigned long flags; ++ asm volatile("mrs %0, VBAR_EL1\n" : "=r"(vbar) :); ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ // printk(KERN_ERR "mem node for module: %s not found, maybe destroyed before?\n", ++ // mod->name); ++ return; ++ } ++ spin_lock_irqsave(&target->mod_lock, flags); ++ target->is_valid = false; ++ spin_unlock_irqrestore(&target->mod_lock, flags); ++ ++ spin_lock_irqsave(&koi_mem_htbl_spin_lock, flags); ++ hash_del_rcu(&target->node); ++ call_rcu(&target->rcu, koi_mem_hash_node_free); ++ spin_unlock_irqrestore(&koi_mem_htbl_spin_lock, flags); ++ ++ // free addr_htbl ++ spin_lock(&target->addr_htbl_spin_lock); ++ hash_for_each_rcu (target->addr_htbl, bkt, addr_map_node, node) { ++ hash_del_rcu(&addr_map_node->node); ++ call_rcu(&addr_map_node->rcu, koi_addr_map_node_free); ++ } ++ spin_unlock(&target->addr_htbl_spin_lock); ++ // free free mem list ++ spin_lock(&target->spin_lock); ++ list_for_each_entry_rcu (mem_node, &target->mem_list_head, list) { ++ list_del_rcu(&mem_node->list); ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } ++ spin_unlock(&target->spin_lock); ++ ++ koi_remove_pagetable(target->ko_mm, target->ko_mm->pgd); ++ kfree(target->ko_mm); ++} ++ ++/** ++* koi_create_pagetable - create pagetable for driver ++* @mod: driver module ++* 1.create a new koi_mem_hash_node new_node ++* 2.create page table return the pgd address, init the new_node->pgdp ++* 3.create and init the new_node->ko_mm ++* 4.map swapper_ttbr1 to the newly created pagetable ++* 5.map the interrupt vector table to the newly created pagetable ++* 6.map the init_layout of the module ++* 7.map the core_layout of the module ++* 8.map switch_to_kernel_pgtable into driver view ++* 9.map share memory ++*/ ++void koi_create_pagetable(struct module *mod) ++{ ++ int ret = 0, cpu; ++ unsigned long vbar, addr, ttbr1; ++ pgd_t *pgdp; ++ unsigned long *ptr; ++ struct koi_mem_list *new_mem_node; ++ struct koi_mem_hash_node *new_node = ++ kzalloc(sizeof(struct koi_mem_hash_node), GFP_KERNEL); ++ if (!new_node) { ++ // printk(KERN_ERR "NULL new_node\n"); ++ return; ++ }; ++ if (koi_swapper_ttbr1 == 0) { ++ pgdp = lm_alias(swapper_pg_dir); ++ ttbr1 = phys_to_ttbr(virt_to_phys(pgdp)); ++ if (system_supports_cnp() && ++ !WARN_ON(pgdp != lm_alias(swapper_pg_dir))) ++ ttbr1 |= TTBR_CNP_BIT; ++ ++ koi_swapper_ttbr1 = ttbr1; ++ // __WRITE_ONCE(koi_swapper_ttbr1, ttbr1); ++ // koi_set_rdonly(&koi_swapper_ttbr1, swapper_pg_dir); ++ } ++ new_node->pgdp = koi_pgd_alloc(); ++ new_node->ko_mm = ++ kzalloc(sizeof(struct mm_struct) + ++ sizeof(unsigned long) * BITS_TO_LONGS(NR_CPUS), ++ GFP_KERNEL); ++ init_ko_mm(new_node->ko_mm, new_node->pgdp); ++ new_node->mod = mod; ++ koi_save_ttbr(mod, new_node->pgdp, new_node); ++ debug_printk("copying koi_data, start=0x%16llx, end=0x%16llx\n", ++ (unsigned long)__koi_data_start, (unsigned long)__koi_data_end); ++ // copy koi_swapper_ttbr1, which records page dir base for kernel view ++ koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, ++ (unsigned long)__koi_data_start, ++ (unsigned long)__koi_data_end); ++ asm volatile("mrs %0, VBAR_EL1\n" : "=r"(vbar) :); ++ ++ // copy interrupt vectors ++ debug_printk("copying interrupt vectors, start=0x%16llx, end=0x%16llx\n", ++ vbar & PAGE_MASK, (vbar + PAGE_SIZE - 1) & PAGE_MASK); ++ koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, vbar & PAGE_MASK, ++ (vbar + PAGE_SIZE - 1) & PAGE_MASK); ++ ++ // copy module init_layout, which contains init data and text in driver ++ debug_printk("copying init_layout, start=0x%16llx, end=0x%16llx\n", ++ (unsigned long)mod->init_layout.base, (unsigned long)mod->init_layout.base + mod->init_layout.size); ++ ret = koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, ++ (unsigned long)mod->init_layout.base, ++ (unsigned long)mod->init_layout.base + ++ mod->init_layout.size); ++ if (ret != 0) ++ printk(KERN_ERR ++ "\033[33mError occur when copying init_layout, Eno:%d\033[0m\n", ++ ret); ++ ++ // copy module core_layout, which contains non-init data and text in driver ++ debug_printk(KERN_ERR "copying core_layout, start=0x%16llx, end=0x%16llx\n", ++ (unsigned long)mod->core_layout.base, (unsigned long)mod->core_layout.base + mod->core_layout.size); ++ ret = koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, ++ (unsigned long)mod->core_layout.base, ++ (unsigned long)mod->core_layout.base + ++ mod->core_layout.size); ++ if (ret != 0) ++ printk(KERN_ERR ++ "\033[33mError occur when copying core_layout, Eno: %d\033[0m\n", ++ ret); ++ ++ ++ // mapping switch_to_kernel_pgtable into driver view, which is used to switch to kernel view when entering INT ++ debug_printk("copying core_layout, start=0x%16llx, end=0x%16llx\n", ++ (unsigned long)__koi_code_start, (unsigned long)__koi_code_end); ++ koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, ++ (unsigned long)__koi_code_start, ++ (unsigned long)__koi_code_end); ++ ++ for_each_possible_cpu (cpu) { ++ ptr = per_cpu(irq_stack_ptr, cpu); ++ debug_printk( ++ "\033[33mirq_stack_ptr on cpu %d addr=0x%16llx, end=0x%16llx\033[0m\n", ++ cpu, (unsigned long)ptr, ++ (unsigned long)ptr + IRQ_STACK_SIZE); ++ koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, ++ (unsigned long)ptr, ++ (unsigned long)ptr + IRQ_STACK_SIZE); ++ } ++ ++ for_each_possible_cpu (cpu) { ++ ptr = per_cpu(koi_irq_current_ttbr1, cpu); ++ debug_printk( ++ "\033[33mirq_current_ptr on cpu %d addr=0x%16llx, end=0x%16llx\033[0m\n", ++ cpu, (unsigned long)ptr, (unsigned long)ptr + PAGE_SIZE); ++ koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, ++ (unsigned long)ptr, ++ (unsigned long)ptr + PAGE_SIZE); ++ } ++ ++#ifdef CONFIG_IEE ++ debug_printk( ++ "\033[33miee_si addr=0x%16llx, end=0x%16llx\033[0m\n", ++ (unsigned long)__iee_si_data_start, (unsigned long)__iee_si_text_end); ++ // mapping iee_rwx_gate_entry and iee_si_base to ko's pagetable ++ koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, ++ (unsigned long)__iee_si_data_start, ++ (unsigned long)__iee_si_text_end); ++ debug_printk( ++ "\033[33miee_si mapping finished\n"); ++#endif ++ ++ // alloc 16KB memory for new ko, and add it into hashtable ++ addr = (unsigned long)kmalloc(THREAD_SIZE, GFP_KERNEL); ++ if ((void *)addr == NULL) { ++ printk(KERN_ERR "alloc buffer error\n"); ++ } ++ debug_printk( ++ "\033[33mcopying buffer, start=0x%16llx, end=0x%16llx\033[0m\n", ++ addr, addr + THREAD_SIZE); ++ koi_copy_pagetable(new_node->ko_mm, new_node->pgdp, addr, ++ addr + THREAD_SIZE); ++#ifdef CONFIG_IEE ++ iee_rw_gate(IEE_SET_KOI_PGD, new_node->ko_mm->pgd); ++#endif ++ new_mem_node = kmalloc(sizeof(struct koi_mem_list), GFP_KERNEL); ++ if (new_mem_node == NULL) { ++ printk(KERN_ERR "alloc new_mem_node error\n"); ++ } ++ new_mem_node->addr = addr; ++ new_mem_node->size = THREAD_SIZE; ++ ++ new_node->mem_list_head = ++ (struct list_head)LIST_HEAD_INIT(new_node->mem_list_head); ++ hash_init(new_node->addr_htbl); ++ spin_lock_init(&new_node->addr_htbl_spin_lock); ++ spin_lock_init(&new_node->spin_lock); ++ spin_lock_init(&new_node->mod_lock); ++ new_node->is_valid = true; ++ ++ spin_lock(&new_node->spin_lock); ++ list_add_rcu(&new_mem_node->list, &new_node->mem_list_head); ++ spin_unlock(&new_node->spin_lock); ++ ++ spin_lock(&koi_mem_htbl_spin_lock); ++ hash_add_rcu(koi_mem_htbl, &new_node->node, ++ (unsigned long)new_node->mod); ++ spin_unlock(&koi_mem_htbl_spin_lock); ++ ++ // printk(KERN_DEBUG "mod=0x%16llx, end=0x16llx\n", mod, (unsigned long)mod + sizeof(struct module)); ++ // printk(KERN_ERR "koi create pagetable pgd=0x%16llx\n", new_node->pgdp); ++ // printk(KERN_ERR "koi mm=0x%16llx\n", (unsigned long)(new_node->ko_mm)); ++} ++/** ++* koi_mem_alloc ++*@mod: driver module ++*@orig_addr: the starting address of the parameter in kernel ++*@size: the size of the parameter ++*/ ++unsigned long koi_mem_alloc(struct module *mod, unsigned long orig_addr, ++ unsigned long size) ++{ ++ struct koi_mem_hash_node *target = NULL; ++ struct koi_mem_list *mem_node; ++ struct koi_addr_map *new_addr_node; ++ unsigned long addr = 0, flags; ++ struct koi_mem_list *new_mem_node; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk(KERN_ERR "mem node for module: %s not found\n", ++ mod->name); ++ return 0; ++ } ++ spin_lock_irqsave(&target->spin_lock, flags); ++ list_for_each_entry_rcu (mem_node, &target->mem_list_head, list) { ++ if (mem_node->size >= size) { ++ addr = mem_node->addr; ++ mem_node->size -= size; ++ if (mem_node->size == 0) { ++ list_del_rcu(&mem_node->list); ++ } else { ++ new_mem_node = ++ kmalloc(sizeof(struct koi_mem_list), ++ GFP_ATOMIC); ++ new_mem_node->addr = addr + size; ++ new_mem_node->size = mem_node->size; ++ list_replace_rcu(&mem_node->list, ++ &new_mem_node->list); ++ } ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } ++ } ++ spin_unlock_irqrestore(&target->spin_lock, flags); ++ if (!addr) { ++ addr = (unsigned long)kmalloc(THREAD_SIZE, GFP_KERNEL); ++ if ((void *)addr == NULL) { ++ return 0; ++ } ++ koi_copy_pagetable(target->ko_mm, target->pgdp, addr, ++ addr + THREAD_SIZE); ++ mem_node = kmalloc(sizeof(struct koi_mem_list), GFP_KERNEL); ++ if (!mem_node) { ++ printk(KERN_ERR "NULL mem_node\n"); ++ } ++ if (size > THREAD_SIZE) { ++ return 0; ++ } ++ mem_node->addr = addr + size; ++ mem_node->size = THREAD_SIZE - size; ++ spin_lock_irqsave(&target->spin_lock, flags); ++ list_add_tail_rcu(&mem_node->list, &target->mem_list_head); ++ spin_unlock_irqrestore(&target->spin_lock, flags); ++ } ++ ++ new_addr_node = kzalloc(sizeof(struct koi_addr_map), GFP_KERNEL); ++ new_addr_node->buffer_addr = addr; ++ new_addr_node->orig_addr = orig_addr; ++ spin_lock_irqsave(&target->addr_htbl_spin_lock, flags); ++ hash_add_rcu(target->addr_htbl, &new_addr_node->node, ++ new_addr_node->buffer_addr); ++ spin_unlock_irqrestore(&target->addr_htbl_spin_lock, flags); ++ return addr; ++} ++EXPORT_SYMBOL(koi_mem_alloc); ++// find the parameter pointer corresponding to the copy ++noinline void *koi_mem_lookup(struct module *mod, unsigned long addr) ++{ ++ struct koi_mem_hash_node *target = NULL; ++ struct koi_addr_map *addr_map_node; ++ unsigned long orig_addr = addr; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk(KERN_ERR "mem node for module: %s not found\n", ++ mod->name); ++ return NULL; ++ } ++ ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (target->addr_htbl, addr_map_node, node, ++ orig_addr) { ++ if (addr_map_node->buffer_addr == addr) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (addr_map_node) { ++ return (void *)(addr_map_node->orig_addr); ++ } else { ++ return NULL; ++ } ++} ++EXPORT_SYMBOL(koi_mem_lookup); ++/** ++* kio_mem_free - recycle a copy of the copied parameters and synchronize the parameters ++* @mod: driver module ++* @addr: the starting addr of parameter ++* @size: the size of the parameter ++* @is_const: const pointers or not ++* @count: contry the number of parameters ++*/ ++noinline void koi_mem_free(struct module *mod, unsigned long addr, ++ unsigned long size, bool is_const, int count, ...) ++{ ++ struct koi_mem_hash_node *target = NULL; ++ struct koi_mem_list *mem_node; ++ struct list_head *pos = NULL; ++ struct koi_addr_map *addr_map_node; ++ unsigned long orig_size = size; ++ unsigned long orig_addr = addr; ++ va_list valist; ++ int i; ++ unsigned int offset; ++ unsigned long flags; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk(KERN_ERR "mem node for module: %s not found\n", ++ mod->name); ++ return; ++ } ++ ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (target->addr_htbl, addr_map_node, node, ++ orig_addr) { ++ if (addr_map_node->buffer_addr == orig_addr) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ va_start(valist, count); ++ for (i = 0; i < count; i++) { ++ offset = va_arg(valist, int); ++ *(unsigned long *)(addr_map_node->buffer_addr + offset) = ++ *(unsigned long *)(addr_map_node->orig_addr + offset); ++ } ++ va_end(valist); ++ memcpy((void *)addr_map_node->orig_addr, ++ (void *)addr_map_node->buffer_addr, orig_size); ++ ++ spin_lock_irqsave(&target->addr_htbl_spin_lock, flags); ++ hlist_del_init_rcu(&addr_map_node->node); ++ call_rcu(&addr_map_node->rcu, koi_addr_map_node_free); ++ spin_unlock_irqrestore(&target->addr_htbl_spin_lock, flags); ++ ++ spin_lock_irqsave(&target->spin_lock, flags); ++ list_for_each_entry_rcu (mem_node, &target->mem_list_head, list) { ++ if (mem_node->addr + mem_node->size == addr) { ++ pos = mem_node->list.prev; ++ addr = mem_node->addr; ++ size += mem_node->size; ++ list_del_rcu(&mem_node->list); ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } else if (addr + size == mem_node->addr) { ++ if (!pos) ++ pos = mem_node->list.prev; ++ size += mem_node->size; ++ list_del_rcu(&mem_node->list); ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } else if (addr + size < mem_node->addr) { ++ if (!pos) ++ pos = mem_node->list.prev; ++ break; ++ } ++ } ++ mem_node = kzalloc(sizeof(struct koi_mem_list), GFP_ATOMIC); ++ mem_node->addr = addr; ++ mem_node->size = size; ++ if (pos) ++ list_add_rcu(&mem_node->list, pos); ++ else ++ list_add_tail_rcu(&mem_node->list, &target->mem_list_head); ++ spin_unlock_irqrestore(&target->spin_lock, flags); ++} ++EXPORT_SYMBOL(koi_mem_free); ++/** ++* koi_mem_free_callback - used to recycle the copy of parameter. ++*@addr: the address of the parameter ++*@(*func)(void*): callback func, used to release the copy of the parameter pointer ++*/ ++noinline void koi_mem_free_callback(struct module *mod, unsigned long addr, ++ unsigned long size, void (*func)(void *)) ++{ ++ struct koi_mem_hash_node *target = NULL; ++ struct koi_mem_list *mem_node; ++ struct list_head *pos = NULL; ++ struct koi_addr_map *addr_map_node; ++ unsigned long flags; ++ unsigned long orig_size = size; ++ unsigned long orig_addr = addr; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ // printk("mem node for module: %s not found\n", mod->name); ++ return; ++ } ++ ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (target->addr_htbl, addr_map_node, node, ++ orig_addr) { ++ if (addr_map_node->buffer_addr == orig_addr) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (addr_map_node != NULL) { ++ memcpy((void *)addr_map_node->orig_addr, ++ (void *)addr_map_node->buffer_addr, orig_size); ++ func((void *)addr_map_node->orig_addr); ++ } else { ++ printk("Cannot find addr_map_node in addr_htbl, maybe addr is in kernel space!!\n"); ++ func((void *)orig_addr); ++ } ++ ++ spin_lock_irqsave(&target->addr_htbl_spin_lock, flags); ++ if (addr_map_node != NULL) { ++ hlist_del_init_rcu(&addr_map_node->node); ++ call_rcu(&addr_map_node->rcu, koi_addr_map_node_free); ++ } ++ spin_unlock_irqrestore(&target->addr_htbl_spin_lock, flags); ++ spin_lock_irqsave(&target->spin_lock, flags); ++ list_for_each_entry_rcu (mem_node, &target->mem_list_head, list) { ++ if (mem_node->addr + mem_node->size == addr) { ++ pos = mem_node->list.prev; ++ addr = mem_node->addr; ++ size += mem_node->size; ++ list_del_rcu(&mem_node->list); ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } else if (addr + size == mem_node->addr) { ++ if (!pos) ++ pos = mem_node->list.prev; ++ size += mem_node->size; ++ list_del_rcu(&mem_node->list); ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } else if (addr + size < mem_node->addr) { ++ if (!pos) ++ pos = mem_node->list.prev; ++ break; ++ } ++ } ++ mem_node = kzalloc(sizeof(struct koi_mem_list), GFP_ATOMIC); ++ mem_node->addr = addr; ++ mem_node->size = size; ++ if (pos) ++ list_add_rcu(&mem_node->list, pos); ++ else ++ list_add_tail_rcu(&mem_node->list, &target->mem_list_head); ++ spin_unlock_irqrestore(&target->spin_lock, flags); ++} ++EXPORT_SYMBOL(koi_mem_free_callback); ++ ++void koi_map_mem(struct module *mod, unsigned long addr, unsigned long size) ++{ ++ struct koi_mem_hash_node *target = NULL; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) ++ break; ++ } ++ rcu_read_unlock(); ++ ++ if (target == NULL) { ++ printk(KERN_ERR "mem node for module: %s not found\n", ++ mod->name); ++ return; ++ } ++ koi_copy_pagetable(target->ko_mm, target->pgdp, addr & PAGE_MASK, ++ (addr + size + PAGE_SIZE - 1) & PAGE_MASK); ++ flush_tlb_kernel_range(addr & PAGE_MASK, (addr + size + PAGE_SIZE - 1) & PAGE_MASK); ++} ++EXPORT_SYMBOL(koi_map_mem); ++ ++void koi_unmap_mem(struct module *mod, unsigned long addr, unsigned long size) { ++ struct koi_mem_hash_node *target = NULL; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) ++ break; ++ } ++ rcu_read_unlock(); ++ ++ if (target == NULL) { ++ printk(KERN_ERR "mem node for module: %s not found\n", ++ mod->name); ++ return; ++ } ++ koi_unmap_pagetable(target->ko_mm, target->pgdp, addr & PAGE_MASK, ++ (addr + size + PAGE_SIZE - 1) & PAGE_MASK); ++ flush_tlb_kernel_range(addr & PAGE_MASK, (addr + size + PAGE_SIZE - 1) & PAGE_MASK); ++} ++EXPORT_SYMBOL(koi_unmap_mem); ++/** ++* koi_mem_free_to_user - function 'copy_to_user' in driver space ++*/ ++void koi_mem_free_to_user(struct module *mod, unsigned long addr, ++ unsigned long size) ++{ ++ struct koi_mem_hash_node *target = NULL; ++ struct koi_mem_list *mem_node; ++ struct list_head *pos = NULL; ++ struct koi_addr_map *addr_map_node; ++ unsigned long flags; ++ unsigned long orig_size = size; ++ unsigned long orig_addr = addr; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ printk(KERN_ERR "mem node for module: %s not found\n", ++ mod->name); ++ return; ++ } ++ ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (target->addr_htbl, addr_map_node, node, ++ orig_addr) { ++ if (addr_map_node->buffer_addr == orig_addr) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (copy_to_user((void *)addr_map_node->orig_addr, ++ (void *)addr_map_node->buffer_addr, orig_size)) { ++ return; ++ } ++ ++ spin_lock_irqsave(&target->addr_htbl_spin_lock, flags); ++ hlist_del_init_rcu(&addr_map_node->node); ++ call_rcu(&addr_map_node->rcu, koi_addr_map_node_free); ++ spin_unlock_irqrestore(&target->addr_htbl_spin_lock, flags); ++ spin_lock_irqsave(&target->spin_lock, flags); ++ list_for_each_entry_rcu (mem_node, &target->mem_list_head, list) { ++ if (mem_node->addr + mem_node->size == addr) { ++ pos = mem_node->list.prev; ++ addr = mem_node->addr; ++ size += mem_node->size; ++ list_del_rcu(&mem_node->list); ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } else if (addr + size == mem_node->addr) { ++ if (!pos) ++ pos = mem_node->list.prev; ++ size += mem_node->size; ++ list_del_rcu(&mem_node->list); ++ call_rcu(&mem_node->rcu, koi_mem_node_free); ++ } else if (addr + size < mem_node->addr) { ++ if (!pos) ++ pos = mem_node->list.prev; ++ break; ++ } ++ } ++ mem_node = kzalloc(sizeof(struct koi_mem_list), GFP_ATOMIC); ++ mem_node->addr = addr; ++ mem_node->size = size; ++ if (pos) ++ list_add_rcu(&mem_node->list, pos); ++ else ++ list_add_tail_rcu(&mem_node->list, &target->mem_list_head); ++ spin_unlock_irqrestore(&target->spin_lock, flags); ++} ++EXPORT_SYMBOL(koi_mem_free_to_user); ++// map the driver stack to kernel ++void koi_map_kostack(struct module *mod) ++{ ++ struct koi_mem_hash_node *target = NULL; ++ void *koi_stack; ++ unsigned long cur_sp; ++#ifndef CONFIG_IEE ++ struct task_token *token_addr; ++#endif ++ asm volatile("mov %0, sp\n" : "=r"(cur_sp) :); ++ if (on_irq_stack(cur_sp, NULL)) { ++ return; ++ } ++#ifndef CONFIG_IEE ++ token_addr = (struct task_token *)((unsigned long)current + (unsigned long)koi_offset); ++ if (token_addr->koi_stack_base != NULL) ++ return; ++#else ++ koi_stack = (void *)iee_rw_gate(IEE_READ_KOI_STACK, current); ++ if (koi_stack != NULL) ++ return; ++#endif ++ koi_stack = (void *)__get_free_pages(GFP_KERNEL, 3); ++ free_pages((unsigned long)koi_stack + 4 * PAGE_SIZE, 2); ++ printk(KERN_ERR "alloc dstack start=0x%16lx, end=0x%16lx\n", ++ (unsigned long)koi_stack, (unsigned long)koi_stack + 4 * PAGE_SIZE); ++#ifndef CONFIG_IEE ++ token_addr->koi_stack = ++ (struct pt_regs *)(THREAD_SIZE + (unsigned long)koi_stack) - 1; ++ token_addr->koi_stack_base = koi_stack; ++#else ++ iee_rw_gate( ++ IEE_WRITE_KOI_STACK, current, ++ (unsigned long)((struct pt_regs *)(THREAD_SIZE + (unsigned long)koi_stack) - 1)); ++ iee_rw_gate(IEE_WRITE_KOI_STACK_BASE, current, (unsigned long)koi_stack); ++#endif ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ if (target == NULL) { ++ // printk(KERN_ERR "mem node for module: %s not found\n", ++ // mod->name); ++ return; ++ } ++ koi_copy_pagetable(target->ko_mm, target->pgdp, ++ (unsigned long)koi_stack, ++ (unsigned long)koi_stack + THREAD_SIZE); ++ flush_tlb_kernel_range((unsigned long)koi_stack, (unsigned long)koi_stack + THREAD_SIZE); ++ // printk(KERN_ERR "create ko stack: 0x%16llx\n", ++ // (unsigned long)koi_stack); ++} ++EXPORT_SYMBOL(koi_map_kostack); ++ ++#ifndef CONFIG_IEE ++void koi_init_token(struct task_struct *tsk) { ++ struct task_token *token_addr = (struct task_token *)(__phys_to_virt(__pa(tsk)) + KOI_OFFSET); ++ ++ token_addr->koi_kernel_stack = NULL; ++ token_addr->koi_stack = NULL; ++ token_addr->koi_stack_base = NULL; ++ token_addr->current_ttbr1 = 0; ++} ++ ++#endif +\ No newline at end of file +diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c +index 4a069f85bd91..4631dc788dd3 100644 +--- a/arch/arm64/kernel/mte.c ++++ b/arch/arm64/kernel/mte.c +@@ -78,7 +78,11 @@ int memcmp_pages(struct page *page1, struct page *page2) + static void update_sctlr_el1_tcf0(u64 tcf0) + { + /* ISB required for the kernel uaccess routines */ ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(sctlr_el1, SCTLR_EL1_TCF0_MASK, tcf0); ++#else + sysreg_clear_set(sctlr_el1, SCTLR_EL1_TCF0_MASK, tcf0); ++#endif + isb(); + } + +diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c +index 14300c9e06d5..daba80a40544 100644 +--- a/arch/arm64/kernel/process.c ++++ b/arch/arm64/kernel/process.c +@@ -85,7 +85,11 @@ static void noinstr __cpu_do_idle_irqprio(void) + unsigned long daif_bits; + + daif_bits = read_sysreg(daif); ++// #ifdef CONFIG_IEE ++// iee_si_write_daif(daif_bits | PSR_I_BIT); ++// #else + write_sysreg(daif_bits | PSR_I_BIT, daif); ++// #endif + + /* + * Unmask PMR before going idle to make sure interrupts can +@@ -97,7 +101,11 @@ static void noinstr __cpu_do_idle_irqprio(void) + __cpu_do_idle(); + + gic_write_pmr(pmr); ++// #ifdef CONFIG_IEE ++// iee_si_write_daif(daif_bits); ++// #else + write_sysreg(daif_bits, daif); ++// #endif + } + + /* +@@ -477,7 +485,7 @@ int copy_thread(unsigned long clone_flags, unsigned long stack_start, + } + p->thread.cpu_context.pc = (unsigned long)ret_from_fork; + p->thread.cpu_context.sp = (unsigned long)childregs; +- ++ + ptrace_hw_copy_thread(p); + + return 0; +@@ -538,7 +546,14 @@ DEFINE_PER_CPU(struct task_struct *, __entry_task); + + static void entry_task_switch(struct task_struct *next) + { ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ if(next == &init_task) ++ __this_cpu_write(__entry_task, (struct task_struct *)__va(__pa_symbol(next))); ++ else ++ __this_cpu_write(__entry_task, next); ++ #else + __this_cpu_write(__entry_task, next); ++ #endif + } + + /* +diff --git a/arch/arm64/kernel/proton-pack.c b/arch/arm64/kernel/proton-pack.c +index c569889b0322..f89d68459a0a 100644 +--- a/arch/arm64/kernel/proton-pack.c ++++ b/arch/arm64/kernel/proton-pack.c +@@ -576,7 +576,11 @@ static enum mitigation_state spectre_v4_enable_hw_mitigation(void) + return state; + + if (spectre_v4_mitigations_off()) { ++#ifdef CONFIG_IEE ++ sysreg_clear_set_iee_si(sctlr_el1, 0, SCTLR_ELx_DSSBS); ++#else + sysreg_clear_set(sctlr_el1, 0, SCTLR_ELx_DSSBS); ++#endif + set_pstate_ssbs(1); + return SPECTRE_VULNERABLE; + } +@@ -992,7 +996,11 @@ static void this_cpu_set_vectors(enum arm64_bp_harden_el1_vectors slot) + if (arm64_kernel_unmapped_at_el0()) + return; + ++#ifdef CONFIG_IEE ++ iee_rwx_gate_entry(IEE_WRITE_vbar_el1, v); ++#else + write_sysreg(v, vbar_el1); ++#endif + isb(); + } + +diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c +index 18e457bbb7a3..79992984aec1 100644 +--- a/arch/arm64/kernel/setup.c ++++ b/arch/arm64/kernel/setup.c +@@ -33,6 +33,11 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#include ++#endif ++ + #include + #include + #include +@@ -360,12 +365,34 @@ u64 cpu_logical_map(int cpu) + } + EXPORT_SYMBOL(cpu_logical_map); + ++#ifdef CONFIG_IEE ++/* used for secure modification of vbar*/ ++extern char __bp_harden_el1_vectors[]; ++/* prepare iee rwx gate for senario of ttbr1=init_pg_dir */ ++static void __init iee_si_init_early(void) ++{ ++ /* prepare data used for iee rwx gate. */ ++ iee_base_swapper_pg_dir = phys_to_ttbr(__pa_symbol(swapper_pg_dir)); ++ iee_base_idmap_pg_dir = phys_to_ttbr(__pa_symbol(idmap_pg_dir)); ++ iee_base_reserved_pg_dir = phys_to_ttbr(__pa_symbol(reserved_pg_dir)) ++ | FIELD_PREP(TTBR_ASID_MASK, 1); ++ iee_base__bp_harden_el1_vectors = (unsigned long)__bp_harden_el1_vectors; ++ iee_si_tcr_outside = read_sysreg(tcr_el1) & ~(IEE_TCR_MASK); ++ iee_si_tcr = 0; ++ iee_si_tcr_inside = iee_si_tcr_outside & ~(SYS_TCR_IEE_SI); ++} ++#endif ++ + void __init __no_sanitize_address setup_arch(char **cmdline_p) + { + init_mm.start_code = (unsigned long) _text; + init_mm.end_code = (unsigned long) _etext; + init_mm.end_data = (unsigned long) _edata; + init_mm.brk = (unsigned long) _end; ++ #ifdef CONFIG_IEE ++ init_new_context(&init_task, &init_mm); ++ atomic64_set(&init_mm.context.id, (1UL << get_cpu_asid_bits()) | INIT_ASID); ++ #endif + + *cmdline_p = boot_command_line; + +@@ -398,6 +425,14 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p) + */ + local_daif_restore(DAIF_PROCCTX_NOIRQ); + ++#ifdef CONFIG_IEE ++ /* ++ * Map iee si codes to init_pg_dir to run the following ++ * cpu_uninstall_idmap() which writes ttbr0. ++ */ ++ iee_si_init_early(); ++#endif ++ + /* + * TTBR0 is only used for the identity mapping at this stage. Make it + * point to zero page to avoid speculatively fetching new entries. +diff --git a/arch/arm64/kernel/syscall.c b/arch/arm64/kernel/syscall.c +index 9bd304568d90..2156532b45f5 100644 +--- a/arch/arm64/kernel/syscall.c ++++ b/arch/arm64/kernel/syscall.c +@@ -93,13 +93,21 @@ static void cortex_a76_erratum_1463225_svc_handler(void) + __this_cpu_write(__in_cortex_a76_erratum_1463225_wa, 1); + reg = read_sysreg(mdscr_el1); + val = reg | DBG_MDSCR_SS | DBG_MDSCR_KDE; ++// #ifdef CONFIG_IEE ++// iee_rwx_gate_entry(IEE_WRITE_mdscr_el1, val); ++// #else + write_sysreg(val, mdscr_el1); ++// #endif + asm volatile("msr daifclr, #8"); + isb(); + + /* We will have taken a single-step exception by this point */ + ++// #ifdef CONFIG_IEE ++// iee_rwx_gate_entry(IEE_WRITE_mdscr_el1, reg); ++// #else + write_sysreg(reg, mdscr_el1); ++// #endif + __this_cpu_write(__in_cortex_a76_erratum_1463225_wa, 0); + } + #else +diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c +index 15c9c90639f1..55cd44151327 100644 +--- a/arch/arm64/kernel/traps.c ++++ b/arch/arm64/kernel/traps.c +@@ -51,7 +51,11 @@ static const char *handler[]= { + "Synchronous Abort", + "IRQ", + "FIQ", +- "Error" ++ "Error", ++#ifdef CONFIG_IEE ++ "IEE", ++ "IEE_SI" ++#endif + }; + + int show_unhandled_signals = 0; +diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S +index 71f4b5f24d15..1ced88b8f6ae 100644 +--- a/arch/arm64/kernel/vmlinux.lds.S ++++ b/arch/arm64/kernel/vmlinux.lds.S +@@ -85,6 +85,53 @@ jiffies = jiffies_64; + #define TRAMP_TEXT + #endif + ++#ifdef CONFIG_IEE ++#define IEE_TEXT \ ++ . = ALIGN(PAGE_SIZE); \ ++ __iee_code_start = .; \ ++ *(.iee.text.header) \ ++ *(.iee.text) \ ++ . = ALIGN(PAGE_SIZE); \ ++ __iee_code_end = .; ++#else ++#define IEE_TEXT ++#endif ++ ++#ifdef CONFIG_IEE ++#define IEE_SI_TEXT \ ++ . = ALIGN(PAGE_SIZE); \ ++ __iee_si_data_start = .; \ ++ *(.iee.si_data) \ ++ . = ALIGN(PAGE_SIZE); \ ++ __iee_exec_entry_start = .; \ ++ __iee_si_no_irq = . + (16); \ ++ *(.iee.exec_entry) \ ++ . = ALIGN(PAGE_SIZE); \ ++ __iee_si_start = .; \ ++ *(.iee.si_text) \ ++ . = ALIGN(PAGE_SIZE); \ ++ . += PAGE_SIZE - (24); \ ++ __iee_si_end = . + (24); \ ++ __iee_exec_exit = .; \ ++ *(.iee.exec_exit) \ ++ . = ALIGN(PAGE_SIZE); \ ++ __iee_si_text_end = .; ++ ++#else ++#define IEE_SI_TEXT ++#endif ++ ++#ifdef CONFIG_KOI ++#define KOI_TEXT \ ++ . = ALIGN(PAGE_SIZE); \ ++ __koi_code_start = .; \ ++ *(.koi.text) \ ++ . = ALIGN(PAGE_SIZE); \ ++ __koi_code_end = .; ++#else ++#define KOI_TEXT ++#endif ++ + /* + * The size of the PE/COFF section that covers the kernel image, which + * runs from _stext to _edata, must be a round multiple of the PE/COFF +@@ -127,6 +174,7 @@ SECTIONS + SOFTIRQENTRY_TEXT + ENTRY_TEXT + TEXT_TEXT ++ IEE_TEXT + SCHED_TEXT + CPUIDLE_TEXT + LOCK_TEXT +@@ -135,6 +183,8 @@ SECTIONS + IDMAP_TEXT + HIBERNATE_TEXT + TRAMP_TEXT ++ IEE_SI_TEXT ++ KOI_TEXT + *(.fixup) + *(.gnu.warning) + . = ALIGN(16); +@@ -261,6 +311,18 @@ SECTIONS + . += INIT_DIR_SIZE; + init_pg_end = .; + ++ #ifdef CONFIG_IEE ++ . = ALIGN(PAGE_SIZE*8); ++ init_iee_stack_begin = .; ++ . += PAGE_SIZE*4; ++ init_iee_stack_end = .; ++ ++ . = ALIGN(PAGE_SIZE); ++ init_iee_si_stack_begin = .; ++ . += PAGE_SIZE*4; ++ init_iee_si_stack_end = .; ++ #endif ++ + . = ALIGN(SEGMENT_ALIGN); + __pecoff_data_size = ABSOLUTE(. - __initdata_begin); + _end = .; +diff --git a/arch/arm64/mm/context.c b/arch/arm64/mm/context.c +index 001737a8f309..22f401d2066a 100644 +--- a/arch/arm64/mm/context.c ++++ b/arch/arm64/mm/context.c +@@ -17,6 +17,10 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#endif ++ + static u32 asid_bits; + static DEFINE_RAW_SPINLOCK(cpu_asid_lock); + +@@ -39,7 +43,11 @@ static unsigned long *pinned_asid_map; + #define idx2asid(idx) asid2idx(idx) + + /* Get the ASIDBits supported by the current CPU */ ++#ifdef CONFIG_IEE ++u32 get_cpu_asid_bits(void) ++#else + static u32 get_cpu_asid_bits(void) ++#endif + { + u32 asid; + int fld = cpuid_feature_extract_unsigned_field(read_cpuid(ID_AA64MMFR0_EL1), +@@ -96,6 +104,18 @@ static void set_reserved_asid_bits(void) + set_kpti_asid_bits(asid_map); + else + bitmap_clear(asid_map, 0, NUM_USER_ASIDS); ++ ++ #ifdef CONFIG_IEE ++ unsigned int len = BITS_TO_LONGS(NUM_USER_ASIDS) * sizeof(unsigned long); ++ memset(asid_map, 0xaa, len); ++ __set_bit(INIT_ASID, asid_map); ++ #else ++ #ifdef CONFIG_KOI ++ unsigned int len = BITS_TO_LONGS(NUM_USER_ASIDS) * sizeof(unsigned long); ++ memset(asid_map, 0xaa, len); ++ #endif ++ #endif ++ + } + + #define asid_gen_match(asid) \ +@@ -212,6 +232,38 @@ static u64 new_context(struct mm_struct *mm) + return idx2asid(asid) | generation; + } + ++#ifdef CONFIG_KOI ++/* ++ * This function is used to check and allocate ASID for ko's pgd ++ * The mm MUST point to the isolated kos' mm_struct, other behaviours are undefined. ++ */ ++void koi_check_and_switch_context(struct mm_struct *mm) { ++ u64 asid = atomic64_read(&mm->context.id); ++ u64 old_active_asid; ++ unsigned long flags; ++ unsigned int cpu; ++ ++ old_active_asid = atomic64_read(this_cpu_ptr(&active_asids)); ++ if (old_active_asid && asid_gen_match(asid) && atomic64_cmpxchg_relaxed(this_cpu_ptr(&active_asids), old_active_asid, asid)) { ++ return; ++ } ++ ++ raw_spin_lock_irqsave(&cpu_asid_lock, flags); ++ asid = atomic64_read(&mm->context.id); ++ if (!asid_gen_match(asid)) { ++ asid = new_context(mm); ++ atomic64_set(&mm->context.id, asid); ++ } ++ ++ cpu = smp_processor_id(); ++ if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending)) ++ local_flush_tlb_all(); ++ ++ atomic64_set(this_cpu_ptr(&active_asids), asid); ++ raw_spin_unlock_irqrestore(&cpu_asid_lock, flags); ++} ++#endif ++ + void check_and_switch_context(struct mm_struct *mm) + { + unsigned long flags; +@@ -348,7 +400,9 @@ asmlinkage void post_ttbr_update_workaround(void) + + void cpu_do_switch_mm(phys_addr_t pgd_phys, struct mm_struct *mm) + { ++ #ifndef CONFIG_IEE + unsigned long ttbr1 = read_sysreg(ttbr1_el1); ++ #endif + unsigned long asid = ASID(mm); + unsigned long ttbr0 = phys_to_ttbr(pgd_phys); + +@@ -360,14 +414,27 @@ void cpu_do_switch_mm(phys_addr_t pgd_phys, struct mm_struct *mm) + if (IS_ENABLED(CONFIG_ARM64_SW_TTBR0_PAN)) + ttbr0 |= FIELD_PREP(TTBR_ASID_MASK, asid); + +- /* Set ASID in TTBR1 since TCR.A1 is set */ ++ #ifdef CONFIG_IEE ++ ttbr0 |= FIELD_PREP(TTBR_ASID_MASK, asid+1); ++ iee_rwx_gate_entry(IEE_CONTEXT_SWITCH, ttbr0); ++ ++ #else ++ /* Set ASID in TTBR0 since TCR.A1 is set 0*/ ++ ++ #ifdef CONFIG_KOI ++ ttbr0 |= FIELD_PREP(TTBR_ASID_MASK, asid+1); ++ ttbr1 &= ~TTBR_ASID_MASK; ++ ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, asid); ++ #else + ttbr1 &= ~TTBR_ASID_MASK; + ttbr1 |= FIELD_PREP(TTBR_ASID_MASK, asid); +- ++ #endif + write_sysreg(ttbr1, ttbr1_el1); + isb(); + write_sysreg(ttbr0, ttbr0_el1); + isb(); ++ #endif ++ + post_ttbr_update_workaround(); + } + +@@ -375,11 +442,28 @@ static int asids_update_limit(void) + { + unsigned long num_available_asids = NUM_USER_ASIDS; + +- if (arm64_kernel_unmapped_at_el0()) { +- num_available_asids /= 2; +- if (pinned_asid_map) +- set_kpti_asid_bits(pinned_asid_map); ++ if (arm64_kernel_unmapped_at_el0()) { ++ num_available_asids /= 2; ++ if (pinned_asid_map) ++ set_kpti_asid_bits(pinned_asid_map); + } ++ #ifdef CONFIG_IEE ++ num_available_asids /= 2; ++ if (pinned_asid_map) { ++ unsigned int len = BITS_TO_LONGS(NUM_USER_ASIDS) * sizeof(unsigned long); ++ memset(pinned_asid_map, 0xaa, len); ++ __set_bit(INIT_ASID, pinned_asid_map); ++ } ++ #else ++ #ifdef CONFIG_KOI ++ num_available_asids /= 2; ++ if (pinned_asid_map) { ++ unsigned int len = BITS_TO_LONGS(NUM_USER_ASIDS) * sizeof(unsigned long); ++ memset(pinned_asid_map, 0xaa, len); ++ } ++ #endif ++ #endif ++ + /* + * Expect allocation after rollover to fail if we don't have at least + * one more ASID than CPUs. ASID #0 is reserved for init_mm. +@@ -400,6 +484,10 @@ arch_initcall(asids_update_limit); + + static int asids_init(void) + { ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ unsigned int len; ++ #endif ++ + asid_bits = get_cpu_asid_bits(); + atomic64_set(&asid_generation, ASID_FIRST_VERSION); + asid_map = kcalloc(BITS_TO_LONGS(NUM_USER_ASIDS), sizeof(*asid_map), +@@ -412,13 +500,25 @@ static int asids_init(void) + sizeof(*pinned_asid_map), GFP_KERNEL); + nr_pinned_asids = 0; + +- /* +- * We cannot call set_reserved_asid_bits() here because CPU +- * caps are not finalized yet, so it is safer to assume KPTI +- * and reserve kernel ASID's from beginning. +- */ +- if (IS_ENABLED(CONFIG_UNMAP_KERNEL_AT_EL0)) +- set_kpti_asid_bits(asid_map); ++ #ifdef CONFIG_IEE ++ len = BITS_TO_LONGS(NUM_USER_ASIDS) * sizeof(unsigned long); ++ memset(asid_map, 0xaa, len); ++ __set_bit(INIT_ASID, asid_map); ++ #else ++ #ifdef CONFIG_KOI ++ len = BITS_TO_LONGS(NUM_USER_ASIDS) * sizeof(unsigned long); ++ memset(asid_map, 0xaa, len); ++ #else ++ /* ++ * We cannot call set_reserved_asid_bits() here because CPU ++ * caps are not finalized yet, so it is safer to assume KPTI ++ * and reserve kernel ASID's from beginning. ++ */ ++ if (IS_ENABLED(CONFIG_UNMAP_KERNEL_AT_EL0)) ++ set_kpti_asid_bits(asid_map); ++ #endif ++ #endif ++ + return 0; + } + early_initcall(asids_init); +diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c +index a2c61725c176..e719a0358dd0 100644 +--- a/arch/arm64/mm/fault.c ++++ b/arch/arm64/mm/fault.c +@@ -24,6 +24,9 @@ + #include + #include + #include ++#ifdef CONFIG_HIVE ++#include ++#endif + + #include + #include +@@ -218,7 +221,16 @@ int ptep_set_access_flags(struct vm_area_struct *vma, + pteval ^= PTE_RDONLY; + pteval |= pte_val(entry); + pteval ^= PTE_RDONLY; ++ #ifdef CONFIG_KOI ++ if (pteval & PTE_VALID) { ++ pteval |= PTE_NG; ++ } ++ #endif ++ #ifdef CONFIG_PTP ++ pteval = iee_set_cmpxchg_relaxed(ptep, old_pteval, pteval); ++ #else + pteval = cmpxchg_relaxed(&pte_val(*ptep), old_pteval, pteval); ++ #endif + } while (pteval != old_pteval); + + /* Invalidate a stale read-only entry */ +@@ -288,6 +300,14 @@ static void die_kernel_fault(const char *msg, unsigned long addr, + { + bust_spinlocks(1); + ++ #ifdef CONFIG_HIVE ++ if (bpf_sfi_hook_kernel_fault(addr)) { ++ pr_err("detected bpf sfi guard page %lx access\n", addr); ++ regs->pc += 4; ++ return; ++ } ++ #endif ++ + pr_alert("Unable to handle kernel %s at virtual address %016lx\n", msg, + addr); + +diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c +index afcede934bc3..576f782bd772 100644 +--- a/arch/arm64/mm/init.c ++++ b/arch/arm64/mm/init.c +@@ -58,8 +58,20 @@ + * that cannot be mistaken for a real physical address. + */ + s64 memstart_addr __ro_after_init = -1; ++#if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++s64 memstart_addr_init __ro_after_init = -1; ++#endif ++#ifdef CONFIG_KOI ++s64 koi_offset __ro_after_init = -1; ++EXPORT_SYMBOL(koi_offset); ++#endif ++#ifdef CONFIG_IEE ++s64 iee_offset __ro_after_init = -1; ++extern s64 iee_si_offset; ++#endif + EXPORT_SYMBOL(memstart_addr); + ++ + /* + * If the corresponding config options are enabled, we create both ZONE_DMA + * and ZONE_DMA32. By default ZONE_DMA covers the 32-bit addressable memory +@@ -414,19 +426,34 @@ early_param("memmap", parse_memmap_opt); + + void __init arm64_memblock_init(void) + { ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ const s64 linear_region_size = BIT(vabits_actual - 2); ++ #else + const s64 linear_region_size = BIT(vabits_actual - 1); ++ #endif + + /* Handle linux,usable-memory-range property */ + fdt_enforce_memory_region(); + + /* Remove memory above our supported physical address size */ ++ #ifdef CONFIG_IEE ++ // If config iee, phys size can not be above 0x400000000000 ++ if(__pa_symbol(_end) > BIT_ULL(vabits_actual - 2)) ++ panic("Image on too high phys mem.\n"); ++ else ++ memblock_remove(BIT_ULL(vabits_actual - 2), ULLONG_MAX); ++ #else + memblock_remove(1ULL << PHYS_MASK_SHIFT, ULLONG_MAX); ++ #endif + + /* + * Select a suitable value for the base of physical memory. + */ + memstart_addr = round_down(memblock_start_of_DRAM(), + ARM64_MEMSTART_ALIGN); ++ #if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++ memstart_addr_init = memstart_addr; ++ #endif + + /* + * Remove the memory that we will not be able to cover with the +@@ -507,7 +534,15 @@ void __init arm64_memblock_init(void) + ((range * memstart_offset_seed) >> 16); + } + } +- ++ ++ #ifdef CONFIG_KOI ++ koi_offset = memstart_addr - memstart_addr_init + ((unsigned long)BIT(vabits_actual - 2)); ++ #endif ++ #ifdef CONFIG_IEE ++ iee_offset = memstart_addr - memstart_addr_init + ((unsigned long)BIT(vabits_actual - 2)); ++ iee_si_offset = iee_offset; ++ #endif ++ + /* + * Register the kernel text, kernel data, initrd, and initial + * pagetables with memblock. +diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c +index adaca1fd5a27..2e15f1b2c18c 100644 +--- a/arch/arm64/mm/mmu.c ++++ b/arch/arm64/mm/mmu.c +@@ -6,6 +6,7 @@ + * Copyright (C) 2012 ARM Ltd. + */ + ++#include "asm/pgtable.h" + #include + #include + #include +@@ -39,6 +40,13 @@ + #include + #include + #include ++#ifdef CONFIG_IEE ++#include ++#include ++#include ++#include ++#include ++#endif + + #define NO_BLOCK_MAPPINGS BIT(0) + #define NO_CONT_MAPPINGS BIT(1) +@@ -66,8 +74,247 @@ static pud_t bm_pud[PTRS_PER_PUD] __page_aligned_bss __maybe_unused; + static DEFINE_SPINLOCK(swapper_pgdir_lock); + static DEFINE_MUTEX(fixmap_lock); + ++#ifdef CONFIG_IEE ++extern struct cred init_cred; ++void *bm_pte_addr = (void *)bm_pte; ++void *init_token_page_vaddr; ++ ++// extern unsigned long __iee_si_base_start[]; ++// extern unsigned long __iee_exec_entry_start[]; ++extern unsigned long __iee_si_data_start[]; ++extern unsigned long __iee_exec_entry_start[]; ++extern unsigned long __iee_si_start[]; ++extern unsigned long __iee_si_end[]; ++ ++#ifdef CONFIG_PTP ++/* Funcs to set pgtable before iee initialized. */ ++static void iee_set_swapper_pgd_pre_init(pgd_t *pgdp, pgd_t pgd) ++{ ++ pgd_t *fixmap_pgdp; ++ ++ spin_lock(&swapper_pgdir_lock); ++ fixmap_pgdp = pgd_set_fixmap_init(__pa_symbol(pgdp)); ++ WRITE_ONCE(*fixmap_pgdp, pgd); ++ /* ++ * We need dsb(ishst) here to ensure the page-table-walker sees ++ * our new entry before set_p?d() returns. The fixmap's ++ * flush_tlb_kernel_range() via clear_fixmap() does this for us. ++ */ ++ pgd_clear_fixmap_init(); ++ spin_unlock(&swapper_pgdir_lock); ++} ++ ++static inline void iee_set_p4d_pre_init(p4d_t *p4dp, p4d_t p4d) ++{ ++ if (in_swapper_pgdir(p4dp)) { ++ iee_set_swapper_pgd_pre_init((pgd_t *)p4dp, __pgd(p4d_val(p4d))); ++ return; ++ } ++ ++ WRITE_ONCE(*p4dp, p4d); ++ dsb(ishst); ++ isb(); ++} ++ ++static inline void iee_set_pud_pre_init(pud_t *pudp, pud_t pud) ++{ ++#ifdef __PAGETABLE_PUD_FOLDED ++ if (in_swapper_pgdir(pudp)) { ++ iee_set_swapper_pgd_pre_init((pgd_t *)pudp, __pgd(pud_val(pud))); ++ return; ++ } ++#endif /* __PAGETABLE_PUD_FOLDED */ ++#ifdef CONFIG_KOI ++ pudval_t val = pud_val(pud); ++ if (pud_valid(pud) && !(val & PUD_TABLE_BIT)) { ++ // There is no PUD_SEC_NG, so we use PMD_SECT_NG instead. ++ pud = __pud(val | PMD_SECT_NG); ++ } ++#endif ++ WRITE_ONCE(*pudp, pud); ++ ++ if (pud_valid(pud)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++static inline void iee_set_pmd_pre_init(pmd_t *pmdp, pmd_t pmd) ++{ ++#ifdef __PAGETABLE_PMD_FOLDED ++ if (in_swapper_pgdir(pmdp)) { ++ iee_set_swapper_pgd_pre_init((pgd_t *)pmdp, __pgd(pmd_val(pmd))); ++ return; ++ } ++#endif /* __PAGETABLE_PMD_FOLDED */ ++#ifdef CONFIG_KOI ++ pmdval_t val = pmd_val(pmd); ++ if (pmd_valid(pmd) && !(val & PMD_TABLE_BIT)) { ++ pmd = __pmd(val | PMD_SECT_NG); ++ } ++#endif ++ WRITE_ONCE(*pmdp, pmd); ++ ++ if (pmd_valid(pmd)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++static inline void __iee_p4d_populate_pre_init(p4d_t *p4dp, phys_addr_t pudp, p4dval_t prot) ++{ ++ iee_set_p4d_pre_init(p4dp, __p4d(__phys_to_p4d_val(pudp) | prot)); ++} ++ ++static inline void __iee_pud_populate_pre_init(pud_t *pudp, phys_addr_t pmdp, pudval_t prot) ++{ ++ iee_set_pud_pre_init(pudp, __pud(__phys_to_pud_val(pmdp) | prot)); ++} ++ ++static inline void __iee_pmd_populate_pre_init(pmd_t *pmdp, phys_addr_t ptep, ++ pmdval_t prot) ++{ ++ iee_set_pmd_pre_init(pmdp, __pmd(__phys_to_pmd_val(ptep) | prot)); ++} ++ ++#define set_pgd_init(pgdptr, pgdval) iee_set_p4d_pre_init((p4d_t *)(pgdptr), (p4d_t) { pgdval }) ++ ++/* Funcs to set fixmap before iee initialized. */ ++static bool pgattr_change_is_safe(u64 old, u64 new); ++static int iee_pud_set_huge_fixmap(pud_t *pudp, phys_addr_t phys, pgprot_t prot) ++{ ++ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), mk_pud_sect_prot(prot)); ++ ++ /* Only allow permission changes for now */ ++ if (!pgattr_change_is_safe(READ_ONCE(pud_val(*pudp)), ++ pud_val(new_pud))) ++ return 0; ++ ++ VM_BUG_ON(phys & ~PUD_MASK); ++ iee_set_fixmap_pud_pre_init(pudp, new_pud); ++ return 1; ++} ++ ++static int iee_pmd_set_huge_fixmap(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot) ++{ ++ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), mk_pmd_sect_prot(prot)); ++ ++ /* Only allow permission changes for now */ ++ if (!pgattr_change_is_safe(READ_ONCE(pmd_val(*pmdp)), ++ pmd_val(new_pmd))) ++ return 0; ++ ++ VM_BUG_ON(phys & ~PMD_MASK); ++ iee_set_fixmap_pmd_pre_init(pmdp, new_pmd); ++ return 1; ++} ++ ++static inline void __iee_pmd_populate_fixmap(pmd_t *pmdp, phys_addr_t ptep, ++ pmdval_t prot) ++{ ++ iee_set_fixmap_pmd_pre_init(pmdp, __pmd(__phys_to_pmd_val(ptep) | prot)); ++} ++ ++static inline void __iee_pud_populate_fixmap(pud_t *pudp, phys_addr_t pmdp, pudval_t prot) ++{ ++ iee_set_fixmap_pud_pre_init(pudp, __pud(__phys_to_pud_val(pmdp) | prot)); ++} ++#endif ++ ++void iee_set_pte_pre_init(pte_t *ptep, pte_t pte) ++{ ++#ifdef CONFIG_KOI ++ if (pte_valid(pte)) { ++ pte = __pte(pte_val(pte) | PTE_NG); ++ } ++#endif ++ WRITE_ONCE(*ptep, pte); ++ ++ /* ++ * Only if the new pte is valid and kernel, otherwise TLB maintenance ++ * or update_mmu_cache() have the necessary barriers. ++ */ ++ if (pte_valid_not_user(pte)) { ++ dsb(ishst); ++ isb(); ++ } ++} ++ ++static void __init iee_set_token_page_valid_pre_init(void *token, void *new) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, (unsigned long)token); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, (unsigned long)token); ++ ++ pud_t *pudp = pud_offset(p4dp, (unsigned long)token); ++ ++ pmd_t *pmdp = pmd_offset(pudp, (unsigned long)token); ++ ++ pte_t *ptep = pte_offset_kernel(pmdp, (unsigned long)token); ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) | 0x1) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(new))); ++ #ifdef CONFIG_PTP ++ iee_set_pte_pre_init(ptep, pte); ++ #else ++ set_pte(ptep, pte); ++ #endif ++ flush_tlb_kernel_range((unsigned long)token, (unsigned long)(token+PAGE_SIZE)); ++ isb(); ++} ++#endif ++ ++#if defined(CONFIG_KOI) && !defined(CONFIG_IEE) ++ ++void koi_add_page_mapping(void *token, void *new) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, token); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, token); ++ ++ pud_t *pudp = pud_offset(p4dp, token); ++ ++ pmd_t *pmdp = pmd_offset(pudp, token); ++ ++ pte_t *ptep = pte_offset_kernel(pmdp, token); ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) | 0x1) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(new))); ++ set_pte(ptep, pte); ++ dsb(ishst); ++ isb(); ++ ++ flush_tlb_kernel_range(new, new+PAGE_SIZE); ++ flush_tlb_kernel_range(token, token+PAGE_SIZE); ++ isb(); ++} ++ ++void koi_remove_page_mapping(unsigned long token) { ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, token); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, token); ++ ++ pud_t *pudp = pud_offset(p4dp, token); ++ ++ pmd_t *pmdp = pmd_offset(pudp, token); ++ ++ pte_t *ptep = pte_offset_kernel(pmdp, token); ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(((pte_val(pte) & ~((unsigned long)0x1)) & ~PTE_ADDR_MASK) | __phys_to_pte_val(__pa(token - KOI_OFFSET))); ++ set_pte(ptep, pte); ++ flush_tlb_kernel_range(token, token+PAGE_SIZE); ++ isb(); ++} ++#endif ++ + void set_swapper_pgd(pgd_t *pgdp, pgd_t pgd) + { ++ #ifdef CONFIG_PTP ++ spin_lock(&swapper_pgdir_lock); ++ iee_rw_gate(IEE_OP_SET_SWAPPER_PGD, pgdp, pgd); ++ spin_unlock(&swapper_pgdir_lock); ++ #else + pgd_t *fixmap_pgdp; + + spin_lock(&swapper_pgdir_lock); +@@ -80,6 +327,7 @@ void set_swapper_pgd(pgd_t *pgdp, pgd_t pgd) + */ + pgd_clear_fixmap(); + spin_unlock(&swapper_pgdir_lock); ++ #endif + } + + pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, +@@ -93,6 +341,34 @@ pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, + } + EXPORT_SYMBOL(phys_mem_access_prot); + ++#ifdef CONFIG_PTP ++phys_addr_t __init early_pgtable_alloc(int shift) ++{ ++ phys_addr_t phys; ++ void *ptr; ++ ++ phys = memblock_phys_alloc(PAGE_SIZE, PAGE_SIZE); ++ if (!phys) ++ panic("Failed to allocate page table page\n"); ++ ++ /* ++ * The FIX_{PGD,PUD,PMD} slots may be in active use, but the FIX_PTE ++ * slot will be free, so we can (ab)use the FIX_PTE slot to initialise ++ * any level of table. ++ */ ++ ptr = pte_set_fixmap_init(phys); ++ ++ memset(ptr, 0, PAGE_SIZE); ++ ++ /* ++ * Implicit barriers also ensure the zeroed page is visible to the page ++ * table walker ++ */ ++ pte_clear_fixmap_init(); ++ ++ return phys; ++} ++#else + static phys_addr_t __init early_pgtable_alloc(int shift) + { + phys_addr_t phys; +@@ -119,6 +395,7 @@ static phys_addr_t __init early_pgtable_alloc(int shift) + + return phys; + } ++#endif + + static bool pgattr_change_is_safe(u64 old, u64 new) + { +@@ -167,7 +444,11 @@ static void init_pte(pmd_t *pmdp, unsigned long addr, unsigned long end, + do { + pte_t old_pte = READ_ONCE(*ptep); + ++ #ifdef CONFIG_PTP ++ iee_set_fixmap_pte_pre_init(ptep, pfn_pte(__phys_to_pfn(phys), prot)); ++ #else + set_pte(ptep, pfn_pte(__phys_to_pfn(phys), prot)); ++ #endif + + /* + * After the PTE entry has been populated once, we +@@ -196,7 +477,11 @@ static void alloc_init_cont_pte(pmd_t *pmdp, unsigned long addr, + phys_addr_t pte_phys; + BUG_ON(!pgtable_alloc); + pte_phys = pgtable_alloc(PAGE_SHIFT); ++ #ifdef CONFIG_PTP ++ __iee_pmd_populate_fixmap(pmdp, pte_phys, PMD_TYPE_TABLE); ++ #else + __pmd_populate(pmdp, pte_phys, PMD_TYPE_TABLE); ++ #endif + pmd = READ_ONCE(*pmdp); + } + BUG_ON(pmd_bad(pmd)); +@@ -231,9 +516,17 @@ static void init_pmd(pud_t *pudp, unsigned long addr, unsigned long end, + next = pmd_addr_end(addr, end); + + /* try section mapping first */ ++ #ifdef CONFIG_IEE ++ if (!((pmd_val(old_pmd) & PTE_VALID) && (pmd_val(old_pmd) & PTE_TABLE_BIT)) && (((addr | next | phys) & ~SECTION_MASK) == 0 && (flags & NO_BLOCK_MAPPINGS) == 0)) { ++ #else + if (((addr | next | phys) & ~SECTION_MASK) == 0 && + (flags & NO_BLOCK_MAPPINGS) == 0) { ++ #endif ++ #ifdef CONFIG_PTP ++ iee_pmd_set_huge_fixmap(pmdp, phys, prot); ++ #else + pmd_set_huge(pmdp, phys, prot); ++ #endif + + /* + * After the PMD entry has been populated once, we +@@ -270,7 +563,11 @@ static void alloc_init_cont_pmd(pud_t *pudp, unsigned long addr, + phys_addr_t pmd_phys; + BUG_ON(!pgtable_alloc); + pmd_phys = pgtable_alloc(PMD_SHIFT); ++ #ifdef CONFIG_PTP ++ __iee_pud_populate_fixmap(pudp, pmd_phys, PUD_TYPE_TABLE); ++ #else + __pud_populate(pudp, pmd_phys, PUD_TYPE_TABLE); ++ #endif + pud = READ_ONCE(*pudp); + } + BUG_ON(pud_bad(pud)); +@@ -294,6 +591,10 @@ static void alloc_init_cont_pmd(pud_t *pudp, unsigned long addr, + static inline bool use_1G_block(unsigned long addr, unsigned long next, + unsigned long phys) + { ++ #ifdef CONFIG_IEE ++ return false; ++ #endif ++ + if (PAGE_SHIFT != 12) + return false; + +@@ -339,7 +640,11 @@ static void alloc_init_pud(pgd_t *pgdp, unsigned long addr, unsigned long end, + */ + if (use_1G_block(addr, next, phys) && + (flags & NO_BLOCK_MAPPINGS) == 0) { ++ #ifdef CONFIG_PTP ++ iee_pud_set_huge_fixmap(pudp, phys, prot); ++ #else + pud_set_huge(pudp, phys, prot); ++ #endif + + /* + * After the PUD entry has been populated once, we +@@ -370,6 +675,10 @@ static void __create_pgd_mapping(pgd_t *pgdir, phys_addr_t phys, + { + unsigned long addr, end, next; + pgd_t *pgdp = pgd_offset_pgd(pgdir, virt); ++ #ifdef CONFIG_IEE ++ p4d_t *p4dp; ++ p4d_t p4d; ++ #endif + + /* + * If the virtual and physical address don't have the same offset +@@ -388,96 +697,363 @@ static void __create_pgd_mapping(pgd_t *pgdir, phys_addr_t phys, + next = pgd_addr_end(addr, end); + alloc_init_pud(pgdp, addr, next, phys, prot, pgtable_alloc, + flags); ++ #ifdef CONFIG_IEE ++ p4dp = p4d_offset(pgdp, addr); ++ p4d = READ_ONCE(*p4dp); ++ __p4d_populate(p4dp, __p4d_to_phys(p4d), (PGD_APT | PUD_TYPE_TABLE)); ++ #endif + phys += next - addr; + } while (pgdp++, addr = next, addr != end); + } + +-static phys_addr_t __pgd_pgtable_alloc(int shift) ++#ifdef CONFIG_PTP ++static int __init iee_pud_set_huge_pre_init(pud_t *pudp, phys_addr_t phys, pgprot_t prot) + { +- void *ptr = (void *)__get_free_page(GFP_PGTABLE_KERNEL); +- BUG_ON(!ptr); ++ pud_t new_pud = pfn_pud(__phys_to_pfn(phys), mk_pud_sect_prot(prot)); + +- /* Ensure the zeroed page is visible to the page table walker */ +- dsb(ishst); +- return __pa(ptr); ++ /* Only allow permission changes for now */ ++ if (!pgattr_change_is_safe(READ_ONCE(pud_val(*pudp)), ++ pud_val(new_pud))) ++ return 0; ++ ++ VM_BUG_ON(phys & ~PUD_MASK); ++ iee_set_pud_pre_init(pudp, new_pud); ++ return 1; + } + +-static phys_addr_t pgd_pgtable_alloc(int shift) ++static int __init iee_pmd_set_huge_pre_init(pmd_t *pmdp, phys_addr_t phys, pgprot_t prot) + { +- phys_addr_t pa = __pgd_pgtable_alloc(shift); ++ pmd_t new_pmd = pfn_pmd(__phys_to_pfn(phys), mk_pmd_sect_prot(prot)); + +- /* +- * Call proper page table ctor in case later we need to +- * call core mm functions like apply_to_page_range() on +- * this pre-allocated page table. +- * +- * We don't select ARCH_ENABLE_SPLIT_PMD_PTLOCK if pmd is +- * folded, and if so pgtable_pmd_page_ctor() becomes nop. +- */ +- if (shift == PAGE_SHIFT) +- BUG_ON(!pgtable_pte_page_ctor(phys_to_page(pa))); +- else if (shift == PMD_SHIFT) +- BUG_ON(!pgtable_pmd_page_ctor(phys_to_page(pa))); ++ /* Only allow permission changes for now */ ++ if (!pgattr_change_is_safe(READ_ONCE(pmd_val(*pmdp)), ++ pmd_val(new_pmd))) ++ return 0; + +- return pa; ++ VM_BUG_ON(phys & ~PMD_MASK); ++ iee_set_pmd_pre_init(pmdp, new_pmd); ++ return 1; + } + +-/* +- * This function can only be used to modify existing table entries, +- * without allocating new levels of table. Note that this permits the +- * creation of new section or page entries. +- */ +-static void __init create_mapping_noalloc(phys_addr_t phys, unsigned long virt, +- phys_addr_t size, pgprot_t prot) ++static __init void iee_init_pte_pre_init(pmd_t *pmdp, unsigned long addr, unsigned long end, ++ phys_addr_t phys, pgprot_t prot) + { +- if (virt < PAGE_OFFSET) { +- pr_warn("BUG: not creating mapping for %pa at 0x%016lx - outside kernel range\n", +- &phys, virt); +- return; +- } +- __create_pgd_mapping(init_mm.pgd, phys, virt, size, prot, NULL, +- NO_CONT_MAPPINGS); +-} ++ pte_t *ptep; + +-void __init create_pgd_mapping(struct mm_struct *mm, phys_addr_t phys, +- unsigned long virt, phys_addr_t size, +- pgprot_t prot, bool page_mappings_only) +-{ +- int flags = 0; ++ ptep = pte_set_fixmap_offset_init(pmdp, addr); ++ do { ++ pte_t old_pte = READ_ONCE(*ptep); + +- BUG_ON(mm == &init_mm); ++ iee_set_pte_pre_init(ptep, pfn_pte(__phys_to_pfn(phys), prot)); + +- if (page_mappings_only) +- flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; ++ /* ++ * After the PTE entry has been populated once, we ++ * only allow updates to the permission attributes. ++ */ ++ BUG_ON(!pgattr_change_is_safe(pte_val(old_pte), ++ READ_ONCE(pte_val(*ptep)))); + +- __create_pgd_mapping(mm->pgd, phys, virt, size, prot, +- pgd_pgtable_alloc, flags); ++ phys += PAGE_SIZE; ++ } while (ptep++, addr += PAGE_SIZE, addr != end); ++ ++ pte_clear_fixmap_init(); + } + +-static void update_mapping_prot(phys_addr_t phys, unsigned long virt, +- phys_addr_t size, pgprot_t prot) ++static __init void iee_alloc_init_cont_pte_pre_init(pmd_t *pmdp, unsigned long addr, ++ unsigned long end, phys_addr_t phys, ++ pgprot_t prot, ++ phys_addr_t (*pgtable_alloc)(int), ++ int flags) + { +- if (virt < PAGE_OFFSET) { +- pr_warn("BUG: not updating mapping for %pa at 0x%016lx - outside kernel range\n", +- &phys, virt); +- return; ++ unsigned long next; ++ pmd_t pmd = READ_ONCE(*pmdp); ++ ++ BUG_ON(pmd_sect(pmd)); ++ if (pmd_none(pmd)) { ++ phys_addr_t pte_phys; ++ BUG_ON(!pgtable_alloc); ++ pte_phys = pgtable_alloc(PAGE_SHIFT); ++ __iee_pmd_populate_pre_init(pmdp, pte_phys, PMD_TYPE_TABLE); ++ pmd = READ_ONCE(*pmdp); + } ++ BUG_ON(pmd_bad(pmd)); + +- __create_pgd_mapping(init_mm.pgd, phys, virt, size, prot, NULL, +- NO_CONT_MAPPINGS); ++ do { ++ pgprot_t __prot = prot; + +- /* flush the TLBs after updating live kernel mappings */ +- flush_tlb_kernel_range(virt, virt + size); +-} ++ next = pte_cont_addr_end(addr, end); + +-static void __init __map_memblock(pgd_t *pgdp, phys_addr_t start, +- phys_addr_t end, pgprot_t prot, int flags) +-{ +- __create_pgd_mapping(pgdp, start, __phys_to_virt(start), end - start, +- prot, early_pgtable_alloc, flags); ++ /* use a contiguous mapping if the range is suitably aligned */ ++ if ((((addr | next | phys) & ~CONT_PTE_MASK) == 0) && ++ (flags & NO_CONT_MAPPINGS) == 0) ++ __prot = __pgprot(pgprot_val(prot) | PTE_CONT); ++ ++ iee_init_pte_pre_init(pmdp, addr, next, phys, __prot); ++ ++ phys += next - addr; ++ } while (addr = next, addr != end); + } + +-void __init mark_linear_text_alias_ro(void) ++static __init void iee_init_pmd_pre_init(pud_t *pudp, unsigned long addr, unsigned long end, ++ phys_addr_t phys, pgprot_t prot, ++ phys_addr_t (*pgtable_alloc)(int), int flags) ++{ ++ unsigned long next; ++ pmd_t *pmdp; ++ ++ pmdp = pmd_set_fixmap_offset_init(pudp, addr); ++ do { ++ pmd_t old_pmd = READ_ONCE(*pmdp); ++ ++ next = pmd_addr_end(addr, end); ++ ++ /* try section mapping first */ ++ if (((addr | next | phys) & ~SECTION_MASK) == 0 && ++ (flags & NO_BLOCK_MAPPINGS) == 0) { ++ iee_pmd_set_huge_pre_init(pmdp, phys, prot); ++ ++ /* ++ * After the PMD entry has been populated once, we ++ * only allow updates to the permission attributes. ++ */ ++ BUG_ON(!pgattr_change_is_safe(pmd_val(old_pmd), ++ READ_ONCE(pmd_val(*pmdp)))); ++ } else { ++ iee_alloc_init_cont_pte_pre_init(pmdp, addr, next, phys, prot, ++ pgtable_alloc, flags); ++ ++ BUG_ON(pmd_val(old_pmd) != 0 && ++ pmd_val(old_pmd) != READ_ONCE(pmd_val(*pmdp))); ++ } ++ phys += next - addr; ++ } while (pmdp++, addr = next, addr != end); ++ ++ pmd_clear_fixmap_init(); ++} ++ ++static __init void iee_alloc_init_cont_pmd_pre_init(pud_t *pudp, unsigned long addr, ++ unsigned long end, phys_addr_t phys, ++ pgprot_t prot, ++ phys_addr_t (*pgtable_alloc)(int), int flags) ++{ ++ unsigned long next; ++ pud_t pud = READ_ONCE(*pudp); ++ ++ /* ++ * Check for initial section mappings in the pgd/pud. ++ */ ++ BUG_ON(pud_sect(pud)); ++ if (pud_none(pud)) { ++ phys_addr_t pmd_phys; ++ BUG_ON(!pgtable_alloc); ++ pmd_phys = pgtable_alloc(PMD_SHIFT); ++ __iee_pud_populate_pre_init(pudp, pmd_phys, PUD_TYPE_TABLE); ++ pud = READ_ONCE(*pudp); ++ } ++ BUG_ON(pud_bad(pud)); ++ ++ do { ++ pgprot_t __prot = prot; ++ ++ next = pmd_cont_addr_end(addr, end); ++ ++ /* use a contiguous mapping if the range is suitably aligned */ ++ if ((((addr | next | phys) & ~CONT_PMD_MASK) == 0) && ++ (flags & NO_CONT_MAPPINGS) == 0) ++ __prot = __pgprot(pgprot_val(prot) | PTE_CONT); ++ ++ iee_init_pmd_pre_init(pudp, addr, next, phys, __prot, pgtable_alloc, flags); ++ ++ phys += next - addr; ++ } while (addr = next, addr != end); ++} ++ ++static __init void iee_alloc_init_pud_pre_init(pgd_t *pgdp, unsigned long addr, unsigned long end, ++ phys_addr_t phys, pgprot_t prot, ++ phys_addr_t (*pgtable_alloc)(int), ++ int flags) ++{ ++ unsigned long next; ++ pud_t *pudp; ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ p4d_t p4d = READ_ONCE(*p4dp); ++ ++ if (p4d_none(p4d)) { ++ phys_addr_t pud_phys; ++ BUG_ON(!pgtable_alloc); ++ pud_phys = pgtable_alloc(PUD_SHIFT); ++ __iee_p4d_populate_pre_init(p4dp, pud_phys, PUD_TYPE_TABLE); ++ p4d = READ_ONCE(*p4dp); ++ } ++ BUG_ON(p4d_bad(p4d)); ++ ++ pudp = pud_set_fixmap_offset_init(p4dp, addr); ++ do { ++ pud_t old_pud = READ_ONCE(*pudp); ++ ++ next = pud_addr_end(addr, end); ++ ++ /* ++ * For 4K granule only, attempt to put down a 1GB block ++ */ ++ if (use_1G_block(addr, next, phys) && ++ (flags & NO_BLOCK_MAPPINGS) == 0) { ++ iee_pud_set_huge_pre_init(pudp, phys, prot); ++ ++ /* ++ * After the PUD entry has been populated once, we ++ * only allow updates to the permission attributes. ++ */ ++ BUG_ON(!pgattr_change_is_safe(pud_val(old_pud), ++ READ_ONCE(pud_val(*pudp)))); ++ } else { ++ iee_alloc_init_cont_pmd_pre_init(pudp, addr, next, phys, prot, ++ pgtable_alloc, flags); ++ ++ BUG_ON(pud_val(old_pud) != 0 && ++ pud_val(old_pud) != READ_ONCE(pud_val(*pudp))); ++ } ++ phys += next - addr; ++ } while (pudp++, addr = next, addr != end); ++ ++ pud_clear_fixmap_init(); ++} ++ ++static __init void __iee_create_pgd_mapping_pre_init(pgd_t *pgdir, phys_addr_t phys, ++ unsigned long virt, phys_addr_t size, ++ pgprot_t prot, ++ phys_addr_t (*pgtable_alloc)(int), ++ int flags) ++{ ++ unsigned long addr, end, next; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, virt); ++ p4d_t *p4dp; ++ p4d_t p4d; ++ ++ /* ++ * If the virtual and physical address don't have the same offset ++ * within a page, we cannot map the region as the caller expects. ++ */ ++ if (WARN_ON((phys ^ virt) & ~PAGE_MASK)) ++ return; ++ ++ phys &= PAGE_MASK; ++ addr = virt & PAGE_MASK; ++ end = PAGE_ALIGN(virt + size); ++ ++ do { ++ next = pgd_addr_end(addr, end); ++ iee_alloc_init_pud_pre_init(pgdp, addr, next, phys, prot, pgtable_alloc, ++ flags); ++ p4dp = p4d_offset(pgdp, addr); ++ p4d = READ_ONCE(*p4dp); ++ __iee_p4d_populate_pre_init(p4dp, __p4d_to_phys(p4d), (PGD_APT | PUD_TYPE_TABLE)); ++ phys += next - addr; ++ } while (pgdp++, addr = next, addr != end); ++} ++#endif ++ ++static phys_addr_t __pgd_pgtable_alloc(int shift) ++{ ++ #ifdef CONFIG_PTP ++ void *ptr = get_iee_pgtable_page(GFP_PGTABLE_KERNEL); ++ #else ++ void *ptr = (void *)__get_free_page(GFP_PGTABLE_KERNEL); ++ #endif ++ BUG_ON(!ptr); ++ ++ /* Ensure the zeroed page is visible to the page table walker */ ++ dsb(ishst); ++ return __pa(ptr); ++} ++ ++static phys_addr_t pgd_pgtable_alloc(int shift) ++{ ++ phys_addr_t pa = __pgd_pgtable_alloc(shift); ++ ++ /* ++ * Call proper page table ctor in case later we need to ++ * call core mm functions like apply_to_page_range() on ++ * this pre-allocated page table. ++ * ++ * We don't select ARCH_ENABLE_SPLIT_PMD_PTLOCK if pmd is ++ * folded, and if so pgtable_pmd_page_ctor() becomes nop. ++ */ ++ if (shift == PAGE_SHIFT) ++ BUG_ON(!pgtable_pte_page_ctor(phys_to_page(pa))); ++ else if (shift == PMD_SHIFT) ++ BUG_ON(!pgtable_pmd_page_ctor(phys_to_page(pa))); ++ ++ return pa; ++} ++ ++/* ++ * This function can only be used to modify existing table entries, ++ * without allocating new levels of table. Note that this permits the ++ * creation of new section or page entries. ++ */ ++static void __init create_mapping_noalloc(phys_addr_t phys, unsigned long virt, ++ phys_addr_t size, pgprot_t prot) ++{ ++ if (virt < PAGE_OFFSET) { ++ pr_warn("BUG: not creating mapping for %pa at 0x%016lx - outside kernel range\n", ++ &phys, virt); ++ return; ++ } ++ ++ #ifdef CONFIG_PTP ++ __iee_create_pgd_mapping_pre_init(init_mm.pgd, phys, virt, size, prot, NULL, ++ NO_CONT_MAPPINGS); ++ #else ++ __create_pgd_mapping(init_mm.pgd, phys, virt, size, prot, NULL, ++ NO_CONT_MAPPINGS); ++ #endif ++} ++ ++void __init create_pgd_mapping(struct mm_struct *mm, phys_addr_t phys, ++ unsigned long virt, phys_addr_t size, ++ pgprot_t prot, bool page_mappings_only) ++{ ++ int flags = 0; ++ ++ BUG_ON(mm == &init_mm); ++ ++ if (page_mappings_only) ++ flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; ++ ++ __create_pgd_mapping(mm->pgd, phys, virt, size, prot, ++ pgd_pgtable_alloc, flags); ++} ++ ++static void update_mapping_prot(phys_addr_t phys, unsigned long virt, ++ phys_addr_t size, pgprot_t prot) ++{ ++ if (virt < PAGE_OFFSET) { ++ pr_warn("BUG: not updating mapping for %pa at 0x%016lx - outside kernel range\n", ++ &phys, virt); ++ return; ++ } ++ ++ __create_pgd_mapping(init_mm.pgd, phys, virt, size, prot, NULL, ++ NO_CONT_MAPPINGS); ++ ++ /* flush the TLBs after updating live kernel mappings */ ++ flush_tlb_kernel_range(virt, virt + size); ++} ++ ++static void __init __map_memblock(pgd_t *pgdp, phys_addr_t start, ++ phys_addr_t end, pgprot_t prot, int flags) ++{ ++ #ifdef CONFIG_PTP ++ __iee_create_pgd_mapping_pre_init(pgdp, start, __phys_to_virt(start), end - start, ++ prot, early_pgtable_alloc, flags); ++ #else ++ __create_pgd_mapping(pgdp, start, __phys_to_virt(start), end - start, ++ prot, early_pgtable_alloc, flags); ++ #endif ++} ++ ++void __init mark_linear_text_alias_ro(void) + { + /* + * Remove the write permissions from the linear alias of .text/.rodata +@@ -625,8 +1201,13 @@ static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void *va_end, + BUG_ON(!PAGE_ALIGNED(pa_start)); + BUG_ON(!PAGE_ALIGNED(size)); + ++ #ifdef CONFIG_PTP ++ __iee_create_pgd_mapping_pre_init(pgdp, pa_start, (unsigned long)va_start, size, prot, ++ early_pgtable_alloc, flags); ++ #else + __create_pgd_mapping(pgdp, pa_start, (unsigned long)va_start, size, prot, + early_pgtable_alloc, flags); ++ #endif + + if (!(vm_flags & VM_NO_GUARD)) + size += PAGE_SIZE; +@@ -640,133 +1221,810 @@ static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void *va_end, + vm_area_add_early(vma); + } + +-#ifdef CONFIG_UNMAP_KERNEL_AT_EL0 +-static int __init map_entry_trampoline(void) ++#ifdef CONFIG_UNMAP_KERNEL_AT_EL0 ++static int __init map_entry_trampoline(void) ++{ ++ int i; ++ ++ pgprot_t prot = rodata_enabled ? PAGE_KERNEL_ROX : PAGE_KERNEL_EXEC; ++ phys_addr_t pa_start = __pa_symbol(__entry_tramp_text_start); ++ ++ /* The trampoline is always mapped and can therefore be global */ ++ pgprot_val(prot) &= ~PTE_NG; ++ ++ /* Map only the text into the trampoline page table */ ++ memset(tramp_pg_dir, 0, PGD_SIZE); ++ #ifdef CONFIG_PTP ++ iee_set_logical_mem_ro((unsigned long)tramp_pg_dir); ++ #endif ++ __create_pgd_mapping(tramp_pg_dir, pa_start, TRAMP_VALIAS, ++ entry_tramp_text_size(), prot, ++ __pgd_pgtable_alloc, NO_BLOCK_MAPPINGS); ++ ++ /* Map both the text and data into the kernel page table */ ++ for (i = 0; i < DIV_ROUND_UP(entry_tramp_text_size(), PAGE_SIZE); i++) ++ __set_fixmap(FIX_ENTRY_TRAMP_TEXT1 - i, ++ pa_start + i * PAGE_SIZE, prot); ++ ++ if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) { ++ extern char __entry_tramp_data_start[]; ++ ++ __set_fixmap(FIX_ENTRY_TRAMP_DATA, ++ __pa_symbol(__entry_tramp_data_start), ++ PAGE_KERNEL_RO); ++ } ++ ++ return 0; ++} ++core_initcall(map_entry_trampoline); ++#endif ++ ++/* ++ * Open coded check for BTI, only for use to determine configuration ++ * for early mappings for before the cpufeature code has run. ++ */ ++static bool arm64_early_this_cpu_has_bti(void) ++{ ++ u64 pfr1; ++ ++ if (!IS_ENABLED(CONFIG_ARM64_BTI_KERNEL)) ++ return false; ++ ++ pfr1 = read_sysreg_s(SYS_ID_AA64PFR1_EL1); ++ return cpuid_feature_extract_unsigned_field(pfr1, ++ ID_AA64PFR1_BT_SHIFT); ++} ++ ++#ifdef CONFIG_IEE ++/* Set PMD APTable of iee si codes as (1,1) to revert it to ROX P pages when HPD1=0. */ ++static void __init iee_si_set_pmd_APtable(unsigned long addr, pgd_t *pgdir) ++{ ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ ++ #ifdef CONFIG_PTP ++ pud_t *pudp = pud_set_fixmap_offset_init(p4dp, addr); ++ ++ pmd_t *pmdp = pmd_set_fixmap_offset_init(pudp, addr); ++ ++ pmd_t pmd = READ_ONCE(*pmdp); ++ ++ __iee_pmd_populate_pre_init(pmdp, __pmd_to_phys(pmd), PGD_APT_RO | PGD_APT | PMD_TYPE_TABLE); ++ ++ pud_clear_fixmap_init(); ++ pmd_clear_fixmap_init(); ++ #else ++ pud_t *pudp = pud_set_fixmap_offset(p4dp, addr); ++ ++ pmd_t *pmdp = pmd_set_fixmap_offset(pudp, addr); ++ ++ pmd_t pmd = READ_ONCE(*pmdp); ++ ++ __pmd_populate(pmdp, __pmd_to_phys(pmd), PGD_APT_RO | PGD_APT | PMD_TYPE_TABLE); ++ ++ pud_clear_fixmap(); ++ pmd_clear_fixmap(); ++ #endif ++} ++/* Set PMD APTable of iee si codes as (1,1) to revert it to ROX P pages when HPD1=0. */ ++static void __init mark_iee_si_pmd_APtable(pgd_t *pgdir) ++{ ++ unsigned long addr = (unsigned long)__iee_si_start; ++ iee_si_set_pmd_APtable(addr, pgdir); ++ // iee rwx gate exit may be mapped by another pmd. ++ iee_si_set_pmd_APtable(addr + PAGE_SIZE, pgdir); ++} ++#endif ++ ++/* ++ * Create fine-grained mappings for the kernel. ++ */ ++static void __init map_kernel(pgd_t *pgdp) ++{ ++ static struct vm_struct vmlinux_text, vmlinux_rodata, vmlinux_inittext, ++ vmlinux_initdata, vmlinux_data; ++ ++ #ifdef CONFIG_IEE ++ static struct vm_struct vmlinux_text_idmap, vmlinux_iee_data, vmlinux_iee_gate, ++ vmlinux_iee_code, vmlinux_text_end; ++ #endif ++ ++ /* ++ * External debuggers may need to write directly to the text ++ * mapping to install SW breakpoints. Allow this (only) when ++ * explicitly requested with rodata=off. ++ */ ++ pgprot_t text_prot = rodata_enabled ? PAGE_KERNEL_ROX : PAGE_KERNEL_EXEC; ++ ++ /* ++ * If we have a CPU that supports BTI and a kernel built for ++ * BTI then mark the kernel executable text as guarded pages ++ * now so we don't have to rewrite the page tables later. ++ */ ++ if (arm64_early_this_cpu_has_bti()) ++ text_prot = __pgprot_modify(text_prot, PTE_GP, PTE_GP); ++ ++ /* ++ * Only rodata will be remapped with different permissions later on, ++ * all other segments are allowed to use contiguous mappings. ++ */ ++ #ifdef CONFIG_IEE ++ map_kernel_segment(pgdp, _text, __idmap_text_start, text_prot, &vmlinux_text, ++ 0, VM_NO_GUARD); ++ /* ++ * Cancel contiguous mappings of idmap and iee si sections to ++ * simplify modifications later. ++ */ ++ map_kernel_segment(pgdp, __idmap_text_start, __iee_si_data_start, text_prot, &vmlinux_text_idmap, ++ 0, VM_NO_GUARD); ++ /* Set iee si data RW. */ ++ map_kernel_segment(pgdp, __iee_si_data_start, __iee_exec_entry_start, SET_NG(PAGE_KERNEL), ++ &vmlinux_iee_data, NO_CONT_MAPPINGS | NO_BLOCK_MAPPINGS, VM_NO_GUARD); ++ /* Set iee entry codes NG. */ ++ map_kernel_segment(pgdp, __iee_exec_entry_start, __iee_si_start, SET_NG(text_prot), &vmlinux_iee_gate, ++ NO_CONT_MAPPINGS | NO_BLOCK_MAPPINGS, VM_NO_GUARD); ++ /* Map __iee_si_start - __iee_si_end as U RWX pages and set PMD APTABLE = (1,1). */ ++ map_kernel_segment(pgdp, __iee_si_start, __iee_si_end, SET_NG((PAGE_KERNEL_EXEC)), ++ &vmlinux_iee_code, NO_CONT_MAPPINGS | NO_BLOCK_MAPPINGS, VM_NO_GUARD); ++ mark_iee_si_pmd_APtable(pgdp); ++ ++ map_kernel_segment(pgdp, __iee_si_end, _etext, text_prot, &vmlinux_text_end, 0, ++ VM_NO_GUARD); ++ ++ map_kernel_segment(pgdp, __start_rodata, __inittext_begin, PAGE_KERNEL, ++ &vmlinux_rodata, NO_CONT_MAPPINGS | NO_BLOCK_MAPPINGS, VM_NO_GUARD); ++ map_kernel_segment(pgdp, __inittext_begin, __inittext_end, text_prot, ++ &vmlinux_inittext, 0, VM_NO_GUARD); ++ map_kernel_segment(pgdp, __initdata_begin, __initdata_end, PAGE_KERNEL, ++ &vmlinux_initdata, 0, VM_NO_GUARD); ++ map_kernel_segment(pgdp, _data, _end, PAGE_KERNEL, &vmlinux_data, NO_CONT_MAPPINGS | NO_BLOCK_MAPPINGS, 0); ++ #else ++ map_kernel_segment(pgdp, _text, _etext, text_prot, &vmlinux_text, 0, ++ VM_NO_GUARD); ++ map_kernel_segment(pgdp, __start_rodata, __inittext_begin, PAGE_KERNEL, ++ &vmlinux_rodata, NO_CONT_MAPPINGS, VM_NO_GUARD); ++ map_kernel_segment(pgdp, __inittext_begin, __inittext_end, text_prot, ++ &vmlinux_inittext, 0, VM_NO_GUARD); ++ map_kernel_segment(pgdp, __initdata_begin, __initdata_end, PAGE_KERNEL, ++ &vmlinux_initdata, 0, VM_NO_GUARD); ++ map_kernel_segment(pgdp, _data, _end, PAGE_KERNEL, &vmlinux_data, 0, 0); ++ #endif ++ ++ ++ if (!READ_ONCE(pgd_val(*pgd_offset_pgd(pgdp, FIXADDR_START)))) { ++ /* ++ * The fixmap falls in a separate pgd to the kernel, and doesn't ++ * live in the carveout for the swapper_pg_dir. We can simply ++ * re-use the existing dir for the fixmap. ++ */ ++ #ifdef CONFIG_PTP ++ set_pgd_init(pgd_offset_pgd(pgdp, FIXADDR_START), ++ READ_ONCE(*pgd_offset_k(FIXADDR_START))); ++ #else ++ set_pgd(pgd_offset_pgd(pgdp, FIXADDR_START), ++ READ_ONCE(*pgd_offset_k(FIXADDR_START))); ++ #endif ++ } else if (CONFIG_PGTABLE_LEVELS > 3) { ++ pgd_t *bm_pgdp; ++ p4d_t *bm_p4dp; ++ pud_t *bm_pudp; ++ /* ++ * The fixmap shares its top level pgd entry with the kernel ++ * mapping. This can really only occur when we are running ++ * with 16k/4 levels, so we can simply reuse the pud level ++ * entry instead. ++ */ ++ BUG_ON(!IS_ENABLED(CONFIG_ARM64_16K_PAGES)); ++ bm_pgdp = pgd_offset_pgd(pgdp, FIXADDR_START); ++ bm_p4dp = p4d_offset(bm_pgdp, FIXADDR_START); ++ #ifdef CONFIG_PTP ++ bm_pudp = pud_set_fixmap_offset_init(bm_p4dp, FIXADDR_START); ++ __iee_pud_populate_pre_init(bm_pudp, __pa(lm_alias(bm_pmd)), PMD_TYPE_TABLE); ++ pud_clear_fixmap_init(); ++ #else ++ bm_pudp = pud_set_fixmap_offset(bm_p4dp, FIXADDR_START); ++ pud_populate(&init_mm, bm_pudp, lm_alias(bm_pmd)); ++ pud_clear_fixmap(); ++ #endif ++ } else { ++ BUG(); ++ } ++ ++ kasan_copy_shadow(pgdp); ++} ++ ++#ifdef CONFIG_IEE ++static void __create_pgd_mapping_for_iee(pgd_t *pgdir, phys_addr_t phys, ++ unsigned long virt, phys_addr_t size, ++ pgprot_t prot, ++ phys_addr_t (*pgtable_alloc)(int), ++ int flags) ++{ ++ unsigned long addr, end, next; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, virt); ++ p4d_t *p4dp; ++ p4d_t p4d; ++ ++ /* ++ * If the virtual and physical address don't have the same offset ++ * within a page, we cannot map the region as the caller expects. ++ */ ++ if (WARN_ON((phys ^ virt) & ~PAGE_MASK)) ++ return; ++ ++ phys &= PAGE_MASK; ++ addr = virt & PAGE_MASK; ++ end = PAGE_ALIGN(virt + size); ++ ++ do { ++ next = pgd_addr_end(addr, end); ++ #ifdef CONFIG_PTP ++ iee_alloc_init_pud_pre_init(pgdp, addr, next, phys, prot, pgtable_alloc, ++ flags); ++ #else ++ alloc_init_pud(pgdp, addr, next, phys, prot, pgtable_alloc, ++ flags); ++ #endif ++ p4dp = p4d_offset(pgdp, addr); ++ p4d = READ_ONCE(*p4dp); ++ #ifdef CONFIG_PTP ++ __iee_p4d_populate_pre_init(p4dp, __p4d_to_phys(p4d), (PGD_APT | PGD_PXN | PGD_UXN | PUD_TYPE_TABLE)); ++ #else ++ __p4d_populate(p4dp, __p4d_to_phys(p4d), (PGD_APT | PGD_PXN | PGD_UXN | PUD_TYPE_TABLE)); ++ #endif ++ phys += next - addr; ++ } while (pgdp++, addr = next, addr != end); ++} ++ ++static void __init __map_memblock_for_iee(pgd_t *pgdp, phys_addr_t start, ++ phys_addr_t end, pgprot_t prot, int flags) ++{ ++ #ifdef CONFIG_PTP ++ __create_pgd_mapping_for_iee(pgdp, start, __phys_to_iee(start), end - start, ++ prot, early_pgtable_alloc, flags); ++ #else ++ __create_pgd_mapping_for_iee(pgdp, start, __phys_to_iee(start), end - start, ++ prot, early_pgtable_alloc, flags); ++ #endif ++} ++ ++static void __init map_iee(pgd_t *pgdp) ++{ ++ phys_addr_t kernel_start = __pa_symbol(_text); ++ phys_addr_t kernel_end = __pa_symbol(__init_begin); ++ phys_addr_t start, end; ++ int flags = 0; ++ u64 i; ++ ++ flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; ++ ++ /* ++ * Take care not to create a writable alias for the ++ * read-only text and rodata sections of the kernel image. ++ * So temporarily mark them as NOMAP to skip mappings in ++ * the following for-loop ++ */ ++ memblock_mark_nomap(kernel_start, kernel_end - kernel_start); ++#ifdef CONFIG_KEXEC_CORE ++ if (crashk_res.end) ++ memblock_mark_nomap(crashk_res.start, ++ resource_size(&crashk_res)); ++#endif ++ ++ /* map all the memory banks */ ++ for_each_mem_range(i, &start, &end) { ++ if (start >= end) ++ break; ++ /* ++ * The linear map must allow allocation tags reading/writing ++ * if MTE is present. Otherwise, it has the same attributes as ++ * PAGE_KERNEL. ++ */ ++ __map_memblock_for_iee(pgdp, start, end, SET_NG(SET_INVALID(SET_UPAGE(PAGE_KERNEL))), flags); ++ } ++ ++ /* ++ * Map the linear alias of the [_text, __init_begin) interval ++ * as non-executable now, and remove the write permission in ++ * mark_linear_text_alias_ro() below (which will be called after ++ * alternative patching has completed). This makes the contents ++ * of the region accessible to subsystems such as hibernate, ++ * but protects it from inadvertent modification or execution. ++ * Note that contiguous mappings cannot be remapped in this way, ++ * so we should avoid them here. ++ */ ++ __map_memblock_for_iee(pgdp, kernel_start, kernel_end, ++ SET_NG(SET_INVALID(SET_UPAGE(PAGE_KERNEL))), flags); ++ memblock_clear_nomap(kernel_start, kernel_end - kernel_start); ++ ++#ifdef CONFIG_KEXEC_CORE ++ /* ++ * Use page-level mappings here so that we can shrink the region ++ * in page granularity and put back unused memory to buddy system ++ * through /sys/kernel/kexec_crash_size interface. ++ */ ++ if (crashk_res.end) { ++ __map_memblock_for_iee(pgdp, crashk_res.start, crashk_res.end + 1, ++ SET_NG(SET_INVALID(SET_UPAGE(PAGE_KERNEL))), ++ NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS); ++ memblock_clear_nomap(crashk_res.start, ++ resource_size(&crashk_res)); ++ } ++#endif ++} ++ ++/* ++ * Change page access permission, whereas not handling huge pages. ++ * Only used on IEE init functions. ++ */ ++static int __init iee_si_set_page_attr(unsigned long addr, pteval_t attr) ++{ ++ unsigned long flag; ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ ++ pud_t *pudp = pud_offset(p4dp, addr); ++ ++ pmd_t *pmdp = pmd_offset(pudp, addr); ++ ++ pte_t *ptep = pte_offset_kernel(pmdp, addr); ++ pte_t pte = READ_ONCE(*ptep); ++ pr_info("IEE: page access permission changed on address 0x%lx, curr pte val: 0x%lx", ++ addr, (unsigned long)pte_val(pte)); ++ if(attr & PTE_RDONLY) ++ pte = __pte((pte_val(pte) | PTE_RDONLY) & ~PTE_DBM); ++ pte = __pte(pte_val(pte) | attr); ++ #ifdef CONFIG_PTP ++ // Write pgtable in IEE directly. ++ flag = local_daif_save(); ++ asm volatile ("msr pan, #0"); ++ WRITE_ONCE(*((pte_t *)(__phys_to_iee(__pa(ptep)))), pte); ++ asm volatile ("msr pan, #1"); ++ local_daif_restore(flag); ++ #else ++ WRITE_ONCE(*ptep, pte); ++ #endif ++ pr_info("IEE: modified pte val: 0x%lx", (unsigned long)pte_val(pte)); ++ return 1; ++} ++ ++int __init iee_si_test_page_attr(unsigned long addr) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ ++ pud_t *pudp = pud_offset(p4dp, addr); ++ ++ pmd_t *pmdp = pmd_offset(pudp, addr); ++ ++ pte_t *ptep = pte_offset_kernel(pmdp, addr); ++ ++ pmd_t pmd = READ_ONCE(*pmdp); ++ pte_t pte = READ_ONCE(*ptep); ++ ++ pr_info("IEE: Testing address 0x%lx. pmdp address:0x%lx", addr, (unsigned long)pmdp); ++ if ((pmd_val(pmd) & PMD_TABLE_BIT)) ++ pr_info("IEE: address 0x%lx is not a huge page. pmd val:0x%lx\n", addr, (unsigned long)pmd_val(pmd)); ++ else{ ++ pr_info("IEE: address 0x%lx is a 2M huge page. pmd val:0x%lx\n", addr, (unsigned long)pmd_val(pmd)); ++ return 0; ++ } ++ pr_info("IEE: pte val on address 0x%lx : 0x%lx", addr, (unsigned long)pte_val(pte)); ++ return 1; ++} ++ ++// void iee_si_test_page_attr_all(unsigned long addr) ++// { ++// pgd_t *pgdir = swapper_pg_dir; ++// pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ ++ ++ ++// p4d_t *p4dp = p4d_offset(pgdp, addr); ++ ++// pud_t *pudp = pud_offset(p4dp, addr); ++ ++// pmd_t *pmdp = pmd_offset(pudp, addr); ++ ++// pte_t *ptep = pte_offset_kernel(pmdp, addr); ++ ++// pgd_t pgd = READ_ONCE(*pgdp); ++// pud_t pud = READ_ONCE(*pudp); ++// pmd_t pmd = READ_ONCE(*pmdp); ++// pte_t pte = READ_ONCE(*ptep); ++ ++// unsigned long pgd_val = pgd_val(pgd); ++// unsigned long pud_val = pud_val(pud); ++// unsigned long pmd_val = pmd_val(pmd); ++// unsigned long pte_val = pte_val(pte); ++// pr_info("IEE: Testing address 0x%lx. pgd:0x%lx, pud:0x%lx, pmd:0x%lx", addr, pgd_val, pud_val, pmd_val); ++// // if ((pmd_val(pmd) & PMD_TABLE_BIT)) ++// // pr_info("IEE: address 0x%lx is not a huge page. pmd val:0x%lx\n", addr, pmd_val(pmd)); ++// // else{ ++// // pr_info("IEE: address 0x%lx is a 2M huge page. pmd val:0x%lx\n", addr, pmd_val(pmd)); ++// // return 0; ++// // } ++// pr_info("IEE: pte val on address 0x%lx : 0x%lx", addr, pte_val); ++// } ++ ++/* map idmap function inside vmalloc region to be ROU pages too. */ ++void __init mark_idmap_vmallc_map_ROU(void) ++{ ++ unsigned long va = (unsigned long)__idmap_text_start; ++ // protect vmalloc mapping of idmap function page. ++ if(iee_si_set_page_attr(va, PTE_PXN | PTE_UXN | PTE_RDONLY)) ++ pr_info("IEE: idmap functions protected.\n"); ++ else ++ pr_info("IEE warning: idmap protection failed.\n"); ++} ++ ++/* Prepare data used for iee rwx gates. These data are setted only once. */ ++void __init iee_si_prepare_data(void) ++{ ++ unsigned long va; ++ // Record current TCR val after system init. ++ iee_si_tcr = read_sysreg(tcr_el1) & ~(SYS_TCR_IEE_SI); ++ // CNP maybe enable. ++ if (system_supports_cnp()) { ++ iee_base_swapper_pg_dir |= TTBR_CNP_BIT; ++ } ++ // Mark iee data as RO and move it to iee after setting up. ++ va = (unsigned long)__iee_si_data_start; ++ iee_si_set_page_attr(va, PTE_RDONLY); ++ va = (unsigned long)__iee_si_start; ++ iee_si_set_page_attr(va, PTE_USER); ++ va = (unsigned long)__iee_si_start + PAGE_SIZE; ++ iee_si_set_page_attr(va, PTE_USER); ++ flush_tlb_all(); ++} ++#endif ++ ++#ifdef CONFIG_PTP ++// Attention : Using set_xxx without adding offset. ++static void __init set_iee_valid_pre_init(unsigned long addr) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); ++ ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ ++ pud_t *pudp = pud_offset(p4dp, addr); ++ ++ pmd_t *pmdp = pmd_offset(pudp, addr); ++ ++ pte_t *ptep = pte_offset_kernel(pmdp, addr); ++ pte_t pte = READ_ONCE(*ptep); ++ ++ if((addr < (PAGE_OFFSET + IEE_OFFSET)) | (addr > (PAGE_OFFSET + BIT(vabits_actual - 1)))) ++ return; ++ ++ pte = __pte(pte_val(pte) | 0x1); ++ iee_set_pte_pre_init(ptep, pte); ++ flush_tlb_kernel_range(addr, addr+PAGE_SIZE); ++ isb(); ++} ++ ++static void __init move_pte_table_into_iee(pmd_t *pmdp, unsigned long addr, unsigned long end) ++{ ++ pmd_t pmd = READ_ONCE(*pmdp); ++ unsigned long iee_addr = __phys_to_iee(__pmd_to_phys(pmd)); ++ set_iee_valid_pre_init(iee_addr); ++} ++ ++static void __init move_pmd_table_into_iee(pud_t *pudp, unsigned long addr, unsigned long end) ++{ ++ unsigned long next; ++ pud_t pud = READ_ONCE(*pudp); ++ pmd_t *pmdp; ++ pmd_t pmd; ++ unsigned long iee_addr = __phys_to_iee(__pud_to_phys(pud)); ++ set_iee_valid_pre_init(iee_addr); ++ ++ pmdp = pmd_offset(pudp, addr); ++ do { ++ next = pmd_addr_end(addr, end); ++ pmd = READ_ONCE(*pmdp); ++ if((pmd_val(pmd) & PMD_TABLE_BIT) == 0) ++ { ++ continue; ++ } ++ else ++ { ++ move_pte_table_into_iee(pmdp, addr, next); ++ } ++ } while (pmdp++, addr = next, addr != end); ++} ++ ++static void __init move_pud_table_into_iee(pgd_t *pgdp, unsigned long addr, unsigned long end) ++{ ++ unsigned long next; ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ p4d_t p4d = READ_ONCE(*p4dp); ++ pud_t *pudp; ++ pud_t pud; ++ unsigned long iee_addr = __phys_to_iee(__p4d_to_phys(p4d)); ++ set_iee_valid_pre_init(iee_addr); ++ ++ pudp = pud_offset(p4dp, addr); ++ do { ++ next = pud_addr_end(addr, end); ++ pud = READ_ONCE(*pudp); ++ if ((pud_val(pud) & PUD_TABLE_BIT) == 0) ++ { ++ continue; ++ } ++ else ++ { ++ move_pmd_table_into_iee(pudp, addr, next); ++ } ++ } while (pudp++, addr = next, addr != end); ++} ++ ++static void __init init_iee_for_one_region(pgd_t *pgdir, unsigned long va_start, unsigned long va_end) ++{ ++ unsigned long addr, end, next; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, va_start); ++ ++ addr = va_start & PAGE_MASK; ++ end = PAGE_ALIGN(va_end); ++ ++ do { ++ next = pgd_addr_end(addr, end); ++ move_pud_table_into_iee(pgdp, addr, next); ++ } while (pgdp++, addr = next, addr != end); ++} ++ ++static void __init init_iee(void) + { +- int i; ++ unsigned long iee_addr; ++ phys_addr_t start, end; ++ u64 i; ++ pgd_t *pgdp; + +- pgprot_t prot = rodata_enabled ? PAGE_KERNEL_ROX : PAGE_KERNEL_EXEC; +- phys_addr_t pa_start = __pa_symbol(__entry_tramp_text_start); ++ #ifdef CONFIG_UNMAP_KERNEL_AT_EL0 ++ // handling 1-level tramp page table tramp_pg_dir ++ iee_addr = (unsigned long)__phys_to_iee(__pa_symbol(tramp_pg_dir)); ++ set_iee_valid_pre_init(iee_addr); ++ #endif ++ // handling 1-level page table swapper_pg_dir ++ pgdp = swapper_pg_dir; ++ iee_addr = (unsigned long)__phys_to_iee(__pa_symbol(swapper_pg_dir)); ++ set_iee_valid_pre_init(iee_addr); ++ // handling 2/3/4-level page table for kernel ++ init_iee_for_one_region(pgdp, (unsigned long)_text, (unsigned long)_etext); ++ init_iee_for_one_region(pgdp, (unsigned long)__start_rodata, (unsigned long)__inittext_begin); ++ init_iee_for_one_region(pgdp, (unsigned long)__inittext_begin, (unsigned long)__inittext_end); ++ init_iee_for_one_region(pgdp, (unsigned long)__initdata_begin, (unsigned long)__initdata_end); ++ init_iee_for_one_region(pgdp, (unsigned long)_data, (unsigned long)_end); ++ // handling 2/3/4-level page table for fixmap i.e. remap bm_xxx ++ iee_addr = (unsigned long)__phys_to_iee(__pa_symbol(bm_pte)); ++ set_iee_valid_pre_init(iee_addr); ++ iee_addr = (unsigned long)__phys_to_iee(__pa_symbol(bm_pmd)); ++ set_iee_valid_pre_init(iee_addr); ++ iee_addr = (unsigned long)__phys_to_iee(__pa_symbol(bm_pud)); ++ set_iee_valid_pre_init(iee_addr); ++ // handling 2/3/4-level page table for logical mem and iee ++ for_each_mem_range(i, &start, &end) { ++ if (start >= end) ++ break; ++ /* ++ * The linear map must allow allocation tags reading/writing ++ * if MTE is present. Otherwise, it has the same attributes as ++ * PAGE_KERNEL. ++ */ ++ init_iee_for_one_region(pgdp, (unsigned long)__va(start), (unsigned long)__va(end)); ++ init_iee_for_one_region(pgdp, (unsigned long)__phys_to_iee(start), (unsigned long)__phys_to_iee(end)); ++ } ++} + +- /* The trampoline is always mapped and can therefore be global */ +- pgprot_val(prot) &= ~PTE_NG; ++static void iee_set_kernel_upage_pre_init(unsigned long addr) ++{ ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, addr); + +- /* Map only the text into the trampoline page table */ +- memset(tramp_pg_dir, 0, PGD_SIZE); +- __create_pgd_mapping(tramp_pg_dir, pa_start, TRAMP_VALIAS, +- entry_tramp_text_size(), prot, +- __pgd_pgtable_alloc, NO_BLOCK_MAPPINGS); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); + +- /* Map both the text and data into the kernel page table */ +- for (i = 0; i < DIV_ROUND_UP(entry_tramp_text_size(), PAGE_SIZE); i++) +- __set_fixmap(FIX_ENTRY_TRAMP_TEXT1 - i, +- pa_start + i * PAGE_SIZE, prot); ++ pud_t *pudp = pud_offset(p4dp, addr); + +- if (IS_ENABLED(CONFIG_RANDOMIZE_BASE)) { +- extern char __entry_tramp_data_start[]; ++ pmd_t *pmdp = pmd_offset(pudp, addr); + +- __set_fixmap(FIX_ENTRY_TRAMP_DATA, +- __pa_symbol(__entry_tramp_data_start), +- PAGE_KERNEL_RO); ++ pte_t *ptep = pte_offset_kernel(pmdp, addr); ++ ++ int i; ++ for(i = 0; i < 4; i++) ++ { ++ pte_t pte = READ_ONCE(*ptep); ++ pte = __pte(pte_val(pte) | PTE_USER | PTE_NG); ++ iee_set_pte_pre_init(ptep, pte); ++ ptep++; + } ++ flush_tlb_kernel_range(addr, addr+4*PAGE_SIZE); ++ isb(); ++} + +- return 0; ++static void __init iee_set_pte_table_ro(pmd_t *pmdp, unsigned long addr, unsigned long end) ++{ ++ pmd_t pmd = READ_ONCE(*pmdp); ++ unsigned long logical_addr = (unsigned long)__va(__pmd_to_phys(pmd)); ++ iee_set_logical_mem_ro(logical_addr); + } +-core_initcall(map_entry_trampoline); +-#endif + +-/* +- * Open coded check for BTI, only for use to determine configuration +- * for early mappings for before the cpufeature code has run. +- */ +-static bool arm64_early_this_cpu_has_bti(void) ++static void __init iee_set_pmd_table_ro(pud_t *pudp, unsigned long addr, unsigned long end) + { +- u64 pfr1; ++ unsigned long next; ++ pud_t pud = READ_ONCE(*pudp); ++ pmd_t *pmdp; ++ pmd_t pmd; ++ unsigned long logical_addr = (unsigned long)__va(__pud_to_phys(pud)); ++ iee_set_logical_mem_ro(logical_addr); + +- if (!IS_ENABLED(CONFIG_ARM64_BTI_KERNEL)) +- return false; ++ pmdp = pmd_offset(pudp, addr); ++ do { ++ next = pmd_addr_end(addr, end); ++ pmd = READ_ONCE(*pmdp); ++ if((pmd_val(pmd) & PMD_TABLE_BIT) == 0) ++ { ++ continue; ++ } ++ else ++ { ++ iee_set_pte_table_ro(pmdp, addr, next); ++ } ++ } while (pmdp++, addr = next, addr != end); ++} + +- pfr1 = read_sysreg_s(SYS_ID_AA64PFR1_EL1); +- return cpuid_feature_extract_unsigned_field(pfr1, +- ID_AA64PFR1_BT_SHIFT); ++static void __init iee_set_pud_table_ro(pgd_t *pgdp, unsigned long addr, unsigned long end) ++{ ++ unsigned long next; ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ p4d_t p4d = READ_ONCE(*p4dp); ++ pud_t *pudp; ++ pud_t pud; ++ unsigned long logical_addr = (unsigned long)__va(__p4d_to_phys(p4d)); ++ iee_set_logical_mem_ro(logical_addr); ++ ++ pudp = pud_offset(p4dp, addr); ++ do { ++ next = pud_addr_end(addr, end); ++ pud = READ_ONCE(*pudp); ++ if ((pud_val(pud) & PUD_TABLE_BIT) == 0) ++ { ++ continue; ++ } ++ else ++ { ++ iee_set_pmd_table_ro(pudp, addr, next); ++ } ++ } while (pudp++, addr = next, addr != end); + } + +-/* +- * Create fine-grained mappings for the kernel. +- */ +-static void __init map_kernel(pgd_t *pgdp) ++static void __init iee_mark_pgtable_for_one_region_ro(pgd_t *pgdir, unsigned long va_start, unsigned long va_end) + { +- static struct vm_struct vmlinux_text, vmlinux_rodata, vmlinux_inittext, +- vmlinux_initdata, vmlinux_data; ++ unsigned long addr, end, next; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, va_start); + +- /* +- * External debuggers may need to write directly to the text +- * mapping to install SW breakpoints. Allow this (only) when +- * explicitly requested with rodata=off. +- */ +- pgprot_t text_prot = rodata_enabled ? PAGE_KERNEL_ROX : PAGE_KERNEL_EXEC; ++ addr = va_start & PAGE_MASK; ++ end = PAGE_ALIGN(va_end); + +- /* +- * If we have a CPU that supports BTI and a kernel built for +- * BTI then mark the kernel executable text as guarded pages +- * now so we don't have to rewrite the page tables later. +- */ +- if (arm64_early_this_cpu_has_bti()) +- text_prot = __pgprot_modify(text_prot, PTE_GP, PTE_GP); ++ do { ++ next = pgd_addr_end(addr, end); ++ iee_set_pud_table_ro(pgdp, addr, next); ++ } while (pgdp++, addr = next, addr != end); ++} + +- /* +- * Only rodata will be remapped with different permissions later on, +- * all other segments are allowed to use contiguous mappings. +- */ +- map_kernel_segment(pgdp, _text, _etext, text_prot, &vmlinux_text, 0, +- VM_NO_GUARD); +- map_kernel_segment(pgdp, __start_rodata, __inittext_begin, PAGE_KERNEL, +- &vmlinux_rodata, NO_CONT_MAPPINGS, VM_NO_GUARD); +- map_kernel_segment(pgdp, __inittext_begin, __inittext_end, text_prot, +- &vmlinux_inittext, 0, VM_NO_GUARD); +- map_kernel_segment(pgdp, __initdata_begin, __initdata_end, PAGE_KERNEL, +- &vmlinux_initdata, 0, VM_NO_GUARD); +- map_kernel_segment(pgdp, _data, _end, PAGE_KERNEL, &vmlinux_data, 0, 0); ++// Mark pgtable outside as RO. ++void __init iee_mark_all_lm_pgtable_ro(void) ++{ ++ unsigned long logical_addr; ++ phys_addr_t start, end; ++ u64 i; ++ pgd_t *pgdp; + +- if (!READ_ONCE(pgd_val(*pgd_offset_pgd(pgdp, FIXADDR_START)))) { +- /* +- * The fixmap falls in a separate pgd to the kernel, and doesn't +- * live in the carveout for the swapper_pg_dir. We can simply +- * re-use the existing dir for the fixmap. +- */ +- set_pgd(pgd_offset_pgd(pgdp, FIXADDR_START), +- READ_ONCE(*pgd_offset_k(FIXADDR_START))); +- } else if (CONFIG_PGTABLE_LEVELS > 3) { +- pgd_t *bm_pgdp; +- p4d_t *bm_p4dp; +- pud_t *bm_pudp; ++ // handling static allocated page table ++ #ifdef CONFIG_UNMAP_KERNEL_AT_EL0 ++ // handling 1-level tramp page table tramp_pg_dir ++ logical_addr = (unsigned long)__va(__pa_symbol(tramp_pg_dir)); ++ iee_set_logical_mem_ro(logical_addr); ++ #endif ++ // handling 1-level page table swapper_pg_dir ++ pgdp = swapper_pg_dir; ++ iee_set_logical_mem_ro((unsigned long)swapper_pg_dir); ++ logical_addr = (unsigned long)__va(__pa_symbol(swapper_pg_dir)); ++ iee_set_logical_mem_ro(logical_addr); ++ ++ // handling 2/3/4-level page table for kernel ++ iee_mark_pgtable_for_one_region_ro(pgdp, (unsigned long)_text, (unsigned long)_etext); ++ iee_mark_pgtable_for_one_region_ro(pgdp, (unsigned long)__start_rodata, (unsigned long)__inittext_begin); ++ iee_mark_pgtable_for_one_region_ro(pgdp, (unsigned long)__inittext_begin, (unsigned long)__inittext_end); ++ iee_mark_pgtable_for_one_region_ro(pgdp, (unsigned long)__initdata_begin, (unsigned long)__initdata_end); ++ iee_mark_pgtable_for_one_region_ro(pgdp, (unsigned long)_data, (unsigned long)_end); ++ ++ // handling 2/3/4-level page table for fixmap i.e. remap bm_xxx ++ logical_addr = (unsigned long)__va(__pa_symbol(bm_pte)); ++ iee_set_logical_mem_ro(logical_addr); ++ ++ iee_set_logical_mem_ro((unsigned long)bm_pmd); ++ logical_addr = (unsigned long)__va(__pa_symbol(bm_pmd)); ++ iee_set_logical_mem_ro(logical_addr); ++ ++ iee_set_logical_mem_ro((unsigned long)bm_pud); ++ logical_addr = (unsigned long)__va(__pa_symbol(bm_pud)); ++ iee_set_logical_mem_ro(logical_addr); ++ ++ // handling 2/3/4-level page table for logical mem and iee ++ for_each_mem_range(i, &start, &end) { ++ if (start >= end) ++ break; + /* +- * The fixmap shares its top level pgd entry with the kernel +- * mapping. This can really only occur when we are running +- * with 16k/4 levels, so we can simply reuse the pud level +- * entry instead. ++ * The linear map must allow allocation tags reading/writing ++ * if MTE is present. Otherwise, it has the same attributes as ++ * PAGE_KERNEL. + */ +- BUG_ON(!IS_ENABLED(CONFIG_ARM64_16K_PAGES)); +- bm_pgdp = pgd_offset_pgd(pgdp, FIXADDR_START); +- bm_p4dp = p4d_offset(bm_pgdp, FIXADDR_START); +- bm_pudp = pud_set_fixmap_offset(bm_p4dp, FIXADDR_START); +- pud_populate(&init_mm, bm_pudp, lm_alias(bm_pmd)); +- pud_clear_fixmap(); +- } else { +- BUG(); ++ iee_mark_pgtable_for_one_region_ro(pgdp, (unsigned long)__va(start), (unsigned long)__va(end)); ++ iee_mark_pgtable_for_one_region_ro(pgdp, (unsigned long)__phys_to_iee(start), (unsigned long)__phys_to_iee(end)); + } +- +- kasan_copy_shadow(pgdp); + } ++#endif ++ ++#if !defined(CONFIG_IEE) && defined (CONFIG_KOI) ++static void map_koi(pgd_t *pgdp); ++extern s64 koi_offset; ++__attribute__((aligned(PAGE_SIZE))) DECLARE_PER_CPU(struct task_struct *[PAGE_SIZE/sizeof(struct task_struct *)], __entry_task); ++#endif + + void __init paging_init(void) + { +- pgd_t *pgdp = pgd_set_fixmap(__pa_symbol(swapper_pg_dir)); ++ pgd_t *pgdp; ++ #ifdef CONFIG_IEE ++ unsigned long SP_EL0; ++ void *new; ++ void *init_token; ++ struct task_token *token; ++ unsigned long tcr; ++ #endif ++ ++ // Check if cpu has PAN and HPDS. ++ #ifdef CONFIG_IEE ++ if(!cpuid_feature_extract_unsigned_field(read_cpuid(ID_AA64MMFR1_EL1), ++ ID_AA64MMFR1_PAN_SHIFT)) ++ panic("Architecture doesn't support PAN, please disable CONFIG_IEE.\n"); ++ ++ if(!cpuid_feature_extract_unsigned_field(read_cpuid(ID_AA64MMFR1_EL1), ++ ID_AA64MMFR1_HPD_SHIFT)) ++ panic("Architecture doesn't support HPDS, please disable CONFIG_IEE.\n"); ++ #endif ++ ++ // Avoid using iee code to modify pgtable before iee initialized. ++ #ifdef CONFIG_PTP ++ pgdp = pgd_set_fixmap_init(__pa_symbol(swapper_pg_dir)); ++ #else ++ pgdp = pgd_set_fixmap(__pa_symbol(swapper_pg_dir)); ++ #endif + + map_kernel(pgdp); + map_mem(pgdp); + ++ // Map the whole physical mem into IEE, but set invalid. ++ #ifdef CONFIG_IEE ++ map_iee(pgdp); ++ // map_iee_si(pgdp); ++ #else ++ #ifdef CONFIG_KOI ++ map_koi(pgdp); ++ #endif ++ #endif ++ ++ // Avoid using iee code to modify pgtable before iee initialized. ++ #ifdef CONFIG_PTP ++ pgd_clear_fixmap_init(); ++ #else + pgd_clear_fixmap(); ++ #endif + + cpu_replace_ttbr1(lm_alias(swapper_pg_dir)); + init_mm.pgd = swapper_pg_dir; +@@ -775,6 +2033,84 @@ void __init paging_init(void) + __pa_symbol(init_pg_end) - __pa_symbol(init_pg_dir)); + + memblock_allow_resize(); ++ ++ #ifdef CONFIG_IEE ++ // Initialize init iee stack. ++ #ifdef CONFIG_PTP ++ iee_set_kernel_upage_pre_init((unsigned long)init_iee_stack_begin); ++ #else ++ iee_set_kernel_upage_early((unsigned long)init_iee_stack_begin, 2); ++ #endif ++ #endif ++ ++ // Init token for init_task. ++ #ifdef CONFIG_IEE ++ // Change SP_EL0 from Image VA to Logical VA. ++ SP_EL0 = (unsigned long)__va(__pa_symbol(&init_task)); ++ write_sysreg(SP_EL0, sp_el0); ++ init_task.cpus_ptr = &(((struct task_struct *)(__va(__pa_symbol(&init_task))))->cpus_mask); ++ init_task.children.prev = (__va(__pa_symbol(init_task.children.prev))); ++ init_task.children.next = (__va(__pa_symbol(init_task.children.next))); ++ // Alloc a page for init_token. ++ new = __va(early_pgtable_alloc(0)); ++ init_token_page_vaddr = new; ++ init_token = (void *)__phys_to_iee(__pa_symbol(&init_task)); ++ // Use lm to write token before IEE initialized. ++ token = (struct task_token *)((unsigned long)new + (((unsigned long)&init_task) & ~PAGE_MASK)); ++ token->pgd = NULL; ++ token->iee_stack = (void *)init_iee_stack_end; ++ token->valid = true; ++ iee_set_token_page_valid_pre_init(init_token, new); ++ #endif ++ ++ #ifdef CONFIG_PTP ++ // Map the existing pgtable into IEE, set valid. ++ init_iee(); ++ #endif ++ ++ #ifdef CONFIG_IEE ++ sysreg_clear_set(sctlr_el1, 0, SCTLR_EL1_SPAN); ++ #endif ++ ++ // IEE ready. ++ // Pgtable writing before uses logical memory and after uses IEE memory. ++ ++ #ifdef CONFIG_IEE ++ // Set HPD1 as 1. ++ tcr = read_sysreg(tcr_el1); ++ tcr |= ((unsigned long)0x1 << 42); ++ write_sysreg(tcr, tcr_el1); ++ isb(); ++ ++ // Flush tlb to enable IEE. ++ flush_tlb_all(); ++ ++ // mark that iee is prepared. ++ iee_init_done = true; ++ iee_si_test_page_attr((unsigned long)__iee_si_start); ++ // iee_si_test_page_attr_all(__iee_si_start); ++ #endif ++ #if defined(CONFIG_KOI) && !defined(CONFIG_IEE) ++ unsigned long SP_EL0 = __va(__pa_symbol(&init_task)); ++ write_sysreg(SP_EL0, sp_el0); ++ init_task.cpus_ptr = &(((struct task_struct *)(__va(__pa_symbol(&init_task))))->cpus_mask); ++ init_task.children.prev = (__va(__pa_symbol(init_task.children.prev))); ++ init_task.children.next = (__va(__pa_symbol(init_task.children.next))); ++ // Set init_task into __entry_task before per_cpu init. ++ *(struct task_struct **)__entry_task = __va(__pa_symbol(&init_task)); ++ // create a new page for token ++ void *alloc_token = __va(early_pgtable_alloc(0)); ++ // get the address of token ++ void *token_addr = __phys_to_virt(__pa_symbol(&init_task)) + KOI_OFFSET; ++ // add memory mapping for token ++ koi_add_page_mapping(token_addr, (void *)alloc_token); ++ // printk(KERN_ERR "token_addr=0x%16llx, alloc_token=0x%16llx, init_task=0x%16llx, virt=0x%16llx\n", token_addr, alloc_token, &init_task, __phys_to_virt(__pa_symbol(&init_task))); ++ struct task_token *token = (struct task_token *)((unsigned long)alloc_token + (((unsigned long)&init_task) & ~PAGE_MASK)); ++ token->koi_kernel_stack = NULL; ++ token->koi_stack = NULL; ++ token->koi_stack_base = NULL; ++ token->current_ttbr1 = 0; ++ #endif + } + + /* +@@ -1295,13 +2631,25 @@ void __init early_fixmap_init(void) + pudp = pud_offset_kimg(p4dp, addr); + } else { + if (p4d_none(p4d)) ++ #ifdef CONFIG_PTP ++ __iee_p4d_populate_pre_init(p4dp, __pa_symbol(bm_pud), PUD_TYPE_TABLE); ++ #else + __p4d_populate(p4dp, __pa_symbol(bm_pud), PUD_TYPE_TABLE); ++ #endif + pudp = fixmap_pud(addr); + } + if (pud_none(READ_ONCE(*pudp))) ++ #ifdef CONFIG_PTP ++ __iee_pud_populate_pre_init(pudp, __pa_symbol(bm_pmd), PMD_TYPE_TABLE); ++ #else + __pud_populate(pudp, __pa_symbol(bm_pmd), PMD_TYPE_TABLE); ++ #endif + pmdp = fixmap_pmd(addr); ++ #ifdef CONFIG_PTP ++ __iee_pmd_populate_pre_init(pmdp, __pa_symbol(bm_pte), PMD_TYPE_TABLE); ++ #else + __pmd_populate(pmdp, __pa_symbol(bm_pte), PMD_TYPE_TABLE); ++ #endif + + /* + * The boot-ioremap range spans multiple pmds, for which +@@ -1326,6 +2674,26 @@ void __init early_fixmap_init(void) + } + } + ++#ifdef CONFIG_PTP ++void __iee_set_fixmap_pre_init(enum fixed_addresses idx, ++ phys_addr_t phys, pgprot_t flags) ++{ ++ unsigned long addr = __fix_to_virt(idx); ++ pte_t *ptep; ++ ++ BUG_ON(idx <= FIX_HOLE || idx >= __end_of_fixed_addresses); ++ ++ ptep = fixmap_pte(addr); ++ ++ if (pgprot_val(flags)) { ++ iee_set_pte_pre_init(ptep, pfn_pte(phys >> PAGE_SHIFT, flags)); ++ } else { ++ iee_set_pte_pre_init(ptep, __pte(0)); ++ flush_tlb_kernel_range(addr, addr+PAGE_SIZE); ++ } ++} ++#endif ++ + /* + * Unusually, this is also called in IRQ context (ghes_iounmap_irq) so if we + * ever need to use IPIs for TLB broadcasting, then we're in trouble here. +@@ -1342,9 +2710,17 @@ void __set_fixmap(enum fixed_addresses idx, + + if (pgprot_val(flags)) { + flags = pgprot_pbha_bit0(flags); ++ #ifdef CONFIG_PTP ++ iee_set_bm_pte(ptep, pfn_pte(phys >> PAGE_SHIFT, flags)); ++ #else + set_pte(ptep, pfn_pte(phys >> PAGE_SHIFT, flags)); ++ #endif + } else { ++ #ifdef CONFIG_PTP ++ iee_set_bm_pte(ptep, __pte(0)); ++ #else + pte_clear(&init_mm, addr, ptep); ++ #endif + flush_tlb_kernel_range(addr, addr+PAGE_SIZE); + } + } +@@ -1461,6 +2837,9 @@ int pmd_free_pte_page(pmd_t *pmdp, unsigned long addr) + table = pte_offset_kernel(pmdp, addr); + pmd_clear(pmdp); + __flush_tlb_kernel_pgtable(addr); ++ #ifdef CONFIG_PTP ++ iee_memset(table, 0, PAGE_SIZE); ++ #endif + pte_free_kernel(NULL, table); + return 1; + } +@@ -1613,3 +2992,93 @@ static int __init prevent_bootmem_remove_init(void) + } + device_initcall(prevent_bootmem_remove_init); + #endif ++ ++#if !defined(CONFIG_IEE) && defined (CONFIG_KOI) ++static void __create_pgd_mapping_for_koi(pgd_t *pgdir, phys_addr_t phys, ++ unsigned long virt, phys_addr_t size, ++ pgprot_t prot, ++ phys_addr_t (*pgtable_alloc)(int), ++ int flags) ++{ ++ unsigned long addr, end, next; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, virt); ++ ++ /* ++ * If the virtual and physical address don't have the same offset ++ * within a page, we cannot map the region as the caller expects. ++ */ ++ if (WARN_ON((phys ^ virt) & ~PAGE_MASK)) ++ return; ++ ++ phys &= PAGE_MASK; ++ addr = virt & PAGE_MASK; ++ end = PAGE_ALIGN(virt + size); ++ ++ do { ++ next = pgd_addr_end(addr, end); ++ alloc_init_pud(pgdp, addr, next, phys, prot, pgtable_alloc, ++ flags); ++ p4d_t *p4dp = p4d_offset(pgdp, addr); ++ p4d_t p4d = READ_ONCE(*p4dp); ++ __p4d_populate(p4dp, __p4d_to_phys(p4d), PUD_TYPE_TABLE); ++ phys += next - addr; ++ } while (pgdp++, addr = next, addr != end); ++} ++ ++static void __init __map_memblock_for_koi(pgd_t *pgdp, phys_addr_t start, ++ phys_addr_t end, pgprot_t prot, int flags) ++{ ++ __create_pgd_mapping_for_koi(pgdp, start, __phys_to_virt(start) + KOI_OFFSET, end - start, ++ prot, early_pgtable_alloc, flags); ++} ++ ++static void __init map_koi(pgd_t *pgdp) ++{ ++ phys_addr_t kernel_start = __pa_symbol(_text); ++ phys_addr_t kernel_end = __pa_symbol(__init_begin); ++ phys_addr_t start, end; ++ int flags = 0; ++ u64 i; ++ ++ flags = NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; ++ ++ /* ++ * Take care not to create a writable alias for the ++ * read-only text and rodata sections of the kernel image. ++ * So temporarily mark them as NOMAP to skip mappings in ++ * the following for-loop ++ */ ++ memblock_mark_nomap(kernel_start, kernel_end - kernel_start); ++#ifdef CONFIG_KEXEC_CORE ++ if (crashk_res.end) ++ memblock_mark_nomap(crashk_res.start, ++ resource_size(&crashk_res)); ++#endif ++ ++ /* map all the memory banks */ ++ for_each_mem_range(i, &start, &end) { ++ if (start >= end) ++ break; ++ /* ++ * The linear map must allow allocation tags reading/writing ++ * if MTE is present. Otherwise, it has the same attributes as ++ * PAGE_KERNEL. ++ */ ++ __map_memblock_for_koi(pgdp, start, end, SET_NG(SET_INVALID(PAGE_KERNEL)), flags); ++ } ++#ifdef CONFIG_KEXEC_CORE ++ /* ++ * Use page-level mappings here so that we can shrink the region ++ * in page granularity and put back unused memory to buddy system ++ * through /sys/kernel/kexec_crash_size interface. ++ */ ++ if (crashk_res.end) { ++ __map_memblock_for_koi(pgdp, crashk_res.start, crashk_res.end + 1, ++ SET_NG(SET_INVALID(PAGE_KERNEL)), ++ NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS); ++ memblock_clear_nomap(crashk_res.start, ++ resource_size(&crashk_res)); ++ } ++#endif ++} ++#endif +\ No newline at end of file +diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c +index dd72f25452c1..5bc7d92c9fca 100644 +--- a/arch/arm64/mm/numa.c ++++ b/arch/arm64/mm/numa.c +@@ -19,7 +19,11 @@ + struct pglist_data *node_data[MAX_NUMNODES] __read_mostly; + EXPORT_SYMBOL(node_data); + nodemask_t numa_nodes_parsed __initdata; ++#ifdef CONFIG_PTP ++int cpu_to_node_map[NR_CPUS] = { [0 ... NR_CPUS-1] = NUMA_NO_NODE }; ++#else + static int cpu_to_node_map[NR_CPUS] = { [0 ... NR_CPUS-1] = NUMA_NO_NODE }; ++#endif + + static int numa_distance_cnt; + static u8 *numa_distance; +diff --git a/arch/arm64/mm/pgd.c b/arch/arm64/mm/pgd.c +index 4a64089e5771..b99b35a5190f 100644 +--- a/arch/arm64/mm/pgd.c ++++ b/arch/arm64/mm/pgd.c +@@ -15,14 +15,38 @@ + #include + #include + ++#ifdef CONFIG_PTP ++#include ++#endif ++ + static struct kmem_cache *pgd_cache __ro_after_init; + ++#ifdef CONFIG_KOI ++pgd_t *koi_pgd_alloc(void) ++{ ++ pgd_t *pgd; ++#ifdef CONFIG_PTP ++ pgd = (pgd_t *)get_iee_pgtable_page(GFP_PGTABLE_KERNEL); ++#else ++ pgd = (pgd_t *)__get_free_page(GFP_PGTABLE_KERNEL); ++#endif ++ return pgd; ++} ++#endif ++ + pgd_t *pgd_alloc(struct mm_struct *mm) + { + gfp_t gfp = GFP_PGTABLE_USER; + + if (PGD_SIZE == PAGE_SIZE) ++#ifdef CONFIG_PTP ++ { ++ pgd_t* new = (pgd_t *)get_iee_pgtable_page(gfp); ++ return new; ++ } ++#else + return (pgd_t *)__get_free_page(gfp); ++#endif + else + return kmem_cache_alloc(pgd_cache, gfp); + } +@@ -30,7 +54,13 @@ pgd_t *pgd_alloc(struct mm_struct *mm) + void pgd_free(struct mm_struct *mm, pgd_t *pgd) + { + if (PGD_SIZE == PAGE_SIZE) ++#ifdef CONFIG_PTP ++ { ++ free_iee_pgtable_page((void *)pgd); ++ } ++#else + free_page((unsigned long)pgd); ++#endif + else + kmem_cache_free(pgd_cache, pgd); + } +diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S +index a3fdc71c01eb..67efa1edf1e2 100644 +--- a/arch/arm64/mm/proc.S ++++ b/arch/arm64/mm/proc.S +@@ -20,6 +20,8 @@ + #include + #include + ++ ++ + #ifdef CONFIG_ARM64_64K_PAGES + #define TCR_TG_FLAGS TCR_TG0_64K | TCR_TG1_64K + #elif defined(CONFIG_ARM64_16K_PAGES) +@@ -103,6 +105,7 @@ SYM_FUNC_END(cpu_do_suspend) + * x0: Address of context pointer + */ + .pushsection ".idmap.text", "awx" ++ + SYM_FUNC_START(cpu_do_resume) + ldp x2, x3, [x0] + ldp x4, x5, [x0, #16] +@@ -190,6 +193,7 @@ SYM_FUNC_START(idmap_cpu_replace_ttbr1) + __idmap_cpu_set_reserved_ttbr1 x1, x3 + + offset_ttbr1 x0, x3 ++ + msr ttbr1_el1, x0 + isb + +@@ -497,6 +501,11 @@ SYM_FUNC_START(__cpu_setup) + orr x10, x10, #TCR_HA // hardware Access flag update + 1: + #endif /* CONFIG_ARM64_HW_AFDBM */ ++ ++#ifdef CONFIG_IEE ++ orr x10, x10, #TCR_HPD1 // Hierarchical permission disables ++#endif ++ + msr tcr_el1, x10 + /* + * Prepare SCTLR +diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c +index 5560d20f68f4..71910ab6e9f4 100644 +--- a/arch/arm64/net/bpf_jit_comp.c ++++ b/arch/arm64/net/bpf_jit_comp.c +@@ -21,6 +21,10 @@ + + #include "bpf_jit.h" + ++#ifdef CONFIG_HIVE ++#include ++#endif ++ + #define TMP_REG_1 (MAX_BPF_JIT_REG + 0) + #define TMP_REG_2 (MAX_BPF_JIT_REG + 1) + #define TCALL_CNT (MAX_BPF_JIT_REG + 2) +@@ -53,6 +57,10 @@ static const int bpf2a64[] = { + /* temporary register for blinding constants */ + [BPF_REG_AX] = A64_R(9), + [FP_BOTTOM] = A64_R(27), ++ #ifdef CONFIG_HIVE ++ /* fbpf base addr */ ++ [BPF_REG_BASE] = A64_R(28), ++ #endif + }; + + struct jit_ctx { +@@ -270,7 +278,15 @@ static bool is_lsi_offset(int offset, int scale) + #define STACK_ALIGN(sz) (((sz) + 15) & ~15) + + /* Tail call offset to jump into */ ++#ifdef CONFIG_HIVE ++#if IS_ENABLED(CONFIG_ARM64_BTI_KERNEL) ++#define PROLOGUE_OFFSET 8 + 6 ++#else ++#define PROLOGUE_OFFSET 7 + 6 ++#endif ++#else + #define PROLOGUE_OFFSET (BTI_INSNS + 2 + 8) ++#endif + + static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf) + { +@@ -282,6 +298,11 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf) + const u8 fp = bpf2a64[BPF_REG_FP]; + const u8 tcc = bpf2a64[TCALL_CNT]; + const u8 fpb = bpf2a64[FP_BOTTOM]; ++ #ifdef CONFIG_HIVE ++ const u8 base = bpf2a64[BPF_REG_BASE]; ++ u64 sfi_base, sfi_stack; ++ int idx_before; ++ #endif + const int idx0 = ctx->idx; + int cur_offset; + +@@ -328,9 +349,30 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf) + emit(A64_PUSH(r8, r9, A64_SP), ctx); + emit(A64_PUSH(fp, tcc, A64_SP), ctx); + emit(A64_PUSH(fpb, A64_R(28), A64_SP), ctx); ++ #ifdef CONFIG_HIVE ++ emit(A64_PUSH(A64_R(27), base, A64_SP), ctx); ++ #endif + + /* Set up BPF prog stack base register */ +- emit(A64_MOV(1, fp, A64_SP), ctx); ++ #ifdef CONFIG_HIVE ++ sfi_base = (u64)prog->shadow_region_addr; ++ sfi_stack = (u64)(prog->shadow_stack_addr); ++ ++ fbpf_log("fp=%016llx, base=%016llx\n", sfi_stack, sfi_base); ++ ++ idx_before = ctx->idx; ++ emit_a64_mov_i64(fp, sfi_stack, ctx); // 3 insns ++ while (ctx->idx - idx_before < 3) { ++ emit(A64_NOP, ctx); ++ } ++ idx_before = ctx->idx; ++ emit_a64_mov_i64(base, sfi_base, ctx); // 3 insns ++ while (ctx->idx - idx_before < 3) { ++ emit(A64_NOP, ctx); ++ } ++ #else ++ emit(A64_MOV(1, fp, A64_SP), ctx); ++ #endif + + if (!ebpf_from_cbpf) { + /* Initialize tail_call_cnt */ +@@ -338,8 +380,13 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf) + + cur_offset = ctx->idx - idx0; + if (cur_offset != PROLOGUE_OFFSET) { ++ #ifdef CONFIG_HIVE ++ pr_err("PROLOGUE_OFFSET = %d, expected %d!\n", ++ cur_offset, PROLOGUE_OFFSET); ++ #else + pr_err_once("PROLOGUE_OFFSET = %d, expected %d!\n", + cur_offset, PROLOGUE_OFFSET); ++ #endif + return -1; + } + +@@ -482,10 +529,18 @@ static void build_epilogue(struct jit_ctx *ctx) + const u8 r9 = bpf2a64[BPF_REG_9]; + const u8 fp = bpf2a64[BPF_REG_FP]; + const u8 fpb = bpf2a64[FP_BOTTOM]; ++ #ifdef CONFIG_HIVE ++ const u8 base = bpf2a64[BPF_REG_BASE]; ++ #endif + + /* We're done with BPF stack */ + emit(A64_ADD_I(1, A64_SP, A64_SP, ctx->stack_size), ctx); + ++ #ifdef CONFIG_HIVE ++ /* Restore x27 and base (x28) */ ++ emit(A64_POP(A64_R(27), base, A64_SP), ctx); ++ #endif ++ + /* Restore x27 and x28 */ + emit(A64_POP(fpb, A64_R(28), A64_SP), ctx); + /* Restore fs (x25) and x26 */ +@@ -583,6 +638,9 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, + const u8 fp = bpf2a64[BPF_REG_FP]; + const u8 fpb = bpf2a64[FP_BOTTOM]; + const s16 off = insn->off; ++ #ifdef CONFIG_HIVE ++ u8 off_reg; ++ #endif + const s32 imm = insn->imm; + const int i = insn - ctx->prog->insnsi; + const bool is64 = BPF_CLASS(code) == BPF_ALU64 || +@@ -1007,6 +1065,33 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, + return ret; + break; + ++ #ifdef CONFIG_HIVE ++ case BPF_LDX | BPF_REG | BPF_W: ++ case BPF_LDX | BPF_REG | BPF_H: ++ case BPF_LDX | BPF_REG | BPF_B: ++ case BPF_LDX | BPF_REG | BPF_DW: ++ off_reg = bpf2a64[off]; ++ switch (BPF_SIZE(code)) { ++ case BPF_W: ++ emit(A64_LDR32(dst, src, off_reg), ctx); ++ break; ++ case BPF_H: ++ emit(A64_LDRH(dst, src, off_reg), ctx); ++ break; ++ case BPF_B: ++ emit(A64_LDRB(dst, src, off_reg), ctx); ++ break; ++ case BPF_DW: ++ emit(A64_LDR64(dst, src, off_reg), ctx); ++ break; ++ } ++ ++ ret = add_exception_handler(insn, ctx, dst); ++ if (ret) ++ return ret; ++ break; ++ #endif ++ + /* speculation barrier */ + case BPF_ST | BPF_NOSPEC: + /* +@@ -1070,6 +1155,31 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, + } + break; + ++ #ifdef CONFIG_HIVE ++ case BPF_ST | BPF_REG | BPF_W: ++ case BPF_ST | BPF_REG | BPF_H: ++ case BPF_ST | BPF_REG | BPF_B: ++ case BPF_ST | BPF_REG | BPF_DW: ++ off_reg = bpf2a64[off]; ++ /* Load imm to a register then store it */ ++ emit_a64_mov_i(1, tmp, imm, ctx); ++ switch (BPF_SIZE(code)) { ++ case BPF_W: ++ emit(A64_STR32(tmp, dst, off_reg), ctx); ++ break; ++ case BPF_H: ++ emit(A64_STRH(tmp, dst, off_reg), ctx); ++ break; ++ case BPF_B: ++ emit(A64_STRB(tmp, dst, off_reg), ctx); ++ break; ++ case BPF_DW: ++ emit(A64_STR64(tmp, dst, off_reg), ctx); ++ break; ++ } ++ break; ++ #endif ++ + /* STX: *(size *)(dst + off) = src */ + case BPF_STX | BPF_MEM | BPF_W: + case BPF_STX | BPF_MEM | BPF_H: +@@ -1118,6 +1228,29 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, + } + break; + ++ #ifdef CONFIG_HIVE ++ case BPF_STX | BPF_REG | BPF_W: ++ case BPF_STX | BPF_REG | BPF_H: ++ case BPF_STX | BPF_REG | BPF_B: ++ case BPF_STX | BPF_REG | BPF_DW: ++ off_reg = bpf2a64[off]; ++ switch (BPF_SIZE(code)) { ++ case BPF_W: ++ emit(A64_STR32(src, dst, off_reg), ctx); ++ break; ++ case BPF_H: ++ emit(A64_STRH(src, dst, off_reg), ctx); ++ break; ++ case BPF_B: ++ emit(A64_STRB(src, dst, off_reg), ctx); ++ break; ++ case BPF_DW: ++ emit(A64_STR64(src, dst, off_reg), ctx); ++ break; ++ } ++ break; ++ #endif ++ + /* STX XADD: lock *(u32 *)(dst + off) += src */ + case BPF_STX | BPF_XADD | BPF_W: + /* STX XADD: lock *(u64 *)(dst + off) += src */ +@@ -1410,6 +1543,9 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) + } + + /* And we're done. */ ++ #ifdef CONFIG_HIVE ++ pr_info("[%s] jit insn len = %d, type = %d\n", prog->aux->name, prog->len, prog->type); ++ #endif + if (bpf_jit_enable > 1) + bpf_jit_dump(prog->len, prog_size, 2, ctx.image); + +diff --git a/drivers/firmware/efi/arm-runtime.c b/drivers/firmware/efi/arm-runtime.c +index 9054c2852580..790753f27747 100644 +--- a/drivers/firmware/efi/arm-runtime.c ++++ b/drivers/firmware/efi/arm-runtime.c +@@ -94,7 +94,11 @@ static int __init arm_enable_runtime_services(void) + return 0; + } + ++ #ifdef CONFIG_PTP ++ efi_memmap_unmap_after_init(); ++ #else + efi_memmap_unmap(); ++ #endif + + mapsize = efi.memmap.desc_size * efi.memmap.nr_map; + +diff --git a/drivers/firmware/efi/memmap.c b/drivers/firmware/efi/memmap.c +index 0155bf066ba5..74fba95fbdf2 100644 +--- a/drivers/firmware/efi/memmap.c ++++ b/drivers/firmware/efi/memmap.c +@@ -174,6 +174,26 @@ void __init efi_memmap_unmap(void) + clear_bit(EFI_MEMMAP, &efi.flags); + } + ++#ifdef CONFIG_PTP ++void __init efi_memmap_unmap_after_init(void) ++{ ++ if (!efi_enabled(EFI_MEMMAP)) ++ return; ++ ++ if (!(efi.memmap.flags & EFI_MEMMAP_LATE)) { ++ unsigned long size; ++ ++ size = efi.memmap.desc_size * efi.memmap.nr_map; ++ early_iounmap_after_init((__force void __iomem *)efi.memmap.map, size); ++ } else { ++ memunmap(efi.memmap.map); ++ } ++ ++ efi.memmap.map = NULL; ++ clear_bit(EFI_MEMMAP, &efi.flags); ++} ++#endif ++ + /** + * efi_memmap_init_late - Map efi.memmap with memremap() + * @phys_addr: Physical address of the new EFI memory map +diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c +index b70877932d47..fe8f3d8351ff 100644 +--- a/drivers/tty/serial/earlycon.c ++++ b/drivers/tty/serial/earlycon.c +@@ -40,7 +40,11 @@ static void __iomem * __init earlycon_map(resource_size_t paddr, size_t size) + { + void __iomem *base; + #ifdef CONFIG_FIX_EARLYCON_MEM ++ #ifdef CONFIG_PTP ++ __iee_set_fixmap_pre_init(FIX_EARLYCON_MEM_BASE, paddr & PAGE_MASK, FIXMAP_PAGE_IO); ++ #else + set_fixmap_io(FIX_EARLYCON_MEM_BASE, paddr & PAGE_MASK); ++ #endif + base = (void __iomem *)__fix_to_virt(FIX_EARLYCON_MEM_BASE); + base += paddr & ~PAGE_MASK; + #else +diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c +index 45b42d8f6453..b71072d6957e 100644 +--- a/drivers/usb/early/ehci-dbgp.c ++++ b/drivers/usb/early/ehci-dbgp.c +@@ -879,7 +879,11 @@ int __init early_dbgp_init(char *s) + * FIXME I don't have the bar size so just guess PAGE_SIZE is more + * than enough. 1K is the biggest I have seen. + */ ++ #ifdef CONFIG_PTP ++ __iee_set_fixmap_pre_init(FIX_DBGP_BASE, bar_val & PAGE_MASK, FIXMAP_PAGE_NOCACHE); ++ #else + set_fixmap_nocache(FIX_DBGP_BASE, bar_val & PAGE_MASK); ++ #endif + ehci_bar = (void __iomem *)__fix_to_virt(FIX_DBGP_BASE); + ehci_bar += bar_val & ~PAGE_MASK; + dbgp_printk("ehci_bar: %p\n", ehci_bar); +diff --git a/fs/cifs/cifs_spnego.c b/fs/cifs/cifs_spnego.c +index 4f9d08ac9dde..99e51e48bf4a 100644 +--- a/fs/cifs/cifs_spnego.c ++++ b/fs/cifs/cifs_spnego.c +@@ -30,6 +30,10 @@ + #include "cifs_spnego.h" + #include "cifs_debug.h" + #include "cifsproto.h" ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + static const struct cred *spnego_cred; + + /* create a new cifs key */ +@@ -224,8 +228,13 @@ init_cifs_spnego(void) + * the results it looks up + */ + set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_thread_keyring(cred,keyring); ++ iee_set_cred_jit_keyring(cred,KEY_REQKEY_DEFL_THREAD_KEYRING); ++ #else + cred->thread_keyring = keyring; + cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; ++ #endif + spnego_cred = cred; + + cifs_dbg(FYI, "cifs spnego keyring: %d\n", key_serial(keyring)); +diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c +index ef4784e72b1d..d140e6c175e3 100644 +--- a/fs/cifs/cifsacl.c ++++ b/fs/cifs/cifsacl.c +@@ -33,6 +33,10 @@ + #include "cifsproto.h" + #include "cifs_debug.h" + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + /* security id for everyone/world system group */ + static const struct cifs_sid sid_everyone = { + 1, 1, {0, 0, 0, 0, 0, 1}, {0} }; +@@ -496,8 +500,13 @@ init_cifs_idmap(void) + /* instruct request_key() to use this special keyring as a cache for + * the results it looks up */ + set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_thread_keyring(cred,keyring); ++ iee_set_cred_jit_keyring(cred,KEY_REQKEY_DEFL_THREAD_KEYRING); ++ #else + cred->thread_keyring = keyring; + cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; ++ #endif + root_cred = cred; + + cifs_dbg(FYI, "cifs idmap keyring: %d\n", key_serial(keyring)); +diff --git a/fs/coredump.c b/fs/coredump.c +index 535c3fdc1598..a092ddf00eff 100644 +--- a/fs/coredump.c ++++ b/fs/coredump.c +@@ -53,6 +53,10 @@ + + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + static bool dump_vma_snapshot(struct coredump_params *cprm); + static void free_vma_snapshot(struct coredump_params *cprm); + +@@ -627,7 +631,11 @@ void do_coredump(const kernel_siginfo_t *siginfo) + */ + if (__get_dumpable(cprm.mm_flags) == SUID_DUMP_ROOT) { + /* Setuid core dump mode */ ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(cred,GLOBAL_ROOT_UID); ++ #else + cred->fsuid = GLOBAL_ROOT_UID; /* Dump root private */ ++ #endif + need_suid_safe = true; + } + +diff --git a/fs/exec.c b/fs/exec.c +index 43378e25abcb..4db00fbe1836 100644 +--- a/fs/exec.c ++++ b/fs/exec.c +@@ -78,6 +78,14 @@ + + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ ++#ifdef CONFIG_IEE ++#include ++#endif ++ + static int bprm_creds_from_file(struct linux_binprm *bprm); + + int suid_dumpable = 0; +@@ -734,7 +742,11 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) + free_pgd_range(&tlb, old_start, old_end, new_end, + vma->vm_next ? vma->vm_next->vm_start : USER_PGTABLES_CEILING); + } ++ #ifdef CONFIG_PTP ++ iee_tlb_finish_mmu(&tlb, old_start, old_end); ++ #else + tlb_finish_mmu(&tlb, old_start, old_end); ++ #endif + + /* + * Shrink the vma to just the new range. Always succeeds. +@@ -1017,6 +1029,9 @@ static int exec_mmap(struct mm_struct *mm) + if (!IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM)) + local_irq_enable(); + activate_mm(active_mm, mm); ++ #ifdef CONFIG_IEE ++ iee_set_token_pgd(tsk, mm->pgd); ++ #endif + if (IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM)) + local_irq_enable(); + tsk->mm->vmacache_seqnum = 0; +@@ -1609,12 +1624,20 @@ static void bprm_fill_uid(struct linux_binprm *bprm, struct file *file) + + if (mode & S_ISUID) { + bprm->per_clear |= PER_CLEAR_ON_SETID; ++ #ifdef CONFIG_CREDP ++ iee_set_cred_euid(bprm->cred,uid); ++ #else + bprm->cred->euid = uid; ++ #endif + } + + if ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) { + bprm->per_clear |= PER_CLEAR_ON_SETID; ++ #ifdef CONFIG_CREDP ++ iee_set_cred_egid(bprm->cred,gid); ++ #else + bprm->cred->egid = gid; ++ #endif + } + } + +diff --git a/fs/file_table.c b/fs/file_table.c +index 32d33a7b3852..497cb39f84a6 100644 +--- a/fs/file_table.c ++++ b/fs/file_table.c +@@ -240,6 +240,7 @@ static struct file *alloc_file(const struct path *path, int flags, + file->f_op = fop; + if ((file->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) + i_readcount_inc(path->dentry->d_inode); ++ + return file; + } + +diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c +index e4f2820ba5a5..3d55f6c83b3b 100644 +--- a/fs/nfs/flexfilelayout/flexfilelayout.c ++++ b/fs/nfs/flexfilelayout/flexfilelayout.c +@@ -15,6 +15,10 @@ + + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + #include "flexfilelayout.h" + #include "../nfs4session.h" + #include "../nfs4idmap.h" +@@ -496,8 +500,13 @@ ff_layout_alloc_lseg(struct pnfs_layout_hdr *lh, + rc = -ENOMEM; + if (!kcred) + goto out_err_free; ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(kcred,uid); ++ iee_set_cred_fsgid(kcred,gid); ++ #else + kcred->fsuid = uid; + kcred->fsgid = gid; ++ #endif + cred = RCU_INITIALIZER(kcred); + + if (lgr->range.iomode == IOMODE_READ) +diff --git a/fs/nfs/nfs4idmap.c b/fs/nfs/nfs4idmap.c +index ec6afd3c4bca..dc259bdb4bc8 100644 +--- a/fs/nfs/nfs4idmap.c ++++ b/fs/nfs/nfs4idmap.c +@@ -48,6 +48,10 @@ + #include + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + #include "internal.h" + #include "netns.h" + #include "nfs4idmap.h" +@@ -226,8 +230,13 @@ int nfs_idmap_init(void) + goto failed_reg_legacy; + + set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_thread_keyring(cred,keyring); ++ iee_set_cred_jit_keyring(cred,KEY_REQKEY_DEFL_THREAD_KEYRING); ++ #else + cred->thread_keyring = keyring; + cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; ++ #endif + id_resolver_cache = cred; + return 0; + +diff --git a/fs/nfsd/auth.c b/fs/nfsd/auth.c +index fdf2aad73470..5a23bc9632c9 100644 +--- a/fs/nfsd/auth.c ++++ b/fs/nfsd/auth.c +@@ -2,6 +2,9 @@ + /* Copyright (C) 1995, 1996 Olaf Kirch */ + + #include ++#ifdef CONFIG_CREDP ++#include ++#endif + #include "nfsd.h" + #include "auth.h" + +@@ -34,22 +37,40 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) + if (!new) + return -ENOMEM; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,rqstp->rq_cred.cr_uid); ++ iee_set_cred_fsgid(new,rqstp->rq_cred.cr_gid); ++ #else + new->fsuid = rqstp->rq_cred.cr_uid; + new->fsgid = rqstp->rq_cred.cr_gid; ++ #endif + + rqgi = rqstp->rq_cred.cr_group_info; + + if (flags & NFSEXP_ALLSQUASH) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,exp->ex_anon_uid); ++ iee_set_cred_fsgid(new,exp->ex_anon_gid); ++ #else + new->fsuid = exp->ex_anon_uid; + new->fsgid = exp->ex_anon_gid; ++ #endif + gi = groups_alloc(0); + if (!gi) + goto oom; + } else if (flags & NFSEXP_ROOTSQUASH) { + if (uid_eq(new->fsuid, GLOBAL_ROOT_UID)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,exp->ex_anon_uid); ++ #else + new->fsuid = exp->ex_anon_uid; ++ #endif + if (gid_eq(new->fsgid, GLOBAL_ROOT_GID)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsgid(new,exp->ex_anon_gid); ++ #else + new->fsgid = exp->ex_anon_gid; ++ #endif + + gi = groups_alloc(rqgi->ngroups); + if (!gi) +@@ -69,18 +90,35 @@ int nfsd_setuser(struct svc_rqst *rqstp, struct svc_export *exp) + } + + if (uid_eq(new->fsuid, INVALID_UID)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,exp->ex_anon_uid); ++ #else + new->fsuid = exp->ex_anon_uid; ++ #endif + if (gid_eq(new->fsgid, INVALID_GID)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsgid(new,exp->ex_anon_gid); ++ #else + new->fsgid = exp->ex_anon_gid; ++ #endif + + set_groups(new, gi); + put_group_info(gi); + + if (!uid_eq(new->fsuid, GLOBAL_ROOT_UID)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,cap_drop_nfsd_set(new->cap_effective)); ++ #else + new->cap_effective = cap_drop_nfsd_set(new->cap_effective); ++ #endif + else ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,cap_raise_nfsd_set(new->cap_effective, ++ new->cap_permitted)); ++ #else + new->cap_effective = cap_raise_nfsd_set(new->cap_effective, + new->cap_permitted); ++ #endif + validate_process_creds(); + put_cred(override_creds(new)); + put_cred(new); +diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c +index f5b7ad0847f2..dd9bdc0b9016 100644 +--- a/fs/nfsd/nfs4callback.c ++++ b/fs/nfsd/nfs4callback.c +@@ -41,6 +41,9 @@ + #include "trace.h" + #include "xdr4cb.h" + #include "xdr4.h" ++#ifdef CONFIG_CREDP ++#include ++#endif + + #define NFSDDBG_FACILITY NFSDDBG_PROC + +@@ -875,8 +878,13 @@ static const struct cred *get_backchannel_cred(struct nfs4_client *clp, struct r + if (!kcred) + return NULL; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_uid(kcred,ses->se_cb_sec.uid); ++ iee_set_cred_gid(kcred,ses->se_cb_sec.gid); ++ #else + kcred->fsuid = ses->se_cb_sec.uid; + kcred->fsgid = ses->se_cb_sec.gid; ++ #endif + return kcred; + } + } +diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c +index 83c4e6883953..3d437e0b3f68 100644 +--- a/fs/nfsd/nfs4recover.c ++++ b/fs/nfsd/nfs4recover.c +@@ -44,6 +44,10 @@ + #include + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + #include "nfsd.h" + #include "state.h" + #include "vfs.h" +@@ -78,8 +82,13 @@ nfs4_save_creds(const struct cred **original_creds) + if (!new) + return -ENOMEM; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,GLOBAL_ROOT_UID); ++ iee_set_cred_fsgid(new,GLOBAL_ROOT_GID); ++ #else + new->fsuid = GLOBAL_ROOT_UID; + new->fsgid = GLOBAL_ROOT_GID; ++ #endif + *original_creds = override_creds(new); + put_cred(new); + return 0; +diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c +index c81dbbad8792..aa39fe110b0c 100644 +--- a/fs/nfsd/nfsfh.c ++++ b/fs/nfsd/nfsfh.c +@@ -16,6 +16,10 @@ + #include "auth.h" + #include "trace.h" + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + #define NFSDDBG_FACILITY NFSDDBG_FH + + +@@ -234,9 +238,14 @@ static __be32 nfsd_set_fh_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp) + error = nfserrno(-ENOMEM); + goto out; + } ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,cap_raise_nfsd_set(new->cap_effective, ++ new->cap_permitted)); ++ #else + new->cap_effective = + cap_raise_nfsd_set(new->cap_effective, + new->cap_permitted); ++ #endif + put_cred(override_creds(new)); + put_cred(new); + } else { +diff --git a/fs/open.c b/fs/open.c +index 8092178ceab0..869327cf2b95 100644 +--- a/fs/open.c ++++ b/fs/open.c +@@ -33,6 +33,10 @@ + #include + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + #include "internal.h" + + int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, +@@ -354,17 +358,32 @@ static const struct cred *access_override_creds(void) + if (!override_cred) + return NULL; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(override_cred,override_cred->uid); ++ iee_set_cred_fsgid(override_cred,override_cred->gid); ++ #else + override_cred->fsuid = override_cred->uid; + override_cred->fsgid = override_cred->gid; ++ #endif + + if (!issecure(SECURE_NO_SETUID_FIXUP)) { + /* Clear the capabilities if we switch to a non-root user */ + kuid_t root_uid = make_kuid(override_cred->user_ns, 0); + if (!uid_eq(override_cred->uid, root_uid)) ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_effective(override_cred, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(override_cred->cap_effective); ++ #endif + else ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(override_cred,override_cred->cap_permitted); ++ #else + override_cred->cap_effective = + override_cred->cap_permitted; ++ #endif + } + + /* +@@ -384,7 +403,11 @@ static const struct cred *access_override_creds(void) + * expecting RCU freeing. But normal thread-synchronous + * cred accesses will keep things non-RCY. + */ ++ #ifdef CONFIG_CREDP ++ iee_set_cred_non_rcu(override_cred,1); ++ #else + override_cred->non_rcu = 1; ++ #endif + + old_cred = override_creds(override_cred); + +diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c +index b2eb48b495f7..1c8df580ae22 100644 +--- a/fs/overlayfs/dir.c ++++ b/fs/overlayfs/dir.c +@@ -16,6 +16,10 @@ + #include + #include "overlayfs.h" + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + static unsigned short ovl_redirect_max = 256; + module_param_named(redirect_max, ovl_redirect_max, ushort, 0644); + MODULE_PARM_DESC(redirect_max, +@@ -603,8 +607,13 @@ static int ovl_create_or_link(struct dentry *dentry, struct inode *inode, + * create a new inode, so just use the ovl mounter's + * fs{u,g}id. + */ ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(override_cred,inode->i_uid); ++ iee_set_cred_fsgid(override_cred,inode->i_gid); ++ #else + override_cred->fsuid = inode->i_uid; + override_cred->fsgid = inode->i_gid; ++ #endif + err = security_dentry_create_files_as(dentry, + attr->mode, &dentry->d_name, old_cred, + override_cred); +diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c +index 5d7df839902d..93bbe723c422 100644 +--- a/fs/overlayfs/super.c ++++ b/fs/overlayfs/super.c +@@ -17,6 +17,10 @@ + #include + #include "overlayfs.h" + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + MODULE_AUTHOR("Miklos Szeredi "); + MODULE_DESCRIPTION("Overlay filesystem"); + MODULE_LICENSE("GPL"); +@@ -2022,7 +2026,15 @@ static int ovl_fill_super(struct super_block *sb, void *data, int silent) + sb->s_export_op = &ovl_export_operations; + + /* Never override disk quota limits or use reserved space */ ++ #ifdef CONFIG_CREDP ++ { ++ kernel_cap_t tmp = cred->cap_effective; ++ cap_lower(tmp, CAP_SYS_RESOURCE); ++ iee_set_cred_cap_effective(cred, tmp); ++ } ++ #else + cap_lower(cred->cap_effective, CAP_SYS_RESOURCE); ++ #endif + + sb->s_magic = OVERLAYFS_SUPER_MAGIC; + sb->s_xattr = ovl_xattr_handlers; +diff --git a/include/asm-generic/early_ioremap.h b/include/asm-generic/early_ioremap.h +index 9def22e6e2b3..13b287b7cdc3 100644 +--- a/include/asm-generic/early_ioremap.h ++++ b/include/asm-generic/early_ioremap.h +@@ -17,6 +17,9 @@ extern void *early_memremap_ro(resource_size_t phys_addr, + extern void *early_memremap_prot(resource_size_t phys_addr, + unsigned long size, unsigned long prot_val); + extern void early_iounmap(void __iomem *addr, unsigned long size); ++#ifdef CONFIG_PTP ++extern void early_iounmap_after_init(void __iomem *addr, unsigned long size); ++#endif + extern void early_memunmap(void *addr, unsigned long size); + + /* +diff --git a/include/asm-generic/fixmap.h b/include/asm-generic/fixmap.h +index 8cc7b09c1bc7..83158589a545 100644 +--- a/include/asm-generic/fixmap.h ++++ b/include/asm-generic/fixmap.h +@@ -70,6 +70,24 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr) + __set_fixmap(idx, 0, FIXMAP_PAGE_CLEAR) + #endif + ++#ifdef CONFIG_PTP ++#ifndef clear_fixmap_init ++#define clear_fixmap_init(idx) \ ++ __iee_set_fixmap_pre_init(idx, 0, FIXMAP_PAGE_CLEAR) ++#endif ++ ++#define __iee_set_fixmap_offset_pre_init(idx, phys, flags) \ ++({ \ ++ unsigned long ________addr; \ ++ __iee_set_fixmap_pre_init(idx, phys, flags); \ ++ ________addr = fix_to_virt(idx) + ((phys) & (PAGE_SIZE - 1)); \ ++ ________addr; \ ++}) ++ ++#define iee_set_fixmap_offset_pre_init(idx, phys) \ ++ __iee_set_fixmap_offset_pre_init(idx, phys, FIXMAP_PAGE_NORMAL) ++#endif ++ + /* Return a pointer with offset calculated */ + #define __set_fixmap_offset(idx, phys, flags) \ + ({ \ +diff --git a/include/asm-generic/pgalloc.h b/include/asm-generic/pgalloc.h +index 02932efad3ab..c039cf1228b4 100644 +--- a/include/asm-generic/pgalloc.h ++++ b/include/asm-generic/pgalloc.h +@@ -4,6 +4,10 @@ + + #ifdef CONFIG_MMU + ++#ifdef CONFIG_PTP ++#include ++#endif ++ + #define GFP_PGTABLE_KERNEL (GFP_KERNEL | __GFP_ZERO) + #define GFP_PGTABLE_USER (GFP_PGTABLE_KERNEL | __GFP_ACCOUNT) + +@@ -18,7 +22,11 @@ + */ + static inline pte_t *__pte_alloc_one_kernel(struct mm_struct *mm) + { ++ #ifdef CONFIG_PTP ++ return (pte_t *)get_iee_pgtable_page(GFP_PGTABLE_KERNEL); ++ #else + return (pte_t *)__get_free_page(GFP_PGTABLE_KERNEL); ++ #endif + } + + #ifndef __HAVE_ARCH_PTE_ALLOC_ONE_KERNEL +@@ -41,7 +49,11 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm) + */ + static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte) + { ++ #ifdef CONFIG_PTP ++ free_iee_pgtable_page((void *)pte); ++ #else + free_page((unsigned long)pte); ++ #endif + } + + /** +@@ -60,11 +72,19 @@ static inline pgtable_t __pte_alloc_one(struct mm_struct *mm, gfp_t gfp) + { + struct page *pte; + ++ #ifdef CONFIG_PTP ++ pte = virt_to_page(get_iee_pgtable_page(gfp)); ++ #else + pte = alloc_page(gfp); ++ #endif + if (!pte) + return NULL; + if (!pgtable_pte_page_ctor(pte)) { ++ #ifdef CONFIG_PTP ++ free_iee_pgtable_page((void *)page_to_virt(pte)); ++ #else + __free_page(pte); ++ #endif + return NULL; + } + +@@ -99,7 +119,11 @@ static inline pgtable_t pte_alloc_one(struct mm_struct *mm) + static inline void pte_free(struct mm_struct *mm, struct page *pte_page) + { + pgtable_pte_page_dtor(pte_page); ++ #ifdef CONFIG_PTP ++ free_iee_pgtable_page((void *)page_to_virt(pte_page)); ++ #else + __free_page(pte_page); ++ #endif + } + + +@@ -123,11 +147,19 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr) + + if (mm == &init_mm) + gfp = GFP_PGTABLE_KERNEL; ++ #ifdef CONFIG_PTP ++ page = virt_to_page(get_iee_pgtable_page(gfp)); ++ #else + page = alloc_pages(gfp, 0); ++ #endif + if (!page) + return NULL; + if (!pgtable_pmd_page_ctor(page)) { ++ #ifdef CONFIG_PTP ++ free_iee_pgtable_page((void *)page_to_virt(page)); ++ #else + __free_pages(page, 0); ++ #endif + return NULL; + } + return (pmd_t *)page_address(page); +@@ -139,7 +171,11 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd) + { + BUG_ON((unsigned long)pmd & (PAGE_SIZE-1)); + pgtable_pmd_page_dtor(virt_to_page(pmd)); ++ #ifdef CONFIG_PTP ++ free_iee_pgtable_page((void *)pmd); ++ #else + free_page((unsigned long)pmd); ++ #endif + } + #endif + +@@ -163,14 +199,22 @@ static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) + + if (mm == &init_mm) + gfp = GFP_PGTABLE_KERNEL; ++ #ifdef CONFIG_PTP ++ return (pud_t *)get_iee_pgtable_page(gfp); ++ #else + return (pud_t *)get_zeroed_page(gfp); ++ #endif + } + #endif + + static inline void pud_free(struct mm_struct *mm, pud_t *pud) + { + BUG_ON((unsigned long)pud & (PAGE_SIZE-1)); ++ #ifdef CONFIG_PTP ++ free_iee_pgtable_page((void *)pud); ++ #else + free_page((unsigned long)pud); ++ #endif + } + + #endif /* CONFIG_PGTABLE_LEVELS > 3 */ +diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h +index f40c9534f20b..b31a74eb2c46 100644 +--- a/include/asm-generic/tlb.h ++++ b/include/asm-generic/tlb.h +@@ -185,6 +185,9 @@ struct mmu_table_batch { + ((PAGE_SIZE - sizeof(struct mmu_table_batch)) / sizeof(void *)) + + extern void tlb_remove_table(struct mmu_gather *tlb, void *table); ++#ifdef CONFIG_PTP ++extern void iee_tlb_remove_table(struct mmu_gather *tlb, void *table); ++#endif + + #else /* !CONFIG_MMU_GATHER_HAVE_TABLE_FREE */ + +diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h +index 8716609fb333..771245a02602 100644 +--- a/include/asm-generic/vmlinux.lds.h ++++ b/include/asm-generic/vmlinux.lds.h +@@ -324,6 +324,17 @@ + KEEP(*(.dtb.init.rodata)) \ + __dtb_end = .; + ++#ifdef CONFIG_KOI ++#define KOI_DATA() \ ++ . = ALIGN(PAGE_SIZE); \ ++ __koi_data_start = .; \ ++ *(.data..koi) \ ++ . = ALIGN(PAGE_SIZE); \ ++ __koi_data_end = .; ++#else ++#define KOI_DATA() ++#endif ++ + /* + * .data section + */ +@@ -350,8 +361,8 @@ + BRANCH_PROFILE() \ + TRACE_PRINTKS() \ + BPF_RAW_TP() \ +- TRACEPOINT_STR() +- ++ TRACEPOINT_STR() \ ++ KOI_DATA() + /* + * Data section helpers + */ +@@ -1133,6 +1144,14 @@ + * They will fit only a subset of the architectures + */ + ++#ifdef CONFIG_CREDP ++ #define CRED_DATA \ ++ . = ALIGN(PAGE_SIZE); \ ++ *(.iee.cred) \ ++ . = ALIGN(PAGE_SIZE); ++#else ++ #define CRED_DATA ++#endif + + /* + * Writeable data. +@@ -1150,6 +1169,7 @@ + . = ALIGN(PAGE_SIZE); \ + .data : AT(ADDR(.data) - LOAD_OFFSET) { \ + INIT_TASK_DATA(inittask) \ ++ CRED_DATA \ + NOSAVE_DATA \ + PAGE_ALIGNED_DATA(pagealigned) \ + CACHELINE_ALIGNED_DATA(cacheline) \ +diff --git a/include/linux/bpf.h b/include/linux/bpf.h +index fc6754747781..d52238cf6c99 100644 +--- a/include/linux/bpf.h ++++ b/include/linux/bpf.h +@@ -171,6 +171,17 @@ struct bpf_map { + bool frozen; /* write-once; write-protected by freeze_mutex */ + KABI_EXTEND(bool free_after_mult_rcu_gp) + /* 17 bytes hole */ ++ #ifdef CONFIG_HIVE ++ /* fbpf add for aggregation */ ++ bool is_aggregated; ++ int used_page_cnt; ++ union { ++ struct bpf_used_page *used_pages; ++ void *value; ++ }; ++ void *shadow_data; ++ struct mutex used_page_mutex; ++ #endif + + /* The 3rd and 4th cacheline with misc members to avoid false sharing + * particularly with refcounting. +diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h +index d760079a6be6..0aaa1cdac12f 100644 +--- a/include/linux/bpf_verifier.h ++++ b/include/linux/bpf_verifier.h +@@ -7,6 +7,9 @@ + #include /* for enum bpf_reg_type */ + #include /* for MAX_BPF_STACK */ + #include ++#ifdef CONFIG_HIVE ++#include ++#endif + + /* Maximum variable offset umax_value permitted when resolving memory accesses. + * In practice this is far bigger than any realistic pointer offset; this limit +@@ -150,6 +153,11 @@ struct bpf_reg_state { + enum bpf_reg_liveness live; + /* if (!precise && SCALAR_VALUE) min/max/tnum don't affect safety */ + bool precise; ++ #ifdef CONFIG_HIVE ++ /* used to record whether the reg is checked */ ++ // bool sfi_checked; ++ enum bpf_sfi_check_state sfi_check_state; ++ #endif + }; + + enum bpf_stack_slot_type { +@@ -353,6 +361,12 @@ struct bpf_insn_aux_data { + bool sanitize_stack_spill; /* subject to Spectre v4 sanitation */ + bool zext_dst; /* this insn zero extends dst reg */ + u8 alu_state; /* used in combination with alu_limit */ ++ #ifdef CONFIG_HIVE ++ /* fbpf record for patch isnns */ ++ enum bpf_reg_type arg_reg_type[5]; ++ u64 extra_map_ptr; ++ // struct bpf_sfi_check_unit *sfi_check_list; ++ #endif + + /* below fields are initialized once */ + unsigned int orig_idx; /* original instruction index */ +@@ -436,6 +450,10 @@ struct bpf_verifier_env { + bool bypass_spec_v4; + bool seen_direct_write; + struct bpf_insn_aux_data *insn_aux_data; /* array of per-insn state */ ++ #ifdef CONFIG_HIVE ++ struct bpf_sfi_check_unit **insn_check_lists; /* array of per-insn check_list */ ++ struct mutex insn_check_list_mutex; ++ #endif + const struct bpf_line_info *prev_linfo; + struct bpf_verifier_log log; + struct bpf_subprog_info subprog_info[BPF_MAX_SUBPROGS + 1]; +diff --git a/include/linux/cred.h b/include/linux/cred.h +index cd1b5fc47d52..8843cb5c9d9e 100644 +--- a/include/linux/cred.h ++++ b/include/linux/cred.h +@@ -18,6 +18,11 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#include ++#endif ++ + struct cred; + struct inode; + +@@ -164,6 +169,22 @@ struct cred { + KABI_RESERVE(10) + } __randomize_layout; + ++#ifdef CONFIG_CREDP ++extern unsigned long long iee_rw_gate(int flag, ...); ++static void iee_set_cred_non_rcu(struct cred *cred, int non_rcu) ++{ ++ iee_rw_gate(IEE_OP_SET_CRED_NON_RCU,cred,non_rcu); ++ *(int *)(&(((struct rcu_head *)(cred->rcu.func))->next)) = non_rcu; ++} ++ ++static bool iee_set_cred_atomic_op_usage(struct cred *cred, int flag) ++{ ++ bool ret; ++ ret = iee_rw_gate(IEE_OP_SET_CRED_ATOP_USAGE,cred,flag); ++ return ret; ++} ++#endif ++ + extern void __put_cred(struct cred *); + extern void exit_creds(struct task_struct *); + extern int copy_creds(struct task_struct *, unsigned long); +@@ -239,7 +260,11 @@ static inline bool cap_ambient_invariant_ok(const struct cred *cred) + */ + static inline struct cred *get_new_cred(struct cred *cred) + { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_atomic_op_usage(cred,AT_INC); ++ #else + atomic_inc(&cred->usage); ++ #endif + return cred; + } + +@@ -262,7 +287,11 @@ static inline const struct cred *get_cred(const struct cred *cred) + if (!cred) + return cred; + validate_creds(cred); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_non_rcu(nonconst_cred,0); ++ #else + nonconst_cred->non_rcu = 0; ++ #endif + return get_new_cred(nonconst_cred); + } + +@@ -271,10 +300,19 @@ static inline const struct cred *get_cred_rcu(const struct cred *cred) + struct cred *nonconst_cred = (struct cred *) cred; + if (!cred) + return NULL; ++ #ifdef CONFIG_CREDP ++ if (!iee_set_cred_atomic_op_usage(nonconst_cred,AT_INC_NOT_ZERO)) ++ return NULL; ++ #else + if (!atomic_inc_not_zero(&nonconst_cred->usage)) + return NULL; ++ #endif + validate_creds(cred); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_non_rcu(nonconst_cred,0); ++ #else + nonconst_cred->non_rcu = 0; ++ #endif + return cred; + } + +@@ -295,8 +333,13 @@ static inline void put_cred(const struct cred *_cred) + + if (cred) { + validate_creds(cred); ++ #ifdef CONFIG_CREDP ++ if (iee_set_cred_atomic_op_usage(cred,AT_DEC_AND_TEST)) ++ __put_cred(cred); ++ #else + if (atomic_dec_and_test(&(cred)->usage)) + __put_cred(cred); ++ #endif + } + } + +diff --git a/include/linux/efi.h b/include/linux/efi.h +index 9816e03cf05b..ebdd48da4741 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -644,6 +644,9 @@ extern void __efi_memmap_free(u64 phys, unsigned long size, + extern int __init efi_memmap_init_early(struct efi_memory_map_data *data); + extern int __init efi_memmap_init_late(phys_addr_t addr, unsigned long size); + extern void __init efi_memmap_unmap(void); ++#ifdef CONFIG_PTP ++extern void __init efi_memmap_unmap_after_init(void); ++#endif + extern int __init efi_memmap_install(struct efi_memory_map_data *data); + extern int __init efi_memmap_split_count(efi_memory_desc_t *md, + struct range *range); +diff --git a/include/linux/filter.h b/include/linux/filter.h +index 2a0c2dd47599..902209e47bf2 100644 +--- a/include/linux/filter.h ++++ b/include/linux/filter.h +@@ -50,6 +50,9 @@ struct ctl_table_header; + #define BPF_REG_ARG5 BPF_REG_5 + #define BPF_REG_CTX BPF_REG_6 + #define BPF_REG_FP BPF_REG_10 ++#ifdef CONFIG_HIVE ++#define BPF_REG_BASE BPF_REG_11 ++#endif + + /* Additional register mappings for converted user programs. */ + #define BPF_REG_A BPF_REG_0 +@@ -557,6 +560,14 @@ struct bpf_prog { + u8 tag[BPF_TAG_SIZE]; + struct bpf_prog_aux *aux; /* Auxiliary fields */ + struct sock_fprog_kern *orig_prog; /* Original BPF program */ ++ #ifdef CONFIG_HIVE ++ /* fbpf record info while aggregating */ ++ void *shadow_stack_addr, *shadow_region_addr, *shadow_top_addr, ++ *shadow_skb_addr, *low_guard_region_addr, *high_guard_region_addr, ++ *map_data_addr; ++ int shadow_stack_page_cnt, total_page_cnt, shadow_skb_page_cnt, ++ guard_region_page_cnt, map_page_cnt; ++ #endif + unsigned int (*bpf_func)(const void *ctx, + const struct bpf_insn *insn); + /* Instructions for interpreter */ +diff --git a/include/linux/iee-flag.h b/include/linux/iee-flag.h +new file mode 100644 +index 000000000000..e3cf1c33e7b3 +--- /dev/null ++++ b/include/linux/iee-flag.h +@@ -0,0 +1,74 @@ ++#ifndef _LINUX_IEE_FLAG_H ++#define _LINUX_IEE_FLAG_H ++ ++enum { ++ IEE_WRITE_IN_BYTE=0, // Parameters: void *ptr, __u64 data, int length ++ IEE_OP_SET_PTE, // Parameters: pte_t *ptep, pte_t pte ++ IEE_OP_SET_PMD, // Parameters: pmd_t *pmdp, pmd_t pmd ++ IEE_OP_SET_PUD, // Parameters: pud_t *pudp, pud_t pud ++ IEE_OP_SET_P4D, // Parameters: p4d_t *p4dp, p4d_t p4d ++ IEE_OP_SET_BM_PTE, // Parameters: pte_t *ptep, pte_t pte ++ IEE_OP_SET_SWAPPER_PGD, // Parameters: pgd_t *pgdp, pgd_t pgd ++ IEE_OP_SET_TRAMP_PGD, // Parameters: pgd_t *pgdp, pgd_t pgd ++ IEE_OP_COPY_CRED, // Parameters: struct cred *old, struct cred *new ++ IEE_OP_SET_CRED_UID, // Parameters: struct cred *cred, kuid_t uid ++ IEE_OP_SET_CRED_GID, // Parameters: struct cred *cred, kgid_t gid ++ IEE_OP_SET_CRED_SUID, // Parameters: struct cred *cred, kuid_t suid ++ IEE_OP_SET_CRED_SGID, // Parameters: struct cred *cred, kgid_t sgid ++ IEE_OP_SET_CRED_EUID, // Parameters: struct cred *cred, kuid_t euid ++ IEE_OP_SET_CRED_EGID, // Parameters: struct cred *cred, kgid_t egid ++ IEE_OP_SET_CRED_FSUID, // Parameters: struct cred *cred, kuid_t fsuid ++ IEE_OP_SET_CRED_FSGID, // Parameters: struct cred *cred, kgid_t fsgid ++ IEE_OP_SET_CRED_USER, // Parameters: struct cred *cred, struct user_struct *user ++ IEE_OP_SET_CRED_USER_NS, // Parameters: struct cred *cred, struct user_namespace *user_ns ++ IEE_OP_SET_CRED_GROUP_INFO, // Parameters: struct cred *cred, struct group_info *group_info ++ IEE_OP_SET_CRED_SECUREBITS, // Parameters: struct cred *cred, unsigned securebits ++ IEE_OP_SET_CRED_CAP_INHER, // Parameters: struct cred *cred, kernel_cap_t cap_inheritable ++ IEE_OP_SET_CRED_CAP_PERM, // Parameters: struct cred *cred, kernel_cap_t cap_permitted ++ IEE_OP_SET_CRED_CAP_EFFECT, // Parameters: struct cred *cred, kernel_cap_t cap_effective ++ IEE_OP_SET_CRED_CAP_BSET, // Parameters: struct cred *cred, kernel_cap_t cap_bset ++ IEE_OP_SET_CRED_CAP_AMBIENT, // Parameters: struct cred *cred, kernel_cap_t cap_ambient ++ IEE_OP_SET_CRED_JIT_KEYRING, // Parameters: struct cred *cred, unsigned char jit_keyring ++ IEE_OP_SET_CRED_SESS_KEYRING, // Parameters: struct cred *cred, struct key *session_keyring ++ IEE_OP_SET_CRED_PROC_KEYRING, // Parameters: struct cred *cred, struct key *process_keyring ++ IEE_OP_SET_CRED_THREAD_KEYRING, // Parameters: struct cred *cred, struct key *thread_keyring ++ IEE_OP_SET_CRED_REQ_KEYRING, // Parameters: struct cred *cred, struct key *request_key_auth ++ IEE_OP_SET_CRED_NON_RCU, // Parameters: struct cred *cred, int non_rcu ++ IEE_OP_SET_CRED_ATSET_USAGE, // Parameters: struct cred *cred, int i ++ IEE_OP_SET_CRED_ATOP_USAGE, // Parameters: struct cred *cred, int flag ++ IEE_OP_SET_CRED_SECURITY, // Parameters: struct cred *cred, void *security ++ IEE_OP_SET_CRED_RCU, // Parameters: struct cred *cred, struct rcu_head *rcu ++ IEE_MEMSET, // Parameters: void *ptr, int data, size_t n ++ IEE_OP_SET_TRACK, // Parameters: struct track *ptr, struct track *data ++ IEE_OP_SET_FREEPTR, // Parameters: void **pptr, void *ptr ++ IEE_OP_SET_PTE_U, // Parameters: pte_t *ptep ++ IEE_OP_SET_PTE_P, // Parameters: pte_t *ptep ++ IEE_SET_TOKEN_PGD, // Parameters: struct task_token *token, pgd_t *pgd ++ IEE_INIT_TOKEN, // Parameters: struct task_struct *tsk, void *kernel_stack, void *iee_stack ++ IEE_INVALIDATE_TOKEN, // Parameters: struct task_struct *tsk ++ IEE_SET_SENSITIVE_PTE, // Parameters: pte_t *lm_ptep, pte_t *iee_ptep ++ IEE_UNSET_SENSITIVE_PTE, // Parameters: pte_t *lm_ptep, pte_t *iee_ptep ++ IEE_SET_TOKEN, // Parameters: pte_t *ptep, void *new, unsigned long order ++ IEE_UNSET_TOKEN, // Parameters: pte_t *ptep, void *token_addr, void *token_page, unsigned long order ++ IEE_COPY_PTE_RANGE, // Parameters: pte_t *new_dst, pte_t *old_dst, pte_t *src_pte, struct vm_area_struct *src_vma, unsigned long dst_vm_flags, pte_t *end_pte ++ IEE_SPLIT_HUGE_PMD, ++ IEE_VALIDATE_TOKEN, ++#ifdef CONFIG_KOI ++ _IEE_READ_KOI_STACK, // Parameters: struct task_struct *tsk ++ _IEE_WRITE_KOI_STACK, // Parameters: struct task_struct *tsk, unsigned long koi_stack ++ _IEE_READ_TOKEN_TTBR1, // Parameters: struct task_struct *tsk ++ _IEE_WRITE_TOKEN_TTBR1, // Parameters: struct task_struct *tsk, unsigned long current_ttbr1 ++ _IEE_READ_KOI_KERNEL_STACK, // Parameters: struct task_struct *tsk ++ _IEE_WRITE_KOI_KERNEL_STACK, // Parameters: struct task_struct *tsk, unsigned long kernel_stack ++ _IEE_READ_KOI_STACK_BASE, // Parameters: struct task_struct *tsk ++ _IEE_WRITE_KOI_STACK_BASE, // Parameters: struct task_struct *tsk, unsigned long koi_stack_base ++ _IEE_SET_KOI_PGD, // Parameters: unsigned long koi_pgd_addr ++#endif ++#ifdef CONFIG_CREDP ++ IEE_OP_COMMIT_CRED, // Parameters: struct cred *cred ++ IEE_OP_COPY_CRED_KERNEL, // Parameters: struct cred *old, struct cred *new ++#endif ++ IEE_FLAG_END ++}; ++ ++#endif +\ No newline at end of file +diff --git a/include/linux/iee-func.h b/include/linux/iee-func.h +new file mode 100644 +index 000000000000..333434dc7141 +--- /dev/null ++++ b/include/linux/iee-func.h +@@ -0,0 +1,39 @@ ++#ifndef _LINUX_IEE_FUNC_H ++#define _LINUX_IEE_FUNC_H ++ ++#ifdef CONFIG_IEE ++#define TASK_ORDER 4 ++ ++#ifdef CONFIG_PTP ++extern int cpu_to_node_map[NR_CPUS]; ++#endif ++extern unsigned long init_iee_stack_begin[]; ++extern unsigned long init_iee_stack_end[]; ++extern void *init_token_page_vaddr; ++ ++extern unsigned long long iee_rw_gate(int flag, ...); ++extern u32 get_cpu_asid_bits(void); ++extern unsigned long arm64_mm_context_get(struct mm_struct *mm); ++extern void set_iee_page(unsigned long addr, int order); ++extern void unset_iee_page(unsigned long addr, int order); ++extern void set_iee_page_valid(unsigned long addr); ++extern void iee_set_logical_mem_ro(unsigned long addr); ++extern void __init iee_mark_all_lm_pgtable_ro(void); ++extern void iee_set_token_pgd(struct task_struct *tsk, pgd_t *pgd); ++extern void iee_init_token(struct task_struct *tsk, void *iee_stack, void *tmp_page); ++extern void iee_invalidate_token(struct task_struct *tsk); ++extern void iee_validate_token(struct task_struct *tsk); ++extern unsigned long iee_read_token_stack(struct task_struct *tsk); ++extern void iee_set_token_page_valid(void *token, void *new, unsigned int order); ++extern void iee_set_token_page_invalid(void *token_addr, void *token_page, unsigned long order); ++extern void iee_set_kernel_ppage(unsigned long addr, int order); ++extern void iee_set_kernel_upage(unsigned long addr, int order); ++extern void __init iee_set_kernel_upage_early(unsigned long addr, int order); ++extern void iee_write_in_byte(void *ptr, u64 data, int length); ++extern void *iee_read_tmp_page(struct task_struct *tsk); ++extern void *iee_read_freeptr(void *ptr); ++extern void iee_set_stack_freeptr(unsigned long addr, void *free_ptr); ++extern void iee_memset(void *ptr, int data, size_t n); ++#endif ++ ++#endif +\ No newline at end of file +diff --git a/include/linux/mm.h b/include/linux/mm.h +index e0d269b83c8f..a14783e086f8 100644 +--- a/include/linux/mm.h ++++ b/include/linux/mm.h +@@ -2217,7 +2217,11 @@ extern void ptlock_free(struct page *page); + + static inline spinlock_t *ptlock_ptr(struct page *page) + { ++ #ifdef CONFIG_PTP ++ return ((struct pgtable_page *)(page->slab_cache))->ptl; ++ #else + return page->ptl; ++ #endif + } + #else /* ALLOC_SPLIT_PTLOCKS */ + static inline void ptlock_cache_init(void) +@@ -2235,7 +2239,11 @@ static inline void ptlock_free(struct page *page) + + static inline spinlock_t *ptlock_ptr(struct page *page) + { ++ #ifdef CONFIG_PTP ++ return &(((struct pgtable_page *)(page->slab_cache))->ptl); ++ #else + return &page->ptl; ++ #endif + } + #endif /* ALLOC_SPLIT_PTLOCKS */ + +@@ -2253,7 +2261,11 @@ static inline bool ptlock_init(struct page *page) + * It can happen if arch try to use slab for page table allocation: + * slab code uses page->slab_cache, which share storage with page->ptl. + */ ++ #ifdef CONFIG_PTP ++ VM_BUG_ON_PAGE(*(unsigned long *)(&(((struct pgtable_page *)(page->slab_cache))->ptl)), page); ++ #else + VM_BUG_ON_PAGE(*(unsigned long *)&page->ptl, page); ++ #endif + if (!ptlock_alloc(page)) + return false; + spin_lock_init(ptlock_ptr(page)); +@@ -2338,7 +2350,11 @@ static inline spinlock_t *pmd_lockptr(struct mm_struct *mm, pmd_t *pmd) + static inline bool pmd_ptlock_init(struct page *page) + { + #ifdef CONFIG_TRANSPARENT_HUGEPAGE ++ #ifdef CONFIG_PTP ++ ((struct pgtable_page *)(page->slab_cache))->pmd_huge_pte = NULL; ++ #else + page->pmd_huge_pte = NULL; ++ #endif + #endif + return ptlock_init(page); + } +@@ -2346,12 +2362,20 @@ static inline bool pmd_ptlock_init(struct page *page) + static inline void pmd_ptlock_free(struct page *page) + { + #ifdef CONFIG_TRANSPARENT_HUGEPAGE ++ #ifdef CONFIG_PTP ++ VM_BUG_ON_PAGE(((struct pgtable_page *)(page->slab_cache))->pmd_huge_pte, page); ++ #else + VM_BUG_ON_PAGE(page->pmd_huge_pte, page); ++ #endif + #endif + ptlock_free(page); + } + ++#ifdef CONFIG_PTP ++#define pmd_huge_pte(mm, pmd) (((struct pgtable_page *)(pmd_to_page(pmd)->slab_cache))->pmd_huge_pte) ++#else + #define pmd_huge_pte(mm, pmd) (pmd_to_page(pmd)->pmd_huge_pte) ++#endif + + #else + +diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h +index d1c5946ad402..66dc282a8102 100644 +--- a/include/linux/mm_types.h ++++ b/include/linux/mm_types.h +@@ -83,6 +83,30 @@ struct kvm; + #define _struct_page_alignment + #endif + ++#ifdef CONFIG_PTP ++struct pgtable_page { /* Page table pages */ ++ union ++ { ++ struct list_head lru; ++ struct { ++ unsigned long _pt_pad_1; /* compound_head */ ++ pgtable_t pmd_huge_pte; /* protected by page->ptl */ ++ }; ++ }; ++ unsigned long _pt_pad_2; /* mapping */ ++ union { ++ struct mm_struct *pt_mm; /* x86 pgds only */ ++ atomic_t pt_frag_refcount; /* powerpc */ ++ }; ++ struct page *page; ++#if ALLOC_SPLIT_PTLOCKS ++ spinlock_t *ptl; ++#else ++ spinlock_t ptl; ++#endif ++}; ++#endif ++ + struct page { + unsigned long flags; /* Atomic flags, some possibly + * updated asynchronously */ +@@ -699,6 +723,10 @@ extern void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, + unsigned long start, unsigned long end); + extern void tlb_finish_mmu(struct mmu_gather *tlb, + unsigned long start, unsigned long end); ++#ifdef CONFIG_PTP ++extern void iee_tlb_finish_mmu(struct mmu_gather *tlb, ++ unsigned long start, unsigned long end); ++#endif + + static inline void init_tlb_flush_pending(struct mm_struct *mm) + { +diff --git a/include/linux/module.h b/include/linux/module.h +index b2b2c742a397..9d23bc618e9d 100644 +--- a/include/linux/module.h ++++ b/include/linux/module.h +@@ -568,6 +568,7 @@ struct module { + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) ++ + } ____cacheline_aligned __randomize_layout; + #ifndef MODULE_ARCH_INIT + #define MODULE_ARCH_INIT {} +diff --git a/include/linux/sched.h b/include/linux/sched.h +index fa83018137ce..dc7c8fc0d794 100644 +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -695,6 +695,28 @@ struct task_struct_resvd { + #endif + }; + ++#if defined(CONFIG_IEE) || defined(CONFIG_KOI) ++struct task_token { ++#ifdef CONFIG_IEE ++ pgd_t *pgd; /* Logical VA */ ++ void *iee_stack; /* VA */ ++ void *tmp_page; ++ bool valid; ++ void *kernel_stack; /* VA */ ++#endif ++#ifdef CONFIG_KOI ++ void *koi_kernel_stack; /* VA */ ++ void *koi_stack; /* VA */ ++ void *koi_stack_base; /* VA */ ++ unsigned long current_ttbr1; ++#endif ++#ifdef CONFIG_CREDP ++ struct cred* curr_cred; ++ struct cred* new_cred; ++#endif ++}; ++#endif ++ + struct task_struct { + #ifdef CONFIG_THREAD_INFO_IN_TASK + /* +@@ -713,6 +735,7 @@ struct task_struct { + randomized_struct_fields_start + + void *stack; ++ + refcount_t usage; + /* Per task flags (PF_*), defined further below: */ + unsigned int flags; +diff --git a/include/linux/sfi_bpf.h b/include/linux/sfi_bpf.h +new file mode 100644 +index 000000000000..dd76c8ee2566 +--- /dev/null ++++ b/include/linux/sfi_bpf.h +@@ -0,0 +1,89 @@ ++#ifndef SFI_BPF_H ++#define SFI_BPF_H ++ ++#include ++#include ++ ++/* fbpf log */ ++#define FBPF_LOG_ENABLE ++#define fbpf_log(fmt, ...) do_fbpf_log(__FUNCTION__, fmt, ##__VA_ARGS__) ++void do_fbpf_log(const char *func_name, const char *fmt, ...); ++ ++/* fbpf used for output */ ++extern const char *bpf_map_type_strings[]; ++ ++/* fbpf map vaddr to struct page* */ ++struct page *kv_virt_to_page(const void *vaddr); ++ ++/* fbpf dump insns of a BPF Program */ ++void dump_insns(struct bpf_prog *prog, int start, int len, const char *prompt); ++ ++/* fbpf maintain origin isnn's aux while patching insns */ ++int find_origin_insn(struct bpf_insn *insnsi, int len, struct bpf_insn *tar_insn); ++ ++struct bpf_prog *bpf_patch_insn_data(struct bpf_verifier_env *env, u32 off, ++ const struct bpf_insn *patch, u32 len); ++ ++/* fbpf aggregate */ ++int bpf_sfi_aggregate_memory(struct bpf_verifier_env *env); ++ ++/* fbpf patch to check ld/st insns */ ++int bpf_sfi_check_ldst(struct bpf_verifier_env *env); ++ ++/* fbpf patch to check helper's args */ ++int bpf_sfi_check_helper_args(struct bpf_verifier_env *env); ++ ++/* fbpf record percpu map used pages */ ++struct bpf_used_page { ++ struct page *physic_page; ++ struct list_head list_head; ++ u64 shadow_page; ++}; ++ ++/* fbpf: relevant api for bpf_used_pages */ ++int bpf_record_used_pages(u64 start_addr, u64 end_addr, ++ struct mutex *write_mutex, struct list_head *head); ++ ++/* fbpf: htab's value addr is built-in element, use api to substitue */ ++void substitute_hash_value_ptr(struct bpf_map *map); ++ ++/* fbpf: check type for a reg in insn */ ++enum bpf_sfi_check_type { ++ BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR, ++ BPF_SFI_CHECK_LDST_AS_SAFE_PTR, ++ BPF_SFI_CHECK_LDST_AS_OFFSET, ++ BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR, ++ BPF_SFI_CHECK_HELPER_AS_SAFE_PTR, ++ BPF_SFI_CHECK_HELPER_AS_OFFSET, ++}; ++ ++/* fbpf: check state for a reg */ ++enum bpf_sfi_check_state { ++ BPF_SFI_UNSAFE_PTR, ++ BPF_SFI_SAFE_PTR, ++ BPF_SFI_OFFSET, ++}; ++ ++// TODO: allocate and free this link list for each insn_aux_data ++/* fbpf: check unit (link list) for a insn */ ++struct bpf_sfi_check_unit { ++ struct list_head list_head; ++ int reg_no; ++ enum bpf_sfi_check_type check_type; ++ bool reg_as_offset; ++ enum bpf_sfi_check_state proposed_state; ++}; ++ ++struct bpf_sfi_check_unit *bpf_sfi_get_check_list( ++ struct bpf_verifier_env *env, struct bpf_insn *insn, ++ struct bpf_reg_state *regs); ++ ++int bpf_sfi_tmp_check(struct bpf_verifier_env *env); ++ ++int bpf_sfi_hook_kernel_fault(u64 addr); ++ ++inline void *alloc_aligned_memory(u64 size); ++ ++inline int map_physic_pages(struct page **pages, void *virt_addr, int page_cnt); ++ ++#endif +\ No newline at end of file +diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h +index 95f0a69225fc..407ccb5ba7bd 100644 +--- a/include/linux/skbuff.h ++++ b/include/linux/skbuff.h +@@ -932,6 +932,10 @@ struct sk_buff { + KABI_RESERVE(3) + KABI_RESERVE(4) + ++ #ifdef CONFIG_HIVE ++ bool sfi_bpf_mapped; ++ #endif ++ + /* These elements must be at the end, see alloc_skb() for details. */ + sk_buff_data_t tail; + sk_buff_data_t end; +@@ -939,6 +943,9 @@ struct sk_buff { + *data; + unsigned int truesize; + refcount_t users; ++ #ifdef CONFIG_HIVE ++ unsigned char *sfi_data, *sfi_data_meta, *sfi_data_end; ++ #endif + + #ifdef CONFIG_SKB_EXTENSIONS + /* only useable after checking ->active_extensions != 0 */ +diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h +index 52e59df0faf4..241276592268 100644 +--- a/include/linux/stacktrace.h ++++ b/include/linux/stacktrace.h +@@ -21,6 +21,10 @@ unsigned int stack_trace_save_tsk(struct task_struct *task, + unsigned int stack_trace_save_regs(struct pt_regs *regs, unsigned long *store, + unsigned int size, unsigned int skipnr); + unsigned int stack_trace_save_user(unsigned long *store, unsigned int size); ++#ifdef CONFIG_IEE ++unsigned int stack_trace_save_iee(unsigned long *store, unsigned int size, ++ unsigned int skipnr); ++#endif + unsigned int filter_irq_stacks(unsigned long *entries, unsigned int nr_entries); + + /* Internal interfaces. Do not use in generic code */ +diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h +index f4ebb476cf03..e51756876833 100644 +--- a/include/uapi/linux/bpf.h ++++ b/include/uapi/linux/bpf.h +@@ -56,6 +56,7 @@ enum { + BPF_REG_8, + BPF_REG_9, + BPF_REG_10, ++ BPF_REG_11, + __MAX_BPF_REG, + }; + +diff --git a/include/uapi/linux/bpf_common.h b/include/uapi/linux/bpf_common.h +index ee97668bdadb..bfe086a27905 100644 +--- a/include/uapi/linux/bpf_common.h ++++ b/include/uapi/linux/bpf_common.h +@@ -26,6 +26,7 @@ + #define BPF_MEM 0x60 + #define BPF_LEN 0x80 + #define BPF_MSH 0xa0 ++#define BPF_REG 0xe0 + + /* alu/jmp fields */ + #define BPF_OP(code) ((code) & 0xf0) +diff --git a/init/Kconfig b/init/Kconfig +index e552194efbea..245cbdd5643d 100644 +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -1899,6 +1899,18 @@ config BPF_SYSCALL + Enable the bpf() system call that allows to manipulate eBPF + programs and maps via file descriptors. + ++config HIVE ++ bool "Reserved for eBPF security enhancement" ++ default n ++ depends on BPF_SYSCALL ++ depends on DEBUG_INFO_DWARF4 ++ depends on DEBUG_INFO_BTF ++ select BPF_JIT_ALWAYS_ON ++ select NET_ACT_BPF ++ select BPFILTER ++ select NET_CLS_BPF ++ select NET_SCH_INGRESS ++ + config ARCH_WANT_DEFAULT_BPF_JIT + bool + +diff --git a/init/main.c b/init/main.c +index 2b466bd04110..a400bccf3dad 100644 +--- a/init/main.c ++++ b/init/main.c +@@ -100,6 +100,13 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#include ++#include ++#include ++#endif ++ + #include + #include + #include +@@ -110,6 +117,10 @@ + + #include + ++#ifdef CONFIG_PTP ++extern void *bm_pte_addr; ++#endif ++ + static int kernel_init(void *); + + extern void init_IRQ(void); +@@ -931,6 +942,12 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void) + sort_main_extable(); + trap_init(); + mm_init(); ++ ++ #ifdef CONFIG_IEE ++ iee_stack_init(); ++ iee_pgtable_init(); ++ #endif ++ + poking_init(); + ftrace_init(); + +@@ -1072,6 +1089,16 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void) + sfi_init_late(); + kcsan_init(); + ++ // Later IEE settings. ++ #ifdef CONFIG_IEE ++ iee_set_kernel_upage((unsigned long)__va(__pa_symbol(init_iee_stack_begin)), 0); ++ set_iee_page((unsigned long)init_token_page_vaddr, 2); ++ // Set the logical va of existing pgtable readonly. ++ #ifdef CONFIG_PTP ++ iee_mark_all_lm_pgtable_ro(); ++ #endif ++ #endif ++ + /* Do the rest non-__init'ed, we're now alive */ + arch_call_rest_init(); + +@@ -1437,18 +1464,22 @@ void __weak free_initmem(void) + free_initmem_default(POISON_FREE_INITMEM); + } + ++ + static int __ref kernel_init(void *unused) + { + int ret; + + kernel_init_freeable(); ++ #ifdef CONFIG_PTP ++ iee_set_logical_mem_ro((unsigned long)bm_pte_addr); ++ #endif + /* need to finish all async __init code before freeing the memory */ + async_synchronize_full(); + kprobe_free_init_mem(); + ftrace_free_init_mem(); + kgdb_free_init_mem(); + free_initmem(); +- mark_readonly(); ++ mark_readonly(); + + /* + * Kernel mappings are now finalized - update the userspace page-table +@@ -1456,6 +1487,7 @@ static int __ref kernel_init(void *unused) + */ + pti_finalize(); + ++ + system_state = SYSTEM_RUNNING; + numa_default_policy(); + +diff --git a/kernel/bpf/Makefile b/kernel/bpf/Makefile +index c1b9f71ee6aa..aed91d8562f0 100644 +--- a/kernel/bpf/Makefile ++++ b/kernel/bpf/Makefile +@@ -36,3 +36,4 @@ obj-$(CONFIG_BPF_SYSCALL) += bpf_struct_ops.o + obj-${CONFIG_BPF_LSM} += bpf_lsm.o + endif + obj-$(CONFIG_BPF_PRELOAD) += preload/ ++obj-$(CONFIG_HIVE) += sfi_bpf.o +diff --git a/kernel/bpf/arraymap.c b/kernel/bpf/arraymap.c +index b5b8b57dc212..183148d5d4b4 100644 +--- a/kernel/bpf/arraymap.c ++++ b/kernel/bpf/arraymap.c +@@ -11,6 +11,9 @@ + #include + #include + #include ++#ifdef CONFIG_HIVE ++#include ++#endif + + #include "map_in_map.h" + +@@ -20,19 +23,90 @@ + + static void bpf_array_free_percpu(struct bpf_array *array) + { +- int i; ++ #ifdef CONFIG_HIVE ++ if (unlikely(!array->map.is_aggregated)) { ++ int i; ++ for (i = 0; i < array->map.max_entries; i++) { ++ free_percpu(array->pptrs[i]); ++ cond_resched(); ++ } ++ } else { ++ struct bpf_used_page *used_page_entry, *used_page_next; ++ struct list_head *used_pages_list_head = &array->map.used_pages->list_head; + ++ free_percpu(array->pptrs[0]); ++ cond_resched(); ++ ++ list_for_each_entry_safe(used_page_entry, used_page_next, ++ used_pages_list_head, list_head){ ++ list_del(&used_page_entry->list_head); ++ kfree(used_page_entry); ++ } ++ } ++ #else ++ int i; + for (i = 0; i < array->map.max_entries; i++) { + free_percpu(array->pptrs[i]); + cond_resched(); + } ++ #endif + } + + static int bpf_array_alloc_percpu(struct bpf_array *array) + { + void __percpu *ptr; + int i; ++ #ifdef CONFIG_HIVE ++ int page_cnt; ++ struct bpf_used_page *used_pages; ++ u64 start_address, end_address; ++ #endif ++ ++ #ifdef CONFIG_HIVE ++ if (unlikely(!array->map.is_aggregated)) { ++ for (i = 0; i < array->map.max_entries; i++) { ++ ptr = __alloc_percpu_gfp(array->elem_size, 8, ++ GFP_USER | __GFP_NOWARN); ++ if (!ptr) { ++ bpf_array_free_percpu(array); ++ return -ENOMEM; ++ } ++ array->pptrs[i] = ptr; ++ cond_resched(); ++ } ++ } else { ++ /* init used_pages of map */ ++ used_pages = kzalloc(sizeof(*used_pages), GFP_KERNEL); ++ if (!used_pages) ++ return -ENOMEM; ++ INIT_LIST_HEAD(&used_pages->list_head); ++ mutex_init(&array->map.used_page_mutex); ++ array->map.used_pages = used_pages; ++ /* WARNING, align to PAGE_SIZE tends to alloc failed */ ++ ptr = __alloc_percpu_gfp(array->elem_size * array->map.max_entries, ++ PAGE_SIZE, GFP_USER | __GFP_NOWARN); ++ if (!ptr) { ++ bpf_array_free_percpu(array); ++ pr_err("alloc percpu failed"); ++ return -ENOMEM; ++ } ++ for (i = 0; i < array->map.max_entries; i++) { ++ array->pptrs[i] = (void *)((u64) ptr + i * array->elem_size); ++ cond_resched(); ++ } + ++ /* record physic pages */ ++ start_address = round_down((u64)ptr, PAGE_SIZE); ++ end_address = round_up((u64)ptr + array->map.max_entries * ++ array->elem_size, PAGE_SIZE); ++ page_cnt = bpf_record_used_pages(start_address, end_address, ++ &array->map.used_page_mutex, &array->map.used_pages->list_head); ++ if (page_cnt >= 0) ++ array->map.used_page_cnt = page_cnt; ++ else ++ return page_cnt; ++ } ++ #else + for (i = 0; i < array->map.max_entries; i++) { + ptr = __alloc_percpu_gfp(array->elem_size, 8, + GFP_USER | __GFP_NOWARN); +@@ -43,7 +117,8 @@ static int bpf_array_alloc_percpu(struct bpf_array *array) + array->pptrs[i] = ptr; + cond_resched(); + } +- ++ #endif ++ + return 0; + } + +@@ -87,6 +162,18 @@ static struct bpf_map *array_map_alloc(union bpf_attr *attr) + u64 cost, array_size, mask64; + struct bpf_map_memory mem; + struct bpf_array *array; ++ #ifdef CONFIG_HIVE ++ bool is_aggregated; ++ #endif ++ ++ #ifdef CONFIG_HIVE ++ /* bpf_sfi_on && map_need_aggregate => is_aggregated */ ++ if (attr->map_type == BPF_MAP_TYPE_ARRAY || ++ attr->map_type == BPF_MAP_TYPE_PERCPU_ARRAY) ++ is_aggregated = true; ++ else ++ is_aggregated = false; ++ #endif + + elem_size = round_up(attr->value_size, 8); + +@@ -113,17 +200,30 @@ static struct bpf_map *array_map_alloc(union bpf_attr *attr) + + array_size = sizeof(*array); + if (percpu) { ++ #ifdef CONFIG_HIVE ++ array_size += PAGE_ALIGN((u64) max_entries * sizeof(void *)); ++ #else + array_size += (u64) max_entries * sizeof(void *); ++ #endif + } else { + /* rely on vmalloc() to return page-aligned memory and + * ensure array->value is exactly page-aligned + */ ++ #ifdef CONFIG_HIVE ++ if ((attr->map_flags & BPF_F_MMAPABLE) || is_aggregated) { ++ array_size = PAGE_ALIGN(array_size); ++ array_size += PAGE_ALIGN((u64) max_entries * elem_size); ++ } else { ++ array_size += (u64) max_entries * elem_size; ++ } ++ #else + if (attr->map_flags & BPF_F_MMAPABLE) { + array_size = PAGE_ALIGN(array_size); + array_size += PAGE_ALIGN((u64) max_entries * elem_size); + } else { + array_size += (u64) max_entries * elem_size; + } ++ #endif + } + + /* make sure there is no u32 overflow later in round_up() */ +@@ -136,6 +236,23 @@ static struct bpf_map *array_map_alloc(union bpf_attr *attr) + return ERR_PTR(ret); + + /* allocate all map elements and zero-initialize them */ ++ #ifdef CONFIG_HIVE ++ if ((attr->map_flags & BPF_F_MMAPABLE) || ++ (is_aggregated && !percpu)) { ++ void *data; ++ ++ /* kmalloc'ed memory can't be mmap'ed, use explicit vmalloc */ ++ data = bpf_map_area_mmapable_alloc(array_size, numa_node); ++ if (!data) { ++ bpf_map_charge_finish(&mem); ++ return ERR_PTR(-ENOMEM); ++ } ++ array = data + PAGE_ALIGN(sizeof(struct bpf_array)) ++ - offsetof(struct bpf_array, value); ++ } else { ++ array = bpf_map_area_alloc(array_size, numa_node); ++ } ++ #else + if (attr->map_flags & BPF_F_MMAPABLE) { + void *data; + +@@ -150,12 +267,22 @@ static struct bpf_map *array_map_alloc(union bpf_attr *attr) + } else { + array = bpf_map_area_alloc(array_size, numa_node); + } ++ #endif + if (!array) { + bpf_map_charge_finish(&mem); + return ERR_PTR(-ENOMEM); + } + array->index_mask = index_mask; + array->map.bypass_spec_v1 = bypass_spec_v1; ++ #ifdef CONFIG_HIVE ++ array->map.is_aggregated = is_aggregated; ++ array->map.value = array->value; ++ ++ /* record map_page_cnt for aggregation */ ++ if (!percpu && is_aggregated) ++ array->map.used_page_cnt = PAGE_ALIGN((u64) max_entries * elem_size) ++ >> PAGE_SHIFT; ++ #endif + + /* copy mandatory map attributes */ + bpf_map_init_from_attr(&array->map, attr); +@@ -180,7 +307,18 @@ static void *array_map_lookup_elem(struct bpf_map *map, void *key) + if (unlikely(index >= array->map.max_entries)) + return NULL; + ++ ++ #ifdef CONFIG_HIVE ++ /* here array->shadow_data equals map->shadow_data */ ++ if (map->is_aggregated && map->shadow_data) ++ return map->shadow_data + array->elem_size * ++ (index & array->index_mask); ++ else { ++ return array->value + array->elem_size * (index & array->index_mask); ++ } ++ #else + return array->value + array->elem_size * (index & array->index_mask); ++ #endif + } + + static int array_map_direct_value_addr(const struct bpf_map *map, u64 *imm, +@@ -193,7 +331,15 @@ static int array_map_direct_value_addr(const struct bpf_map *map, u64 *imm, + if (off >= map->value_size) + return -EINVAL; + ++ ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated && map->shadow_data) ++ *imm = (unsigned long)map->shadow_data; ++ else ++ *imm = (unsigned long)array->value; ++ #else + *imm = (unsigned long)array->value; ++ #endif + return 0; + } + +@@ -226,7 +372,22 @@ static int array_map_gen_lookup(struct bpf_map *map, struct bpf_insn *insn_buf) + if (map->map_flags & BPF_F_INNER_MAP) + return -EOPNOTSUPP; + ++ ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated && map->shadow_data) { ++ /* substitute array->value with map->shadow_data */ ++ /* assume map is the first attribute of struct array, ++ so that array == array->map ++ array=ffff8000844efe80, &array->map=ffff8000844efe80 */ ++ // fbpf_log("array=%016llx, array->map=%016llx\n", array, &array->map); ++ *insn++ = BPF_LDX_MEM(BPF_DW, map_ptr, map_ptr, offsetof(struct bpf_map, shadow_data)); ++ } ++ else ++ *insn++ = BPF_ALU64_IMM(BPF_ADD, map_ptr, ++ offsetof(struct bpf_array, value)); ++ #else + *insn++ = BPF_ALU64_IMM(BPF_ADD, map_ptr, offsetof(struct bpf_array, value)); ++ #endif + *insn++ = BPF_LDX_MEM(BPF_W, ret, index, 0); + if (!map->bypass_spec_v1) { + *insn++ = BPF_JMP_IMM(BPF_JGE, ret, map->max_entries, 4); +@@ -246,6 +407,32 @@ static int array_map_gen_lookup(struct bpf_map *map, struct bpf_insn *insn_buf) + return insn - insn_buf; + } + ++ ++#ifdef CONFIG_HIVE ++static void *__percpu_array_map_lookup_elem(struct bpf_array *array, u64 value_ptr) ++{ ++ struct page *phy_page; ++ struct list_head *used_pages_head; ++ struct bpf_used_page *entry; ++ struct bpf_used_page *next; ++ u64 in_page_offset; ++ ++ in_page_offset = value_ptr - round_down(value_ptr, PAGE_SIZE); ++ phy_page = kv_virt_to_page((void *)value_ptr); ++ ++ used_pages_head = &array->map.used_pages->list_head; ++ list_for_each_entry_safe(entry, next, used_pages_head, list_head) { ++ if (entry->physic_page == phy_page) { ++ return (void *)entry->shadow_page + in_page_offset; ++ } ++ } ++ ++ pr_err("fail to find shadow_data of percpu array %016llx\n", ++ (u64)(&array->map)); ++ return NULL; ++} ++#endif ++ + /* Called from eBPF program */ + static void *percpu_array_map_lookup_elem(struct bpf_map *map, void *key) + { +@@ -255,7 +442,18 @@ static void *percpu_array_map_lookup_elem(struct bpf_map *map, void *key) + if (unlikely(index >= array->map.max_entries)) + return NULL; + ++ ++ #ifdef CONFIG_HIVE ++ if (!map->is_aggregated) ++ return this_cpu_ptr(array->pptrs[index & array->index_mask]); ++ else { ++ u64 value_ptr = (u64)this_cpu_ptr( ++ array->pptrs[index & array->index_mask]); ++ return __percpu_array_map_lookup_elem(array, value_ptr); ++ } ++ #else + return this_cpu_ptr(array->pptrs[index & array->index_mask]); ++ #endif + } + + int bpf_percpu_array_copy(struct bpf_map *map, void *key, void *value) +@@ -398,8 +596,14 @@ static void array_map_free(struct bpf_map *map) + if (array->map.map_type == BPF_MAP_TYPE_PERCPU_ARRAY) + bpf_array_free_percpu(array); + ++ ++ #ifdef CONFIG_HIVE ++ if ((array->map.map_flags & BPF_F_MMAPABLE) || array->map.is_aggregated) ++ bpf_map_area_free(array_map_vmalloc_addr(array)); ++ #else + if (array->map.map_flags & BPF_F_MMAPABLE) + bpf_map_area_free(array_map_vmalloc_addr(array)); ++ #endif + else + bpf_map_area_free(array); + } +diff --git a/kernel/bpf/hashtab.c b/kernel/bpf/hashtab.c +index 72bc5f575254..1756d5032793 100644 +--- a/kernel/bpf/hashtab.c ++++ b/kernel/bpf/hashtab.c +@@ -13,6 +13,9 @@ + #include "percpu_freelist.h" + #include "bpf_lru_list.h" + #include "map_in_map.h" ++#ifdef CONFIG_HIVE ++#include ++#endif + + #define HTAB_CREATE_FLAG_MASK \ + (BPF_F_NO_PREALLOC | BPF_F_NO_COMMON_LRU | BPF_F_NUMA_NODE | \ +@@ -192,6 +195,19 @@ static inline void __percpu *htab_elem_get_ptr(struct htab_elem *l, u32 key_size + return *(void __percpu **)(l->key + key_size); + } + ++#ifdef CONFIG_HIVE ++static inline void htab_normal_elem_set_ptr(struct htab_elem *l, u32 key_size, ++ void *pptr) ++{ ++ *(void **)(l->key + key_size) = pptr; ++} ++ ++static inline void *htab_normal_elem_get_ptr(struct htab_elem *l, u32 key_size) ++{ ++ return *(void **)(l->key + key_size); ++} ++#endif ++ + static void *fd_htab_map_get_ptr(const struct bpf_map *map, struct htab_elem *l) + { + return *(void **)(l->key + roundup(map->key_size, 8)); +@@ -209,6 +225,33 @@ static void htab_free_elems(struct bpf_htab *htab) + if (!htab_is_percpu(htab)) + goto free_elems; + ++ ++ #ifdef CONFIG_HIVE ++ if (unlikely(!htab->map.is_aggregated)) { ++ for (i = 0; i < htab->map.max_entries; i++) { ++ void __percpu *pptr; ++ pptr = htab_elem_get_ptr(get_htab_elem(htab, i), ++ htab->map.key_size); ++ free_percpu(pptr); ++ cond_resched(); ++ } ++ } else { ++ void __percpu *pptr; ++ struct bpf_used_page *used_page_entry, *used_page_next; ++ struct list_head *used_pages_list_head = &htab->map.used_pages->list_head; ++ ++ pptr = htab_elem_get_ptr(get_htab_elem(htab, 0), htab->map.key_size); ++ free_percpu(pptr); ++ cond_resched(); ++ ++ /* free used_pages list */ ++ list_for_each_entry_safe(used_page_entry, used_page_next, ++ used_pages_list_head, list_head) { ++ list_del(&used_page_entry->list_head); ++ kfree(used_page_entry); ++ } ++ } ++ #else + for (i = 0; i < htab->map.max_entries; i++) { + void __percpu *pptr; + +@@ -217,8 +260,14 @@ static void htab_free_elems(struct bpf_htab *htab) + free_percpu(pptr); + cond_resched(); + } ++ #endif + free_elems: + bpf_map_area_free(htab->elems); ++ #ifdef CONFIG_HIVE ++ if (htab->map.is_aggregated) { ++ bpf_map_area_free(htab->map.value); ++ } ++ #endif + } + + /* The LRU list has a lock (lru_lock). Each htab bucket has a lock +@@ -251,6 +300,10 @@ static int prealloc_init(struct bpf_htab *htab) + { + u32 num_entries = htab->map.max_entries; + int err = -ENOMEM, i; ++ #ifdef CONFIG_HIVE ++ void *data; ++ u64 value_size, alloc_size; ++ #endif + + if (!htab_is_percpu(htab) && !htab_is_lru(htab)) + num_entries += num_possible_cpus(); +@@ -263,6 +316,54 @@ static int prealloc_init(struct bpf_htab *htab) + if (!htab_is_percpu(htab)) + goto skip_percpu_elems; + ++ ++ #ifdef CONFIG_HIVE ++ if (unlikely(!htab->map.is_aggregated)) { ++ for (i = 0; i < num_entries; i++) { ++ u32 size = round_up(htab->map.value_size, 8); ++ void __percpu *pptr; ++ ++ pptr = __alloc_percpu_gfp(size, 8, GFP_USER | __GFP_NOWARN); ++ if (!pptr) ++ goto free_elems; ++ htab_elem_set_ptr(get_htab_elem(htab, i), htab->map.key_size, ++ pptr); ++ cond_resched(); ++ } ++ } else { ++ u32 size = round_up(htab->map.value_size, 8); ++ void __percpu *pptr; ++ struct bpf_used_page *used_pages; ++ u64 start_address, end_address; ++ u64 page_cnt; ++ ++ pptr = __alloc_percpu_gfp(size * num_entries, PAGE_SIZE, ++ GFP_USER | __GFP_NOWARN); ++ if (!pptr) ++ goto free_elems; ++ for (i = 0; i < num_entries; i++) ++ htab_elem_set_ptr(get_htab_elem(htab, i), htab->map.key_size, ++ pptr + size * i); ++ cond_resched(); ++ ++ /* fBPF init user_pages */ ++ used_pages = kzalloc(sizeof(*used_pages), GFP_KERNEL); ++ htab->map.used_pages = used_pages; ++ if (!used_pages) ++ return -ENOMEM; ++ INIT_LIST_HEAD(&used_pages->list_head); ++ mutex_init(&htab->map.used_page_mutex); ++ ++ /* fBPF record percpu physic pages */ ++ start_address = round_down((u64)pptr, PAGE_SIZE); ++ end_address = round_up((u64)pptr + htab->map.max_entries * size, PAGE_SIZE); ++ page_cnt = bpf_record_used_pages(start_address, end_address, ++ &htab->map.used_page_mutex, &htab->map.used_pages->list_head); ++ if (page_cnt < 0) ++ goto free_elems; ++ htab->map.used_page_cnt = page_cnt; ++ } ++ #else + for (i = 0; i < num_entries; i++) { + u32 size = round_up(htab->map.value_size, 8); + void __percpu *pptr; +@@ -274,8 +375,27 @@ static int prealloc_init(struct bpf_htab *htab) + pptr); + cond_resched(); + } ++ #endif + + skip_percpu_elems: ++ #ifdef CONFIG_HIVE ++ if (htab_is_percpu(htab)) ++ goto skip_elems; ++ ++ value_size = round_up(htab->map.value_size, 8); ++ alloc_size = PAGE_ALIGN(value_size * num_entries); ++ data = bpf_map_area_alloc(alloc_size, htab->map.numa_node); ++ if (!data) ++ goto free_elems; ++ htab->map.value = data; ++ htab->map.used_page_cnt = alloc_size >> PAGE_SHIFT; ++ for (i = 0; i < num_entries; i++) ++ htab_normal_elem_set_ptr(get_htab_elem(htab, i), round_up(htab->map.key_size, 8), ++ data + value_size * i); ++ ++skip_elems: ++ #endif ++ + if (htab_is_lru(htab)) + err = bpf_lru_init(&htab->lru, + htab->map.map_flags & BPF_F_NO_COMMON_LRU, +@@ -305,6 +425,29 @@ static int prealloc_init(struct bpf_htab *htab) + return err; + } + ++#ifdef CONFIG_HIVE ++void substitute_hash_value_ptr(struct bpf_map *map) ++{ ++ struct bpf_htab *htab = container_of(map, struct bpf_htab, map); ++ int i; ++ u32 value_size = round_up(map->value_size, 8); ++ int num_entries = map->max_entries; ++ ++ if (!htab_is_percpu(htab) && !htab_is_lru(htab)) ++ num_entries += num_possible_cpus(); ++ ++ for (i = 0; i < num_entries; i++) { ++ htab_normal_elem_set_ptr(get_htab_elem(htab, i), ++ round_up(htab->map.key_size, 8), ++ map->shadow_data + value_size * i); ++ } ++ ++ pr_info("substitute htab %d data from %016llx to %016llx-%016llx\n", ++ map->id, (u64)htab->map.value, (u64)map->shadow_data, ++ (u64)map->shadow_data + value_size * num_entries); ++} ++#endif ++ + static void prealloc_destroy(struct bpf_htab *htab) + { + htab_free_elems(htab); +@@ -430,6 +573,17 @@ static struct bpf_map *htab_map_alloc(union bpf_attr *attr) + return ERR_PTR(-ENOMEM); + + bpf_map_init_from_attr(&htab->map, attr); ++ #ifdef CONFIG_HIVE ++ if (htab->map.map_type == BPF_MAP_TYPE_HASH || ++ htab->map.map_type == BPF_MAP_TYPE_PERCPU_HASH || ++ htab->map.map_type == BPF_MAP_TYPE_LRU_HASH || ++ htab->map.map_type == BPF_MAP_TYPE_LRU_PERCPU_HASH) { ++ htab->map.is_aggregated = true; ++ htab->map.map_flags &= ~BPF_F_NO_PREALLOC; ++ pr_warn("BPF_F_NO_PREALLOC flag is deprecated\n"); ++ prealloc = true; ++ } ++ #endif + + if (percpu_lru) { + /* ensure each CPU's lru list has >=1 elements. +@@ -452,12 +606,22 @@ static struct bpf_map *htab_map_alloc(union bpf_attr *attr) + + htab->n_buckets = roundup_pow_of_two(htab->map.max_entries); + ++ #ifdef CONFIG_HIVE ++ /* elem size = htab_elem + key + value */ ++ htab->elem_size = sizeof(struct htab_elem) + ++ round_up(htab->map.key_size, 8); ++ if (percpu || htab->map.is_aggregated) ++ htab->elem_size += sizeof(void *); ++ else ++ htab->elem_size += round_up(htab->map.value_size, 8); ++ #else + htab->elem_size = sizeof(struct htab_elem) + + round_up(htab->map.key_size, 8); + if (percpu) + htab->elem_size += sizeof(void *); + else + htab->elem_size += round_up(htab->map.value_size, 8); ++ #endif + + /* check for u32 overflow */ + if (htab->n_buckets > U32_MAX / sizeof(struct bucket)) +@@ -599,8 +763,17 @@ static void *htab_map_lookup_elem(struct bpf_map *map, void *key) + { + struct htab_elem *l = __htab_map_lookup_elem(map, key); + ++ #ifdef CONFIG_HIVE ++ if (l) { ++ if (map->is_aggregated) ++ return htab_normal_elem_get_ptr(l, round_up(map->key_size, 8)); ++ else ++ return l->key + round_up(map->key_size, 8); ++ } ++ #else + if (l) + return l->key + round_up(map->key_size, 8); ++ #endif + + return NULL; + } +@@ -625,9 +798,21 @@ static int htab_map_gen_lookup(struct bpf_map *map, struct bpf_insn *insn_buf) + (void *(*)(struct bpf_map *map, void *key))NULL)); + *insn++ = BPF_EMIT_CALL(BPF_CAST_CALL(__htab_map_lookup_elem)); + *insn++ = BPF_JMP_IMM(BPF_JEQ, ret, 0, 1); ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated) ++ *insn++ = BPF_LDX_MEM(BPF_DW, ret, ret, ++ offsetof(struct htab_elem, key) + ++ round_up(map->key_size, 8)); ++ else { ++ *insn++ = BPF_ALU64_IMM(BPF_ADD, ret, ++ offsetof(struct htab_elem, key) + ++ roundup(map->key_size, 8)); ++ } ++ #else + *insn++ = BPF_ALU64_IMM(BPF_ADD, ret, + offsetof(struct htab_elem, key) + + round_up(map->key_size, 8)); ++ #endif + return insn - insn_buf; + } + +@@ -639,7 +824,14 @@ static __always_inline void *__htab_lru_map_lookup_elem(struct bpf_map *map, + if (l) { + if (mark) + bpf_lru_node_set_ref(&l->lru_node); ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated) ++ return htab_normal_elem_get_ptr(l, round_up(map->key_size, 8)); ++ else ++ return l->key + round_up(map->key_size, 8); ++ #else + return l->key + round_up(map->key_size, 8); ++ #endif + } + + return NULL; +@@ -674,9 +866,20 @@ static int htab_lru_map_gen_lookup(struct bpf_map *map, + offsetof(struct htab_elem, lru_node) + + offsetof(struct bpf_lru_node, ref), + 1); ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated) ++ *insn++ = BPF_LDX_MEM(BPF_DW, ret, ret, ++ offsetof(struct htab_elem, key) + ++ round_up(map->key_size, 8)); ++ else ++ *insn++ = BPF_ALU64_IMM(BPF_ADD, ret, ++ offsetof(struct htab_elem, key) + ++ round_up(map->key_size, 8)); ++ #else + *insn++ = BPF_ALU64_IMM(BPF_ADD, ret, + offsetof(struct htab_elem, key) + + round_up(map->key_size, 8)); ++ #endif + return insn - insn_buf; + } + +@@ -862,7 +1065,11 @@ static struct htab_elem *alloc_htab_elem(struct bpf_htab *htab, void *key, + bool percpu, bool onallcpus, + struct htab_elem *old_elem) + { ++ #ifdef CONFIG_HIVE ++ u32 size = round_up(htab->map.value_size, 8); ++ #else + u32 size = htab->map.value_size; ++ #endif + bool prealloc = htab_is_prealloc(htab); + struct htab_elem *l_new, **pl_new; + void __percpu *pptr; +@@ -927,11 +1134,30 @@ static struct htab_elem *alloc_htab_elem(struct bpf_htab *htab, void *key, + htab_elem_set_ptr(l_new, key_size, pptr); + } else if (fd_htab_map_needs_adjust(htab)) { + size = round_up(size, 8); ++ #ifdef CONFIG_HIVE ++ if (htab->map.is_aggregated) { ++ memcpy(htab_normal_elem_get_ptr(l_new, round_up(key_size, 8)), ++ value, size); ++ } else ++ memcpy(l_new->key + round_up(key_size, 8), value, size); ++ #else + memcpy(l_new->key + round_up(key_size, 8), value, size); ++ #endif + } else { ++ #ifdef CONFIG_HIVE ++ if (htab->map.is_aggregated) ++ copy_map_value(&htab->map, ++ htab_normal_elem_get_ptr(l_new, round_up(key_size, 8)), ++ value); ++ else ++ copy_map_value(&htab->map, ++ l_new->key + round_up(key_size, 8), ++ value); ++ #else + copy_map_value(&htab->map, + l_new->key + round_up(key_size, 8), + value); ++ #endif + } + + l_new->hash = hash; +@@ -991,9 +1217,20 @@ static int htab_map_update_elem(struct bpf_map *map, void *key, void *value, + return ret; + if (l_old) { + /* grab the element lock and update value in place */ ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated) ++ copy_map_value_locked(map, ++ htab_normal_elem_get_ptr(l_old, round_up(key_size, 8)), ++ value, false); ++ else ++ copy_map_value_locked(map, ++ l_old->key + round_up(key_size, 8), ++ value, false); ++ #else + copy_map_value_locked(map, + l_old->key + round_up(key_size, 8), + value, false); ++ #endif + return 0; + } + /* fall through, grab the bucket lock and lookup again. +@@ -1017,9 +1254,20 @@ static int htab_map_update_elem(struct bpf_map *map, void *key, void *value, + * grab the element lock in addition to the bucket lock + * and update element in place + */ ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated) ++ copy_map_value_locked(map, ++ htab_normal_elem_get_ptr(l_old, round_up(key_size, 8)), ++ value, false); ++ else ++ copy_map_value_locked(map, ++ l_old->key + round_up(key_size, 8), ++ value, false); ++ #else + copy_map_value_locked(map, + l_old->key + round_up(key_size, 8), + value, false); ++ #endif + ret = 0; + goto err; + } +@@ -1079,7 +1327,14 @@ static int htab_lru_map_update_elem(struct bpf_map *map, void *key, void *value, + l_new = prealloc_lru_pop(htab, key, hash); + if (!l_new) + return -ENOMEM; ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated) ++ memcpy(htab_normal_elem_get_ptr(l_new, round_up(map->key_size, 8)), value, map->value_size); ++ else ++ memcpy(l_new->key + round_up(map->key_size, 8), value, map->value_size); ++ #else + memcpy(l_new->key + round_up(map->key_size, 8), value, map->value_size); ++ #endif + + flags = htab_lock_bucket(htab, b); + +@@ -1870,13 +2125,47 @@ const struct bpf_map_ops htab_lru_map_ops = { + .iter_seq_info = &iter_seq_info, + }; + ++#ifdef CONFIG_HIVE ++static void *percpu_htab_aggregated_addr(struct bpf_htab *htab, const void *value_ptr1) ++{ ++ struct page *phy_ptr; ++ struct list_head *used_pages_head; ++ struct bpf_used_page *entry; ++ struct bpf_used_page *next; ++ u64 in_page_offset; ++ ++ phy_ptr = kv_virt_to_page(value_ptr1); ++ used_pages_head = &htab->map.used_pages->list_head; ++ in_page_offset = (u64)value_ptr1 - round_down((u64)value_ptr1, PAGE_SIZE); ++ ++ list_for_each_entry_safe(entry, next, used_pages_head, list_head) { ++ if ((u64)entry->physic_page == (u64)phy_ptr) { ++ return (void *)entry->shadow_page + in_page_offset; ++ } ++ } ++ ++ return 0; ++} ++#endif ++ + /* Called from eBPF program */ + static void *htab_percpu_map_lookup_elem(struct bpf_map *map, void *key) + { + struct htab_elem *l = __htab_map_lookup_elem(map, key); + ++ #ifdef CONFIG_HIVE ++ if (l) { ++ if (map->is_aggregated && map->shadow_data) { ++ struct bpf_htab *htab = container_of(map, struct bpf_htab, map); ++ void *value_ptr = this_cpu_ptr(htab_elem_get_ptr(l, map->key_size)); ++ return percpu_htab_aggregated_addr(htab, value_ptr); ++ } else ++ return this_cpu_ptr(htab_elem_get_ptr(l, map->key_size)); ++ } ++ #else + if (l) + return this_cpu_ptr(htab_elem_get_ptr(l, map->key_size)); ++ #endif + else + return NULL; + } +@@ -1887,7 +2176,16 @@ static void *htab_lru_percpu_map_lookup_elem(struct bpf_map *map, void *key) + + if (l) { + bpf_lru_node_set_ref(&l->lru_node); ++ #ifdef CONFIG_HIVE ++ if (map->is_aggregated && map->shadow_data) { ++ struct bpf_htab *htab = container_of(map, struct bpf_htab, map); ++ void *value_ptr = this_cpu_ptr(htab_elem_get_ptr(l, map->key_size)); ++ return percpu_htab_aggregated_addr(htab, value_ptr); ++ } else ++ return this_cpu_ptr(htab_elem_get_ptr(l, map->key_size)); ++ #else + return this_cpu_ptr(htab_elem_get_ptr(l, map->key_size)); ++ #endif + } + + return NULL; +diff --git a/kernel/bpf/sfi_bpf.c b/kernel/bpf/sfi_bpf.c +new file mode 100644 +index 000000000000..db48c42d3936 +--- /dev/null ++++ b/kernel/bpf/sfi_bpf.c +@@ -0,0 +1,1430 @@ ++#include ++#include ++#include "disasm.h" ++#ifdef CONFIG_HIVE ++#include ++#endif ++ ++const enum bpf_map_type can_lookup_map_types[] = { ++ BPF_MAP_TYPE_ARRAY, ++ BPF_MAP_TYPE_PERCPU_ARRAY, ++ BPF_MAP_TYPE_HASH, ++ BPF_MAP_TYPE_LRU_HASH, ++ BPF_MAP_TYPE_PERCPU_HASH, ++ BPF_MAP_TYPE_LRU_PERCPU_HASH, ++ BPF_MAP_TYPE_CPUMAP, ++ BPF_MAP_TYPE_CGROUP_STORAGE, ++ BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE, ++ BPF_MAP_TYPE_QUEUE, ++ BPF_MAP_TYPE_STACK, ++ BPF_MAP_TYPE_SK_STORAGE, ++ BPF_MAP_TYPE_INODE_STORAGE, ++ BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, ++ BPF_MAP_TYPE_LPM_TRIE, ++ BPF_MAP_TYPE_SOCKMAP, ++ BPF_MAP_TYPE_SOCKHASH, ++}; ++ ++DEFINE_MUTEX(bpf_sfi_lock); ++ ++void do_fbpf_log(const char *func_name, const char *fmt, ...) ++{ ++ #ifdef FBPF_LOG_ENABLE ++ va_list args; ++ char buffer[256]; ++ ++ va_start(args, fmt); ++ vsnprintf(buffer, sizeof(buffer), fmt, args); ++ va_end(args); ++ ++ pr_info("<%s> %s", func_name, buffer); ++ #endif ++} ++ ++const char *bpf_map_type_strings[] = { ++ "BPF_MAP_TYPE_UNSPEC", ++ "BPF_MAP_TYPE_HASH", ++ "BPF_MAP_TYPE_ARRAY", ++ "BPF_MAP_TYPE_PROG_ARRAY", ++ "BPF_MAP_TYPE_PERF_EVENT_ARRAY", ++ "BPF_MAP_TYPE_PERCPU_HASH", ++ "BPF_MAP_TYPE_PERCPU_ARRAY", ++ "BPF_MAP_TYPE_STACK_TRACE", ++ "BPF_MAP_TYPE_CGROUP_ARRAY", ++ "BPF_MAP_TYPE_LRU_HASH", ++ "BPF_MAP_TYPE_LRU_PERCPU_HASH", ++ "BPF_MAP_TYPE_LPM_TRIE", ++ "BPF_MAP_TYPE_ARRAY_OF_MAPS", ++ "BPF_MAP_TYPE_HASH_OF_MAPS", ++ "BPF_MAP_TYPE_DEVMAP", ++ "BPF_MAP_TYPE_SOCKMAP", ++ "BPF_MAP_TYPE_CPUMAP", ++ "BPF_MAP_TYPE_XSKMAP", ++ "BPF_MAP_TYPE_SOCKHASH", ++ "BPF_MAP_TYPE_CGROUP_STORAGE", ++ "BPF_MAP_TYPE_REUSEPORT_SOCKARRAY", ++ "BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE", ++ "BPF_MAP_TYPE_QUEUE", ++ "BPF_MAP_TYPE_STACK", ++ "BPF_MAP_TYPE_SK_STORAGE", ++ "BPF_MAP_TYPE_DEVMAP_HASH", ++ "BPF_MAP_TYPE_STRUCT_OPS", ++ "BPF_MAP_TYPE_RINGBUF", ++ "BPF_MAP_TYPE_INODE_STORAGE", ++}; ++ ++struct page *kv_virt_to_page(const void *vaddr) ++{ ++ if (is_vmalloc_addr(vaddr)) ++ return vmalloc_to_page(vaddr); ++ else ++ return virt_to_page(vaddr); ++} ++ ++static bool map_can_lookup(struct bpf_map *map) ++{ ++ int i; ++ enum bpf_map_type type = map->map_type; ++ ++ for (i = 0; i < ARRAY_SIZE(can_lookup_map_types); i++) ++ if (type == can_lookup_map_types[i]) ++ return true; ++ ++ return false; ++} ++ ++static int get_env_map_cnt(struct bpf_verifier_env *env) ++{ ++ int i; ++ struct bpf_map *map; ++ int page_cnt = 0; ++ ++ // calculate maps page count ++ for (i = 0; i < env->used_map_cnt; i++) { ++ map = env->used_maps[i]; ++ if (map->is_aggregated && map->used_page_cnt) { ++ page_cnt += map->used_page_cnt; ++ fbpf_log("map %d %s page_cnt = %d\n", map->id, ++ bpf_map_type_strings[map->map_type], map->used_page_cnt); ++ } else if (map_can_lookup(map)) { ++ pr_err("unsupport map_type %s\n", bpf_map_type_strings[map->map_type]); ++ return -EPERM; ++ } ++ } ++ ++ return page_cnt; ++} ++ ++static int count_percpu_pages(struct bpf_map *map, struct page **pages, int *page_index) ++{ ++ struct list_head *used_pages_head = NULL; ++ struct bpf_used_page *entry; ++ struct bpf_used_page *next; ++ ++ used_pages_head = &map->used_pages->list_head; ++ ++ /* should not list_del and free here, later other progs may reuse this map */ ++ list_for_each_entry_safe(entry, next, used_pages_head, list_head) { ++ // printk("count page %016llx\n", entry->physic_page); ++ pages[*page_index] = entry->physic_page; ++ entry->shadow_page = *page_index; ++ if (!pages[*page_index]) { ++ pr_err("illegal address=%016llx\n", (u64)pages[*page_index]); ++ return -EFAULT; ++ } ++ (*page_index)++; ++ } ++ ++ return 0; ++} ++ ++static int count_all_pages(struct bpf_verifier_env *env, struct page **pages, int *page_index) ++{ ++ struct bpf_map *map; ++ int i, j; ++ u64 start_addr; ++ int err; ++ int page_index_before; ++ ++ /* 1. coutn pages in low guard region */ ++ start_addr = PAGE_ALIGN((u64)env->prog->low_guard_region_addr); ++ for (i = 0; i < env->prog->guard_region_page_cnt / 2; i++) { ++ pages[*page_index] = kv_virt_to_page((void *)start_addr); ++ if (!pages[*page_index]) { ++ pr_err("ERROR: unable to find_vm_area for stack[%d]\n", *page_index); ++ return -ENOENT; ++ } ++ ++ pr_info("page %d: va = %llx, page = %llx\n", i, start_addr, (u64)pages[*page_index]); ++ ++ start_addr += PAGE_SIZE; ++ (*page_index)++; ++ } ++ ++ /* 2. count pages in map's data area */ ++ for (i = 0; i < env->used_map_cnt; i++) { ++ page_index_before = *page_index; ++ map = env->used_maps[i]; ++ ++ if (!map->is_aggregated) ++ continue; ++ ++ if (map->map_type == BPF_MAP_TYPE_ARRAY || ++ map->map_type == BPF_MAP_TYPE_CGROUP_ARRAY) { ++ start_addr = (u64)map->value; ++ } else if (map->map_type == BPF_MAP_TYPE_HASH || ++ map->map_type == BPF_MAP_TYPE_LRU_HASH) { ++ start_addr = (u64)map->value; ++ } else if (map->map_type == BPF_MAP_TYPE_PERCPU_ARRAY || ++ map->map_type == BPF_MAP_TYPE_PERCPU_HASH || ++ map->map_type == BPF_MAP_TYPE_LRU_PERCPU_HASH) { ++ err = count_percpu_pages(map, pages, page_index); ++ if (err) ++ return err; ++ goto hook_end; ++ } else if (map->map_type == BPF_MAP_TYPE_PROG_ARRAY) { ++ pr_err("WARNING: ignore map %s\n", bpf_map_type_strings[map->map_type]); ++ goto hook_end; ++ } else { ++ pr_err("ERROR: miss map %s in count_all_pages()\n", ++ bpf_map_type_strings[map->map_type]); ++ return -ENOENT; ++ } ++ ++ /* assert start_addr is page_aligned */ ++ if (unlikely(!PAGE_ALIGNED(start_addr))) { ++ pr_err("ERROR: fbpf self, map_data should be PAGE_ALIGNED\n"); ++ pr_err("map %s, addr=%016llx", ++ bpf_map_type_strings[map->map_type], (u64)map); ++ return -EFAULT; ++ } ++ ++ /* for normal map with base addr */ ++ for (j = 0; j < map->used_page_cnt; j++) { ++ pages[*page_index] = kv_virt_to_page((void *)start_addr); ++ if (!pages[*page_index]) { ++ pr_err("ERROR: unable to find_vm_area for pages[%d], %llx\n", *page_index, ++ start_addr); ++ return -ENOENT; ++ } ++ ++ (*page_index)++; ++ } ++ ++hook_end: ++ fbpf_log("hook aggregated area for map %d: %s, %016llx, \ ++page_cnt: %d, should be: %d\n", ++ map->id, bpf_map_type_strings[map->map_type], (u64)map, ++ *page_index - page_index_before, map->used_page_cnt); ++ } ++ ++ /* 3. count pages in skb area */ ++ start_addr = PAGE_ALIGN((u64)env->prog->shadow_skb_addr); ++ for (i = 0; i < env->prog->shadow_skb_page_cnt; i++) { ++ pages[*page_index] = kv_virt_to_page((void *)start_addr); ++ if (!pages[*page_index]) { ++ pr_err("ERROR: unable to find_vm_area for stack[%d]\n", *page_index); ++ return -ENOENT; ++ } ++ ++ start_addr += PAGE_SIZE; ++ (*page_index)++; ++ } ++ ++ /* 4. count pages in stack area */ ++ start_addr = PAGE_ALIGN((u64)env->prog->shadow_stack_addr); ++ for (i = 0; i < env->prog->shadow_stack_page_cnt; i++) { ++ pages[*page_index] = kv_virt_to_page((void *)start_addr); ++ if (!pages[*page_index]) { ++ pr_err("ERROR: unable to find_vm_area for stack[%d]\n", *page_index); ++ return -ENOENT; ++ } ++ ++ start_addr += PAGE_SIZE; ++ (*page_index)++; ++ } ++ ++ /* 5. coutn pages in high guard region */ ++ start_addr = PAGE_ALIGN((u64)env->prog->high_guard_region_addr); ++ for (i = 0; i < env->prog->guard_region_page_cnt / 2; i++) { ++ pages[*page_index] = kv_virt_to_page((void *)start_addr); ++ if (!pages[*page_index]) { ++ pr_err("ERROR: unable to find_vm_area for stack[%d]\n", *page_index); ++ return -ENOENT; ++ } ++ ++ start_addr += PAGE_SIZE; ++ (*page_index)++; ++ } ++ ++ return 0; ++} ++ ++static void record_percpu_map_shadow_page(struct bpf_map *map) ++{ ++ struct list_head *used_pages_head = NULL; ++ struct bpf_used_page *entry; ++ struct bpf_used_page *next; ++ void *shadow_base_addr = map->shadow_data; ++ ++ used_pages_head = &map->used_pages->list_head; ++ ++ /* fbpf should not list_del and free here, ++ later other progs may reuse this map. ++ instead, map_free will do this job */ ++ list_for_each_entry_safe(entry, next, used_pages_head, list_head) { ++ entry->shadow_page = (u64)shadow_base_addr + PAGE_SIZE * ++ entry->shadow_page; /* shadow_page is the index recorded in count_all_pages() */ ++ if (unlikely((u64)entry->physic_page != ++ (u64)vmalloc_to_page((void *)entry->shadow_page))) { ++ pr_err("ERROR: recorded shadow_page unequal actual shadow_page\n"); ++ } ++ } ++} ++ ++EXPORT_SYMBOL(init_mm); ++ ++static inline pte_t *get_ptep(u64 addr) ++{ ++ pgd_t *pgdp; ++ p4d_t *p4dp; ++ pud_t *pudp; ++ pmd_t *pmdp; ++ pte_t *ptep; ++ ++ pgdp = pgd_offset(&init_mm, addr); ++ if (pgd_none(*pgdp) || pgd_bad(*pgdp)) ++ return ERR_PTR(-ENOENT); ++ ++ p4dp = p4d_offset(pgdp, addr); ++ if (p4d_none(*p4dp) || p4d_bad(*p4dp)) ++ return ERR_PTR(-ENOENT); ++ ++ pudp = pud_offset(p4dp, addr); ++ if (pud_none(*pudp) || pud_bad(*pudp)) ++ return ERR_PTR(-ENOENT); ++ ++ pmdp = pmd_offset(pudp, addr); ++ if (pmd_none(*pmdp) || pmd_bad(*pmdp)) ++ return ERR_PTR(-ENOENT); ++ ++ ptep = pte_offset_kernel(pmdp, addr); ++ if (!ptep) ++ return ERR_PTR(-ENOENT); ++ ++ return ptep; ++} ++ ++static inline int set_as_guard_page(unsigned long addr) ++{ ++ pte_t pte, *ptep; ++ ++ ptep = get_ptep(addr); ++ if (IS_ERR(ptep)) ++ return PTR_ERR(ptep); ++ ++ pte = __pte(pte_val(*ptep) & ~PTE_VALID); ++ set_pte(ptep, __pte((pte_val(pte) | PTE_BPF_SFI_GP))); ++ ++ flush_tlb_kernel_range(addr, addr + PAGE_SIZE); ++ isb(); ++ ++ return 0; ++} ++ ++inline void *alloc_aligned_memory(u64 size) ++{ ++ // unsigned long order = get_order(size); ++ // void *ptr = (void *)__get_free_pages(GFP_KERNEL, order); ++ ++ // if (!ptr) { ++ // printk(KERN_ERR "Failed to allocate memory\n"); ++ // return ERR_PTR(ENOMEM); ++ // } ++ ++ size_t align = size >> PAGE_SHIFT; ++ size_t total = size >> PAGE_SHIFT; ++ void *ptr, *aligned_ptr; ++ ++ ptr = vmalloc((total + align - 1) * PAGE_SIZE); ++ if (!ptr) { ++ pr_err("vmalloc failed\n"); ++ return ERR_PTR(ENOMEM); ++ } ++ ++ aligned_ptr = (void *)ALIGN((unsigned long)ptr, align * PAGE_SIZE); ++ ++ // check alignment ++ if ((unsigned long)aligned_ptr & (size - 1)) { ++ // free_pages((unsigned long)ptr, order); ++ vfree(ptr); ++ printk(KERN_ERR "Memory not properly aligned\n"); ++ return ERR_PTR(ENOMEM); ++ } ++ ++ return aligned_ptr; ++} ++ ++inline int map_physic_pages(struct page **pages, void *virt_addr, int page_cnt) ++{ ++ int i; ++ u64 origin_addr, cur_addr; ++ pte_t *ptep, *origin_ptep; ++ ++ for (i = 0; i < page_cnt; i++) { ++ pr_info("mapping page %d\n", i); ++ ++ // u64 origin_addr = page_to_pfn(pages[i]) << PAGE_SHIFT; ++ origin_addr = (u64)page_address(pages[i]); ++ pr_info("origin addr %llx\n", origin_addr); ++ origin_ptep = get_ptep(origin_addr); ++ if (IS_ERR(origin_ptep)) ++ return PTR_ERR(origin_ptep); ++ ++ cur_addr = (u64)virt_addr + i * PAGE_SIZE; ++ pr_info("cur addr %llx\n", cur_addr); ++ ptep = get_ptep(cur_addr); ++ if (IS_ERR(ptep)) ++ return PTR_ERR(ptep); ++ ++ #ifdef CONFIG_IEE ++ set_pte(ptep, *origin_ptep); ++ #else ++ *ptep = *origin_ptep; ++ #endif ++ } ++ ++ return 0; ++} ++ ++/** ++ * sfi_bpf space: ++ * guard page 8 pages ++ * map's data 0xffff80008457f000 - 0xffff80008457f000 ++ * skb 0xffff80008457f000 - 0xffff80008457f000 ++ * stack 0xffff80008457f000 - 0xffff800084580000 ++ * guard page 8 pages ++ */ ++int bpf_sfi_aggregate_memory(struct bpf_verifier_env *env) ++{ ++ struct page **pages = NULL; ++ struct bpf_map *map; ++ u64 start_addr; ++ void *shadow_base_addr = NULL, *shadow_high_addr = NULL; ++ int i, page_index = 0; ++ int total_page_cnt, map_page_cnt, stack_page_cnt, skb_page_cnt, guard_page_cnt; ++ int err; ++ void *shadow_stack_addr, *shadow_skb_addr, *guard_region_addr; ++ ++ /* calculate page_cnt */ ++ env->prog->map_page_cnt = map_page_cnt = get_env_map_cnt(env); ++ if (map_page_cnt < 0) { ++ err = map_page_cnt; ++ goto ret; ++ } ++ stack_page_cnt = round_up(MAX_BPF_STACK, PAGE_SIZE) >> PAGE_SHIFT; ++ if (env->prog->type == BPF_PROG_TYPE_SCHED_CLS || ++ env->prog->type == BPF_PROG_TYPE_SCHED_ACT || ++ env->prog->type == BPF_PROG_TYPE_XDP || ++ env->prog->type == BPF_PROG_TYPE_LWT_XMIT || ++ env->prog->type == BPF_PROG_TYPE_SK_SKB || ++ env->prog->type == BPF_PROG_TYPE_SK_MSG) ++ skb_page_cnt = 16; ++ else ++ skb_page_cnt = 0; ++ guard_page_cnt = 16; ++ ++ /* roundup totoal page number to power of two for SFI consideration */ ++ env->prog->shadow_skb_page_cnt = skb_page_cnt; ++ env->prog->guard_region_page_cnt = guard_page_cnt; ++ env->prog->total_page_cnt = total_page_cnt = roundup_pow_of_two(stack_page_cnt + map_page_cnt + skb_page_cnt + guard_page_cnt); ++ env->prog->shadow_stack_page_cnt = stack_page_cnt = total_page_cnt - map_page_cnt - skb_page_cnt - guard_page_cnt; ++ ++ /* map map's value area to pages */ ++ pages = kzalloc(sizeof(struct page *) * (total_page_cnt + guard_page_cnt), GFP_KERNEL | __GFP_NOWARN); ++ if (!pages) { ++ pr_err("ERROR: alloc tmp pages array failed\n"); ++ err = -ENOMEM; ++ goto ret; ++ } ++ ++ /* alloc tmp skb page to fill in pages */ ++ shadow_skb_addr = kzalloc(skb_page_cnt * PAGE_SIZE, GFP_KERNEL); ++ if (!shadow_skb_addr) { ++ pr_err("alloc skb area failed\n"); ++ err = -ENOMEM; ++ goto ret; ++ } ++ env->prog->shadow_skb_addr = shadow_skb_addr; ++ ++ /* alloc shadow stack value area */ ++ shadow_stack_addr = kzalloc(stack_page_cnt * PAGE_SIZE, GFP_KERNEL); ++ if (!shadow_stack_addr) { ++ pr_err("alloc stack area failed\n"); ++ err = -ENOMEM; ++ goto ret; ++ } ++ env->prog->shadow_stack_addr = shadow_stack_addr; ++ ++ /* alloc guard region */ ++ guard_region_addr = kzalloc(guard_page_cnt * PAGE_SIZE, GFP_KERNEL); ++ if (!guard_region_addr) { ++ pr_err("alloc guard region failed\n"); ++ err = -ENOMEM; ++ goto ret; ++ } ++ env->prog->low_guard_region_addr = guard_region_addr; ++ env->prog->high_guard_region_addr = guard_region_addr + guard_page_cnt / 2 * PAGE_SIZE; ++ ++ /* fill the array pages */ ++ err = count_all_pages(env, pages, &page_index); ++ if (err) ++ goto ret; ++ ++ /* check every page is counted */ ++ fbpf_log("page index=%d, page cnt=%d (should equal)\n", page_index, total_page_cnt); ++ if (unlikely(page_index != total_page_cnt)) { ++ pr_err("ERROR: page_index != page_cnt\n"); ++ err = -EFAULT; ++ goto ret; ++ } ++ ++ /* remap memory area to virtually contiguous space */ ++ // shadow_base_addr = vmap(pages, total_page_cnt, VM_MAP, PAGE_KERNEL); ++ shadow_base_addr = alloc_aligned_memory(total_page_cnt * PAGE_SIZE); ++ pr_info("virtual addr = %llx\n", (u64)shadow_base_addr); ++ shadow_high_addr = shadow_base_addr + total_page_cnt * PAGE_SIZE; ++ if (!shadow_base_addr) { ++ pr_err("unable to vmap map's value area and stack area\n"); ++ err = -ENOMEM; ++ goto ret; ++ } ++ env->prog->shadow_region_addr = shadow_base_addr; ++ env->prog->shadow_top_addr = shadow_high_addr; ++ ++ err = map_physic_pages(pages, shadow_base_addr, total_page_cnt); ++ if (err < 0) { ++ pr_err("remap failed, %d\n", err); ++ goto ret; ++ } ++ ++ /* substitute with SFI address space addrs */ ++ start_addr = (u64)shadow_base_addr; ++ ++ /* low guard region */ ++ env->prog->low_guard_region_addr = (void *)start_addr; ++ start_addr += guard_page_cnt / 2 * PAGE_SIZE; ++ ++ /* IMPORTANT: update shadow addr for maps */ ++ env->prog->map_data_addr = (void *)start_addr; ++ for (i = 0; i < env->used_map_cnt; i++) { ++ map = env->used_maps[i]; ++ ++ if (!map->is_aggregated) ++ continue; ++ ++ /* record addr mapping info */ ++ map->shadow_data = (void *)start_addr; ++ ++ if (map->map_type == BPF_MAP_TYPE_HASH || ++ map->map_type == BPF_MAP_TYPE_LRU_HASH) { ++ substitute_hash_value_ptr(map); ++ } else if (map->map_type == BPF_MAP_TYPE_ARRAY || ++ map->map_type == BPF_MAP_TYPE_CGROUP_ARRAY) { ++ ; // only need to record map->shadow_data ++ } else if (map->map_type == BPF_MAP_TYPE_PERCPU_ARRAY || ++ map->map_type == BPF_MAP_TYPE_PERCPU_HASH || ++ map->map_type == BPF_MAP_TYPE_LRU_PERCPU_HASH) { ++ record_percpu_map_shadow_page(map); ++ } else { ++ ; // no need to record or substitute ++ } ++ ++ start_addr += map->used_page_cnt * PAGE_SIZE; ++ } ++ ++ /* the space between map's data and stack is for skb_buff */ ++ env->prog->shadow_skb_addr = (void *)start_addr; ++ start_addr += skb_page_cnt * PAGE_SIZE; ++ ++ /* stack */ ++ /* NOTICE: stack's addr is high addr (sp), rather than low addr (fp) */ ++ start_addr += stack_page_cnt * PAGE_SIZE; ++ env->prog->shadow_stack_addr = (void *)start_addr; ++ ++ /* high guard region */ ++ env->prog->high_guard_region_addr = (void *)start_addr; ++ start_addr += guard_page_cnt / 2 * PAGE_SIZE; ++ ++ BUG_ON(unlikely(start_addr != (u64)(env->prog->shadow_top_addr))); ++ ++ // set guard region and skb region as guard page ++ start_addr = (u64)env->prog->low_guard_region_addr; ++ for (i = 0; i < guard_page_cnt / 2; i++) { ++ err = set_as_guard_page(start_addr); ++ if (err < 0) { ++ pr_err("set as guard page failed, %d\n", err); ++ goto ret; ++ } ++ start_addr += PAGE_SIZE; ++ } ++ start_addr = (u64)env->prog->high_guard_region_addr; ++ for (i = 0; i < guard_page_cnt / 2; i++) { ++ err = set_as_guard_page(start_addr); ++ if (err < 0) { ++ pr_err("set as guard page failed, %d\n", err); ++ goto ret; ++ } ++ start_addr += PAGE_SIZE; ++ } ++ start_addr = (u64)env->prog->shadow_skb_addr; ++ for (i = 0; i < skb_page_cnt; i++) { ++ err = set_as_guard_page(start_addr); ++ if (err < 0) { ++ pr_err("set as guard page failed, %d\n", err); ++ goto ret; ++ } ++ start_addr += PAGE_SIZE; ++ } ++ ++ // manually trigger page fault now ++ // pr_err("start probe now\n"); ++ // *(u64 *)(env->prog->low_guard_region_addr + 16) = 1; ++ // pr_err("oops, back from page fault!\n"); ++ ++ fbpf_log("sfi_bpf space:\n"); ++ fbpf_log("low guard region\t0x%016llx - 0x%016llx\n", ++ env->prog->low_guard_region_addr, env->prog->low_guard_region_addr + guard_page_cnt / 2 * PAGE_SIZE); ++ fbpf_log("map's data\t\t0x%016llx - 0x%016llx\n", ++ env->prog->map_data_addr, env->prog->map_data_addr + map_page_cnt * PAGE_SIZE); ++ fbpf_log("skb\t\t\t0x%016llx - 0x%016llx\n", ++ env->prog->shadow_skb_addr, env->prog->shadow_skb_addr + skb_page_cnt * PAGE_SIZE); ++ fbpf_log("stack\t\t\t0x%016llx - 0x%016llx\n", ++ env->prog->shadow_stack_addr - stack_page_cnt * PAGE_SIZE, env->prog->shadow_stack_addr); ++ fbpf_log("high guard region\t0x%016llx - 0x%016llx\n", ++ env->prog->high_guard_region_addr, env->prog->high_guard_region_addr + guard_page_cnt / 2 * PAGE_SIZE); ++ ++ fbpf_log("prog [%s] func_id = %d: 0x%016llx - 0x%016llx, size = 0x%llx\n", ++ env->prog->aux->name, env->prog->aux->func_idx, ++ (u64)env->prog->shadow_region_addr, ++ (u64)env->prog->shadow_stack_addr, ++ (u64)(total_page_cnt * PAGE_SIZE)); ++ ++ret: ++ if (pages) ++ kfree(pages); ++ return err; ++} ++ ++__printf(2, 3) static void fake_verbose(void *private_data, const char *fmt, ...) ++{ ++ va_list args; ++ ++ va_start(args, fmt); ++ vprintk(fmt, args); ++ va_end(args); ++} ++ ++void dump_insns(struct bpf_prog *prog, int start, int len, const char *prompt) ++{ ++ #ifdef FBPF_LOG_ENABLE ++ int insn_cnt; ++ struct bpf_insn *insn; ++ int i; ++ struct bpf_insn_cbs cbs = { ++ .cb_print = fake_verbose, ++ .private_data = NULL, ++ }; ++ ++ if (unlikely(!prog)) { ++ fbpf_log("ERROR: prog is NULL\n"); ++ return; ++ } ++ ++ if (start + len > prog->len) { ++ fbpf_log("ERROR: print insn from %d to %d is out of bound\n", start, start + len - 1); ++ return; ++ } ++ insn_cnt = len; ++ insn = prog->insnsi + start; ++ ++ if (prompt) ++ printk("[dump insns] --- %s\n", prompt); ++ for (i = 0; i < insn_cnt; i++) { ++ print_bpf_insn(&cbs, insn, false); ++ insn++; ++ } ++ #endif ++} ++ ++int find_origin_insn(struct bpf_insn *insnsi, int len, struct bpf_insn *tar_insn) ++{ ++ int i; ++ struct bpf_insn *cur_insn; ++ ++ for (i = 0; i < len; i++) { ++ cur_insn = &insnsi[i]; ++ if (memcmp(cur_insn, tar_insn, sizeof(struct bpf_insn)) == 0) { ++ return i; ++ } ++ } ++ ++ return -1; ++} ++ ++/** ++ * return: ++ * > 0: patch cnt ++ * = 0: no need to patch ++ * < 0: errno ++ */ ++static inline int form_check_ldst_as_unsafe_ptr(struct bpf_insn *origin_insn, struct bpf_insn *patch, bool reg_as_offset, ++ u64 sfi_region_size, int reg, int *origin_insn_no) ++{ ++ int patch_len; ++ struct bpf_insn modified_origin_insn = *origin_insn; ++ u8 size = BPF_SIZE(origin_insn->code); ++ u8 class = BPF_CLASS(origin_insn->code); ++ ++ pr_info("reg_as_offset %d\n", reg_as_offset); ++ ++ /* lock *(u64 *)(r0 + 0) += 1 */ ++ /* lock *(u64 *)(r0 + 8) += 1 */ ++ if (!reg_as_offset) { ++ patch[0] = BPF_ALU64_IMM(BPF_AND, reg, sfi_region_size - 1); ++ patch[1] = BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE); ++ patch[2] = *origin_insn; ++ ++ *origin_insn_no = 2; ++ patch_len = 3; ++ } else { ++ /* *(u64 *)(r0 + 0) = 0 */ ++ if (origin_insn->off == 0) { ++ patch[0] = BPF_ALU64_IMM(BPF_AND, reg, sfi_region_size - 1); ++ modified_origin_insn.code = class | BPF_REG | size; ++ if (class == BPF_LD || class == BPF_LDX) ++ modified_origin_insn.src_reg = BPF_REG_BASE; ++ if (class == BPF_ST || class == BPF_STX) ++ modified_origin_insn.dst_reg = BPF_REG_BASE; ++ modified_origin_insn.off = reg; ++ patch[1] = modified_origin_insn; ++ ++ *origin_insn_no = 1; ++ patch_len = 2; ++ } ++ /* *(u64 *)(r0 + 8) = 0 */ ++ else { ++ patch[0] = BPF_ALU64_IMM(BPF_AND, reg, sfi_region_size - 1); ++ patch[1] = BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE); ++ patch[2] = *origin_insn; ++ ++ *origin_insn_no = 2; ++ patch_len = 3; ++ } ++ } ++ ++ return patch_len; ++} ++ ++/** ++ * return: ++ * > 0: patch cnt ++ * = 0: no need to patch ++ * < 0: errno ++ */ ++static inline int form_check_ldst_as_offset(struct bpf_insn *origin_insn, struct bpf_insn *patch, bool reg_as_offset, ++ u64 sfi_region_size, int reg, int *origin_insn_no) ++{ ++ int patch_len; ++ struct bpf_insn modified_origin_insn = *origin_insn; ++ u8 size = BPF_SIZE(origin_insn->code); ++ u8 class = BPF_CLASS(origin_insn->code); ++ ++ if (!reg_as_offset) { ++ /* lock *(u64 *)(r0 + 0) += 1 */ ++ /* lock *(u64 *)(r0 + 8) += 1 */ ++ patch[0] = BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE); ++ patch[1] = *origin_insn; ++ ++ *origin_insn_no = 1; ++ patch_len = 2; ++ ++ } else { ++ /* *(u64 *)(r0 + 0) = 0 */ ++ if (origin_insn->off == 0) { ++ modified_origin_insn.code = class | BPF_REG | size; ++ if (class == BPF_LD || class == BPF_LDX) ++ modified_origin_insn.src_reg = BPF_REG_BASE; ++ if (class == BPF_ST || class == BPF_STX) ++ modified_origin_insn.dst_reg = BPF_REG_BASE; ++ modified_origin_insn.off = reg; ++ patch[0] = modified_origin_insn; ++ ++ *origin_insn_no = 0; ++ patch_len = 1; ++ } ++ /* *(u64 *)(r0 + 8) = 0 */ ++ else { ++ patch[0] = BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE); ++ patch[1] = *origin_insn; ++ ++ *origin_insn_no = 1; ++ patch_len = 2; ++ } ++ } ++ ++ return patch_len; ++} ++ ++/** ++ * form a patch according to the insn ++ * v3 means this is optimized twice ++ * @origin_insn: where the instrument point locates at ++ * @check_unit: the sfi check unit ++ * @patch_array: patch will be stored in this array if return code is 0 ++ * @origin_insn_no: the index of origin insn ++ * @sfi_region_size: the size of sfi region ++ * return: ++ * < 0: errno ++ * >= 0: patch_cnt ++ */ ++int form_sfi_check_patch_v3(struct bpf_insn *origin_insn, struct bpf_sfi_check_unit *check_unit, ++ struct bpf_insn *patch_array, int* origin_insn_no, u64 sfi_region_size) ++{ ++ struct bpf_insn patch[16]; ++ int patch_len = 0; ++ enum bpf_sfi_check_type type = check_unit->check_type; ++ int reg = check_unit->reg_no; ++ int i; ++ ++ /** normal case, ++ * 1. and with SFI_REGION_SIZE ++ * 2. if not reg_as_offset ++ * 2.1 or with SFI_REGION_BASE ++ * 2.2 if has off, add off ++ * 2.3 origin insn ++ * 2.4 if has off, sub off ++ * 3. if reg_as_offset ++ * 3.1 if has off, add off ++ * 3.2 replace BPF_LD/BPF_ST to BPF_LDR/BPF_STR ++ * 3.3 if has off, sub off ++ */ ++ if (type == BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR) { ++ bool reg_as_offset = check_unit->reg_as_offset; ++ patch_len = form_check_ldst_as_unsafe_ptr(origin_insn, patch, ++ reg_as_offset, sfi_region_size, reg, origin_insn_no); ++ } ++ /** second case ++ * 1. no need to and again ++ * 2. but need to process off ++ * 3. and replace insn to BPF_LDR/BPF_STR ++ */ ++ else if (type == BPF_SFI_CHECK_LDST_AS_OFFSET) { ++ bool reg_as_offset = check_unit->reg_as_offset; ++ patch_len = form_check_ldst_as_offset(origin_insn, patch, ++ reg_as_offset, sfi_region_size, reg, origin_insn_no); ++ } ++ /** after check helper, ptr is still ptr, but safe ++ * 1. and with SFI_REGION_SIZE ++ * 2. or with SFI_REGION_BASE ++ */ ++ else if (type == BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR) { ++ patch[0] = BPF_ALU64_IMM(BPF_AND, reg, sfi_region_size - 1); ++ patch[1] = BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE); ++ patch[2] = *origin_insn; ++ ++ *origin_insn_no = 2; ++ patch_len = 3; ++ } ++ /** second case ++ * 1. no need to and ++ * 2. just or ++ */ ++ else if (type == BPF_SFI_CHECK_HELPER_AS_OFFSET) { ++ patch[0] = BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE); ++ patch[1] = *origin_insn; ++ ++ *origin_insn_no = 1; ++ patch_len = 2; ++ } ++ /* no need to check again */ ++ else if (type == BPF_SFI_CHECK_HELPER_AS_SAFE_PTR || ++ type == BPF_SFI_CHECK_LDST_AS_SAFE_PTR) { ++ *origin_insn_no = 0; ++ patch_len = 0; ++ } ++ else { ++ pr_err("unresolved case\n"); ++ BUG_ON(1); ++ } ++ ++ if (patch_len > sizeof(patch_array)) ++ return -ENOMEM; ++ ++ for (i = 0; i < patch_len; i++) ++ patch_array[i] = patch[i]; ++ ++ return patch_len; ++} ++ ++int bpf_sfi_check_ldst(struct bpf_verifier_env *env) ++{ ++ struct bpf_prog *prog; ++ struct bpf_insn *insn; ++ int insn_cnt; ++ struct bpf_insn_aux_data *aux; ++ struct bpf_prog *new_prog; ++ int i, cnt, delta = 0; ++ u8 reg; ++ int origin_insn_no; ++ enum bpf_reg_type ptr_type; ++ struct bpf_sfi_check_unit *check_list, *origin_check_list; ++ ++ if (!env) { ++ fbpf_log("env is NULL\n"); ++ return -EFAULT; ++ } ++ prog = env->prog; ++ aux = env->insn_aux_data; ++ ++ if (!prog) { ++ fbpf_log("prog is NULL\n"); ++ return -EFAULT; ++ } ++ insn_cnt = prog->len; ++ ++ insn = prog->insnsi; ++ if (!insn) ++ return 0; ++ ++ /* use i + delta to traverse: insn, aux. */ ++ for (i = 0; i < insn_cnt; i++) { ++ struct bpf_insn_aux_data origin_insn_aux; ++ ++ insn = &prog->insnsi[i + delta]; ++ aux = &env->insn_aux_data[i + delta]; ++ check_list = env->insn_check_lists[i + delta]; ++ ++ if (!aux) { ++ dump_insns(prog, i, 1, "empty aux"); ++ fbpf_log("aux is empty for insn %d", i); ++ return -EFAULT; ++ } ++ origin_insn_aux = *aux; ++ origin_check_list = env->insn_check_lists[i + delta]; ++ ++ /* check optimization */ ++ if (check_list) { ++ struct bpf_sfi_check_unit *p; ++ // u64 offset_bound_mask = (roundup_pow_of_two( ++ // env->prog->total_page_cnt) << PAGE_SHIFT) - 1; ++ u64 sfi_region_size = env->prog->total_page_cnt << PAGE_SHIFT; ++ struct bpf_insn patch[16]; ++ ++ list_for_each_entry(p, &check_list->list_head, list_head) { ++ if (p->check_type != BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR && ++ p->check_type != BPF_SFI_CHECK_LDST_AS_SAFE_PTR && ++ p->check_type != BPF_SFI_CHECK_LDST_AS_OFFSET) ++ continue; ++ ++ reg = p->reg_no; ++ ptr_type = base_type(aux->ptr_type); ++ ++ fbpf_log("%d: check ptr=%d, r%d", i, ptr_type, reg); ++ dump_insns(prog, i + delta, 1, "Ld/st insn to rewrite"); ++ ++ cnt = form_sfi_check_patch_v3(insn, p, patch, &origin_insn_no, ++ sfi_region_size); ++ ++ /* NOTICE: use cnt to decide whether to patch */ ++ if (cnt == 0) ++ continue; ++ ++ new_prog = bpf_patch_insn_data(env, i + delta, patch, cnt); ++ if (!new_prog) { ++ fbpf_log("patch failed\n"); ++ return -ENOMEM; ++ } ++ ++ dump_insns(new_prog, i + delta, cnt, "restore ldst"); ++ ++ env->insn_aux_data[i + delta + origin_insn_no] = origin_insn_aux; ++ env->insn_check_lists[i + delta + origin_insn_no] = origin_check_list; ++ env->prog = prog = new_prog; ++ delta += cnt - 1; ++ } ++ ++ // if (!old_off) { ++ // struct bpf_insn zero_off_patch[] = { ++ // BPF_ALU64_IMM(BPF_AND, reg, offset_bound_mask), ++ // BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE), ++ // *insn, ++ // }; ++ ++ // cnt = ARRAY_SIZE(zero_off_patch); ++ // origin_insn_no = find_origin_insn(zero_off_patch, cnt, insn); ++ ++ // new_prog = bpf_patch_insn_data(env, i + delta, zero_off_patch, cnt); ++ // if (!new_prog) { ++ // fbpf_log("patch failed\n"); ++ // return -ENOMEM; ++ // } ++ ++ // // dump_insns(new_prog, i + delta, cnt, "restore ldst"); ++ ++ // env->insn_aux_data[i + delta + origin_insn_no] = ++ // origin_insn_aux; ++ // env->prog = prog = new_prog; ++ // delta += cnt - 1; ++ // continue; ++ // } else { ++ // struct bpf_insn non_zero_off_patch[] = { ++ // BPF_ALU64_IMM(BPF_ADD, reg, old_off), ++ // BPF_ALU64_IMM(BPF_AND, reg, offset_bound_mask), ++ // BPF_ALU64_REG(BPF_OR, reg, BPF_REG_BASE), ++ // *insn, ++ // BPF_ALU64_IMM(BPF_SUB, reg, old_off), ++ // }; ++ ++ // cnt = ARRAY_SIZE(non_zero_off_patch); ++ // origin_insn_no = find_origin_insn(non_zero_off_patch, cnt, insn); ++ ++ // new_prog = bpf_patch_insn_data(env, i + delta, non_zero_off_patch, cnt); ++ // if (!new_prog) { ++ // fbpf_log("patch failed\n"); ++ // return -ENOMEM; ++ // } ++ ++ // // dump_insns(new_prog, i + delta, cnt, "restore ldst"); ++ ++ // env->insn_aux_data[i + delta + origin_insn_no] = ++ // origin_insn_aux; ++ // env->prog = prog = new_prog; ++ // delta += cnt - 1; ++ // continue; ++ // } ++ } ++ } ++ ++ // dump_insns(env->prog, 0, env->prog->len, "all after restore ldst"); ++ ++ return 0; ++} ++ ++int bpf_sfi_check_helper_args(struct bpf_verifier_env *env) ++{ ++ struct bpf_prog *prog; ++ int insn_cnt; ++ struct bpf_prog *new_prog; ++ int i, cnt, delta = 0; ++ struct bpf_sfi_check_unit *check_list, *origin_check_list; ++ ++ if (!env) { ++ fbpf_log("ERROR: env is NULL\n"); ++ return -EFAULT; ++ } ++ prog = env->prog; ++ ++ if (!prog) { ++ fbpf_log("ERROR: prog is NULL\n"); ++ return -EFAULT; ++ } ++ insn_cnt = prog->len; ++ ++ // dump_insns(prog, 0, prog->len, "before restore_helper_args"); ++ ++ /** ++ * use i + delta to traverse: insn, aux. ++ * in inner loop, do not update the insn and aux. ++ */ ++ for (i = 0; i < insn_cnt; i++) { ++ struct bpf_insn_aux_data origin_insn_aux; ++ int sub_delta = 0; ++ int alpha = 0; ++ struct bpf_insn_aux_data *aux; ++ struct bpf_insn *insn; ++ ++ insn = &prog->insnsi[i + delta + alpha]; ++ aux = &env->insn_aux_data[i + delta + alpha]; ++ check_list = env->insn_check_lists[i + delta + alpha]; ++ if (!aux) { ++ dump_insns(prog, i, 1, "empty aux"); ++ fbpf_log("ERROR: aux is empty for insn %d\n", i); ++ return -EFAULT; ++ } ++ origin_insn_aux = *aux; ++ origin_check_list = env->insn_check_lists[i + delta + alpha]; ++ ++ /* check optimization */ ++ if (check_list) { ++ int func_id = insn->imm; ++ struct bpf_sfi_check_unit *p; ++ // u64 offset_bound_mask = (roundup_pow_of_two( ++ // env->prog->total_page_cnt) << PAGE_SHIFT) - 1; ++ u64 sfi_region_size = env->prog->total_page_cnt << PAGE_SHIFT; ++ struct bpf_insn patch[16]; ++ ++ list_for_each_entry(p, &check_list->list_head, list_head) { ++ int origin_insn_no; ++ int reg_no = p->reg_no; ++ enum bpf_reg_type arg_type = aux->arg_reg_type[reg_no - 1]; ++ insn = &prog->insnsi[i + delta + alpha]; ++ aux = &env->insn_aux_data[i + delta + alpha]; ++ ++ // struct bpf_insn patch[] = { ++ // BPF_ALU64_IMM(BPF_AND, reg_no, offset_bound_mask), ++ // BPF_ALU64_REG(BPF_OR, reg_no, BPF_REG_BASE), ++ // *insn, ++ // }; ++ ++ if (p->check_type != BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR && ++ p->check_type != BPF_SFI_CHECK_HELPER_AS_SAFE_PTR && ++ p->check_type != BPF_SFI_CHECK_HELPER_AS_OFFSET) ++ break; ++ ++ cnt = form_sfi_check_patch_v3(insn, p, patch, &origin_insn_no, ++ sfi_region_size); ++ ++ /* NOTICE: use cnt to decide whether to patch */ ++ if (cnt == 0) ++ continue; ++ ++ // cnt = ARRAY_SIZE(patch); ++ // origin_insn_no = find_origin_insn(patch, cnt, insn); ++ ++ fbpf_log("patch %d(%d): helper func=%d, \ ++restore arg r%d, type=%d, cnt=%d, alpha=%d\n", ++ i + delta + alpha, i, func_id, reg_no, ++ arg_type, cnt, alpha); ++ ++ new_prog = bpf_patch_insn_data(env, i + delta + alpha, ++ patch, cnt); ++ if (!new_prog) { ++ fbpf_log("ERROR: patch failed\n"); ++ return -ENOMEM; ++ } ++ ++ dump_insns(new_prog, i + delta + alpha, ++ cnt, "restore stack ptr arg"); ++ ++ env->insn_aux_data[i + delta + alpha + origin_insn_no] = origin_insn_aux; ++ env->insn_check_lists[i + delta + alpha + origin_insn_no] = origin_check_list; ++ env->prog = prog = new_prog; ++ ++ sub_delta += cnt - 1; ++ alpha += origin_insn_no; ++ } ++ ++ delta += sub_delta; ++ } ++ } ++ ++ return 0; ++} ++ ++int bpf_record_used_pages(u64 start_addr, u64 end_addr, ++ struct mutex *write_mutex, struct list_head *head) ++{ ++ int cpu; ++ u64 page_addr = start_addr; ++ int mmapable_page_cnt = 0; ++ ++ while (page_addr < end_addr) { ++ for_each_possible_cpu(cpu) { ++ struct page *physic_page; ++ void *ptr; ++ struct bpf_used_page* new_page; ++ ++ ptr = per_cpu_ptr((void *)page_addr, cpu); ++ if (is_vmalloc_addr(ptr)) { ++ physic_page = vmalloc_to_page(ptr); ++ } else { ++ physic_page = virt_to_page(ptr); ++ } ++ if (!physic_page) { ++ pr_err("cannot find physic page for %016llx\n", page_addr); ++ return -ENOENT; ++ } ++ new_page = kzalloc(sizeof(*new_page), GFP_KERNEL); ++ new_page->physic_page = physic_page; ++ ++ mutex_lock(write_mutex); ++ // printk("virt addr=%016llx\n", (u64)ptr); ++ list_add(&new_page->list_head, head); ++ mmapable_page_cnt++; ++ mutex_unlock(write_mutex); ++ } ++ page_addr += PAGE_SIZE; ++ } ++ ++ return mmapable_page_cnt; ++} ++ ++int bpf_sfi_tmp_check(struct bpf_verifier_env *env) ++{ ++ struct bpf_prog *prog; ++ struct bpf_insn *insn; ++ int insn_cnt; ++ struct bpf_insn_aux_data *aux; ++ int i; ++ struct bpf_sfi_check_unit *check_list; ++ ++ if (!env) { ++ fbpf_log("env is NULL\n"); ++ return -EFAULT; ++ } ++ prog = env->prog; ++ aux = env->insn_aux_data; ++ ++ if (!prog) { ++ fbpf_log("prog is NULL\n"); ++ return -EFAULT; ++ } ++ insn_cnt = prog->len; ++ ++ insn = prog->insnsi; ++ if (!insn) ++ return 0; ++ ++ for (i = 0; i < insn_cnt; i++) { ++ insn = &prog->insnsi[i]; ++ aux = &env->insn_aux_data[i]; ++ check_list = env->insn_check_lists[i]; ++ ++ if (!aux) { ++ dump_insns(prog, i, 1, "empty aux"); ++ fbpf_log("aux is empty for insn %d", i); ++ return -EFAULT; ++ } ++ ++ /* check optimization */ ++ if (check_list) { ++ struct bpf_sfi_check_unit *p; ++ char check_type[128]; ++ ++ mutex_lock(&env->insn_check_list_mutex); ++ list_for_each_entry(p, &check_list->list_head, list_head) { ++ switch (p->check_type) { ++ case BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR: ++ if (insn->off == 0) ++ strcpy(check_type, "BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR"); ++ else ++ strcpy(check_type, "BPF_SFI_CHECK_LDST_OFFSET_AS_UNSAFE_PTR");; ++ break; ++ case BPF_SFI_CHECK_LDST_AS_SAFE_PTR: ++ if (insn->off == 0) ++ strcpy(check_type, "BPF_SFI_CHECK_LDST_AS_SAFE_PTR"); ++ else ++ strcpy(check_type, "BPF_SFI_CHECK_LDST_OFFSET_AS_SAFE_PTR");; ++ break; ++ case BPF_SFI_CHECK_LDST_AS_OFFSET: ++ if (insn->off == 0) ++ strcpy(check_type, "BPF_SFI_CHECK_LDST_AS_OFFSET"); ++ else ++ strcpy(check_type, "BPF_SFI_CHECK_LDST_OFFSET_AS_OFFSET");; ++ break; ++ case BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR: ++ strcpy(check_type, "BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR"); ++ break; ++ case BPF_SFI_CHECK_HELPER_AS_SAFE_PTR: ++ strcpy(check_type, "BPF_SFI_CHECK_HELPER_AS_SAFE_PTR"); ++ break; ++ case BPF_SFI_CHECK_HELPER_AS_OFFSET: ++ strcpy(check_type, "BPF_SFI_CHECK_HELPER_AS_OFFSET"); ++ break; ++ } ++ fbpf_log("%d: reg %d, check type %s\n", i, p->reg_no, check_type); ++ } ++ mutex_unlock(&env->insn_check_list_mutex); ++ } ++ } ++ ++ return 0; ++} ++ ++static inline bool is_LDST_insn(struct bpf_insn *insn) ++{ ++ u8 class = BPF_CLASS(insn->code); ++ ++ if (class == BPF_LD || class == BPF_LDX || class == BPF_ST || class == BPF_STX) ++ return true; ++ else ++ return false; ++} ++ ++static inline bool is_HELPER_insn(struct bpf_insn *insn) ++{ ++ u8 class = BPF_CLASS(insn->code); ++ u8 op = BPF_OP(insn->code); ++ ++ if ((class == BPF_JMP || class == BPF_JMP32) && ++ op == BPF_CALL && ++ insn->src_reg != BPF_PSEUDO_CALL) ++ return true; ++ else ++ return false; ++} ++ ++static char *bpf_sfi_check_type_strs[] = { ++ [BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR] = "BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR", ++ [BPF_SFI_CHECK_HELPER_AS_SAFE_PTR] = "BPF_SFI_CHECK_HELPER_AS_SAFE_PTR", ++ [BPF_SFI_CHECK_HELPER_AS_OFFSET] = "BPF_SFI_CHECK_HELPER_AS_OFFSET", ++ [BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR] = "BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR", ++ [BPF_SFI_CHECK_LDST_AS_SAFE_PTR] = "BPF_SFI_CHECK_LDST_AS_SAFE_PTR", ++ [BPF_SFI_CHECK_LDST_AS_OFFSET] = "BPF_SFI_CHECK_LDST_AS_OFFSET", ++}; ++ ++/** ++ * return a link list, each element mark a check of a reg need to be done. ++ * Ex: ++ * - { reg_0, CHECK_LDST } -> NULL ++ * - { reg_3, CHEKC_HELPER } -> { reg_2, CHECK_MODIFIED } -> { reg_1, CHECK_NONE } ++ * ++ */ ++struct bpf_sfi_check_unit *bpf_sfi_get_check_list(struct bpf_verifier_env *env, struct bpf_insn *insn, struct bpf_reg_state *regs) ++{ ++ if (is_LDST_insn(insn)) { ++ enum bpf_reg_type ptr_type; ++ int reg_no; ++ struct bpf_sfi_check_unit *check_list, *new_unit; ++ bool reg_as_offset; ++ u8 mode; ++ ++ if (BPF_CLASS(insn->code) == BPF_LD || ++ BPF_CLASS(insn->code) == BPF_LDX) ++ reg_no = insn->src_reg; ++ else ++ reg_no = insn->dst_reg; ++ ++ ptr_type = base_type(regs[reg_no].type); ++ if (ptr_type != PTR_TO_STACK && ++ ptr_type != PTR_TO_MAP_VALUE && ++ ptr_type != PTR_TO_PACKET) { ++ // fbpf_log("%d: ignore ptr=%d, r%d", i, ptr_type, reg); ++ return NULL; ++ } ++ ++ mode = BPF_MODE(insn->code); ++ switch (mode) { ++ case BPF_MEM: ++ reg_as_offset = true; ++ break; ++ case BPF_XADD: ++ case BPF_IMM: ++ reg_as_offset = false; ++ break; ++ default: ++ pr_err("unprocessed mode %d\n", mode); ++ return ERR_PTR(ENOTSUPP); ++ } ++ ++ check_list = (struct bpf_sfi_check_unit *)kzalloc(sizeof(struct bpf_sfi_check_unit), GFP_KERNEL); ++ INIT_LIST_HEAD(&check_list->list_head); ++ ++ new_unit = (struct bpf_sfi_check_unit *)kzalloc(sizeof(struct bpf_sfi_check_unit), GFP_KERNEL); ++ INIT_LIST_HEAD(&new_unit->list_head); ++ new_unit->reg_no = reg_no; ++ new_unit->reg_as_offset = reg_as_offset; ++ ++ if (regs[reg_no].sfi_check_state == BPF_SFI_UNSAFE_PTR) { ++ new_unit->check_type = BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR; ++ } ++ else if (regs[reg_no].sfi_check_state == BPF_SFI_SAFE_PTR) { ++ new_unit->check_type = BPF_SFI_CHECK_LDST_AS_SAFE_PTR; ++ } ++ else { ++ new_unit->check_type = BPF_SFI_CHECK_LDST_AS_OFFSET; ++ } ++ ++ if (insn->off == 0) { ++ if (new_unit->check_type == BPF_SFI_CHECK_LDST_AS_UNSAFE_PTR || ++ new_unit->check_type == BPF_SFI_CHECK_LDST_AS_OFFSET) { ++ if (reg_as_offset) ++ new_unit->proposed_state = BPF_SFI_OFFSET; ++ else ++ new_unit->proposed_state = BPF_SFI_SAFE_PTR; ++ } ++ else ++ new_unit->proposed_state = BPF_SFI_SAFE_PTR; ++ } else { ++ new_unit->proposed_state = BPF_SFI_SAFE_PTR; ++ } ++ ++ list_add(&new_unit->list_head, &check_list->list_head); ++ fbpf_log("%d: add %s check point\n", insn - env->prog->insnsi, ++ bpf_sfi_check_type_strs[new_unit->check_type]); ++ ++ return check_list; ++ } ++ else if (is_HELPER_insn(insn)) { ++ const struct bpf_func_proto *fn; ++ int arg, reg_no; ++ enum bpf_reg_type arg_reg_type; ++ struct bpf_sfi_check_unit *bpf_sfi_check_list; ++ ++ if (unlikely(!env->ops->get_func_proto)) { ++ pr_err("ERROR: unsupport helper\n"); ++ return ERR_PTR(ENOENT); ++ } ++ fn = env->ops->get_func_proto(insn->imm, env->prog); ++ if (!fn) { ++ pr_err("ERROR: unknown helper type\n"); ++ return ERR_PTR(ENOENT); ++ } ++ ++ bpf_sfi_check_list = (struct bpf_sfi_check_unit *)kzalloc(sizeof(struct bpf_sfi_check_unit), GFP_KERNEL); ++ INIT_LIST_HEAD(&bpf_sfi_check_list->list_head); ++ ++ for (arg = 0; arg < 5; arg++) { ++ reg_no = arg + 1; ++ /* here use mapped actual reg type, not formal arg type */ ++ arg_reg_type = base_type(regs[reg_no].type); ++ ++ fbpf_log("%d: arg%d_type = %d\n", insn - env->prog->insnsi, reg_no, arg_reg_type); ++ ++ if (arg_reg_type == PTR_TO_STACK || ++ arg_reg_type == PTR_TO_MAP_VALUE || ++ arg_reg_type == PTR_TO_PACKET) { ++ struct bpf_sfi_check_unit *check_unit = (struct bpf_sfi_check_unit *)kzalloc(sizeof(struct bpf_sfi_check_unit), GFP_KERNEL); ++ INIT_LIST_HEAD(&check_unit->list_head); ++ check_unit->reg_no = reg_no; ++ ++ if (regs[reg_no].sfi_check_state == BPF_SFI_UNSAFE_PTR) { ++ check_unit->check_type = BPF_SFI_CHECK_HELPER_AS_UNSAFE_PTR; ++ } ++ else if (regs[reg_no].sfi_check_state == BPF_SFI_SAFE_PTR) { ++ check_unit->check_type = BPF_SFI_CHECK_HELPER_AS_SAFE_PTR; ++ } ++ else { ++ check_unit->check_type = BPF_SFI_CHECK_HELPER_AS_OFFSET; ++ } ++ ++ check_unit->proposed_state = BPF_SFI_SAFE_PTR; ++ ++ list_add(&check_unit->list_head, &bpf_sfi_check_list->list_head); ++ fbpf_log("%d: add %s check point\n", insn - env->prog->insnsi, ++ bpf_sfi_check_type_strs[check_unit->check_type]); ++ } ++ } ++ ++ return bpf_sfi_check_list; ++ } ++ else { ++ return NULL; ++ } ++} ++ ++int bpf_sfi_hook_kernel_fault(u64 addr) ++{ ++ pte_t *ptep; ++ ++ ptep = get_ptep(addr); ++ if (IS_ERR(ptep)) ++ return PTR_ERR(ptep); ++ ++ if (pte_val(*ptep) & PTE_BPF_SFI_GP) { ++ return true; ++ } ++ else ++ return false; ++} +\ No newline at end of file +diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c +index 4f60168ce175..85b9fb183d04 100644 +--- a/kernel/bpf/verifier.c ++++ b/kernel/bpf/verifier.c +@@ -23,6 +23,9 @@ + #include + #include + #include ++#ifdef CONFIG_HIVE ++#include ++#endif + + #include "disasm.h" + +@@ -3045,6 +3048,10 @@ static int __check_mem_access(struct bpf_verifier_env *env, int regno, + mem_size, off, size); + break; + case PTR_TO_PACKET: ++ #ifdef CONFIG_HIVE ++ /* loose this check */ ++ return 0; ++ #endif + case PTR_TO_PACKET_META: + case PTR_TO_PACKET_END: + verbose(env, "invalid access to packet, off=%d size=%d, R%d(id=%d,off=%d,r=%d)\n", +@@ -5619,6 +5626,9 @@ static int check_helper_call(struct bpf_verifier_env *env, int func_id, int insn + struct bpf_call_arg_meta meta; + bool changes_data; + int i, err; ++ #ifdef CONFIG_HIVE ++ struct bpf_insn_aux_data *aux = &env->insn_aux_data[insn_idx]; ++ #endif + + /* find function prototype */ + if (func_id < 0 || func_id >= __BPF_FUNC_MAX_ID) { +@@ -5706,6 +5716,12 @@ static int check_helper_call(struct bpf_verifier_env *env, int func_id, int insn + } + + regs = cur_regs(env); ++ #ifdef CONFIG_HIVE ++ /* fbpf record real arg type of helper call */ ++ for (i = 0; i < 5; i++) { ++ aux->arg_reg_type[i] = regs[i + 1].type; ++ } ++ #endif + + /* check that flags argument in get_local_storage(map, flags) is 0, + * this is required because get_local_storage() can't return an error. +@@ -9726,7 +9742,7 @@ static int propagate_liveness(struct bpf_verifier_env *env, + return -EFAULT; + } + /* Propagate read liveness of registers... */ +- BUILD_BUG_ON(BPF_REG_FP + 1 != MAX_BPF_REG); ++ BUILD_BUG_ON(BPF_REG_FP + 2 != MAX_BPF_REG); + for (frame = 0; frame <= vstate->curframe; frame++) { + parent = vparent->frame[frame]; + state = vstate->frame[frame]; +@@ -10072,11 +10088,19 @@ static int do_check(struct bpf_verifier_env *env) + int insn_cnt = env->prog->len; + bool do_print_state = false; + int prev_insn_idx = -1; ++ #ifdef CONFIG_HIVE ++ struct bpf_reg_state regs_before[MAX_BPF_REG]; ++ int i; ++ struct bpf_sfi_check_unit *check_list; ++ #endif + + for (;;) { + struct bpf_insn *insn; + u8 class; + int err; ++ #ifdef CONFIG_HIVE ++ bool updated[MAX_BPF_REG] = {false}; ++ #endif + + env->prev_insn_idx = prev_insn_idx; + if (env->insn_idx >= insn_cnt) { +@@ -10152,6 +10176,15 @@ static int do_check(struct bpf_verifier_env *env) + regs = cur_regs(env); + sanitize_mark_insn_seen(env); + prev_insn_idx = env->insn_idx; ++ #ifdef CONFIG_HIVE ++ /* fbpf: compare regs_before and regs to get which regs are changed */ ++ memcpy(regs_before, regs, sizeof(struct bpf_reg_state) * MAX_BPF_REG); ++ ++ /* fbpf: used to form check list of vulnerable insns */ ++ check_list = bpf_sfi_get_check_list(env, insn, regs); ++ if (IS_ERR(check_list)) ++ return PTR_ERR(check_list); ++ #endif + + if (class == BPF_ALU || class == BPF_ALU64) { + err = check_alu_op(env, insn); +@@ -10211,8 +10244,24 @@ static int do_check(struct bpf_verifier_env *env) + err = check_xadd(env, env->insn_idx, insn); + if (err) + return err; ++ #ifdef CONFIG_HIVE ++ /* save register type */ ++ dst_reg_type = regs[insn->dst_reg].type; ++ prev_dst_type = &env->insn_aux_data[env->insn_idx].ptr_type; ++ ++ if (*prev_dst_type == NOT_INIT) { ++ *prev_dst_type = dst_reg_type; ++ } else if (reg_type_mismatch(dst_reg_type, *prev_dst_type)) { ++ verbose(env, "same insn cannot be used with different pointers\n"); ++ return -EINVAL; ++ } ++ #endif + env->insn_idx++; ++ #ifdef CONFIG_HIVE ++ goto next_insn; ++ #else + continue; ++ #endif + } + + /* check src1 operand */ +@@ -10306,7 +10355,11 @@ static int do_check(struct bpf_verifier_env *env) + } + + env->insn_idx += insn->off + 1; ++ #ifdef CONFIG_HIVE ++ goto next_insn; ++ #else + continue; ++ #endif + + } else if (opcode == BPF_EXIT) { + if (BPF_SRC(insn->code) != BPF_K || +@@ -10329,7 +10382,11 @@ static int do_check(struct bpf_verifier_env *env) + if (err) + return err; + do_print_state = true; ++ #ifdef CONFIG_HIVE ++ goto next_insn; ++ #else + continue; ++ #endif + } + + err = check_reference_leak(env); +@@ -10349,7 +10406,11 @@ static int do_check(struct bpf_verifier_env *env) + break; + } else { + do_print_state = true; ++ #ifdef CONFIG_HIVE ++ goto next_insn; ++ #else + continue; ++ #endif + } + } else { + err = check_cond_jmp_op(env, insn, &env->insn_idx); +@@ -10358,6 +10419,9 @@ static int do_check(struct bpf_verifier_env *env) + } + } else if (class == BPF_LD) { + u8 mode = BPF_MODE(insn->code); ++ #ifdef CONFIG_HIVE ++ enum bpf_reg_type src_reg_type, *prev_src_type; ++ #endif + + if (mode == BPF_ABS || mode == BPF_IND) { + err = check_ld_abs(env, insn); +@@ -10375,12 +10439,68 @@ static int do_check(struct bpf_verifier_env *env) + verbose(env, "invalid BPF_LD mode\n"); + return -EINVAL; + } ++ #ifdef CONFIG_HIVE ++ src_reg_type = regs[insn->src_reg].type; ++ prev_src_type = &env->insn_aux_data[env->insn_idx].ptr_type; ++ ++ if (*prev_src_type == NOT_INIT) { ++ /* saw a valid insn ++ * dst_reg = *(u32 *)(src_reg + off) ++ * save type to validate intersecting paths ++ */ ++ *prev_src_type = src_reg_type; ++ } else if (reg_type_mismatch(src_reg_type, *prev_src_type)) { ++ /* ABuser program is trying to use the same insn ++ * dst_reg = *(u32*) (src_reg + off) ++ * with different pointer types: ++ * src_reg == ctx in one branch and ++ * src_reg == stack|map in some other branch. ++ * Reject it. ++ */ ++ verbose(env, "same insn cannot be used with different pointers\n"); ++ return -EINVAL; ++ } ++ #endif + } else { + verbose(env, "unknown insn class %d\n", class); + return -EINVAL; + } + + env->insn_idx++; ++#ifdef CONFIG_HIVE ++next_insn: ++ if (check_list) { ++ struct bpf_sfi_check_unit *p; ++ list_for_each_entry(p, &check_list->list_head, list_head) { ++ int reg_no = p->reg_no; ++ regs[reg_no].sfi_check_state = p->proposed_state; ++ updated[reg_no] = true; ++ } ++ ++ if (!env->insn_check_lists[prev_insn_idx]) { ++ // fbpf_log("update into %d\n", prev_insn_idx); ++ env->insn_check_lists[prev_insn_idx] = check_list; ++ } ++ } ++ ++ for (i = 0; i < MAX_BPF_REG; i++) { ++ // if (base_type(regs_before[i].type) == PTR_TO_STACK) ++ // continue; ++ /* reg move from src to dst, use src_reg's check_state */ ++ if (insn->code == (BPF_ALU64 | BPF_MOV | BPF_X)) ++ continue; ++ /* use check_list proposed state if have */ ++ if (updated[i]) ++ continue; ++ /* if reg changed, reset sfi_check state */ ++ if (memcmp(regs_before + i, regs + i, sizeof(struct bpf_reg_state))) { ++ regs[i].sfi_check_state = BPF_SFI_UNSAFE_PTR; ++ } ++ } ++ ++ // fbpf_log("debugging insn %d", prev_insn_idx); ++ // bpf_sfi_tmp_check(env); ++#endif + } + + return 0; +@@ -10695,8 +10815,18 @@ static int resolve_pseudo_ldimm64(struct bpf_verifier_env *env) + addr += off; + } + ++ #ifdef CONFIG_HIVE ++ if (insn[0].src_reg == BPF_PSEUDO_MAP_VALUE) { ++ fbpf_log("%d: skip BPF_PSEUDO_MAP_VALUE insn\n", i); ++ goto reserve_imm; ++ } ++ #endif ++ + insn[0].imm = (u32)addr; + insn[1].imm = addr >> 32; ++#ifdef CONFIG_HIVE ++reserve_imm: ++#endif + + /* check whether we recorded this map already */ + for (j = 0; j < env->used_map_cnt; j++) { +@@ -10750,6 +10880,149 @@ static int resolve_pseudo_ldimm64(struct bpf_verifier_env *env) + return 0; + } + ++#ifdef CONFIG_HIVE ++static int resolve_pseudo_ldimm64_again(struct bpf_verifier_env *env) ++{ ++ struct bpf_insn *insn = env->prog->insnsi; ++ int insn_cnt = env->prog->len; ++ int i, j, err; ++ ++ err = bpf_prog_calc_tag(env->prog); ++ if (err) ++ return err; ++ ++ for (i = 0; i < insn_cnt; i++, insn++) { ++ if (insn[0].code == (BPF_LD | BPF_IMM | BPF_DW)) { ++ struct bpf_insn_aux_data *aux; ++ struct bpf_map *map; ++ struct fd f; ++ u64 addr; ++ u32 fd; ++ ++ if (insn[0].src_reg == 0) ++ /* valid generic load 64-bit imm */ ++ goto next_insn; ++ ++ /* In final convert_pseudo_ld_imm64() step, this is ++ * converted into regular 64-bit imm load insn. ++ */ ++ switch (insn[0].src_reg) { ++ case BPF_PSEUDO_MAP_VALUE: ++ break; ++ default: ++ goto next_insn; ++ } ++ ++ fd = insn[0].imm; ++ ++ f = fdget(fd); ++ map = __bpf_map_get(f); ++ if (IS_ERR(map)) { ++ verbose(env, "fd %d is not pointing to valid bpf_map\n", ++ insn[0].imm); ++ return PTR_ERR(map); ++ } ++ ++ err = check_map_prog_compatibility(env, map, env->prog); ++ if (err) { ++ fdput(f); ++ return err; ++ } ++ ++ aux = &env->insn_aux_data[i]; ++ if (insn[0].src_reg == BPF_PSEUDO_MAP_FD) { ++ addr = (unsigned long)map; ++ goto next_insn; ++ } else { ++ u32 off = insn[1].imm; ++ ++ /* do this after aggregation */ ++ if (!env->prog->shadow_region_addr) { ++ pr_err("bpf sfi aggregate memory failed\n"); ++ return -EINVAL; ++ } ++ ++ if (off >= BPF_MAX_VAR_OFF) { ++ verbose(env, "direct value offset of %u is not allowed\n", off); ++ fdput(f); ++ return -EINVAL; ++ } ++ ++ if (!map->ops->map_direct_value_addr) { ++ verbose(env, "no direct value access support for this map type\n"); ++ fdput(f); ++ return -EINVAL; ++ } ++ ++ err = map->ops->map_direct_value_addr(map, &addr, off); ++ if (err) { ++ verbose(env, "invalid access to map value pointer, value_size=%u off=%u\n", ++ map->value_size, off); ++ fdput(f); ++ return err; ++ } ++ ++ aux->map_off = off; ++ addr += off; ++ aux->extra_map_ptr = (u64)map; ++ } ++ ++ insn[0].imm = (u32)addr; ++ insn[1].imm = addr >> 32; ++ ++ /* check whether we recorded this map already */ ++ for (j = 0; j < env->used_map_cnt; j++) { ++ if (env->used_maps[j] == map) { ++ aux->map_index = j; ++ fdput(f); ++ goto next_insn; ++ } ++ } ++ ++ if (env->used_map_cnt >= MAX_USED_MAPS) { ++ fdput(f); ++ return -E2BIG; ++ } ++ ++ /* hold the map. If the program is rejected by verifier, ++ * the map will be released by release_maps() or it ++ * will be used by the valid program until it's unloaded ++ * and all maps are released in free_used_maps() ++ */ ++ bpf_map_inc(map); ++ ++ aux->map_index = env->used_map_cnt; ++ env->used_maps[env->used_map_cnt++] = map; ++ ++ if (bpf_map_is_cgroup_storage(map) && ++ bpf_cgroup_storage_assign(env->prog->aux, map)) { ++ verbose(env, "only one cgroup storage of each type is allowed\n"); ++ fdput(f); ++ return -EBUSY; ++ } ++ ++ fdput(f); ++next_insn: ++ insn++; ++ i++; ++ continue; ++ } ++ ++ /* Basic sanity check before we invest more work here. */ ++ if (!bpf_opcode_in_insntable(insn->code)) { ++ verbose(env, "unknown opcode %02x\n", insn->code); ++ return -EINVAL; ++ } ++ } ++ ++ /* now all pseudo BPF_LD_IMM64 instructions load valid ++ * 'struct bpf_map *' into a register instead of user map_fd. ++ * These pointers will be used later by verifier to validate map access. ++ */ ++ return 0; ++} ++#endif ++ + /* drop refcnt of maps used by the rejected program */ + static void release_maps(struct bpf_verifier_env *env) + { +@@ -10805,6 +11078,26 @@ static void adjust_insn_aux_data(struct bpf_verifier_env *env, + vfree(old_data); + } + ++#ifdef CONFIG_HIVE ++static void adjust_insn_check_lists(struct bpf_verifier_env *env, ++ struct bpf_sfi_check_unit **new_check_lists, ++ struct bpf_prog *new_prog, u32 off, u32 cnt) ++{ ++ struct bpf_sfi_check_unit **old_check_lists = env->insn_check_lists; ++ u32 prog_len; ++ ++ if (cnt == 1) ++ return; ++ prog_len = new_prog->len; ++ ++ memcpy(new_check_lists, old_check_lists, sizeof(struct bpf_insn_check_unit *) * off); ++ memcpy(new_check_lists + off + cnt - 1, old_check_lists + off, ++ sizeof(struct bpf_insn_check_unit *) * (prog_len - off - cnt + 1)); ++ env->insn_check_lists = new_check_lists; ++ vfree(old_check_lists); ++} ++#endif ++ + static void adjust_subprog_starts(struct bpf_verifier_env *env, u32 off, u32 len) + { + int i; +@@ -10833,17 +11126,31 @@ static void adjust_poke_descs(struct bpf_prog *prog, u32 off, u32 len) + } + } + ++#ifdef CONFIG_HIVE ++struct bpf_prog *bpf_patch_insn_data(struct bpf_verifier_env *env, u32 off, ++ const struct bpf_insn *patch, u32 len) ++#else + static struct bpf_prog *bpf_patch_insn_data(struct bpf_verifier_env *env, u32 off, + const struct bpf_insn *patch, u32 len) ++#endif + { + struct bpf_prog *new_prog; + struct bpf_insn_aux_data *new_data = NULL; ++ #ifdef CONFIG_HIVE ++ struct bpf_sfi_check_unit **new_check_lists = NULL; ++ #endif + + if (len > 1) { + new_data = vzalloc(array_size(env->prog->len + len - 1, + sizeof(struct bpf_insn_aux_data))); + if (!new_data) + return NULL; ++ #ifdef CONFIG_HIVE ++ new_check_lists = vzalloc(array_size(env->prog->len + len - 1, ++ sizeof(struct bpf_sfi_check_unit *))); ++ if (!new_check_lists) ++ return NULL; ++ #endif + } + + new_prog = bpf_patch_insn_single(env->prog, off, patch, len); +@@ -10856,6 +11163,9 @@ static struct bpf_prog *bpf_patch_insn_data(struct bpf_verifier_env *env, u32 of + return NULL; + } + adjust_insn_aux_data(env, new_data, new_prog, off, len); ++ #ifdef CONFIG_HIVE ++ adjust_insn_check_lists(env, new_check_lists, new_prog, off, len); ++ #endif + adjust_subprog_starts(env, off, len); + adjust_poke_descs(new_prog, off, len); + return new_prog; +@@ -11490,6 +11800,10 @@ static int jit_subprogs(struct bpf_verifier_env *env) + } + func[i]->aux->num_exentries = num_exentries; + func[i]->aux->tail_call_reachable = env->subprog_info[i].tail_call_reachable; ++ #ifdef CONFIG_HIVE ++ func[i]->shadow_stack_addr = env->prog->shadow_stack_addr; ++ func[i]->shadow_region_addr = env->prog->shadow_region_addr; ++ #endif + func[i] = bpf_int_jit_compile(func[i]); + if (!func[i]->jited) { + err = -ENOTSUPP; +@@ -12625,6 +12939,12 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, + len = (*prog)->len; + env->insn_aux_data = + vzalloc(array_size(sizeof(struct bpf_insn_aux_data), len)); ++ #ifdef CONFIG_HIVE ++ env->insn_check_lists = vzalloc(array_size(sizeof(struct bpf_sfi_check_unit *), len)); ++ for (i = 0; i < len; i++) ++ env->insn_check_lists[i] = NULL; ++ mutex_init(&env->insn_check_list_mutex); ++ #endif + ret = -ENOMEM; + if (!env->insn_aux_data) + goto err_free_env; +@@ -12716,6 +13036,36 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, + + if (ret == 0 && bpf_prog_is_dev_bound(env->prog->aux)) + ret = bpf_prog_offload_finalize(env); ++ ++ #ifdef CONFIG_HIVE ++ /* bpf_sfi aggregate and check is after bpf_check, if skip full_check, ++ bpf_sfi checks are skipped either */ ++ fbpf_log("bpf_check finished\n"); ++ dump_insns(env->prog, 0, env->prog->len, "after do_check"); ++ ++ if (ret == 0) ++ ret = bpf_sfi_tmp_check(env); ++ ++ // TODO unmap shadow data ++ /* fbpf aggregate values and caculate shadow stack addr */ ++ if (ret == 0) ++ ret = bpf_sfi_aggregate_memory(env); ++ ++ if (ret == 0) ++ ret = resolve_pseudo_ldimm64_again(env); ++ ++ if (ret == 0) ++ ret = bpf_sfi_check_ldst(env); ++ ++ if (ret == 0) ++ ret = bpf_sfi_check_helper_args(env); ++ ++ dump_insns(env->prog, 0, env->prog->len, "after bpf_sfi_checks"); ++ ++ fbpf_log("bpf_sfi_check finished\n"); ++ ++ pr_info("[%s] bpf insn len = %d\n", env->prog->aux->name, env->prog->len); ++ #endif + + skip_full_check: + kvfree(env->explored_states); +diff --git a/kernel/cred.c b/kernel/cred.c +index 421b1149c651..0b7d72dd9f2b 100644 +--- a/kernel/cred.c ++++ b/kernel/cred.c +@@ -17,6 +17,12 @@ + #include + #include + ++#ifdef CONFIG_CREDP ++#include ++#include ++#include ++#endif ++ + #if 0 + #define kdebug(FMT, ...) \ + printk("[%-5.5s%5u] " FMT "\n", \ +@@ -30,7 +36,14 @@ do { \ + } while (0) + #endif + ++#ifdef CONFIG_IEE ++struct kmem_cache *cred_jar; ++#ifdef CONFIG_CREDP ++static struct kmem_cache *rcu_jar; ++#endif ++#else + static struct kmem_cache *cred_jar; ++#endif + + /* init to 2 - one for init_task, one to ensure it is never freed */ + struct group_info init_groups = { .usage = ATOMIC_INIT(2) }; +@@ -38,6 +51,31 @@ struct group_info init_groups = { .usage = ATOMIC_INIT(2) }; + /* + * The initial credentials for the initial task + */ ++#ifdef CONFIG_CREDP ++struct cred init_cred __section(".iee.cred") = { ++ .usage = ATOMIC_INIT(4), ++#ifdef CONFIG_DEBUG_CREDENTIALS ++ .subscribers = ATOMIC_INIT(2), ++ .magic = CRED_MAGIC, ++#endif ++ .uid = GLOBAL_ROOT_UID, ++ .gid = GLOBAL_ROOT_GID, ++ .suid = GLOBAL_ROOT_UID, ++ .sgid = GLOBAL_ROOT_GID, ++ .euid = GLOBAL_ROOT_UID, ++ .egid = GLOBAL_ROOT_GID, ++ .fsuid = GLOBAL_ROOT_UID, ++ .fsgid = GLOBAL_ROOT_GID, ++ .securebits = SECUREBITS_DEFAULT, ++ .cap_inheritable = CAP_EMPTY_SET, ++ .cap_permitted = CAP_FULL_SET, ++ .cap_effective = CAP_FULL_SET, ++ .cap_bset = CAP_FULL_SET, ++ .user = INIT_USER, ++ .user_ns = &init_user_ns, ++ .group_info = &init_groups, ++}; ++#else + struct cred init_cred = { + .usage = ATOMIC_INIT(4), + #ifdef CONFIG_DEBUG_CREDENTIALS +@@ -61,6 +99,7 @@ struct cred init_cred = { + .user_ns = &init_user_ns, + .group_info = &init_groups, + }; ++#endif + + static inline void set_cred_subscribers(struct cred *cred, int n) + { +@@ -92,7 +131,11 @@ static inline void alter_cred_subscribers(const struct cred *_cred, int n) + */ + static void put_cred_rcu(struct rcu_head *rcu) + { ++ #ifdef CONFIG_CREDP ++ struct cred *cred = *(struct cred **)(rcu + 1); ++ #else + struct cred *cred = container_of(rcu, struct cred, rcu); ++ #endif + + kdebug("put_cred_rcu(%p)", cred); + +@@ -120,6 +163,9 @@ static void put_cred_rcu(struct rcu_head *rcu) + put_group_info(cred->group_info); + free_uid(cred->user); + put_user_ns(cred->user_ns); ++ #ifdef CONFIG_CREDP ++ kmem_cache_free(rcu_jar, (struct rcu_head *)(cred->rcu.func)); ++ #endif + kmem_cache_free(cred_jar, cred); + } + +@@ -144,10 +190,22 @@ void __put_cred(struct cred *cred) + BUG_ON(cred == current->cred); + BUG_ON(cred == current->real_cred); + ++ #ifdef CONFIG_CREDP ++ if (*(int *)(&(((struct rcu_head *)(cred->rcu.func))->next))) ++ #else + if (cred->non_rcu) ++ #endif ++ #ifdef CONFIG_CREDP ++ put_cred_rcu((struct rcu_head *)(cred->rcu.func)); ++ #else + put_cred_rcu(&cred->rcu); ++ #endif + else ++ #ifdef CONFIG_CREDP ++ call_rcu((struct rcu_head *)(cred->rcu.func), put_cred_rcu); ++ #else + call_rcu(&cred->rcu, put_cred_rcu); ++ #endif + } + EXPORT_SYMBOL(__put_cred); + +@@ -218,7 +276,13 @@ struct cred *cred_alloc_blank(void) + if (!new) + return NULL; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_rcu(new,kmem_cache_zalloc(rcu_jar, GFP_KERNEL)); ++ *(struct cred **)(((struct rcu_head *)(new->rcu.func)) + 1) = new; ++ iee_set_cred_atomic_set_usage(new,1); ++ #else + atomic_set(&new->usage, 1); ++ #endif + #ifdef CONFIG_DEBUG_CREDENTIALS + new->magic = CRED_MAGIC; + #endif +@@ -259,13 +323,26 @@ struct cred *prepare_creds(void) + if (!new) + return NULL; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_rcu(new,kmem_cache_alloc(rcu_jar, GFP_KERNEL)); ++ *(struct cred **)(((struct rcu_head *)(new->rcu.func)) + 1) = new; ++ #endif ++ + kdebug("prepare_creds() alloc %p", new); + + old = task->cred; ++ #ifdef CONFIG_CREDP ++ // Need to inform the token that new cred is allocated for this task. ++ iee_copy_cred(old,new); ++ ++ iee_set_cred_non_rcu(new,0); ++ iee_set_cred_atomic_set_usage(new,1); ++ #else + memcpy(new, old, sizeof(struct cred)); + + new->non_rcu = 0; + atomic_set(&new->usage, 1); ++ #endif + set_cred_subscribers(new, 0); + get_group_info(new->group_info); + get_uid(new->user); +@@ -279,7 +356,11 @@ struct cred *prepare_creds(void) + #endif + + #ifdef CONFIG_SECURITY ++#ifdef CONFIG_CREDP ++ iee_set_cred_security(new,NULL); ++#else + new->security = NULL; ++#endif + #endif + + if (security_prepare_creds(new, old, GFP_KERNEL_ACCOUNT) < 0) +@@ -308,15 +389,30 @@ struct cred *prepare_exec_creds(void) + #ifdef CONFIG_KEYS + /* newly exec'd tasks don't get a thread keyring */ + key_put(new->thread_keyring); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_thread_keyring(new,NULL); ++ #else + new->thread_keyring = NULL; ++ #endif + + /* inherit the session keyring; new process keyring */ + key_put(new->process_keyring); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_process_keyring(new,NULL); ++ #else + new->process_keyring = NULL; ++ #endif + #endif + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,new->euid); ++ iee_set_cred_suid(new,new->euid); ++ iee_set_cred_fsgid(new,new->egid); ++ iee_set_cred_sgid(new,new->egid); ++ #else + new->suid = new->fsuid = new->euid; + new->sgid = new->fsgid = new->egid; ++ #endif + + return new; + } +@@ -370,7 +466,11 @@ int copy_creds(struct task_struct *p, unsigned long clone_flags) + * had one */ + if (new->thread_keyring) { + key_put(new->thread_keyring); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_thread_keyring(new,NULL); ++ #else + new->thread_keyring = NULL; ++ #endif + if (clone_flags & CLONE_THREAD) + install_thread_keyring_to_cred(new); + } +@@ -380,7 +480,11 @@ int copy_creds(struct task_struct *p, unsigned long clone_flags) + */ + if (!(clone_flags & CLONE_THREAD)) { + key_put(new->process_keyring); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_process_keyring(new,NULL); ++ #else + new->process_keyring = NULL; ++ #endif + } + #endif + +@@ -420,6 +524,30 @@ static bool cred_cap_issubset(const struct cred *set, const struct cred *subset) + return false; + } + ++#ifdef CONFIG_CREDP ++void __iee_code inline _iee_do_commit_cred(unsigned long iee_offset, struct cred *new) ++{ ++ struct task_struct *task = current; ++ const struct cred *old = task->real_cred; ++ // Skip check when current task is already privileged. ++ if (!uid_eq(old->euid, GLOBAL_ROOT_UID)) ++ { ++ struct task_token *token = (struct task_token *)((unsigned long)task + iee_offset); ++ if (token->new_cred != new) ++ panic("IEE CREDP: Invalid target for commit_creds()."); ++ } ++ ++ alter_cred_subscribers(new, 2); ++ if (new->user != old->user) ++ atomic_inc(&new->user->processes); ++ rcu_assign_pointer(task->real_cred, new); ++ rcu_assign_pointer(task->cred, new); ++ if (new->user != old->user) ++ atomic_dec(&old->user->processes); ++ alter_cred_subscribers(old, -2); ++} ++#endif ++ + /** + * commit_creds - Install new credentials upon the current task + * @new: The credentials to be assigned +@@ -484,6 +612,10 @@ int commit_creds(struct cred *new) + * RLIMIT_NPROC limits on user->processes have already been checked + * in set_user(). + */ ++ #ifdef CONFIG_CREDP ++ // Only permits new_cred in task_token to be used. ++ iee_commit_cred(new); ++ #else + alter_cred_subscribers(new, 2); + if (new->user != old->user) + atomic_inc(&new->user->processes); +@@ -492,6 +624,7 @@ int commit_creds(struct cred *new) + if (new->user != old->user) + atomic_dec(&old->user->processes); + alter_cred_subscribers(old, -2); ++ #endif + + /* send notifications */ + if (!uid_eq(new->uid, old->uid) || +@@ -659,8 +792,21 @@ EXPORT_SYMBOL(cred_fscmp); + void __init cred_init(void) + { + /* allocate a slab in which we can store credentials */ ++ #ifdef CONFIG_CREDP ++ cred_jar = kmem_cache_create("cred_jar", sizeof(struct cred), 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT|SLAB_RED_ZONE, NULL); ++ rcu_jar = kmem_cache_create("rcu_jar", sizeof(struct rcu_head) + sizeof(struct cred *), 0, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT, NULL); ++ // Map init_cred ++ *((struct rcu_head **)(&(init_cred.rcu.func))) = (struct rcu_head *)kmem_cache_zalloc(rcu_jar, GFP_KERNEL); ++ *(struct cred **)(((struct rcu_head *)(init_cred.rcu.func)) + 1) = &init_cred; ++ set_iee_page_valid(__phys_to_iee(__pa_symbol(&init_cred))); ++ iee_set_logical_mem_ro((unsigned long)&init_cred); ++ iee_set_logical_mem_ro((unsigned long)__va(__pa_symbol(&init_cred))); ++ #else + cred_jar = kmem_cache_create("cred_jar", sizeof(struct cred), 0, + SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT, NULL); ++ #endif + } + + /** +@@ -688,6 +834,11 @@ struct cred *prepare_kernel_cred(struct task_struct *daemon) + if (!new) + return NULL; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_rcu(new,kmem_cache_alloc(rcu_jar, GFP_KERNEL)); ++ *(struct cred **)(((struct rcu_head *)(new->rcu.func)) + 1) = new; ++ #endif ++ + kdebug("prepare_kernel_cred() alloc %p", new); + + if (daemon) +@@ -697,24 +848,42 @@ struct cred *prepare_kernel_cred(struct task_struct *daemon) + + validate_creds(old); + ++ #ifdef CONFIG_CREDP ++ iee_copy_cred_kernel(old,new); ++ iee_set_cred_non_rcu(new,0); ++ iee_set_cred_atomic_set_usage(new,1); ++ #else + *new = *old; + new->non_rcu = 0; + atomic_set(&new->usage, 1); ++ #endif + set_cred_subscribers(new, 0); + get_uid(new->user); + get_user_ns(new->user_ns); + get_group_info(new->group_info); + + #ifdef CONFIG_KEYS ++#ifdef CONFIG_CREDP ++ iee_set_cred_session_keyring(new,NULL); ++ iee_set_cred_process_keyring(new,NULL); ++ iee_set_cred_thread_keyring(new,NULL); ++ iee_set_cred_request_key_auth(new,NULL); ++ iee_set_cred_jit_keyring(new,KEY_REQKEY_DEFL_THREAD_KEYRING); ++#else + new->session_keyring = NULL; + new->process_keyring = NULL; + new->thread_keyring = NULL; + new->request_key_auth = NULL; + new->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; + #endif ++#endif + + #ifdef CONFIG_SECURITY ++#ifdef CONFIG_CREDP ++ iee_set_cred_security(new,NULL); ++#else + new->security = NULL; ++#endif + #endif + if (security_prepare_creds(new, old, GFP_KERNEL_ACCOUNT) < 0) + goto error; +@@ -780,8 +949,13 @@ int set_create_files_as(struct cred *new, struct inode *inode) + { + if (!uid_valid(inode->i_uid) || !gid_valid(inode->i_gid)) + return -EINVAL; ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,inode->i_uid); ++ iee_set_cred_fsgid(new,inode->i_gid); ++ #else + new->fsuid = inode->i_uid; + new->fsgid = inode->i_gid; ++ #endif + return security_kernel_create_files_as(new, inode); + } + EXPORT_SYMBOL(set_create_files_as); +diff --git a/kernel/exit.c b/kernel/exit.c +index 26a81ea63156..bd7dabb927d5 100644 +--- a/kernel/exit.c ++++ b/kernel/exit.c +@@ -70,6 +70,10 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#endif ++ + static void __unhash_process(struct task_struct *p, bool group_dead) + { + nr_threads--; +@@ -481,6 +485,9 @@ static void exit_mm(void) + /* more a memory barrier than a real lock */ + task_lock(current); + current->mm = NULL; ++ #ifdef CONFIG_IEE ++ iee_set_token_pgd(current, NULL); ++ #endif + mmap_read_unlock(mm); + enter_lazy_tlb(mm, current); + task_unlock(current); +diff --git a/kernel/fork.c b/kernel/fork.c +index 12db99751381..4390fa7b1391 100644 +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -112,6 +112,10 @@ + #define CREATE_TRACE_POINTS + #include + ++#ifdef CONFIG_IEE ++#include ++#endif ++ + /* + * Minimum number of threads to boot the kernel + */ +@@ -125,14 +129,14 @@ + /* + * Protected counters by write_lock_irq(&tasklist_lock) + */ +-unsigned long total_forks; /* Handle normal Linux uptimes. */ +-int nr_threads; /* The idle threads do not count.. */ ++unsigned long total_forks; /* Handle normal Linux uptimes. */ ++int nr_threads; /* The idle threads do not count.. */ + +-static int max_threads; /* tunable limit on nr_threads */ ++static int max_threads; /* tunable limit on nr_threads */ + +-#define NAMED_ARRAY_INDEX(x) [x] = __stringify(x) ++#define NAMED_ARRAY_INDEX(x) [x] = __stringify(x) + +-static const char * const resident_page_types[] = { ++static const char *const resident_page_types[] = { + NAMED_ARRAY_INDEX(MM_FILEPAGES), + NAMED_ARRAY_INDEX(MM_ANONPAGES), + NAMED_ARRAY_INDEX(MM_SWAPENTS), +@@ -141,7 +145,7 @@ static const char * const resident_page_types[] = { + + DEFINE_PER_CPU(unsigned long, process_counts) = 0; + +-__cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */ ++__cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */ + + #ifdef CONFIG_PROVE_RCU + int lockdep_tasklist_lock_is_held(void) +@@ -156,7 +160,7 @@ int nr_processes(void) + int cpu; + int total = 0; + +- for_each_possible_cpu(cpu) ++ for_each_possible_cpu (cpu) + total += per_cpu(process_counts, cpu); + + return total; +@@ -167,7 +171,11 @@ void __weak arch_release_task_struct(struct task_struct *tsk) + } + + #ifndef CONFIG_ARCH_TASK_STRUCT_ALLOCATOR ++#ifdef CONFIG_IEE ++struct kmem_cache *task_struct_cachep; ++#else + static struct kmem_cache *task_struct_cachep; ++#endif + + static inline struct task_struct *alloc_task_struct_node(int node) + { +@@ -187,7 +195,7 @@ static inline void free_task_struct(struct task_struct *tsk) + * Allocate pages if THREAD_SIZE is >= PAGE_SIZE, otherwise use a + * kmemcache based allocator. + */ +-# if THREAD_SIZE >= PAGE_SIZE || defined(CONFIG_VMAP_STACK) ++#if THREAD_SIZE >= PAGE_SIZE || defined(CONFIG_VMAP_STACK) + + #ifdef CONFIG_VMAP_STACK + /* +@@ -246,11 +254,11 @@ static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int node) + * so memcg accounting is performed manually on assigning/releasing + * stacks to tasks. Drop __GFP_ACCOUNT. + */ +- stack = __vmalloc_node_range(THREAD_SIZE, THREAD_ALIGN, +- VMALLOC_START, VMALLOC_END, ++ stack = __vmalloc_node_range(THREAD_SIZE, THREAD_ALIGN, VMALLOC_START, ++ VMALLOC_END, + THREADINFO_GFP & ~__GFP_ACCOUNT, +- PAGE_KERNEL, +- 0, node, __builtin_return_address(0)); ++ PAGE_KERNEL, 0, node, ++ __builtin_return_address(0)); + + /* + * We can't call find_vm_area() in interrupt context, and +@@ -263,8 +271,8 @@ static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int node) + } + return stack; + #else +- struct page *page = alloc_pages_node(node, THREADINFO_GFP, +- THREAD_SIZE_ORDER); ++ struct page *page = ++ alloc_pages_node(node, THREADINFO_GFP, THREAD_SIZE_ORDER); + + if (likely(page)) { + tsk->stack = kasan_reset_tag(page_address(page)); +@@ -286,8 +294,8 @@ static inline void free_thread_stack(struct task_struct *tsk) + memcg_kmem_uncharge_page(vm->pages[i], 0); + + for (i = 0; i < NR_CACHED_STACKS; i++) { +- if (this_cpu_cmpxchg(cached_stacks[i], +- NULL, tsk->stack_vm_area) != NULL) ++ if (this_cpu_cmpxchg(cached_stacks[i], NULL, ++ tsk->stack_vm_area) != NULL) + continue; + + return; +@@ -300,11 +308,10 @@ static inline void free_thread_stack(struct task_struct *tsk) + + __free_pages(virt_to_page(tsk->stack), THREAD_SIZE_ORDER); + } +-# else ++#else + static struct kmem_cache *thread_stack_cache; + +-static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, +- int node) ++static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int node) + { + unsigned long *stack; + stack = kmem_cache_alloc_node(thread_stack_cache, THREADINFO_GFP, node); +@@ -320,12 +327,13 @@ static void free_thread_stack(struct task_struct *tsk) + + void thread_stack_cache_init(void) + { +- thread_stack_cache = kmem_cache_create_usercopy("thread_stack", +- THREAD_SIZE, THREAD_SIZE, 0, 0, +- THREAD_SIZE, NULL); ++ thread_stack_cache = ++ kmem_cache_create_usercopy("thread_stack", THREAD_SIZE, ++ THREAD_SIZE, 0, 0, THREAD_SIZE, ++ NULL); + BUG_ON(thread_stack_cache == NULL); + } +-# endif ++#endif + #endif + + /* SLAB cache for signal_struct structures (tsk->signal) */ +@@ -358,7 +366,8 @@ struct vm_area_struct *vm_area_alloc(struct mm_struct *mm) + + struct vm_area_struct *vm_area_dup(struct vm_area_struct *orig) + { +- struct vm_area_struct *new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL); ++ struct vm_area_struct *new = ++ kmem_cache_alloc(vm_area_cachep, GFP_KERNEL); + + if (new) { + ASSERT_EXCLUSIVE_WRITER(orig->vm_flags); +@@ -384,7 +393,6 @@ static void account_kernel_stack(struct task_struct *tsk, int account) + void *stack = task_stack_page(tsk); + struct vm_struct *vm = task_stack_vm_area(tsk); + +- + /* All stack pages are in the same node. */ + if (vm) + mod_lruvec_page_state(vm->pages[0], NR_KERNEL_STACK_KB, +@@ -427,7 +435,7 @@ static int memcg_charge_kernel_stack(struct task_struct *tsk) + static void release_task_stack(struct task_struct *tsk) + { + if (WARN_ON(tsk->state != TASK_DEAD)) +- return; /* Better to leak the stack than to free prematurely */ ++ return; /* Better to leak the stack than to free prematurely */ + + account_kernel_stack(tsk, -1); + free_thread_stack(tsk); +@@ -445,8 +453,19 @@ void put_task_stack(struct task_struct *tsk) + } + #endif + ++#ifdef CONFIG_KOI ++extern s64 koi_offset; ++#endif ++ + void free_task(struct task_struct *tsk) + { ++ #ifdef CONFIG_KOI ++ unsigned long koi_stack; ++ #ifndef CONFIG_IEE ++ unsigned long res, flags; ++ struct task_token *token; ++ #endif ++ #endif + #ifdef CONFIG_SECCOMP + WARN_ON_ONCE(tsk->seccomp.filter); + #endif +@@ -473,18 +492,31 @@ void free_task(struct task_struct *tsk) + #ifdef CONFIG_QOS_SCHED_DYNAMIC_AFFINITY + sched_prefer_cpus_free(tsk); + #endif +-#ifdef CONFIG_QOS_SCHED_SMART_GRID +- sched_grid_qos_free(tsk); ++#ifdef CONFIG_IEE ++#ifdef CONFIG_KOI ++ // Free koi stack. ++ koi_stack = iee_rw_gate(IEE_READ_KOI_STACK_BASE, tsk); ++ if (koi_stack) ++ free_pages(koi_stack, 2); ++#endif ++ iee_invalidate_token(tsk); ++#else ++#ifdef CONFIG_KOI ++// free koi stack ++ token = (struct task_token *)((unsigned long)tsk + (unsigned long)koi_offset); ++ koi_stack = token->koi_stack_base; ++ if (koi_stack) { ++ free_pages(koi_stack, 2); ++ } ++#endif + #endif +- if (task_relationship_used()) +- sched_relationship_free(tsk); + free_task_struct(tsk); + } + EXPORT_SYMBOL(free_task); + + #ifdef CONFIG_MMU + static __latent_entropy int dup_mmap(struct mm_struct *mm, +- struct mm_struct *oldmm) ++ struct mm_struct *oldmm) + { + struct vm_area_struct *mpnt, *tmp, *prev, **pprev; + struct rb_node **rb_link, *rb_parent; +@@ -580,7 +612,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, + flush_dcache_mmap_lock(mapping); + /* insert tmp into the share list, just after mpnt */ + vma_interval_tree_insert_after(tmp, mpnt, +- &mapping->i_mmap); ++ &mapping->i_mmap); + flush_dcache_mmap_unlock(mapping); + i_mmap_unlock_write(mapping); + } +@@ -655,7 +687,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) + mmap_write_unlock(oldmm); + return 0; + } +-#define mm_alloc_pgd(mm) (0) ++#define mm_alloc_pgd(mm) (0) + #define mm_free_pgd(mm) + #endif /* CONFIG_MMU */ + +@@ -663,28 +695,30 @@ static void check_mm(struct mm_struct *mm) + { + int i; + +- BUILD_BUG_ON_MSG(ARRAY_SIZE(resident_page_types) != NR_MM_COUNTERS, +- "Please make sure 'struct resident_page_types[]' is updated as well"); ++ BUILD_BUG_ON_MSG( ++ ARRAY_SIZE(resident_page_types) != NR_MM_COUNTERS, ++ "Please make sure 'struct resident_page_types[]' is updated as well"); + + for (i = 0; i < NR_MM_COUNTERS; i++) { + long x = atomic_long_read(&mm->rss_stat.count[i]); + + if (unlikely(x)) +- pr_alert("BUG: Bad rss-counter state mm:%p type:%s val:%ld\n", +- mm, resident_page_types[i], x); ++ pr_alert( ++ "BUG: Bad rss-counter state mm:%p type:%s val:%ld\n", ++ mm, resident_page_types[i], x); + } + + if (mm_pgtables_bytes(mm)) + pr_alert("BUG: non-zero pgtables_bytes on freeing mm: %ld\n", +- mm_pgtables_bytes(mm)); ++ mm_pgtables_bytes(mm)); + + #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && !USE_SPLIT_PMD_PTLOCKS + VM_BUG_ON_MM(mm->pmd_huge_pte, mm); + #endif + } + +-#define allocate_mm() (kmem_cache_alloc(mm_cachep, GFP_KERNEL)) +-#define free_mm(mm) (kmem_cache_free(mm_cachep, (mm))) ++#define allocate_mm() (kmem_cache_alloc(mm_cachep, GFP_KERNEL)) ++#define free_mm(mm) (kmem_cache_free(mm_cachep, (mm))) + + /* + * Called when the last reference to the mm +@@ -787,8 +821,8 @@ static void set_max_threads(unsigned int max_threads_suggested) + if (fls64(nr_pages) + fls64(PAGE_SIZE) > 64) + threads = MAX_THREADS; + else +- threads = div64_u64((u64) nr_pages * (u64) PAGE_SIZE, +- (u64) THREAD_SIZE * 8UL); ++ threads = div64_u64((u64)nr_pages * (u64)PAGE_SIZE, ++ (u64)THREAD_SIZE * 8UL); + + if (threads > max_threads_suggested) + threads = max_threads_suggested; +@@ -823,17 +857,24 @@ void __init fork_init(void) + int i; + #ifndef CONFIG_ARCH_TASK_STRUCT_ALLOCATOR + #ifndef ARCH_MIN_TASKALIGN +-#define ARCH_MIN_TASKALIGN 0 ++#define ARCH_MIN_TASKALIGN 0 + #endif + int align = max_t(int, L1_CACHE_BYTES, ARCH_MIN_TASKALIGN); + unsigned long useroffset, usersize; + + /* create a slab on which task_structs can be allocated */ + task_struct_whitelist(&useroffset, &usersize); ++ #ifdef CONFIG_IEE + task_struct_cachep = kmem_cache_create_usercopy("task_struct", + arch_task_struct_size, align, +- SLAB_PANIC|SLAB_ACCOUNT, ++ SLAB_PANIC|SLAB_ACCOUNT|SLAB_RED_ZONE, + useroffset, usersize, NULL); ++ #else ++ task_struct_cachep = ++ kmem_cache_create_usercopy("task_struct", arch_task_struct_size, ++ align, SLAB_PANIC | SLAB_ACCOUNT, ++ useroffset, usersize, NULL); ++ #endif + #endif + + /* do the arch specific task caches init */ +@@ -841,18 +882,18 @@ void __init fork_init(void) + + set_max_threads(MAX_THREADS); + +- init_task.signal->rlim[RLIMIT_NPROC].rlim_cur = max_threads/2; +- init_task.signal->rlim[RLIMIT_NPROC].rlim_max = max_threads/2; ++ init_task.signal->rlim[RLIMIT_NPROC].rlim_cur = max_threads / 2; ++ init_task.signal->rlim[RLIMIT_NPROC].rlim_max = max_threads / 2; + init_task.signal->rlim[RLIMIT_SIGPENDING] = + init_task.signal->rlim[RLIMIT_NPROC]; + + for (i = 0; i < UCOUNT_COUNTS; i++) { +- init_user_ns.ucount_max[i] = max_threads/2; ++ init_user_ns.ucount_max[i] = max_threads / 2; + } + + #ifdef CONFIG_VMAP_STACK +- cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "fork:vm_stack_cache", +- NULL, free_vm_stack_cache); ++ cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "fork:vm_stack_cache", NULL, ++ free_vm_stack_cache); + #endif + + scs_init(); +@@ -862,7 +903,7 @@ void __init fork_init(void) + } + + int __weak arch_dup_task_struct(struct task_struct *dst, +- struct task_struct *src) ++ struct task_struct *src) + { + *dst = *src; + return 0; +@@ -873,14 +914,14 @@ void set_task_stack_end_magic(struct task_struct *tsk) + unsigned long *stackend; + + stackend = end_of_stack(tsk); +- *stackend = STACK_END_MAGIC; /* for overflow detection */ ++ *stackend = STACK_END_MAGIC; /* for overflow detection */ + } + + static bool dup_resvd_task_struct(struct task_struct *dst, + struct task_struct *orig, int node) + { +- dst->_resvd = kzalloc_node(sizeof(struct task_struct_resvd), +- GFP_KERNEL, node); ++ dst->_resvd = kzalloc_node(sizeof(struct task_struct_resvd), GFP_KERNEL, ++ node); + if (!dst->_resvd) + return false; + +@@ -1059,7 +1100,7 @@ static void mm_init_uprobes_state(struct mm_struct *mm) + } + + static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, +- struct user_namespace *user_ns) ++ struct user_namespace *user_ns) + { + mm->mmap = NULL; + mm->mm_rb = RB_ROOT; +@@ -1119,7 +1160,8 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, + return NULL; + } + +-static inline void mm_struct_clear(struct mm_struct *mm) { ++static inline void mm_struct_clear(struct mm_struct *mm) ++{ + memset(mm, 0, sizeof(*mm)); + + #if (defined(CONFIG_X86_64)) +@@ -1127,9 +1169,10 @@ static inline void mm_struct_clear(struct mm_struct *mm) { + * init the mm_struct_extend extra area at the bottom of + * the allocated mm struct and reset mm->mm_extend accordingly. + */ +- memset((void *)((unsigned long) mm + _MM_STRUCT_SIZE), +- 0, sizeof(struct mm_struct_extend)); +- mm->mm_extend = (struct mm_struct_extend *)((unsigned long) mm + _MM_STRUCT_SIZE); ++ memset((void *)((unsigned long)mm + _MM_STRUCT_SIZE), 0, ++ sizeof(struct mm_struct_extend)); ++ mm->mm_extend = (struct mm_struct_extend *)((unsigned long)mm + ++ _MM_STRUCT_SIZE); + #endif + } + +@@ -1188,8 +1231,8 @@ EXPORT_SYMBOL_GPL(mmput); + #ifdef CONFIG_MMU + static void mmput_async_fn(struct work_struct *work) + { +- struct mm_struct *mm = container_of(work, struct mm_struct, +- async_put_work); ++ struct mm_struct *mm = ++ container_of(work, struct mm_struct, async_put_work); + + __mmput(mm); + } +@@ -1319,13 +1362,12 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode) + struct mm_struct *mm; + int err; + +- err = down_read_killable(&task->signal->exec_update_lock); ++ err = down_read_killable(&task->signal->exec_update_lock); + if (err) + return ERR_PTR(err); + + mm = get_task_mm(task); +- if (mm && mm != current->mm && +- !ptrace_may_access(task, mode)) { ++ if (mm && mm != current->mm && !ptrace_may_access(task, mode)) { + mmput(mm); + mm = ERR_PTR(-EACCES); + } +@@ -1349,7 +1391,7 @@ static void complete_vfork_done(struct task_struct *tsk) + } + + static int wait_for_vfork_done(struct task_struct *child, +- struct completion *vfork) ++ struct completion *vfork) + { + int killed; + +@@ -1402,8 +1444,8 @@ static void mm_release(struct task_struct *tsk, struct mm_struct *mm) + * not set up a proper pointer then tough luck. + */ + put_user(0, tsk->clear_child_tid); +- do_futex(tsk->clear_child_tid, FUTEX_WAKE, +- 1, NULL, NULL, 0, 0); ++ do_futex(tsk->clear_child_tid, FUTEX_WAKE, 1, NULL, ++ NULL, 0, 0); + } + tsk->clear_child_tid = NULL; + } +@@ -1438,11 +1480,12 @@ static inline void mm_struct_copy(struct mm_struct *mm, struct mm_struct *oldmm) + * the oldmm slab object over to the newly allocated mm struct, + * and reset mm->mm_extend accordingly. + */ +- memcpy((void *)((unsigned long) mm + _MM_STRUCT_SIZE), +- (void *)((unsigned long) oldmm + _MM_STRUCT_SIZE), +- sizeof(struct mm_struct_extend)); ++ memcpy((void *)((unsigned long)mm + _MM_STRUCT_SIZE), ++ (void *)((unsigned long)oldmm + _MM_STRUCT_SIZE), ++ sizeof(struct mm_struct_extend)); + +- mm->mm_extend = (struct mm_struct_extend *)((unsigned long) mm + _MM_STRUCT_SIZE); ++ mm->mm_extend = (struct mm_struct_extend *)((unsigned long)mm + ++ _MM_STRUCT_SIZE); + #endif + } + +@@ -1506,6 +1549,9 @@ static int copy_mm(unsigned long clone_flags, struct task_struct *tsk) + #endif + + tsk->mm = NULL; ++#ifdef CONFIG_IEE ++ iee_set_token_pgd(tsk, NULL); ++#endif + tsk->active_mm = NULL; + + /* +@@ -1533,6 +1579,9 @@ static int copy_mm(unsigned long clone_flags, struct task_struct *tsk) + + good_mm: + tsk->mm = mm; ++#ifdef CONFIG_IEE ++ iee_set_token_pgd(tsk, mm->pgd); ++#endif + tsk->active_mm = mm; + return 0; + +@@ -1772,8 +1821,8 @@ static inline void init_task_pid_links(struct task_struct *task) + } + } + +-static inline void +-init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid) ++static inline void init_task_pid(struct task_struct *task, enum pid_type type, ++ struct pid *pid) + { + if (type == PIDTYPE_PID) + task->thread_pid = pid; +@@ -1948,6 +1997,12 @@ static void copy_oom_score_adj(u64 clone_flags, struct task_struct *tsk) + mutex_unlock(&oom_adj_mutex); + } + ++#if defined(CONFIG_KOI) && !defined(CONFIG_IEE) ++extern s64 koi_offset; ++extern void koi_init_token(struct task_struct *tsk); ++#endif ++ ++ + /* + * This creates a new process as a copy of the old one, + * but does not actually start it yet. +@@ -1956,11 +2011,9 @@ static void copy_oom_score_adj(u64 clone_flags, struct task_struct *tsk) + * parts of the process environment (as per the clone + * flags). The actual kick-off is left to the caller. + */ +-static __latent_entropy struct task_struct *copy_process( +- struct pid *pid, +- int trace, +- int node, +- struct kernel_clone_args *args) ++static __latent_entropy struct task_struct * ++copy_process(struct pid *pid, int trace, int node, ++ struct kernel_clone_args *args) + { + int pidfd = -1, retval; + struct task_struct *p; +@@ -1973,10 +2026,12 @@ static __latent_entropy struct task_struct *copy_process( + * Don't allow sharing the root directory with processes in a different + * namespace + */ +- if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS)) ++ if ((clone_flags & (CLONE_NEWNS | CLONE_FS)) == ++ (CLONE_NEWNS | CLONE_FS)) + return ERR_PTR(-EINVAL); + +- if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) ++ if ((clone_flags & (CLONE_NEWUSER | CLONE_FS)) == ++ (CLONE_NEWUSER | CLONE_FS)) + return ERR_PTR(-EINVAL); + + /* +@@ -2001,7 +2056,7 @@ static __latent_entropy struct task_struct *copy_process( + * from creating siblings. + */ + if ((clone_flags & CLONE_PARENT) && +- current->signal->flags & SIGNAL_UNKILLABLE) ++ current->signal->flags & SIGNAL_UNKILLABLE) + return ERR_PTR(-EINVAL); + + /* +@@ -2055,13 +2110,21 @@ static __latent_entropy struct task_struct *copy_process( + p = dup_task_struct(current, node); + if (!p) + goto fork_out; ++ ++#ifdef CONFIG_IEE ++ iee_validate_token(p); ++#else ++#ifdef CONFIG_KOI ++ koi_init_token(p); ++#endif ++#endif + if (args->io_thread) { + /* + * Mark us an IO worker, and block any signal that isn't + * fatal or STOP + */ + p->flags |= PF_IO_WORKER; +- siginitsetinv(&p->blocked, sigmask(SIGKILL)|sigmask(SIGSTOP)); ++ siginitsetinv(&p->blocked, sigmask(SIGKILL) | sigmask(SIGSTOP)); + } + + /* +@@ -2070,11 +2133,13 @@ static __latent_entropy struct task_struct *copy_process( + * p->set_child_tid which is (ab)used as a kthread's data pointer for + * kernel threads (PF_KTHREAD). + */ +- p->set_child_tid = (clone_flags & CLONE_CHILD_SETTID) ? args->child_tid : NULL; ++ p->set_child_tid = ++ (clone_flags & CLONE_CHILD_SETTID) ? args->child_tid : NULL; + /* + * Clear TID on mm_release()? + */ +- p->clear_child_tid = (clone_flags & CLONE_CHILD_CLEARTID) ? args->child_tid : NULL; ++ p->clear_child_tid = ++ (clone_flags & CLONE_CHILD_CLEARTID) ? args->child_tid : NULL; + + ftrace_graph_init_task(p); + +@@ -2092,7 +2157,7 @@ static __latent_entropy struct task_struct *copy_process( + #endif + retval = -EAGAIN; + if (atomic_read(&p->real_cred->user->processes) >= +- task_rlimit(p, RLIMIT_NPROC)) { ++ task_rlimit(p, RLIMIT_NPROC)) { + if (p->real_cred->user != INIT_USER && + !capable(CAP_SYS_RESOURCE) && !capable(CAP_SYS_ADMIN)) + goto bad_fork_free; +@@ -2124,7 +2189,7 @@ static __latent_entropy struct task_struct *copy_process( + if (data_race(nr_threads >= max_threads)) + goto bad_fork_cleanup_count; + +- delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ ++ delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ + p->flags &= ~(PF_SUPERPRIV | PF_WQ_WORKER | PF_IDLE); + p->flags |= PF_FORKNOEXEC; + INIT_LIST_HEAD(&p->children); +@@ -2184,10 +2249,10 @@ static __latent_entropy struct task_struct *copy_process( + #endif + #ifdef CONFIG_TRACE_IRQFLAGS + memset(&p->irqtrace, 0, sizeof(p->irqtrace)); +- p->irqtrace.hardirq_disable_ip = _THIS_IP_; +- p->irqtrace.softirq_enable_ip = _THIS_IP_; +- p->softirqs_enabled = 1; +- p->softirq_context = 0; ++ p->irqtrace.hardirq_disable_ip = _THIS_IP_; ++ p->irqtrace.softirq_enable_ip = _THIS_IP_; ++ p->softirqs_enabled = 1; ++ p->softirq_context = 0; + #endif + + p->pagefault_disabled = 0; +@@ -2200,8 +2265,8 @@ static __latent_entropy struct task_struct *copy_process( + p->blocked_on = NULL; /* not blocked yet */ + #endif + #ifdef CONFIG_BCACHE +- p->sequential_io = 0; +- p->sequential_io_avg = 0; ++ p->sequential_io = 0; ++ p->sequential_io_avg = 0; + #endif + #ifdef CONFIG_BPF_SYSCALL + p->bpf_ctx = NULL; +@@ -2247,7 +2312,8 @@ static __latent_entropy struct task_struct *copy_process( + retval = copy_io(clone_flags, p); + if (retval) + goto bad_fork_cleanup_namespaces; +- retval = copy_thread(clone_flags, args->stack, args->stack_size, p, args->tls); ++ retval = copy_thread(clone_flags, args->stack, args->stack_size, p, ++ args->tls); + if (retval) + goto bad_fork_cleanup_io; + +@@ -2275,13 +2341,13 @@ static __latent_entropy struct task_struct *copy_process( + pidfd = retval; + + pidfile = anon_inode_getfile("[pidfd]", &pidfd_fops, pid, +- O_RDWR | O_CLOEXEC); ++ O_RDWR | O_CLOEXEC); + if (IS_ERR(pidfile)) { + put_unused_fd(pidfd); + retval = PTR_ERR(pidfile); + goto bad_fork_free_pid; + } +- get_pid(pid); /* held by pidfile now */ ++ get_pid(pid); /* held by pidfile now */ + + retval = put_user(pidfd, args->pidfd); + if (retval) +@@ -2296,7 +2362,7 @@ static __latent_entropy struct task_struct *copy_process( + /* + * sigaltstack should be cleared when sharing the same VM + */ +- if ((clone_flags & (CLONE_VM|CLONE_VFORK)) == CLONE_VM) ++ if ((clone_flags & (CLONE_VM | CLONE_VFORK)) == CLONE_VM) + sas_ss_reset(p); + + /* +@@ -2368,7 +2434,7 @@ static __latent_entropy struct task_struct *copy_process( + write_lock_irq(&tasklist_lock); + + /* CLONE_PARENT re-uses the old parent */ +- if (clone_flags & (CLONE_PARENT|CLONE_THREAD)) { ++ if (clone_flags & (CLONE_PARENT | CLONE_THREAD)) { + p->real_parent = current->real_parent; + p->parent_exec_id = current->parent_exec_id; + if (clone_flags & CLONE_THREAD) +@@ -2430,8 +2496,9 @@ static __latent_entropy struct task_struct *copy_process( + * tasklist_lock with adding child to the process tree + * for propagate_has_child_subreaper optimization. + */ +- p->signal->has_child_subreaper = p->real_parent->signal->has_child_subreaper || +- p->real_parent->signal->is_child_subreaper; ++ p->signal->has_child_subreaper = ++ p->real_parent->signal->has_child_subreaper || ++ p->real_parent->signal->is_child_subreaper; + list_add_tail(&p->sibling, &p->real_parent->children); + list_add_tail_rcu(&p->tasks, &init_task.tasks); + attach_pid(p, PIDTYPE_TGID); +@@ -2545,7 +2612,7 @@ static inline void init_idle_pids(struct task_struct *idle) + } + } + +-struct task_struct * __init fork_idle(int cpu) ++struct task_struct *__init fork_idle(int cpu) + { + struct task_struct *task; + struct kernel_clone_args args = { +@@ -2569,15 +2636,15 @@ struct task_struct * __init fork_idle(int cpu) + */ + struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node) + { +- unsigned long flags = CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD| +- CLONE_IO; ++ unsigned long flags = CLONE_FS | CLONE_FILES | CLONE_SIGHAND | ++ CLONE_THREAD | CLONE_IO; + struct kernel_clone_args args = { +- .flags = ((lower_32_bits(flags) | CLONE_VM | +- CLONE_UNTRACED) & ~CSIGNAL), +- .exit_signal = (lower_32_bits(flags) & CSIGNAL), +- .stack = (unsigned long)fn, +- .stack_size = (unsigned long)arg, +- .io_thread = 1, ++ .flags = ((lower_32_bits(flags) | CLONE_VM | CLONE_UNTRACED) & ++ ~CSIGNAL), ++ .exit_signal = (lower_32_bits(flags) & CSIGNAL), ++ .stack = (unsigned long)fn, ++ .stack_size = (unsigned long)arg, ++ .io_thread = 1, + }; + + return copy_process(NULL, 0, node, &args); +@@ -2677,11 +2744,11 @@ pid_t kernel_clone(struct kernel_clone_args *args) + pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) + { + struct kernel_clone_args args = { +- .flags = ((lower_32_bits(flags) | CLONE_VM | +- CLONE_UNTRACED) & ~CSIGNAL), +- .exit_signal = (lower_32_bits(flags) & CSIGNAL), +- .stack = (unsigned long)fn, +- .stack_size = (unsigned long)arg, ++ .flags = ((lower_32_bits(flags) | CLONE_VM | CLONE_UNTRACED) & ++ ~CSIGNAL), ++ .exit_signal = (lower_32_bits(flags) & CSIGNAL), ++ .stack = (unsigned long)fn, ++ .stack_size = (unsigned long)arg, + }; + + return kernel_clone(&args); +@@ -2707,8 +2774,8 @@ SYSCALL_DEFINE0(fork) + SYSCALL_DEFINE0(vfork) + { + struct kernel_clone_args args = { +- .flags = CLONE_VFORK | CLONE_VM, +- .exit_signal = SIGCHLD, ++ .flags = CLONE_VFORK | CLONE_VM, ++ .exit_signal = SIGCHLD, + }; + + return kernel_clone(&args); +@@ -2718,35 +2785,30 @@ SYSCALL_DEFINE0(vfork) + #ifdef __ARCH_WANT_SYS_CLONE + #ifdef CONFIG_CLONE_BACKWARDS + SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp, +- int __user *, parent_tidptr, +- unsigned long, tls, +- int __user *, child_tidptr) ++ int __user *, parent_tidptr, unsigned long, tls, int __user *, ++ child_tidptr) + #elif defined(CONFIG_CLONE_BACKWARDS2) + SYSCALL_DEFINE5(clone, unsigned long, newsp, unsigned long, clone_flags, +- int __user *, parent_tidptr, +- int __user *, child_tidptr, +- unsigned long, tls) +-#elif defined(CONFIG_CLONE_BACKWARDS3) +-SYSCALL_DEFINE6(clone, unsigned long, clone_flags, unsigned long, newsp, +- int, stack_size, +- int __user *, parent_tidptr, +- int __user *, child_tidptr, ++ int __user *, parent_tidptr, int __user *, child_tidptr, + unsigned long, tls) ++#elif defined(CONFIG_CLONE_BACKWARDS3) ++SYSCALL_DEFINE6(clone, unsigned long, clone_flags, unsigned long, newsp, int, ++ stack_size, int __user *, parent_tidptr, int __user *, ++ child_tidptr, unsigned long, tls) + #else + SYSCALL_DEFINE5(clone, unsigned long, clone_flags, unsigned long, newsp, +- int __user *, parent_tidptr, +- int __user *, child_tidptr, +- unsigned long, tls) ++ int __user *, parent_tidptr, int __user *, child_tidptr, ++ unsigned long, tls) + #endif + { + struct kernel_clone_args args = { +- .flags = (lower_32_bits(clone_flags) & ~CSIGNAL), +- .pidfd = parent_tidptr, +- .child_tid = child_tidptr, +- .parent_tid = parent_tidptr, +- .exit_signal = (lower_32_bits(clone_flags) & CSIGNAL), +- .stack = newsp, +- .tls = tls, ++ .flags = (lower_32_bits(clone_flags) & ~CSIGNAL), ++ .pidfd = parent_tidptr, ++ .child_tid = child_tidptr, ++ .parent_tid = parent_tidptr, ++ .exit_signal = (lower_32_bits(clone_flags) & CSIGNAL), ++ .stack = newsp, ++ .tls = tls, + }; + + return kernel_clone(&args); +@@ -2802,21 +2864,21 @@ noinline static int copy_clone_args_from_user(struct kernel_clone_args *kargs, + return -EINVAL; + + *kargs = (struct kernel_clone_args){ +- .flags = args.flags, +- .pidfd = u64_to_user_ptr(args.pidfd), +- .child_tid = u64_to_user_ptr(args.child_tid), +- .parent_tid = u64_to_user_ptr(args.parent_tid), +- .exit_signal = args.exit_signal, +- .stack = args.stack, +- .stack_size = args.stack_size, +- .tls = args.tls, +- .set_tid_size = args.set_tid_size, +- .cgroup = args.cgroup, ++ .flags = args.flags, ++ .pidfd = u64_to_user_ptr(args.pidfd), ++ .child_tid = u64_to_user_ptr(args.child_tid), ++ .parent_tid = u64_to_user_ptr(args.parent_tid), ++ .exit_signal = args.exit_signal, ++ .stack = args.stack, ++ .stack_size = args.stack_size, ++ .tls = args.tls, ++ .set_tid_size = args.set_tid_size, ++ .cgroup = args.cgroup, + }; + + if (args.set_tid && +- copy_from_user(kset_tid, u64_to_user_ptr(args.set_tid), +- (kargs->set_tid_size * sizeof(pid_t)))) ++ copy_from_user(kset_tid, u64_to_user_ptr(args.set_tid), ++ (kargs->set_tid_size * sizeof(pid_t)))) + return -EFAULT; + + kargs->set_tid = kset_tid; +@@ -2911,7 +2973,8 @@ SYSCALL_DEFINE2(clone3, struct clone_args __user *, uargs, size_t, size) + } + #endif + +-void walk_process_tree(struct task_struct *top, proc_visitor visitor, void *data) ++void walk_process_tree(struct task_struct *top, proc_visitor visitor, ++ void *data) + { + struct task_struct *leader, *parent, *child; + int res; +@@ -2919,8 +2982,8 @@ void walk_process_tree(struct task_struct *top, proc_visitor visitor, void *data + read_lock(&tasklist_lock); + leader = top = top->group_leader; + down: +- for_each_thread(leader, parent) { +- list_for_each_entry(child, &parent->children, sibling) { ++ for_each_thread (leader, parent) { ++ list_for_each_entry (child, &parent->children, sibling) { + res = visitor(child, data); + if (res) { + if (res < 0) +@@ -2928,8 +2991,7 @@ void walk_process_tree(struct task_struct *top, proc_visitor visitor, void *data + leader = child; + goto down; + } +-up: +- ; ++ up:; + } + } + +@@ -3003,11 +3065,11 @@ void __init proc_caches_init(void) + */ + static int check_unshare_flags(unsigned long unshare_flags) + { +- if (unshare_flags & ~(CLONE_THREAD|CLONE_FS|CLONE_NEWNS|CLONE_SIGHAND| +- CLONE_VM|CLONE_FILES|CLONE_SYSVSEM| +- CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWNET| +- CLONE_NEWUSER|CLONE_NEWPID|CLONE_NEWCGROUP| +- CLONE_NEWTIME)) ++ if (unshare_flags & ++ ~(CLONE_THREAD | CLONE_FS | CLONE_NEWNS | CLONE_SIGHAND | CLONE_VM | ++ CLONE_FILES | CLONE_SYSVSEM | CLONE_NEWUTS | CLONE_NEWIPC | ++ CLONE_NEWNET | CLONE_NEWUSER | CLONE_NEWPID | CLONE_NEWCGROUP | ++ CLONE_NEWTIME)) + return -EINVAL; + /* + * Not implemented, but pretend it works if there is nothing +@@ -3118,7 +3180,7 @@ int ksys_unshare(unsigned long unshare_flags) + * to a new ipc namespace, the semaphore arrays from the old + * namespace are unreachable. + */ +- if (unshare_flags & (CLONE_NEWIPC|CLONE_SYSVSEM)) ++ if (unshare_flags & (CLONE_NEWIPC | CLONE_SYSVSEM)) + do_sysvsem = 1; + err = unshare_fs(unshare_flags, &new_fs); + if (err) +@@ -3129,8 +3191,8 @@ int ksys_unshare(unsigned long unshare_flags) + err = unshare_userns(unshare_flags, &new_cred); + if (err) + goto bad_unshare_cleanup_fd; +- err = unshare_nsproxy_namespaces(unshare_flags, &new_nsproxy, +- new_cred, new_fs); ++ err = unshare_nsproxy_namespaces(unshare_flags, &new_nsproxy, new_cred, ++ new_fs); + if (err) + goto bad_unshare_cleanup_cred; + +@@ -3224,8 +3286,8 @@ int unshare_files(struct files_struct **displaced) + return 0; + } + +-int sysctl_max_threads(struct ctl_table *table, int write, +- void *buffer, size_t *lenp, loff_t *ppos) ++int sysctl_max_threads(struct ctl_table *table, int write, void *buffer, ++ size_t *lenp, loff_t *ppos) + { + struct ctl_table t; + int ret; +diff --git a/kernel/groups.c b/kernel/groups.c +index fe7e6385530e..bdecd21c0caf 100644 +--- a/kernel/groups.c ++++ b/kernel/groups.c +@@ -11,6 +11,9 @@ + #include + #include + #include ++#ifdef CONFIG_CREDP ++#include ++#endif + + struct group_info *groups_alloc(int gidsetsize) + { +@@ -124,7 +127,11 @@ void set_groups(struct cred *new, struct group_info *group_info) + { + put_group_info(new->group_info); + get_group_info(group_info); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_group_info(new,group_info); ++ #else + new->group_info = group_info; ++ #endif + } + + EXPORT_SYMBOL(set_groups); +diff --git a/kernel/kthread.c b/kernel/kthread.c +index 508fe5278285..2114298f14e7 100644 +--- a/kernel/kthread.c ++++ b/kernel/kthread.c +@@ -30,6 +30,10 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#endif ++ + + static DEFINE_SPINLOCK(kthread_create_lock); + static LIST_HEAD(kthread_create_list); +@@ -1325,6 +1329,9 @@ void kthread_use_mm(struct mm_struct *mm) + tsk->active_mm = mm; + } + tsk->mm = mm; ++ #ifdef CONFIG_IEE ++ iee_set_token_pgd(tsk, mm->pgd); ++ #endif + switch_mm_irqs_off(active_mm, mm, tsk); + local_irq_enable(); + task_unlock(tsk); +@@ -1356,6 +1363,9 @@ void kthread_unuse_mm(struct mm_struct *mm) + sync_mm_rss(mm); + local_irq_disable(); + tsk->mm = NULL; ++ #ifdef CONFIG_IEE ++ iee_set_token_pgd(tsk, NULL); ++ #endif + /* active_mm is still 'mm' */ + enter_lazy_tlb(mm, tsk); + local_irq_enable(); +diff --git a/kernel/module.c b/kernel/module.c +index e978debc93df..b45b8c2ff2ca 100644 +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -66,6 +66,10 @@ + #define CREATE_TRACE_POINTS + #include + ++#ifdef CONFIG_KOI ++#include "asm/koi.h" ++#endif ++ + #ifndef ARCH_SHF_SMALL + #define ARCH_SHF_SMALL 0 + #endif +@@ -1045,6 +1049,7 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user, + /* Final destruction now no one is using it. */ + if (mod->exit != NULL) + mod->exit(); ++ + blocking_notifier_call_chain(&module_notify_list, + MODULE_STATE_GOING, mod); + klp_module_going(mod); +@@ -1054,7 +1059,11 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user, + + /* Store the name of the last unloaded module for diagnostic purposes */ + strlcpy(last_unloaded_module, mod->name, sizeof(last_unloaded_module)); +- ++#ifdef CONFIG_KOI ++ koi_destroy_pagetable(mod); ++ ++ printk(KERN_ERR "pagetable destroyed\n"); ++#endif + free_module(mod); + /* someone could wait for the module in add_unformed_module() */ + wake_up_all(&module_wq); +@@ -3799,6 +3808,9 @@ static noinline int do_init_module(struct module *mod) + module_enable_ro(mod, true); + mod_tree_remove_init(mod); + module_arch_freeing_init(mod); ++// #ifdef CONFIG_KOI ++// koi_unmap_mem(mod, mod->init_layout.base, mod->init_layout.size); ++// #endif + mod->init_layout.base = NULL; + mod->init_layout.size = 0; + mod->init_layout.ro_size = 0; +@@ -3977,6 +3989,17 @@ static int load_module(struct load_info *info, const char __user *uargs, + struct module *mod; + long err = 0; + char *after_dashes; ++#ifdef CONFIG_KOI ++ ++ struct mm_struct *ko_mm; ++ pgd_t *ko_pg_dir; ++ struct shared_variable_descriptor *desc; ++ unsigned int ndx, i, j; ++ unsigned int num_desc; ++ unsigned int *get_val_id, *from_id_get_ad; ++ unsigned long addr; ++ struct koi_mem_hash_node *target; ++#endif + + /* + * Do the signature check (if any) first. All that +@@ -4116,7 +4139,53 @@ static int load_module(struct load_info *info, const char __user *uargs, + err = prepare_coming_module(mod); + if (err) + goto bug_cleanup; ++#ifdef CONFIG_KOI ++ /* ++ * find the shared_vars_section and get the shared var list ++ */ ++ ndx = find_sec(info, ".shared_vars_section"); ++ if (ndx){ ++ koi_create_pagetable(mod); ++ target = NULL; ++ rcu_read_lock(); ++ hash_for_each_possible_rcu (koi_mem_htbl, target, node, ++ (unsigned long)mod) { ++ if (target->mod == mod) { ++ break; ++ } ++ } ++ rcu_read_unlock(); ++ ++ if (target == NULL) { ++ printk("mem node for module: %s not found\n", mod->name); ++ return 0; ++ } + ++ ko_mm = target->ko_mm; ++ ko_pg_dir = target->pgdp; ++ ++ desc = (struct shared_variable_descriptor *)info->sechdrs[ndx].sh_addr; ++ ++ num_desc = info->sechdrs[ndx].sh_size / sizeof(struct shared_variable_descriptor); ++ get_val_id = kmalloc(DRIVER_ISOLATION_MAX_VAL, GFP_KERNEL); ++ from_id_get_ad = kmalloc(DRIVER_ISOLATION_MAX_VAL, GFP_KERNEL); ++ ++ for (j = 0; j < num_desc; j++) { ++ unsigned int desc_id = desc[j].id; ++ get_val_id[j] = desc_id; ++ from_id_get_ad[desc_id] = j; ++ } ++ ++ for (i = 0; i < num_desc; i++) { ++ if (desc[i].type == 0) { ++ addr = kallsyms_lookup_name(desc[i].name); ++ koi_copy_pagetable(ko_mm, ko_pg_dir, addr & PAGE_MASK, (addr + desc[i].size + PAGE_SIZE) & PAGE_MASK); ++ } ++ } ++ kfree(get_val_id); ++ kfree(from_id_get_ad); ++ } ++#endif + /* Module is ready to execute: parsing args may do that. */ + after_dashes = parse_args(mod->name, mod->args, mod->kp, mod->num_kp, + -32768, 32767, mod, +diff --git a/kernel/smpboot.c b/kernel/smpboot.c +index e4163042c4d6..4df33347ad54 100644 +--- a/kernel/smpboot.c ++++ b/kernel/smpboot.c +@@ -47,6 +47,7 @@ void __init idle_thread_set_boot_cpu(void) + * + * Creates the thread if it does not exist. + */ ++ + static inline void idle_init(unsigned int cpu) + { + struct task_struct *tsk = per_cpu(idle_threads, cpu); +diff --git a/kernel/stacktrace.c b/kernel/stacktrace.c +index 9c625257023d..f746a271138b 100644 +--- a/kernel/stacktrace.c ++++ b/kernel/stacktrace.c +@@ -15,6 +15,10 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#endif ++ + /** + * stack_trace_print - Print the entries in the stack trace + * @entries: Pointer to storage array +@@ -94,6 +98,23 @@ static bool stack_trace_consume_entry(void *cookie, unsigned long addr) + return c->len < c->size; + } + ++#ifdef CONFIG_IEE ++static bool stack_trace_consume_entry_iee(void *cookie, unsigned long addr) ++{ ++ struct stacktrace_cookie *c = cookie; ++ ++ if (c->len >= c->size) ++ return false; ++ ++ if (c->skip > 0) { ++ c->skip--; ++ return true; ++ } ++ iee_write_in_byte(&(c->store[c->len++]), addr, 8); ++ return c->len < c->size; ++} ++#endif ++ + static bool stack_trace_consume_entry_nosched(void *cookie, unsigned long addr) + { + if (in_sched_functions(addr)) +@@ -124,6 +145,23 @@ unsigned int stack_trace_save(unsigned long *store, unsigned int size, + } + EXPORT_SYMBOL_GPL(stack_trace_save); + ++#ifdef CONFIG_IEE ++unsigned int stack_trace_save_iee(unsigned long *store, unsigned int size, ++ unsigned int skipnr) ++{ ++ stack_trace_consume_fn consume_entry = stack_trace_consume_entry_iee; ++ struct stacktrace_cookie c = { ++ .store = store, ++ .size = size, ++ .skip = skipnr + 1, ++ }; ++ ++ arch_stack_walk(consume_entry, &c, current, NULL); ++ return c.len; ++} ++EXPORT_SYMBOL_GPL(stack_trace_save_iee); ++#endif ++ + /** + * stack_trace_save_tsk - Save a task stack trace into a storage array + * @task: The task to examine +diff --git a/kernel/sys.c b/kernel/sys.c +index 566ba957014d..24ff8befe071 100644 +--- a/kernel/sys.c ++++ b/kernel/sys.c +@@ -73,6 +73,10 @@ + #include + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + #include "uid16.h" + + #ifndef SET_UNALIGN_CTL +@@ -381,7 +385,11 @@ long __sys_setregid(gid_t rgid, gid_t egid) + if (gid_eq(old->gid, krgid) || + gid_eq(old->egid, krgid) || + ns_capable_setid(old->user_ns, CAP_SETGID)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_gid(new,krgid); ++ #else + new->gid = krgid; ++ #endif + else + goto error; + } +@@ -390,15 +398,27 @@ long __sys_setregid(gid_t rgid, gid_t egid) + gid_eq(old->egid, kegid) || + gid_eq(old->sgid, kegid) || + ns_capable_setid(old->user_ns, CAP_SETGID)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_egid(new,kegid); ++ #else + new->egid = kegid; ++ #endif + else + goto error; + } + + if (rgid != (gid_t) -1 || + (egid != (gid_t) -1 && !gid_eq(kegid, old->gid))) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_sgid(new,new->egid); ++ #else + new->sgid = new->egid; ++ #endif ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsgid(new,new->egid); ++ #else + new->fsgid = new->egid; ++ #endif + + retval = security_task_fix_setgid(new, old, LSM_SETID_RE); + if (retval < 0) +@@ -440,9 +460,25 @@ long __sys_setgid(gid_t gid) + + retval = -EPERM; + if (ns_capable_setid(old->user_ns, CAP_SETGID)) ++ #ifdef CONFIG_CREDP ++ { ++ iee_set_cred_fsgid(new,kgid); ++ iee_set_cred_sgid(new,kgid); ++ iee_set_cred_egid(new,kgid); ++ iee_set_cred_gid(new,kgid); ++ } ++ #else + new->gid = new->egid = new->sgid = new->fsgid = kgid; ++ #endif + else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid)) ++ #ifdef CONFIG_CREDP ++ { ++ iee_set_cred_fsgid(new,kgid); ++ iee_set_cred_egid(new,kgid); ++ } ++ #else + new->egid = new->fsgid = kgid; ++ #endif + else + goto error; + +@@ -487,7 +523,11 @@ static int set_user(struct cred *new) + current->flags &= ~PF_NPROC_EXCEEDED; + + free_uid(new->user); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_user(new,new_user); ++ #else + new->user = new_user; ++ #endif + return 0; + } + +@@ -529,7 +569,11 @@ long __sys_setreuid(uid_t ruid, uid_t euid) + + retval = -EPERM; + if (ruid != (uid_t) -1) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_uid(new,kruid); ++ #else + new->uid = kruid; ++ #endif + if (!uid_eq(old->uid, kruid) && + !uid_eq(old->euid, kruid) && + !ns_capable_setid(old->user_ns, CAP_SETUID)) +@@ -537,7 +581,11 @@ long __sys_setreuid(uid_t ruid, uid_t euid) + } + + if (euid != (uid_t) -1) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_euid(new,keuid); ++ #else + new->euid = keuid; ++ #endif + if (!uid_eq(old->uid, keuid) && + !uid_eq(old->euid, keuid) && + !uid_eq(old->suid, keuid) && +@@ -552,8 +600,16 @@ long __sys_setreuid(uid_t ruid, uid_t euid) + } + if (ruid != (uid_t) -1 || + (euid != (uid_t) -1 && !uid_eq(keuid, old->uid))) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_suid(new,new->euid); ++ #else + new->suid = new->euid; ++ #endif ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,new->euid); ++ #else + new->fsuid = new->euid; ++ #endif + + retval = security_task_fix_setuid(new, old, LSM_SETID_RE); + if (retval < 0) +@@ -601,7 +657,12 @@ long __sys_setuid(uid_t uid) + + retval = -EPERM; + if (ns_capable_setid(old->user_ns, CAP_SETUID)) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_uid(new,kuid); ++ iee_set_cred_suid(new,kuid); ++ #else + new->suid = new->uid = kuid; ++ #endif + if (!uid_eq(kuid, old->uid)) { + retval = set_user(new); + if (retval < 0) +@@ -611,7 +672,12 @@ long __sys_setuid(uid_t uid) + goto error; + } + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_euid(new,kuid); ++ iee_set_cred_fsuid(new,kuid); ++ #else + new->fsuid = new->euid = kuid; ++ #endif + + retval = security_task_fix_setuid(new, old, LSM_SETID_ID); + if (retval < 0) +@@ -680,7 +746,11 @@ long __sys_setresuid(uid_t ruid, uid_t euid, uid_t suid) + return -ENOMEM; + + if (ruid != (uid_t) -1) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_uid(new,kruid); ++ #else + new->uid = kruid; ++ #endif + if (!uid_eq(kruid, old->uid)) { + retval = set_user(new); + if (retval < 0) +@@ -688,10 +758,22 @@ long __sys_setresuid(uid_t ruid, uid_t euid, uid_t suid) + } + } + if (euid != (uid_t) -1) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_euid(new,keuid); ++ #else + new->euid = keuid; ++ #endif + if (suid != (uid_t) -1) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_suid(new,ksuid); ++ #else + new->suid = ksuid; ++ #endif ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,new->euid); ++ #else + new->fsuid = new->euid; ++ #endif + + retval = security_task_fix_setuid(new, old, LSM_SETID_RES); + if (retval < 0) +@@ -775,12 +857,29 @@ long __sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid) + return -ENOMEM; + + if (rgid != (gid_t) -1) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_gid(new,krgid); ++ #else + new->gid = krgid; ++ #endif + if (egid != (gid_t) -1) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_egid(new,kegid); ++ #else + new->egid = kegid; ++ #endif + if (sgid != (gid_t) -1) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_sgid(new,ksgid); ++ #else + new->sgid = ksgid; ++ #endif ++ ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsgid(new,new->egid); ++ #else + new->fsgid = new->egid; ++ #endif + + retval = security_task_fix_setgid(new, old, LSM_SETID_RES); + if (retval < 0) +@@ -847,7 +946,11 @@ long __sys_setfsuid(uid_t uid) + uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) || + ns_capable_setid(old->user_ns, CAP_SETUID)) { + if (!uid_eq(kuid, old->fsuid)) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,kuid); ++ #else + new->fsuid = kuid; ++ #endif + if (security_task_fix_setuid(new, old, LSM_SETID_FS) == 0) + goto change_okay; + } +@@ -891,7 +994,11 @@ long __sys_setfsgid(gid_t gid) + gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) || + ns_capable_setid(old->user_ns, CAP_SETGID)) { + if (!gid_eq(kgid, old->fsgid)) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsgid(new,kgid); ++ #else + new->fsgid = kgid; ++ #endif + if (security_task_fix_setgid(new,old,LSM_SETID_FS) == 0) + goto change_okay; + } +diff --git a/kernel/umh.c b/kernel/umh.c +index 3f646613a9d3..7ad7acb8629d 100644 +--- a/kernel/umh.c ++++ b/kernel/umh.c +@@ -30,6 +30,10 @@ + + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + #define CAP_BSET (void *)1 + #define CAP_PI (void *)2 + +@@ -92,9 +96,15 @@ static int call_usermodehelper_exec_async(void *data) + goto out; + + spin_lock(&umh_sysctl_lock); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_bset(new,cap_intersect(usermodehelper_bset, new->cap_bset)); ++ iee_set_cred_cap_inheritable(new,cap_intersect(usermodehelper_inheritable, ++ new->cap_inheritable)); ++ #else + new->cap_bset = cap_intersect(usermodehelper_bset, new->cap_bset); + new->cap_inheritable = cap_intersect(usermodehelper_inheritable, + new->cap_inheritable); ++ #endif + spin_unlock(&umh_sysctl_lock); + + if (sub_info->init) { +diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c +index 2c15bf6680c3..f96787c4df2e 100644 +--- a/kernel/user_namespace.c ++++ b/kernel/user_namespace.c +@@ -21,6 +21,10 @@ + #include + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + static struct kmem_cache *user_ns_cachep __read_mostly; + static DEFINE_MUTEX(userns_state_mutex); + +@@ -44,6 +48,19 @@ static void set_cred_user_ns(struct cred *cred, struct user_namespace *user_ns) + /* Start with the same capabilities as init but useless for doing + * anything as the capabilities are bound to the new user namespace. + */ ++ #ifdef CONFIG_CREDP ++ iee_set_cred_securebits(cred,SECUREBITS_DEFAULT); ++ iee_set_cred_cap_inheritable(cred,CAP_EMPTY_SET); ++ iee_set_cred_cap_permitted(cred,CAP_FULL_SET); ++ iee_set_cred_cap_effective(cred,CAP_FULL_SET); ++ iee_set_cred_cap_ambient(cred,CAP_EMPTY_SET); ++ iee_set_cred_cap_bset(cred,CAP_FULL_SET); ++#ifdef CONFIG_KEYS ++ key_put(cred->request_key_auth); ++ iee_set_cred_request_key_auth(cred,NULL); ++#endif ++ iee_set_cred_user_ns(cred,user_ns); ++ #else + cred->securebits = SECUREBITS_DEFAULT; + cred->cap_inheritable = CAP_EMPTY_SET; + cred->cap_permitted = CAP_FULL_SET; +@@ -56,6 +73,7 @@ static void set_cred_user_ns(struct cred *cred, struct user_namespace *user_ns) + #endif + /* tgcred will be cleared in our caller bc CLONE_THREAD won't be set */ + cred->user_ns = user_ns; ++ #endif + } + + /* +diff --git a/mm/Kconfig b/mm/Kconfig +index ccbad233f2b1..ab30a2ce9a3b 100644 +--- a/mm/Kconfig ++++ b/mm/Kconfig +@@ -145,6 +145,18 @@ config NUMA_KEEP_MEMINFO + config MEMORY_ISOLATION + bool + ++# Config for kernel module isolation ++config KOI ++ depends on ARM64 ++ depends on ARM64_VA_BITS_48 ++ depends on ARM64_4K_PAGES ++ def_bool n ++ ++# Configs for pgtable isolation ++config PTP ++ depends on IEE ++ def_bool y ++ + config COHERENT_DEVICE + bool "coherent device memory" + def_bool n +diff --git a/mm/damon/ops-common.c b/mm/damon/ops-common.c +index 75409601f934..e375200c93e6 100644 +--- a/mm/damon/ops-common.c ++++ b/mm/damon/ops-common.c +@@ -43,7 +43,11 @@ void damon_ptep_mkold(pte_t *pte, struct mm_struct *mm, unsigned long addr) + + if (pte_young(*pte)) { + referenced = true; ++ #ifdef CONFIG_PTP ++ set_pte(pte, pte_mkold(*pte)); ++ #else + *pte = pte_mkold(*pte); ++ #endif + } + + #ifdef CONFIG_MMU_NOTIFIER +@@ -69,7 +73,11 @@ void damon_pmdp_mkold(pmd_t *pmd, struct mm_struct *mm, unsigned long addr) + + if (pmd_young(*pmd)) { + referenced = true; ++ #ifdef CONFIG_PTP ++ set_pmd(pmd, pmd_mkold(*pmd)); ++ #else + *pmd = pmd_mkold(*pmd); ++ #endif + } + + #ifdef CONFIG_MMU_NOTIFIER +diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c +index 11d3b46ba187..4fea5dc21066 100644 +--- a/mm/debug_vm_pgtable.c ++++ b/mm/debug_vm_pgtable.c +@@ -263,7 +263,11 @@ static void __init pmd_huge_tests(pmd_t *pmdp, unsigned long pfn, pgprot_t prot) + * X86 defined pmd_set_huge() verifies that the given + * PMD is not a populated non-leaf entry. + */ ++ #ifdef CONFIG_PTP ++ set_pmd(pmdp, __pmd(0)); ++ #else + WRITE_ONCE(*pmdp, __pmd(0)); ++ #endif + WARN_ON(!pmd_set_huge(pmdp, __pfn_to_phys(pfn), prot)); + WARN_ON(!pmd_clear_huge(pmdp)); + pmd = READ_ONCE(*pmdp); +@@ -411,7 +415,11 @@ static void __init pud_huge_tests(pud_t *pudp, unsigned long pfn, pgprot_t prot) + * X86 defined pud_set_huge() verifies that the given + * PUD is not a populated non-leaf entry. + */ ++ #ifdef CONFIG_PTP ++ set_pud(pudp, __pud(0)); ++ #else + WRITE_ONCE(*pudp, __pud(0)); ++ #endif + WARN_ON(!pud_set_huge(pudp, __pfn_to_phys(pfn), prot)); + WARN_ON(!pud_clear_huge(pudp)); + pud = READ_ONCE(*pudp); +@@ -488,7 +496,11 @@ static void __init pud_clear_tests(struct mm_struct *mm, pud_t *pudp) + + pr_debug("Validating PUD clear\n"); + pud = __pud(pud_val(pud) | RANDOM_ORVALUE); ++ #ifdef CONFIG_PTP ++ set_pud(pudp, pud); ++ #else + WRITE_ONCE(*pudp, pud); ++ #endif + pud_clear(pudp); + pud = READ_ONCE(*pudp); + WARN_ON(!pud_none(pud)); +@@ -529,7 +541,11 @@ static void __init p4d_clear_tests(struct mm_struct *mm, p4d_t *p4dp) + + pr_debug("Validating P4D clear\n"); + p4d = __p4d(p4d_val(p4d) | RANDOM_ORVALUE); ++ #ifdef CONFIG_PTP ++ set_p4d(p4dp, p4d); ++ #else + WRITE_ONCE(*p4dp, p4d); ++ #endif + p4d_clear(p4dp); + p4d = READ_ONCE(*p4dp); + WARN_ON(!p4d_none(p4d)); +@@ -564,7 +580,11 @@ static void __init pgd_clear_tests(struct mm_struct *mm, pgd_t *pgdp) + + pr_debug("Validating PGD clear\n"); + pgd = __pgd(pgd_val(pgd) | RANDOM_ORVALUE); ++ #ifdef CONFIG_PTP ++ set_pgd(pgdp, pgd); ++ #else + WRITE_ONCE(*pgdp, pgd); ++ #endif + pgd_clear(pgdp); + pgd = READ_ONCE(*pgdp); + WARN_ON(!pgd_none(pgd)); +@@ -625,7 +645,11 @@ static void __init pmd_clear_tests(struct mm_struct *mm, pmd_t *pmdp) + + pr_debug("Validating PMD clear\n"); + pmd = __pmd(pmd_val(pmd) | RANDOM_ORVALUE); ++ #ifdef CONFIG_PTP ++ set_pmd(pmdp, pmd); ++ #else + WRITE_ONCE(*pmdp, pmd); ++ #endif + pmd_clear(pmdp); + pmd = READ_ONCE(*pmdp); + WARN_ON(!pmd_none(pmd)); +diff --git a/mm/early_ioremap.c b/mm/early_ioremap.c +index a0018ad1a1f6..325e9b202139 100644 +--- a/mm/early_ioremap.c ++++ b/mm/early_ioremap.c +@@ -153,7 +153,11 @@ __early_ioremap(resource_size_t phys_addr, unsigned long size, pgprot_t prot) + if (after_paging_init) + __late_set_fixmap(idx, phys_addr, prot); + else ++ #ifdef CONFIG_PTP ++ __iee_set_fixmap_pre_init(idx, phys_addr, prot); ++ #else + __early_set_fixmap(idx, phys_addr, prot); ++ #endif + phys_addr += PAGE_SIZE; + --idx; + --nrpages; +@@ -205,13 +209,66 @@ void __init early_iounmap(void __iomem *addr, unsigned long size) + if (after_paging_init) + __late_clear_fixmap(idx); + else ++ #ifdef CONFIG_PTP ++ __iee_set_fixmap_pre_init(idx, 0, FIXMAP_PAGE_CLEAR); ++ #else + __early_set_fixmap(idx, 0, FIXMAP_PAGE_CLEAR); ++ #endif + --idx; + --nrpages; + } + prev_map[slot] = NULL; + } + ++#ifdef CONFIG_PTP ++void __init early_iounmap_after_init(void __iomem *addr, unsigned long size) ++{ ++ unsigned long virt_addr; ++ unsigned long offset; ++ unsigned int nrpages; ++ enum fixed_addresses idx; ++ int i, slot; ++ ++ slot = -1; ++ for (i = 0; i < FIX_BTMAPS_SLOTS; i++) { ++ if (prev_map[i] == addr) { ++ slot = i; ++ break; ++ } ++ } ++ ++ if (WARN(slot < 0, "early_iounmap(%p, %08lx) not found slot\n", ++ addr, size)) ++ return; ++ ++ if (WARN(prev_size[slot] != size, ++ "early_iounmap(%p, %08lx) [%d] size not consistent %08lx\n", ++ addr, size, slot, prev_size[slot])) ++ return; ++ ++ WARN(early_ioremap_debug, "early_iounmap(%p, %08lx) [%d]\n", ++ addr, size, slot); ++ ++ virt_addr = (unsigned long)addr; ++ if (WARN_ON(virt_addr < fix_to_virt(FIX_BTMAP_BEGIN))) ++ return; ++ ++ offset = offset_in_page(virt_addr); ++ nrpages = PAGE_ALIGN(offset + size) >> PAGE_SHIFT; ++ ++ idx = FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*slot; ++ while (nrpages > 0) { ++ if (after_paging_init) ++ __late_clear_fixmap(idx); ++ else ++ __early_set_fixmap(idx, 0, FIXMAP_PAGE_CLEAR); ++ --idx; ++ --nrpages; ++ } ++ prev_map[slot] = NULL; ++} ++#endif ++ + /* Remap an IO device */ + void __init __iomem * + early_ioremap(resource_size_t phys_addr, unsigned long size) +diff --git a/mm/huge_memory.c b/mm/huge_memory.c +index 20d548da4660..d0c0416e29de 100644 +--- a/mm/huge_memory.c ++++ b/mm/huge_memory.c +@@ -35,6 +35,10 @@ + #include + #include + ++#ifdef CONFIG_PTP ++#include ++#endif ++ + #include + #include + #include "internal.h" +@@ -2025,7 +2029,8 @@ static void __split_huge_zero_page_pmd(struct vm_area_struct *vma, + old_pmd = pmdp_huge_clear_flush(vma, haddr, pmd); + + pgtable = pgtable_trans_huge_withdraw(mm, pmd); +- pmd_populate(mm, &_pmd, pgtable); ++ //pmd_populate(mm, &_pmd, pgtable); ++ _pmd = __pmd(__phys_to_pmd_val(page_to_phys(pgtable)) | PMD_TYPE_TABLE); + + for (i = 0; i < HPAGE_PMD_NR; i++, haddr += PAGE_SIZE) { + pte_t *pte, entry; +@@ -2152,7 +2157,8 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd, + * This's critical for some architectures (Power). + */ + pgtable = pgtable_trans_huge_withdraw(mm, pmd); +- pmd_populate(mm, &_pmd, pgtable); ++ //pmd_populate(mm, &_pmd, pgtable); ++ _pmd = __pmd(__phys_to_pmd_val(page_to_phys(pgtable)) | PMD_TYPE_TABLE); + + for (i = 0, addr = haddr; i < HPAGE_PMD_NR; i++, addr += PAGE_SIZE) { + pte_t entry, *pte; +diff --git a/mm/init-mm.c b/mm/init-mm.c +index 2dfed38be177..d721f25f3357 100644 +--- a/mm/init-mm.c ++++ b/mm/init-mm.c +@@ -44,3 +44,20 @@ struct mm_struct init_mm = { + #endif + INIT_MM_CONTEXT(init_mm) + }; ++ ++#ifdef CONFIG_KOI ++/* ++ * This is used to init ko_mm when creating pgtable for a ko to be isolated ++ * the ko_mm belongs to a specific ko, pgdp is allocated by koi_pgd_alloc ++ */ ++void init_ko_mm(struct mm_struct *ko_mm, pgd_t *pgdp) { ++ ko_mm->mm_rb = RB_ROOT; ++ ko_mm->pgd = pgdp; ++ ko_mm->mm_users = (atomic_t)ATOMIC_INIT(2); ++ ko_mm->mm_count = (atomic_t)ATOMIC_INIT(1); ++ ko_mm->mmap_lock = (struct rw_semaphore)__RWSEM_INITIALIZER(ko_mm->mmap_lock); ++ ko_mm->page_table_lock = __SPIN_LOCK_UNLOCKED(ko_mm.page_table_lock); ++ ko_mm->arg_lock = __SPIN_LOCK_UNLOCKED(ko_mm->arg_lock); ++ ko_mm->mmlist = (struct list_head)LIST_HEAD_INIT(ko_mm->mmlist); ++} ++#endif +diff --git a/mm/memory.c b/mm/memory.c +index cd72c3d63e60..3f5e949d2d61 100644 +--- a/mm/memory.c ++++ b/mm/memory.c +@@ -76,6 +76,11 @@ + #include + #include + ++#ifdef CONFIG_PTP ++#include ++extern void iee_copy_pte_range(pte_t *new_dst, pte_t *old_dst, pte_t *src_pte, struct vm_area_struct *src_vma, unsigned long dst_vm_flags, pte_t *end_pte); ++#endif ++ + #include + + #include +@@ -736,7 +741,11 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm, + pte = pte_swp_mksoft_dirty(pte); + if (pte_swp_uffd_wp(*src_pte)) + pte = pte_swp_mkuffd_wp(pte); ++ #ifdef CONFIG_PTP ++ iee_set_pte_at_delayed(src_mm, addr, src_pte, pte); ++ #else + set_pte_at(src_mm, addr, src_pte, pte); ++ #endif + } + } else if (is_device_private_entry(entry)) { + page = device_private_entry_to_page(entry); +@@ -767,12 +776,20 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm, + pte = swp_entry_to_pte(entry); + if (pte_swp_uffd_wp(*src_pte)) + pte = pte_swp_mkuffd_wp(pte); ++ #ifdef CONFIG_PTP ++ iee_set_pte_at_delayed(src_mm, addr, src_pte, pte); ++ #else + set_pte_at(src_mm, addr, src_pte, pte); ++ #endif + } + } + if (!userfaultfd_wp(dst_vma)) + pte = pte_swp_clear_uffd_wp(pte); ++ #ifdef CONFIG_PTP ++ iee_set_pte_at(dst_mm, addr, dst_pte, pte); ++ #else + set_pte_at(dst_mm, addr, dst_pte, pte); ++ #endif + return 0; + } + +@@ -858,7 +875,11 @@ copy_present_page(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma + if (userfaultfd_pte_wp(dst_vma, *src_pte)) + /* Uffd-wp needs to be delivered to dest pte as well */ + pte = pte_wrprotect(pte_mkuffd_wp(pte)); ++ #ifdef CONFIG_PTP ++ iee_set_pte_at(dst_vma->vm_mm, addr, dst_pte, pte); ++ #else + set_pte_at(dst_vma->vm_mm, addr, dst_pte, pte); ++ #endif + return 0; + } + +@@ -896,7 +917,9 @@ copy_present_pte(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, + * in the parent and the child + */ + if (is_cow_mapping(vm_flags) && pte_write(pte)) { ++ #ifndef CONFIG_PTP + ptep_set_wrprotect(src_mm, addr, src_pte); ++ #endif + pte = pte_wrprotect(pte); + } + +@@ -911,7 +934,11 @@ copy_present_pte(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, + if (!userfaultfd_wp(dst_vma)) + pte = pte_clear_uffd_wp(pte); + ++ #ifdef CONFIG_PTP ++ iee_set_pte_at(dst_vma->vm_mm, addr, dst_pte, pte); ++ #else + set_pte_at(dst_vma->vm_mm, addr, dst_pte, pte); ++ #endif + return 0; + } + +@@ -948,6 +975,12 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, + int rss[NR_MM_COUNTERS]; + swp_entry_t entry = (swp_entry_t){0}; + struct page *prealloc = NULL; ++ #ifdef CONFIG_PTP ++ unsigned long orig_addr; ++ pmd_t pmd; ++ pte_t *old_dst; ++ void *new; ++ #endif + + again: + progress = 0; +@@ -958,6 +991,13 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, + ret = -ENOMEM; + goto out; + } ++ #ifdef CONFIG_PTP ++ orig_addr = addr; ++ new = (void *)iee_read_tmp_page(get_current()); ++ pmd = READ_ONCE(*dst_pmd); ++ dst_pte = (pte_t *)new + pte_index(addr); ++ old_dst = pte_offset_map(&pmd, addr); ++ #endif + src_pte = pte_offset_map(src_pmd, addr); + src_ptl = pte_lockptr(src_mm, src_pmd); + spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING); +@@ -1011,7 +1051,11 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, + } + progress += 8; + } while (dst_pte++, src_pte++, addr += PAGE_SIZE, addr != end); +- ++ #ifdef CONFIG_PTP ++ iee_copy_pte_range(orig_dst_pte, old_dst, orig_src_pte, src_vma, dst_vma->vm_flags, src_pte); ++ orig_dst_pte = pte_offset_map(&pmd, orig_addr); ++ dst_pte = pte_offset_map(&pmd, addr); ++ #endif + arch_leave_lazy_mmu_mode(); + spin_unlock(src_ptl); + pte_unmap(orig_src_pte); +@@ -5476,13 +5520,21 @@ bool ptlock_alloc(struct page *page) + ptl = kmem_cache_alloc(page_ptl_cachep, GFP_KERNEL); + if (!ptl) + return false; ++ #ifdef CONFIG_PTP ++ ((struct pgtable_page *)(page->slab_cache))->ptl = ptl; ++ #else + page->ptl = ptl; ++ #endif + return true; + } + + void ptlock_free(struct page *page) + { ++ #ifdef CONFIG_PTP ++ kmem_cache_free(page_ptl_cachep, ((struct pgtable_page *)(page->slab_cache))->ptl); ++ #else + kmem_cache_free(page_ptl_cachep, page->ptl); ++ #endif + } + #endif + +diff --git a/mm/mmap.c b/mm/mmap.c +index bddd7f0f88b9..f7f0f169bc22 100644 +--- a/mm/mmap.c ++++ b/mm/mmap.c +@@ -2788,7 +2788,11 @@ static void unmap_region(struct mm_struct *mm, + + free_pgtables(&tlb, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, + next ? next->vm_start : USER_PGTABLES_CEILING); ++ #ifdef CONFIG_PTP ++ iee_tlb_finish_mmu(&tlb, start, end); ++ #else + tlb_finish_mmu(&tlb, start, end); ++ #endif + } + + /* +@@ -3334,7 +3338,11 @@ void exit_mmap(struct mm_struct *mm) + /* Use -1 here to ensure all VMAs in the mm are unmapped */ + unmap_vmas(&tlb, vma, 0, -1); + free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING); ++ #ifdef CONFIG_PTP ++ iee_tlb_finish_mmu(&tlb, 0, -1); ++ #else + tlb_finish_mmu(&tlb, 0, -1); ++ #endif + + /* + * Walk the list again, actually closing and freeing it, +diff --git a/mm/mmu_gather.c b/mm/mmu_gather.c +index 1c66771f088b..4580ac9f5756 100644 +--- a/mm/mmu_gather.c ++++ b/mm/mmu_gather.c +@@ -233,6 +233,71 @@ void tlb_remove_table(struct mmu_gather *tlb, void *table) + tlb_table_flush(tlb); + } + ++#ifdef CONFIG_PTP ++static void __iee_tlb_remove_table_free(struct mmu_table_batch *batch) ++{ ++ int i; ++ ++ for (i = 0; i < batch->nr; i++) ++ __iee_tlb_remove_table(batch->tables[i]); ++ ++ free_page((unsigned long)batch); ++} ++ ++#ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE ++static void iee_tlb_remove_table_rcu(struct rcu_head *head) ++{ ++ __iee_tlb_remove_table_free(container_of(head, struct mmu_table_batch, rcu)); ++} ++ ++static void iee_tlb_remove_table_free(struct mmu_table_batch *batch) ++{ ++ call_rcu(&batch->rcu, iee_tlb_remove_table_rcu); ++} ++#else ++static void iee_tlb_remove_table_free(struct mmu_table_batch *batch) ++{ ++ __iee_tlb_remove_table_free(batch); ++} ++#endif ++ ++static void iee_tlb_remove_table_one(void *table) ++{ ++ tlb_remove_table_sync_one(); ++ __iee_tlb_remove_table(table); ++} ++ ++static void iee_tlb_table_flush(struct mmu_gather *tlb) ++{ ++ struct mmu_table_batch **batch = &tlb->batch; ++ ++ if (*batch) { ++ tlb_table_invalidate(tlb); ++ iee_tlb_remove_table_free(*batch); ++ *batch = NULL; ++ } ++} ++ ++void iee_tlb_remove_table(struct mmu_gather *tlb, void *table) ++{ ++ struct mmu_table_batch **batch = &tlb->batch; ++ ++ if (*batch == NULL) { ++ *batch = (struct mmu_table_batch *)__get_free_page(GFP_NOWAIT | __GFP_NOWARN); ++ if (*batch == NULL) { ++ tlb_table_invalidate(tlb); ++ iee_tlb_remove_table_one(table); ++ return; ++ } ++ (*batch)->nr = 0; ++ } ++ ++ (*batch)->tables[(*batch)->nr++] = table; ++ if ((*batch)->nr == MAX_TABLE_BATCH) ++ iee_tlb_table_flush(tlb); ++} ++#endif ++ + static inline void tlb_table_init(struct mmu_gather *tlb) + { + tlb->batch = NULL; +@@ -342,3 +407,56 @@ void tlb_finish_mmu(struct mmu_gather *tlb, + #endif + dec_tlb_flush_pending(tlb->mm); + } ++ ++#ifdef CONFIG_PTP ++static void iee_tlb_flush_mmu_free(struct mmu_gather *tlb) ++{ ++ iee_tlb_table_flush(tlb); ++#ifndef CONFIG_MMU_GATHER_NO_GATHER ++ tlb_batch_pages_flush(tlb); ++#endif ++} ++ ++void iee_tlb_flush_mmu(struct mmu_gather *tlb) ++{ ++ tlb_flush_mmu_tlbonly(tlb); ++ iee_tlb_flush_mmu_free(tlb); ++} ++ ++void iee_tlb_finish_mmu(struct mmu_gather *tlb, ++ unsigned long start, unsigned long end) ++{ ++ /* ++ * If there are parallel threads are doing PTE changes on same range ++ * under non-exclusive lock (e.g., mmap_lock read-side) but defer TLB ++ * flush by batching, one thread may end up seeing inconsistent PTEs ++ * and result in having stale TLB entries. So flush TLB forcefully ++ * if we detect parallel PTE batching threads. ++ * ++ * However, some syscalls, e.g. munmap(), may free page tables, this ++ * needs force flush everything in the given range. Otherwise this ++ * may result in having stale TLB entries for some architectures, ++ * e.g. aarch64, that could specify flush what level TLB. ++ */ ++ if (mm_tlb_flush_nested(tlb->mm)) { ++ /* ++ * The aarch64 yields better performance with fullmm by ++ * avoiding multiple CPUs spamming TLBI messages at the ++ * same time. ++ * ++ * On x86 non-fullmm doesn't yield significant difference ++ * against fullmm. ++ */ ++ tlb->fullmm = 1; ++ __tlb_reset_range(tlb); ++ tlb->freed_tables = 1; ++ } ++ ++ iee_tlb_flush_mmu(tlb); ++ ++#ifndef CONFIG_MMU_GATHER_NO_GATHER ++ tlb_batch_list_free(tlb); ++#endif ++ dec_tlb_flush_pending(tlb->mm); ++} ++#endif +diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c +index 4e640baf9794..daa977072d17 100644 +--- a/mm/pgtable-generic.c ++++ b/mm/pgtable-generic.c +@@ -165,9 +165,17 @@ void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, + + /* FIFO */ + if (!pmd_huge_pte(mm, pmdp)) ++ #ifdef CONFIG_PTP ++ INIT_LIST_HEAD(&(((struct pgtable_page *)(pgtable->slab_cache))->lru)); ++ #else + INIT_LIST_HEAD(&pgtable->lru); ++ #endif + else ++ #ifdef CONFIG_PTP ++ list_add(&(((struct pgtable_page *)(pgtable->slab_cache))->lru), &(((struct pgtable_page *)(pmd_huge_pte(mm, pmdp)->slab_cache))->lru)); ++ #else + list_add(&pgtable->lru, &pmd_huge_pte(mm, pmdp)->lru); ++ #endif + pmd_huge_pte(mm, pmdp) = pgtable; + } + #endif +@@ -177,15 +185,30 @@ void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, + pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) + { + pgtable_t pgtable; ++ #ifdef CONFIG_PTP ++ struct pgtable_page *pgtable_page; ++ #endif + + assert_spin_locked(pmd_lockptr(mm, pmdp)); + + /* FIFO */ + pgtable = pmd_huge_pte(mm, pmdp); ++ #ifdef CONFIG_PTP ++ pgtable_page = list_first_entry_or_null(&(((struct pgtable_page *)(pgtable->slab_cache))->lru),struct pgtable_page, lru); ++ if(pgtable_page) ++ pmd_huge_pte(mm, pmdp) = pgtable_page->page; ++ else ++ pmd_huge_pte(mm, pmdp) = NULL; ++ #else + pmd_huge_pte(mm, pmdp) = list_first_entry_or_null(&pgtable->lru, + struct page, lru); ++ #endif + if (pmd_huge_pte(mm, pmdp)) ++ #ifdef CONFIG_PTP ++ list_del(&(((struct pgtable_page *)(pgtable->slab_cache))->lru)); ++ #else + list_del(&pgtable->lru); ++ #endif + return pgtable; + } + #endif +diff --git a/mm/slab.h b/mm/slab.h +index 8414c345127b..c6d92753b563 100644 +--- a/mm/slab.h ++++ b/mm/slab.h +@@ -40,6 +40,14 @@ struct kmem_cache { + #include + #endif + ++#ifdef CONFIG_IEE ++extern struct kmem_cache *pgtable_jar; ++extern struct kmem_cache *pgtable_page_jar; ++extern struct kmem_cache *iee_stack_jar; ++extern struct kmem_cache *cred_jar; ++extern struct kmem_cache *task_struct_cachep; ++#endif ++ + #include + #include + #include +@@ -597,6 +605,14 @@ static inline void cache_random_seq_destroy(struct kmem_cache *cachep) { } + + static inline bool slab_want_init_on_alloc(gfp_t flags, struct kmem_cache *c) + { ++ #ifdef CONFIG_IEE ++ if(c == iee_stack_jar) ++ return false; ++ #endif ++ #ifdef CONFIG_PTP ++ if(c == pgtable_jar) ++ return false; ++ #endif + if (static_branch_unlikely(&init_on_alloc)) { + if (c->ctor) + return false; +diff --git a/mm/slab_common.c b/mm/slab_common.c +index 5f1a1c38a815..924cd03f452b 100644 +--- a/mm/slab_common.c ++++ b/mm/slab_common.c +@@ -170,6 +170,15 @@ int slab_unmergeable(struct kmem_cache *s) + if (s->ctor) + return 1; + ++ #ifdef CONFIG_IEE ++ if(strcmp(s->name, "iee_stack_jar") == 0) ++ return 1; ++ #endif ++ #ifdef CONFIG_PTP ++ if(strcmp(s->name, "pgtable_jar") == 0) ++ return 1; ++ #endif ++ + if (s->usersize) + return 1; + +@@ -193,6 +202,15 @@ struct kmem_cache *find_mergeable(unsigned int size, unsigned int align, + if (ctor) + return NULL; + ++ #ifdef CONFIG_IEE ++ if(strcmp(name, "iee_stack_jar") == 0) ++ return NULL; ++ #endif ++ #ifdef CONFIG_PTP ++ if(strcmp(name, "pgtable_jar") == 0) ++ return NULL; ++ #endif ++ + size = ALIGN(size, sizeof(void *)); + align = calculate_alignment(flags, align, size); + size = ALIGN(size, align); +diff --git a/mm/slub.c b/mm/slub.c +index ec1c3a376d36..ccca29b59d9e 100644 +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -37,10 +37,22 @@ + #include + #include + ++#ifdef CONFIG_IEE ++#include ++#include ++#include ++#endif ++ + #include ++#include + + #include "internal.h" + ++#ifdef CONFIG_KOI ++extern s64 koi_offset; ++extern void koi_add_page_mapping(unsigned long dst, unsigned long src); ++extern void koi_remove_page_mapping(unsigned long addr); ++#endif + /* + * Lock order: + * 1. slab_mutex (Global Mutex) +@@ -219,15 +231,6 @@ static inline bool kmem_cache_has_cpu_partial(struct kmem_cache *s) + * Tracking user of a slab. + */ + #define TRACK_ADDRS_COUNT 16 +-struct track { +- unsigned long addr; /* Called from address */ +-#ifdef CONFIG_STACKTRACE +- unsigned long addrs[TRACK_ADDRS_COUNT]; /* Called from address */ +-#endif +- int cpu; /* Was running on cpu */ +- int pid; /* Pid context */ +- unsigned long when; /* When did the operation occur */ +-}; + + enum track_item { TRACK_ALLOC, TRACK_FREE }; + +@@ -293,8 +296,15 @@ static inline void *freelist_ptr(const struct kmem_cache *s, void *ptr, + static inline void *freelist_dereference(const struct kmem_cache *s, + void *ptr_addr) + { ++ #ifdef CONFIG_IEE ++ if(s == iee_stack_jar) ++ return iee_read_freeptr(ptr_addr); ++ else ++ return freelist_ptr(s, (void *)*(unsigned long *)(ptr_addr), (unsigned long)ptr_addr); ++ #else + return freelist_ptr(s, (void *)*(unsigned long *)(ptr_addr), + (unsigned long)ptr_addr); ++ #endif + } + + static inline void *get_freepointer(struct kmem_cache *s, void *object) +@@ -328,7 +338,17 @@ static inline void set_freepointer(struct kmem_cache *s, void *object, void *fp) + BUG_ON(object == fp); /* naive detection of double free or corruption */ + #endif + ++ #ifdef CONFIG_IEE ++ if(s == iee_stack_jar) ++ iee_set_stack_freeptr(freeptr_addr, freelist_ptr(s, fp, freeptr_addr)); ++ else if((IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) || ++ (IS_ENABLED(CONFIG_PTP) && (s == pgtable_jar))) ++ iee_set_freeptr((void **)freeptr_addr, freelist_ptr(s, fp, freeptr_addr)); ++ else ++ *(void **)freeptr_addr = freelist_ptr(s, fp, freeptr_addr); ++ #else + *(void **)freeptr_addr = freelist_ptr(s, fp, freeptr_addr); ++ #endif + } + + /* Loop over all objects in a slab */ +@@ -601,24 +621,75 @@ static void set_track(struct kmem_cache *s, void *object, + enum track_item alloc, unsigned long addr) + { + struct track *p = get_track(s, object, alloc); ++ #ifdef CONFIG_IEE ++ struct track tmp; ++ #endif + + if (addr) { + #ifdef CONFIG_STACKTRACE + unsigned int nr_entries; + + metadata_access_enable(); ++ #ifdef CONFIG_IEE ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ { ++ nr_entries = stack_trace_save_iee(p->addrs, TRACK_ADDRS_COUNT, 3); ++ } ++ else ++ nr_entries = stack_trace_save(p->addrs, TRACK_ADDRS_COUNT, 3); ++ #else + nr_entries = stack_trace_save(p->addrs, TRACK_ADDRS_COUNT, 3); ++ #endif + metadata_access_disable(); + + if (nr_entries < TRACK_ADDRS_COUNT) ++ #ifdef CONFIG_IEE ++ { ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ { ++ tmp = *p; ++ tmp.addrs[nr_entries] = 0; ++ iee_set_track(p,&tmp); ++ } ++ else ++ p->addrs[nr_entries] = 0; ++ } ++ #else + p->addrs[nr_entries] = 0; ++ #endif + #endif ++ #ifdef CONFIG_IEE ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ { ++ tmp = *p; ++ tmp.addr = addr; ++ tmp.cpu = smp_processor_id(); ++ tmp.pid = current->pid; ++ tmp.when = jiffies; ++ iee_set_track(p,&tmp); ++ } ++ else ++ { ++ p->addr = addr; ++ p->cpu = smp_processor_id(); ++ p->pid = current->pid; ++ p->when = jiffies; ++ } ++ #else + p->addr = addr; + p->cpu = smp_processor_id(); + p->pid = current->pid; + p->when = jiffies; ++ #endif + } else { ++ #ifdef CONFIG_IEE ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ iee_memset(p, 0, sizeof(struct track)); ++ else ++ memset(p, 0, sizeof(struct track)); ++ #else + memset(p, 0, sizeof(struct track)); ++ #endif + } + } + +@@ -775,15 +846,46 @@ static void init_object(struct kmem_cache *s, void *object, u8 val) + u8 *p = object; + + if (s->flags & SLAB_RED_ZONE) ++ #ifdef CONFIG_IEE ++ { ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ iee_memset(p - s->red_left_pad, val, s->red_left_pad); ++ else ++ memset(p - s->red_left_pad, val, s->red_left_pad); ++ } ++ #else + memset(p - s->red_left_pad, val, s->red_left_pad); ++ #endif + + if (s->flags & __OBJECT_POISON) { ++ #ifdef CONFIG_IEE ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ { ++ iee_memset(p, POISON_FREE, s->object_size - 1); ++ iee_memset(&p[s->object_size - 1],POISON_END,1); ++ } ++ else ++ { ++ memset(p, POISON_FREE, s->object_size - 1); ++ p[s->object_size - 1] = POISON_END; ++ } ++ #else + memset(p, POISON_FREE, s->object_size - 1); + p[s->object_size - 1] = POISON_END; ++ #endif + } + + if (s->flags & SLAB_RED_ZONE) ++ #ifdef CONFIG_IEE ++ { ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ iee_memset(p + s->object_size, val, s->inuse - s->object_size); ++ else ++ memset(p + s->object_size, val, s->inuse - s->object_size); ++ } ++ #else + memset(p + s->object_size, val, s->inuse - s->object_size); ++ #endif + } + + static void restore_bytes(struct kmem_cache *s, char *message, u8 data, +@@ -1143,7 +1245,14 @@ void setup_page_debug(struct kmem_cache *s, struct page *page, void *addr) + return; + + metadata_access_enable(); ++ #ifdef CONFIG_IEE ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ iee_memset(addr, POISON_INUSE, page_size(page)); ++ else ++ memset(addr, POISON_INUSE, page_size(page)); ++ #else + memset(addr, POISON_INUSE, page_size(page)); ++ #endif + metadata_access_disable(); + } + +@@ -1645,14 +1754,70 @@ static void *setup_object(struct kmem_cache *s, struct page *page, + static inline struct page *alloc_slab_page(struct kmem_cache *s, + gfp_t flags, int node, struct kmem_cache_order_objects oo) + { ++#if defined(CONFIG_KOI) && !defined(CONFIG_IEE) ++ void *token_addr, *alloc_token; ++ int i; ++#endif + struct page *page; + unsigned int order = oo_order(oo); + ++ #ifdef CONFIG_IEE ++ if(IS_ENABLED(CONFIG_PTP) && (s == pgtable_jar)) ++ { ++ flags |= __GFP_ZERO; ++ } ++ #endif ++ + if (node == NUMA_NO_NODE) + page = alloc_pages(flags, order); + else + page = __alloc_pages_node(node, flags, order); + ++ #ifdef CONFIG_IEE ++ if(!page) ++ return page; ++ ++ if(IS_ENABLED(CONFIG_PTP) && (s == pgtable_jar)) ++ { ++ int i; ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ set_page_refcounted(page + i); ++ } ++ set_iee_page((unsigned long)page_address(page), order); ++ } ++ ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ { ++ set_iee_page((unsigned long)page_address(page), order); ++ } ++ ++ if(s == iee_stack_jar) ++ { ++ iee_set_kernel_upage((unsigned long)page_address(page), order); ++ } ++ ++ // If the page belongs to a task_struct, alloc token for it and set iee&lm va. ++ if(s == task_struct_cachep) ++ { ++ void *token_addr = (void *)__phys_to_iee(page_to_phys(page)); ++ void *alloc_token = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, order); ++ iee_set_token_page_valid(token_addr, alloc_token, order); ++ } ++ #else ++ #ifdef CONFIG_KOI ++ if (!page) ++ return page; ++ if (strcmp(s->name, "task_struct") == 0) { ++ for (i = 0; i < (0x1 << order); i++) { ++ token_addr = (unsigned long)__phys_to_virt(page_to_phys(page + i)) + (unsigned long)KOI_OFFSET; ++ alloc_token = __get_free_page(GFP_KERNEL | __GFP_ZERO); ++ koi_add_page_mapping(token_addr, (void *)alloc_token); ++ } ++ } ++ #endif ++ #endif ++ + if (page) + account_slab_page(page, order, s); + +@@ -1745,6 +1910,21 @@ static bool shuffle_freelist(struct kmem_cache *s, struct page *page) + cur = setup_object(s, page, cur); + page->freelist = cur; + ++ #ifdef CONFIG_IEE ++ if(s == task_struct_cachep) ++ { ++ int i; ++ void *pstack; ++ void *obj; ++ for(i = 0; i < freelist_count; i++) ++ { ++ pstack = get_iee_stack(); ++ obj = start + s->random_seq[i]; ++ iee_init_token((struct task_struct *)obj, pstack + PAGE_SIZE * 4, (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 0)); ++ } ++ } ++ #endif ++ + for (idx = 1; idx < page->objects; idx++) { + next = next_freelist_entry(s, page, &pos, start, page_limit, + freelist_count); +@@ -1764,6 +1944,24 @@ static inline int init_cache_random_seq(struct kmem_cache *s) + static inline void init_freelist_randomization(void) { } + static inline bool shuffle_freelist(struct kmem_cache *s, struct page *page) + { ++ #ifdef CONFIG_IEE ++ void *start; ++ unsigned long freelist_count; ++ freelist_count = oo_objects(s->oo); ++ start = fixup_red_left(s, page_address(page)); ++ if(s == task_struct_cachep) ++ { ++ int i; ++ void *pstack; ++ void *obj; ++ for(i = 0; i < freelist_count; i++) ++ { ++ pstack = get_iee_stack(); ++ obj = start + s->size * i; ++ iee_init_token((struct task_struct *)obj, pstack + PAGE_SIZE * 4, (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, 0)); ++ } ++ } ++ #endif + return false; + } + #endif /* CONFIG_SLAB_FREELIST_RANDOM */ +@@ -1809,6 +2007,21 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) + page->objects = oo_objects(oo); + + page->slab_cache = s; ++ #ifdef CONFIG_PTP ++ { ++ int order = compound_order(page); ++ if(s == pgtable_jar) ++ { ++ int i; ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ (page+i)->slab_cache = kmem_cache_alloc(pgtable_page_jar, GFP_KERNEL | __GFP_ZERO); ++ spin_lock_init(&((struct pgtable_page *)((page+i)->slab_cache))->ptl); ++ ((struct pgtable_page *)((page+i)->slab_cache))->page = page+i; ++ } ++ } ++ } ++ #endif + __SetPageSlab(page); + if (page_is_pfmemalloc(page)) + SetPageSlabPfmemalloc(page); +@@ -1878,6 +2091,91 @@ static void __free_slab(struct kmem_cache *s, struct page *page) + if (current->reclaim_state) + current->reclaim_state->reclaimed_slab += pages; + unaccount_slab_page(page, order, s); ++ ++ #ifdef CONFIG_IEE ++ if(IS_ENABLED(CONFIG_PTP) && (s == pgtable_jar)) ++ { ++ int i; ++ unset_iee_page((unsigned long)page_address(page), order); ++ for(i = 1; i < (0x1 << order); i++) ++ { ++ set_page_count(page + i, 0); ++ } ++ } ++ ++ if(IS_ENABLED(CONFIG_CREDP) && (s == cred_jar)) ++ { ++ unset_iee_page((unsigned long)page_address(page), order); ++ } ++ ++ if(s == iee_stack_jar) ++ { ++ iee_set_kernel_ppage((unsigned long)page_address(page), order); ++ } ++ ++ // If the page containing this token is empty, free it and restore iee&lm va. ++ if(s == task_struct_cachep) ++ { ++ // Free stack. ++ int i; ++ void *start = fixup_red_left(s, page_address(page)); ++ void *obj; ++ void *iee_stack; ++ void *tmp_page; ++ void *token_addr; ++ // Free iee stack and tmp page. ++ for(i = 0; i < oo_objects(s->oo); i++) ++ { ++ #ifdef CONFIG_SLAB_FREELIST_RANDOM ++ obj = start + s->random_seq[i]; ++ #else ++ obj = start + i * s->size; ++ #endif ++ tmp_page = iee_read_tmp_page((struct task_struct *)obj); ++ free_pages((unsigned long)tmp_page, 0); ++ iee_stack = (void *)iee_read_token_stack((struct task_struct *)obj); ++ if (iee_stack) { ++ free_iee_stack((void *)(iee_stack - PAGE_SIZE * 4)); ++ } ++ } ++ // Free token. ++ token_addr = (void *)__phys_to_iee(page_to_phys(page)); ++ { ++ pgd_t *pgdir = swapper_pg_dir; ++ pgd_t *pgdp = pgd_offset_pgd(pgdir, (unsigned long)token_addr); ++ p4d_t *p4dp = p4d_offset(pgdp, (unsigned long)token_addr); ++ pud_t *pudp = pud_offset(p4dp, (unsigned long)token_addr); ++ pmd_t *pmdp = pmd_offset(pudp, (unsigned long)token_addr); ++ pte_t *ptep = pte_offset_kernel(pmdp, (unsigned long)token_addr); ++ void *token_page = page_address(pte_page(*ptep)); ++ iee_set_token_page_invalid(token_addr, token_page, order); ++ free_pages((unsigned long)token_page, order); ++ } ++ } ++ #else ++ #ifdef CONFIG_KOI ++ if(strcmp(s->name, "task_struct") == 0) ++ { ++ int i; ++ for(i = 0; i < (0x1 << order); i++) ++ { ++ void *token_addr = __phys_to_virt(page_to_phys(page + i)) + (unsigned long)KOI_OFFSET; ++ unsigned long flags; ++ local_irq_save(flags); ++ asm volatile("at s1e1r, %0"::"r"(token_addr)); ++ isb(); ++ unsigned long res = read_sysreg(par_el1); ++ local_irq_restore(flags); ++ if(!(res & 0x1)) ++ { ++ koi_remove_page_mapping(token_addr); ++ free_page(__va(res & PTE_ADDR_MASK)); ++ } ++ } ++ } ++ #endif ++ #endif ++ + __free_pages(page, order); + } + +@@ -1890,6 +2188,19 @@ static void rcu_free_slab(struct rcu_head *h) + + static void free_slab(struct kmem_cache *s, struct page *page) + { ++ #ifdef CONFIG_PTP ++ int order = compound_order(page); ++ if(s == pgtable_jar) ++ { ++ int i; ++ for(i = 1; i < (0x1 << order); i++) ++ { ++ kmem_cache_free(pgtable_page_jar, (page+i)->slab_cache); ++ (page+i)->slab_cache = s; ++ } ++ } ++ #endif ++ + if (unlikely(s->flags & SLAB_TYPESAFE_BY_RCU)) { + call_rcu(&page->rcu_head, rcu_free_slab); + } else +@@ -3609,6 +3920,36 @@ static void early_kmem_cache_node_alloc(int node) + __add_partial(n, page, DEACTIVATE_TO_HEAD); + } + ++#ifdef CONFIG_PTP ++void early_pgtable_jar_alloc(struct kmem_cache *pgtable_jar) ++{ ++ struct page *page; ++ int node = 0; ++ int i = 0; ++ ++ for(i = 0; i < nr_cpu_ids; i++) ++ { ++ node = cpu_to_node_map[i]; ++ page = new_slab(pgtable_jar, GFP_NOWAIT | __GFP_ZERO, node); ++ ++ BUG_ON(!page); ++ if (page_to_nid(page) != node) { ++ pr_err("SLUB: Unable to allocate memory from node %d\n", node); ++ pr_err("SLUB: Allocating a useless per node structure in order to be able to continue\n"); ++ } ++ ++ page->inuse = 0; ++ page->frozen = 0; ++ ++ /* ++ * No locks need to be taken here as it has just been ++ * initialized and there is no concurrent access. ++ */ ++ __add_partial(get_node(pgtable_jar, page_to_nid(page)), page, DEACTIVATE_TO_HEAD); ++ } ++} ++#endif ++ + static void free_kmem_cache_nodes(struct kmem_cache *s) + { + int node; +@@ -3807,6 +4148,18 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order) + else + order = calculate_order(size); + ++ #ifdef CONFIG_IEE ++ if(strcmp(s->name, "task_struct") == 0) ++ order = PGTABLE_ORDER; ++ if(strcmp(s->name, "iee_stack_jar") == 0) ++ order = PGTABLE_ORDER; ++ #endif ++ ++ #ifdef CONFIG_PTP ++ if(strcmp(s->name, "pgtable_jar") == 0) ++ order = PGTABLE_ORDER; ++ #endif ++ + if ((int)order < 0) + return 0; + +@@ -3837,6 +4190,14 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order) + static int kmem_cache_open(struct kmem_cache *s, slab_flags_t flags) + { + s->flags = kmem_cache_flags(s->size, flags, s->name); ++ #ifdef CONFIG_IEE ++ if(strcmp(s->name, "iee_stack_jar") == 0) ++ s->flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER); ++ #endif ++ #ifdef CONFIG_PTP ++ if(strcmp(s->name, "pgtable_jar") == 0) ++ s->flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER); ++ #endif + #ifdef CONFIG_SLAB_FREELIST_HARDENED + s->random = get_random_long(); + #endif +@@ -3869,6 +4230,18 @@ static int kmem_cache_open(struct kmem_cache *s, slab_flags_t flags) + */ + set_min_partial(s, ilog2(s->size) / 2); + ++ #ifdef CONFIG_IEE ++ if(strcmp(s->name, "task_struct") == 0) ++ s->min_partial *= (1 << TASK_ORDER); ++ if(strcmp(s->name, "iee_stack_jar") == 0) ++ s->min_partial *= (1 << TASK_ORDER); ++ #endif ++ ++ #ifdef CONFIG_PTP ++ if(strcmp(s->name, "pgtable_jar") == 0) ++ s->min_partial = (1 << PGTABLE_MAX_ORDER); ++ #endif ++ + set_cpu_partial(s); + + #ifdef CONFIG_NUMA +diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c +index a47b027af1f7..3fbb3ed7ea9e 100644 +--- a/mm/sparse-vmemmap.c ++++ b/mm/sparse-vmemmap.c +@@ -30,6 +30,10 @@ + #include + #include + ++#ifdef CONFIG_PTP ++#include ++#endif ++ + #include + #include + #include +@@ -602,6 +606,7 @@ pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node, + struct vmem_altmap *altmap) + { + pte_t *pte = pte_offset_kernel(pmd, addr); ++ + if (pte_none(*pte)) { + pte_t entry; + void *p; +@@ -609,6 +614,7 @@ pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node, + p = vmemmap_alloc_block_buf(PAGE_SIZE, node, altmap); + if (!p) + return NULL; ++ + entry = pfn_pte(__pa(p) >> PAGE_SHIFT, PAGE_KERNEL); + set_pte_at(&init_mm, addr, pte, entry); + } +@@ -623,6 +629,10 @@ static void * __meminit vmemmap_alloc_block_zero(unsigned long size, int node) + return NULL; + memset(p, 0, size); + ++ #ifdef CONFIG_PTP ++ set_iee_page_valid(__phys_to_iee(__pa(p))); ++ #endif ++ + return p; + } + +diff --git a/mm/swap.c b/mm/swap.c +index c37fac5a73e8..58473227e8c0 100644 +--- a/mm/swap.c ++++ b/mm/swap.c +@@ -112,7 +112,7 @@ static void __put_compound_page(struct page *page) + } + + void __put_page(struct page *page) +-{ ++{ + if (is_zone_device_page(page)) { + put_dev_pagemap(page->pgmap); + +diff --git a/mm/vmalloc.c b/mm/vmalloc.c +index 6d802924d9e8..1003a4bb7c64 100644 +--- a/mm/vmalloc.c ++++ b/mm/vmalloc.c +@@ -2853,7 +2853,11 @@ static int vmap_pfn_apply(pte_t *pte, unsigned long addr, void *private) + + if (WARN_ON_ONCE(pfn_valid(data->pfns[data->idx]))) + return -EINVAL; ++ #ifdef CONFIG_PTP ++ set_pte(pte, pte_mkspecial(pfn_pte(data->pfns[data->idx++], data->prot))); ++ #else + *pte = pte_mkspecial(pfn_pte(data->pfns[data->idx++], data->prot)); ++ #endif + return 0; + } + +diff --git a/net/core/filter.c b/net/core/filter.c +index 838813229564..e779b883ab31 100644 +--- a/net/core/filter.c ++++ b/net/core/filter.c +@@ -563,7 +563,7 @@ static int bpf_convert_filter(struct sock_filter *prog, int len, + u8 bpf_src; + + BUILD_BUG_ON(BPF_MEMWORDS * sizeof(u32) > MAX_BPF_STACK); +- BUILD_BUG_ON(BPF_REG_FP + 1 != MAX_BPF_REG); ++ BUILD_BUG_ON(BPF_REG_FP + 2 != MAX_BPF_REG); + + if (len <= 0 || len > BPF_MAXINSNS) + return -EINVAL; +@@ -8651,27 +8651,45 @@ static u32 bpf_convert_ctx_access(enum bpf_access_type type, + break; + + case offsetof(struct __sk_buff, data): ++ #ifdef CONFIG_HIVE ++ *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, sfi_data), ++ si->dst_reg, si->src_reg, ++ offsetof(struct sk_buff, sfi_data)); ++ #else + *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_buff, data), + si->dst_reg, si->src_reg, + offsetof(struct sk_buff, data)); ++ #endif + break; + + case offsetof(struct __sk_buff, data_meta): + off = si->off; + off -= offsetof(struct __sk_buff, data_meta); ++ #ifdef CONFIG_HIVE ++ off += offsetof(struct sk_buff, sfi_data_meta); ++ *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, ++ si->src_reg, off); ++ #else + off += offsetof(struct sk_buff, cb); + off += offsetof(struct bpf_skb_data_end, data_meta); + *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, + si->src_reg, off); ++ #endif + break; + + case offsetof(struct __sk_buff, data_end): + off = si->off; + off -= offsetof(struct __sk_buff, data_end); ++ #ifdef CONFIG_HIVE ++ off += offsetof(struct sk_buff, sfi_data_end); ++ *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, ++ si->src_reg, off); ++ #else + off += offsetof(struct sk_buff, cb); + off += offsetof(struct bpf_skb_data_end, data_end); + *insn++ = BPF_LDX_MEM(BPF_SIZEOF(void *), si->dst_reg, + si->src_reg, off); ++ #endif + break; + + case offsetof(struct __sk_buff, tc_index): +diff --git a/net/dns_resolver/dns_key.c b/net/dns_resolver/dns_key.c +index 26a9d8434c23..2e4de448d9fa 100644 +--- a/net/dns_resolver/dns_key.c ++++ b/net/dns_resolver/dns_key.c +@@ -34,6 +34,10 @@ + #include + #include "internal.h" + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + MODULE_DESCRIPTION("DNS Resolver"); + MODULE_AUTHOR("Wang Lei"); + MODULE_LICENSE("GPL"); +@@ -365,8 +369,13 @@ static int __init init_dns_resolver(void) + /* instruct request_key() to use this special keyring as a cache for + * the results it looks up */ + set_bit(KEY_FLAG_ROOT_CAN_CLEAR, &keyring->flags); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_thread_keyring(cred,keyring); ++ iee_set_cred_jit_keyring(cred,KEY_REQKEY_DEFL_THREAD_KEYRING); ++ #else + cred->thread_keyring = keyring; + cred->jit_keyring = KEY_REQKEY_DEFL_THREAD_KEYRING; ++ #endif + dns_resolver_cache = cred; + + kdebug("DNS resolver keyring: %d\n", key_serial(keyring)); +diff --git a/net/ipv4/tcp_bbr.c b/net/ipv4/tcp_bbr.c +index 6274462b86b4..2d3767899b3a 100644 +--- a/net/ipv4/tcp_bbr.c ++++ b/net/ipv4/tcp_bbr.c +@@ -1171,4 +1171,4 @@ MODULE_AUTHOR("Neal Cardwell "); + MODULE_AUTHOR("Yuchung Cheng "); + MODULE_AUTHOR("Soheil Hassas Yeganeh "); + MODULE_LICENSE("Dual BSD/GPL"); +-MODULE_DESCRIPTION("TCP BBR (Bottleneck Bandwidth and RTT)"); ++MODULE_DESCRIPTION("TCP BBR (Bottleneck Bandwidth and RTT)"); +\ No newline at end of file +diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c +index 6e3e63db0e01..86b3d088679d 100644 +--- a/net/sched/cls_bpf.c ++++ b/net/sched/cls_bpf.c +@@ -20,6 +20,10 @@ + #include + #include + ++#ifdef CONFIG_HIVE ++#include ++#endif ++ + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Daniel Borkmann "); + MODULE_DESCRIPTION("TC BPF based classifier"); +@@ -77,6 +81,128 @@ static int cls_bpf_exec_opcode(int code) + } + } + ++#ifdef CONFIG_HIVE ++static inline pte_t *get_ptep(u64 addr) ++{ ++ pgd_t *pgdp; ++ p4d_t *p4dp; ++ pud_t *pudp; ++ pmd_t *pmdp; ++ pte_t *ptep; ++ ++ pgdp = pgd_offset(&init_mm, addr); ++ if (pgd_none(*pgdp) || pgd_bad(*pgdp)) ++ return ERR_PTR(-ENOENT); ++ ++ p4dp = p4d_offset(pgdp, addr); ++ if (p4d_none(*p4dp) || p4d_bad(*p4dp)) ++ return ERR_PTR(-ENOENT); ++ ++ pudp = pud_offset(p4dp, addr); ++ if (pud_none(*pudp) || pud_bad(*pudp)) ++ return ERR_PTR(-ENOENT); ++ ++ pmdp = pmd_offset(pudp, addr); ++ if (pmd_none(*pmdp) || pmd_bad(*pmdp)) ++ return ERR_PTR(-ENOENT); ++ ++ ptep = pte_offset_kernel(pmdp, addr); ++ if (!ptep) ++ return ERR_PTR(-ENOENT); ++ ++ return ptep; ++} ++ ++static inline void bpf_sfi_map_skb(struct bpf_prog *prog, struct sk_buff *skb) ++{ ++ u32 skb_data_offset, skb_meta_offset, skb_end_offset, reserved_skb_data_size; ++ u64 addr_to_map, map_length, map_page_cnt; ++ u64 start_time, end_time; ++ pte_t pte; ++ struct bpf_skb_data_end *cb; ++ int i; ++ ++ // skb_data_size = (u64)((struct bpf_skb_data_end *)skb->cb)->data_end - (u64)skb->head; ++ // skb_page_cnt = PAGE_ALIGN(skb_data_size) >> PAGE_SHIFT; ++ // pr_err("skb page cnt = %d\n", skb_page_cnt); ++ ++ isb(); ++ start_time = sched_clock(); ++ ++ // 1. get skb data size ++ cb = (struct bpf_skb_data_end *)skb->cb; ++ skb_data_offset = (u64)skb->data & ~PAGE_MASK; ++ skb_meta_offset = cb->data_meta - (void *)skb->data; ++ skb_end_offset = cb->data_end - (void *)skb->sfi_data_end; ++ map_length = skb->len; ++ // 2. ensure bpf_sfi reserved size is enough ++ reserved_skb_data_size = prog->shadow_skb_page_cnt * PAGE_SIZE; ++ BUG_ON(unlikely(reserved_skb_data_size < map_length)); ++ // 3. double map ++ map_page_cnt = PAGE_ALIGN(map_length) >> PAGE_SHIFT; ++ addr_to_map = (u64)prog->shadow_skb_addr; ++ // printk("skb %llx, %d page, map to %llx\n", (u64)skb->data, skb_page_cnt, addr_to_map); ++ for (i = 0; i < map_page_cnt; i++) { ++ pte_t *origin_ptep, *sfi_ptep; ++ ++ origin_ptep = get_ptep((u64)skb->data + i * PAGE_SIZE); ++ if (unlikely(IS_ERR(origin_ptep))) { ++ pr_err("map pkt %llx failed\n", (u64)skb->data + i * PAGE_SIZE); ++ return; ++ } ++ sfi_ptep = get_ptep(addr_to_map + i * PAGE_SIZE); ++ if (unlikely(IS_ERR(sfi_ptep))) { ++ pr_err("map pkt %llx failed\n", addr_to_map + i * PAGE_SIZE); ++ return; ++ } ++ pte = __pte((pte_val(*origin_ptep) | PTE_BPF_SFI_GP)); ++ set_pte(sfi_ptep, pte); ++ } ++ flush_tlb_kernel_range(addr_to_map, addr_to_map + map_page_cnt * PAGE_SIZE); ++ skb->sfi_bpf_mapped = true; ++ skb->sfi_data = (void *)addr_to_map + skb_data_offset; ++ skb->sfi_data_meta = skb->sfi_data + skb_meta_offset; ++ skb->sfi_data_end = skb->sfi_data + skb_end_offset; ++ ++ isb(); ++ end_time = sched_clock(); ++ // pr_err("shadow packet region: %llx, %llx", addr_to_map, addr_to_map + map_page_cnt * PAGE_SIZE); ++ pr_err("shadow packet time = %lldns", end_time - start_time); ++} ++ ++static void inline bpf_sfi_remap(struct bpf_prog *prog) ++{ ++ void *start_addr; ++ u64 page_cnt; ++ int i; ++ struct page *page, *pages[128]; ++ void *new_addr; ++ int err; ++ u64 start_time, end_time; ++ ++ start_time = sched_clock(); ++ ++ start_addr = prog->shadow_region_addr; ++ page_cnt = prog->total_page_cnt; ++ ++ for (i = 0; i < page_cnt; i++) { ++ page = kv_virt_to_page(start_addr); ++ pages[i] = page; ++ } ++ ++ new_addr = alloc_aligned_memory(page_cnt * PAGE_SIZE); ++ if (!new_addr) ++ pr_err("remap alloc new region failed\n"); ++ ++ err = map_physic_pages(pages, new_addr, page_cnt); ++ if (err < 0) ++ pr_err("remap map physic pages failed\n"); ++ ++ end_time = sched_clock(); ++ pr_err("remap time = %lldns", end_time - start_time); ++} ++#endif ++ + static int cls_bpf_classify(struct sk_buff *skb, const struct tcf_proto *tp, + struct tcf_result *res) + { +@@ -98,10 +224,20 @@ static int cls_bpf_classify(struct sk_buff *skb, const struct tcf_proto *tp, + /* It is safe to push/pull even if skb_shared() */ + __skb_push(skb, skb->mac_len); + bpf_compute_data_pointers(skb); ++ #ifdef CONFIG_HIVE ++ /* fbpf map */ ++ if (!skb->sfi_bpf_mapped) ++ bpf_sfi_map_skb(prog->filter, skb); ++ #endif + filter_res = BPF_PROG_RUN(prog->filter, skb); + __skb_pull(skb, skb->mac_len); + } else { + bpf_compute_data_pointers(skb); ++ #ifdef CONFIG_HIVE ++ /* fbpf map */ ++ if (!skb->sfi_bpf_mapped) ++ bpf_sfi_map_skb(prog->filter, skb); ++ #endif + filter_res = BPF_PROG_RUN(prog->filter, skb); + } + +diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile +index aeebf5d12f32..6dddac1cbba1 100644 +--- a/samples/bpf/Makefile ++++ b/samples/bpf/Makefile +@@ -41,7 +41,7 @@ tprogs-y += test_map_in_map + tprogs-y += per_socket_stats_example + tprogs-y += xdp_redirect + tprogs-y += xdp_redirect_map +-tprogs-y += xdp_redirect_cpu ++# tprogs-y += xdp_redirect_cpu + tprogs-y += xdp_monitor + tprogs-y += xdp_rxq_info + tprogs-y += syscall_tp +@@ -158,7 +158,7 @@ always-y += tcp_tos_reflect_kern.o + always-y += tcp_dumpstats_kern.o + always-y += xdp_redirect_kern.o + always-y += xdp_redirect_map_kern.o +-always-y += xdp_redirect_cpu_kern.o ++# always-y += xdp_redirect_cpu_kern.o + always-y += xdp_monitor_kern.o + always-y += xdp_rxq_info_kern.o + always-y += xdp2skb_meta_kern.o +diff --git a/security/commoncap.c b/security/commoncap.c +index b44b69796c0b..c479eda43ec2 100644 +--- a/security/commoncap.c ++++ b/security/commoncap.c +@@ -25,6 +25,10 @@ + #include + #include + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + /* + * If a non-root user executes a setuid-root binary in + * !secure(SECURE_NOROOT) mode, then we raise capabilities. +@@ -265,6 +269,15 @@ int cap_capset(struct cred *new, + if (!cap_issubset(*effective, *permitted)) + return -EPERM; + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,*effective); ++ iee_set_cred_cap_inheritable(new,*inheritable); ++ iee_set_cred_cap_permitted(new,*permitted); ++ ++ iee_set_cred_cap_ambient(new,cap_intersect(new->cap_ambient, ++ cap_intersect(*permitted, ++ *inheritable))); ++ #else + new->cap_effective = *effective; + new->cap_inheritable = *inheritable; + new->cap_permitted = *permitted; +@@ -276,6 +289,7 @@ int cap_capset(struct cred *new, + new->cap_ambient = cap_intersect(new->cap_ambient, + cap_intersect(*permitted, + *inheritable)); ++ #endif + if (WARN_ON(!cap_ambient_invariant_ok(new))) + return -EINVAL; + return 0; +@@ -569,9 +583,16 @@ static inline int bprm_caps_from_vfs_caps(struct cpu_vfs_cap_data *caps, + * pP' = (X & fP) | (pI & fI) + * The addition of pA' is handled later. + */ ++ #ifdef CONFIG_CREDP ++ kernel_cap_t temp = new->cap_permitted; ++ temp.cap[i] = (new->cap_bset.cap[i] & permitted) | ++ (new->cap_inheritable.cap[i] & inheritable); ++ iee_set_cred_cap_permitted(new,temp); ++ #else + new->cap_permitted.cap[i] = + (new->cap_bset.cap[i] & permitted) | + (new->cap_inheritable.cap[i] & inheritable); ++ #endif + + if (permitted & ~new->cap_permitted.cap[i]) + /* insufficient to execute correctly */ +@@ -674,7 +695,13 @@ static int get_file_caps(struct linux_binprm *bprm, struct file *file, + int rc = 0; + struct cpu_vfs_cap_data vcaps; + ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_permitted(bprm->cred, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(bprm->cred->cap_permitted); ++ #endif + + if (!file_caps_enabled) + return 0; +@@ -704,7 +731,13 @@ static int get_file_caps(struct linux_binprm *bprm, struct file *file, + + out: + if (rc) ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_permitted(bprm->cred, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(bprm->cred->cap_permitted); ++ #endif + + return rc; + } +@@ -756,8 +789,13 @@ static void handle_privileged_root(struct linux_binprm *bprm, bool has_fcap, + */ + if (__is_eff(root_uid, new) || __is_real(root_uid, new)) { + /* pP' = (cap_bset & ~0) | (pI & ~0) */ ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_permitted(new,cap_combine(old->cap_bset, ++ old->cap_inheritable)); ++ #else + new->cap_permitted = cap_combine(old->cap_bset, + old->cap_inheritable); ++ #endif + } + /* + * If only the real uid is 0, we do not set the effective bit. +@@ -864,34 +902,69 @@ int cap_bprm_creds_from_file(struct linux_binprm *bprm, struct file *file) + /* downgrade; they get no more than they had, and maybe less */ + if (!ns_capable(new->user_ns, CAP_SETUID) || + (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS)) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_euid(new,new->uid); ++ iee_set_cred_egid(new,new->gid); ++ #else + new->euid = new->uid; + new->egid = new->gid; ++ #endif + } ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_permitted(new,cap_intersect(new->cap_permitted, ++ old->cap_permitted)); ++ #else + new->cap_permitted = cap_intersect(new->cap_permitted, + old->cap_permitted); ++ #endif + } + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_fsuid(new,new->euid); ++ iee_set_cred_suid(new,new->euid); ++ iee_set_cred_fsgid(new,new->egid); ++ iee_set_cred_sgid(new,new->egid); ++ #else + new->suid = new->fsuid = new->euid; + new->sgid = new->fsgid = new->egid; ++ #endif + + /* File caps or setid cancels ambient. */ + if (has_fcap || is_setid) ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_ambient(new, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(new->cap_ambient); ++ #endif + + /* + * Now that we've computed pA', update pP' to give: + * pP' = (X & fP) | (pI & fI) | pA' + */ ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_permitted(new,cap_combine(new->cap_permitted, new->cap_ambient)); ++ #else + new->cap_permitted = cap_combine(new->cap_permitted, new->cap_ambient); ++ #endif + + /* + * Set pE' = (fE ? pP' : pA'). Because pA' is zero if fE is set, + * this is the same as pE' = (fE ? pP' : 0) | pA'. + */ + if (effective) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,new->cap_permitted); ++ #else + new->cap_effective = new->cap_permitted; ++ #endif + else ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,new->cap_ambient); ++ #else + new->cap_effective = new->cap_ambient; ++ #endif + + if (WARN_ON(!cap_ambient_invariant_ok(new))) + return -EPERM; +@@ -902,7 +975,11 @@ int cap_bprm_creds_from_file(struct linux_binprm *bprm, struct file *file) + return ret; + } + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_securebits(new,new->securebits & ~issecure_mask(SECURE_KEEP_CAPS)); ++ #else + new->securebits &= ~issecure_mask(SECURE_KEEP_CAPS); ++ #endif + + if (WARN_ON(!cap_ambient_invariant_ok(new))) + return -EPERM; +@@ -1028,8 +1105,17 @@ static inline void cap_emulate_setxuid(struct cred *new, const struct cred *old) + !uid_eq(new->euid, root_uid) && + !uid_eq(new->suid, root_uid))) { + if (!issecure(SECURE_KEEP_CAPS)) { ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_permitted(new, __cap_empty_set); ++ } while (0); ++ do { ++ iee_set_cred_cap_effective(new, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(new->cap_permitted); + cap_clear(new->cap_effective); ++ #endif + } + + /* +@@ -1037,12 +1123,28 @@ static inline void cap_emulate_setxuid(struct cred *new, const struct cred *old) + * by exec to drop capabilities. We should make sure that + * this remains the case. + */ ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_ambient(new, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(new->cap_ambient); ++ #endif + } + if (uid_eq(old->euid, root_uid) && !uid_eq(new->euid, root_uid)) ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_effective(new, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(new->cap_effective); ++ #endif + if (!uid_eq(old->euid, root_uid) && uid_eq(new->euid, root_uid)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,new->cap_permitted); ++ #else + new->cap_effective = new->cap_permitted; ++ #endif + } + + /** +@@ -1076,13 +1178,22 @@ int cap_task_fix_setuid(struct cred *new, const struct cred *old, int flags) + if (!issecure(SECURE_NO_SETUID_FIXUP)) { + kuid_t root_uid = make_kuid(old->user_ns, 0); + if (uid_eq(old->fsuid, root_uid) && !uid_eq(new->fsuid, root_uid)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,cap_drop_fs_set(new->cap_effective)); ++ #else + new->cap_effective = + cap_drop_fs_set(new->cap_effective); ++ #endif + + if (!uid_eq(old->fsuid, root_uid) && uid_eq(new->fsuid, root_uid)) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_cap_effective(new,cap_raise_fs_set(new->cap_effective, ++ new->cap_permitted)); ++ #else + new->cap_effective = + cap_raise_fs_set(new->cap_effective, + new->cap_permitted); ++ #endif + } + break; + +@@ -1171,7 +1282,15 @@ static int cap_prctl_drop(unsigned long cap) + new = prepare_creds(); + if (!new) + return -ENOMEM; ++ #ifdef CONFIG_CREDP ++ { ++ kernel_cap_t tmp = new->cap_bset; ++ cap_lower(tmp, cap); ++ iee_set_cred_cap_bset(new, tmp); ++ } ++ #else + cap_lower(new->cap_bset, cap); ++ #endif + return commit_creds(new); + } + +@@ -1244,7 +1363,11 @@ int cap_task_prctl(int option, unsigned long arg2, unsigned long arg3, + new = prepare_creds(); + if (!new) + return -ENOMEM; ++ #ifdef CONFIG_CREDP ++ iee_set_cred_securebits(new,arg2); ++ #else + new->securebits = arg2; ++ #endif + return commit_creds(new); + + case PR_GET_SECUREBITS: +@@ -1263,9 +1386,17 @@ int cap_task_prctl(int option, unsigned long arg2, unsigned long arg3, + if (!new) + return -ENOMEM; + if (arg2) ++ #ifdef CONFIG_CREDP ++ iee_set_cred_securebits(new,new->securebits | issecure_mask(SECURE_KEEP_CAPS)); ++ #else + new->securebits |= issecure_mask(SECURE_KEEP_CAPS); ++ #endif + else ++ #ifdef CONFIG_CREDP ++ iee_set_cred_securebits(new,new->securebits & ~issecure_mask(SECURE_KEEP_CAPS)); ++ #else + new->securebits &= ~issecure_mask(SECURE_KEEP_CAPS); ++ #endif + return commit_creds(new); + + case PR_CAP_AMBIENT: +@@ -1276,7 +1407,13 @@ int cap_task_prctl(int option, unsigned long arg2, unsigned long arg3, + new = prepare_creds(); + if (!new) + return -ENOMEM; ++ #ifdef CONFIG_CREDP ++ do { ++ iee_set_cred_cap_ambient(new, __cap_empty_set); ++ } while (0); ++ #else + cap_clear(new->cap_ambient); ++ #endif + return commit_creds(new); + } + +@@ -1300,9 +1437,25 @@ int cap_task_prctl(int option, unsigned long arg2, unsigned long arg3, + if (!new) + return -ENOMEM; + if (arg2 == PR_CAP_AMBIENT_RAISE) ++ #ifdef CONFIG_CREDP ++ { ++ kernel_cap_t tmp = new->cap_ambient; ++ cap_raise(tmp, arg3); ++ iee_set_cred_cap_ambient(new, tmp); ++ } ++ #else + cap_raise(new->cap_ambient, arg3); ++ #endif + else ++ #ifdef CONFIG_CREDP ++ { ++ kernel_cap_t tmp = new->cap_ambient; ++ cap_lower(tmp, arg3); ++ iee_set_cred_cap_ambient(new, tmp); ++ } ++ #else + cap_lower(new->cap_ambient, arg3); ++ #endif + return commit_creds(new); + } + +diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c +index e3ffaf5ad639..fa60180ef2d2 100644 +--- a/security/keys/keyctl.c ++++ b/security/keys/keyctl.c +@@ -23,6 +23,9 @@ + #include + #include + #include "internal.h" ++#ifdef CONFIG_CREDP ++#include ++#endif + + #define KEY_MAX_DESC_SIZE 4096 + +@@ -1155,7 +1158,11 @@ static int keyctl_change_reqkey_auth(struct key *key) + return -ENOMEM; + + key_put(new->request_key_auth); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_request_key_auth(new,key_get(key)); ++ #else + new->request_key_auth = key_get(key); ++ #endif + + return commit_creds(new); + } +@@ -1432,7 +1439,11 @@ long keyctl_set_reqkey_keyring(int reqkey_defl) + } + + set: ++ #ifdef CONFIG_CREDP ++ iee_set_cred_jit_keyring(new,reqkey_defl); ++ #else + new->jit_keyring = reqkey_defl; ++ #endif + commit_creds(new); + return old_setting; + error: +@@ -1644,9 +1655,17 @@ long keyctl_session_to_parent(void) + cred = cred_alloc_blank(); + if (!cred) + goto error_keyring; ++ #ifdef CONFIG_CREDP ++ newwork = (struct rcu_head *)(cred->rcu.func); ++ #else + newwork = &cred->rcu; ++ #endif + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_session_keyring(cred,key_ref_to_ptr(keyring_r)); ++ #else + cred->session_keyring = key_ref_to_ptr(keyring_r); ++ #endif + keyring_r = NULL; + init_task_work(newwork, key_change_session_keyring); + +@@ -1705,7 +1724,11 @@ long keyctl_session_to_parent(void) + write_unlock_irq(&tasklist_lock); + rcu_read_unlock(); + if (oldwork) ++ #ifdef CONFIG_CREDP ++ put_cred(*(struct cred **)(oldwork + 1)); ++ #else + put_cred(container_of(oldwork, struct cred, rcu)); ++ #endif + if (newwork) + put_cred(cred); + return ret; +diff --git a/security/keys/process_keys.c b/security/keys/process_keys.c +index 1fe8b934f656..b9ee585db642 100644 +--- a/security/keys/process_keys.c ++++ b/security/keys/process_keys.c +@@ -19,6 +19,10 @@ + #include + #include "internal.h" + ++#ifdef CONFIG_CREDP ++#include ++#endif ++ + /* Session keyring create vs join semaphore */ + static DEFINE_MUTEX(key_session_mutex); + +@@ -232,7 +236,11 @@ int install_thread_keyring_to_cred(struct cred *new) + if (IS_ERR(keyring)) + return PTR_ERR(keyring); + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_thread_keyring(new,keyring); ++ #else + new->thread_keyring = keyring; ++ #endif + return 0; + } + +@@ -279,7 +287,11 @@ int install_process_keyring_to_cred(struct cred *new) + if (IS_ERR(keyring)) + return PTR_ERR(keyring); + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_process_keyring(new,keyring); ++ #else + new->process_keyring = keyring; ++ #endif + return 0; + } + +@@ -338,7 +350,11 @@ int install_session_keyring_to_cred(struct cred *cred, struct key *keyring) + + /* install the keyring */ + old = cred->session_keyring; ++ #ifdef CONFIG_CREDP ++ iee_set_cred_session_keyring(cred,keyring); ++ #else + cred->session_keyring = keyring; ++ #endif + + if (old) + key_put(old); +@@ -910,13 +926,41 @@ long join_session_keyring(const char *name) + void key_change_session_keyring(struct callback_head *twork) + { + const struct cred *old = current_cred(); ++ #ifdef CONFIG_CREDP ++ struct cred *new = *(struct cred **)(twork + 1); ++ #else + struct cred *new = container_of(twork, struct cred, rcu); ++ #endif + + if (unlikely(current->flags & PF_EXITING)) { + put_cred(new); + return; + } + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_uid(new,old-> uid); ++ iee_set_cred_euid(new,old-> euid); ++ iee_set_cred_suid(new,old-> suid); ++ iee_set_cred_fsuid(new,old->fsuid); ++ iee_set_cred_gid(new,old-> gid); ++ iee_set_cred_egid(new,old-> egid); ++ iee_set_cred_sgid(new,old-> sgid); ++ iee_set_cred_fsgid(new,old->fsgid); ++ iee_set_cred_user(new,get_uid(old->user)); ++ iee_set_cred_user_ns(new,get_user_ns(old->user_ns)); ++ iee_set_cred_group_info(new,get_group_info(old->group_info)); ++ ++ iee_set_cred_securebits(new,old->securebits); ++ iee_set_cred_cap_inheritable(new,old->cap_inheritable); ++ iee_set_cred_cap_permitted(new,old->cap_permitted); ++ iee_set_cred_cap_effective(new,old->cap_effective); ++ iee_set_cred_cap_ambient(new,old->cap_ambient); ++ iee_set_cred_cap_bset(new,old->cap_bset); ++ ++ iee_set_cred_jit_keyring(new,old->jit_keyring); ++ iee_set_cred_thread_keyring(new,key_get(old->thread_keyring)); ++ iee_set_cred_process_keyring(new,key_get(old->process_keyring)); ++ #else + new-> uid = old-> uid; + new-> euid = old-> euid; + new-> suid = old-> suid; +@@ -939,6 +983,7 @@ void key_change_session_keyring(struct callback_head *twork) + new->jit_keyring = old->jit_keyring; + new->thread_keyring = key_get(old->thread_keyring); + new->process_keyring = key_get(old->process_keyring); ++ #endif + + security_transfer_creds(new, old); + +diff --git a/security/security.c b/security/security.c +index 606601190116..3787de6d9e19 100644 +--- a/security/security.c ++++ b/security/security.c +@@ -29,6 +29,9 @@ + #include + #include + #include ++#ifdef CONFIG_CREDP ++#include ++#endif + + #define MAX_LSM_EVM_XATTR 2 + +@@ -531,11 +534,19 @@ EXPORT_SYMBOL(unregister_blocking_lsm_notifier); + static int lsm_cred_alloc(struct cred *cred, gfp_t gfp) + { + if (blob_sizes.lbs_cred == 0) { ++ #ifdef CONFIG_CREDP ++ iee_set_cred_security(cred,NULL); ++ #else + cred->security = NULL; ++ #endif + return 0; + } + ++ #ifdef CONFIG_CREDP ++ iee_set_cred_security(cred,kzalloc(blob_sizes.lbs_cred, gfp)); ++ #else + cred->security = kzalloc(blob_sizes.lbs_cred, gfp); ++ #endif + if (cred->security == NULL) + return -ENOMEM; + return 0; +@@ -1681,7 +1692,11 @@ void security_cred_free(struct cred *cred) + call_void_hook(cred_free, cred); + + kfree(cred->security); ++ #ifdef CONFIG_CREDP ++ iee_set_cred_security(cred,NULL); ++ #else + cred->security = NULL; ++ #endif + } + + int security_prepare_creds(struct cred *new, const struct cred *old, gfp_t gfp) +-- +2.33.0 + diff --git a/_multibuild b/_multibuild index 05089807..1fae2c63 100644 --- a/_multibuild +++ b/_multibuild @@ -2,4 +2,5 @@ raspberrypi-kernel kernel-rt raspberrypi-kernel-rt + haoc-kernel diff --git a/haoc-kernel.spec b/haoc-kernel.spec new file mode 100644 index 00000000..f6e58879 --- /dev/null +++ b/haoc-kernel.spec @@ -0,0 +1,38530 @@ +%define with_signmodules 1 +%define with_kabichk 0 + +%define modsign_cmd %{SOURCE10} + +%global Arch $(echo %{_host_cpu} | sed -e s/i.86/x86/ -e s/x86_64/x86/ -e s/aarch64.*/arm64/ -e s/powerpc64le/powerpc/) + +%global debuginfodir /usr/lib/debug + +%global upstream_version 5.10 +%global upstream_sublevel 0 +%global devel_release 218 +%global maintenance_release .0.0 +%global pkg_release .118 + +%define with_debuginfo 1 +# Do not recompute the build-id of vmlinux in find-debuginfo.sh +%global _missing_build_ids_terminate_build 1 +%global _no_recompute_build_ids 1 +%undefine _include_minidebuginfo +%undefine _include_gdb_index +%undefine _unique_build_ids + +%define with_source 1 + +%define with_python2 0 + +# failed if there is new config options +%define listnewconfig_fail 0 + +%ifarch aarch64 +%define with_64kb %{?_with_64kb: 1} %{?!_with_64kb: 0} +%if %{with_64kb} +%global package64kb -64kb +%global kv_suffix +64kb +%define with_kabichk 0 +%endif +%else +%define with_64kb 0 +%endif + +%global KernelVer %{version}-%{release}.%{_target_cpu}%{?kv_suffix} + +#default is enabled. You can disable it with --without option +%define with_perf %{?_without_perf: 0} %{?!_without_perf: 1} + +Name: haoc-kernel +Version: %{upstream_version}.%{upstream_sublevel} +Release: %{devel_release}%{?maintenance_release}%{?pkg_release}%{?extra_release} +Summary: Linux Kernel +License: GPLv2 +URL: http://www.kernel.org/ +Source0: kernel.tar.gz +Source10: sign-modules +Source11: x509.genkey +Source12: extra_certificates +# openEuler RPM PGP certificates: +# 1. openeuler +Source13: RPM-GPG-KEY-openEuler-compass-ci +# 2. private OBS +Source14: RPM-GPG-KEY-openEuler-localobs +Source15: process_pgp_certs.sh +Patch0000: 0005-haoc-kernel-22.03.patch + +%if 0%{?with_kabichk} +Source18: check-kabi +Source20: Module.kabi_aarch64 +Source21: Module.kabi_x86_64 +%endif + +Source200: mkgrub-menu-aarch64.sh + +Source2000: cpupower.service +Source2001: cpupower.config + +%if 0%{?with_patch} +Source9000: apply-patches +Source9001: guards +Source9002: series.conf +Source9998: patches.tar.bz2 +%endif + +#BuildRequires: +BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, tar +BuildRequires: bzip2, xz, findutils, gzip, m4, perl, make >= 3.78, diffutils, gawk +BuildRequires: libcap-devel, libcap-ng-devel, rsync +BuildRequires: gcc >= 3.4.2, binutils >= 2.12 +BuildRequires: hostname, net-tools, bc +BuildRequires: xmlto, asciidoc +BuildRequires: openssl-devel openssl +BuildRequires: hmaccalc +BuildRequires: ncurses-devel +#BuildRequires: pesign >= 0.109-4 +BuildRequires: elfutils-libelf-devel +BuildRequires: rpm >= 4.14.2 +#BuildRequires: sparse >= 0.4.1 +%if 0%{?with_python2} +BuildRequires: python-devel +%endif + +BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel perl(ExtUtils::Embed) bison +BuildRequires: audit-libs-devel +BuildRequires: pciutils-devel gettext +BuildRequires: rpm-build, elfutils +BuildRequires: numactl-devel python3-devel glibc-static python3-docutils +BuildRequires: perl-generators perl(Carp) libunwind-devel gtk2-devel libbabeltrace-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel perl-devel + +%if 0%{?openEuler_sign_rsa} +BuildRequires: sign-openEuler +%endif + +AutoReq: no +AutoProv: yes + +Conflicts: device-mapper-libs < 1.02.63-2 e2fsprogs < 1.37-4 initscripts < 7.23 iptables < 1.3.2-1 +Conflicts: ipw2200-firmware < 2.4 isdn4k-utils < 3.2-32 iwl4965-firmware < 228.57.2 jfsutils < 1.1.7-2 +Conflicts: mdadm < 3.2.1-5 nfs-utils < 1.0.7-12 oprofile < 0.9.1-2 ppp < 2.4.3-3 procps < 3.2.5-6.3 +Conflicts: reiserfs-utils < 3.6.19-2 selinux-policy-targeted < 1.25.3-14 squashfs-tools < 4.0 +Conflicts: udev < 063-6 util-linux < 2.12 wireless-tools < 29-3 xfsprogs < 2.6.13-4 + +Provides: kernel-aarch64 = %{version}-%{release} kernel-drm = 4.3.0 kernel-drm-nouveau = 16 kernel-modeset = 1 +Provides: kernel-uname-r = %{KernelVer} kernel=%{KernelVer} + +Requires: dracut >= 001-7 grubby >= 8.28-2 initscripts >= 8.11.1-1 linux-firmware >= 20100806-2 module-init-tools >= 3.16-2 + +ExclusiveArch: noarch aarch64 i686 x86_64 ppc64le +ExclusiveOS: Linux + +%if %{with_perf} +BuildRequires: flex xz-devel libzstd-devel +BuildRequires: java-devel +%ifarch aarch64 +BuildRequires: OpenCSD +%endif +%endif + +BuildRequires: dwarves +BuildRequires: clang >= 10.0.0 +BuildRequires: llvm + +%description +The Linux Kernel, the operating system core itself. + +%package headers +Summary: Header files for the Linux kernel for use by glibc +Obsoletes: glibc-kernheaders < 3.0-46 +Provides: glibc-kernheaders = 3.0-46 +%description headers +Kernel-headers includes the C header files that specify the interface +between the Linux kernel and userspace libraries and programs. The +header files define structures and constants that are needed for +building most standard programs and are also needed for rebuilding the +glibc package. + + +%package devel +Summary: Development package for building kernel modules to match the %{KernelVer} kernel +AutoReqProv: no +Provides: kernel-devel-uname-r = %{KernelVer} +Provides: kernel-devel-%{_target_cpu} = %{version}-%{release} +Requires: perl findutils + +%description devel +This package provides kernel headers and makefiles sufficient to build modules +against the %{KernelVer} kernel package. + +%if !%{with_64kb} +%package tools +Summary: Assortment of tools for the Linux kernel +Provides: %{name}-tools-libs +Obsoletes: %{name}-tools-libs +Provides: cpufreq-utils = 1:009-0.6.p1 +Provides: cpufrequtils = 1:009-0.6.p1 +Obsoletes: cpufreq-utils < 1:009-0.6.p1 +Obsoletes: cpufrequtils < 1:009-0.6.p1 +Obsoletes: cpuspeed < 1:1.5-16 +%description tools +This package contains the tools/ directory from the kernel source +and the supporting documentation. + +%package tools-devel +Summary: Assortment of tools for the Linux kernel +Requires: %{name}-tools = %{version}-%{release} +Requires: %{name}-tools-libs = %{version}-%{release} +Provides: %{name}-tools-libs-devel = %{version}-%{release} +Obsoletes: %{name}-tools-libs-devel +%description tools-devel +This package contains the development files for the tools/ directory from +the kernel source. + +%if %{with_perf} +%package -n perf +Summary: Performance monitoring for the Linux kernel +%description -n perf +This package contains the perf tool, which enables performance monitoring +of the Linux kernel. + +%if 0%{?with_python2} +%package -n python2-perf +Provides: python-perf = %{version}-%{release} +Obsoletes: python-perf +Summary: Python bindings for apps which will manipulate perf events + +%description -n python2-perf +A Python module that permits applications written in the Python programming +language to use the interface to manipulate perf events. +%endif + +%package -n python3-perf +Summary: Python bindings for apps which will manipulate perf events +%description -n python3-perf +A Python module that permits applications written in the Python programming +language to use the interface to manipulate perf events. +# with_perf +%endif + +%package -n bpftool +Summary: Inspection and simple manipulation of eBPF programs and maps +%description -n bpftool +This package contains the bpftool, which allows inspection and simple +manipulation of eBPF programs and maps. + +%package source +Summary: the kernel source +%description source +This package contains vaious source files from the kernel. +%endif + +%if 0%{?with_debuginfo} +%define _debuginfo_template %{nil} +%define _debuginfo_subpackages 0 + +%define debuginfo_template(n:) \ +%package -n %{-n*}-debuginfo\ +Summary: Debug information for package %{-n*}\ +Group: Development/Debug\ +AutoReq: 0\ +AutoProv: 1\ +%description -n %{-n*}-debuginfo\ +This package provides debug information for package %{-n*}.\ +Debug information is useful when developing applications that use this\ +package or when debugging this package.\ +%{nil} + +%if %{with_64kb} +%debuginfo_template -n kernel-64kb +%files -n kernel-64kb-debuginfo -f debugfiles.list +%else +%debuginfo_template -n kernel +%files -n kernel-debuginfo -f debugfiles.list + +%debuginfo_template -n bpftool +%files -n bpftool-debuginfo -f bpftool-debugfiles.list +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{_sbindir}/bpftool.*(\.debug)?|XXX' -o bpftool-debugfiles.list} + +%debuginfo_template -n kernel-tools +%files -n kernel-tools-debuginfo -f kernel-tools-debugfiles.list +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{_bindir}/centrino-decode.*(\.debug)?|.*%{_bindir}/powernow-k8-decode.*(\.debug)?|.*%{_bindir}/cpupower.*(\.debug)?|.*%{_libdir}/libcpupower.*|.*%{_libdir}/libcpupower.*|.*%{_bindir}/turbostat.(\.debug)?|.*%{_bindir}/.*gpio.*(\.debug)?|.*%{_bindir}/.*iio.*(\.debug)?|.*%{_bindir}/tmon.*(.debug)?|XXX' -o kernel-tools-debugfiles.list} + +%if %{with_perf} +%debuginfo_template -n perf +%files -n perf-debuginfo -f perf-debugfiles.list +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{_bindir}/perf.*(\.debug)?|.*%{_libexecdir}/perf-core/.*|.*%{_libdir}/traceevent/.*|XXX' -o perf-debugfiles.list} + +%if 0%{?with_python2} +%debuginfo_template -n python2-perf +%files -n python2-perf-debuginfo -f python2-perf-debugfiles.list +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{python2_sitearch}/perf.*(.debug)?|XXX' -o python2-perf-debugfiles.list} +%endif + +%debuginfo_template -n python3-perf +%files -n python3-perf-debuginfo -f python3-perf-debugfiles.list +%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%{python3_sitearch}/perf.*(.debug)?|XXX' -o python3-perf-debugfiles.list} +#with_perf +%endif +#with_64kb +%endif +%endif + +%prep + +%setup -q -n kernel-%{version} -c + +%if 0%{?with_patch} +tar -xjf %{SOURCE9998} +%endif + +mv kernel linux-%{KernelVer} +cd linux-%{KernelVer} + +%patch0000 -p1 + +# process PGP certs +cp %{SOURCE13} . +cp %{SOURCE14} . +cp %{SOURCE15} . +sh %{SOURCE15} +cp pubring.gpg certs + +%if 0%{?with_patch} +cp %{SOURCE9000} . +cp %{SOURCE9001} . +cp %{SOURCE9002} . + +if [ ! -d patches ];then + mv ../patches . +fi + +Applypatches() +{ + set -e + set -o pipefail + local SERIESCONF=$1 + local PATCH_DIR=$2 + sed -i '/^#/d' $SERIESCONF + sed -i '/^[\s]*$/d' $SERIESCONF + ( + echo "trap 'echo \"*** patch \$_ failed ***\"' ERR" + echo "set -ex" + cat $SERIESCONF | \ + sed "s!^!patch -s -F0 -E -p1 --no-backup-if-mismatch -i $PATCH_DIR/!" \ + ) | sh +} + +Applypatches series.conf %{_builddir}/kernel-%{version}/linux-%{KernelVer} +%endif + +touch .scmversion + +find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null +find . -name .gitignore -exec rm -f {} \; >/dev/null + +%if 0%{?with_signmodules} + cp %{SOURCE11} certs/. +%endif + +pathfix.py -pni "/usr/bin/python" tools/power/pm-graph/sleepgraph.py tools/power/pm-graph/bootgraph.py tools/perf/scripts/python/exported-sql-viewer.py + +%if 0%{?with_source} +# Copy directory backup for kernel-source +cp -a ../linux-%{KernelVer} ../linux-%{KernelVer}-source +find ../linux-%{KernelVer}-source -type f -name "\.*" -exec rm -rf {} \; >/dev/null +%endif + +cp -a tools/perf tools/python3-perf + +%build +cd linux-%{KernelVer} + +perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}%{?kv_suffix}/" Makefile + +## make linux +make mrproper %{_smp_mflags} + +%if %{with_64kb} +sed -i arch/arm64/configs/openeuler_defconfig -e 's/^CONFIG_ARM64_4K_PAGES.*/CONFIG_ARM64_64K_PAGES=y/' +sed -i arch/arm64/configs/openeuler_defconfig -e 's/^CONFIG_ARM64_PA_BITS=.*/CONFIG_ARM64_PA_BITS=52/' +sed -i arch/arm64/configs/openeuler_defconfig -e 's/^CONFIG_ARM64_PA_BITS_.*/CONFIG_ARM64_PA_BITS_52=y/' +sed -i arch/arm64/configs/openeuler_defconfig -e 's/^CONFIG_ARM64_VA_BITS=.*/CONFIG_ARM64_VA_BITS=52/' +sed -i arch/arm64/configs/openeuler_defconfig -e 's/^CONFIG_ARM64_VA_BITS_.*/CONFIG_ARM64_VA_BITS_52=y/' +%endif + +make ARCH=%{Arch} openeuler_defconfig + +TargetImage=$(basename $(make -s image_name)) + +make ARCH=%{Arch} $TargetImage %{?_smp_mflags} +make ARCH=%{Arch} modules %{?_smp_mflags} + +%if 0%{?with_kabichk} + chmod 0755 %{SOURCE18} + if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu} ]; then + %{SOURCE18} -k $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu} -s Module.symvers || exit 1 + else + echo "**** NOTE: Cannot find reference Module.kabi file. ****" + fi +%endif + +# aarch64 make dtbs +%ifarch aarch64 + make ARCH=%{Arch} dtbs +%endif + +## make tools +%if %{with_perf} +# perf +%ifarch aarch64 +# aarch64 make perf with CORESIGHT=1 +%global perf_make \ + make EXTRA_CFLAGS="-Wl,-z,now -g -Wall -fstack-protector-strong -fPIC" EXTRA_PERFLIBS="-fpie -pie" %{?_smp_mflags} -s V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 CORESIGHT=1 prefix=%{_prefix} +%else +%global perf_make \ + make EXTRA_CFLAGS="-Wl,-z,now -g -Wall -fstack-protector-strong -fPIC" EXTRA_PERFLIBS="-fpie -pie" %{?_smp_mflags} -s V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 prefix=%{_prefix} +%endif +%if 0%{?with_python2} +%global perf_python2 -C tools/perf PYTHON=%{__python2} +%global perf_python3 -C tools/python3-perf PYTHON=%{__python3} +%else +%global perf_python3 -C tools/perf PYTHON=%{__python3} +%endif + +chmod +x tools/perf/check-headers.sh +# perf +%if 0%{?with_python2} +%{perf_make} %{perf_python2} all +%endif + +# make sure check-headers.sh is executable +chmod +x tools/python3-perf/check-headers.sh +%{perf_make} %{perf_python3} all + +pushd tools/perf/Documentation/ +make %{?_smp_mflags} man +popd +%endif + +# bpftool +pushd tools/bpf/bpftool +make +popd + +# cpupower +chmod +x tools/power/cpupower/utils/version-gen.sh +make %{?_smp_mflags} -C tools/power/cpupower CPUFREQ_BENCH=false +%ifarch %{ix86} + pushd tools/power/cpupower/debug/i386 + make %{?_smp_mflags} centrino-decode powernow-k8-decode + popd +%endif +%ifarch x86_64 + pushd tools/power/cpupower/debug/x86_64 + make %{?_smp_mflags} centrino-decode powernow-k8-decode + popd +%endif +%ifarch %{ix86} x86_64 + pushd tools/power/x86/x86_energy_perf_policy/ + make + popd + pushd tools/power/x86/turbostat + make + popd +%endif +# thermal +pushd tools/thermal/tmon/ +make +popd +# iio +pushd tools/iio/ +make +popd +# gpio +pushd tools/gpio/ +make +popd +# kvm +pushd tools/kvm/kvm_stat/ +make %{?_smp_mflags} man +popd +pushd tools/netacc +make BPFTOOL=../../tools/bpf/bpftool/bpftool +popd + +%install +%if !%{with_64kb} +%if 0%{?with_source} + %define _python_bytecompile_errors_terminate_build 0 + mkdir -p $RPM_BUILD_ROOT/usr/src/ + mv linux-%{KernelVer}-source $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer} + cp linux-%{KernelVer}/.config $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer}/ + cp linux-%{KernelVer}/.scmversion $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer}/ +%endif +%endif + +cd linux-%{KernelVer} + +## install linux + +# deal with kernel-source, now we don't need kernel-source +#mkdir $RPM_BUILD_ROOT/usr/src/linux-%{KernelVer} +#tar cf - --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg --exclude .git --exclude=.tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude=.config.old --exclude=.missing-syscalls.d --exclude=patches . | tar xf - -C %{buildroot}/usr/src/linux-%{KernelVer} + +mkdir -p $RPM_BUILD_ROOT/boot +dd if=/dev/zero of=$RPM_BUILD_ROOT/boot/initramfs-%{KernelVer}.img bs=1M count=20 + +install -m 755 $(make -s image_name) $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} + +%if 0%{?openEuler_sign_rsa} + echo "start sign" + %ifarch %arm aarch64 + gunzip -c $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}>$RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.unzip.efi + /opt/sign-openEuler/client --config /opt/sign-openEuler/config.toml add --key-name default-x509ee --file-type efi-image --key-type x509ee --sign-type authenticode $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.unzip.efi + mv $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.unzip.efi $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.unzip + gzip -c $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.unzip>$RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} + rm -f $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.unzip + %endif + %ifarch x86_64 + mv $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.efi + /opt/sign-openEuler/client --config /opt/sign-openEuler/config.toml add --key-name default-x509ee --file-type efi-image --key-type x509ee --sign-type authenticode $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.efi + mv $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer}.efi $RPM_BUILD_ROOT/boot/vmlinuz-%{KernelVer} + %endif +%endif + +pushd $RPM_BUILD_ROOT/boot +sha512hmac ./vmlinuz-%{KernelVer} >./.vmlinuz-%{KernelVer}.hmac +popd + +install -m 644 .config $RPM_BUILD_ROOT/boot/config-%{KernelVer} +install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-%{KernelVer} + +%if 0%{?with_kabichk} + gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-%{KernelVer}.gz +%endif + +mkdir -p $RPM_BUILD_ROOT%{_sbindir} +install -m 755 %{SOURCE200} $RPM_BUILD_ROOT%{_sbindir}/mkgrub-menu-%{devel_release}.sh + + +%if 0%{?with_debuginfo} + mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/%{KernelVer} + cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/%{KernelVer} +%endif + +# deal with module, if not kdump +make ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=%{KernelVer} mod-fw= +######## to collect ko to module.filelist about netwoking. block. drm. modesetting ############### +pushd $RPM_BUILD_ROOT/lib/modules/%{KernelVer} +find -type f -name "*.ko" >modnames + +# mark modules executable so that strip-to-file can strip them +xargs --no-run-if-empty chmod u+x < modnames + +# Generate a list of modules for block and networking. + +grep -F /drivers/ modnames | xargs --no-run-if-empty nm -upA | +sed -n 's,^.*/\([^/]*\.ko\): *U \(.*\)$,\1 \2,p' > drivers.undef + +collect_modules_list() +{ + sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef | + LC_ALL=C sort -u > modules.$1 + if [ ! -z "$3" ]; then + sed -r -e "/^($3)\$/d" -i modules.$1 + fi +} + +collect_modules_list networking \ + 'register_netdev|ieee80211_register_hw|usbnet_probe|phy_driver_register|rt2x00(pci|usb)_probe|register_netdevice' +collect_modules_list block \ + 'ata_scsi_ioctl|scsi_add_host|scsi_add_host_with_dma|blk_alloc_queue|blk_init_queue|register_mtd_blktrans|scsi_esp_register|scsi_register_device_handler|blk_queue_physical_block_size|ahci_platform_get_resources' 'pktcdvd.ko|dm-mod.ko' +collect_modules_list drm \ + 'drm_open|drm_init' +collect_modules_list modesetting \ + 'drm_crtc_init' + +# detect missing or incorrect license tags +rm -f modinfo +while read i +do + echo -n "$i " >> modinfo + /sbin/modinfo -l $i >> modinfo +done < modnames + +grep -E -v \ + 'GPL( v2)?$|Dual BSD/GPL$|Dual MPL/GPL$|GPL and additional rights$' \ + modinfo && exit 1 + +rm -f modinfo modnames drivers.undef + +for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap +do + rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i +done +popd +# modsign module ko;need after find-debuginfo,strip +%define __modsign_install_post \ + if [ "%{with_signmodules}" -eq "1" ];then \ + cp certs/signing_key.pem . \ + cp certs/signing_key.x509 . \ + chmod 0755 %{modsign_cmd} \ + %{modsign_cmd} $RPM_BUILD_ROOT/lib/modules/%{KernelVer} || exit 1 \ + fi \ + find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | xargs -n1 -P`nproc --all` xz; \ +%{nil} + +# deal with header +make ARCH=%{Arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install +make ARCH=%{Arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_check +find $RPM_BUILD_ROOT/usr/include -name "\.*" -exec rm -rf {} \; + +# aarch64 dtbs install +%ifarch aarch64 + mkdir -p $RPM_BUILD_ROOT/boot/dtb-%{KernelVer} + install -m 644 $(find arch/%{Arch}/boot -name "*.dtb") $RPM_BUILD_ROOT/boot/dtb-%{KernelVer}/ + rm -f $(find arch/$Arch/boot -name "*.dtb") +%endif + +# deal with vdso +make -s ARCH=%{Arch} INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=%{KernelVer} +if [ ! -s ldconfig-kernel.conf ]; then + echo "# Placeholder file, no vDSO hwcap entries used in this kernel." >ldconfig-kernel.conf +fi +install -D -m 444 ldconfig-kernel.conf $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-%{KernelVer}.conf + +# deal with /lib/module/ path- sub path: build source kernel +rm -f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build +rm -f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/source +mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build +mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/extra +mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/updates +mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/weak-updates +############ to do collect devel file ######### +# 1. Makefile And Kconfig, .config sysmbol +# 2. scrpits dir +# 3. .h file +find -type f \( -name "Makefile*" -o -name "Kconfig*" \) -exec cp --parents {} $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build \; +for f in Module.symvers System.map Module.markers .config;do + test -f $f || continue + cp $f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build +done + +cp -a scripts $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build +if [ -d arch/%{Arch}/scripts ]; then + cp -a arch/%{Arch}/scripts $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/arch/%{_arch} || : +fi +if [ -f arch/%{Arch}/*lds ]; then + cp -a arch/%{Arch}/*lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/arch/%{_arch}/ || : +fi +find $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/scripts/ -name "*.o" -exec rm -rf {} \; + +if [ -d arch/%{Arch}/include ]; then + cp -a --parents arch/%{Arch}/include $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ +fi +cp -a include $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include + +if [ -f arch/%{Arch}/kernel/module.lds ]; then + cp -a --parents arch/%{Arch}/kernel/module.lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ +fi + +# module.lds is moved to scripts by commit 596b0474d3d9 in linux 5.10. +if [ -f scripts/module.lds ]; then + cp -a --parents scripts/module.lds $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ +fi + +%ifarch aarch64 + cp -a --parents arch/arm/include/asm $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/ +%endif + +# copy objtool for kernel-devel (needed for building external modules) +if grep -q CONFIG_STACK_VALIDATION=y .config; then + mkdir -p $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/tools/objtool + cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/tools/objtool +fi + +# Make sure the Makefile and version.h have a matching timestamp so that +# external modules can be built +touch -r $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/Makefile $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/generated/uapi/linux/version.h +touch -r $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/.config $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/generated/autoconf.h +# for make prepare +if [ ! -f $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/config/auto.conf ];then + cp .config $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build/include/config/auto.conf +fi + +mkdir -p %{buildroot}/usr/src/kernels +mv $RPM_BUILD_ROOT/lib/modules/%{KernelVer}/build $RPM_BUILD_ROOT/usr/src/kernels/%{KernelVer} + +find $RPM_BUILD_ROOT/usr/src/kernels/%{KernelVer} -name ".*.cmd" -exec rm -f {} \; + +pushd $RPM_BUILD_ROOT/lib/modules/%{KernelVer} +ln -sf /usr/src/kernels/%{KernelVer} build +ln -sf build source +popd + + +# deal with doc , now we don't need + + +# deal with kernel abi whitelists. now we don't need + + +## install tools +%if !%{with_64kb} +%if %{with_perf} +# perf +# perf tool binary and supporting scripts/binaries +%if 0%{?with_python2} +%{perf_make} %{perf_python2} DESTDIR=%{buildroot} lib=%{_lib} install-bin install-traceevent-plugins +%else +%{perf_make} %{perf_python3} DESTDIR=%{buildroot} lib=%{_lib} install-bin install-traceevent-plugins +%endif +# remove the 'trace' symlink. +rm -f %{buildroot}%{_bindir}/trace + +# remove examples +rm -rf %{buildroot}/usr/lib/perf/examples +# remove the stray header file that somehow got packaged in examples +rm -rf %{buildroot}/usr/lib/perf/include/bpf/ + +# python-perf extension +%{perf_make} %{perf_python3} DESTDIR=%{buildroot} install-python_ext +%if 0%{?with_python2} +%{perf_make} %{perf_python2} DESTDIR=%{buildroot} install-python_ext +%endif + +# perf man pages (note: implicit rpm magic compresses them later) +install -d %{buildroot}/%{_mandir}/man1 +install -pm0644 tools/kvm/kvm_stat/kvm_stat.1 %{buildroot}/%{_mandir}/man1/ +install -pm0644 tools/perf/Documentation/*.1 %{buildroot}/%{_mandir}/man1/ +%endif + +# bpftool +pushd tools/bpf/bpftool +make DESTDIR=%{buildroot} prefix=%{_prefix} bash_compdir=%{_sysconfdir}/bash_completion.d/ mandir=%{_mandir} install doc-install +popd +# cpupower +make -C tools/power/cpupower DESTDIR=%{buildroot} libdir=%{_libdir} mandir=%{_mandir} CPUFREQ_BENCH=false install +rm -f %{buildroot}%{_libdir}/*.{a,la} +%find_lang cpupower +mv cpupower.lang ../ +%ifarch %{ix86} + pushd tools/power/cpupower/debug/i386 + install -m755 centrino-decode %{buildroot}%{_bindir}/centrino-decode + install -m755 powernow-k8-decode %{buildroot}%{_bindir}/powernow-k8-decode + popd +%endif +%ifarch x86_64 + pushd tools/power/cpupower/debug/x86_64 + install -m755 centrino-decode %{buildroot}%{_bindir}/centrino-decode + install -m755 powernow-k8-decode %{buildroot}%{_bindir}/powernow-k8-decode + popd +%endif +chmod 0755 %{buildroot}%{_libdir}/libcpupower.so* +mkdir -p %{buildroot}%{_unitdir} %{buildroot}%{_sysconfdir}/sysconfig +install -m644 %{SOURCE2000} %{buildroot}%{_unitdir}/cpupower.service +install -m644 %{SOURCE2001} %{buildroot}%{_sysconfdir}/sysconfig/cpupower +%ifarch %{ix86} x86_64 + mkdir -p %{buildroot}%{_mandir}/man8 + pushd tools/power/x86/x86_energy_perf_policy + make DESTDIR=%{buildroot} install + popd + pushd tools/power/x86/turbostat + make DESTDIR=%{buildroot} install + popd +%endif +# thermal +pushd tools/thermal/tmon +make INSTALL_ROOT=%{buildroot} install +popd +# iio +pushd tools/iio +make DESTDIR=%{buildroot} install +popd +# gpio +pushd tools/gpio +make DESTDIR=%{buildroot} install +popd +# kvm +pushd tools/kvm/kvm_stat +make INSTALL_ROOT=%{buildroot} install-tools +popd +pushd tools/netacc +make INSTALL_ROOT=%{buildroot} install +popd +%endif + +%define __spec_install_post\ +%{?__debug_package:%{__debug_install_post}}\ +%{__arch_install_post}\ +%{__os_install_post}\ +%{__modsign_install_post}\ +%{nil} + +%post +%{_sbindir}/new-kernel-pkg --package kernel --install %{KernelVer} || exit $? + +%preun +if [ `uname -i` == "aarch64" ] && + [ -f /boot/EFI/grub2/grub.cfg ]; then + /usr/bin/sh %{_sbindir}/mkgrub-menu-%{devel_release}.sh %{version}-%{devel_release}.aarch64 /boot/EFI/grub2/grub.cfg remove +fi + +%postun +%{_sbindir}/new-kernel-pkg --rminitrd --rmmoddep --remove %{KernelVer} || exit $? +if [ -x %{_sbindir}/weak-modules ] +then + %{_sbindir}/weak-modules --remove-kernel %{KernelVer} || exit $? +fi + +# remove empty directory +if [ -d /lib/modules/%{KernelVer} ] && [ "`ls -A /lib/modules/%{KernelVer}`" = "" ]; then + rm -rf /lib/modules/%{KernelVer} +fi + +%posttrans +%{_sbindir}/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --update %{KernelVer} || exit $? +%{_sbindir}/new-kernel-pkg --package kernel --rpmposttrans %{KernelVer} || exit $? +if [ `uname -i` == "aarch64" ] && + [ -f /boot/EFI/grub2/grub.cfg ]; then + /usr/bin/sh %{_sbindir}/mkgrub-menu-%{devel_release}.sh %{version}-%{devel_release}.aarch64 /boot/EFI/grub2/grub.cfg update +fi +if [ -x %{_sbindir}/weak-modules ] +then + %{_sbindir}/weak-modules --add-kernel %{KernelVer} || exit $? +fi +%{_sbindir}/new-kernel-pkg --package kernel --mkinitrd --dracut --depmod --update %{KernelVer} || exit $? +%{_sbindir}/new-kernel-pkg --package kernel --rpmposttrans %{KernelVer} || exit $? + +%post devel +if [ -f /etc/sysconfig/kernel ] +then + . /etc/sysconfig/kernel || exit $? +fi +if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ] +then + (cd /usr/src/kernels/%{KernelVer} && + /usr/bin/find . -type f | while read f; do + hardlink -c /usr/src/kernels/*.oe*.*/$f $f + done) +fi + +%if !%{with_64kb} +%post -n %{name}-tools +/sbin/ldconfig +%systemd_post cpupower.service + +%preun -n %{name}-tools +%systemd_preun cpupower.service + +%postun -n %{name}-tools +/sbin/ldconfig +%systemd_postun cpupower.service +%endif + +%files +%defattr (-, root, root) +%doc +/boot/config-* +%ifarch aarch64 +/boot/dtb-* +%endif +%if 0%{?with_kabichk} +/boot/symvers-* +%endif +/boot/System.map-* +/boot/vmlinuz-* +%ghost /boot/initramfs-%{KernelVer}.img +/boot/.vmlinuz-*.hmac +/etc/ld.so.conf.d/* +/lib/modules/%{KernelVer}/ +%exclude /lib/modules/%{KernelVer}/source +%exclude /lib/modules/%{KernelVer}/build +%{_sbindir}/mkgrub-menu*.sh + +%files devel +%defattr (-, root, root) +%doc +/lib/modules/%{KernelVer}/source +/lib/modules/%{KernelVer}/build +/usr/src/kernels/%{KernelVer} + +%files headers +%defattr (-, root, root) +/usr/include/* + +%if !%{with_64kb} +%if %{with_perf} +%files -n perf +%{_bindir}/perf +%{_libdir}/libperf-jvmti.so +%dir %{_libdir}/traceevent +%{_libdir}/traceevent/plugins/ +%{_libexecdir}/perf-core +%{_datadir}/perf-core/ +%{_mandir}/man[1-8]/perf* +%{_sysconfdir}/bash_completion.d/perf +%doc linux-%{KernelVer}/tools/perf/Documentation/examples.txt +%dir %{_datadir}/doc/perf-tip +%{_datadir}/doc/perf-tip/* +%license linux-%{KernelVer}/COPYING + +%if 0%{?with_python2} +%files -n python2-perf +%license linux-%{KernelVer}/COPYING +%{python2_sitearch}/* +%endif + +%files -n python3-perf +%license linux-%{KernelVer}/COPYING +%{python3_sitearch}/* +%endif + +%files -n %{name}-tools -f cpupower.lang +%{_bindir}/cpupower +%ifarch %{ix86} x86_64 +%{_bindir}/centrino-decode +%{_bindir}/powernow-k8-decode +%endif +%{_unitdir}/cpupower.service +%{_datadir}/bash-completion/completions/cpupower +%{_mandir}/man[1-8]/cpupower* +%config(noreplace) %{_sysconfdir}/sysconfig/cpupower +%ifarch %{ix86} x86_64 +%{_bindir}/x86_energy_perf_policy +%{_mandir}/man8/x86_energy_perf_policy* +%{_bindir}/turbostat +%{_mandir}/man8/turbostat* +%endif +%{_bindir}/tmon +%{_bindir}/iio_event_monitor +%{_bindir}/iio_generic_buffer +%{_bindir}/lsiio +%{_bindir}/lsgpio +%{_bindir}/gpio-hammer +%{_bindir}/gpio-event-mon +%{_bindir}/gpio-watch +%{_mandir}/man1/kvm_stat* +%{_bindir}/kvm_stat +%{_sbindir}/net-acc +%{_sbindir}/tuned_acc/netacc +%{_libdir}/libcpupower.so.0 +%{_libdir}/libcpupower.so.0.0.1 +%license linux-%{KernelVer}/COPYING + +%files -n %{name}-tools-devel +%{_libdir}/libcpupower.so +%{_includedir}/cpufreq.h +%{_includedir}/cpuidle.h + +%files -n bpftool +%{_sbindir}/bpftool +%{_sysconfdir}/bash_completion.d/bpftool +%{_mandir}/man8/bpftool-cgroup.8.gz +%{_mandir}/man8/bpftool-map.8.gz +%{_mandir}/man8/bpftool-prog.8.gz +%{_mandir}/man8/bpftool-perf.8.gz +%{_mandir}/man8/bpftool.8.gz +%{_mandir}/man8/bpftool-btf.8.gz +%{_mandir}/man8/bpftool-feature.8.gz +%{_mandir}/man8/bpftool-gen.8.gz +%{_mandir}/man8/bpftool-iter.8.gz +%{_mandir}/man8/bpftool-link.8.gz +%{_mandir}/man8/bpftool-net.8.gz +%{_mandir}/man8/bpftool-struct_ops.8.gz +%{_mandir}/man7/bpf-helpers.7.gz +%license linux-%{KernelVer}/COPYING + +%if 0%{?with_source} +%files source +%defattr(-,root,root) +/usr/src/linux-%{KernelVer}/* +/usr/src/linux-%{KernelVer}/.config +/usr/src/linux-%{KernelVer}/.scmversion +%endif + +#with_64kb +%endif + +%changelog +* Mon Jul 15 2024 Liu Zhehui - 5.10.0-218.0.0.118 +- add Haoc patch and spec file + +* Wed Jul 10 2024 Jialin Zhang - 5.10.0-218.0.0.117 +- !9851 net/sched: act_skbmod: prevent kernel-infoleak +- !9853 nilfs2: fix use-after-free of timer for log writer thread +- !9831 mmc: davinci: Don't strip remove function when driver is builtin +- !8096 Fix CVE-2024-35988 +- nilfs2: fix use-after-free of timer for log writer thread +- net/sched: act_skbmod: prevent kernel-infoleak +- mmc: davinci: Don't strip remove function when driver is builtin +- !9643 f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode() +- !9820 kdb: Fix buffer overflow during tab-complete +- kdb: Fix buffer overflow during tab-complete +- !9799 null_blk: fix null-ptr-dereference while configuring 'power' and 'submit_queues' +- !9783 CVE-2024-38598 +- !9772 btrfs: fix use-after-free after failure to create a snapshot +- null_blk: fix null-ptr-dereference while configuring 'power' and 'submit_queues' +- !9792 v3 net: fix one NULL pointer dereference bug in net_rship module +- !9795 drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference +- !9363 fs/ntfs3: Use variable length array instead of fixed size +- !9712 fix CVE-2024-38540 +- drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference +- net: fix one NULL pointer dereference bug in net_rship module +- md: fix resync softlockup when bitmap size is less than array size +- md/raid10: check slab-out-of-bounds in md_bitmap_get_counter +- Revert "md/raid10: fix slab-out-of-bounds in md_bitmap_get_counter" +- !9373 ALSA: core: Fix NULL module pointer assignment at card init +- !9616 v2 wifi: carl9170: add a proper sanity check for endpoints +- !9538 virtio: delete vq in vp_find_vqs_msix() when request_irq() fails +- !9766 f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock +- !9768 iomap: Don't finish dio under irq when there exists pages +- !9753 v2 arm64: arm_pmuv3: Correctly extract and check the PMUVer +- !9731 v2 Backport bpf bugfixes +- btrfs: fix use-after-free after failure to create a snapshot +- iomap: Don't finish dio under irq when there exists pages +- !9719 KVM: LAPIC: Also cancel preemption timer during SET_LAPIC +- !9764 wifi: ar5523: enable proper endpoint verification +- !9711 fix CVE-2024-38615 +- !9761 CVE-2024-26816 +- !9756 net: openvswitch: fix overwriting ct original tuple for ICMPv6 +- f2fs: compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock +- wifi: ar5523: enable proper endpoint verification +- !9716 ax25: Fix reference count leak issues of ax25_dev +- x86/boot: Ignore relocations in .notes sections in walk_relocs() too +- x86, relocs: Ignore relocations in .notes section +- net: openvswitch: fix overwriting ct original tuple for ICMPv6 +- arm64: arm_pmuv3: Correctly extract and check the PMUVer +- !9672 ax25: Fix reference count leak issue of net_device +- !9735 net/9p: fix uninit-value in p9_client_rpc() +- !9572 dma-mapping: benchmark: handle NUMA_NO_NODE correctly +- !9571 media: atomisp: ssh_css: Fix a null-pointer dereference in load_video_binaries +- net/9p: fix uninit-value in p9_client_rpc() +- bpf: ensure main program has an extable +- bpf: Don't EFAULT for {g,s}setsockopt with wrong optlen +- bpf: Fix __reg_bound_offset 64->32 var_off subreg propagation +- bpf: Clobber stack slot when writing over spilled PTR_TO_BTF_ID +- bpf: Fix memory leaks in __check_func_call +- !9440 fix CVE-2024-38621 +- !9705 net/hinic3: Add pcie device ID adaption for DPU_NIC card +- KVM: LAPIC: Also cancel preemption timer during SET_LAPIC +- ax25: Fix reference count leak issues of ax25_dev +- bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq +- cpufreq: exit() callback is optional +- cpufreq: Rearrange locking in cpufreq_remove_dev() +- cpufreq: Split cpufreq_offline() +- cpufreq: Reorganize checks in cpufreq_offline() +- !9701 dma-buf/sw-sync: don't enable IRQ from sync_print_obj() +- net/hinic3: Add pcie device ID adaption for DPU_NIC card +- dma-buf/sw-sync: don't enable IRQ from sync_print_obj() +- !9640 CVE-2024-38582 +- !9662 tls: fix missing memory barrier in tls_init +- !9657 v2 CVE-2024-38586 +- !9686 greybus: lights: check return of get_channel_from_mode +- !9675 crypto: bcm - Fix pointer arithmetic +- greybus: lights: check return of get_channel_from_mode +- crypto: bcm - Fix pointer arithmetic +- ax25: Fix reference count leak issue of net_device +- tls: fix missing memory barrier in tls_init +- r8169: Fix possible ring buffer corruption on fragmented Tx packets. +- r8169: remove nr_frags argument from rtl_tx_slots_avail +- r8169: improve rtl8169_start_xmit +- r8169: improve rtl_tx +- r8169: use READ_ONCE in rtl_tx_slots_avail +- r8169: remove unneeded memory barrier in rtl_tx +- f2fs: fix to do sanity check on i_xattr_nid in sanity_check_inode() +- nilfs2: fix potential hang in nilfs_detach_log_writer() +- nilfs2: fix unexpected freezing of nilfs_segctor_sync() +- wifi: carl9170: add a proper sanity check for endpoints +- dma-mapping: benchmark: handle NUMA_NO_NODE correctly +- media: atomisp: ssh_css: Fix a null-pointer dereference in load_video_binaries +- virtio: delete vq in vp_find_vqs_msix() when request_irq() fails +- media: stk1160: fix bounds checking in stk1160_copy_video() +- ALSA: core: Fix NULL module pointer assignment at card init +- fs/ntfs3: Use variable length array instead of fixed size +- riscv: Fix TASK_SIZE on 64-bit NOMMU +- riscv: fix VMALLOC_START definition + +* Wed Jul 03 2024 Jialin Zhang - 5.10.0-217.0.0.116 +- !9160 xfs: don't use current->journal_info +- !9429 usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs +- !9644 fix uaf when proc_cpuset_show +- !9532 CVE-2024-37356 +- !9496 netrom: fix possible dead-lock in nr_rt_ioctl() +- cgroup: fix uaf when proc_cpuset_show +- !9514 RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt +- !9559 CVE-2024-38597 +- !9039 [OLK-5.10] drm/phytium: Replace default efi fb0 with dc fb +- !9595 drm/arm/malidp: fix a possible null pointer dereference +- !9593 ARM: 9170/1: fix panic when kasan and kprobe are enabled +- !9504 um: Add winch to winch_handlers before registering winch IRQ +- drm/arm/malidp: fix a possible null pointer dereference +- ARM: 9170/1: fix panic when kasan and kprobe are enabled +- !9587 s390/ap: Fix crash in AP internal function modify_bitmap() +- s390/ap: Fix crash in AP internal function modify_bitmap() +- !9569 net: fec: remove .ndo_poll_controller to avoid deadlocks +- !9540 net/mlx5e: Avoid field-overflowing memcpy() +- !9577 v2 btrfs: fix crash on racing fsync and size-extending write into prealloc +- !9563 fs/ntfs3: Check 'folio' pointer for NULL +- !9383 serial: max3100: Update uart_driver_registered on driver removal +- btrfs: fix crash on racing fsync and size-extending write into prealloc +- !8744 ext4 bugfix from mainline +- !9499 ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr +- !9500 netfilter: nf_tables: flush pending destroy work before exit_net release +- !9453 jffs2: prevent xattr node from overflowing the eraseblock +- !9202 dyndbg: fix old BUG_ON in >control parser +- !9193 wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work +- !9201 ipv6: fix potential "struct net" leak in inet6_rtm_getaddr() +- !9190 clk: Fix clk_core_get NULL dereference +- !9188 net: phy: fix phy_get_internal_delay accessing an empty array +- !9462 v2 CVE-2024-27032 +- !9408 drm/mediatek: Add 0 size check to mtk_drm_gem_obj +- !9447 rcu-tasks: Fix show_rcu_tasks_trace_gp_kthread buffer overflow +- !9425 ASoC: SOF: Fix DSP oops stack dump output contents +- !9321 drm/amd/display: Fix potential index out of bounds in color transformation function +- !9297 CVE-2021-47599 +- !9401 Fix CVE-2024-31076 +- !9434 cvm: delete dead code and resolve macro definition holes +- !9395 CVE-2024-38587 +- !9386 vfio/pci: fix potential memory leak in vfio_intx_enable() +- !9199 init/main.c: Fix potential static_command_line memory overflow +- !8683 v4 Fix CVE-2024-35879 +- !9339 serial: max3100: Lock port->lock when calling uart_handle_cts_change() +- !9470 net/mlx5: Add a timeout to acquire the command queue semaphore +- !9442 net/mlx5: Discard command completions in internal error +- !9290 net: bridge: xmit: make sure we have at least eth header len bytes +- !9284 of: module: add buffer overflow check in of_modalias() +- !9477 watchdog: cpu5wdt.c: Fix use-after-free bug caused by cpu5wdt_trigger +- !9544 ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find() +- !9483 fs/ntfs3: Use 64 bit variable to avoid 32 bit overflow +- !9558 CVE-2024-39362 +- !9456 bpf: Add BPF_PROG_TYPE_CGROUP_SKB attach type enforcement in BPF_LINK_CREATE +- !9527 media: lgdt3306a: Add a check against null-pointer-def +- net: fec: remove .ndo_poll_controller to avoid deadlocks +- fs/ntfs3: Check 'folio' pointer for NULL +- net: fec: remove .ndo_poll_controller to avoid deadlocks +- eth: sungem: remove .ndo_poll_controller to avoid deadlocks +- i2c: acpi: Unbind mux adapters before delete +- i2c: add fwnode APIs +- ext4: fix mb_cache_entry's e_refcnt leak in ext4_xattr_block_cache_find() +- net/mlx5e: Avoid field-overflowing memcpy() +- tcp: Fix shift-out-of-bounds in dctcp_update_alpha(). +- params: lift param_set_uint_minmax to common code +- media: lgdt3306a: Add a check against null-pointer-def +- !9511 blk-throttle: check for overflow in calculate_bytes_allowed +- RDMA/rxe: Fix seg fault in rxe_comp_queue_pkt +- blk-throttle: check for overflow in calculate_bytes_allowed +- blk-throttle: use calculate_io/bytes_allowed() for throtl_trim_slice() +- blk-throttle: factor out code to calculate ios/bytes_allowed +- um: Add winch to winch_handlers before registering winch IRQ +- netfilter: nf_tables: flush pending destroy work before exit_net release +- ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr +- netrom: fix possible dead-lock in nr_rt_ioctl() +- fs/ntfs3: Use 64 bit variable to avoid 32 bit overflow +- watchdog: cpu5wdt.c: Fix use-after-free bug caused by cpu5wdt_trigger +- net/mlx5: Add a timeout to acquire the command queue semaphore +- f2fs: fix to avoid potential panic during recovery +- f2fs: fix to check return value of f2fs_reserve_new_block() +- bpf: Add BPF_PROG_TYPE_CGROUP_SKB attach type enforcement in BPF_LINK_CREATE +- jffs2: prevent xattr node from overflowing the eraseblock +- rcu-tasks: Fix show_rcu_tasks_trace_gp_kthread buffer overflow +- net/mlx5: Discard command completions in internal error +- cvm: delete dead code and resolve macro definition holes +- usb: gadget: ncm: Avoid dropping datagrams of properly parsed NTBs +- ASoC: SOF: Fix DSP oops stack dump output contents +- drm/mediatek: Add 0 size check to mtk_drm_gem_obj +- genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline +- speakup: Fix sizeof() vs ARRAY_SIZE() bug +- vfio/pci: fix potential memory leak in vfio_intx_enable() +- serial: max3100: Update uart_driver_registered on driver removal +- serial: max3100: Lock port->lock when calling uart_handle_cts_change() +- drm/amd/display: Fix potential index out of bounds in color transformation function +- btrfs: remove stale comment about the btrfs_show_devname +- btrfs: update latest_dev when we create a sprout device +- btrfs: use latest_dev in btrfs_show_devname +- btrfs: convert latest_bdev type to btrfs_device and rename +- net: bridge: xmit: make sure we have at least eth header len bytes +- of: module: add buffer overflow check in of_modalias() +- dyndbg: fix old BUG_ON in >control parser +- ipv6: fix potential "struct net" leak in inet6_rtm_getaddr() +- init/main.c: Fix potential static_command_line memory overflow +- wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work +- clk: Fix clk_core_get NULL dereference +- net: phy: fix phy_get_internal_delay accessing an empty array +- xfs: don't use current->journal_info +- drm/phytium: Replace default efi fb0 with dc fb +- ext4: fix warning in ext4_dio_write_end_io() +- ext4: properly sync file size update after O_SYNC direct IO +- iomap: update ki_pos a little later in iomap_dio_complete +- driver core: Fix kabi broken +- of: dynamic: Synchronize of_changeset_destroy() with the devlink removals +- driver core: Introduce device_link_wait_removal() + +* Thu Jun 27 2024 Jialin Zhang - 5.10.0-216.0.0.115 +- !9507 Enable SIS_UTIL for arm64 and optimize load_balance +- !9508 Revert "fs: Use CHECK_DATA_CORRUPTION() when +- Revert "fs: Use CHECK_DATA_CORRUPTION() when kernel bugs are detected" +- config: Disable COBFIG_ARCH_CUSTOM_NUMA_DISTANCE for arm64 +- sched/numa: Fix numa imbalance in load_balance() +- Revert "Revert "sched/fair:ARM64 enables SIS_UTIL and disables SIS_PROP"" +- Revert "sched: ARM64 enables SIS_PROP and disables SIS_UTIL"" +- !9333 net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP +- !8098 netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path +- !5860 ksmbd: fix UAF issue in ksmbd_tcp_new_connection() +- !9421 v3 block: fix WARNING in init_blk_queue_async_dispatch +- block: fix WARNING in init_blk_queue_async_dispatch +- net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP +- netfilter: nf_tables: release mutex after nft_gc_seq_end from abort path +- ksmbd: fix UAF issue in ksmbd_tcp_new_connection() + +* Tue Jun 25 2024 Jialin Zhang - 5.10.0-214.0.0.114 +- !9391 fs: Use CHECK_DATA_CORRUPTION() when kernel bugs are detected +- fs: Use CHECK_DATA_CORRUPTION() when kernel bugs are detected + +* Mon Jun 24 2024 Jialin Zhang - 5.10.0-213.0.0.113 +- !9327 af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg +- !9264 ring-buffer: Fix a race between readers and resize checks +- !9305 CVE-2024-26661 following bugfix +- !9246 ksmbd: no response from compound read +- !9350 tracing: Fix permissions for the buffer_percent file +- tracing: Fix permissions for the buffer_percent file +- af_unix: Fix data races in unix_release_sock/unix_stream_sendmsg +- drm/amd/display: Fix && vs || typos +- drm/amd/display: Fix 'panel_cntl' could be null in 'dcn21_set_backlight_level()' +- Revert "drm/amd/display: Fix && vs || typos" +- ring-buffer: Fix a race between readers and resize checks +- ksmbd: no response from compound read + +* Sun Jun 23 2024 Jialin Zhang - 5.10.0-212.0.0.112 +- !9347 sched: ARM64 enables SIS_PROP and disables SIS_UTIL" +- sched: ARM64 enables SIS_PROP and disables SIS_UTIL" + +* Sat Jun 22 2024 Jialin Zhang - 5.10.0-211.0.0.111 +- !9318 Revert "sched/fair:ARM64 enables SIS_UTIL and disables SIS_PROP" +- Revert "sched/fair:ARM64 enables SIS_UTIL and disables SIS_PROP" + +* Fri Jun 21 2024 Jialin Zhang - 5.10.0-210.0.0.110 +- !9268 net: sched: sch_multiq: fix possible OOB write in multiq_tune() +- !9103 ksmbd: no response from compound read +- !9186 spi: Fix deadlock when adding SPI controllers on SPI buses +- !9283 hns3 udma: support non share jfr mode in UM +- !9277 ima: Fix violation digests extending issue in cvm +- hns3 udma: kernel support non share jfr mode in UM mode +- net: sched: sch_multiq: fix possible OOB write in multiq_tune() +- !9244 urma: cannot uninstall uburma driver +- !9250 Fix token error issue when concurrent calls +- !9241 v2 Bugfix backport for rcu +- urma: cannot uninstall uburma driver +- Fix token error issue when concurrent calls +- !9180 wifi: wilc1000: fix RCU usage in connect path +- !9212 drm/amd/display: Fix division by zero in setup_dsc_config +- ima: Fix violation digests extending issue in cvm +- !9239 Fix allmodconfig build frame size error +- !9207 v2 sched: smart_grid: fix potential NULL pointer dereference +- srcu: Fix callbacks acceleration mishandling +- entry/rcu: Check TIF_RESCHED _after_ delayed RCU wake-up +- rcu: Defer RCU kthreads wakeup when CPU is dying +- RDMA/hiroce3: Fix allmodconfig build frame size error +- !7729 loop: use lo->lo_disk for kobject_uevent +- !9211 memcg: attach memcg async reclaim worker to curcpu +- !9168 UBIFS: fixes a series of issues that caused by power cut +- !9000 media: tc358743: register v4l2 async device only after successful setup +- !9087 fs/9p: fix uninitialized values during inode evict +- drm/amd/display: Fix division by zero in setup_dsc_config +- memcg: attach memcg async reclaim worker to curcpu +- sched: smart_grid: fix potential NULL pointer dereference +- spi: fix kabi breakage in struct spi_controller +- spi: fix use-after-free of the add_lock mutex +- spi: Fix deadlock when adding SPI controllers on SPI buses +- wifi: wilc1000: fix RCU usage in connect path +- ubifs: dbg_orphan_check: Fix missed key type checking +- ubifs: Fix unattached inode when powercut happens in creating +- ubifs: Fix space leak when powercut happens in linking tmpfile +- ubifs: Move ui->data initialization after initializing security +- ubifs: Fix adding orphan entry twice for the same inode +- ubifs: Remove insert_dead_orphan from replaying orphan process +- ubifs: Don't add xattr inode into orphan area +- ubifs: Fix unattached xattr inode if powercut happens after deleting +- ubifs: Fix some kernel-doc comments +- ubifs: Fix spelling mistakes +- ksmbd: no response from compound read +- fs/9p: fix uninitialized values during inode evict +- media: tc358743: register v4l2 async device only after successful setup +- loop: use lo->lo_disk for kobject_uevent + +* Wed Jun 19 2024 Jialin Zhang - 5.10.0-209.0.0.109 +- !9092 v2 ksmbd: validate request buffer size in smb2_allocate_rsp_buf() +- !9030 bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue +- !9112 Backport some optimizing patches for kunpeng920 +- !9099 Bluetooth: L2CAP: Fix div-by-zero in l2cap_le_flowctl_init() +- !9166 A Solution to Re-enable hugetlb vmemmap optimize on ARM64 +- !9163 genirq: introduce handle_fasteoi_edge_irq flow handler +- ARM: 9278/1: kfence: only handle translation faults +- arm64: mm: HVO: support BBM of vmemmap pgtable safely +- arm64: mm: kfence: only handle translation faults +- mm: HVO: introduce helper function to update and flush pgtable +- genirq: introduce handle_fasteoi_edge_irq for phytium +- genirq: introduce handle_fasteoi_edge_irq flow handler +- !8753 memcg: fix input of try_to_free_mem_cgroup_pages +- !9149 [sync] PR-9054: soc: fsl: qbman: Use raw spinlock for cgr_lock +- !9125 arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process +- !9138 v2 CVE-2024-36971 +- !8494 rpmsg: virtio: Free driver_override when rpmsg_remove() +- !9073 v2 Fix UAF problem of hpool +- soc: fsl: qbman: Use raw spinlock for cgr_lock +- !9131 mm: swap: fix race between free_swap_and_cache() and swapoff() +- !9129 ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses +- !9068 Bluetooth: RFCOMM: Fix not validating setsockopt user input +- !8700 wifi: cfg80211: check A-MSDU format more carefully +- net: fix kabi breakage in struct dst_ops +- net: fix __dst_negative_advice() race +- mm: swap: fix race between free_swap_and_cache() and swapoff() +- ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses +- arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process +- !8999 scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload +- !8938 clk: sunxi-ng: h6: Reparent CPUX during PLL CPUX rate change +- arm64: syscall: unmask DAIF for tracing status +- arm64: Snapshot thread flags +- sched: Snapshot thread flags +- entry: Snapshot thread flags +- x86: Snapshot thread flags +- thread_info: Add helpers to snapshot thread flags +- irqchip/gic-v3: Use dsb(ishst) to order writes with ICC_SGI1R_EL1 accesses +- sched/fair: Optimize test_idle_cores() for !SMT +- Bluetooth: L2CAP: Fix div-by-zero in l2cap_le_flowctl_init() +- !8940 firewire: ohci: mask bus reset interrupts between ISR and bottom half +- !8747 dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA +- ksmbd: validate request buffer size in smb2_allocate_rsp_buf() +- !9074 [sync] PR-8963: Fix CVE-2024-35915 +- !9083 Bluetooth: L2CAP: Fix not validating setsockopt user input +- !9081 v2 arm64: mm: Replace global variable in pbha with static key +- Bluetooth: L2CAP: Fix not validating setsockopt user input +- arm64: mm: Replace global variable in pbha with static key +- nfc: nci: Fix handling of zero-length payload packets in nci_rx_work() +- nfc: nci: Fix uninit-value in nci_rx_work +- nfc: nci: Fix kcov check in nci_rx_work() +- nfc: nci: Fix uninit-value in nci_dev_up and nci_ntf_packet +- mm/dynamic_hugetlb: use rcu lock to protect hpool +- mm/dynamic_hugetlb: simplify the refcount code +- Bluetooth: RFCOMM: Fix not validating setsockopt user input +- bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue +- scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload +- firewire: ohci: mask bus reset interrupts between ISR and bottom half +- clk: sunxi-ng: h6: Reparent CPUX during PLL CPUX rate change +- memcg: fix input of try_to_free_mem_cgroup_pages +- dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA +- wifi: cfg80211: check A-MSDU format more carefully +- rpmsg: virtio: Free driver_override when rpmsg_remove() + +* Fri Jun 14 2024 Jialin Zhang - 5.10.0-208.0.0.108 +- !9084 v5 xfs: atomic writes for xfs +- block: fix kabi in struct queue_limits +- xfs: make bunmapi observe forcealigin +- xfs: Only free full extents for forcealign +- xfs: Update xfs_is_falloc_aligned() mask for forcealign +- xfs: fix set xflags fail when inode has extent hit +- xfs: support atomic write ioctl +- fs: xfs: Support setting FMODE_CAN_ATOMIC_WRITE +- fs: xfs: Validate atomic writes +- fs: xfs: Support FS_XFLAG_ATOMICWRITES for forcealign +- fs: iomap: Atomic write support +- fs: Add FS_XFLAG_ATOMICWRITES flag +- fs: xfs: iomap: Sub-extent zeroing +- fs: iomap: Sub-extent zeroing +- fs: xfs: Do not free EOF blocks for forcealign +- fs: xfs: Make file data allocations observe the 'forcealign' flag +- fs: xfs: Enable file data forcealign feature +- fs: xfs: Introduce FORCEALIGN inode flag +- nvme: Atomic write support +- block: Add core atomic write support +- fs: Initial atomic write support +- block: get atomic write max sectors +- !9064 drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group +- !9067 config: enable CONFIG_BLK_CGROUP_IOCOST by default +- !9063 v3 block: support to dispatch bio asynchronously +- !9066 change sdma-dae default mode to n +- !8827 v2 iomap: fix sub-page not set dirty state +- drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group +- !9059 roh/hns3: Add ROH client case in hclgevf_init_client_instance. +- !9055 CVE-2024-36020 +- !9015 CVE-2024-36953 +- !9014 drm/vc4: don't check if plane->state->fb == state->fb +- config: enable CONFIG_BLK_CGROUP_IOCOST by default +- drivers: misc: sdma-dae: not compile sdma-dae by default +- block: fix kabi broken in struct request_queue about CONFIG_BLK_BIO_DISPATCH_ASYNC +- block: support to dispatch bio asynchronously +- !9050 CVE-2024-35796 +- roh/hns3: Add ROH client case in hclgevf_init_client_instance. +- i40e: fix vf may be used uninitialized in this function warning +- !9020 wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer() +- net: ll_temac: platform_get_resource replaced by wrong function +- !7205 mm: memcontrol: do not miss MEMCG_MAX events for enforced allocations +- !8908 Refactor hbmdev a bit +- !9001 roh/hns3: Fix IMP reset vlan unusable. +- !8774 CVE-2024-36914 +- !9027 tty: n_gsm: fix possible out-of-bounds in gsm0_receive() +- !8828 drm/panfrost: Fix the error path in panfrost_mmu_map_fault_addr() +- !8719 CVE-2024-35887 +- !8872 drm/vmwgfx: Fix invalid reads in fence signaled events +- !8882 scsi: lpfc: Move NPIV's transport unregistration to after resource clean up +- !8921 hugetlbfs: fix hugetlbfs_statfs() locking +- tty: n_gsm: fix possible out-of-bounds in gsm0_receive() +- wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer() +- KVM: arm64: vgic-v2: Check for non-NULL vCPU in vgic_v2_parse_attr() +- KVM: arm64: vgic-v2: Use cpuid from userspace as vcpu_id +- drm/vc4: don't check if plane->state->fb == state->fb +- roh/hns3: Fix IMP reset vlan unusable. +- !8965 cvm: enhance security for cvm host feature +- !8982 fix CVE-2024-36905 +- !8996 pinctrl: devicetree: fix refcount leak in pinctrl_dt_to_map() +- pinctrl: devicetree: fix refcount leak in pinctrl_dt_to_map() +- net: relax socket state check at accept time. +- tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets +- cvm: enhance security for cvm host feature +- hugetlbfs: fix hugetlbfs_statfs() locking +- arm64: config: Open the hbmdev related config +- soc: hisilicon: Don't poweroff if memblocks don't offlined +- soc: hisilicon: hisi_hbmdev: Notify the device in the ACPI +- scsi: lpfc: Move NPIV's transport unregistration to after resource clean up +- drm/vmwgfx: Fix invalid reads in fence signaled events +- drm/panfrost: Fix the error path in panfrost_mmu_map_fault_addr() +- iomap: Ensure sub-page dirty state is set during mmap writes +- Revert "iomap: Don't create iomap_page objects in iomap_page_mkwrite_actor" +- drm/amd/display: Skip on writeback when it's not applicable +- ax25: fix use-after-free bugs caused by ax25_ds_del_timer +- mm: memcontrol: do not miss MEMCG_MAX events for enforced allocations + +* Wed Jun 12 2024 Jialin Zhang - 5.10.0-207.0.0.107 +- !8599 Bluetooth: hci_core: Fix possible buffer overflow +- !8949 CVE-2022-48652 +- !8602 netfilter: nf_tables: set dormant flag on hook register failure +- !8867 ipv6: prevent NULL dereference in ip6_output() +- !8779 smb: client: fix UAF in smb2_reconnect_server() +- !8893 [sync] PR-8531: gpiolib: cdev: fix uninitialised kfifo +- !8985 cvm_tsi: Fix security issue for Confidential cVM TSI +- !8686 mlxsw: spectrum_acl_tcam: Fix memory leak during rehash +- !8711 ubifs: Set page uptodate in the correct place +- !8860 blk-iocost: do not WARN if iocg was already offlined +- !8639 s390/qeth: Fix kernel panic after setting hsuid +- !8946 usb: typec: ucsi: Limit read size on v1.2 +- !8969 Fix CVE-2024-36949 +- cvm_tsi: Fix security issue for Confidential cVM TSI +- !8216 ACPI: video: check for error while searching for backlight device parent +- !8903 ALSA: scarlett2: Add missing error checks to *_ctl_get() +- !8584 virtio-blk: fix implicit overflow on virtio_max_dma_size +- !8838 blk-iocost: avoid out of bounds shift +- !8856 PCI/PM: Drain runtime-idle callbacks before driver removal +- amd/amdkfd: sync all devices to wait all processes being evicted +- drm/amdkfd: Rework kfd_locked handling +- !8906 net/mlx5e: Fix use-after-free of encap entry in neigh update handler +- !8910 gpiolib: cdev: Fix use after free in lineinfo_changed_notify +- ice: Fix crash by keep old cfg when update TCs more than queues +- ice: ethtool: Prohibit improper channel config for DCB +- !8879 net: core: reject skb_copy(_expand) for fraglist GSO skbs +- !6695 netfilter: nft_set_pipapo: do not free live element +- usb: typec: ucsi: Limit read size on v1.2 +- !8891 net: fix out-of-bounds access in ops_init +- !8871 add sdma-dae for openeuler 22.03 SP4 +- !8762 tipc: fix UAF in error path +- !8742 octeontx2-af: avoid off-by-one read from userspace +- !8734 mptcp: ensure snd_nxt is properly initialized on connect +- !8634 batman-adv: Avoid infinite loop trying to resize local TT +- !8736 net: hns3: fix kernel crash when devlink reload during initialization +- !8745 afs: Fix corruption in reads at fpos 2G-4G from an OpenAFS server +- !3547 fs: mitigatin cacheline false sharing in struct file +- !8887 nsh: Restore skb->{protocol,data,mac_header} for outer header in nsh_gso_segment(). +- gpiolib: cdev: Fix use after free in lineinfo_changed_notify +- net/mlx5e: Fix use-after-free of encap entry in neigh update handler +- ALSA: scarlett2: Add missing error checks to *_ctl_get() +- !8785 tty: n_gsm: require CAP_NET_ADMIN to attach N_GSM0710 ldisc +- drivers: misc: sdma-dae: enable sdma_dae for arm64 +- drivers: misc: sdma-dae: support page fault preprocess +- gpiolib: cdev: fix uninitialised kfifo +- !8849 ipv6: fib6_rules: avoid possible NULL dereference in fib6_rule_action() +- net: fix out-of-bounds access in ops_init +- !8666 phonet/pep: fix racy skb_queue_empty() use +- nsh: Restore skb->{protocol,data,mac_header} for outer header in nsh_gso_segment(). +- net: core: reject skb_copy(_expand) for fraglist GSO skbs +- drivers: misc: sdma-dae: support interrupt init and handle +- drivers: misc: sdma-dae: support sqe task send and execute +- drivers: misc: sdma-dae: support channel management +- drivers: misc: sdma-dae: support getting streamID +- drivers: misc: sdma-dae: support initializ sdma driver +- ipv6: prevent NULL dereference in ip6_output() +- blk-iocost: do not WARN if iocg was already offlined +- PCI/PM: Drain runtime-idle callbacks before driver removal +- ipv6: fib6_rules: avoid possible NULL dereference in fib6_rule_action() +- !8684 tcp: properly terminate timers for kernel sockets +- !8629 erspan: make sure erspan_base_hdr is present in skb->head +- blk-iocost: avoid out of bounds shift +- !8635 ipv6: Fix potential uninit-value access in __ip6_make_skb() +- !8550 tipc: fix a possible memleak in tipc_buf_append +- !8726 tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). +- !8808 v2 Add support for PCC Operation Region +- !8623 fs/9p: only translate RWX permissions for plain 9P2000 +- !8479 scsi: lpfc: Release hbalock before calling lpfc_worker_wake_up() +- arm64: config: Enable ACPI_PCC +- ACPI: PCC: Setup PCC Opregion handler only if platform interrupt is available +- ACPI: PCC: Fix unintentional integer overflow +- ACPI: PCC: Fix Tx acknowledge in the PCC address space handler +- ACPI: PCC: replace wait_for_completion() +- ACPI: PCC: Release resources on address space setup failure path +- ACPI: PCC: pcc_ctx can be static +- ACPI: PCC: Implement OperationRegion handler for the PCC Type 3 subtype +- ACPICA: Add support for PCC Opregion special context data +- tty: n_gsm: require CAP_NET_ADMIN to attach N_GSM0710 ldisc +- smb: client: fix UAF in smb2_reconnect_server() +- tipc: fix UAF in error path +- afs: Fix corruption in reads at fpos 2G-4G from an OpenAFS server +- octeontx2-af: avoid off-by-one read from userspace +- net: hns3: fix kernel crash when devlink reload during initialization +- mptcp: ensure snd_nxt is properly initialized on connect +- tcp: Use refcount_inc_not_zero() in tcp_twsk_unique(). +- ubifs: Set page uptodate in the correct place +- mlxsw: spectrum_acl_tcam: Fix memory leak during rehash +- tcp: properly terminate timers for kernel sockets +- phonet/pep: fix racy skb_queue_empty() use +- s390/qeth: Fix kernel panic after setting hsuid +- ipv6: Fix potential uninit-value access in __ip6_make_skb() +- batman-adv: Avoid infinite loop trying to resize local TT +- erspan: make sure erspan_base_hdr is present in skb->head +- fs/9p: only translate RWX permissions for plain 9P2000 +- netfilter: nf_tables: set dormant flag on hook register failure +- Bluetooth: hci_core: Fix possible buffer overflow +- virtio-blk: fix implicit overflow on virtio_max_dma_size +- tipc: fix a possible memleak in tipc_buf_append +- scsi: lpfc: Release hbalock before calling lpfc_worker_wake_up() +- ACPI: video: check for error while searching for backlight device parent +- netfilter: nft_set_pipapo: do not free live element +- fs: enable CONFIG_FILE_MITIGATION_FALSE_SHARING by default on arm64 +- fs: mitigatin cacheline false sharing in struct file + +* Tue Jun 11 2024 luhuaxin - 5.10.0-206.0.0.106 +- Add the pub key in openEuler RPM-PGP certificate + +* Fri Jun 07 2024 Jialin Zhang - 5.10.0-206.0.0.105 +- !8770 IMA: Check cvm world before call smc function +- !8797 kvm: arm64: Fix a compilation error +- !8782 drivers: net: ub: dev: network_mgmt: Modify the dguid of network control packets. +- kvm: arm64: Fix a compilation error +- network_mgmt: Modify the dguid of network control packets. +- !8781 HNS3: Supports the configuration of default mc guid +- !8789 Bluetooth: SCO: Fix not validating setsockopt user input +- !8658 usb: typec: altmodes/displayport: create sysfs nodes as driver's default device attribute group +- IMA: Check cvm world before call smc function +- Bluetooth: SCO: Fix not validating setsockopt user input +- HNS3: Supports the configuration of default mc guid +- usb: typec: altmodes/displayport: create sysfs nodes as driver's default device attribute group + +* Fri Jun 07 2024 Jialin Zhang - 5.10.0-204.0.0.104 +- !8673 IMA: Support uid and gid tamplate +- !8679 rtnetlink: Correct nested IFLA_VF_VLAN_LIST attribute validation +- !8558 xen-netfront: Add missing skb_mark_for_recycle +- !8725 v6 Fix CVE-2023-52732 +- !8222 Fix CVE-2023-52672 +- !8590 geneve: fix header validation in geneve[6 +- !8355 powerpc: defconfig: Disable CONFIG_DW_EDMA and CONFIG_DW_EDMA_PCIE +- !8749 ubifs: Check @c->dirty_[n|p +- ubifs: Check @c->dirty_[n|p]n_cnt and @c->nroot state under @c->lp_mutex +- !8723 crypto: hisilicon/qm - change function type to void +- !8536 livepatch: Fix find wrong ftrace entry +- !8682 ACPI: bus: Ensure that notify handlers are not running after removal +- !8688 x86/signal: Fix the value returned by strict_sas_size() +- !8618 CVE-2024-35896 +- !8607 CVE-2024-35895 +- !8586 fix CVE-2021-47558 +- !8548 fix CVE-2024-36906 +- ceph: blocklist the kclient when receiving corrupted snap trace +- ceph: shut down access to inode when async create fails +- ceph: refactor remove_session_caps_cb +- ceph: fix auth cap handling logic in remove_session_caps_cb +- ceph: drop private list from remove_session_caps_cb +- crypto: hisilicon/qm - change function type to void +- !7930 bpf: Protect against int overflow for stack access size +- !8581 22.03-SP4-ACC patch +- !8396 RDMA/hns: A set of bugfixes for openeuler 22.03 SP4 +- !8613 CVE-2024-35854 +- !8583 mmc: sdhci-msm: pervent access to suspended controller +- !8693 【OLK-5.10】Fix some problems about patch "net: hns3: release PTP resources if pf initialization failed" +- net: hns3: release PTP resources if pf initialization failed +- Revert "net: hns3: release PTP resources if pf initialization failed" +- x86/signal: Fix the value returned by strict_sas_size() +- ACPI: bus: Ensure that notify handlers are not running after removal +- crypto: hisilicon/qm - Add the default processing branch +- crypto: hisilicon/debugfs - Resolve the problem of applying for redundant space in sq dump +- crypto: hisilicon/sec - Fix memory leak for sec resource release +- crypto: hisilicon - Adjust debugfs creation and release order +- crypto: hisilicon/debugfs - Fix the processing logic issue in the debugfs creation +- crypto: hisilicon/sgl - Delete redundant parameter verification +- crypto: hisilicon/debugfs - Fix debugfs uninit process issue +- crypto: hisilicon/sec - Add the condition for configuring the sriov function +- rtnetlink: Correct nested IFLA_VF_VLAN_LIST attribute validation +- crypto: hisilicon/zip - fix the missing CRYPTO_ALG_ASYNC in cra_flags +- crypto: hisilicon - Fix smp_processor_id() warnings +- netfilter: complete validation of user input +- netfilter: validate user input for expected length +- mlxsw: spectrum_acl_tcam: Fix memory leak when canceling rehash work +- mlxsw: spectrum_acl_tcam: Fix possible use-after-free during rehash +- Revert "bpf, sockmap: Prevent lock inversion deadlock in map delete elem" +- bpf: Allow delete from sockmap/sockhash only if update is allowed +- bpf, sockmap: Prevent lock inversion deadlock in map delete elem +- geneve: fix header validation in geneve[6]_xmit_skb +- net: stmmac: Disable Tx queues when reconfiguring the interface +- mmc: sdhci-msm: pervent access to suspended controller +- xen-netfront: Add missing skb_mark_for_recycle +- ARM: 9381/1: kasan: clear stale stack poison +- livepatch: Fix find wrong ftrace entry +- RDMA/hns: Fix missing list_del in hns_roce_hem +- RDMA/hns: Fix deadlock when using DCA debugfs. +- RDMA/hns: Set NULL after mtr_node is freed +- RDMA/hns: Fix missing validation check of DCA mem size +- RDMA/hns: directly read the scc parameters in the driver instead of the firmware +- RDMA/hns: Fix missing default values of scc parameters +- RDMA/hns: Fix fmt output error +- RDMA/hns: Fix cpu stuck by printings during reset +- RDMA/hns: Fix CPU stuck due to read polling during reset +- powerpc: defconfig: Disable CONFIG_DW_EDMA and CONFIG_DW_EDMA_PCIE +- pipe: wakeup wr_wait after setting max_usage +- fs/pipe: move check to pipe_has_watch_queue() +- ima: Define new template fields iuid and igid +- ima: Add ima_show_template_uint() template library function +- bpf: Protect against int overflow for stack access size + +* Wed Jun 05 2024 Jialin Zhang - 5.10.0-203.0.0.103 +- !8646 Fix vf init and common user permissions issue +- !8534 riscv: process: Fix kernel gp leakage +- !8542 octeontx2-af: Fix possible null pointer dereference. +- !8642 v9 Memory access profiler(SPE) driven NUMA balancing +- !8483 KVM: arm64: Translate logic cluster id to physical cluster id when updating lsudvmbm +- net/ethernet/huawei/hiroce3: Fix vf init and common user permissions issue +- !8461 i2c: smbus: fix NULL function pointer dereference +- config: Enable memory sampling based pmu for numa balance by default +- samples/bpf: Add program for memory access by spe +- tracing, mem-sampling-sample: Adding tracking events to hardware-sampled page access +- driver/arm/spe: making mem_sampling and perf mutually exclusive with spe driver +- tracing, numa balance: add trace events for numa data caused by mem_sampling +- mm/mem_sampling.c: Add controlling interface for mem_sampling on numa balance +- mm/mem_sampling.c: Drive NUMA balancing via mem_sampling access data +- sched: Enable per-process mem_sampling from sched switch path +- mm/mem_sampling.c: Add controlling interface for mem_sampling +- mm: Add PMU based memory sampling abstract layer +- drivers/arm/spe: In-kernel SPE driver for page access profiling +- !8555 rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back +- !8425 CVE-2023-52677 +- !8519 mISDN: hfcpci: Fix use-after-free bug in hfcpci_softirq +- !8545 v2 arm64 mpam fix patch +- !8468 v2 CVE-2024-35808 +- !8046 block: prevent division by zero in blk_rq_stat_sum() +- !8605 smb: client: fix use-after-free bug in cifs_debug_data_proc_show() +- !7670 btrfs: send: handle path ref underflow in header iterate_inode_ref() +- !8513 net: ena: Fix incorrect descriptor free behavior +- !8535 v4 Fix soft lockup in stress test +- !8561 mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update +- !8497 Bluetooth: l2cap: fix null-ptr-deref in l2cap_chan_timeout +- smb: client: fix use-after-free bug in cifs_debug_data_proc_show() +- !7803 v2 selinux: avoid dereference of garbage after mount failure +- !6393 crypto: xilinx - call finalize with bh disabled +- !8539 v2 iommu/arm-smmu-v3: Reducing the CMD_SYNC times +- !8504 CVE: CVE-2024-36015 +- !8261 tty: fix hang on tty device with no_room set +- !8110 drm/client: Fully protect modes[ +- mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update +- rtnetlink: fix error logic of IFLA_BRIDGE_FLAGS writing back +- !8472 fix CVE-2024-27415 +- !8527 v8 Add support for l0 +- !8395 5.10: fix CVE-2024-35978 +- !8541 v2 iommu/iova: move depot up to avoid cache conflict +- !8407 pinctrl: core: delete incorrect free in pinctrl_enable() +- !8240 v2 dmaengine: idxd: Fix oops during rmmod on single-CPU platforms +- arm64/mpam: Fix softlockup when reading mondata +- arm64/mpam: Fix wrong seconds to jiffies conversion +- arm64/mpam: change allocation mode from GFP_KERNEL to GFP_NOWAIT +- mpam/resctrl: Fix use-after-free due to inaccurate refcount of rdtgroup +- mpam/resctrl: Clean up resctrl_group_rmdir_[ctrl/mon]() +- mpam/resctrl: Clean up unused function parameter in mkdir path +- mpam/resctrl: Fix a deadlock due to inaccurate reference +- octeontx2-af: Fix possible null pointer dereference. +- iommu/iova: move depot up to avoid cache conflict +- iommu/arm-smmu-v3: Reducing the CMD_SYNC times +- iommu/iova: Try to schedule out when free iova too long +- iommu/iova: free iovas on each cpu in flush queue +- riscv: process: Fix kernel gp leakage +- arm64: config: Enable hisi l3t & l0 by default +- hisi: l0: Add support for l0 +- hisi: l3t: Add L3 cache driver for hisi +- mm/mempolicy: Add and export get_vma_policy_node +- arm64: export cpu_logical_map +- export symbol alloc_contig_pages +- mISDN: hfcpci: Fix use-after-free bug in hfcpci_softirq +- net: ena: Fix incorrect descriptor free behavior +- ppdev: Add an error check in register_device +- ppdev: Remove usage of the deprecated ida_simple_xx() API +- Bluetooth: l2cap: fix null-ptr-deref in l2cap_chan_timeout +- !8397 mm/hugetlb: fix missing hugetlb_lock for resv uncharge +- !8373 dma-direct: Leak pages on dma_set_decrypted() failure +- KVM: arm64: Translate logic cluster id to physical cluster id when updating lsudvmbm +- !8428 drm/amdgpu: Fix even more out of bound writes from debugfs +- !8339 soc: qcom: llcc: Handle a second device without data corruption +- !8368 efi/capsule-loader: fix incorrect allocation size +- netfilter: br_netfilter: skip conntrack input hook for promisc packets +- netfilter: bridge: confirm multicast packets before passing them up the stack +- md/dm-raid: don't clear MD_RECOVERY_FROZEN after setting frozen +- md/dm-raid: don't call md_reap_sync_thread() directly +- !8454 v3 net: Bacport hulk patches +- i2c: smbus: fix NULL function pointer dereference +- !8069 CVE-2021-47427 +- !8299 xfs: Fix file creation failure +- !8426 Backport 5.10.209 LTS patches from upstream +- !8416 iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe() +- net: xfrm: skip policies marked as dead while reinserting policies +- tcp_comp: modify default value of TCP_COMP to n +- bpf: socketmap: add Kconfig for customized socketmap +- bpf: fix magic numbers in bpf_get_sockops_uid_gid() +- netfilter: make return-type and function-name in the same line +- bpf: fix type incompatible warning +- bpf: fix format type mismatch warning +- !8342 net/mlx5: Properly link new fs rules into the tree +- drm/amdgpu: Fix even more out of bound writes from debugfs +- arm64: dts: armada-3720-turris-mox: set irq type for RTC +- i2c: s3c24xx: fix transferring more than one message in polling mode +- i2c: s3c24xx: fix read transfers in polling mode +- selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes +- selftests: mlxsw: qos_pfc: Convert to iproute2 dcb +- ethtool: netlink: Add missing ethnl_ops_begin/complete +- kdb: Fix a potential buffer overflow in kdb_local() +- ipvs: avoid stat macros calls from preemptible context +- netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description +- netfilter: nf_tables: skip dead set elements in netlink dump +- netfilter: nf_tables: do not allow mismatch field size and set key length +- net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe +- net: ravb: Fix dma_addr_t truncation in error case +- net: phy: micrel: populate .soft_reset for KSZ9131 +- net: ethernet: ti: am65-cpsw: Fix max mtu to fit ethernet frames +- s390/pci: fix max size calculation in zpci_memcpy_toio() +- PCI: keystone: Fix race condition when initializing PHYs +- serial: imx: Correct clock error message in function probe() +- perf env: Avoid recursively taking env->bpf_progs.lock +- nvmet-tcp: fix a crash in nvmet_req_complete() +- usb: cdc-acm: return correct error code on unsupported break +- tty: use 'if' in send_break() instead of 'goto' +- tty: don't check for signal_pending() in send_break() +- tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK +- tty: change tty_write_lock()'s ndelay parameter to bool +- perf genelf: Set ELF program header addresses properly +- iio: adc: ad9467: fix scale setting +- iio: adc: ad9467: don't ignore error codes +- iio: adc: ad9467: fix reset gpio handling +- iio: adc: ad9467: Benefit from devm_clk_get_enabled() to simplify +- software node: Let args be NULL in software_node_get_reference_args +- acpi: property: Let args be NULL in __acpi_node_get_property_reference +- libapi: Add missing linux/types.h header to get the __u64 type on io.h +- power: supply: cw2015: correct time_to_empty units in sysfs +- MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup() +- MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup() +- mips: Fix incorrect max_low_pfn adjustment +- mips: dmi: Fix early remap on MIPS32 +- leds: aw2013: Select missing dependency REGMAP_I2C +- HID: wacom: Correct behavior when processing some confidence == false touches +- iio: adc: ad7091r: Pass iio_dev to event handler +- x86/kvm: Do not try to disable kvmclock if it was not enabled +- wifi: mwifiex: configure BSSID consistently when starting AP +- wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors +- wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code +- iommu/arm-smmu-qcom: Add missing GMU entry to match table +- io_uring/rw: ensure io->bytes_done is always initialized +- pwm: jz4740: Don't use dev_err_probe() in .request() +- fbdev: flush deferred work in fb_deferred_io_fsync() +- ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx +- ALSA: oxygen: Fix right channel of capture volume mixer +- serial: imx: Ensure that imx_uart_rs485_config() is called with enabled clock +- usb: mon: Fix atomicity violation in mon_bin_vma_fault +- usb: typec: class: fix typec_altmode_put_partner to put plugs +- Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs" +- usb: chipidea: wait controller resume finished for wakeup irq +- Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only" +- Revert "usb: dwc3: Soft reset phy on probe for host" +- usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart +- usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host() +- tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug +- net: ethernet: mtk_eth_soc: remove duplicate if statements +- kprobes: Fix to handle forcibly unoptimized kprobes on freeing_list +- Revert "ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek" +- virtio-crypto: fix memory leak in virtio_crypto_alg_skcipher_close_session() +- virtio-crypto: fix memory-leak +- dma-mapping: Fix build error unused-value +- Input: atkbd - use ab83 as id when skipping the getid command +- binder: fix unused alloc->free_async_space +- binder: fix async space check for 0-sized buffers +- keys, dns: Fix size check of V1 server-list header +- of: unittest: Fix of_count_phandle_with_args() expected value message +- of: Fix double free in of_parse_phandle_with_args_map +- IB/iser: Prevent invalidating wrong MR +- mmc: sdhci_omap: Fix TI SoC dependencies +- mmc: sdhci_am654: Fix TI SoC dependencies +- pwm: stm32: Fix enable count for clk in .probe() +- pwm: stm32: Use hweight32 in stm32_pwm_detect_channels +- pwm: stm32: Use regmap_clear_bits and regmap_set_bits where applicable +- clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw +- clk: fixed-rate: add devm_clk_hw_register_fixed_rate +- clk: si5341: fix an error code problem in si5341_output_clk_set_rate +- watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused +- watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling +- watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO +- watchdog: set cdev owner before adding +- drivers: clk: zynqmp: update divider round rate logic +- clk: zynqmp: Add a check for NULL pointer +- clk: zynqmp: make bestdiv unsigned +- drivers: clk: zynqmp: calculate closest mux rate +- clk: qcom: videocc-sm8150: Add missing PLL config property +- clk: qcom: videocc-sm8150: Update the videocc resets +- dt-bindings: clock: Update the videocc resets for sm8150 +- gpu/drm/radeon: fix two memleaks in radeon_vm_init +- drm/amdgpu/debugfs: fix error code when smc register accessors are NULL +- media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe() +- media: dvbdev: drop refcount on error path in dvb_device_open() +- f2fs: fix to update iostat correctly in f2fs_filemap_fault() +- f2fs: fix to check compress file in f2fs_move_file_range() +- media: rkisp1: Disable runtime PM in probe error path +- clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config +- media: cx231xx: fix a memleak in cx231xx_init_isoc +- drm/bridge: tc358767: Fix return value on error case +- drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table +- drm/radeon/dpm: fix a memleak in sumo_parse_power_table +- drm/drv: propagate errors from drm_modeset_register_all() +- drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks +- drm/msm/mdp4: flush vblank event on disable +- ASoC: cs35l34: Fix GPIO name and drop legacy include +- ASoC: cs35l33: Fix GPIO name and drop legacy include +- drm/radeon: check return value of radeon_ring_lock() +- drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check() +- drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg() +- drm/bridge: Fix typo in post_disable() description +- drm/nouveau/fence:: fix warning directly dereferencing a rcu pointer +- rcu: Create an unrcu_pointer() to remove __rcu from a pointer +- drm/panel-elida-kd35t133: hold panel in reset for unprepare +- RDMA/usnic: Silence uninitialized symbol smatch warnings +- ARM: davinci: always select CONFIG_CPU_ARM926T +- Bluetooth: btmtkuart: fix recv_buf() return value +- Bluetooth: Fix bogus check for re-auth no supported with non-ssp +- netfilter: nf_tables: mark newset as dead on transaction abort +- wifi: rtlwifi: rtl8192se: using calculate_bit_shift() +- wifi: rtlwifi: rtl8192ee: using calculate_bit_shift() +- wifi: rtlwifi: rtl8192de: using calculate_bit_shift() +- rtlwifi: rtl8192de: make arrays static const, makes object smaller +- wifi: rtlwifi: rtl8192ce: using calculate_bit_shift() +- wifi: rtlwifi: rtl8192cu: using calculate_bit_shift() +- wifi: rtlwifi: rtl8192c: using calculate_bit_shift() +- wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift() +- wifi: rtlwifi: add calculate_bit_shift() +- dma-mapping: clear dev->dma_mem to NULL after freeing it +- dma-mapping: Add dma_release_coherent_memory to DMA API +- virtio/vsock: fix logic which reduces credit update messages +- selftests/net: fix grep checking for fib_nexthop_multiprefix +- arm64: dts: qcom: sdm845-db845c: correct LED panic indicator +- arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator +- scsi: fnic: Return error if vmalloc() failed +- arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type +- wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior +- firmware: meson_sm: populate platform devices from sm device tree data +- firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create() +- net/ncsi: Fix netlink major/minor version numbers +- ncsi: internal.h: Fix a spello +- ARM: dts: qcom: apq8064: correct XOADC register address +- wifi: libertas: stop selecting wext +- wifi: ath11k: Defer on rproc_get failure +- bpf: Add crosstask check to __bpf_get_stack +- bpf, lpm: Fix check prefixlen before walking trie +- wifi: rtw88: fix RX filter in FIF_ALLMULTI flag +- NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT +- blocklayoutdriver: Fix reference leak of pnfs_device_node +- crypto: scomp - fix req->dst buffer overflow +- crypto: sahara - do not resize req->src when doing hash operations +- crypto: sahara - fix processing hash requests with req->nbytes < sg->length +- crypto: sahara - improve error handling in sahara_sha_process() +- crypto: sahara - fix wait_for_completion_timeout() error handling +- crypto: sahara - fix ahash reqsize +- crypto: sahara - handle zero-length aes requests +- crypto: sahara - avoid skcipher fallback code duplication +- gfs2: Also reflect single-block allocations in rgd->rd_extfail_pt +- Revert "gfs2: Don't reject a supposedly full bitmap if we have blocks reserved" +- fs: indicate request originates from old mount API +- crypto: sahara - fix error handling in sahara_hw_descriptor_create() +- crypto: sahara - fix processing requests with cryptlen < sg->length +- crypto: sahara - fix ahash selftest failure +- crypto: sahara - fix cbc selftest failure +- crypto: sahara - remove FLAGS_NEW_KEY logic +- crypto: af_alg - Disallow multiple in-flight AIO requests +- crypto: ccp - fix memleak in ccp_init_dm_workarea +- crypto: sa2ul - Return crypto_aead_setkey to transfer the error +- crypto: virtio - Handle dataq logic with tasklet +- virtio-crypto: wait ctrl queue instead of busy polling +- virtio-crypto: use private buffer for control request +- virtio-crypto: change code style +- virtio-crypto: implement RSA algorithm +- virtio-crypto: introduce akcipher service +- virtio_crypto: Introduce VIRTIO_CRYPTO_NOSPC +- selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket +- ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error +- spi: sh-msiof: Enforce fixed DTDL for R-Car H3 +- cpufreq: scmi: process the result of devm_of_clk_add_hw_provider() +- cpufreq: Use of_property_present() for testing DT property presence +- of: Add of_property_present() helper +- of: property: define of_property_read_u{8,16,32,64}_array() unconditionally +- ACPI: video: check for error while searching for backlight device parent +- mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response +- spi: spi-zynqmp-gqspi: fix driver kconfig dependencies +- powerpc/powernv: Add a null pointer check in opal_powercap_init() +- powerpc/powernv: Add a null pointer check in opal_event_init() +- selftests/powerpc: Fix error handling in FPU/VMX preemption tests +- powerpc/44x: select I2C for CURRITUCK +- powerpc: Remove in_kernel_text() +- powerpc: add crtsavres.o to always-y instead of extra-y +- x86/lib: Fix overflow when counting digits +- coresight: etm4x: Fix width of CCITMIN field +- PCI: Add ACS quirk for more Zhaoxin Root Ports +- parport: parport_serial: Add Brainboxes device IDs and geometry +- parport: parport_serial: Add Brainboxes BAR details +- binder: fix comment on binder_alloc_new_buf() return value +- binder: fix trivial typo of binder_free_buf_locked() +- binder: use EPOLLERR from eventpoll.h +- ACPI: resource: Add another DMI match for the TongFang GMxXGxx +- drm/crtc: fix uninitialized variable use +- ARM: sun9i: smp: fix return code check of of_property_match_string +- net: qrtr: ns: Return 0 if server port is not present +- i2c: rk3x: fix potential spinlock recursion on poll +- Input: xpad - add Razer Wolverine V2 support +- ARC: fix spare error +- s390/scm: fix virtual vs physical address confusion +- Input: i8042 - add nomux quirk for Acer P459-G2-M +- Input: atkbd - skip ATKBD_CMD_GETID in translated mode +- reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning +- ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI +- tracing: Add size check when printing trace_marker output +- tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing +- neighbour: Don't let neigh_forced_gc() disable preemption for long +- drm/crtc: Fix uninit-value bug in drm_mode_setcrtc +- jbd2: correct the printing of write_flags in jbd2_write_superblock() +- clk: rockchip: rk3128: Fix HCLK_OTG gate register +- drm/exynos: fix a wrong error checking +- drm/exynos: fix a potential error pointer dereference +- nvme: introduce helper function to get ctrl state +- ASoC: da7219: Support low DC impedance headset +- nouveau/tu102: flush all pdbs on vmm flush +- ASoC: rt5650: add mutex to avoid the jack detection failure +- ASoC: cs43130: Fix incorrect frame delay configuration +- ASoC: cs43130: Fix the position of const qualifier +- ASoC: Intel: Skylake: mem leak in skl register function +- ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16 +- ASoC: Intel: Skylake: Fix mem leak in few functions +- ASoC: wm8974: Correct boost mixer inputs +- debugfs: fix automount d_fsdata usage +- mptcp: fix uninit-value in mptcp_incoming_options +- ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro +- pinctrl: lochnagar: Don't build on MIPS +- riscv: Check if the code to patch lies in the exit section +- !8221 Backport 5.10.207- 5.10.208 LTS patches from upstream +- !8140 i40e: Do not use WQ_MEM_RECLAIM flag for workqueue +- iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe() +- pinctrl: core: delete incorrect free in pinctrl_enable() +- !7471 x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ +- !8367 cvm: clean code for cvm init +- mm/hugetlb: fix missing hugetlb_lock for resv uncharge +- Bluetooth: Fix memory leak in hci_req_sync_complete() +- !8300 ipvlan: add ipvlan_route_v6_outbound() helper +- !8271 netfilter: nf_tables: reject new basechain after table flag update +- !8212 fix CVE-2024-35877 +- dma-direct: Leak pages on dma_set_decrypted() failure +- !8306 mptcp: ensure tx skbs always have the MPTCP ext +- efi/capsule-loader: fix incorrect allocation size +- cvm: clean code for cvm init +- !8195 CVE-2024-35956 +- !8153 cpu/hotplug: Don't offline the last non-isolated CPU +- net/mlx5: Properly link new fs rules into the tree +- soc: qcom: llcc: Handle a second device without data corruption +- !8254 sysv: don't call sb_bread() with pointers_lock held +- !8275 usb: udc: remove warning when queue disabled ep +- !8263 [sync] PR-8228: ubifs: ubifs_link: Fix wrong name len calculating when UBIFS is encrypted +- !8243 【OLK 5.10】RDMA/hns some bugfix +- mptcp: ensure tx skbs always have the MPTCP ext +- ipvlan: add ipvlan_route_v6_outbound() helper +- xfs: Fix file creation failure +- !7831 IMA: Support the measurement extending of TSI TMM +- !8230 Remove redundants code for proc_cgroupstats_show +- !8255 IMA: Introduce a config for fix on IMA with Overlayfs issue +- !8250 Control KABI reservation codes with config +- !7889 vt: fix unicode buffer corruption when deleting characters +- !8220 improve security for cvm host feature +- !8150 mptcp: use OPTION_MPTCP_MPJ_SYNACK in subflow_finish_connect() +- !8127 mlxsw: spectrum_acl_tcam: Fix warning during rehash +- !8063 wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes +- !8258 v5 can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is accessed out of bounds +- !8133 fix CVE-2021-47265 +- usb: udc: remove warning when queue disabled ep +- netfilter: nf_tables: reject new basechain after table flag update +- ubifs: ubifs_link: Fix wrong name len calculating when UBIFS is encrypted +- tty: fix hang on tty device with no_room set +- can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is accessed out of bounds +- !8238 arm: unwinder: Fix pc off-by-one in arm unwinder +- !8237 x86: profiling: Using generic unwinding in profile_pc +- !8236 x86: profiling: Check prof_buffer in profile_tick() +- !8229 LLVM fix compile warning options +- RDMA/hns: Add max_ah and cq moderation capacities in query_device() +- RDMA/hns: Fix return value in hns_roce_map_mr_sg +- RDMA/hns: Fix deadlock on SRQ async events. +- IMA: Introduce a config for fix on IMA with Overlayfs issue +- RDMA/hns: Fix UAF for cq async event +- RDMA/hns: Fix mismatch exception rollback +- sysv: don't call sb_bread() with pointers_lock held +- RDMA/hns: Fix GMV table pagesize +- RDMA/hns: Add mutex_destroy() +- Control KABI reservation codes with config +- RDMA/hns: Modify the print level of CQE error +- !8109 vhost-vdpa: fix use after free in vhost_vdpa_probe() +- dmaengine: idxd: Fix oops during rmmod on single-CPU platforms +- arm: unwinder: Fix pc off-by-one in arm unwinder +- x86: profiling: Using generic unwinding in profile_pc +- x86: profiling: Check prof_buffer in profile_tick() +- Remove redundants code for proc_cgroupstats_show +- kbuild: Fix grep -q waring +- Makefile: Exclude false positive warning options for Clang +- !8054 CVE-2023-52669 +- !8190 crypto: jitter - change module_init(jent_mod_init) to subsys_initcall(jent_mod_init) +- !8203 efi/libstub: arm64: Add macro isolation memmap detection code +- PCI: Disable ATS for specific Intel IPU E2000 devices +- PCI: Extract ATS disabling to a helper function +- net: tls, update curr on splice as well +- powerpc: update ppc_save_regs to save current r1 in pt_regs +- mmc: sdhci-sprd: Fix eMMC init failure after hw reset +- mmc: core: Cancel delayed work before releasing host +- mmc: rpmb: fixes pause retune on all RPMB partitions. +- mmc: meson-mx-sdhc: Fix initialization frozen issue +- mm: fix unmap_mapping_range high bits shift bug +- i2c: core: Fix atomic xfer check for non-preempt config +- firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards +- mm/memory-failure: check the mapcount of the precise page +- net: Implement missing SO_TIMESTAMPING_NEW cmsg support +- bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters() +- asix: Add check for usbnet_get_endpoints +- net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues +- net/qla3xxx: switch from 'pci_' to 'dma_' API +- i40e: Restore VF MSI-X state during PCI reset +- ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux +- ASoC: meson: g12a-toacodec: Fix event generation +- ASoC: meson: g12a-tohdmitx: Validate written enum values +- ASoC: meson: g12a-toacodec: Validate written enum values +- i40e: fix use-after-free in i40e_aqc_add_filters() +- net: Save and restore msg_namelen in sock_sendmsg +- netfilter: nft_immediate: drop chain reference counter on error +- netfilter: nftables: add loop check helper function +- net: bcmgenet: Fix FCS generation for fragmented skbuffs +- sfc: fix a double-free bug in efx_probe_filters +- ARM: sun9i: smp: Fix array-index-out-of-bounds read in sunxi_mc_smp_init +- net: sched: em_text: fix possible memory leak in em_text_destroy() +- i40e: Fix filter input checks to prevent config with invalid values +- drm/i915/dp: Fix passing the correct DPCD_REV for drm_dp_set_phy_test_pattern +- octeontx2-af: Fix marking couple of structure as __packed +- nfc: llcp_core: Hold a ref to llcp_local->dev when holding a ref to llcp_local +- ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP ProBook 440 G6 +- block: Don't invalidate pagecache for invalid falloc modes +- keys, dns: Fix missing size check of V1 server-list header +- cvm: improve security for cvm host feature +- cvm: add secure memory query method +- cvm: enable secure memory alloc on multiple numa nodes +- x86/mm/pat: fix VM_PAT handling in COW mappings +- !7110 [22.03-LTS-SP4] KVM TDP MMU new refactors +- !8143 add kconfig for OLK-5.10 +- efi/libstub: arm64: Add macro isolation memmap detection code +- btrfs: qgroup: fix qgroup prealloc rsv leak in subvolume operations +- btrfs: fix anon_dev leak in create_subvol() +- crypto: jitter - change module_init(jent_mod_init) to subsys_initcall(jent_mod_init) +- cpu/hotplug: Don't offline the last non-isolated CPU +- mptcp: use OPTION_MPTCP_MPJ_SYNACK in subflow_finish_connect() +- memcg: Introduce CONFIG_MEMCG_V1_THRESHOLD_QOS +- kabi: use CONFIG_KABI_RESERVE to isolate bpf cgroup reserve flags +- cgroup: add config isolation for cgroup_kill in cgroupv1 +- i40e: Do not use WQ_MEM_RECLAIM flag for workqueue +- RDMA: Verify port when creating flow rule +- IB/mlx4: Use port iterator and validation APIs +- mlxsw: spectrum_acl_tcam: Fix warning during rehash +- drm/client: Fully protect modes[] with dev->mode_config.mutex +- vhost-vdpa: fix use after free in vhost_vdpa_probe() +- KVM: x86/mmu: Make KVM parameter tdp_mmu writeable +- KVM: x86/mmu: Stop zapping invalidated TDP MMU roots asynchronously +- kvm: x86: Do proper cleanup if kvm_x86_ops->vm_init() fails +- KVM: x86/mmu: Do not filter address spaces in for_each_tdp_mmu_root_yield_safe() +- KVM: x86/mmu: Open code leaf invalidation from mmu_notifier +- KVM: x86/mmu: Include mmu.h in spte.h +- KVM: x86/mmu: Harden TDP MMU iteration against root w/o shadow page +- KVM: x86/mmu: Move the lockdep_assert of mmu_lock to inside clear_dirty_pt_masked() +- KVM: x86/mmu: Add "never" option to allow sticky disabling of nx_huge_pages +- KVM: x86/mmu: Use kstrtobool() instead of strtobool() +- KVM: x86/mmu: Grab memslot for correct address space in NX recovery worker +- KVM: x86/mmu: Add comment on try_cmpxchg64 usage in tdp_mmu_set_spte_atomic +- KVM: x86: Preserve TDP MMU roots until they are explicitly invalidated +- KVM: x86/mmu: Refresh CR0.WP prior to checking for emulated permission faults +- KVM: x86/mmu: Merge all handle_changed_pte*() functions +- KVM: x86/mmu: Remove handle_changed_spte_dirty_log() +- KVM: x86/mmu: Remove "record_acc_track" in __tdp_mmu_set_spte() +- KVM: x86/mmu: Bypass __handle_changed_spte() when aging TDP MMU SPTEs +- KVM: x86/mmu: Drop unnecessary dirty log checks when aging TDP MMU SPTEs +- KVM: x86/mmu: Clear only A-bit (if enabled) when aging TDP MMU SPTEs +- KVM: x86/mmu: Remove "record_dirty_log" in __tdp_mmu_set_spte() +- KVM: x86/mmu: Bypass __handle_changed_spte() when clearing TDP MMU dirty bits +- KVM: x86/mmu: Drop access tracking checks when clearing TDP MMU dirty bits +- KVM: x86/mmu: Atomically clear SPTE dirty state in the clear-dirty-log flow +- KVM: x86/mmu: Consolidate Dirty vs. Writable clearing logic in TDP MMU +- KVM: x86/mmu: Use kvm_ad_enabled() to determine if TDP MMU SPTEs need wrprot +- KVM: x86/mmu: Add a helper function to check if an SPTE needs atomic write +- KVM: VMX: Make CR0.WP a guest owned bit +- KVM: x86: Make use of kvm_read_cr*_bits() when testing bits +- KVM: x86: Ignore CR0.WP toggles in non-paging mode +- KVM: x86: Do not unload MMU roots when only toggling CR0.WP with TDP enabled +- KVM: x86/mmu: Fix comment typo +- KVM: x86/mmu: Avoid indirect call for get_cr3 +- KVM: x86/mmu: Use gfn_t in kvm_flush_remote_tlbs_range() +- KVM: x86/mmu: Rename kvm_flush_remote_tlbs_with_address() +- KVM: x86/mmu: Collapse kvm_flush_remote_tlbs_with_{range,address}() together +- KVM: x86/mmu: Make tdp_mmu_allowed static +- KVM: x86/mmu: Cleanup range-based flushing for given page +- KVM: x86/mmu: Fix wrong gfn range of tlb flushing in validate_direct_spte() +- KVM: x86/mmu: Fix wrong start gfn of tlb flushing with range +- KVM: x86/mmu: Reduce gfn range of tlb flushing in tdp_mmu_map_handle_target_level() +- KVM: x86/mmu: Fix wrong gfn range of tlb flushing in kvm_set_pte_rmapp() +- KVM: x86/mmu: Move round_gfn_for_level() helper into mmu_internal.h +- KVM: x86/mmu: fix an incorrect comment in kvm_mmu_new_pgd() +- kvm: x86/mmu: Rename SPTE_TDP_AD_ENABLED_MASK to SPTE_TDP_AD_ENABLED +- KVM: x86/mmu: Pivot on "TDP MMU enabled" when handling direct page faults +- KVM: x86/mmu: Pivot on "TDP MMU enabled" to check if active MMU is TDP MMU +- KVM: x86/mmu: Replace open coded usage of tdp_mmu_page with is_tdp_mmu_page() +- KVM: x86/mmu: Rename __direct_map() to direct_map() +- KVM: x86/mmu: Stop needlessly making MMU pages available for TDP MMU faults +- KVM: x86/mmu: Split out TDP MMU page fault handling +- KVM: x86/mmu: Initialize fault.{gfn,slot} earlier for direct MMUs +- KVM: x86/mmu: Handle no-slot faults in kvm_faultin_pfn() +- KVM: x86/mmu: Avoid memslot lookup during KVM_PFN_ERR_HWPOISON handling +- KVM: x86/mmu: Handle error PFNs in kvm_faultin_pfn() +- KVM: x86/mmu: Grab mmu_invalidate_seq in kvm_faultin_pfn() +- KVM: x86/mmu: Move TDP MMU VM init/uninit behind tdp_mmu_enabled +- KVM: x86/mmu: Change tdp_mmu to a read-only parameter +- KVM: x86/mmu: Don't install TDP MMU SPTE if SP has unexpected level +- KVM: x86/mmu: Re-check under lock that TDP MMU SP hugepage is disallowed +- KVM: x86/mmu: Map TDP MMU leaf SPTE iff target level is reached +- KVM: x86/mmu: Don't attempt to map leaf if target TDP MMU SPTE is frozen +- KVM: x86/mmu: Fix race condition in direct_page_fault +- KVM: x86/mmu: Do not recover dirty-tracked NX Huge Pages +- KVM: x86/mmu: simplify kvm_tdp_mmu_map flow when guest has to retry +- KVM: x86/mmu: Split huge pages mapped by the TDP MMU on fault +- KVM: x86/mmu: Block all page faults during kvm_zap_gfn_range() +- KVM: x86/mmu: WARN if TDP MMU SP disallows hugepage after being zapped +- KVM: x86/mmu: explicitly check nx_hugepage in disallowed_hugepage_adjust() +- KVM: x86/mmu: Add helper to convert SPTE value to its shadow page +- KVM: x86/mmu: Track the number of TDP MMU pages, but not the actual pages +- KVM: x86/mmu: Set disallowed_nx_huge_page in TDP MMU before setting SPTE +- KVM: x86/mmu: Properly account NX huge page workaround for nonpaging MMUs +- KVM: x86/mmu: Rename NX huge pages fields/functions for consistency +- KVM: x86/mmu: Tag disallowed NX huge pages even if they're not tracked +- KVM: x86/mmu: add missing update to max_mmu_rmap_size +- KVM: X86: avoid uninitialized 'fault.async_page_fault' from fixed-up #PF +- KVM: x86/mmu: remove unused variable +- KVM, x86/mmu: Fix the comment around kvm_tdp_mmu_zap_leafs() +- KVM: x86/mmu: Don't bottom out on leafs when zapping collapsible SPTEs +- KVM: x86/mmu: Document the "rules" for using host_pfn_mapping_level() +- KVM: x86/mmu: Don't require refcounted "struct page" to create huge SPTEs +- KVM: x86/mmu: Remove underscores from __pte_list_remove() +- KVM: x86/mmu: Rename pte_list_{destroy,remove}() to show they zap SPTEs +- KVM: x86/mmu: Rename rmap zap helpers to eliminate "unmap" wrapper +- KVM: x86/mmu: Rename __kvm_zap_rmaps() to align with other nomenclature +- KVM: x86/mmu: Drop the "p is for pointer" from rmap helpers +- KVM: x86/mmu: Directly "destroy" PTE list when recycling rmaps +- KVM: x86/mmu: Return a u64 (the old SPTE) from mmu_spte_clear_track_bits() +- KVM: x86/mmu: Fix typo and tweak comment for split_desc_cache capacity +- KVM: x86/mmu: Expand quadrant comment for PG_LEVEL_4K shadow pages +- KVM: x86/mmu: Add optimized helper to retrieve an SPTE's index +- KVM: x86/mmu: Replace UNMAPPED_GVA with INVALID_GPA for gva_to_gpa() +- KVM: x86/mmu: Buffer nested MMU split_desc_cache only by default capacity +- KVM: x86/mmu: Use "unsigned int", not "u32", for SPTEs' @access info +- KVM: x86/mmu: Avoid unnecessary flush on eager page split +- KVM: x86/mmu: Extend Eager Page Splitting to nested MMUs +- KVM: Allow for different capacities in kvm_mmu_memory_cache structs +- KVM: x86/mmu: pull call to drop_large_spte() into __link_shadow_page() +- KVM: x86/mmu: Zap collapsible SPTEs in shadow MMU at all possible levels +- KVM: x86/mmu: Extend make_huge_page_split_spte() for the shadow MMU +- KVM: x86/mmu: Cache the access bits of shadowed translations +- KVM: x86/mmu: Update page stats in __rmap_add() +- KVM: x86/mmu: Decouple rmap_add() and link_shadow_page() from kvm_vcpu +- KVM: x86/mmu: Allow NULL @vcpu in kvm_mmu_find_shadow_page() +- KVM: x86/mmu: Pass kvm pointer separately from vcpu to kvm_mmu_find_shadow_page() +- KVM: x86/mmu: Replace vcpu with kvm in kvm_mmu_alloc_shadow_page() +- KVM: x86/mmu: Pass memory caches to allocate SPs separately +- KVM: x86/mmu: Move guest PT write-protection to account_shadowed() +- KVM: x86/mmu: Rename shadow MMU functions that deal with shadow pages +- KVM: x86/mmu: Consolidate shadow page allocation and initialization +- KVM: x86/mmu: Decompose kvm_mmu_get_page() into separate functions +- KVM: x86/mmu: Always pass 0 for @quadrant when gptes are 8 bytes +- KVM: x86/mmu: Derive shadow MMU page role from parent +- KVM: x86/mmu: Stop passing "direct" to mmu_alloc_root() +- KVM: x86/mmu: Use a bool for direct +- KVM: x86/mmu: Optimize MMU page cache lookup for all direct SPs +- KVM: X86/MMU: Fix shadowing 5-level NPT for 4-level NPT L1 guest +- KVM: X86/MMU: Add sp_has_gptes() +- KVM: Do not zero initialize 'pfn' in hva_to_pfn() +- KVM: x86/mmu: Shove refcounted page dependency into host_pfn_mapping_level() +- KVM: Rename/refactor kvm_is_reserved_pfn() to kvm_pfn_to_refcounted_page() +- KVM: Take a 'struct page', not a pfn in kvm_is_zone_device_page() +- KVM: Remove kvm_vcpu_gfn_to_page() and kvm_vcpu_gpa_to_page() +- KVM: nVMX: Use kvm_vcpu_map() to get/pin vmcs12's APIC-access page +- KVM: Don't WARN if kvm_pfn_to_page() encounters a "reserved" pfn +- KVM: Avoid pfn_to_page() and vice versa when releasing pages +- KVM: x86/mmu: Use common logic for computing the 32/64-bit base PA mask +- KVM: x86/mmu: Truncate paging32's PT_BASE_ADDR_MASK to 32 bits +- KVM: x86/mmu: Use common macros to compute 32/64-bit paging masks +- KVM: x86/mmu: Use separate namespaces for guest PTEs and shadow PTEs +- KVM: x86/mmu: Dedup macros for computing various page table masks +- KVM: x86/mmu: Bury 32-bit PSE paging helpers in paging_tmpl.h +- KVM: VMX: Refactor 32-bit PSE PT creation to avoid using MMU macro +- KVM: X86/MMU: Remove unused PT32_DIR_BASE_ADDR_MASK from mmu.c +- KVM: x86/MMU: Zap non-leaf SPTEs when disabling dirty logging +- KVM: x86/mmu: Check every prev_roots in __kvm_mmu_free_obsolete_roots() +- KVM: x86/mmu: Use IS_ENABLED() to avoid RETPOLINE for TDP page faults +- KVM: x86/mmu: Make all page fault handlers internal to the MMU +- KVM: x86/mmu: Add RET_PF_CONTINUE to eliminate bool+int* "returns" +- KVM: x86/mmu: Drop exec/NX check from "page fault can be fast" +- KVM: x86/mmu: Don't attempt fast page fault just because EPT is in use +- KVM: x86/mmu: Use atomic XCHG to write TDP MMU SPTEs with volatile bits +- KVM: x86/mmu: Move shadow-present check out of spte_has_volatile_bits() +- KVM: x86/mmu: Don't treat fully writable SPTEs as volatile (modulo A/D) +- KVM: x86/mmu: replace direct_map with root_role.direct +- KVM: x86/mmu: replace root_level with cpu_role.base.level +- KVM: x86/mmu: replace shadow_root_level with root_role.level +- KVM: x86/mmu: pull CPU mode computation to kvm_init_mmu +- KVM: x86/mmu: simplify and/or inline computation of shadow MMU roles +- KVM: x86/mmu: remove redundant bits from extended role +- KVM: x86/mmu: rename kvm_mmu_role union +- KVM: x86/mmu: remove extended bits from mmu_role, rename field +- KVM: x86/mmu: store shadow EFER.NX in the MMU role +- KVM: x86/mmu: cleanup computation of MMU roles for shadow paging +- KVM: x86/mmu: cleanup computation of MMU roles for two-dimensional paging +- KVM: x86/mmu: remove kvm_calc_shadow_root_page_role_common +- KVM: x86/mmu: remove ept_ad field +- KVM: x86/mmu: do not recompute root level from kvm_mmu_role_regs +- KVM: x86/mmu: split cpu_role from mmu_role +- KVM: x86/mmu: remove "bool base_only" arguments +- KVM: x86/mmu: rephrase unclear comment +- KVM: x86/mmu: pull computation of kvm_mmu_role_regs to kvm_init_mmu +- KVM: x86/mmu: constify uses of struct kvm_mmu_role_regs +- KVM: x86/mmu: nested EPT cannot be used in SMM +- KVM: x86/mmu: include EFER.LMA in extended mmu role +- KVM: x86/mmu: fix potential races when walking host page table +- KVM: x86/mmu: Do not create SPTEs for GFNs that exceed host.MAXPHYADDR +- KVM: x86/mmu: Derive EPT violation RWX bits from EPTE RWX bits +- KVM: VMX: replace 0x180 with EPT_VIOLATION_* definition +- KVM: x86/mmu: remove unnecessary flush_workqueue() +- KVM: x86/mmu: Don't rebuild page when the page is synced and no tlb flushing is required +- KVM: x86: mmu: trace kvm_mmu_set_spte after the new SPTE was set +- KVM: x86/mmu: Zap only TDP MMU leafs in zap range and mmu_notifier unmap +- KVM: MMU: propagate alloc_workqueue failure +- Revert "KVM: x86/mmu: Zap only TDP MMU leafs in kvm_zap_gfn_range()" +- kvm: x86/mmu: Flush TLB before zap_gfn_range releases RCU +- KVM: x86/mmu: WARN on any attempt to atomically update REMOVED SPTE +- KVM: x86/mmu: Check for a REMOVED leaf SPTE before making the SPTE +- KVM: x86/mmu: Zap defunct roots via asynchronous worker +- KVM: x86/mmu: Zap roots in two passes to avoid inducing RCU stalls +- KVM: x86/mmu: Allow yielding when zapping GFNs for defunct TDP MMU root +- KVM: x86/mmu: Zap invalidated roots via asynchronous worker +- KVM: x86/mmu: Defer TLB flush to caller when freeing TDP MMU shadow pages +- KVM: x86/mmu: Do remote TLB flush before dropping RCU in TDP MMU resched +- KVM: x86/mmu: Zap only TDP MMU leafs in kvm_zap_gfn_range() +- KVM: x86/mmu: Require mmu_lock be held for write to zap TDP MMU range +- KVM: x86/mmu: Add dedicated helper to zap TDP MMU root shadow page +- KVM: x86/mmu: Skip remote TLB flush when zapping all of TDP MMU +- KVM: x86/mmu: Zap only the target TDP MMU shadow page in NX recovery +- KVM: x86/mmu: Refactor low-level TDP MMU set SPTE helper to take raw values +- KVM: x86/mmu: Add helpers to read/write TDP MMU SPTEs and document RCU +- KVM: x86/mmu: Drop RCU after processing each root in MMU notifier hooks +- KVM: x86/mmu: Batch TLB flushes from TDP MMU for MMU notifier change_spte +- KVM: x86/mmu: Check for !leaf=>leaf, not PFN change, in TDP MMU SP removal +- KVM: x86/mmu: do not allow readers to acquire references to invalid roots +- KVM: x86/mmu: only perform eager page splitting on valid roots +- KVM: x86/mmu: Require mmu_lock be held for write in unyielding root iter +- KVM: x86/mmu: Document that zapping invalidated roots doesn't need to flush +- KVM: x86/mmu: Formalize TDP MMU's (unintended?) deferred TLB flush logic +- KVM: WARN if is_unsync_root() is called on a root without a shadow page +- KVM: s390: Replace KVM_REQ_MMU_RELOAD usage with arch specific request +- KVM: x86/mmu: Zap only obsolete roots if a root shadow page is zapped +- KVM: Drop kvm_reload_remote_mmus(), open code request in x86 users +- KVM: x86: Invoke kvm_mmu_unload() directly on CR4.PCIDE change +- KVM: x86: flush TLB separately from MMU reset +- KVM: x86/mmu: clear MMIO cache when unloading the MMU +- KVM: x86/mmu: load new PGD after the shadow MMU is initialized +- KVM: x86/mmu: look for a cached PGD when going from 32-bit to 64-bit +- KVM: x86/mmu: do not pass vcpu to root freeing functions +- KVM: x86/mmu: do not consult levels when freeing roots +- KVM: x86: use struct kvm_mmu_root_info for mmu->root +- KVM: x86: do not deliver asynchronous page faults if CR0.PG=0 +- KVM: x86: Reinitialize context if host userspace toggles EFER.LME +- KVM: x86: Retry page fault if MMU reload is pending and root has no sp +- KVM: x86/mmu: Remove MMU auditing +- KVM: x86/mmu: Add tracepoint for splitting huge pages +- KVM: x86/mmu: Split huge pages mapped by the TDP MMU during KVM_CLEAR_DIRTY_LOG +- KVM: x86/mmu: Split huge pages mapped by the TDP MMU when dirty logging is enabled +- KVM: x86/mmu: Separate TDP MMU shadow page allocation and initialization +- KVM: x86/mmu: Derive page role for TDP MMU shadow pages from parent +- KVM: x86/mmu: Remove redundant role overrides for TDP MMU shadow pages +- KVM: x86/mmu: Refactor TDP MMU iterators to take kvm_mmu_page root +- KVM: x86/mmu: Move restore_acc_track_spte() to spte.h +- KVM: x86/mmu: Drop new_spte local variable from restore_acc_track_spte() +- KVM: x86/mmu: Remove unnecessary warnings from restore_acc_track_spte() +- KVM: x86/mmu: Consolidate logic to atomically install a new TDP MMU page table +- KVM: x86/mmu: Rename handle_removed_tdp_mmu_page() to handle_removed_pt() +- KVM: x86/mmu: Rename TDP MMU functions that handle shadow pages +- KVM: x86/mmu: Change tdp_mmu_{set,zap}_spte_atomic() to return 0/-EBUSY +- KVM: x86/mmu: Automatically update iter->old_spte if cmpxchg fails +- KVM: x86/mmu: Rename __rmap_write_protect() to rmap_write_protect() +- KVM: x86/mmu: Rename rmap_write_protect() to kvm_vcpu_write_protect_gfn() +- KVM: x86/mmu: Consolidate comments about {Host,MMU}-writable +- KVM: x86/mmu: Rename DEFAULT_SPTE_MMU_WRITEABLE to DEFAULT_SPTE_MMU_WRITABLE +- KVM: x86/mmu: Move is_writable_pte() to spte.h +- KVM: x86/mmu: Check SPTE writable invariants when setting leaf SPTEs +- KVM: x86/mmu: Move SPTE writable invariant checks to a helper function +- KVM: x86/mmu_audit: Remove unused "level" of audit_spte_after_sync() +- KVM: x86/tdp_mmu: Remove unused "kvm" of kvm_tdp_mmu_get_root() +- KVM: x86/mmu: Remove unused "kvm" of __rmap_write_protect() +- KVM: x86/mmu: Remove unused "kvm" of kvm_mmu_unlink_parents() +- KVM: x86/mmu: Zap _all_ roots when unmapping gfn range in TDP MMU +- KVM: x86/mmu: Move "invalid" check out of kvm_tdp_mmu_get_root() +- KVM: x86/mmu: Use common TDP MMU zap helper for MMU notifier unmap hook +- KVM: remove async parameter of hva_to_pfn_remapped() +- KVM: x86/mmu: Improve TLB flush comment in kvm_mmu_slot_remove_write_access() +- KVM: x86/mmu: Document and enforce MMU-writable and Host-writable invariants +- KVM: x86/mmu: Clear MMU-writable during changed_pte notifier +- KVM: x86/MMU: Simplify flow of vmx_get_mt_mask +- KVM: x86/mmu: Remove need for a vcpu from mmu_try_to_unsync_pages +- KVM: x86/mmu: Remove need for a vcpu from kvm_slot_page_track_is_active +- KVM: x86/mmu: Use shadow page role to detect PML-unfriendly pages for L2 +- KVM: x86/mmu: Retry page fault if root is invalidated by memslot update +- KVM: x86/mmu: Handle "default" period when selectively waking kthread +- KVM: x86/mmu: Remove spurious TLB flushes in TDP MMU zap collapsible path +- KVM: x86/mmu: Use yield-safe TDP MMU root iter in MMU notifier unmapping +- KVM: X86: Rename gpte_is_8_bytes to has_4_byte_gpte and invert the direction +- KVM: MMU: update comment on the number of page role combinations +- KVM: X86: Add parameter huge_page_level to kvm_init_shadow_ept_mmu() +- KVM: X86: Add huge_page_level to __reset_rsvds_bits_mask_ept() +- KVM: X86: Remove mmu->translate_gpa +- KVM: x86: Subsume nested GPA read helper into load_pdptrs() +- KVM: X86: Add parameter struct kvm_mmu *mmu into mmu->gva_to_gpa() +- KVM: X86: Calculate quadrant when !role.gpte_is_8_bytes +- KVM: X86: Remove useless code to set role.gpte_is_8_bytes when role.direct +- KVM: X86: Remove unused declaration of __kvm_mmu_free_some_pages() +- KVM: X86: Fix comment in __kvm_mmu_create() +- KVM: X86: Skip allocating pae_root for vcpu->arch.guest_mmu when !tdp_enabled +- KVM: x86: Forbid KVM_SET_CPUID{,2} after KVM_RUN +- KVM: x86/mmu: Pass parameter flush as false in kvm_tdp_mmu_zap_collapsible_sptes() +- KVM: x86/mmu: Skip tlb flush if it has been done in zap_gfn_range() +- kvm: mmu: Use fast PF path for access tracking of huge pages when possible +- KVM: x86/mmu: Properly dereference rcu-protected TDP MMU sptep iterator +- KVM: x86/mmu: Extract zapping of rmaps for gfn range to separate helper +- KVM: x86/mmu: Drop a redundant remote TLB flush in kvm_zap_gfn_range() +- KVM: x86/mmu: Drop a redundant, broken remote TLB flush +- KVM: X86: Don't unload MMU in kvm_vcpu_flush_tlb_guest() +- KVM: x86/mmu: Unexport MMU load/unload functions +- KVM: X86: pair smp_wmb() of mmu_try_to_unsync_pages() with smp_rmb() +- KVM: X86: Cache CR3 in prev_roots when PCID is disabled +- KVM: X86: Fix tlb flush for tdp in kvm_invalidate_pcid() +- KVM: X86: Don't reset mmu context when toggling X86_CR4_PGE +- KVM: X86: Don't reset mmu context when X86_CR4_PCIDE 1->0 +- kvm: x86: mmu: Make NX huge page recovery period configurable +- KVM: x86/mmu: Rename slot_handle_leaf to slot_handle_level_4k +- KVM: x86/mmu: clean up prefetch/prefault/speculative naming +- KVM: cleanup allocation of rmaps and page tracking data +- KVM: X86: fix lazy allocation of rmaps +- KVM: x86/mmu: kvm_faultin_pfn has to return false if pfh is returned +- KVM: x86: only allocate gfn_track when necessary +- KVM: x86: add config for non-kvm users of page tracking +- KVM: x86/mmu: Avoid memslot lookup in make_spte and mmu_try_to_unsync_pages +- KVM: x86/mmu: Avoid memslot lookup in rmap_add +- KVM: MMU: pass struct kvm_page_fault to mmu_set_spte +- KVM: MMU: pass kvm_mmu_page struct to make_spte +- KVM: MMU: set ad_disabled in TDP MMU role +- KVM: MMU: remove unnecessary argument to mmu_set_spte +- KVM: MMU: clean up make_spte return value +- KVM: MMU: inline set_spte in FNAME(sync_page) +- KVM: MMU: inline set_spte in mmu_set_spte +- KVM: x86/mmu: Avoid memslot lookup in page_fault_handle_page_track +- KVM: x86/mmu: Pass the memslot around via struct kvm_page_fault +- KVM: MMU: unify tdp_mmu_map_set_spte_atomic and tdp_mmu_set_spte_atomic_no_dirty_log +- KVM: MMU: mark page dirty in make_spte +- KVM: x86/mmu: Fold rmap_recycle into rmap_add +- KVM: x86/mmu: Verify shadow walk doesn't terminate early in page faults +- KVM: MMU: change tracepoints arguments to kvm_page_fault +- KVM: MMU: change disallowed_hugepage_adjust() arguments to kvm_page_fault +- KVM: MMU: change kvm_mmu_hugepage_adjust() arguments to kvm_page_fault +- KVM: MMU: change fast_page_fault() arguments to kvm_page_fault +- KVM: MMU: change tdp_mmu_map_handle_target_level() arguments to kvm_page_fault +- KVM: MMU: change kvm_tdp_mmu_map() arguments to kvm_page_fault +- KVM: MMU: change FNAME(fetch)() arguments to kvm_page_fault +- KVM: MMU: change __direct_map() arguments to kvm_page_fault +- KVM: MMU: change handle_abnormal_pfn() arguments to kvm_page_fault +- KVM: MMU: change kvm_faultin_pfn() arguments to kvm_page_fault +- KVM: MMU: change page_fault_handle_page_track() arguments to kvm_page_fault +- KVM: MMU: change direct_page_fault() arguments to kvm_page_fault +- KVM: MMU: change mmu->page_fault() arguments to kvm_page_fault +- KVM: MMU: Introduce struct kvm_page_fault +- KVM: MMU: pass unadulterated gpa to direct_page_fault +- KVM: X86: Remove FNAME(update_pte) +- KVM: X86: Zap the invalid list after remote tlb flushing +- KVM: X86: Change kvm_sync_page() to return true when remote flush is needed +- KVM: X86: Remove kvm_mmu_flush_or_zap() +- KVM: X86: Don't flush current tlb on shadow page modification +- KVM: X86: Don't unsync pagetables when speculative +- KVM: x86/mmu: Complete prefetch for trailing SPTEs for direct, legacy MMU +- KVM: Remove tlbs_dirty +- KVM: X86: Synchronize the shadow pagetable before link it +- KVM: X86: Fix missed remote tlb flush in rmap_write_protect() +- KVM: x86/mmu: Move lpage_disallowed_link further "down" in kvm_mmu_page +- KVM: x86/mmu: Relocate kvm_mmu_page.tdp_mmu_page for better cache locality +- KVM: x86/mmu: Remove unused field mmio_cached in struct kvm_mmu_page +- KVM: x86: clamp host mapping level to max_level in kvm_mmu_max_mapping_level +- KVM: x86/mmu: Drop 'shared' param from tdp_mmu_link_page() +- KVM: x86/mmu: Add detailed page size stats +- KVM: x86/mmu: Avoid collision with !PRESENT SPTEs in TDP MMU lpage stats +- KVM: x86/mmu: Remove redundant spte present check in mmu_set_spte +- KVM: x86/mmu: allow kvm_faultin_pfn to return page fault handling code +- KVM: x86/mmu: rename try_async_pf to kvm_faultin_pfn +- KVM: x86/mmu: add comment explaining arguments to kvm_zap_gfn_range +- KVM: x86/mmu: fix parameters to kvm_flush_remote_tlbs_with_address +- Revert "KVM: x86/mmu: Allow zap gfn range to operate under the mmu read lock" +- KVM: X86: Introduce kvm_mmu_slot_lpages() helpers +- KVM: x86/mmu: Don't step down in the TDP iterator when zapping all SPTEs +- KVM: x86/mmu: Don't leak non-leaf SPTEs when zapping all SPTEs +- KVM: x86/mmu: Rename __gfn_to_rmap to gfn_to_rmap +- KVM: x86/mmu: Leverage vcpu->last_used_slot for rmap_add and rmap_recycle +- KVM: x86/mmu: Leverage vcpu->last_used_slot in tdp_mmu_map_handle_target_level +- KVM: Cache the last used slot index per vCPU +- KVM: Move last_used_slot logic out of search_memslots +- KVM: Rename lru_slot to last_used_slot +- KVM: X86: Optimize zapping rmap +- KVM: X86: Optimize pte_list_desc with per-array counter +- KVM: X86: MMU: Tune PTE_LIST_EXT to be bigger +- KVM: Don't take mmu_lock for range invalidation unless necessary +- KVM: Block memslot updates across range_start() and range_end() +- KVM: Introduce kvm_get_kvm_safe() +- KVM: X86: Add per-vm stat for max rmap list size +- KVM: x86/mmu: Return old SPTE from mmu_spte_clear_track_bits() +- KVM: x86/mmu: Refactor shadow walk in __direct_map() to reduce indentation +- KVM: x86/mmu: Mark VM as bugged if page fault returns RET_PF_INVALID +- KVM: x86: Use KVM_BUG/KVM_BUG_ON to handle bugs that are fatal to the VM +- KVM: Export kvm_make_all_cpus_request() for use in marking VMs as bugged +- KVM: x86: Do not write protect huge page in initially-all-set mode +- KVM: x86: Support write protecting only large pages +- KVM: x86/mmu: Remove a variety of unnecessary exports +- KVM: x86: Fold "write-protect large" use case into generic write-protect +- KVM: x86/mmu: Don't set dirty bits when disabling dirty logging w/ PML +- KVM: VMX: Dynamically enable/disable PML based on memslot dirty logging +- KVM: x86: Move MMU's PML logic to common code +- KVM: x86/mmu: Make dirty log size hook (PML) a value, not a function +- KVM: x86/mmu: Let guest use GBPAGES if supported in hardware and TDP is on +- KVM: x86/mmu: Get CR4.SMEP from MMU, not vCPU, in shadow page fault +- KVM: x86/mmu: Get CR0.WP from MMU, not vCPU, in shadow page fault +- KVM: x86/mmu: Drop redundant rsvd bits reset for nested NPT +- KVM: x86/mmu: Optimize and clean up so called "last nonleaf level" logic +- KVM: x86: Enhance comments for MMU roles and nested transition trickiness +- KVM: x86/mmu: WARN on any reserved SPTE value when making a valid SPTE +- KVM: x86/mmu: Add helpers to do full reserved SPTE checks w/ generic MMU +- KVM: x86/mmu: Use MMU's role to determine PTTYPE +- KVM: x86/mmu: Collapse 32-bit PAE and 64-bit statements for helpers +- KVM: x86/mmu: Add a helper to calculate root from role_regs +- KVM: x86/mmu: Add helper to update paging metadata +- KVM: x86/mmu: Don't update nested guest's paging bitmasks if CR0.PG=0 +- KVM: x86/mmu: Consolidate reset_rsvds_bits_mask() calls +- KVM: x86/mmu: Use MMU role_regs to get LA57, and drop vCPU LA57 helper +- KVM: x86/mmu: Get nested MMU's root level from the MMU's role +- KVM: x86/mmu: Drop "nx" from MMU context now that there are no readers +- KVM: x86/mmu: Use MMU's role to get EFER.NX during MMU configuration +- KVM: x86/mmu: Use MMU's role/role_regs to compute context's metadata +- KVM: x86/mmu: Use MMU's role to detect EFER.NX in guest page walk +- KVM: x86/mmu: Use MMU's roles to compute last non-leaf level +- KVM: x86/mmu: Use MMU's role to compute PKRU bitmask +- KVM: x86/mmu: Use MMU's role to compute permission bitmask +- KVM: x86/mmu: Drop vCPU param from reserved bits calculator +- KVM: x86/mmu: Use MMU's role to get CR4.PSE for computing rsvd bits +- KVM: x86/mmu: Don't grab CR4.PSE for calculating shadow reserved bits +- KVM: x86/mmu: Always set new mmu_role immediately after checking old role +- KVM: x86/mmu: Set CR4.PKE/LA57 in MMU role iff long mode is active +- KVM: x86/mmu: Do not set paging-related bits in MMU role if CR0.PG=0 +- KVM: x86/mmu: Add accessors to query mmu_role bits +- KVM: x86/mmu: Rename "nxe" role bit to "efer_nx" for macro shenanigans +- KVM: x86/mmu: Use MMU's role_regs, not vCPU state, to compute mmu_role +- KVM: x86/mmu: Ignore CR0 and CR4 bits in nested EPT MMU role +- KVM: x86/mmu: Consolidate misc updates into shadow_mmu_init_context() +- KVM: x86/mmu: Add struct and helpers to retrieve MMU role bits from regs +- KVM: x86/mmu: Grab shadow root level from mmu_role for shadow MMUs +- KVM: x86/mmu: Move nested NPT reserved bit calculation into MMU proper +- KVM: x86: Read and pass all CR0/CR4 role bits to shadow MMU helper +- KVM: x86: Introduce kvm_post_set_cr4 to post handle the CR4 emulation +- KVM: x86: Introduce kvm_post_set_cr0 to post handle the CR0 emulation +- KVM: x86: Add more protection against undefined behavior in rsvd_bits() +- KVM: x86/mmu: Drop smep_andnot_wp check from "uses NX" for shadow MMUs +- KVM: x86: Fix sizes used to pass around CR0, CR4, and EFER +- KVM: x86/mmu: Rename unsync helper and update related comments +- KVM: x86/mmu: Drop the intermediate "transient" __kvm_sync_page() +- KVM: x86/mmu: comment on kvm_mmu_get_page's syncing of pages +- KVM: x86/mmu: WARN and zap SP when sync'ing if MMU role mismatches +- KVM: x86/mmu: Use MMU role to check for matching guest page sizes +- KVM: x86/mmu: Unconditionally zap unsync SPs when creating >4k SP at GFN +- Revert "KVM: MMU: record maximum physical address width in kvm_mmu_extended_role" +- KVM: x86: Alert userspace that KVM_SET_CPUID{,2} after KVM_RUN is broken +- KVM: x86: Force all MMUs to reinitialize if guest CPUID is modified +- KVM: nVMX: WARN if subtly-impossible VMFUNC conditions occur +- KVM: x86: Drop pointless @reset_roots from kvm_init_mmu() +- KVM: x86: Defer MMU sync on PCID invalidation +- KVM: nVMX: Use fast PGD switch when emulating VMFUNC[EPTP_SWITCH] +- KVM: x86: Use KVM_REQ_TLB_FLUSH_GUEST to handle INVPCID(ALL) emulation +- KVM: nVMX: Consolidate VM-Enter/VM-Exit TLB flush and MMU sync logic +- KVM: x86: Drop skip MMU sync and TLB flush params from "new PGD" helpers +- KVM: nSVM: Move TLB flushing logic (or lack thereof) to dedicated helper +- KVM: x86: Uncondtionally skip MMU sync/TLB flush in MOV CR3's PGD switch +- KVM: x86: Invalidate all PGDs for the current PCID on MOV CR3 w/ flush +- KVM: nVMX: Free only guest_mode (L2) roots on INVVPID w/o EPT +- scsi: iscsi: Fix iscsi_task use after free +- scsi: iscsi: Have abort handler get ref to conn +- wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes +- crypto: s390/aes - Fix buffer overread in CTR mode +- block: prevent division by zero in blk_rq_stat_sum() +- IMA: Support the measurement extending of TSI TMM +- vt: fix unicode buffer corruption when deleting characters +- selinux: avoid dereference of garbage after mount failure +- btrfs: send: handle path ref underflow in header iterate_inode_ref() +- x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ +- crypto: xilinx - call finalize with bh disabled + +* Wed May 29 2024 Jialin Zhang - 5.10.0-201.0.0.102 +- !7870 CVE-2024-35995 +- !7810 net-memcg: Fix scope of sockmem pressure indicators +- !8159 v3 iommu: Reserve kabi for iommu and memory related functions +- !7207 cgroup1_writeback:bind blkcg and memcg +- !8067 irqchip: gic: some bugfix of hip09 +- iommu: Reserve kabi for iommu and memory related functions +- !8057 v8 arm64: Allow CPU0 to be nohz_full +- !7744 v3 Port livepatch related patches +- !8042 xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING +- !8060 soc: fsl: qbman: Always disable interrupts when taking cgr_lock +- !8023 fs/ntfs3: Fixed overflow check in mi_enum_attr() +- !7947 【OLK-5.10】Fix BUILD REGRESSION warnings in bzwx N5/N6 series NIC drivers +- !7413 Backport Intel VT-d critical fix to olk-5.10 +- !7985 cvm_tsi: add cvm tsi interface +- !7395 smart_grid: introducing rebuild_affinity_domain +- !7993 HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up +- !8008 【OLK-5.10】backport PCC patches to support shared interrupt for multiple subspaces and platform notification handling +- !7886 drm/amdgpu: amdgpu_ttm_gart_bind set gtt bound flag +- !5483 [OLK-5.10] Add support for Mucse Virtual Function Network Adapter(N10/N400) +- !7980 Fix CVE-2021-47455 +- !8019 pstore/zone: Add a null pointer check to the psz_kmsg_read +- !7912 RDMA/hns: Some bugfixes for openeuler 22.03 sp4 +- !7693 Bluetooth: af_bluetooth: Fix deadlock +- !8029 mm: introduce vm_swap_extension sysctl +- !8039 v2 dynamic_hugetlb: backport some bugfix +- !7813 kobject: Fix global-out-of-bounds in kobject_action_type() +- !7940 fix crypto_queue backlog handling +- !3736 Add nokaslr memory region avoid support +- !8030 netfilter: nf_tables: Fix potential data-race in __nft_flowtable_type_get() +- irqchip/gic-v4.1:Check whether indirect table is supported in allocate_vpe_l1_table +- irqchip: gicv3: Add workaround for hip09 erratum 162200806 +- irqchip: gicv3: Add workaround for hip09 erratum 162200803 +- soc: fsl: qbman: Always disable interrupts when taking cgr_lock +- arm64: defconfig: Enable CONFIG_ARCH_SUSPEND_NONZERO_CPU and CONFIG_ARCH_SUSPEND_NONZERO_CPU +- arm64: Kconfig: select ARCH_SUSPEND_NONZERO_CPU by default +- isolation: Check whether there exists a housekeeping CPU online +- isolation: Do not check whether housekeeping CPUs are present +- xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING +- mm/dynamic_hugetlb: refine error info in the destruction +- mm/dynamic_hugetlb: make free_huge_page_to_dhugetlb_pool irq safe +- mm/dynamic_hugetlb: check NULL pointer for early parameter +- mm/dynamic_hugetlb: add lru_add_drain_all() before migration +- mm/dynamic_hugetlb: add cond_resched() in hpool_merge_page() +- mm/dynamic_hugetlb: reduce the number of migration attempts +- mm/dpool: Use helper function to lock/unlock +- netfilter: nf_tables: Fix potential data-race in __nft_flowtable_type_get() +- openeuler_defconfig: enable swap_extension for x86 and arm64 +- mm/vmscan: introduce vm_swap_extension sysctl +- fs/ntfs3: Fixed overflow check in mi_enum_attr() +- pstore/zone: Add a null pointer check to the psz_kmsg_read +- drivers: initial support for rnpvf drivers from Mucse Technology +- !7961 net: atlantic: eliminate double free in error handling logic +- !7970 fbmon: prevent division by zero in fb_videomode_from_videomode() +- mailbox: pcc: Support shared interrupt for multiple subspaces +- mailbox: pcc: Add support for platform notification handling +- mailbox: pcc: Use mbox_bind_client +- !7903 virtio_ring : keep used_wrap_counter in +- HID: i2c-hid: remove I2C_HID_READ_PENDING flag to prevent lock-up +- mailbox: omap: Use mbox_bind_client +- mailbox: Allow direct registration to a channel +- mailbox: pcc: Fix kernel doc warnings +- !7983 v2 Enhance memcg KSM feature. +- !7960 ipv6: Fix infinite recursion in fib6_dump_done(). +- !7934 fix CVE-2024-35839 +- cvm_tsi: add cvm tsi interface +- !5118 [OLK-5.10] Add support for Mucse Network Adapter(N500/N210) +- !7452 v2 ip: Treat IPv4 segment's lowest address as unicast +- !7801 netfilter: nft_flow_offload: reset dst in route object after setting up flow +- !7758 netfilter: nf_tables: discard table flag update with pending basechain deletion +- !7959 v2 Add network relationship for NUMA isolation and consolidation +- mm/memcontrol: enable KSM for tasks moving to new memcg +- mm/memcontrol: add ksm state for memcg +- mm/ksm: fix ksm exec support for prctl +- mm/ksm: support fork/exec for prctl +- !7224 [OLK-5.10] Fixed display error for ps23xx when using ast and pe2201 bmc card +- ptp: fix code indentation issues +- ptp: Fix possible memory leak in ptp_clock_register() +- !7949 drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume +- fbmon: prevent division by zero in fb_videomode_from_videomode() +- !7943 v2 netrom: Fix a data-race around sysctl_netrom_transport_maximum_tries +- !7955 v3 sched: QOS_SCHED_DYNAMIC_AFFINITY depend on FAIR_GROUP_SCHED +- net: atlantic: eliminate double free in error handling logic +- ipv6: Fix infinite recursion in fib6_dump_done(). +- drivers: initial support for rnpgbe drivers from Mucse Technology +- config: Add new config entry to default config file to fix CI warning +- net: add some bpf hooks in tcp stack for network numa relationship +- net: add one bpf prog type for network numa relationship +- net: retrieve netns cookie via getsocketopt +- net: fix kabi breakage in struct net +- net: initialize net->net_cookie at netns setup +- !5484 [OLK-5.10] Add support for Mucse Virtual Function Network Adapter(N500/N210) +- sched: QOS_SCHED_DYNAMIC_AFFINITY depend on FAIR_GROUP_SCHED +- Revert "sched: QOS_SCHED_DYNAMIC_AFFINITY depend on FAIR_CGROUP_SCHED" +- drivers: Fix BUILD REGRESSION warning in bzwx N5/N6 series NIC drivers +- !6106 SCSI: hisi_raid: add sg_raw command feature +- drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume +- !7923 Fix allmodconfig build error +- !7645 ALSA: scarlett2: Add clamp() in scarlett2_mixer_ctl_put() +- netrom: Fix a data-race around sysctl_netrom_transport_maximum_tries +- crypto: engine - fix crypto_queue backlog handling +- !7916 v5 Introduce NUMA isolation and consolidation +- netfilter: bridge: replace physindev with physinif in nf_bridge_info +- netfilter: propagate net to nf_bridge_get_physindev +- netfilter: nfnetlink_log: use proper helper for fetching physinif +- !7911 ACPI: LPIT: Avoid u32 multiplication overflow +- net/ethernet/huawei/hiroce3: Fix allmodconfig build error +- !7865 netrom: Fix data-races around sysctl_netrom_network_ttl_initialiser +- RDMA/hns: Fix allocating POE channels after IB device registeration +- RDMA/hns : Fix scc delay_work to execute after sysfs shutdown +- RDMA/hns: Fix missing resetting notify +- RDMA/hns: Use mutex to protect uconctext +- config: Enable NUMA isolation and consolidation by default +- sched: Introduce CONFIG_QOS_SCHED_NUMA_ICON +- bpf:programmable: Add helper to set preferred node +- sched: Update numa group preferred node periodically +- sched: Add ioctl to get relationship +- bpf:programmable: Add helper to get memory and net relationship +- sched: Introduce task relationship by net and memory +- bpf:programmable: Add nodemask operation collection +- sched: Some fixes for select_rq hook +- sched: Add can_migrate_task hook +- sched: Introduce CONFIG_TASK_PLACEMENT_BY_CPU_RANGE +- ACPI: LPIT: Avoid u32 multiplication overflow +- !7877 v4 eeprom: at24: fix memory corruption race condition +- !7741 ipv4: check for NULL idev in ip_route_use_hint() +- !7731 sched: QOS_SCHED_DYNAMIC_AFFINITY depend on FAIR_CGROUP_SCHED +- !7689 [sync] PR-7370: v2 sched: smart_grid: silence complier error +- virtio_ring : keep used_wrap_counter in vq->last_used_idx +- drm/amdgpu: amdgpu_ttm_gart_bind set gtt bound flag +- eeprom: at24: fix memory corruption race condition +- !7733 backport some bugfix of HiSilicon PCIe PMU driver +- !7691 net: hns3: backport some bugfixes +- !7853 net/mlx5e: fix a double-free in arfs_create_groups +- ACPI: CPPC: Fix access width used for PCC registers +- ACPI: CPPC: Fix bit_offset shift in MASK_VAL() macro +- ACPI: CPPC: Use access_width over bit_width for system memory accesses +- ACPI: CPPC: Fix up I/O port access in cpc_read() +- ACPI: CPPC: Implement support for SystemIO registers +- !5545 backport dirty-ring feature +- netrom: Fix data-races around sysctl_netrom_network_ttl_initialiser +- !7846 netrom: Fix a data-race around sysctl_netrom_transport_timeout +- !7773 Fix CVE-2023-52698 +- net/mlx5e: fix a double-free in arfs_create_groups +- net: hns3: use appropriate barrier function after setting a bit value +- net: hns3: release PTP resources if pf initialization failed +- !7841 cifs: Fix pages leak when writedata alloc failed in cifs_write_from_iter() +- !7062 [openEuler-22.03-SP4]drivers: support Yunsilicon's metaScale/metaVisor series NICs +- !6300 【OLK-5.10】fix compiling problem in bzwx N5/N6 series NIC drivers +- netrom: Fix a data-race around sysctl_netrom_transport_timeout +- !7816 f2fs: fix to wait on block writeback for post_read case +- !7576 f2fs: compress: fix reserve_cblocks counting error when out of space +- !7757 Fix CVE-2023-52656 +- cifs: Fix pages leak when writedata alloc failed in cifs_write_from_iter() +- !7681 xfs: three bug fix recently +- !7779 LoongArch: Define the __io_aw() hook as mmiowb() +- !7714 CVE-2024-35936 +- drivers: fix compiling problem in bzwx N5/N6 series NIC drivers +- drivers/perf: hisi: hns3: Actually use devm_add_action_or_reset() +- drivers/perf: hisi: hns3: Fix out-of-bound access when valid event group +- drivers/perf: hisi_pcie: Merge find_related_event() and get_event_idx() +- drivers/perf: hisi_pcie: Relax the check on related events +- drivers/perf: hisi_pcie: Check the target filter properly +- drivers/perf: hisi_pcie: Add more events for counting TLP bandwidth +- drivers/perf: hisi_pcie: Fix incorrect counting under metric mode +- drivers/perf: hisi_pcie: Introduce hisi_pcie_pmu_get_event_ctrl_val() +- drivers/perf: hisi_pcie: Rename hisi_pcie_pmu_{config,clear}_filter() +- !7684 dm snapshot: fix lockup in dm_exception_table_exit +- iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected +- PCI: Make pci_dev_is_disconnected() helper public for other drivers +- f2fs: fix to wait on block writeback for post_read case +- kobject: Fix global-out-of-bounds in kobject_action_type() +- net-memcg: Fix scope of sockmem pressure indicators +- netfilter: nft_flow_offload: reset dst in route object after setting up flow +- !7743 netrom: Fix data-races around sysctl_net_busy_read +- !7734 mlxsw: spectrum_acl_tcam: Fix incorrect list API usage +- LoongArch: Define the __io_aw() hook as mmiowb() +- calipso: fix memory leak in netlbl_calipso_add_pass() +- netlabel: remove unused parameter in netlbl_netlink_auditinfo() +- net: netlabel: Fix kerneldoc warnings +- !7753 wifi: ath11k: decrease MHI channel buffer length to 8KB +- netfilter: nf_tables: discard table flag update with pending basechain deletion +- io_uring: drop any code related to SCM_RIGHTS +- io_uring/unix: drop usage of io_uring socket +- wifi: ath11k: decrease MHI channel buffer length to 8KB +- livepatch: Update related configs in openeuler_defconfig +- arm64: Recover kretprobe modified return address in stacktrace +- x86/unwind: Compile kretprobe fixup code only if CONFIG_KRETPROBES=y +- x86/unwind: Recover kretprobe trampoline entry +- kprobes: Add kretprobe_find_ret_addr() for searching return address +- livepatch: Avoid patching conflicts with kprobes +- kprobes: Fix possible use-after-free issue on kprobe registration +- ftrace: Fix possible use-after-free issue in ftrace_location() +- livepatch: Reduce duplicate definition of 'struct walk_stackframe_args' +- livepatch: Fix warning C_RULE_ID_SINGLE_BRANCH_IF_AND_LOOP_BRACKET +- livepatch/core: Make several functions to be static +- livepatch: Use func->func_node directly +- livepatch: Fix huge_depth in arch_klp_check_activeness_func() +- livepatch: Organize active functions with struct 'list_head' +- livepatch: Check calltrace of idle tasks +- livepatch: Complete check calltrace for running tasks +- livepatch/core: No stop machine in KLP_STACK_OPTIMIZE mode +- livepatch/ppc64: Adjust instruction replace order for KLP_STACK_OPTIMIZE mode +- livepatch/ppc32: Adjust instruction replace order for KLP_STACK_OPTIMIZE mode +- livepatch/arm64: Adjust instruction replace order for KLP_STACK_OPTIMIZE mode +- livepatch/arm: Adjust instruction replace order for KLP_STACK_OPTIMIZE mode +- livepatch/x86: Ajust instruction replace order for KLP_STACK_OPTIMIZE mode +- livepatch/ppc64: Implement arch_klp_check_task_calltrace() +- livepatch/ppc32: Implement arch_klp_check_task_calltrace() +- livepatch/arm64: Implement arch_klp_check_task_calltrace() +- livepatch/arm: Implement arch_klp_check_task_calltrace() +- livepatch/x86: Implement arch_klp_check_task_calltrace() +- livepatch/ppc64: Remove duplicate 'struct klp_func_list' related codes +- livepatch/ppc32: Remove duplicate 'struct klp_func_list' related codes +- livepatch/arm64: Remove duplicate 'struct klp_func_list' related codes +- livepatch/arm: Remove duplicate 'struct klp_func_list' related codes +- livepatch/x86: Move 'struct klp_func_list' related codes out of arch +- livepatch: Move 'struct klp_func_list' out of arch +- netrom: Fix data-races around sysctl_net_busy_read +- ipv4: check for NULL idev in ip_route_use_hint() +- mlxsw: spectrum_acl_tcam: Fix incorrect list API usage +- sched: QOS_SCHED_DYNAMIC_AFFINITY depend on FAIR_CGROUP_SCHED +- net: hns3: change type of numa_node_mask as nodemask_t +- btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks() +- btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks() +- net: hns3: direct return when receive a unknown mailbox message +- net: hns3: using user configure after hardware reset +- net: hns3: fix kernel crash problem in concurrent scenario +- Bluetooth: af_bluetooth: Fix deadlock +- net: hns3: add cond_resched() to hns3 ring buffer init process +- net: hns3: move constants from hclge_debugfs.h to hclge_debugfs.c +- net: hns3: add +- net: hns3: don't need to check an unsigned number is less than 0 +- net: hns3: set irq affinity directly +- net: hns3: using cpumask_copy when set value to cpumask_t +- net: hns3: mark unexcuted loopback test result as UNEXECUTED +- net: hns3: fix index limit to support all queue stats +- sched: smart_grid: silence complier error +- dm snapshot: fix lockup in dm_exception_table_exit +- xfs: update dir3 leaf block metadata after swap +- xfs: ensure logflagsp is initialized in xfs_bmap_del_extent_real +- iomap: fix warning in xfs_iomap_write_delalloc_release() +- KVM: selftests: Add dirty ring buffer test +- KVM: selftests: Introduce after_vcpu_run hook for dirty log test +- KVM: Don't allocate dirty bitmap if dirty ring is enabled +- KVM: Make dirty ring exclusive to dirty bitmap log +- KVM: X86: Implement ring-based dirty memory tracking +- KVM: Pass in kvm pointer into mark_page_dirty_in_slot() +- KVM: X86: Don't track dirty for KVM_SET_[TSS_ADDR|IDENTITY_MAP_ADDR] +- ALSA: scarlett2: Add clamp() in scarlett2_mixer_ctl_put() +- f2fs: compress: fix reserve_cblocks counting error when out of space +- drm/ast: Fixed display error for ps23xx when using ast bmc card +- drm/phytium: Bugfix Xorg startup for ps23xx when using pe2201 bmc card +- ip: Treat IPv4 segment's lowest address as unicast +- smart_grid: introducing rebuild_affinity_domain +- cgroup_writeback: bind blkcg and memcg +- drivers: support Yunsilicon's MS and MV series NICs +- SCSI: hisi_raid: add sg_raw command feature +- drivers: initial support for rnpgbevf drivers from Mucse Technology +- kaslr: enable CONFIG_NOKASLR_MEM_RANGE in openeuler_defconfig +- x86/boot: add x86 nokaslr memory regions +- efi/libstub: add arm64 nokaslr memory regions +- kaslr: add nokaslr memory region Kconfig support + + at the end when print msg +* Wed May 22 2024 Jialin Zhang - 5.10.0-200.0.0.101 +- !7644 hwrng: core - Fix page fault dead lock on mmap-ed hwrng +- !7705 pmdomain: ti: Add a null pointer check to the omap_prm_domain_init +- !7749 v2 wifi: iwlwifi: dbg-tlv: ensure NUL termination +- !7651 fix the SPI driver failed to obtain the GPIO pin +- !7655 v3 KVM: SVM: Flush pages under kvm->lock to fix UAF in svm_register_enc_region() +- !7675 bpf: Guard stack limits against 32bit overflow +- !7732 HNS3: Fixed a deadlock issue caused by concurrent VF deactivation and PF reset +- !7722 urma: fix bugs of urma and udma +- wifi: iwlwifi: dbg-tlv: ensure NUL termination +- !7686 ext4: fix corruption during on-line resize +- !7599 irqchip/gic-v3-its: Prevent double free on error +- !7674 net/smc: reduce rtnl pressure in smc_pnet_create_pnetids_list() +- HNS3: Fixed a deadlock issue caused by concurrent VF deactivation and PF reset +- hns3 udma: support user-mode TP connection API +- urma: upload kernel patch for 20240516_day +- urma: upload kernel patch for 20240511_mig +- urma: upload kernel patch for 20240318_happy_birthday +- urma: upload kernel patch for 20240224_rain +- urma: upload kernel patch for 20240219_Spring +- !7579 powerpc/powernv: Add a null pointer check to scom_debug_init_one() +- !7665 [sync] PR-7586: powerpc/imc-pmu: Add a null pointer check in update_events_in_group() +- !7661 [sync] PR-7590: drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function +- pmdomain: ti: Add a null pointer check to the omap_prm_domain_init +- ext4: fix corruption during on-line resize +- !7574 pstore: ram_core: fix possible overflow in persistent_ram_init_ecc() +- gpiolib: acpi: Fix failed in acpi_gpiochip_find() by adding parent node match +- driver core: Provide device_match_acpi_handle() helper +- bpf: Guard stack limits against 32bit overflow +- net/smc: reduce rtnl pressure in smc_pnet_create_pnetids_list() +- !7601 cpumap: Zero-initialise xdp_rxq_info struct before running XDP program +- powerpc/imc-pmu: Add a null pointer check in update_events_in_group() +- drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function +- !7588 mm/swapfile: fix infinite loop in get_swap_pages after set memory.swapfile +- KVM: SVM: Flush pages under kvm->lock to fix UAF in svm_register_enc_region() +- !7563 udma: fix a bug of segment +- !7385 CVE-2024-27002 +- hwrng: core - Fix page fault dead lock on mmap-ed hwrng +- !7577 spi: hisi-kunpeng:backport some bugfixes +- cpumap: Zero-initialise xdp_rxq_info struct before running XDP program +- irqchip/gic-v3-its: Prevent double free on error +- !7548 btrfs: fix information leak in btrfs_ioctl_logical_to_ino() +- mm/swapfile: fix infinite loop in get_swap_pages after set memory.swapfile +- powerpc/powernv: Add a null pointer check to scom_debug_init_one() +- pstore: ram_core: fix possible overflow in persistent_ram_init_ecc() +- spi: hisi-kunpeng: Add validation for the minimum value of speed_hz +- spi: Add verification for the max_frequency provided by the firmware +- spi: hisi-kunpeng: switch to use modern name +- spi: hisi-kunpeng: Fix error checking +- !7520 drm/i915/gt: Reset queue_priority_hint on parking +- hns3 udma: the SEG registration failure is rectified. +- !7538 v2 rcu: shorten the critical section that rnp->lock protects in rcu_dump_cpu_stacks +- btrfs: fix information leak in btrfs_ioctl_logical_to_ino() +- !5557 [OLK-5.10]Add support for Mont-TSSE +- !4642 Add support for Hygon family 18h model 5h HD-Audio +- !4640 Add support for Hygon model 6h L3 PMU +- !4639 Some fixes for Hygon model 4h~6h processors +- !4641 Add support for Hygon model 4h QoS +- !2583 [OLK-5.10] Driver for Zhaoxin AES and SHA algorithm +- !6801 block: fix discard +- rcu: shorten the critical section that rnp->lock protects in rcu_dump_cpu_stacks +- !7515 [sync] PR-7483: Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout +- !7356 blk-iocost: Fix an UBSAN shift-out-of-bounds warning +- !7351 PM / devfreq: Synchronize devfreq_monitor_[start/stop +- !7361 sh: push-switch: Reorder cleanup operations to avoid use-after-free bug +- drm/i915/gt: Reset queue_priority_hint on parking +- !7484 fix CVE-2024-26661 +- Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout +- !7402 scsi: lpfc: Fix possible file string name overflow when updating firmware +- !7404 scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc() +- !7403 scsi: mpt3sas: Prevent sending diag_reset when the controller is ready +- !7400 net/tg3: fix race condition in tg3_reset_task() +- !7401 nvme-core: check for too small lba shift +- !7396 drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer +- !7397 drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' +- !7398 drm/amd/display: Fix memory leak in dm_sw_fini() +- !7399 drm/amd/pm: fix a double-free in si_dpm_init +- drm/amd/display: Fix && vs || typos +- drm/amd/display: Add NULL test for 'timing generator' in 'dcn21_set_pipe()' +- !7476 firewire: nosy: ensure user_length is taken into account when fetching packet contents +- !7456 netfilter: nf_conntrack_h323: Add protection for bmp length out of range +- !6524 Bluetooth: Fix atomicity violation in {min,max}_key_size_set +- !7424 net: openvswitch: Fix Use-After-Free in ovs_ct_exit +- !7346 ppp_async: limit MRU to 64K +- !5793 um: time-travel: fix time corruption +- !7315 CVE-2024-26686 +- firewire: nosy: ensure user_length is taken into account when fetching packet contents +- !7297 powerpc/kasan: Fix addr error caused by page alignment +- !7229 s390/zcrypt: fix reference counting on zcrypt card objects +- !7234 SUNRPC: Fix a suspicious RCU usage warning +- !7235 bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers +- !7394 v2 scsi: sr: Do not leak information in ioctl +- !7308 iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC +- netfilter: nf_conntrack_h323: Add protection for bmp length out of range +- !7420 x86/CPU/AMD: Update the Zenbleed microcode revisions +- !7426 net: gtp: Fix Use-After-Free in gtp_dellink +- !7437 x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD +- x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD +- !7368 bugfix from mainline +- !7416 cpu/SMT: Make SMT control more robust against enumeration failures +- net: gtp: Fix Use-After-Free in gtp_dellink +- net: openvswitch: Fix Use-After-Free in ovs_ct_exit +- x86/CPU/AMD: Update the Zenbleed microcode revisions +- !7414 clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays +- !7218 CVE-2024-27017 +- cpu/SMT: Make SMT control more robust against enumeration failures +- clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays +- !7223 major bugfix before 2023 +- scsi: lpfc: Fix possible memory leak in lpfc_rcv_padisc() +- scsi: mpt3sas: Prevent sending diag_reset when the controller is ready +- scsi: lpfc: Fix possible file string name overflow when updating firmware +- nvme-core: check for too small lba shift +- net/tg3: fix race condition in tg3_reset_task() +- drm/amd/pm: fix a double-free in si_dpm_init +- drm/amd/display: Fix memory leak in dm_sw_fini() +- drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()' +- drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer +- scsi: sr: Do not leak information in ioctl +- !5469 wifi: iwlwifi: fix a memory corruption +- clk: mediatek: Do a runtime PM get on controllers during probe +- !7018 fix CVE-2024-26865 +- x86/srso: Fix vulnerability reporting for missing microcode +- x86/srso: Don't probe microcode in a guest +- x86/srso: Set CPUID feature bits independently of bug or mitigation status +- sh: push-switch: Reorder cleanup operations to avoid use-after-free bug +- blk-iocost: Fix an UBSAN shift-out-of-bounds warning +- PM / devfreq: Synchronize devfreq_monitor_[start/stop] +- ppp_async: limit MRU to 64K +- fs/proc: do_task_stat: use sig->stats_lock to gather the threads/children stats +- fs/proc: do_task_stat: use __for_each_thread() +- fs/proc: do_task_stat: move thread_group_cputime_adjusted() outside of lock_task_sighand() +- exit: Use the correct exit_code in /proc//stat +- iio: magnetometer: rm3100: add boundary check for the value read from RM3100_REG_TMRC +- powerpc/kasan: Fix addr error caused by page alignment +- bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers +- SUNRPC: Fix a suspicious RCU usage warning +- s390/zcrypt: fix reference counting on zcrypt card objects +- !7226 x86/fpu: Invalidate FPU state correctly on exec() +- !7128 Backport 5.10.206 LTS patches from upstream +- x86/fpu: Invalidate FPU state correctly on exec() +- !7213 v2 cpufreq/cppc: fix perf_to_khz/khz_to_perf conversion +- smb3: Replace smb2pdu 1-element arrays with flex-arrays +- powerpc/kprobes: Fix null pointer reference in arch_prepare_kprobe() +- irqchip/gic-v3: Ensure pseudo-NMIs have an ISB between ack and handling +- genirq/ipi: Fix NULL pointer deref in irq_data_get_affinity_mask() +- netfilter: nf_tables: missing iterator type in lookup walk +- netfilter: nft_set_pipapo: walk over current view on netlink dump +- !7204 udma: fix bugs of DCA and record db +- cpufreq/cppc: fix perf_to_khz/khz_to_perf conversion +- !6744 cpufreq/cppc: changing highest_perf to nominal_perf in cppc_cpufreq_cpu_init() +- !7048 nilfs2: prevent kernel bug at submit_bh_wbc() +- !7174 CVE-2022-48689 +- !6783 [OLK-5.10] fix HEST memory usage is too high +- !6685 v2 char: imx-rngc: fix clk_disable_unprepare missing in error path +- !7189 NTB: fix possible name leak in ntb_register_device() +- hns3 udma: resolve the problem when resources are reclaimed. +- hns3 udma: fixed a bug when enabling DCA. +- NTB: fix possible name leak in ntb_register_device() +- !7177 ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path +- !7122 v2 clk: zynq: Prevent null pointer dereference caused by kmalloc failure +- !7031 Revert "tracing/trigger: Fix to return error if failed to alloc snapshot" +- ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path +- tcp: TX zerocopy should not sense pfmemalloc status +- net: skbuff: update comment about pfmemalloc propagating +- net: introduce __skb_fill_page_desc_noacc +- tcp: factor out tcp_build_frag() +- !6972 ksmbd: validate payload size in ipc response +- !7143 media: usbtv: Remove useless locks in usbtv_video_free() +- !6809 memcg: fix possible use-after-free in memcg_write_event_control() +- !7148 scsi: sd: Fix sd_do_mode_sense() buffer length handling +- !7139 SUNRPC: fix some memleaks in gssx_dec_option_array +- !7129 SUNRPC: fix a memleak in gss_import_v2_context +- scsi: sd: Fix sd_do_mode_sense() buffer length handling +- spi: atmel: Fix PDC transfer setup bug +- Bluetooth: SMP: Fix crash when receiving new connection when debug is enabled +- Revert "MIPS: Loongson64: Enable DMA noncoherent support" +- dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata() +- netfilter: nf_tables: skip set commit for deleted/destroyed sets +- tracing: Fix blocked reader of snapshot buffer +- ring-buffer: Fix wake ups when buffer_percent is set to 100 +- spi: atmel: Fix CS and initialization bug +- spi: atmel: Switch to transfer_one transfer method +- smb: client: fix OOB in SMB2_query_info_init() +- usb: fotg210-hcd: delete an incorrect bounds test +- Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE +- Bluetooth: use inclusive language in SMP +- Bluetooth: SMP: Convert BT_ERR/BT_DBG to bt_dev_err/bt_dev_dbg +- ARM: dts: Fix occasional boot hang for am3 usb +- 9p/net: fix possible memory leak in p9_check_errors() +- x86/alternatives: Sync core before enabling interrupts +- lib/vsprintf: Fix %pfwf when current node refcount == 0 +- bus: ti-sysc: Flush posted write only after srst_udelay +- tracing / synthetic: Disable events after testing in synth_event_gen_test_init() +- dt-bindings: nvmem: mxs-ocotp: Document fsl,ocotp +- net: ks8851: Fix TX stall caused by TX buffer overrun +- net: rfkill: gpio: set GPIO direction +- net: 9p: avoid freeing uninit memory in p9pdu_vreadf +- Input: soc_button_array - add mapping for airplane mode button +- Bluetooth: L2CAP: Send reject on command corrupted request +- Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent +- USB: serial: option: add Quectel RM500Q R13 firmware support +- USB: serial: option: add Foxconn T99W265 with new baseline +- USB: serial: option: add Quectel EG912Y module support +- USB: serial: ftdi_sio: update Actisense PIDs constant names +- wifi: cfg80211: fix certs build to not depend on file order +- wifi: cfg80211: Add my certificate +- iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma() +- iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table +- scsi: bnx2fc: Fix skb double free in bnx2fc_rcv() +- Input: ipaq-micro-keys - add error handling for devm_kmemdup +- iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw +- interconnect: Treat xlate() returning NULL node as an error +- btrfs: do not allow non subvolume root targets for snapshot +- smb: client: fix NULL deref in asn1_ber_decoder() +- ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB +- ALSA: hda/hdmi: Add quirk to force pin connectivity on NUC10 +- pinctrl: at91-pio4: use dedicated lock class for IRQ +- i2c: aspeed: Handle the coalesced stop conditions with the start conditions. +- afs: Fix overwriting of result of DNS query +- keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry +- net: check dev->gso_max_size in gso_features_check() +- net: warn if gso_type isn't set for a GSO SKB +- afs: Fix dynamic root lookup DNS check +- afs: Fix the dynamic root's d_delete to always delete unused dentries +- net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev() +- net/rose: fix races in rose_kill_by_device() +- ethernet: atheros: fix a memleak in atl1e_setup_ring_resources +- net: sched: ife: fix potential use-after-free +- net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by representors +- net/mlx5: Fix fw tracer first block check +- net/mlx5e: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list() +- Revert "net/mlx5e: fix double free of encap_header" +- wifi: mac80211: mesh_plink: fix matches_local logic +- s390/vx: fix save/restore of fpu kernel context +- reset: Fix crash when freeing non-existent optional resets +- ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init +- smb: client: fix OOB in smb2_query_reparse_point() +- ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE +- media: usbtv: Remove useless locks in usbtv_video_free() +- SUNRPC: fix some memleaks in gssx_dec_option_array +- !7044 v2 nfs: fix UAF in direct writes +- !7092 Squashfs: check the inode number is not the invalid value of zero +- SUNRPC: fix a memleak in gss_import_v2_context +- clk: zynq: Prevent null pointer dereference caused by kmalloc failure +- !6965 v2 memcg: fix incorrect value of sysctl_memcg_swap_qos_stat +- !7054 CVE-2024-27024 +- !7047 backport patch for thp deferred list +- !7080 drm: nv04: Fix out of bounds access +- !7086 media: ttpci: fix two memleaks in budget_av_attach +- !7042 CVE-2024-27034 +- !6818 mm: memcg: fix stale protection of reclaim target memcg +- Squashfs: check the inode number is not the invalid value of zero +- media: ttpci: fix two memleaks in budget_av_attach +- !7013 media: edia: dvbdev: fix a use-after-free +- !6994 v2 net/mlx5e: Prevent deadlock while disabling aRFS +- drm: nv04: Fix out of bounds access +- !7039 USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command +- !6655 [OLK-5.10] mucse rnpm driver fw mailbox maybe failed to communicate with PF for mucse N10/N400 chips +- !5964 drivers: close default yusur KPU FLEXFLOW-2100P driver support +- !6954 [OLK-5.10]Fix some bugs of the Mini-IO module +- !7056 scsi: qla2xxx: Fix command flush on cable pull +- !7006 wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled +- !7003 wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete +- !7041 netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get() +- scsi: qla2xxx: Fix command flush on cable pull +- net/rds: fix possible cp null dereference +- net/rds: fix WARNING in rds_conn_connect_if_down +- nilfs2: prevent kernel bug at submit_bh_wbc() +- THP: avoid lock when check whether THP is in deferred list +- mm/mmu_gather: limit free batch count and add schedule point in tlb_batch_pages_flush +- nfs: fix UAF in direct writes +- f2fs: compress: fix to cover normal cluster write with cp_rwsem +- f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info +- f2fs: replace congestion_wait() calls with io_schedule_timeout() +- f2fs: fix to stop filesystem update once CP failed +- !6990 netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get() +- netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get() +- !7000 fix CVE-2024-27010 +- USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command +- Revert "tracing/trigger: Fix to return error if failed to alloc snapshot" +- !6843 v2 scsi: core: Fix unremoved procfs host directory regression +- !6939 USB: core: Fix deadlock in usb_deauthorize_interface() +- !6906 drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()' +- !6977 wireguard: netlink: access device through ctx instead of peer +- !6956 netfilter: nf_tables: fix memleak in map from abort path +- !6988 clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays +- !6914 usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error +- !6855 KVM: Always flush async #PF workqueue when vCPU is being destroyed +- tcp: Fix NEW_SYN_RECV handling in inet_twsk_purge() +- tcp: Clean up kernel listener's reqsk in inet_twsk_purge() +- media: edia: dvbdev: fix a use-after-free +- wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled +- wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete +- net/sched: fix kabi change in struct Qdisc +- net/sched: Fix mirred deadlock on device recursion +- net/mlx5e: Prevent deadlock while disabling aRFS +- !6943 speakup: Avoid crash on very long word +- netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get() +- !6959 mac802154: fix llsec key resources release in mac802154_llsec_key_del +- !6932 net: enetc: deny offload of tc-based TSN features on VF interfaces +- !6689 quota: Fix potential NULL pointer dereference +- clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays +- !6964 v2 CVE-2024-27000 +- wireguard: netlink: access device through ctx instead of peer +- !6891 ima: fix deadlock when traversing "ima_default_rules". +- ksmbd: validate payload size in ipc response +- !6872 pstore: inode: Only d_invalidate() is needed +- !6882 f2fs: compress: fix to guarantee persisting compressed blocks by CP +- !6895 tun: limit printing rate when illegal packet received by tun dev +- !6879 net/smc: Fix possible access to freed memory in link clear +- !6736 add LTS patches to OLK-5.10 +- memcg: fix incorrect value of sysctl_memcg_swap_qos_stat +- serial: core: fix kernel-doc for uart_port_unlock_irqrestore() +- serial: mxs-auart: add spinlock around changing cts state +- serial: core: Provide port lock wrappers +- mac802154: fix llsec key resources release in mac802154_llsec_key_del +- netfilter: nf_tables: fix memleak in map from abort path +- spi: hisi-kunpeng: Delete the dump interface of data registers in debugfs +- i2c: hisi: Correct the description comment for PIN_MUX METHOD +- i2c: hisi: Add I2C controller reset and initialization proccess in bus recovery action +- speakup: Avoid crash on very long word +- USB: core: Fix deadlock in usb_deauthorize_interface() +- net: enetc: deny offload of tc-based TSN features on VF interfaces +- usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error +- drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()' +- tun: limit printing rate when illegal packet received by tun dev +- ima: fix deadlock when traversing "ima_default_rules". +- f2fs: compress: fix to guarantee persisting compressed blocks by CP +- net/smc: Fix possible access to freed memory in link clear +- pstore: inode: Only d_invalidate() is needed +- KVM: Always flush async #PF workqueue when vCPU is being destroyed +- scsi: core: Fix unremoved procfs host directory regression +- mm: memcg: fix stale protection of reclaim target memcg +- ACPI: APEI: Skip initialization of GHES_ASSIST structures for Machine Check Architecture +- memcg: fix possible use-after-free in memcg_write_event_control() +- block: check io size before submit discard +- block: fix overflow in blk_ioctl_discard() +- cpufreq/cppc: changing highest_perf to nominal_perf in cppc_cpufreq_cpu_init() +- net: fix kabi in struct ipv6_devconf +- net: release reference to inet6_dev pointer +- net: change accept_ra_min_rtr_lft to affect all RA lifetimes +- net: add sysctl accept_ra_min_rtr_lft +- genetlink: fix kabi change in struct genl_multicast_group +- genetlink: Use internal flags for multicast groups +- drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group +- genetlink: add CAP_NET_ADMIN test for multicast bind +- quota: Fix potential NULL pointer dereference +- char: imx-rngc: fix clk_disable_unprepare missing in error path +- mucse: rnpm fw mailbox maybe failed to communicate with PF +- Bluetooth: Fix atomicity violation in {min,max}_key_size_set +- drivers: close default yusur KPU FLEXFLOW-2100P driver support +- um: time-travel: fix time corruption +- add support for Mont-TSSE Driver +- wifi: iwlwifi: fix a memory corruption +- EDAC/amd64: Adjust UMC channel for Hygon family 18h model 6h +- x86/amd_nb: Get DF ID from F5 device for Hygon family 18h model 6h +- EDAC/amd64: Fix intlv_num_chan for Hygon family 18h model 4h +- EDAC/amd64: Revert hi_addr_offset for Hygon family 18h model 4h +- ALSA: hda: Fix single byte write failure issue for Hygon +- ALSA: hda: Add Hygon HD-Audio support +- x86/resctrl: Add Hygon QoS support +- perf/x86/uncore: Add L3 PMU support for Hygon family 18h model 6h +- configs: Add Zhaoxin aes/sha items in openeuler_config +- Zhaoxin: Driver for Zhaoxin SHA algorithm +- Zhaoxin: Driver for Zhaoxin AES algorithm + +* Wed May 08 2024 Jialin Zhang - 5.10.0-198.0.0.100 +- !6904 bpf: Fix DEVMAP_HASH overflow check on 32-bit arches +- !6918 bpf: Fix hashtab overflow check on 32-bit arches +- !6928 firmware: arm_scmi: Harden accesses to the reset domains +- !6924 bpf: Fix stackmap overflow check on 32-bit arches +- !6861 media: dvb-frontends: avoid stack overflow warnings with clang +- !6840 CVE-2023-52650 +- !6851 serial/pmac_zilog: Remove flawed mitigation for rx irq flood +- !6826 fat: fix uninitialized field in nostale filehandles +- !6838 fs: sysfs: Fix reference leak in sysfs_break_active_protection() +- !6808 CVE-2024-26923 +- firmware: arm_scmi: Harden accesses to the reset domains +- bpf: Fix stackmap overflow check on 32-bit arches +- bpf: Fix hashtab overflow check on 32-bit arches +- !6846 perf/x86/amd: Fix crash due to race between amd_pmu_enable_all, perf NMI and throttling +- bpf: Fix DEVMAP_HASH overflow check on 32-bit arches +- !6849 erofs: fix pcluster use-after-free on UP platforms +- !6740 V2 cpuset: fix race between rebuild scheduler domains and hotplug work +- !6473 nvme-fc: do not wait in vain when unloading module +- media: dvb-frontends: avoid stack overflow warnings with clang +- !6802 x86,static_call: Fix __static_call_return0 for i386 +- serial/pmac_zilog: Remove flawed mitigation for rx irq flood +- !6835 kprobes: Fix check for probe enabled in kill_kprobe() +- erofs: fix pcluster use-after-free on UP platforms +- perf/x86/amd: Fix crash due to race between amd_pmu_enable_all, perf NMI and throttling +- drm/tegra: dsi: Add missing check for of_find_device_by_node +- fs: sysfs: Fix reference leak in sysfs_break_active_protection() +- !6799 rtmutex: Add acquire semantics for rtmutex lock acquisition slow path +- kprobes: Fix check for probe enabled in kill_kprobe() +- !6797 scsi: target: core: Add TMF to tmr_list handling +- fat: fix uninitialized field in nostale filehandles +- !6798 media: ir_toy: fix a memleak in irtoy_tx +- af_unix: Suppress false-positive lockdep splat for spin_lock() in __unix_gc(). +- af_unix: Fix garbage collector racing against connect() +- !6756 vfio/fsl-mc: Block calling interrupt handler without trigger +- x86,static_call: Fix __static_call_return0 for i386 +- !6704 x86/thermal: Fix LVT thermal setup for SMI delivery mode +- !6702 static_call: Don't make __static_call_return0 static +- rtmutex: Add acquire semantics for rtmutex lock acquisition slow path +- !6700 PCI/IOV: Enlarge virtfn sysfs name buffer +- !5905 [OLK 5.10] RDMA/hns: Fix incorrect iteration number of DCA umem sg entries and error return in hns_roce_v2_modify_srq() +- media: ir_toy: fix a memleak in irtoy_tx +- scsi: target: core: Add TMF to tmr_list handling +- !6684 infiniband/hw/hiroce3: Add Huawei Intelligent Network Card RDMA Driver +- !6755 binder: check offset alignment in binder_get_object() +- !6729 PCI/IOV: Improve performance of creating VFs concurrently +- !6669 NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102 +- !6680 cifs: fix underflow in parse_server_interfaces() +- !6719 drm/amdgpu: validate the parameters of bo mapping operations more clearly +- vfio/fsl-mc: Block calling interrupt handler without trigger +- binder: check offset alignment in binder_get_object() +- !6739 v2 Apply patches of ses from stable +- !6677 v3 olk-5.10: bugfix for mm +- !6654 net/ipv6: avoid possible UAF in ip6_route_mpath_notify() +- !6683 v2 CVE-2024-26921 +- cpuset: fix race between rebuild scheduler domains and hotplug work +- scsi: ses: Handle enclosure with just a primary component gracefully +- Revert "scsi: ses: Handle enclosure with just a primary component gracefully" +- Revert "scsi: ses: Fix crash caused by kfree an invalid pointer" +- scsi: ses: Fix possible desc_ptr out-of-bounds accesses +- Revert "scsi: ses: fix slab-out-of-bounds in ses_enclosure_data_process" +- !6501 cachefiles: fix memory leak in cachefiles_add_cache() +- PCI/IOV: Improve performance of creating VFs concurrently +- drm/amdgpu: validate the parameters of bo mapping operations more clearly +- !6676 cvm feature patches +- x86/thermal: Fix LVT thermal setup for SMI delivery mode +- static_call: Don't make __static_call_return0 static +- PCI/IOV: Enlarge virtfn sysfs name buffer +- !6567 CVE-2024-26896 +- !6580 drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip +- infiniband/hw/hiroce3: Add Huawei Intelligent Network Card RDMA Driver +- net/ethernet/huawei/hinic3: Add the CQM on which the RDMA depends +- sk_buff: Fix KABI break for the modification of struct sk_buff +- inet: inet_defrag: prevent sk release while still in use +- net: Fix KABI break for introducing is_skb_wmem() +- skb_expand_head() adjust skb->truesize incorrectly +- skbuff: introduce skb_expand_head() +- cifs: fix underflow in parse_server_interfaces() +- mm/madvise: fix potential pte_unmap_unlock pte error +- mm/page_alloc: always attempt to allocate at least one page during bulk allocation +- gicv3: add lpi support for cvm guest +- config: modify arm64 defconfig for cvm feature +- mm: enable swiotlb alloc for cvm share mem +- swiotlb: add swiotlb io_tlb_list release slots methd +- swiotlb: Add restricted DMA alloc/free support +- kvm: add support for multi-numa and fix kabi change +- pmu: enable pmu phys irq inject for cvm +- kvm: add cvm host feature +- !6660 udma: fix bugs of record_db +- !6640 hsr: Fix uninit-value access in hsr_get_node() +- NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102 +- net/ipv6: avoid possible UAF in ip6_route_mpath_notify() +- !6620 packet: annotate data-races around ignore_outgoing +- !6618 net/bnx2x: Prevent access to a freed page in page_pool +- !6592 net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv() +- !6619 Bluetooth: Fix atomicity violation in {min,max}_key_size_set +- !6635 backport RDMA/hns: Fix DCA's dependence on ib_uverbs from OLK-6.6 +- hns3 udma: addressing stage adaptation +- !6257 HNS3: Do some optimizing job and support fast path +- !6623 amdkfd: use calloc instead of kzalloc to avoid integer overflow +- hns3 udma: unified coding style +- hns3 udma: Interface for adding a user ctrl. +- hsr: Fix uninit-value access in hsr_get_node() +- !6561 md: fix kmemleak of rdev->serial +- !6631 Backport 5.10.205 LTS patches from upstream +- powerpc/ftrace: Fix stack teardown in ftrace_no_trace +- powerpc/ftrace: Create a dummy stackframe to fix stack unwind +- tty: n_gsm: add sanity check for gsm->receive in gsm_receive_buf() +- tty: n_gsm, remove duplicates of parameters +- tty: n_gsm: fix tty registration before control channel open +- USB: gadget: core: adjust uevent timing on gadget unbind +- ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs +- ring-buffer: Fix writing to the buffer with max_data_size +- ring-buffer: Have saved event hold the entire event +- tracing: Update snapshot buffer on resize if it is allocated +- ring-buffer: Fix memory leak of free page +- team: Fix use-after-free when an option instance allocation fails +- arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify +- soundwire: stream: fix NULL pointer dereference for multi_link +- HID: hid-asus: add const to read-only outgoing usb buffer +- net: usb: qmi_wwan: claim interface 4 for ZTE MF290 +- asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation +- HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad +- HID: hid-asus: reset the backlight brightness level on resume +- HID: add ALWAYS_POLL quirk for Apple kb +- HID: glorious: fix Glorious Model I HID report +- platform/x86: intel_telemetry: Fix kernel doc descriptions +- bcache: avoid NULL checking to c->root in run_cache_set() +- bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc() +- bcache: remove redundant assignment to variable cur_idx +- bcache: avoid oversize memory allocation by small stripe_size +- blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!" +- usb: aqc111: check packet for fixup for true limit +- drm/mediatek: Add spinlock for setting vblank event in atomic_begin +- Revert "PCI: acpiphp: Reassign resources on bridge if necessary" +- ALSA: hda/realtek: Apply mute LED quirk for HP15-db +- ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants +- fuse: dax: set fc->dax to NULL in fuse_dax_conn_free() +- net: atlantic: fix double free in ring reinit logic +- net: stmmac: Handle disabled MDIO busses from devicetree +- net: stmmac: use dev_err_probe() for reporting mdio bus registration failure +- vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space() +- sign-file: Fix incorrect return values check +- net: ena: Fix XDP redirection error +- net: ena: Destroy correct number of xdp queues upon failure +- net: Remove acked SYN flag from packet in the transmit queue correctly +- qed: Fix a potential use-after-free in qed_cxt_tables_alloc +- net: fec: correct queue selection +- net: vlan: introduce skb_vlan_eth_hdr() +- atm: solos-pci: Fix potential deadlock on &tx_queue_lock +- atm: solos-pci: Fix potential deadlock on &cli_queue_lock +- qca_spi: Fix reset behavior +- qca_debug: Fix ethtool -G iface tx behavior +- qca_debug: Prevent crash on TX ring changes +- HID: lenovo: Restrict detection of patched firmware only to USB cptkbd +- afs: Fix refcount underflow from error handling race +- netfilter: nf_tables: fix 'exist' matching on bigendian arches +- !6485 CVE-2024-26843 +- HNS3: Support debugfs dump fastpath info +- Support configuration of fastpath feature +- !6247 ubi: Check for too small LEB size in VTBL code +- amdkfd: use calloc instead of kzalloc to avoid integer overflow +- packet: annotate data-races around ignore_outgoing +- !6539 Backport 5.10.204 LTS patches from upstream +- !6546 v2 CVE-2024-26907 +- Bluetooth: Fix atomicity violation in {min,max}_key_size_set +- net/bnx2x: Prevent access to a freed page in page_pool +- !6597 v3 Fix CVE-2024-26869 +- !6401 btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve +- !6555 udma: fix bugs in non-share jfr and remove rm mode +- !6568 IB/hfi1: Fix a memleak in init_credit_return +- !6579 media: rc: bpf attach/detach requires write permission +- !6543 net: ice: Fix potential NULL pointer dereference in ice_bridge_setlink() +- !6520 firmware: arm_scmi: Fix double free in SMC transport cleanup path +- !6584 ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit() +- f2fs: fix to truncate meta inode pages forcely +- f2fs: invalidate meta pages only for post_read required inode +- f2fs: fix to invalidate META_MAPPING before DIO write +- f2fs: invalidate META_MAPPING before IPU/DIO write +- !6566 nfc: nci: free rx_data_reassembly skb on NCI device cleanup +- !6588 Add hugetlb MADV_DONTNEED support +- !6437 dm: call the resume method on internal suspend +- !6442 scsi: pm80xx: Fix memory leak during rmmod +- !6474 do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak +- net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv() +- hugetlb: don't delete vma_lock in hugetlb MADV_DONTNEED processing +- madvise: use zap_page_range_single for madvise dontneed +- mm,madvise,hugetlb: fix unexpected data loss with MADV_DONTNEED on hugetlbfs +- mm: enable MADV_DONTNEED for hugetlb mappings +- ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit() +- drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip +- media: rc: bpf attach/detach requires write permission +- !6417 media: pvrusb2: fix uaf in pvr2_context_set_notify +- !6493 RDMA/srpt: Do not register event handler until srpt device is fully setup +- IB/hfi1: Fix a memleak in init_credit_return +- wifi: wfx: fix memory leak when starting AP +- nfc: nci: free rx_data_reassembly skb on NCI device cleanup +- !6458 CVE-2024-26813 +- md: fix kmemleak of rdev->serial +- hns3 udma: modifying the sge address offset in RC Mode. +- RDMA/mlx5: Fix fortify source warning while accessing Eth segment +- uapi: stddef.h: Fix __DECLARE_FLEX_ARRAY for C++ +- stddef: Introduce DECLARE_FLEX_ARRAY() helper +- net: ice: Fix potential NULL pointer dereference in ice_bridge_setlink() +- hns3 udma: Code clipping related to RM mode. +- hns3 udma: Modify qpn alloc function when share jfr is disabled. +- r8169: fix rtl8125b PAUSE frames blasting when suspended +- devcoredump: Send uevent once devcd is ready +- devcoredump : Serialize devcd_del work +- smb: client: fix potential NULL deref in parse_dfs_referrals() +- cifs: Fix non-availability of dedup breaking generic/304 +- Revert "btrfs: add dmesg output for first mount and last unmount of a filesystem" +- mmc: block: Be sure to wait while busy in CQE error recovery +- platform/x86: asus-wmi: Document the dgpu_disable sysfs attribute +- tools headers UAPI: Sync linux/perf_event.h with the kernel sources +- platform/x86: asus-wmi: Fix kbd_dock_devid tablet-switch reporting +- MIPS: Loongson64: Enable DMA noncoherent support +- MIPS: Loongson64: Reserve vgabios memory on boot +- KVM: s390/mm: Properly reset no-dat +- serial: 8250_omap: Add earlycon support for the AM654 UART controller +- serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt +- serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit +- serial: sc16is7xx: address RX timeout interrupt errata +- ARM: PL011: Fix DMA support +- usb: typec: class: fix typec_altmode_put_partner to put plugs +- Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1" +- parport: Add support for Brainboxes IX/UC/PX parallel cards +- usb: gadget: f_hid: fix report descriptor allocation +- gpiolib: sysfs: Fix error handling on failed export +- tracing: Stop current tracer when resizing buffer +- tracing: Set actual size after ring buffer resize +- ring-buffer: Force absolute timestamp on discard of event +- misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write +- misc: mei: client.c: return negative error code in mei_cl_write +- arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory +- arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names +- arm64: dts: mediatek: mt7622: fix memory node warning check +- packet: Move reference count in packet_sock to atomic_long_t +- tracing: Fix a possible race when disabling buffered events +- tracing: Fix incomplete locking when disabling buffered events +- tracing: Disable snapshot buffer when stopping instance tracers +- tracing: Always update snapshot buffer size +- checkstack: fix printed address +- nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage() +- nilfs2: fix missing error check for sb_set_blocksize call +- ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5 +- ALSA: pcm: fix out-of-bounds in snd_pcm_state_names +- riscv: fix misaligned access handling of C.SWSP and C.SDSP +- ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt +- ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init +- scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle() +- tracing: Fix a warning when allocating buffered events fails +- ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate +- hwmon: (acpi_power_meter) Fix 4.29 MW bug +- RDMA/bnxt_re: Correct module description string +- RDMA/rtrs-clt: Remove the warnings for req in_use check +- arm64: dts: rockchip: Expand reg size of vdec node for RK3399 +- tee: optee: Fix supplicant based device enumeration +- bpf: sockmap, updating the sg structure should also update curr +- tcp: do not accept ACK of bytes we never sent +- netfilter: xt_owner: Fix for unsafe access of sk->sk_socket +- ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit() +- ionic: Fix dim work handling in split interrupt mode +- ionic: fix snprintf format length warning +- net: bnxt: fix a potential use-after-free in bnxt_init_tc +- i40e: Fix unexpected MFS warning message +- arcnet: restoring support for multiple Sohard Arcnet cards +- net: arcnet: com20020 fix error handling +- mlxbf-bootctl: correctly identify secure boot with development keys +- hv_netvsc: rndis_filter needs to select NLS +- octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam +- ipv6: fix potential NULL deref in fib6_add() +- of: dynamic: Fix of_reconfig_get_state_change() return value documentation +- of: Add missing 'Return' section in kerneldoc comments +- of: Fix kerneldoc output formatting +- of: base: Fix some formatting issues and provide missing descriptions +- platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code +- platform/x86: asus-wmi: Simplify tablet-mode-switch handling +- platform/x86: asus-wmi: Simplify tablet-mode-switch probing +- platform/x86: asus-wmi: Add support for ROG X13 tablet mode +- platform/x86: asus-wmi: Adjust tablet/lidflip handling to use enum +- asus-wmi: Add dgpu disable method +- platform/x86: asus-nb-wmi: Add tablet_mode_sw=lid-flip quirk for the TP200s +- platform/x86: asus-nb-wmi: Allow configuring SW_TABLET_MODE method with a module option +- platform/x86: asus-wmi: Add support for SW_TABLET_MODE on UX360 +- kconfig: fix memory leak from range properties +- tg3: Increment tx_dropped in tg3_tso_bug() +- tg3: Move the [rt]x_dropped counters to tg3_napi +- netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test +- i2c: designware: Fix corrupted memory seen in the ISR +- firmware: arm_scmi: Fix double free in SMC transport cleanup path +- cachefiles: fix memory leak in cachefiles_add_cache() +- RDMA/hns: Fix DCA's dependence on ib_uverbs +- RDMA/srpt: Do not register event handler until srpt device is fully setup +- efi: runtime: Fix potential overflow of soft-reserved region size +- do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak +- nvme-fc: do not wait in vain when unloading module +- vfio/platform: Create persistent IRQ handlers +- vfio/platform: Disable virqfds on cleanup +- HNS3: Solve the problem that the tc qdisc configuration in the hardware registration cannot be cleared +- HNS3: Modify the io process of unic to improve bandwidth +- HNS3: Do some cleancode job to eliminate warnings +- HNS3: Change the function name from ubn to ubl +- HNS3: fix up magic numbers and impertinent judge position +- scsi: pm80xx: Fix memory leak during rmmod +- dm: call the resume method on internal suspend +- media: pvrusb2: fix uaf in pvr2_context_set_notify +- btrfs: fix data race at btrfs_use_block_rsv() when accessing block reserve +- RDMA/hns: Fix incorrect iteration number of DCA umem sg entries +- RDMA/hns: fix error return in hns_roce_v2_modify_srq() +- ubi: Check for too small LEB size in VTBL code + +* Wed Apr 24 2024 Jialin Zhang - 5.10.0-197.0.0.99 +- !5273 net/smc: fix illegal rmb_desc access in SMC-D connection dump +- !6486 devlink: fix possible use-after-free and memory leaks in devlink_init() +- !6515 fix CVE-2023-52498 +- !5468 media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run +- !6314 fixup CVE-2024-26908 +- PM: sleep: Fix error handling in dpm_prepare() +- PM: sleep: Fix possible deadlocks in core system-wide PM code +- PM: core: Remove unnecessary (void *) conversions +- PM: sleep: Avoid calling put_device() under dpm_list_mtx +- PM: sleep: Use dev_printk() when possible +- async: Introduce async_schedule_dev_nocall() +- async: Split async_schedule_node_domain() +- !6316 scsi: fnic: Move fnic_fnic_flush_tx() to a work queue +- !6399 wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces +- !6407 wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev() +- !6455 CVE-2021-47182 +- devlink: fix possible use-after-free and memory leaks in devlink_init() +- !6423 tracing/trigger: Fix to return error if failed to alloc snapshot +- scsi: core: Fix scsi_mode_sense() buffer length handling +- scsi: core: Reshuffle response handling in scsi_mode_sense() +- !6281 v2 net/mlx5: Update error handler for UCTX and UMEM +- !6428 net/sched: flower: Fix unable to handle page fault bug in fl_init +- !6267 wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach +- !6279 Bluetooth: Avoid potential use-after-free in hci_error_reset +- !6259 arp: Prevent overflow in arp_req_get(). +- !6312 fix CVE-2024-24861 for 5.10 +- !6308 v3 ima: Avoid blocking in RCU read-side critical section +- net/sched: flower: Fix unable to handle page fault bug in fl_init +- tracing/trigger: Fix to return error if failed to alloc snapshot +- !6291 aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts +- wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev() +- wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces +- !6295 hns3 udma: adjustment of the maximum number of Jettys +- !6202 ALSA: usb-audio: fix null pointer dereference on pointer cs_desc +- scsi: fnic: Move fnic_fnic_flush_tx() to a work queue +- !6294 [sync] PR-6177: arm64/mpam: Not allowed setting 0 to cache portion bit mask +- !6293 [sync] PR-6176: arm64/mpam: return EOPNOTSUPP when changing rmid of monitor group or resource group with monitor +- !6284 net/mlx5e: CT, Fix multiple allocations and memleak of mod acts +- x86/xen: Add some null pointer checking to smp.c +- media: xc4000: Fix atomicity violation in xc4000_get_frequency +- ima: Avoid blocking in RCU read-side critical section +- !6076 Fix CVE-2024-26764 +- arm64/mpam: Not allowed setting 0 to cache portion bit mask +- arm64/mpam: return EOPNOTSUPP when changing rmid of monitor group or resource group with monitor +- aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts +- hns3 udma: adjustment of the maximum number of Jettys +- !6263 udma: fix a bug of jfr record_db +- net/mlx5e: CT, Fix multiple allocations and memleak of mod acts +- net/mlx5: Update error handler for UCTX and UMEM +- Bluetooth: Avoid potential use-after-free in hci_error_reset +- !6262 scsi: hisi_sas: Remove hisi_hba->timer for v3 hw +- !5965 Fix CVE-2023-52441 and integrate the pre-patch +- !6086 netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain +- !6085 netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter +- wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach +- scsi: hisi_sas: Remove hisi_hba->timer for v3 hw +- hns3 udma: fixes errors related to jfr RECORD_DB. +- arp: Prevent overflow in arp_req_get(). +- !6199 writeback fix softlockup +- !6087 net/sched: act_mirred: don't override retval if we already lost the skb +- !6082 can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER) +- !6058 net: ip_tunnel: prevent perpetual headroom growth +- ALSA: usb-audio: fix null pointer dereference on pointer cs_desc +- cgroup_writeback: fix softlockup for blkcg->memcg_list +- net/sched: act_mirred: don't override retval if we already lost the skb +- netfilter: nft_chain_filter: handle NETDEV_UNREGISTER for inet/ingress basechain +- netlink: Fix kernel-infoleak-after-free in __skb_datagram_iter +- can: j1939: Fix UAF in j1939_sk_match_filter during setsockopt(SO_J1939_FILTER) +- fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion +- fs/aio: Restrict kiocb_set_cancel_fn() to I/O submitted via libaio +- net: ip_tunnel: prevent perpetual headroom growth +- ksmbd: fix out of bounds in init_smb2_rsp_hdr() +- ksmbd: fix slab-out-of-bounds in init_smb2_rsp_hdr +- ksmbd: return unsupported error on smb1 mount +- ksmbd: return STATUS_NOT_SUPPORTED on unsupported smb2.0 dialect +- media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run +- net/smc: fix illegal rmb_desc access in SMC-D connection dump + +* Wed Apr 17 2024 Jialin Zhang - 5.10.0-196.0.0.98 +- !6074 Fix CVE-2024-26787 +- !6193 uio_hv_generic: Fix another memory leak in error handling paths +- !6192 arm64: dts: qcom: sdm845-db845c: Mark cont splash memory region as reserved +- !6178 CVE-2024-26812 +- !6112 cifs: Fix UAF in cifs_demultiplex_thread() +- uio_hv_generic: Fix another memory leak in error handling paths +- arm64: dts: qcom: sdm845-db845c: Mark cont splash memory region as reserved +- vfio/pci: Create persistent INTx handler +- vfio: Introduce interface to flush virqfd inject workqueue +- !6124 xen/events: close evtchn after mapping cleanup +- !6137 vfio/pci: Lock external INTx masking ops +- !6161 Backport 5.10.203 LTS patches from upstream +- driver core: Release all resources during unbind before updating device links +- r8169: fix deadlock on RTL8125 in jumbo mtu mode +- r8169: disable ASPM in case of tx timeout +- mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled +- mmc: core: add helpers mmc_regulator_enable/disable_vqmmc +- mmc: block: Retry commands in CQE error recovery +- mmc: core: convert comma to semicolon +- mmc: cqhci: Fix task clearing in CQE error recovery +- mmc: cqhci: Warn of halt or task clear failure +- mmc: cqhci: Increase recovery halt timeout +- cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily +- cpufreq: imx6q: don't warn for disabling a non-existing frequency +- scsi: qla2xxx: Fix system crash due to bad pointer access +- scsi: qla2xxx: Use scsi_cmd_to_rq() instead of scsi_cmnd.request +- scsi: core: Introduce the scsi_cmd_to_rq() function +- smb3: fix caching of ctime on setxattr +- fs: add ctime accessors infrastructure +- ima: annotate iint mutex to avoid lockdep false positive warnings +- fbdev: stifb: Make the STI next font pointer a 32-bit signed offset +- misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support +- misc: pci_endpoint_test: Add deviceID for AM64 and J7200 +- s390/cmma: fix detection of DAT pages +- s390/mm: fix phys vs virt confusion in mark_kernel_pXd() functions family +- ASoC: SOF: sof-pci-dev: Fix community key quirk detection +- ASoC: SOF: sof-pci-dev: don't use the community key on APL Chromebooks +- ASoC: SOF: sof-pci-dev: add parameter to override topology filename +- ASoC: SOF: sof-pci-dev: use community key on all Up boards +- ASoC: Intel: Move soc_intel_is_foo() helpers to a generic header +- smb3: fix touch -h of symlink +- net: ravb: Start TX queues after HW initialization succeeded +- net: ravb: Use pm_runtime_resume_and_get() +- r8169: prevent potential deadlock in rtl8169_close +- Revert "workqueue: remove unused cancel_work()" +- octeontx2-pf: Fix adding mbox work queue entry when num_vfs > 64 +- net: stmmac: xgmac: Disable FPE MMC interrupts +- selftests/net: mptcp: fix uninitialized variable warnings +- selftests/net: ipsec: fix constant out of range +- dpaa2-eth: increase the needed headroom to account for alignment +- usb: config: fix iteration issue in 'usb_get_bos_descriptor()' +- USB: core: Change configuration warnings to notices +- hv_netvsc: fix race of netvsc and VF register_netdevice +- Input: xpad - add HyperX Clutch Gladiate Support +- btrfs: make error messages more clear when getting a chunk map +- btrfs: send: ensure send_fd is writable +- btrfs: fix off-by-one when checking chunk map includes logical address +- btrfs: ref-verify: fix memory leaks in btrfs_ref_tree_mod() +- btrfs: add dmesg output for first mount and last unmount of a filesystem +- parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes +- powerpc: Don't clobber f0/vs0 during fp|altivec register save +- iommu/vt-d: Add MTL to quirk list to skip TE disabling +- bcache: revert replacing IS_ERR_OR_NULL with IS_ERR +- dm verity: don't perform FEC for failed readahead IO +- dm-verity: align struct dm_verity_fec_io properly +- ALSA: hda/realtek: Add supported ALC257 for ChromeOS +- ALSA: hda/realtek: Headset Mic VREF to 100% +- ALSA: hda: Disable power-save on KONTRON SinglePC +- mmc: block: Do not lose cache flush during CQE error recovery +- firewire: core: fix possible memory leak in create_units() +- pinctrl: avoid reload of p state in list iteration +- io_uring: fix off-by one bvec index +- USB: dwc3: qcom: fix wakeup after probe deferral +- usb: dwc3: set the dma max_seg_size +- usb: dwc3: Fix default mode initialization +- USB: dwc2: write HCINT with INTMASK applied +- USB: serial: option: don't claim interface 4 for ZTE MF290 +- USB: serial: option: fix FM101R-GL defines +- USB: serial: option: add Fibocom L7xx modules +- bcache: fixup lock c->root error +- bcache: fixup init dirty data errors +- bcache: prevent potential division by zero error +- bcache: check return value from btree_node_alloc_replacement() +- dm-delay: fix a race between delay_presuspend and delay_bio +- hv_netvsc: Mark VF as slave before exposing it to user-mode +- hv_netvsc: Fix race of register_netdevice_notifier and VF register +- USB: serial: option: add Luat Air72*U series products +- s390/dasd: protect device queue against concurrent access +- bcache: fixup multi-threaded bch_sectors_dirty_init() wake-up race +- bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in btree_gc_coalesce() +- swiotlb-xen: provide the "max_mapping_size" method +- ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA +- ASoC: simple-card: fixup asoc_simple_probe() error handling +- nfsd: lock_rename() needs both directories to live on the same fs +- ext4: using nofail preallocation in ext4_es_insert_extent() +- ext4: using nofail preallocation in ext4_es_insert_delayed_block() +- ext4: use pre-allocated es in __es_remove_extent() +- ext4: use pre-allocated es in __es_insert_extent() +- ext4: factor out __es_alloc_extent() and __es_free_extent() +- ext4: add a new helper to check if es must be kept +- MIPS: KVM: Fix a build warning about variable set but not used +- media: ccs: Correctly initialise try compose rectangle +- lockdep: Fix block chain corruption +- USB: dwc3: qcom: fix ACPI platform device leak +- USB: dwc3: qcom: fix resource leaks on probe deferral +- afs: Fix file locking on R/O volumes to operate in local mode +- afs: Return ENOENT if no cell DNS record can be found +- net: axienet: Fix check for partial TX checksum +- amd-xgbe: propagate the correct speed and duplex status +- amd-xgbe: handle the corner-case during tx completion +- amd-xgbe: handle corner-case during sfp hotplug +- arm/xen: fix xen_vcpu_info allocation alignment +- net/smc: avoid data corruption caused by decline +- net: usb: ax88179_178a: fix failed operations during ax88179_reset +- ipv4: Correct/silence an endian warning in __ip_do_redirect +- HID: fix HID device resource race between HID core and debugging support +- HID: core: store the unique system identifier in hid_device +- drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full +- ata: pata_isapnp: Add missing error check for devm_ioport_map() +- wireguard: use DEV_STATS_INC() +- drm/panel: simple: Fix Innolux G101ICE-L01 timings +- drm/panel: simple: Fix Innolux G101ICE-L01 bus flags +- drm/panel: auo,b101uan08.3: Fine tune the panel power sequence +- drm/panel: boe-tv101wum-nl6: Fine tune the panel power sequence +- afs: Make error on cell lookup failure consistent with OpenAFS +- afs: Fix afs_server_list to be cleaned up with RCU +- PCI: keystone: Drop __init from ks_pcie_add_pcie_{ep,port}() +- !5612 【OLK-5.10】Add Chengdu BeiZhongWangXin Technology N5/N6 Series Network Card Driver +- !5736 Backport 5.10.202 LTS patches from upstream +- !6033 gtp: fix use-after-free and null-ptr-deref in gtp_genl_dump_pdp() +- !6003 KVM: s390: vsie: fix race during shadow creation +- !6103 riscv: Sparse-Memory/vmemmap out-of-bounds fix +- !6065 v4 arm64 bpf trampoline for olk-5.10 +- !6116 wifi: rt2x00: restart beacon queue when hardware reset +- !6047 hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove +- vfio/pci: Lock external INTx masking ops +- !6108 udma: optimize latency for non-share-jfr mode +- !6101 vfio/pci: Disable auto-enable of exclusive INTx IRQ +- !5486 [OLK-5.10] support the AMD Zen5 Turin +- !5717 v2 fix CVE-2023-52587 +- !6050 wifi: mac80211: fix race condition on enabling fast-xmit +- !4923 mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions() +- xen/events: close evtchn after mapping cleanup +- wifi: rt2x00: restart beacon queue when hardware reset +- cifs: Fix UAF in cifs_demultiplex_thread() +- hns3 udma: optimize latency for non-share-jfr mode +- riscv: Sparse-Memory/vmemmap out-of-bounds fix +- vfio/pci: Disable auto-enable of exclusive INTx IRQ +- !6016 btrfs: don't drop extent_map for free space inode on write error +- !6031 nilfs2: fix potential bug in end_buffer_async_write +- !5847 ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal() +- mmc: mmci: stm32: fix DMA API overlapping mappings warning +- mmc: mmci: stm32: use a buffer for unaligned DMA requests +- !5803 fs/ntfs3: Fix an NULL dereference bug +- !5977 btrfs: dev-replace: properly validate device names +- !5921 ext4: fix double-free of blocks due to wrong extents moved_len +- !6029 ceph: prevent use-after-free in encode_cap_msg() +- !5973 EDAC/thunderx: Fix possible out-of-bounds string access +- !6052 fs/ntfs3: fix lbk-CVE-2023-52640 +- !6037 fix-CVE-2024-26706 +- !6040 nilfs2: fix data corruption in dsync block recovery for small block sizes +- config: Enable DYNAMIC_FTRACE_WITH_DIRECT_CALLS +- arm64: ftrace: Support direct call for no literal module functions +- arm64: ftrace: Add ftrace direct call support +- arm64: ftrace: Support long jump for ftrace direct call +- ftrace: Allow users to disable ftrace direct call +- bpf, arm64: Fix BTI type used for freplace attached functions +- bpf, arm64: Fixed a BTI error on returning to patched function +- bpf, arm64: Fix bpf trampoline instruction endianness +- bpf, arm64: Fix compile error in dummy_tramp() +- bpf, arm64: Mark dummy_tramp as global +- bpf, arm64: Add bpf trampoline for arm64 +- bpf, arm64: Implement bpf_arch_text_poke() for arm64 +- arm64: Add LDR (literal) instruction +- bpf, arm64: Adjust the offset of str/ldr(immediate) to positive number +- bpf, arm64: Optimize BPF store/load using arm64 str/ldr(immediate offset) +- arm64, insn: Add ldr/str with immediate offset +- x86/ibt,ftrace: Search for __fentry__ location +- !6017 drm/amdgpu: fix use-after-free bug +- fs/ntfs3: Fix oob in ntfs_listxattr +- fs/ntfs3: fix panic about slab-out-of-bounds caused by ntfs_list_ea() +- ntfs: Fix panic about slab-out-of-bounds caused by ntfs_listxattr() +- wifi: mac80211: fix race condition on enabling fast-xmit +- hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove +- !6020 net/sched: act_mirred: use the backlog for mirred ingress +- !5995 mm/swap: fix race when skipping swapcache +- nilfs2: fix data corruption in dsync block recovery for small block sizes +- !6006 fix CVE-2024-26669 +- parisc/unaligned: Fix emulate_ldw() breakage +- parisc/unaligned: Rewrite 64-bit inline assembly of emulate_ldd() +- parisc: Fix random data corruption from exception handler +- parisc/unaligned: Rewrite 32-bit inline assembly of emulate_sth() +- parisc/unaligned: Rewrite 32-bit inline assembly of emulate_ldd() +- parisc/unaligned: Rewrite inline assembly of emulate_ldw() +- parisc: Mark ex_table entries 32-bit aligned in uaccess.h +- parisc: Fix some apparent put_user() failures +- parisc: Implement __get/put_kernel_nofault() +- parisc: Drop strnlen_user() in favour of generic version +- parisc: Switch user access functions to signal errors in r29 instead of r8 +- parisc/unaligned: Rewrite inline assembly of emulate_ldh() +- parisc/unaligned: Use EFAULT fixup handler in unaligned handlers +- !5969 fbdev: savage: Error out if pixclock equals zero +- drivers: add Chengdu BeiZhongWangXin Technology N5/N6 Series Network Card Driver +- gtp: fix use-after-free and null-ptr-deref in gtp_genl_dump_pdp() +- !5976 dm-crypt: don't modify the data when using authenticated encryption +- objtool/x86: Use asm/nops.h +- !6011 udma: fix a bug in udma dfx +- nilfs2: fix potential bug in end_buffer_async_write +- !6018 v2 IB/hfi1: Fix sdma.h tx->num_descs off-by-one error +- ceph: prevent use-after-free in encode_cap_msg() +- !5979 mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again +- !5970 fixup CVE-2024-26751 +- net/sched: act_mirred: use the backlog for mirred ingress +- IB/hfi1: Fix sdma.h tx->num_descs off-by-one error +- drm/amdgpu: fix use-after-free bug +- !5950 RDMA/qedr: Fix qedr_create_user_qp error flow +- btrfs: don't drop extent_map for free space inode on write error +- !5998 net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame() +- !5996 mptcp: fix double-free on socket dismantle +- !5993 ipv6: sr: fix possible use-after-free and null-ptr-deref +- !5763 CVE-2024-26684 bugfix for OLK-5.10 +- hns3 udma: fix the dfx structure is deleted concurrently. +- !5975 udma: fix a bug in QP creation +- net/sched: flower: Fix kabi change +- net/sched: flower: Fix chain template offload +- KVM: s390: vsie: fix race during shadow creation +- net: hsr: remove WARN_ONCE() in send_hsr_supervision_frame() +- mptcp: fix double-free on socket dismantle +- mm/swap: fix race when skipping swapcache +- ipv6: sr: fix possible use-after-free and null-ptr-deref +- !5901 CVE-2024-26695 +- !5853 dmaengine: ti: edma: Add some null pointer checks to the edma_probe +- !5930 RDMA/srpt: Support specifying the srpt_service_guid parameter +- !5758 tunnels: fix out of bounds access when building IPv6 PMTU error +- !5812 afs: Increase buffer size in afs_update_volume_status() +- !5852 CVE-2024-26809 +- mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again +- btrfs: dev-replace: properly validate device names +- dm-crypt: don't modify the data when using authenticated encryption +- hns3 udma: modify the process of create qp +- EDAC/thunderx: Fix possible out-of-bounds string access +- !5943 CVE-2021-46926 +- interconnect: qcom: Add support for mask-based BCMs +- netfilter: nf_tables: disable toggling dormant table state more than once +- netfilter: nf_tables: fix table flag updates +- netfilter: nftables: update table flags from the commit phase +- drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox +- drm/amdgpu: fix error handling in amdgpu_bo_list_get() +- drm/amd/pm: Handle non-terminated overdrive commands. +- ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks +- ext4: correct the start block of counting reserved clusters +- ext4: correct offset of gdb backup in non meta_bg group to update_backups +- ext4: apply umask if ACL support is disabled +- Revert "net: r8169: Disable multicast filter for RTL8168H and RTL8107E" +- media: qcom: camss: Fix vfe_get() error jump +- mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors +- nfsd: fix file memleak on client_opens_release +- media: venus: hfi: add checks to handle capabilities from firmware +- media: venus: hfi: fix the check to handle session buffer requirement +- media: venus: hfi_parser: Add check to keep the number of codecs within range +- media: sharp: fix sharp encoding +- media: lirc: drop trailing space from scancode transmit +- f2fs: avoid format-overflow warning +- i2c: i801: fix potential race in i801_block_transaction_byte_by_byte +- net: phylink: initialize carrier state at creation +- net: dsa: lan9303: consequently nested-lock physical MDIO +- i2c: designware: Disable TX_EMPTY irq while waiting for block length byte +- lsm: fix default return value for inode_getsecctx +- lsm: fix default return value for vm_enough_memory +- Revert ncsi: Propagate carrier gain/loss events to the NCSI controller +- arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size +- arm64: dts: qcom: ipq6018: switch TCSR mutex to MMIO +- PCI: exynos: Don't discard .remove() callback +- Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE +- Bluetooth: btusb: Add RTW8852BE device 13d3:3570 to device tables +- bluetooth: Add device 13d3:3571 to device tables +- bluetooth: Add device 0bda:887b to device tables +- Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0cb8:0xc559 +- cpufreq: stats: Fix buffer overflow detection in trans_stats() +- tty: serial: meson: fix hard LOCKUP on crtscts mode +- serial: meson: Use platform_get_irq() to get the interrupt +- tty: serial: meson: retrieve port FIFO size from DT +- serial: meson: remove redundant initialization of variable id +- ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC +- ALSA: hda/realtek - Add Dell ALC295 to pin fall back table +- ALSA: info: Fix potential deadlock at disconnection +- xhci: Enable RPM on controllers that support low-power states +- parisc/pgtable: Do not drop upper 5 address bits of physical address +- parisc: Prevent booting 64-bit kernels on PA1.x machines +- i3c: master: cdns: Fix reading status register +- mtd: cfi_cmdset_0001: Byte swap OTP info +- mm/memory_hotplug: use pfn math in place of direct struct page manipulation +- mm/cma: use nth_page() in place of direct struct page manipulation +- dmaengine: stm32-mdma: correct desc prep when channel running +- mcb: fix error handling for different scenarios when parsing +- i2c: core: Run atomic i2c xfer when !preemptible +- kernel/reboot: emergency_restart: Set correct system_state +- quota: explicitly forbid quota files from being encrypted +- PCI: keystone: Don't discard .probe() callback +- PCI: keystone: Don't discard .remove() callback +- genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware +- mmc: meson-gx: Remove setting of CMD_CFG_ERROR +- wifi: ath11k: fix htt pktlog locking +- wifi: ath11k: fix dfs radar event locking +- wifi: ath11k: fix temperature event locking +- ima: detect changes to the backing overlay file +- firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit +- btrfs: don't arbitrarily slow down delalloc if we're committing +- rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects +- PM: hibernate: Clean up sync_read handling in snapshot_write_next() +- PM: hibernate: Use __get_safe_page() rather than touching the list +- arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM +- PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common() +- mmc: sdhci_am654: fix start loop index for TAP value parsing +- mmc: vub300: fix an error code +- clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks +- clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks +- parisc/pdc: Add width field to struct pdc_model +- arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer +- ACPI: resource: Do IRQ override on TongFang GMxXGxx +- watchdog: move softlockup_panic back to early_param +- PCI/sysfs: Protect driver's D3cold preference from user space +- hvc/xen: fix error path in xen_hvc_init() to always register frontend driver +- hvc/xen: fix console unplug +- tty/sysrq: replace smp_processor_id() with get_cpu() +- audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare() +- audit: don't take task_lock() in audit_exe_compare() code path +- KVM: x86: Ignore MSR_AMD64_TW_CFG access +- KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space +- scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers +- scsi: mpt3sas: Fix loop logic +- bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END +- bpf: Fix check_stack_write_fixed_off() to correctly spill imm +- randstruct: Fix gcc-plugin performance mode to stay in group +- powerpc/perf: Fix disabling BHRB and instruction sampling +- media: venus: hfi: add checks to perform sanity on queue pointers +- cifs: fix check of rc in function generate_smb3signingkey +- cifs: spnego: add ';' in HOST_KEY_LEN +- tools/power/turbostat: Fix a knl bug +- macvlan: Don't propagate promisc change to lower dev in passthru +- net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors +- net/mlx5_core: Clean driver version and name +- net/mlx5e: fix double free of encap_header +- net: stmmac: fix rx budget limit check +- netfilter: nf_conntrack_bridge: initialize err to 0 +- net: ethernet: cortina: Fix MTU max setting +- net: ethernet: cortina: Handle large frames +- net: ethernet: cortina: Fix max RX frame define +- bonding: stop the device in bond_setup_by_slave() +- ptp: annotate data-race around q->head and q->tail +- xen/events: fix delayed eoi list handling +- ppp: limit MRU to 64K +- tipc: Fix kernel-infoleak due to uninitialized TLV value +- tty: Fix uninit-value access in ppp_sync_receive() +- gfs2: Silence "suspicious RCU usage in gfs2_permission" warning +- SUNRPC: Fix RPC client cleaned up the freed pipefs dentries +- NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO +- SUNRPC: Add an IS_ERR() check back to where it was +- SUNRPC: ECONNRESET might require a rebind +- xhci: turn cancelled td cleanup to its own function +- wifi: iwlwifi: Use FW rate for non-data frames +- pwm: Fix double shift bug +- drm/amdgpu: fix software pci_unplug on some chips +- ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings +- kgdb: Flush console before entering kgdb on panic +- drm/amd/display: Avoid NULL dereference of timing generator +- media: imon: fix access to invalid resource for the second interface +- media: cobalt: Use FIELD_GET() to extract Link Width +- gfs2: fix an oops in gfs2_permission +- gfs2: ignore negated quota changes +- media: vivid: avoid integer overflow +- media: gspca: cpia1: shift-out-of-bounds in set_flicker +- i2c: sun6i-p2wi: Prevent potential division by zero +- 9p/trans_fd: Annotate data-racy writes to file::f_flags +- usb: gadget: f_ncm: Always set current gadget in ncm_bind() +- tty: vcc: Add check for kstrdup() in vcc_probe() +- exfat: support handle zero-size directory +- HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W +- misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller +- scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup() +- atm: iphase: Do PCI error checks on own line +- PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields +- ALSA: hda: Fix possible null-ptr-deref when assigning a stream +- ARM: 9320/1: fix stack depot IRQ stack filter +- HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround +- jfs: fix array-index-out-of-bounds in diAlloc +- jfs: fix array-index-out-of-bounds in dbFindLeaf +- fs/jfs: Add validity check for db_maxag and db_agpref +- fs/jfs: Add check for negative db_l2nbperpage +- RDMA/hfi1: Use FIELD_GET() to extract Link Width +- ASoC: soc-card: Add storage for PCI SSID +- selftests/efivarfs: create-read: fix a resource leak +- drm/panel: st7703: Pick different reset sequence +- drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference +- drm/panel: fix a possible null pointer dereference +- drm/amdgpu: Fix potential null pointer derefernce +- drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga +- drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7 +- drm/msm/dp: skip validity check for DP CTS EDID checksum +- drm/komeda: drop all currently held locks if deadlock happens +- platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e +- Bluetooth: Fix double free in hci_conn_cleanup +- Bluetooth: btusb: Add date->evt_skb is NULL check +- wifi: ath10k: Don't touch the CE interrupt registers after power up +- net: annotate data-races around sk->sk_dst_pending_confirm +- net: annotate data-races around sk->sk_tx_queue_mapping +- wifi: ath10k: fix clang-specific fortify warning +- wifi: ath9k: fix clang-specific fortify warnings +- bpf: Detect IP == ksym.end as part of BPF program +- wifi: mac80211: don't return unset power in ieee80211_get_tx_power() +- wifi: mac80211_hwsim: fix clang-specific fortify warning +- x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size +- clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware +- clocksource/drivers/timer-imx-gpt: Fix potential memory leak +- perf/core: Bail out early if the request AUX area is out of bound +- locking/ww_mutex/test: Fix potential workqueue corruption +- ARM: ep93xx: Add terminator to gpiod_lookup_table +- fbdev: savage: Error out if pixclock equals zero +- !5781 ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found() +- !5884 KVM: arm64: vgic-its: Fix CVE-2024-26598 fix patch issue +- RDMA/qedr: Fix qedr_create_user_qp error flow +- !5831 fbdev: sis: Error out if pixclock equals zero +- !5861 ksmbd: fix uaf in smb20_oplock_break_ack +- ALSA: hda: intel-sdw-acpi: harden detection of controller +- !5911 CVE-2023-52484 +- !5895 i2c: i801: Fix block process call transactions +- RDMA/srpt: Support specifying the srpt_service_guid parameter +- ext4: fix double-free of blocks due to wrong extents moved_len +- !5870 drivers/amd/pm: fix a use-after-free in kv_parse_power_table +- !5863 CVE-2024-26788 +- iommu/arm-smmu-v3: Fix soft lockup triggered by arm_smmu_mm_invalidate_range +- iommu/arm-smmu-v3: Fix size calculation in arm_smmu_mm_invalidate_range() +- !5811 Fixed CVE-2021-47037 +- crypto: ccp - Fix null pointer dereference in __sev_platform_shutdown_locked +- !5808 nilfs2: fix hang in nilfs_lookup_dirty_data_buffers() +- i2c: i801: Fix block process call transactions +- !5845 [OLK 5.10] bugfixes of vf id of mailbox and port duplex configure +- !5747 ksmbd: fix global oob in ksmbd_nl_policy +- !5832 CVE-2023-52467 +- KVM: arm64: vgic-its: Fix CVE-2024-26598 fix patch issue +- !5795 netfilter: nft_limit: reject configurations that cause integer overflow +- !5751 net: atlantic: Fix DMA mapping for PTP hwts ring +- drivers/amd/pm: fix a use-after-free in kv_parse_power_table +- dmaengine: fsl-qdma: init irq after reg initialization +- ksmbd: fix uaf in smb20_oplock_break_ack +- dmaengine: ti: edma: Add some null pointer checks to the edma_probe +- netfilter: nft_set_pipapo: release elements in clone only from destroy path +- netfilter: nft_set_pipapo: remove scratch_aligned pointer +- netfilter: nft_set_pipapo: add helper to release pcpu scratch area +- netfilter: nft_set_pipapo: store index in scratch maps +- ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal() +- net: hns3: fix port duplex configure error in IMP reset +- net: hns3: add checking for vf id of mailbox +- mfd: syscon: Fix null pointer dereference in of_syscon_register() +- fbdev: sis: Error out if pixclock equals zero +- !5785 net: qualcomm: rmnet: fix global oob in rmnet_policy +- !5789 perf/x86/lbr: Filter vsyscall addresses +- !5780 bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS +- !5787 bpf: fix check for attempt to corrupt spilled pointer +- !5770 v2 scsi: hisi_sas: Fixed some issues in the SAS +- afs: Increase buffer size in afs_update_volume_status() +- ASoC: q6afe-clocks: fix reprobing of the driver +- ASoC: q6afe-clocks: fix warning on symbol scope +- nilfs2: fix hang in nilfs_lookup_dirty_data_buffers() +- !5794 um: time-travel: fix time corruption +- fs/ntfs3: Fix an NULL dereference bug +- !5773 patches for CVE-2023-52617 +- !5772 firmware: arm_scmi: Check mailbox/SMT channel for consistency +- !5788 v2 Patches to Fix CVE-2023-52454 +- netfilter: nft_limit: reject configurations that cause integer overflow +- um: time-travel: fix time corruption +- perf/x86/lbr: Filter vsyscall addresses +- nvmet-tcp: Fix the H2C expected PDU len calculation +- nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length +- bpf: fix check for attempt to corrupt spilled pointer +- net: qualcomm: rmnet: fix global oob in rmnet_policy +- ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found() +- bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS +- !5724 ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs +- PCI: switchtec: Fix an error handling path in switchtec_pci_probe() +- PCI: switchtec: Fix stdev_release() crash after surprise hot remove +- firmware: arm_scmi: Check mailbox/SMT channel for consistency +- !5738 [OLK 5.10] net: hns3: fix port vlan filter not disabled problem in dynamic vlan mode +- !5757 inet: read sk->sk_family once in inet_recv_error() +- scsi: hisi_sas: Add cond_resched() to cq_thread_v3_hw() +- scsi: hisi_sas: Default enable interrupt coalescing +- net: stmmac: xgmac: fix a typo of register name in DPP safety handling +- net: stmmac: xgmac: use #define for string constants +- net: stmmac: xgmac: fix handling of DPP safety error for DMA channels +- tunnels: fix out of bounds access when building IPv6 PMTU error +- inet: read sk->sk_family once in inet_recv_error() +- !5745 v2 iommu/arm-smmu-v3: fix using uninitialized or unchecked symbol +- net: atlantic: Fix DMA mapping for PTP hwts ring +- ksmbd: fix global oob in ksmbd_nl_policy +- iommu/arm-smmu-v3: fix using uninitialized or unchecked symbol +- net: hns3: fix port vlan filter not disabled problem in dynamic vlan mode +- !5698 sr9800: Add check for usbnet_get_endpoints +- !5711 Backport 5.10.201 LTS patches from upstream +- !5728 fix CVE-2021-47101 +- btrfs: use u64 for buffer sizes in the tree search ioctls +- Revert "mmc: core: Capture correct oemid-bits for eMMC cards" +- tracing/kprobes: Fix the order of argument descriptions +- fbdev: fsl-diu-fb: mark wr_reg_wa() static +- fbdev: imsttfb: fix a resource leak in probe +- fbdev: imsttfb: Fix error path of imsttfb_probe() +- spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies +- drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE +- x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot +- x86: Share definition of __is_canonical_address() +- netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses +- netfilter: nft_redir: use `struct nf_nat_range2` throughout and deduplicate eval call-backs +- netfilter: xt_recent: fix (increase) ipv6 literal buffer length +- r8169: respect userspace disabling IFF_MULTICAST +- tg3: power down device only on SYSTEM_POWER_OFF +- net/smc: put sk reference if close work was canceled +- net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc +- net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs +- Fix termination state for idr_for_each_entry_ul() +- net: r8169: Disable multicast filter for RTL8168H and RTL8107E +- dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses. +- dccp: Call security_inet_conn_request() after setting IPv4 addresses. +- tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING +- hsr: Prevent use after free in prp_create_tagged_frame() +- llc: verify mac len before reading mac header +- Input: synaptics-rmi4 - fix use after free in rmi_unregister_function() +- pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume +- pwm: sti: Reduce number of allocations and drop usage of chip_data +- pwm: sti: Avoid conditional gotos +- regmap: prevent noinc writes from clobbering cache +- media: dvb-usb-v2: af9035: fix missing unlock +- media: cedrus: Fix clock/reset sequence +- media: vidtv: mux: Add check and kfree for kstrdup +- media: vidtv: psi: Add check for kstrdup +- media: s3c-camif: Avoid inappropriate kfree() +- media: bttv: fix use after free error due to btv->timeout timer +- media: i2c: max9286: Fix some redundant of_node_put() calls +- pcmcia: ds: fix possible name leak in error path in pcmcia_device_add() +- pcmcia: ds: fix refcount leak in pcmcia_device_add() +- pcmcia: cs: fix possible hung task and memory leak pccardd() +- rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call +- i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs +- perf hist: Add missing puts to hist__account_cycles +- perf machine: Avoid out of bounds LBR memory read +- usb: host: xhci-plat: fix possible kernel oops while resuming +- xhci: Loosen RPM as default policy to cover for AMD xHC 1.1 +- powerpc/pseries: fix potential memory leak in init_cpu_associativity() +- powerpc/imc-pmu: Use the correct spinlock initializer. +- powerpc/xive: Fix endian conversion size +- powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro +- modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host +- f2fs: fix to initialize map.m_pblk in f2fs_precache_extents() +- dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc() +- USB: usbip: fix stub_dev hub disconnect +- tools: iio: iio_generic_buffer ensure alignment +- tools: iio: iio_generic_buffer: Fix some integer type and calculation +- tools: iio: privatize globals and functions in iio_generic_buffer.c file +- misc: st_core: Do not call kfree_skb() under spin_lock_irqsave() +- dmaengine: ti: edma: handle irq_of_parse_and_map() errors +- usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency +- livepatch: Fix missing newline character in klp_resolve_symbols() +- leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu' +- leds: pwm: Don't disable the PWM when the LED should be off +- ASoC: ams-delta.c: use component after check +- padata: Fix refcnt handling in padata_free_shell() +- padata: Convert from atomic_t to refcount_t on parallel_data->refcnt +- ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails +- HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event() +- HID: logitech-hidpp: Revert "Don't restart communication if not necessary" +- HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only +- HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk +- Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures" +- sh: bios: Revive earlyprintk support +- hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip +- RDMA/hfi1: Workaround truncation compilation error +- scsi: ufs: core: Leave space for '0' in utf8 desc string +- ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe +- IB/mlx5: Fix rdma counter binding for RAW QP +- ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described +- ext4: move 'ix' sanity check to corrent position +- ARM: 9321/1: memset: cast the constant byte to unsigned char +- hid: cp2112: Fix duplicate workqueue initialization +- crypto: qat - increase size of buffers +- crypto: qat - mask device capabilities with soft straps +- crypto: caam/jr - fix Chacha20 + Poly1305 self test failure +- crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure +- nd_btt: Make BTT lanes preemptible +- libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value +- hwrng: geode - fix accessing registers +- selftests/resctrl: Ensure the benchmark commands fits to its array +- selftests/pidfd: Fix ksft print formats +- clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped +- firmware: ti_sci: Mark driver as non removable +- xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled +- drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map() +- drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe() +- drm/mediatek: Fix iommu fault during crtc enabling +- drm/bridge: tc358768: Fix bit updates +- drm/bridge: tc358768: Disable non-continuous clock mode +- drm/bridge: tc358768: Fix use of uninitialized variable +- drm/rockchip: vop: Fix call to crtc reset helper +- drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs +- hwmon: (coretemp) Fix potentially truncated sysfs attribute name +- hwmon: (axi-fan-control) Fix possible NULL pointer dereference +- hwmon: (axi-fan-control) Support temperature vs pwm points +- platform/x86: wmi: Fix opening of char device +- platform/x86: wmi: remove unnecessary initializations +- platform/x86: wmi: Fix probe failure when failing to register WMI devices +- clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM +- clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data +- clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data +- clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data +- clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data +- clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data +- clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data +- clk: npcm7xx: Fix incorrect kfree +- clk: ti: fix double free in of_ti_divider_clk_setup() +- clk: ti: change ti_clk_register[_omap_hw]() API +- clk: ti: Update component clocks to use ti_dt_clk_name() +- clk: ti: Update pll and clockdomain clocks to use ti_dt_clk_name() +- clk: ti: Add ti_dt_clk_name() helper to use clock-output-names +- clk: keystone: pll: fix a couple NULL vs IS_ERR() checks +- spi: nxp-fspi: use the correct ioremap function +- clk: linux/clk-provider.h: fix kernel-doc warnings and typos +- clk: asm9260: use parent index to link the reference clock +- clk: imx: imx8mq: correct error handling path +- clk: imx: Select MXC_CLK for CLK_IMX8QXP +- clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src +- clk: qcom: gcc-sm8150: use ARRAY_SIZE instead of specifying num_parents +- clk: qcom: mmcc-msm8998: Fix the SMMU GDSC +- clk: qcom: mmcc-msm8998: Set bimc_smmu_gdsc always on +- clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks +- clk: qcom: mmcc-msm8998: Add hardware clockgating registers to some clks +- clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies +- regmap: debugfs: Fix a erroneous check after snprintf() +- ipv6: avoid atomic fragment on GSO packets +- ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias() +- tcp: fix cookie_init_timestamp() overflows +- chtls: fix tp->rcv_tstamp initialization +- r8169: fix rare issue with broken rx after link-down on RTL8125 +- r8169: use tp_to_dev instead of open code +- thermal: core: prevent potential string overflow +- PM / devfreq: rockchip-dfi: Make pmu regmap mandatory +- can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on() +- can: dev: can_restart(): don't crash kernel if carrier is OK +- wifi: rtlwifi: fix EDCA limit set by BT coexistence +- tcp_metrics: do not create an entry from tcp_init_metrics() +- tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics() +- tcp_metrics: add missing barriers on delete +- wifi: mt76: mt7603: rework/fix rx pse hang check +- wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file() +- net: spider_net: Use size_add() in call to struct_size() +- tipc: Use size_add() in calls to struct_size() +- mlxsw: Use size_mul() in call to struct_size() +- gve: Use size_add() in call to struct_size() +- overflow: Implement size_t saturating arithmetic helpers +- tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed +- udp: add missing WRITE_ONCE() around up->encap_rcv +- i40e: fix potential memory leaks in i40e_remove() +- genirq/matrix: Exclude managed interrupts in irq_matrix_allocated() +- pstore/platform: Add check for kstrdup +- x86/boot: Fix incorrect startup_gdt_descr.size +- futex: Don't include process MM in futex key on no-MMU +- x86/srso: Fix SBPB enablement for (possible) future fixed HW +- vfs: fix readahead(2) on block devices +- asix: fix wrong return value in asix_check_host_enable() +- asix: fix uninit-value in asix_mdio_read() +- net: asix: fix uninit value bugs +- ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs +- !5642 btrfs: don't abort filesystem when attempting to snapshot deleted subvolume +- !5712 [sync] PR-5672: arm64/mpam_ctrlmon: Update ctrl group config with rdtgrp's partid +- IB/ipoib: Fix mcast list locking +- RDMA/IPoIB: Fix error code return in ipoib_mcast_join +- !5189 vhost_vdpa: Fix the error of not executing atomic_dec +- !5530 net: Fix CVE-2024-26641 +- !5532 ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim() +- arm64/mpam: Allocate new partid for the created ctrl group +- arm64/mpam_ctrlmon: Update ctrl group config with rdtgrp's partid +- !5670 cpufreq: CPPC: Eliminate the impact of cpc_read() latency error +- !5506 ext4: dio: Put endio under irq context for overwrite +- !5507 ext4: Validate inode pa before using preallocation blocks +- sr9800: Add check for usbnet_get_endpoints +- !5684 Backport 5.10.200 LTS patches from upstream +- ALSA: hda: intel-dsp-config: Fix JSL Chromebook quirk detection +- tty: 8250: Add support for Intashield IS-100 +- tty: 8250: Add support for Brainboxes UP cards +- tty: 8250: Add support for additional Brainboxes UC cards +- tty: 8250: Remove UC-257 and UC-431 +- usb: raw-gadget: properly handle interrupted requests +- usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" compatibility +- PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device +- can: isotp: isotp_sendmsg(): fix TX state detection and wait behavior +- can: isotp: isotp_bind(): do not validate unused address information +- can: isotp: add local echo tx processing and tx without FC +- can: isotp: handle wait_event_interruptible() return values +- can: isotp: check CAN address family in isotp_bind() +- can: isotp: isotp_bind(): return -EINVAL on incorrect CAN ID formatting +- can: isotp: set max PDU size to 64 kByte +- can: isotp: Add error message if txqueuelen is too small +- can: isotp: add symbolic error message to isotp_module_init() +- can: isotp: change error format from decimal to symbolic error names +- powerpc/mm: Fix boot crash with FLATMEM +- net: chelsio: cxgb4: add an error code check in t4_load_phy_fw +- platform/mellanox: mlxbf-tmfifo: Fix a warning message +- scsi: mpt3sas: Fix in error path +- fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit() +- ASoC: rt5650: fix the wrong result of key button +- netfilter: nfnetlink_log: silence bogus compiler warning +- spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0 +- fbdev: atyfb: only use ioremap_uc() on i386 and ia64 +- Input: synaptics-rmi4 - handle reset delay when using SMBus trsnsport +- dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe +- irqchip/stm32-exti: add missing DT IRQ flag translation +- net: sched: cls_u32: Fix allocation size in u32_init() +- x86: Fix .brk attribute in linker script +- objtool/x86: add missing embedded_insn check +- x86/mm: Fix RESERVE_BRK() for older binutils +- x86/mm: Simplify RESERVE_BRK() +- smbdirect: missing rc checks while waiting for rdma events +- x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility +- iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds +- iio: adc: xilinx: use more devres helpers and remove remove() +- iio: adc: xilinx: use devm_krealloc() instead of kfree() + kcalloc() +- iio: adc: xilinx: use helper variable for &pdev->dev +- clk: Sanitize possible_parent_show to Handle Return Value of of_clk_get_parent_name +- sparc32: fix a braino in fault handling in csum_and_copy_..._user() +- nvmem: imx: correct nregs for i.MX6UL +- nvmem: imx: correct nregs for i.MX6SLL +- nvmem: imx: correct nregs for i.MX6ULL +- misc: fastrpc: Clean buffers on remote invocation failures +- tracing/kprobes: Fix the description of variable length arguments +- i2c: aspeed: Fix i2c bus hang in slave read +- i2c: stm32f7: Fix PEC handling in case of SMBUS transfers +- i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node() +- i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node() +- i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node() +- iio: exynos-adc: request second interupt only when touchscreen mode is used +- kasan: print the original fault addr when access invalid shadow +- i40e: Fix wrong check for I40E_TXR_FLAGS_WB_ON_ITR +- gtp: fix fragmentation needed check with gso +- gtp: uapi: fix GTPA_MAX +- tcp: fix wrong RTO timeout when received SACK reneging +- r8152: Release firmware if we have an error in probe +- r8152: Cancel hw_phy_work if we have an error in probe +- r8152: Run the unload routine if we have errors during probe +- r8152: Increase USB control msg timeout to 5000ms as per spec +- net: usb: smsc95xx: Fix uninit-value access in smsc95xx_read_reg +- net: ieee802154: adf7242: Fix some potential buffer overflow in adf7242_stats_show() +- igc: Fix ambiguity in the ethtool advertising +- neighbour: fix various data-races +- igb: Fix potential memory leak in igb_add_ethtool_nfc_entry +- treewide: Spelling fix in comment +- r8169: fix the KCSAN reported data race in rtl_rx while reading desc->opts1 +- r8169: fix the KCSAN reported data-race in rtl_tx while reading TxDescArray[entry].opts1 +- mmc: renesas_sdhi: use custom mask for TMIO_MASK_ALL +- mm/page_alloc: correct start page when guard page debug is enabled +- virtio-mmio: fix memory leak of vm_dev +- virtio_balloon: Fix endless deflation and inflation on arm64 +- mcb-lpc: Reallocate memory region to avoid memory overlapping +- mcb: Return actual parsed size when reading chameleon table +- selftests/ftrace: Add new test case which checks non unique symbol +- cpufreq: CPPC: Eliminate the impact of cpc_read() latency error +- !5580 CVE-2023-52622 +- btrfs: don't abort filesystem when attempting to snapshot deleted subvolume +- !5617 v4 Fix I/O high when memory almost met memcg limit +- !5518 dm: revert partial fix for redundant bio-based IO accounting +- !5493 arm64/mpam: Fix repeated enabling in mpam_enable() +- !5566 tracing: Ensure visibility when inserting an element into tracing_map +- !5606 mm/mlock: return EINVAL for illegal user memory range in mlock +- mm/readahead: don't decrease mmap_miss when folio has workingset flags +- mm/readahead: break read-ahead loop if filemap_add_folio return -ENOMEM +- !5499 Backport 5.10.199 LTS patches from upstream +- mm/mlock: return EINVAL for illegal user memory range in mlock +- ext4: avoid online resizing failures due to oversized flex bg +- ext4: unify the type of flexbg_size to unsigned int +- ext4: remove unnecessary check from alloc_flex_gd() +- !5473 jfs: fix array-index-out-of-bounds in dbAdjTree +- !5553 mm: ksm: fix use-after-free kasan report in ksm_might_need_to_copy +- tracing: Ensure visibility when inserting an element into tracing_map +- !5431 block/rnbd-srv: Check for unlikely string overflow +- !5537 netfilter: nf_tables: disallow anonymous set with timeout flag +- !5527 netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout +- mm: ksm: fix use-after-free kasan report in ksm_might_need_to_copy +- vhost_vdpa: Fix the error of not executing atomic_dec +- netfilter: nf_tables: disallow anonymous set with timeout flag +- ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim() +- ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv() +- ip6_tunnel: use dev_sw_netstats_rx_add() +- netfilter: nf_tables: mark set as dead when unbinding anonymous set with timeout +- dm: revert partial fix for redundant bio-based IO accounting +- ext4: Validate inode pa before using preallocation blocks +- ext4: Optimize endio process for DIO overwrites +- iomap: Add a IOMAP_DIO_MAY_INLINE_COMP flag +- iomap: pass a flags argument to iomap_dio_rw +- iomap: rename the flags variable in __iomap_dio_rw +- iomap: add IOMAP_DIO_INLINE_COMP +- iomap: use an unsigned type for IOMAP_DIO_* defines +- iomap: cleanup up iomap_dio_bio_end_io() +- Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name +- Bluetooth: hci_sock: fix slab oob read in create_monitor_event +- phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins +- phy: mapphone-mdm6600: Fix runtime PM for remove +- phy: mapphone-mdm6600: Fix runtime disable on probe +- ASoC: pxa: fix a memory leak in probe() +- gpio: vf610: set value before the direction to avoid a glitch +- platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events +- platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e +- s390/pci: fix iommu bitmap allocation +- USB: serial: option: add Fibocom to DELL custom modem FM101R-GL +- USB: serial: option: add entry for Sierra EM9191 with new firmware +- USB: serial: option: add Telit LE910C4-WWX 0x1035 composition +- nvme-rdma: do not try to stop unallocated queues +- nvme-pci: add BOGUS_NID for Intel 0a54 device +- ACPI: irq: Fix incorrect return value in acpi_register_gsi() +- pNFS: Fix a hang in nfs4_evict_inode() +- Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()" +- mmc: core: Capture correct oemid-bits for eMMC cards +- mmc: core: sdio: hold retuning if sdio in 1-bit mode +- mtd: physmap-core: Restore map_rom fallback +- mtd: spinand: micron: correct bitmask for ecc status +- mtd: rawnand: arasan: Ensure program page operations are successful +- mtd: rawnand: marvell: Ensure program page operations are successful +- mtd: rawnand: qcom: Unmap the right resource upon probe failure +- Bluetooth: hci_event: Fix using memcmp when comparing keys +- net/mlx5: Handle fw tracer change ownership event based on MTRC +- platform/x86: touchscreen_dmi: Add info for the Positivo C4128B +- HID: multitouch: Add required quirk for Synaptics 0xcd7e device +- btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c +- drm: panel-orientation-quirks: Add quirk for One Mix 2S +- sky2: Make sure there is at least one frag_addr available +- regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()" +- wifi: cfg80211: avoid leaking stack data into trace +- wifi: mac80211: allow transmitting EAPOL frames with tainted key +- wifi: cfg80211: Fix 6GHz scan configuration +- Bluetooth: hci_core: Fix build warnings +- Bluetooth: Avoid redundant authentication +- HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event +- tracing: relax trace_event_eval_update() execution with cond_resched() +- ata: libata-eh: Fix compilation warning in ata_eh_link_report() +- gpio: timberdale: Fix potential deadlock on &tgpio->lock +- overlayfs: set ctime when setting mtime and atime +- i2c: mux: Avoid potential false error message in i2c_mux_add_adapter +- btrfs: initialize start_slot in btrfs_log_prealloc_extents +- btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1 +- ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone +- serial: 8250_omap: Fix errors with no_console_suspend +- serial: 8250: omap: Fix imprecise external abort for omap_8250_pm() +- xhci: track port suspend state correctly in unsuccessful resume cases +- xhci: decouple usb2 port resume and get_port_status request handling +- xhci: clear usb2 resume related variables in one place. +- xhci: rename resume_done to resume_timestamp +- xhci: move port specific items such as state completions to port structure +- xhci: cleanup xhci_hub_control port references +- usb: core: Track SuperSpeed Plus GenXxY +- selftests/mm: fix awk usage in charge_reserved_hugetlb.sh and hugetlb_reparenting_test.sh that may cause error +- selftests/vm: make charge_reserved_hugetlb.sh work with existing cgroup setting +- ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA +- ACPI: resource: Skip IRQ override on ASUS ExpertBook B1502CBA +- ACPI: resource: Skip IRQ override on Asus Expertbook B2402CBA +- ACPI: resource: Add Asus ExpertBook B2502 to Asus quirks +- ACPI: resource: Skip IRQ override on Asus Vivobook S5602ZA +- ACPI: resource: Add ASUS model S5402ZA to quirks +- ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA +- ACPI: resources: Add DMI-based legacy IRQ override quirk +- thunderbolt: Workaround an IOMMU fault on certain systems with Intel Maple Ridge +- net: pktgen: Fix interface flags printing +- netfilter: nft_set_rbtree: .deactivate fails if element has expired +- neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section +- net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve +- net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register() +- i40e: prevent crash on probe if hw registers have invalid values +- net: usb: smsc95xx: Fix an error code in smsc95xx_reset() +- ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr +- tun: prevent negative ifindex +- tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb +- tcp: fix excessive TLP and RACK timeouts from HZ rounding +- net: rfkill: gpio: prevent value glitch during probe +- net: ipv6: fix return value check in esp_remove_trailer +- net: ipv4: fix return value check in esp_remove_trailer +- qed: fix LL2 RX buffer allocation +- drm/i915: Retry gtt fault when out of fence registers +- netfilter: nft_payload: fix wrong mac header matching +- tcp: check mptcp-level constraints for backlog coalescing +- KVM: x86: Mask LVTPC when handling a PMI +- regmap: fix NULL deref on lookup +- ice: reset first in crash dump kernels +- ice: fix over-shifted variable +- Bluetooth: avoid memcmp() out of bounds warning +- Bluetooth: hci_event: Fix coding style +- Bluetooth: vhci: Fix race when opening vhci device +- Bluetooth: Fix a refcnt underflow problem for hci_conn +- Bluetooth: Reject connection with the device which has same BD_ADDR +- Bluetooth: hci_event: Ignore NULL link key +- usb: hub: Guard against accesses to uninitialized BOS descriptors +- Documentation: sysctl: align cells in second content column +- mm/memory_hotplug: rate limit page migration warnings +- lib/Kconfig.debug: do not enable DEBUG_PREEMPT by default +- dev_forward_skb: do not scrub skb mark within the same name space +- RDMA/srp: Fix srp_abort() +- RDMA/srp: Set scmnd->result only when scmnd is not NULL +- x86/alternatives: Disable KASAN in apply_alternatives() +- powerpc/64e: Fix wrong test in __ptep_test_and_clear_young() +- powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE +- dmaengine: mediatek: Fix deadlock caused by synchronize_irq() +- usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call +- usb: gadget: udc-xilinx: replace memcpy with memcpy_toio +- counter: microchip-tcb-capture: Fix the use of internal GCLK logic +- pinctrl: avoid unsafe code pattern in find_pinctrl() +- cgroup: Remove duplicates in cgroup v1 tasks file +- tee: amdtee: fix use-after-free vulnerability in amdtee_close_session +- Input: goodix - ensure int GPIO is in input for gpio_count == 1 && gpio_int_idx == 0 case +- Input: i8042 - add Fujitsu Lifebook E5411 to i8042 quirk table +- Input: xpad - add PXN V900 support +- Input: psmouse - fix fast_reconnect function for PS/2 mode +- ceph: fix type promotion bug on 32bit systems +- ceph: fix incorrect revoked caps assert in ceph_fill_file_size() +- libceph: use kernel_connect() +- thunderbolt: Check that lane 1 is in CL0 before enabling lane bonding +- mcb: remove is_added flag from mcb_device struct +- iio: pressure: ms5611: ms5611_prom_is_valid false negative bug +- iio: pressure: dps310: Adjust Timeout Settings +- iio: pressure: bmp280: Fix NULL pointer exception +- usb: musb: Modify the "HWVers" register address +- usb: musb: Get the musb_qh poniter after musb_giveback +- usb: dwc3: Soft reset phy on probe for host +- net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read +- usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer +- dmaengine: stm32-mdma: abort resume if no ongoing transfer +- media: mtk-jpeg: Fix use after free bug due to uncanceled work +- Revert "spi: spi-zynqmp-gqspi: Fix runtime PM imbalance in zynqmp_qspi_probe" +- Revert "spi: zynqmp-gqspi: fix clock imbalance on probe failure" +- pinctrl: renesas: rzn1: Enable missing PINMUX +- ixgbe: fix crash with empty VF macvlan list +- net: phy: mscc: macsec: reject PN update requests +- net: macsec: indicate next pn update when offloading +- drm/vmwgfx: fix typo of sizeof argument +- riscv, bpf: Sign-extend return values +- riscv, bpf: Factor out emit_call for kernel and bpf context +- xen-netback: use default TX queue size for vifs +- mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type +- ravb: Fix up dma_free_coherent() call in ravb_remove() +- drm/msm/dpu: change _dpu_plane_calc_bw() to use u64 to avoid overflow +- drm/msm/dsi: skip the wait for video mode done if not applicable +- drm/msm/dp: do not reinitialize phy unless retry during link training +- net: prevent address rewrite in kernel_bind() +- HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect +- lib/test_meminit: fix off-by-one error in test_pages() +- perf/arm-cmn: Fix the unhandled overflow status of counter 4 to 7 +- RDMA/cxgb4: Check skb value for failure to allocate +- RDMA/srp: Make struct scsi_cmnd and struct srp_request adjacent +- arm64/mpam: Fix repeated enabling in mpam_enable() +- x86/cpu: Enable STIBP on AMD if Automatic IBRS is enabled +- x86/CPU/AMD: Check vendor in the AMD microcode callback +- x86/CPU/AMD: Add more models to X86_FEATURE_ZEN5 +- x86/CPU/AMD: Add X86_FEATURE_ZEN5 +- x86/cpu: Support AMD Automatic IBRS +- Documentation/hw-vuln: Update spectre doc +- x86: Remove dynamic NOP selection +- x86/CPU/AMD: Add X86_FEATURE_ZEN1 +- x86/CPU/AMD: Drop now unused CPU erratum checking function +- x86/CPU/AMD: Get rid of amd_erratum_1485[] +- x86/CPU/AMD: Get rid of amd_erratum_400[] +- x86/CPU/AMD: Get rid of amd_erratum_383[] +- x86/CPU/AMD: Get rid of amd_erratum_1054[] +- x86/CPU/AMD: Move the DIV0 bug detection to the Zen1 init function +- x86/CPU/AMD: Move Zenbleed check to the Zen2 init function +- x86/CPU/AMD: Rename init_amd_zn() to init_amd_zen_common() +- x86/CPU/AMD: Call the spectral chicken in the Zen2 init function +- x86/CPU/AMD: Move erratum 1076 fix into the Zen1 init function +- x86/CPU/AMD: Move the Zen3 BTC_NO detection to the Zen3 init function +- x86/CPU/AMD: Carve out the erratum 1386 fix +- x86/CPU/AMD: Add ZenX generations flags +- x86/CPU/AMD: Make sure EFER[AIBRSE] is set +- x86: Fix comment for X86_FEATURE_ZEN +- x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs +- jfs: fix array-index-out-of-bounds in dbAdjTree +- block/rnbd-srv: Check for unlikely string overflow +- mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions() + +* Wed Mar 27 2024 Jialin Zhang - 5.10.0-193.0.0.97 +- !5521 md/raid5: fix atomicity violation in raid5_cache_count +- !5494 mm/sparsemem: fix race in accessing memory_section->usage +- !5516 netfilter: nf_tables: disallow timeout for anonymous sets +- !5441 net/sched: act_ct: fix skb leak and crash on ooo frags +- !5519 scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan() +- !5445 KVM: x86/mmu: Don't advance iterator after restart due to yielding +- !5510 bus: mhi: host: Drop chan lock before queuing buffers +- !5466 wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus() +- !5491 CVE-2024-26640 +- md/raid5: fix atomicity violation in raid5_cache_count +- scsi: lpfc: Fix a possible data race in lpfc_unregister_fcf_rescan() +- netfilter: nf_tables: disallow timeout for anonymous sets +- !5495 llc: Drop support for ETH_P_TR_802_2. +- !5496 llc: make llc_ui_sendmsg() more robust against bonding changes +- !5266 llc: call sock_orphan() at release time +- bus: mhi: host: Drop chan lock before queuing buffers +- !5500 pstore/ram: Fix crash when setting number of cpus to an odd number +- !5460 v2 crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init +- pstore/ram: Fix crash when setting number of cpus to an odd number +- !5368 media: pvrusb2: fix use after free on context disconnection +- llc: make llc_ui_sendmsg() more robust against bonding changes +- llc: Drop support for ETH_P_TR_802_2. +- mm/sparsemem: fix race in accessing memory_section->usage +- tcp: add sanity checks to rx zerocopy +- net-zerocopy: Refactor frag-is-remappable test. +- !5269 printk: avoid deadlock in panic +- !5316 v2 iomap: add support to track dirty state of sub pages +- !5075 x86/reboot: VMCLEAR active VMCSes before emergency reboot +- !5385 v3 enable arm64_pbha by default +- !5093 wifi: mac80211: fix potential key use-after-free +- wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus() +- !5327 UBSAN: array-index-out-of-bounds in dtSplitRoot +- !5322 jfs: fix slab-out-of-bounds Read in dtSearch +- crypto: lib/mpi - Fix unexpected pointer access in mpi_ec_init +- !5308 FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree +- KVM: x86/mmu: Don't advance iterator after restart due to yielding +- net/sched: act_ct: fix skb leak and crash on ooo frags +- !5286 serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO +- !5232 jfs: fix cve issue +- !5348 s390/ptrace: handle setting of fpc register correctly +- !5317 KVM: s390: fix setting of fpc register +- !5259 CVE-2024-26627​ +- config: Enable ARM64_PBHA by default +- arm64: mm: pagemap: Export pbha bit0 info +- arm64: mm: Hide pbha_bit0 in procfs if pbha is not enabled +- arm64: mm: Do not show info during startup if pbha is not enabled +- mm: cpufeature: Make update_pbha_perf_only_bit static +- arm64: mm: Cleanup in pbha_bit0_pte_range +- proc: introduce proc_hide_ents to hide proc files +- !5339 binder: fix race between mmput() and do_exit() +- !5253 tomoyo: fix UAF write bug in tomoyo_write_control() +- media: pvrusb2: fix use after free on context disconnection +- s390/ptrace: handle setting of fpc register correctly +- binder: fix race between mmput() and do_exit() +- UBSAN: array-index-out-of-bounds in dtSplitRoot +- jfs: fix slab-out-of-bounds Read in dtSearch +- KVM: s390: fix setting of fpc register +- iomap: add support to track dirty state of sub pages +- FS:JFS:UBSAN:array-index-out-of-bounds in dbAdjTree +- serial: sc16is7xx: convert from _raw_ to _noinc_ regmap functions for FIFO +- printk: avoid deadlock in panic +- llc: call sock_orphan() at release time +- scsi: core: Move scsi_host_busy() out of host lock if it is for per-command +- scsi: core: Move scsi_host_busy() out of host lock for waking up EH handler +- tomoyo: fix UAF write bug in tomoyo_write_control() +- jfs: fix array-index-out-of-bounds in diNewExt +- jfs: fix uaf in jfs_evict_inode +- wifi: mac80211: fix potential key use-after-free +- x86/reboot: VMCLEAR active VMCSes before emergency reboot + +* Wed Mar 20 2024 Jialin Zhang - 5.10.0-192.0.0.96 +- !5342 CVE-2023-52447 +- !5364 v2 CVE-2023-52452 +- !5313 bus: mhi: host: Add alignment check for event ring read pointer +- !5355 CVE-2023-52593 +- bpf: Fix accesses to uninit stack slots +- bpf: Fix verification of indirect var-off stack access +- bpf: Allow reads from uninit stack +- bpf: expose bpf_strtol and bpf_strtoul to all program types +- bpf, verifier: Fix memory leak in array reallocation for stack state +- bpf: verifier: Use copy_array for jmp_history +- bpf: verifier: Improve function state reallocation +- wifi: wfx: fix possible NULL pointer dereference in wfx_set_mfp_ap() +- bpf: Fix kabi breakage in struct bpf_map and struct bpf_map_ops +- bpf: Defer the free of inner map when necessary +- bpf: Set need_defer as false when clearing fd array during map free +- bpf: Add map and need_defer parameters to .map_fd_put_ptr() +- !4632 [OLK-5.10] drivers: update yunsilicon drivers to version 1.1.0.375 +- !5307 drm/msm/dpu: Add mutex lock in control vblank irq +- bus: mhi: host: Add alignment check for event ring read pointer +- drm/msm/dpu: Add mutex lock in control vblank irq +- !5242 Revert two stable patches to keep binary compatible +- !5188 Backport 5.10.198 LTS patches from upstream +- !5229 iommu/arm-smmu-v3: Disable ECMDQ before reset +- !5240 powerpc/lib: Validate size for vector operations +- !5231 af_unix: fix lockdep positive in sk_diag_dump_icons() +- !5222 powerpc/mm: Fix null-pointer dereference in pgtable_cache_add +- !5245 ceph: fix deadlock or deadcode of misusing dget() +- mmc: renesas_sdhi: only reset SCC when its pointer is populated +- netfilter: nftables: exthdr: fix 4-byte stack OOB write +- netfilter: nf_tables: fix kdoc warnings after gc rework +- parisc: Restore __ldcw_align for PA-RISC 2.0 processors +- RDMA/mlx5: Fix NULL string error +- RDMA/siw: Fix connection failure handling +- RDMA/uverbs: Fix typo of sizeof argument +- RDMA/cma: Fix truncation compilation warning in make_cma_ports +- RDMA/cma: Initialize ib_sa_multicast structure to 0 when join +- gpio: pxa: disable pinctrl calls for MMP_GPIO +- gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config() +- IB/mlx4: Fix the size of a buffer in add_port_entries() +- of: dynamic: Fix potential memory leak in of_changeset_action() +- RDMA/core: Require admin capabilities to set system parameters +- dm zoned: free dmz->ddev array in dmz_put_zoned_devices +- cpupower: add Makefile dependencies for install targets +- sctp: update hb timer immediately after users change hb_interval +- sctp: update transport state when processing a dupcook packet +- tcp: fix delayed ACKs for MSS boundary condition +- tcp: fix quick-ack counting to count actual ACKs of new data +- net: stmmac: dwmac-stm32: fix resume on STM32 MCU +- net: ethernet: ti: am65-cpsw: Fix error code in am65_cpsw_nuss_init_tx_chns() +- net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent +- modpost: add missing else to the "of" check +- NFSv4: Fix a nfs4_state_manager() race +- scsi: target: core: Fix deadlock due to recursive locking +- ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig +- regmap: rbtree: Fix wrong register marked as in-cache when creating new node +- wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling +- drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close() +- bpf: Fix tr dereferencing +- wifi: iwlwifi: dbg_ini: fix structure packing +- arm64: Add Cortex-A520 CPU part definition +- net: prevent rewrite of msg_name in sock_sendmsg() +- net: replace calls to sock->ops->connect() with kernel_connect() +- wifi: mwifiex: Fix tlv_buf_left calculation +- qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info +- scsi: zfcp: Fix a double put in zfcp_port_enqueue() +- Revert "PCI: qcom: Disable write access to read only registers for IP v2.3.3" +- Revert "clk: imx: pll14xx: dynamically configure PLL for 393216000/361267200Hz" +- rbd: take header_rwsem in rbd_dev_refresh() only when updating +- rbd: decouple parent info read-in from updating rbd_dev +- rbd: decouple header read-in from updating rbd_dev->header +- rbd: move rbd_dev_refresh() definition +- ring-buffer: Fix bytes info in per_cpu buffer stats +- ring-buffer: remove obsolete comment for free_buffer_page() +- NFSv4: Fix a state manager thread deadlock regression +- NFS: rename nfs_client_kset to nfs_kset +- NFS: Cleanup unused rpc_clnt variable +- spi: zynqmp-gqspi: fix clock imbalance on probe failure +- spi: spi-zynqmp-gqspi: Fix runtime PM imbalance in zynqmp_qspi_probe +- fs: binfmt_elf_efpic: fix personality for ELF-FDPIC +- ata: libata-sata: increase PMP SRST timeout to 10s +- ata: libata-core: Do not register PM operations for SAS ports +- ata: libata-core: Fix port and device removal +- ata: libata-core: Fix ata_port_request_pm() locking +- net: thunderbolt: Fix TCPv6 GSO checksum calculation +- bpf: Fix BTF_ID symbol generation collision in tools/ +- bpf: Fix BTF_ID symbol generation collision +- btrfs: properly report 0 avail for very full file systems +- ring-buffer: Update "shortest_full" in polling +- proc: nommu: /proc//maps: release mmap read lock +- Revert "SUNRPC dont update timeout value on connection reset" +- i2c: i801: unregister tco_pdev in i801_probe() error path +- ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES +- ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre M70q +- serial: 8250_port: Check IRQ data before use +- Revert "tty: n_gsm: fix UAF in gsm_cleanup_mux" +- Smack:- Use overlay inode label in smack_inode_copy_up() +- smack: Retrieve transmuting information in smack_inode_getsecurity() +- smack: Record transmuting in smk_transmuted +- nvme-pci: always return an ERR_PTR from nvme_pci_alloc_dev +- netfilter: nft_exthdr: Fix for unsafe packet data read +- netfilter: nft_exthdr: Search chunks in SCTP packets only +- watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running +- watchdog: iTCO_wdt: No need to stop the timer in probe +- nvme-pci: do not set the NUMA node of device if it has none +- nvme-pci: factor out a nvme_pci_alloc_dev helper +- nvme-pci: factor the iod mempool creation into a helper +- ACPI: Check StorageD3Enable _DSD property in ACPI code +- cgroup: Fix suspicious rcu_dereference_check() usage warning +- perf build: Define YYNOMEM as YYNOABORT for bison < 3.81 +- fbdev/sh7760fb: Depend on FB=y +- ncsi: Propagate carrier gain/loss events to the NCSI controller +- powerpc/watchpoints: Disable preemption in thread_change_pc() +- media: vb2: frame_vector.c: replace WARN_ONCE with a comment +- bpf: Clarify error expectations from bpf_clone_redirect +- spi: nxp-fspi: reset the FLSHxCR1 registers +- scsi: pm80xx: Use phy-specific SAS address when sending PHY_START command +- platform/mellanox: mlxbf-bootctl: add NET dependency into Kconfig +- selftests: fix dependency checker script +- ring-buffer: Avoid softlockup in ring_buffer_resize() +- selftests/ftrace: Correctly enable event in instance-event.tc +- scsi: qedf: Add synchronization between I/O completions and abort +- parisc: irq: Make irq_stack_union static to avoid sparse warning +- parisc: drivers: Fix sparse warning +- parisc: iosapic.c: Fix sparse warnings +- parisc: sba: Fix compile warning wrt list of SBA devices +- dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock +- i2c: npcm7xx: Fix callback completion ordering +- gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip +- xtensa: boot/lib: fix function prototypes +- xtensa: boot: don't add include-dirs +- xtensa: iss/network: make functions static +- xtensa: add default definition for XCHAL_HAVE_DIV32 +- power: supply: ucs1002: fix error code in ucs1002_get_property() +- bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up +- ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot +- ARM: dts: Unify pwm-omap-dmtimer node names +- ARM: dts: am335x: Guardian: Update beeper label +- ARM: dts: motorola-mapphone: Drop second ti,wlcore compatible value +- ARM: dts: motorola-mapphone: Add 1.2GHz OPP +- ARM: dts: motorola-mapphone: Configure lower temperature passive cooling +- ARM: dts: ti: omap: Fix bandgap thermal cells addressing for omap3/4 +- ARM: dts: omap: correct indentation +- clk: tegra: fix error return case for recalc_rate +- bus: ti-sysc: Fix missing AM35xx SoC matching +- bus: ti-sysc: Use fsleep() instead of usleep_range() in sysc_reset() +- MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled +- btrfs: reset destination buffer when read_extent_buffer() gets invalid range +- ata: ahci: Add Elkhart Lake AHCI controller +- ata: ahci: Rename board_ahci_mobile +- ata: ahci: Add support for AMD A85 FCH (Hudson D4) +- ata: libata: Rename link flag ATA_LFLAG_NO_DB_DELAY +- netfilter: nft_exthdr: Fix non-linear header modification +- netfilter: exthdr: add support for tcp option removal +- netfilter: nft_exthdr: break evaluation if setting TCP option fails +- netfilter: nf_tables: add and use nft_thoff helper +- netfilter: nf_tables: add and use nft_sk helper +- netfilter: nft_exthdr: Support SCTP chunks +- netfilter: use actual socket sk for REJECT action +- media: venus: hfi_venus: Write to VIDC_CTRL_INIT after unmasking interrupts +- media: venus: hfi: Add a 6xx boot logic +- media: venus: core: Add differentiator IS_V6(core) +- media: venus: hfi: Define additional 6xx registers +- media: venus: hfi,pm,firmware: Convert to block relative addressing +- media: venus: core: Add io base variables for each block +- mmc: renesas_sdhi: register irqs before registering controller +- mmc: tmio: support custom irq masks +- mmc: renesas_sdhi: populate SCC pointer at the proper place +- mmc: renesas_sdhi: probe into TMIO after SCC parameters have been setup +- Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN +- Input: i8042 - rename i8042-x86ia64io.h to i8042-acpipnpio.h +- netfilter: nf_tables: double hook unregistration in netns path +- netfilter: nf_tables: unregister flowtable hooks on netns exit +- i2c: mux: demux-pinctrl: check the return value of devm_kstrdup() +- gpio: tb10x: Fix an error handling path in tb10x_gpio_probe() +- bnxt_en: Flush XDP for bnxt_poll_nitroa0()'s NAPI +- locking/seqlock: Do the lockdep annotation before locking in do_write_seqcount_begin_nested() +- seqlock: Prefix internal seqcount_t-only macros with a "do_" +- seqlock: Rename __seqprop() users +- netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP +- x86/srso: Fix SBPB enablement for spec_rstack_overflow=off +- x86/srso: Fix srso_show_state() side effect +- platform/x86: intel_scu_ipc: Fail IPC send if still busy +- platform/x86: intel_scu_ipc: Don't override scu in intel_scu_ipc_dev_simple_command() +- platform/x86: intel_scu_ipc: Check status upon timeout in ipc_wait_for_interrupt() +- platform/x86: intel_scu_ipc: Check status after timeout in busy_loop() +- powerpc/perf/hv-24x7: Update domain value check +- i40e: Fix VF VLAN offloading when port VLAN is configured +- ASoC: imx-audmix: Fix return error with devm_clk_get() +- selftests: tls: swap the TX and RX sockets in some tests +- bpf: Avoid deadlock when using queue and stack maps from NMI +- netfilter: nf_tables: disallow element removal on anonymous sets +- ASoC: meson: spdifin: start hw on dai probe +- netfilter: nf_tables: fix memleak when more than 255 elements expired +- netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration +- netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails +- netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention +- netfilter: nf_tables: defer gc run if previous batch is still pending +- netfilter: nf_tables: use correct lock to protect gc_list +- netfilter: nf_tables: GC transaction race with abort path +- netfilter: nf_tables: GC transaction race with netns dismantle +- netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path +- netfilter: nf_tables: don't fail inserts if duplicate has expired +- netfilter: nf_tables: remove busy mark and gc batch API +- netfilter: nft_set_hash: mark set element as dead when deleting from packet path +- netfilter: nf_tables: adapt set backend to use GC transaction API +- netfilter: nf_tables: GC transaction API to avoid race with control plane +- netfilter: nf_tables: don't skip expired elements during walk +- netfilter: nf_tables: integrate pipapo into commit protocol +- ext4: do not let fstrim block system suspend +- ext4: move setting of trimmed bit into ext4_try_to_trim_range() +- ext4: replace the traditional ternary conditional operator with with max()/min() +- ext4: mark group as trimmed only if it was fully scanned +- ext4: change s_last_trim_minblks type to unsigned long +- ext4: scope ret locally in ext4_try_to_trim_range() +- ext4: add new helper interface ext4_try_to_trim_range() +- ext4: remove the 'group' parameter of ext4_trim_extent +- SUNRPC: Mark the cred for revalidation if the server rejects it +- NFS/pNFS: Report EINVAL errors from connect() to the server +- NFS: Use the correct commit info in nfs_join_page_group() +- ceph: fix deadlock or deadcode of misusing dget() +- Revert "modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules" +- Revert "media: dvb: symbol fixup for dvb_attach()" +- powerpc/lib: Validate size for vector operations +- af_unix: fix lockdep positive in sk_diag_dump_icons() +- iommu/arm-smmu-v3: Disable ECMDQ before reset +- !3297 [OLK-5.10] Add drivers support for Mucse Network Adapter(N10/N400) +- !3308 [OLK-5.10] initial support for KPU FLEXFLOW-2100P driver from Yusur Technology +- !5195 dmaengine: fix NULL pointer in channel unregistration function +- !5171 net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn() +- !5197 drm: Don't unref the same fb many times by mistake due to deadlock handling +- powerpc/mm: Fix null-pointer dereference in pgtable_cache_add +- drm: Don't unref the same fb many times by mistake due to deadlock handling +- !5178 net: nfc: llcp: Add lock when modifying device list +- dmaengine: fix NULL pointer in channel unregistration function +- !5164 nfc: nci: assert requested protocol is valid +- drivers: initial support for KPU FLEXFLOW-2100P driver from Yusur Technology +- !5156 RDMA/srp: Do not call scsi_done() from srp_abort() +- !5038 [OLK-5.10] Do not serialize MSR accesses on AMD +- net: nfc: llcp: Add lock when modifying device list +- net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn() +- nfc: nci: assert requested protocol is valid +- RDMA/srp: Do not call scsi_done() from srp_abort() +- x86/barrier: Do not serialize MSR accesses on AMD +- drivers: update yunsilicon drivers to version 1.1.0.375 +- drivers: support for rnpm drivers from Mucse Technology N10/N400 + +* Thu Mar 14 2024 Bing Xia - 5.10.0-191.0.0.95 +- perf: add CoreSight trace component support on aarch64 platform + +* Wed Mar 13 2024 Jialin Zhang - 5.10.0-191.0.0.94 +- !5152 arm64/mpam: Remove warning about no msc corresponding to the online cpu +- arm64/mpam: Remove warning about no msc corresponding to the online cpu +- !5145 arm64/mpam: Expand the monitor number of the resctrl root +- !5144 arm64/mpam: Fix use-after-free when deleting resource groups +- arm64/mpam: Expand the monitor number of the resctrl root +- arm64/mpam: Fix use-after-free when deleting resource groups +- !5117 fix CVE-2023-52527 +- !4648 [OLK-5.10] Intel: backport TPMI RAPL driver for GNR/SRF +- !4842 Intel-sig: intel_idle: add Sierra Forest SoC support on 5.10 +- !5113 fix CVE-2023-52578 +- !5031 Backport 5.10.196 -5.10.197 LTS patches from upstream +- l2tp: pass correct message length to ip6_append_data +- ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data() +- net: fix kabi check warning +- net: Fix unwanted sign extension in netdev_stats_to_stats64() +- net: bridge: use DEV_STATS_INC() +- net: add atomic_long_t to net_device_stats fields +- !5063 dccp: fix dccp_v4_err()/dccp_v6_err() again +- !5062 team: fix null-ptr-deref when team device type is changed +- !5096 wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet +- !5044 bugfix for pbha +- !5078 RDMA/rxe: Return CQE error if invalid lkey was supplied +- wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet +- !4261 [22.03-LTS-SP3] Fix crash on platfoms using legacy KVM MMU Notifier APIs +- !4966 [sync] PR-4934: arm64: head.S: always initialize PSTATE +- RDMA/rxe: Return CQE error if invalid lkey was supplied +- !5051 dm: limit the number of targets and parameter size area +- !4933 scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command +- !5064 net: rds: Fix possible NULL-pointer dereference +- !5058 net: fix possible store tearing in neigh_periodic_work() +- !4968 sched: migtate user interface from smart grid to sched bpf +- !5033 v3 Remove WQ_FLAG_BOOKMARK flag +- !5032 net/sched: act_ct: fix wild memory access when clearing fragments +- net: rds: Fix possible NULL-pointer dereference +- dccp: fix dccp_v4_err()/dccp_v6_err() again +- team: fix null-ptr-deref when team device type is changed +- net: fix possible store tearing in neigh_periodic_work() +- dm: limit the number of targets and parameter size area +- arm64: mm: Use subsequent bits to improve future compatibility for pbha +- arm64: mm: Use corrent pte val in arch_vm_get_page_prot +- sched: remove wait bookmarks +- filemap: remove use of wait bookmarks +- net/sched: act_ct: fix wild memory access when clearing fragments +- !5004 nilfs2: fix potential use after free in nilfs_gccache_submit_read_data() +- scsi: pm8001: Setup IRQs on resume +- scsi: megaraid_sas: Fix deadlock on firmware crashdump +- i2c: aspeed: Reset the i2c controller when timeout occurs +- tracefs: Add missing lockdown check to tracefs_create_dir() +- nfsd: fix change_info in NFSv4 RENAME replies +- tracing: Have option files inc the trace array ref count +- tracing: Have current_trace inc the trace array ref count +- drm/amd/display: enable cursor degamma for DCN3+ DRM legacy gamma +- drm/amdgpu: fix amdgpu_cs_p1_user_fence +- btrfs: release path before inode lookup during the ino lookup ioctl +- btrfs: fix lockdep splat and potential deadlock after failure running delayed items +- ovl: fix incorrect fdput() on aio completion +- attr: block mode changes of symlinks +- md/raid1: fix error: ISO C90 forbids mixed declarations +- samples/hw_breakpoint: fix building without module unloading +- x86/boot/compressed: Reserve more memory for page tables +- scsi: lpfc: Fix the NULL vs IS_ERR() bug for debugfs_create_file() +- selftests: tracing: Fix to unmount tracefs for recovering environment +- scsi: qla2xxx: Fix NULL vs IS_ERR() bug for debugfs_create_dir() +- drm: gm12u320: Fix the timeout usage for usb_bulk_msg() +- btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super +- btrfs: add a helper to read the superblock metadata_uuid +- btrfs: move btrfs_pinned_by_swapfile prototype into volumes.h +- mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller +- mtd: rawnand: brcmnand: Allow SoC to provide I/O operations +- kobject: Add sanity check for kset->kobj.ktype in kset_register() +- media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning +- serial: cpm_uart: Avoid suspicious locking +- scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show() +- usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc +- media: pci: cx23885: replace BUG with error return +- media: tuners: qt1010: replace BUG_ON with a regular error +- media: dvb-usb-v2: gl861: Fix null-ptr-deref in gl861_i2c_master_xfer +- media: az6007: Fix null-ptr-deref in az6007_i2c_xfer() +- media: anysee: fix null-ptr-deref in anysee_master_xfer +- media: af9005: Fix null-ptr-deref in af9005_i2c_xfer +- media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer() +- media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer +- powerpc/pseries: fix possible memory leak in ibmebus_bus_init() +- jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount +- fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount() +- md: raid1: fix potential OOB in raid1_remove_disk() +- bus: ti-sysc: Configure uart quirks for k3 SoC +- drm/exynos: fix a possible null-pointer dereference due to data race in exynos_drm_crtc_atomic_disable() +- ALSA: hda: intel-dsp-cfg: add LunarLake support +- samples/hw_breakpoint: Fix kernel BUG 'invalid opcode: 0000' +- drm/bridge: tc358762: Instruct DSI host to generate HSE packets +- wifi: mac80211_hwsim: drop short frames +- netfilter: ebtables: fix fortify warnings in size_entry_mwt() +- alx: fix OOB-read compiler warning +- mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450 +- tpm_tis: Resend command to recover from data transfer errors +- crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui() +- wifi: wil6210: fix fortify warnings +- wifi: mwifiex: fix fortify warning +- wifi: ath9k: fix printk specifier +- wifi: ath9k: fix fortify warnings +- crypto: lrw,xts - Replace strlcpy with strscpy +- devlink: remove reload failed checks in params get/set callbacks +- hw_breakpoint: fix single-stepping when using bpf_overflow_handler +- ACPI: video: Add backlight=native DMI quirk for Apple iMac12,1 and iMac12,2 +- ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470 +- scftorture: Forgive memory-allocation failure if KASAN +- rcuscale: Move rcu_scale_writer() schedule_timeout_uninterruptible() to _idle() +- kernel/fork: beware of __put_task_struct() calling context +- ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer +- locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock +- btrfs: output extra debug info if we failed to find an inline backref +- autofs: fix memory leak of waitqueues in autofs_catatonic_mode +- !4987 net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg +- !4991 CVE-2023-52568 +- !4994 mpam/mpam_ctrlmon: update monitor config with its parent's ctrl_val +- nilfs2: fix potential use after free in nilfs_gccache_submit_read_data() +- !4988 ieee802154: ca8210: Fix a potential UAF in ca8210_probe +- !4979 CVE-2021-47028 +- mpam/mpam_ctrlmon: update monitor config with its parent's ctrl_val +- x86/sgx: Resolves SECS reclaim vs. page fault for EAUG race +- ieee802154: ca8210: Fix a potential UAF in ca8210_probe +- !4925 v2 btrfs: do not ASSERT() if the newly created subvolume already got read +- !4905 Backport 5.10.195 LTS patches from upstream +- net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg +- !4339 修复pmem_legacy_device未被编译问题 +- mt76: mt7915: fix txrate reporting +- mt76: mt7915: rename mt7915_mcu_get_rate_info to mt7915_mcu_get_tx_rate +- sched: migtate user interface from smart grid to sched bpf +- arm64: head.S: always initialize PSTATE +- drm/mediatek: Fix backport issue in mtk_drm_gem_prime_vmap() +- scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command +- parisc: Drop loops_per_jiffy from per_cpu struct +- drm/amd/display: Fix a bug when searching for insert_above_mpcc +- kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg(). +- ixgbe: fix timestamp configuration code +- ipv6: fix ip6_sock_set_addr_preferences() typo +- platform/mellanox: mlxbf-tmfifo: Drop jumbo frames +- platform/mellanox: mlxbf-tmfifo: Drop the Rx packet if no more descriptors +- kcm: Fix memory leak in error path of kcm_sendmsg() +- r8152: check budget for r8152_poll() +- hsr: Fix uninit-value access in fill_frame_info() +- net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_hwlro_get_fdir_all() +- net: ethernet: mvpp2_main: fix possible OOB write in mvpp2_ethtool_get_rxnfc() +- net/smc: use smc_lgr_list.lock to protect smc_lgr_list.list iterate in smcr_port_add +- kselftest/runner.sh: Propagate SIGTERM to runner child +- selftests/kselftest/runner/run_one(): allow running non-executable files +- bus: mhi: host: Skip MHI reset if device is in RDDM +- ARM: dts: BCM5301X: Extend RAM to full 256MB for Linksys EA6500 V2 +- ARM: dts: samsung: exynos4210-i9100: Fix LCD screen's physical size +- scsi: qla2xxx: Flush mailbox commands on chip reset +- scsi: qla2xxx: Fix crash in PCIe error handling +- scsi: qla2xxx: Consolidate zio threshold setting for both FCP & NVMe +- scsi: qla2xxx: If fcport is undergoing deletion complete I/O with retry +- arm64: sdei: abort running SDEI handlers during crash +- ACPI: APEI: explicit init of HEST and GHES in apci_init() +- perf hists browser: Fix the number of entries for 'e' key +- perf tools: Handle old data in PERF_RECORD_ATTR +- perf hists browser: Fix hierarchy mode header +- drm/amd/display: prevent potential division by zero errors +- mtd: rawnand: brcmnand: Fix potential false time out warning +- mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write +- mtd: rawnand: brcmnand: Fix crash during the panic_write +- btrfs: use the correct superblock to compare fsid in btrfs_validate_super +- btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART +- fuse: nlookup missing decrement in fuse_direntplus_link +- ata: pata_ftide010: Add missing MODULE_DESCRIPTION +- ata: sata_gemini: Add missing MODULE_DESCRIPTION +- ext4: add correct group descriptors and reserved GDT blocks to system zone +- sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory() +- net: dsa: sja1105: fix -ENOSPC when replacing the same tc-cbs too many times +- net: dsa: sja1105: fix bandwidth discrepancy between tc-cbs software and offload +- idr: fix param name in idr_alloc_cyclic() doc +- s390/zcrypt: don't leak memory if dev_set_name() fails +- igb: Change IGB_MIN to allow set rx/tx value between 64 and 80 +- igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80 +- igc: Change IGC_MIN to allow set rx/tx value between 64 and 80 +- kcm: Destroy mutex in kcm_exit_net() +- af_unix: Fix data race around sk->sk_err. +- af_unix: Fix data-races around sk->sk_shutdown. +- af_unix: Fix data-race around unix_tot_inflight. +- af_unix: Fix data-races around user->unix_inflight. +- net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr +- veth: Fixing transmit return status for dropped packets +- igb: disable virtualization features on 82580 +- drm/i915/gvt: Drop unused helper intel_vgpu_reset_gtt() +- drm/i915/gvt: Save/restore HW status to support GVT suspend/resume +- net: read sk->sk_family once in sk_mc_loop() +- ipv4: annotate data-races around fi->fib_dead +- sctp: annotate data-races around sk->sk_wmem_queued +- net/sched: fq_pie: avoid stalls in fq_pie_timer() +- pwm: lpc32xx: Remove handling of PWM channels +- watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load +- perf top: Don't pass an ERR_PTR() directly to perf_session__delete() +- x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm() +- perf annotate bpf: Don't enclose non-debug code with an assert() +- backlight: gpio_backlight: Drop output GPIO direction check for initial power state +- kconfig: fix possible buffer overflow +- NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info +- NFS: Fix a potential data corruption +- soc: qcom: qmi_encdec: Restrict string length in decode +- clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock +- clk: imx: pll14xx: dynamically configure PLL for 393216000/361267200Hz +- dt-bindings: clock: xlnx,versal-clk: drop select:false +- pinctrl: cherryview: fix address_space_handler() argument +- parisc: led: Reduce CPU overhead for disk & lan LED computation +- parisc: led: Fix LAN receive and transmit LEDs +- lib/test_meminit: allocate pages up to order MAX_ORDER +- drm/ast: Fix DRAM init on AST2200 +- fbdev/ep93xx-fb: Do not assign to struct fb_info.dev +- scsi: qla2xxx: Remove unsupported ql2xenabledif option +- scsi: qla2xxx: Turn off noisy message log +- scsi: qla2xxx: Fix erroneous link up failure +- scsi: qla2xxx: fix inconsistent TMF timeout +- scsi: qla2xxx: Fix deletion race condition +- io_uring: break iopolling on signal +- io_uring: break out of iowq iopoll on teardown +- io_uring: always lock in io_apoll_task_func +- net/ipv6: SKB symmetric hash should incorporate transport ports +- udf: initialize newblock to 0 +- md/md-bitmap: remove unnecessary local variable in backlog_store() +- usb: typec: tcpci: clear the fault status bit +- usb: typec: bus: verify partner exists in typec_altmode_attention +- cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug +- crypto: stm32 - fix loop iterating through scatterlist for DMA +- s390/ipl: add missing secure/has_secure file to ipl type 'unknown' +- pstore/ram: Check start of empty przs during init +- fsverity: skip PKCS#7 parser when keyring is empty +- net: handle ARPHRD_PPP in dev_is_mac_header_xmit() +- X.509: if signature is unsupported skip validation +- dccp: Fix out of bounds access in DCCP error handler +- dlm: fix plock lookup when using multiple lockspaces +- parisc: Fix /proc/cpuinfo output for lscpu +- procfs: block chmod on /proc/thread-self/comm +- Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset" +- ntb: Fix calculation ntb_transport_tx_free_entry() +- ntb: Clean up tx tail index on link down +- ntb: Drop packets when qp link is down +- Revert "scsi: qla2xxx: Fix buffer overrun" +- media: dvb: symbol fixup for dvb_attach() +- arm64: csum: Fix OoB access in IP checksum code for negative lengths +- xtensa: PMU: fix base address for the newer hardware +- backlight/lv5207lp: Compare against struct fb_info.device +- backlight/bd6107: Compare against struct fb_info.device +- backlight/gpio_backlight: Compare against struct fb_info.device +- ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch() +- scsi: core: Fix the scsi_set_resid() documentation +- ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl +- PM / devfreq: Fix leak in devfreq_dev_release() +- skbuff: skb_segment, Call zero copy functions before using skbuff frags +- igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU +- virtio_ring: fix avail_wrap_counter in virtqueue_add_packed +- cpufreq: Fix the race condition while updating the transition_task of policy +- dmaengine: ste_dma40: Add missing IRQ check in d40_probe +- um: Fix hostaudio build errors +- mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume() +- mtd: spi-nor: Check bus width while setting QE bit +- rpmsg: glink: Add check for kstrdup +- phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write +- phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate +- phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328 +- mtd: rawnand: brcmnand: Fix mtd oobsize +- x86/speculation: Mark all Skylake CPUs as vulnerable to GDS +- HID: multitouch: Correct devm device reference for hidinput input_dev name +- HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode() +- RDMA/siw: Correct wrong debug message +- RDMA/siw: Balance the reference of cep->kref in the error path +- Revert "IB/isert: Fix incorrect release of isert connection" +- amba: bus: fix refcount leak +- serial: tegra: handle clk prepare error in tegra_uart_hw_init() +- scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock +- cgroup:namespace: Remove unused cgroup_namespaces_init() +- media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors +- media: ov2680: Fix vflip / hflip set functions +- media: ov2680: Fix ov2680_bayer_order() +- media: ov2680: Remove auto-gain and auto-exposure controls +- media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips +- media: ov5640: Enable MIPI interface in ov5640_set_power_mipi() +- USB: gadget: f_mass_storage: Fix unused variable warning +- media: go7007: Remove redundant if statement +- iommu/vt-d: Fix to flush cache of PASID directory table +- iommu/qcom: Disable and reset context bank before programming +- fsi: aspeed: Reset master errors after CFAM reset +- IB/uverbs: Fix an potential error pointer dereference +- driver core: test_async: fix an error code +- dma-buf/sync_file: Fix docs syntax +- coresight: tmc: Explicit type conversions to prevent integer overflow +- scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read() directly +- scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read() directly +- scsi: qedf: Do not touch __user pointer in qedf_dbg_stop_io_on_error_cmd_read() directly +- x86/APM: drop the duplicate APM_MINOR_DEV macro +- serial: sprd: Fix DMA buffer leak issue +- serial: sprd: Assign sprd_port after initialized to avoid wrong access +- scsi: qla4xxx: Add length check when parsing nlattrs +- scsi: be2iscsi: Add length check when parsing nlattrs +- scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param() +- scsi: iscsi: Add length check for nlattr payload +- scsi: iscsi: Rename iscsi_set_param() to iscsi_if_set_param() +- scsi: RDMA/srp: Fix residual handling +- usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host() +- media: mediatek: vcodec: Return NULL if no vdec_fb is found +- media: rkvdec: increase max supported height for H.264 +- media: cx24120: Add retval check for cx24120_message_send() +- media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer() +- media: dib7000p: Fix potential division by zero +- drivers: usb: smsusb: fix error handling code in smsusb_init_device +- media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link() +- media: i2c: tvp5150: check return value of devm_kasprintf() +- media: ad5820: Drop unsupported ad5823 from i2c_ and of_device_id tables +- NFSv4.2: fix handling of COPY ERR_OFFLOAD_NO_REQ +- NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN +- NFSD: da_addr_body field missing in some GETDEVICEINFO replies +- fs: lockd: avoid possible wrong NULL parameter +- jfs: validate max amount of blocks before allocation. +- powerpc/iommu: Fix notifiers being shared by PCI and VIO buses +- nfs/blocklayout: Use the passed in gfp flags +- powerpc/pseries: Rework lppaca_shared_proc() to avoid DEBUG_PREEMPT +- powerpc: Don't include lppaca.h in paca.h +- wifi: ath10k: Use RMW accessors for changing LNKCTL +- net/mlx5: Use RMW accessors for changing LNKCTL +- drm/radeon: Use RMW accessors for changing LNKCTL +- drm/amdgpu: Use RMW accessors for changing LNKCTL +- powerpc/perf: Convert fsl_emb notifier to state machine callbacks +- powerpc/fadump: reset dump area size if fadump memory reserve fails +- vfio/type1: fix cap_migration information leak +- clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op +- clk: imx8mp: fix sai4 clock +- PCI/ASPM: Use RMW accessors for changing LNKCTL +- PCI: pciehp: Use RMW accessors for changing LNKCTL +- pinctrl: mcp23s08: check return value of devm_kasprintf() +- PCI: Mark NVIDIA T4 GPUs to avoid bus reset +- clk: qcom: reset: Use the correct type of sleep/delay based on length +- clk: qcom: gcc-sm8250: Fix gcc_sdcc2_apps_clk_src +- clk: qcom: gcc-sm8250: use ARRAY_SIZE instead of specifying num_parents +- ext4: correct grp validation in ext4_mb_good_group +- clk: qcom: gcc-sc7180: Fix up gcc_sdcc2_apps_clk_src +- clk: qcom: gcc-sc7180: use ARRAY_SIZE instead of specifying num_parents +- clk: sunxi-ng: Modify mismatched function name +- drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init() +- ipmi:ssif: Fix a memory leak when scanning for an adapter +- ipmi:ssif: Add check for kstrdup +- ALSA: ac97: Fix possible error value of *rac97 +- of: unittest: Fix overlay type in apply/revert check +- bus: ti-sysc: Fix cast to enum warning +- drm/mediatek: Fix potential memory leak if vmap() fail +- bus: ti-sysc: Fix build warning for 64-bit build +- drm/msm/a2xx: Call adreno_gpu_init() earlier +- drm/amd/pm: fix variable dereferenced issue in amdgpu_device_attr_create() +- smackfs: Prevent underflow in smk_set_cipso() +- firmware: meson_sm: fix to avoid potential NULL pointer dereference +- drm/msm/mdp5: Don't leak some plane state +- drm: xlnx: zynqmp_dpsub: Add missing check for dma_set_mask +- ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig +- drm/panel: simple: Add missing connector type and pixel format for AUO T215HVN01 +- drm/armada: Fix off-by-one error in armada_overlay_get_property() +- of: unittest: fix null pointer dereferencing in of_unittest_find_node_by_name() +- drm/tegra: dpaux: Fix incorrect return value of platform_get_irq +- drm/tegra: Remove superfluous error messages around platform_get_irq() +- md/md-bitmap: hold 'reconfig_mutex' in backlog_store() +- md/bitmap: don't set max_write_behind if there is no write mostly device +- drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl' +- arm64: dts: qcom: sdm845: Fix the min frequency of "ice_core_clk" +- arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC +- ARM: dts: BCM53573: Fix Ethernet info for Luxul devices +- drm: adv7511: Fix low refresh rate register for ADV7533/5 +- ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split) +- ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210 +- ARM: dts: s5pv210: adjust node names to DT spec +- ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split) +- ARM: dts: s3c64xx: align pinctrl with dtschema +- x86/mm: Fix PAT bit missing from page protection modify mask +- drm/etnaviv: fix dumping of active MMU context +- ARM: dts: BCM53573: Use updated "spi-gpio" binding properties +- ARM: dts: BCM53573: Add cells sizes to PCIe node +- ARM: dts: BCM53573: Drop nonexistent #usb-cells +- ARM: dts: BCM53573: Describe on-SoC BCM53125 rev 4 switch +- ARM: dts: BCM5301X: Harmonize EHCI/OHCI DT nodes name +- drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar() +- arm64: dts: qcom: msm8996: Add missing interrupt to the USB2 controller +- soc: qcom: ocmem: Fix NUM_PORTS & NUM_MACROS macros +- soc: qcom: ocmem: Add OCMEM hardware version print +- ASoC: stac9766: fix build errors with REGMAP_AC97 +- drm/bridge: tc358764: Fix debug print parameter order +- netrom: Deny concurrent connect(). +- hwmon: (tmp513) Fix the channel number in tmp51x_is_visible() +- mlxsw: i2c: Limit single transaction buffer size +- mlxsw: i2c: Fix chunk size setting in output mailbox buffer +- net: arcnet: Do not call kfree_skb() under local_irq_disable() +- wifi: ath9k: use IS_ERR() with debugfs_create_dir() +- Bluetooth: btusb: Do not call kfree_skb() under spin_lock_irqsave() +- wifi: mwifiex: avoid possible NULL skb pointer dereference +- wifi: ath9k: protect WMI command response buffer replacement with a lock +- wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx +- samples/bpf: fix broken map lookup probe +- wifi: mwifiex: Fix missed return in oob checks failed path +- wifi: mwifiex: fix memory leak in mwifiex_histogram_read() +- fs: ocfs2: namei: check return value of ocfs2_add_entry() +- lwt: Check LWTUNNEL_XMIT_CONTINUE strictly +- lwt: Fix return values of BPF xmit ops +- hwrng: iproc-rng200 - Implement suspend and resume calls +- crypto: caam - fix unchecked return value error +- ice: ice_aq_check_events: fix off-by-one check when filling buffer +- selftests/bpf: Clean up fmod_ret in bench_rename test script +- net: tcp: fix unexcepted socket die when snd_wnd is 0 +- Bluetooth: Fix potential use-after-free when clear keys +- Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe() +- crypto: stm32 - Properly handle pm_runtime_get failing +- selftests/bpf: fix static assert compilation issue for test_cls_*.c +- wifi: mwifiex: fix error recovery in PCIE buffer descriptor management +- wifi: mwifiex: Fix OOB and integer underflow when rx packets +- can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case of OOM +- spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe() +- wifi: mt76: testmode: add nla_policy for MT76_TM_ATTR_TX_LENGTH +- bpf: reject unhashed sockets in bpf_sk_assign +- udp: re-score reuseport groups when connected sockets are present +- regmap: rbtree: Use alloc_flags for memory allocations +- hwrng: nomadik - keep clock enabled while hwrng is registered +- tcp: tcp_enter_quickack_mode() should be static +- bpf: Clear the probe_addr for uprobe +- bpftool: Use a local bpf_perf_event_value to fix accessing its fields +- cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit() +- x86/efistub: Fix PCI ROM preservation in mixed mode +- s390/paes: fix PKEY_TYPE_EP11_AES handling for secure keyblobs +- s390/pkey: fix/harmonize internal keyblob headers +- perf/imx_ddr: don't enable counter0 if none of 4 counters are used +- x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved +- selftests/resctrl: Close perf value read fd on errors +- selftests/resctrl: Unmount resctrl FS if child fails to run benchmark +- selftests/resctrl: Don't leak buffer in fill_cache() +- OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd() +- refscale: Fix uninitalized use of wait_queue_head_t +- selftests/harness: Actually report SKIP for signal tests +- tmpfs: verify {g,u}id mount options correctly +- eventfd: prevent underflow for eventfd semaphores +- eventfd: Export eventfd_ctx_do_read() +- reiserfs: Check the return value from __getblk() +- Revert "net: macsec: preserve ingress frame ordering" +- udf: Handle error when adding extent to a file +- udf: Check consistency of Space Bitmap Descriptor +- net: Avoid address overwrite in kernel_connect +- platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE notifications +- ALSA: seq: oss: Fix racy open/close of MIDI devices +- scsi: storvsc: Always set no_report_opcodes +- sctp: handle invalid error codes without calling BUG() +- bnx2x: fix page fault following EEH recovery +- netlabel: fix shift wrapping bug in netlbl_catmap_setlong() +- scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock +- idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM +- net: usb: qmi_wwan: add Quectel EM05GV2 +- vmbus_testing: fix wrong python syntax for integer value comparison +- clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM +- kprobes: Prohibit probing on CFI preamble symbol +- security: keys: perform capable check only on privileged operations +- ata: pata_arasan_cf: Use dev_err_probe() instead dev_err() in data_xfer() +- ovl: Always reevaluate the file signature for IMA +- platform/x86: huawei-wmi: Silence ambient light sensor +- platform/x86: intel: hid: Always call BTNL ACPI method +- ASoC: atmel: Fix the 8K sample parameter in I2SC master +- ASoc: codecs: ES8316: Fix DMIC config +- fs/nls: make load_nls() take a const parameter +- s390/dasd: fix hanging device after request requeue +- s390/dasd: use correct number of retries for ERP requests +- m68k: Fix invalid .section syntax +- vxlan: generalize vxlan_parse_gpe_hdr and remove unused args +- ethernet: atheros: fix return value check in atl1c_tso_csum() +- ASoC: da7219: Check for failure reading AAD IRQ events +- ASoC: da7219: Flush pending AAD IRQ when suspending +- 9p: virtio: make sure 'offs' is initialized in zc_request +- media: pci: cx23885: fix error handling for cx23885 ATSC boards +- media: pulse8-cec: handle possible ping error +- phy: qcom-snps-femto-v2: use qcom_snps_hsphy_suspend/resume error code +- ARM: dts: imx: Set default tuning step for imx7d usdhc +- ARM: dts: imx: Adjust dma-apbh node name +- ARM: dts: imx7s: Drop dma-apb interrupt-names +- ARM: dts: imx: update sdma node name format +- ASoC: rt5682: Fix a problem with error handling in the io init function of the soundwire +- pinctrl: amd: Don't show `Invalid config param` errors +- nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse +- nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers() +- fsi: master-ast-cf: Add MODULE_FIRMWARE macro +- firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe +- serial: sc16is7xx: fix bug when first setting GPIO direction +- serial: sc16is7xx: fix broken port 0 uart init +- serial: qcom-geni: fix opp vote on shutdown +- staging: rtl8712: fix race condition +- HID: wacom: remove the battery when the EKR is off +- usb: chipidea: imx: improve logic if samsung,picophy-* parameter is 0 +- usb: dwc3: meson-g12a: do post init to fix broken usb after resumption +- USB: serial: option: add FOXCONN T99W368/T99W373 product +- USB: serial: option: add Quectel EM05G variant (0x030e) +- modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules +- rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff +- net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index +- mmc: au1xmmc: force non-modular build and remove symbol_get usage +- ARM: pxa: remove use of symbol_get() +- erofs: ensure that the post-EOF tails are all zeroed +- btrfs: fix double free of anonymous device after snapshot creation failure +- btrfs: do not ASSERT() if the newly created subvolume already got read +- intel_idle: add Sierra Forest SoC support +- config: update Intel RAPL on TPMI to openeuler_defconfig for x86 +- powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() +- powercap: intel_rapl: Fix invalid setting of Power Limit 4 +- powercap: RAPL: Fix a NULL vs IS_ERR() bug +- powercap: intel_rapl: Introduce RAPL TPMI interface driver +- powercap: intel_rapl: Introduce core support for TPMI interface +- powercap: intel_rapl: Introduce RAPL I/F type +- powercap: intel_rapl: Make cpu optional for rapl_package +- powercap: intel_rapl: Use topology interface in rapl_init_domains() +- powercap: intel_rapl: Remove redundant cpu parameter +- powercap: intel_rapl: Add support for lock bit per Power Limit +- powercap: intel_rapl: Cleanup Power Limits support +- powercap: intel_rapl: Use bitmap for Power Limits +- thermal: int340x: processor_thermal: Refactor MMIO interface +- powercap: intel_rapl: Change primitive order +- powercap: intel_rapl: Use index to initialize primitive information +- powercap: intel_rapl: Support per domain energy/power/time unit +- powercap: intel_rapl: remove redundant store to value after multiply +- powercap: intel_rapl: Support per Interface primitive information +- powercap: intel_rapl: Support per Interface rapl_defaults +- powercap: intel_rapl: Replace deprecated CPU-hotplug functions +- powercap: intel_rapl: Use topology interface in rapl_add_package() +- powercap: intel_rapl: Allow probing without CPUID match +- powercap: intel_rapl: Remove unused field in struct rapl_if_priv +- KVM: mmu: increase the mmu_notifier_count for legacy APIs +- pmem: compile pmem legacy device while libnvdimm as a module + +* Wed Mar 06 2024 Jialin Zhang - 5.10.0-190.0.0.93 + +* Wed Mar 06 2024 Jialin Zhang - 5.10.0-190.0.0.92 +- !4928 drm/bridge: sii902x: Fix probing race issue +- !4931 phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP +- !4809 netfilter: nft_set_rbtree: skip end interval element from gc +- !4940 apparmor: avoid crash when parsed profile name is empty +- !4901 fix CVE-2021-47036 +- !4868 net: openvswitch: limit the number of recursions from action sets +- apparmor: avoid crash when parsed profile name is empty +- phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP +- !4861 ext4: regenerate buddy after block freeing failed if under fc replay +- drm/bridge: sii902x: Fix probing race issue +- !4857 x86/srso: Add SRSO mitigation for Hygon processors +- !4657 perf/x86/amd/uncore: Fix memory leak for events array +- !4902 [sync] PR-4865: Input: powermate - fix use-after-free in powermate_config_complete +- Input: powermate - fix use-after-free in powermate_config_complete +- udp: properly flush normal packet at GRO time +- udp: skip L4 aggregation for UDP tunnel packets +- !4891 Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security +- Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security +- net: openvswitch: limit the number of recursions from action sets +- ext4: regenerate buddy after block freeing failed if under fc replay +- x86/srso: Add SRSO mitigation for Hygon processors +- !4847 btrfs: mainline backport +- !4529 crypto: hisilicon/qm - add bracket protection for macro parameters +- btrfs: fix deadlock when cloning inline extents and using qgroups +- btrfs: do not start and wait for delalloc on snapshot roots on transaction commit +- !4678 f2fs: fix to avoid dirent corruption +- !4742 block: add check that partition length needs to be aligned with block size +- !4805 CVE-2023-52451 backport to OLK-5.10 v2 +- !4803 CVE-2024-26583 +- !4794 serial: imx: fix tx statemachine deadlock +- !4702 efivarfs: force RO when remounting if SetVariable is not supported +- netfilter: nft_set_rbtree: skip end interval element from gc +- !4790 v2 gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump +- powerpc/pseries/memhp: Fix access beyond end of drmem array +- powerpc/pseries/memhotplug: Quieten some DLPAR operations +- tls: fix race between tx work scheduling and socket close +- tls: fix race between async notify and socket close +- net: tls: factor out tls_*crypt_async_wait() +- tls: rx: simplify async wait +- !4764 binder: signal epoll threads of self-work +- !4674 Backport 5.10.193- 5.10.194 LTS patches from upstream +- !4747 KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache +- serial: imx: fix tx statemachine deadlock +- gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump +- !3123 Add pcie acs and no-bus-reset quirk for mucse Nics +- !4772 x86/fpu: Stop relying on userspace for info to fault in xsave buffer +- x86/fpu: Stop relying on userspace for info to fault in xsave buffer +- !4729 serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed +- binder: signal epoll threads of self-work +- !4690 CVE-2024-26586 +- !4737 blk-mq: fix IO hang from sbitmap wakeup race +- KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache +- !4672 uio: Fix use-after-free in uio_open +- block: add check that partition length needs to be aligned with block size +- blk-mq: fix IO hang from sbitmap wakeup race +- !4706 mtd: Fix gluebi NULL pointer dereference caused by ftl notifier +- serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed +- mtd: Fix gluebi NULL pointer dereference caused by ftl notifier +- efivarfs: force RO when remounting if SetVariable is not supported +- mlxsw: spectrum_acl_tcam: Fix stack corruption +- mlxsw: spectrum_acl_tcam: Reorder functions to avoid forward declarations +- mlxsw: spectrum_acl_tcam: Make fini symmetric to init +- mlxsw: spectrum_acl_tcam: Add missing mutex_destroy() +- mlxsw: spectrum: Use 'bitmap_zalloc()' when applicable +- mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure +- f2fs: fix to avoid dirent corruption +- rcu-tasks: Add trc_inspect_reader() checks for exiting critical section +- rcu-tasks: Wait for trc_read_check_handler() IPIs +- rcu-tasks: Fix IPI failure handling in trc_wait_for_one_reader +- Revert "MIPS: Alchemy: fix dbdma2" +- Revert "drm/amdgpu: install stub fence into potential unused fence pointers" +- mhi: pci_generic: Fix implicit conversion warning +- ARM: module: Use module_init_layout_section() to spot init sections +- arm64: module: Use module_init_layout_section() to spot init sections +- arm64: module-plts: inline linux/moduleloader.h +- module: Expose module_init_layout_section() +- ASoC: Intel: sof_sdw: include rt711.h for RT711 JD mode +- dma-buf/sw_sync: Avoid recursive lock during fence signal +- pinctrl: renesas: rza2: Add lock around pinctrl_generic{{add,remove}_group,{add,remove}_function} +- clk: Fix undefined reference to `clk_rate_exclusive_{get,put}' +- scsi: core: raid_class: Remove raid_component_add() +- scsi: snic: Fix double free in snic_tgt_create() +- ASoC: rt711: add two jack detection modes +- drm/i915: Fix premature release of request's reusable memory +- cgroup/cpuset: Free DL BW in case can_attach() fails +- sched/deadline: Create DL BW alloc, free & check overflow interface +- cgroup/cpuset: Iterate only if DEADLINE tasks are present +- sched/cpuset: Keep track of SCHED_DEADLINE task in cpusets +- sched/cpuset: Bring back cpuset_mutex +- cgroup/cpuset: Rename functions dealing with DEADLINE accounting +- timers/nohz: Switch to ONESHOT_STOPPED in the low-res handler when the tick is stopped +- tick: Detect and fix jiffies update stall +- torture: Fix hang during kthread shutdown phase +- drm/display/dp: Fix the DP DSC Receiver cap size +- drm/vmwgfx: Fix shader stage validation +- PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root bus +- media: vcodec: Fix potential array out-of-bounds in encoder queue_setup +- of: dynamic: Refactor action prints to not use "%pOF" inside devtree_lock +- radix tree: remove unused variable +- lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels +- batman-adv: Fix batadv_v_ogm_aggr_send memory leak +- batman-adv: Fix TT global entry leak when client roamed back +- batman-adv: Do not get eth header before batadv_check_management_packet +- batman-adv: Don't increase MTU when set by user +- batman-adv: Trigger events for auto adjusted MTU +- selinux: set next pointer before attaching to list +- nfsd: Fix race to FREE_STATEID and cl_revoked +- NFS: Fix a use after free in nfs_direct_join_group() +- mm: add a call to flush_cache_vmap() in vmap_pfn() +- clk: Fix slab-out-of-bounds error in devm_clk_release() +- NFSv4: Fix dropped lock for racing OPEN and delegation return +- ibmveth: Use dcbf rather than dcbfl +- bonding: fix macvlan over alb bond support +- net: remove bond_slave_has_mac_rcu() +- rtnetlink: Reject negative ifindexes in RTM_NEWLINK +- rtnetlink: return ENODEV when ifname does not exist and group is given +- netfilter: nf_tables: fix out of memory error handling +- net/sched: fix a qdisc modification with ambiguous command request +- igb: Avoid starting unnecessary workqueues +- ice: fix receive buffer size miscalculation +- net: bcmgenet: Fix return value check for fixed_phy_register() +- net: bgmac: Fix return value check for fixed_phy_register() +- ipvlan: Fix a reference count leak warning in ipvlan_ns_exit() +- dccp: annotate data-races in dccp_poll() +- sock: annotate data-races around prot->memory_pressure +- octeontx2-af: SDP: fix receive link config +- rbd: prevent busy loop when requesting exclusive lock +- rbd: retrieve and check lock owner twice before blocklisting +- rbd: make get_lock_owner_info() return a single locker or NULL +- libceph, rbd: ignore addr->type while comparing in some cases +- drm/amd/display: check TG is non-null before checking if enabled +- drm/amd/display: do not wait for mpc idle if tg is disabled +- ALSA: pcm: Fix potential data race at PCM memory allocation helpers +- dm integrity: reduce vmalloc space footprint on 32-bit architectures +- dm integrity: increase RECALC_SECTORS to improve recalculate speed +- fbdev: fix potential OOB read in fast_imageblit() +- fbdev: Fix sys_imageblit() for arbitrary image widths +- fbdev: Improve performance of sys_imageblit() +- MIPS: cpu-features: Use boot_cpu_type for CPU type based features +- MIPS: cpu-features: Enable octeon_cache by cpu_type +- fs: dlm: fix mismatch of plock results from userspace +- fs: dlm: use dlm_plock_info for do_unlock_close +- fs: dlm: change plock interrupted message to debug again +- fs: dlm: add pid to debug log +- dlm: replace usage of found with dedicated list iterator variable +- dlm: improve plock logging if interrupted +- PCI: acpiphp: Reassign resources on bridge if necessary +- xprtrdma: Remap Receive buffers after a reconnect +- NFSv4: fix out path in __nfs4_get_acl_uncached +- uio: Fix use-after-free in uio_open +- perf/x86/amd/uncore: Fix memory leak for events array +- crypto: hisilicon/qm - add bracket protection for macro parameters +- PCI: Add pcie acs and no-bus-reset quirk for mucse Nics + +* Tue Feb 27 2024 Jialin Zhang - 5.10.0-189.0.0.91 +- !4694 v2 mlxsw: spectrum_acl_tcam: Fix NULL pointer dereference in error path +- mlxsw: spectrum_acl_tcam: Fix NULL pointer dereference in error path +- !4647 hisi_ptt: Move type check to the beginning of hisi_ptt_pmu_event_init() +- !4649 arm64/mpam: update reminder message about MBHDL option +- !4662 v3 CVE-2023-52435 +- !4665 urma: fix some bugs of urma +- !4663 Backport 5.10.191 - 5.10.192 LTS patches from upstream +- !4646 binder: fix use-after-free in shinker's callback +- !4645 f2fs: explicitly null-terminate the xattr list +- urma: Fix bugs of memory leak and log loss +- net: Fix compile warning in skb_segment() +- net: prevent mss overflow in skb_segment() +- x86/retpoline,kprobes: Fix position of thunk sections with CONFIG_LTO_CLANG +- x86/static_call: Fix __static_call_fixup() +- x86/srso: Explain the untraining sequences a bit more +- mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove +- net: fix the RTO timer retransmitting skb every 1ms if linear option is enabled +- virtio-net: set queues after driver_ok +- netfilter: set default timeout to 3 secs for sctp shutdown send and recv state +- mmc: block: Fix in_flight[issue_type] value error +- mmc: wbsd: fix double mmc_free_host() in wbsd_init() +- cifs: Release folio lock on fscache read hit. +- ALSA: usb-audio: Add support for Mythware XA001AU capture and playback interfaces. +- serial: 8250: Fix oops for port->pm on uart_change_pm() +- ALSA: hda/realtek - Remodified 3k pull low procedure +- ASoC: meson: axg-tdm-formatter: fix channel slot allocation +- ASoC: rt5665: add missed regulator_bulk_disable +- arm64: dts: rockchip: Disable HS400 for eMMC on ROCK Pi 4 +- arm64: dts: rockchip: sort nodes/properties on rk3399-rock-4 +- arm64: dts: rockchip: fix regulator name on rk3399-rock-4 +- arm64: dts: rockchip: add SPDIF node for ROCK Pi 4 +- arm64: dts: rockchip: add ES8316 codec for ROCK Pi 4 +- arm64: dts: rockchip: use USB host by default on rk3399-rock-pi-4 +- arm64: dts: rockchip: fix supplies on rk3399-rock-pi-4 +- bus: ti-sysc: Flush posted write on enable before reset +- net: do not allow gso_size to be set to GSO_BY_FRAGS +- sock: Fix misuse of sk_under_memory_pressure() +- net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset +- i40e: fix misleading debug logs +- team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves +- net: phy: broadcom: stub c45 read/write for 54810 +- netfilter: nft_dynset: disallow object maps +- ipvs: fix racy memcpy in proc_do_sync_threshold +- drm/panel: simple: Fix AUO G121EAN01 panel timings according to the docs +- selftests: mirror_gre_changes: Tighten up the TTL test match +- ip_vti: fix potential slab-use-after-free in decode_session6 +- ip6_vti: fix slab-use-after-free in decode_session6 +- xfrm: fix slab-use-after-free in decode_session6 +- net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure +- net: af_key: fix sadb_x_filter validation +- i2c: designware: Handle invalid SMBus block data response length value +- btrfs: fix BUG_ON condition in btrfs_cancel_balance +- tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32 platforms +- powerpc/rtas_flash: allow user copy to flash block cache objects +- fbdev: mmp: fix value check in mmphw_probe() +- i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue +- virtio-mmio: don't break lifecycle of vm_dev +- virtio-mmio: Use to_virtio_mmio_device() to simply code +- tracing/probes: Fix to update dynamic data counter if fetcharg uses it +- tracing/probes: Have process_fetch_insn() take a void * instead of pt_regs +- mmc: meson-gx: fix deferred probing +- mmc: meson-gx: use devm_mmc_alloc_host +- mmc: core: add devm_mmc_alloc_host +- mmc: sunxi: fix deferred probing +- mmc: bcm2835: fix deferred probing +- USB: dwc3: qcom: fix NULL-deref on suspend +- usb: cdns3: fix NCM gadget RX speed 20x slow than expection at iMX8QM +- usb: cdns3: allocate TX FIFO size according to composite EP number +- usb: gadget: udc: core: Introduce check_config to verify USB configuration +- irqchip/mips-gic: Use raw spinlock for gic_lock +- irqchip/mips-gic: Get rid of the reliance on irq_cpu_online() +- bus: mhi: host: Range check CHDBOFF and ERDBOFF +- bus: mhi: Move host MHI code to "host" directory +- bus: mhi: Add MMIO region length to controller structure +- bus: mhi: Add MHI PCI support for WWAN modems +- iio: addac: stx104: Fix race condition when converting analog-to-digital +- iio: addac: stx104: Fix race condition for stx104_write_raw() +- iio: adc: stx104: Implement and utilize register structures +- iio: adc: stx104: Utilize iomap interface +- dt-bindings: iio: add AD74413R +- iio: add addac subdirectory +- IMA: allow/fix UML builds +- powerpc/kasan: Disable KCOV in KASAN code +- ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync() +- ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760 +- Bluetooth: btusb: Add MT7922 bluetooth ID for the Asus Ally +- Bluetooth: L2CAP: Fix use-after-free +- pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db() +- gfs2: Fix possible data races in gfs2_show_options() +- usb: chipidea: imx: add missing USB PHY DPDM wakeup setting +- usb: chipidea: imx: don't request QoS for imx8ulp +- media: platform: mediatek: vpu: fix NULL ptr dereference +- usb: gadget: u_serial: Avoid spinlock recursion in __gs_console_push +- media: v4l2-mem2mem: add lock to protect parameter num_rdy +- FS: JFS: Check for read-only mounted filesystem in txBegin +- FS: JFS: Fix null-ptr-deref Read in txBegin +- MIPS: dec: prom: Address -Warray-bounds warning +- fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev +- udf: Fix uninitialized array access for some pathnames +- ovl: check type and offset of struct vfsmount in ovl_entry +- RDMA/mlx5: Return the firmware result upon destroying QP/RQ +- HID: add quirk for 03f0:464a HP Elite Presenter Mouse +- drm/amdgpu: install stub fence into potential unused fence pointers +- dma-remap: use kvmalloc_array/kvfree for larger dma memory remap +- quota: Properly disable quotas when add_dquot_ref() fails +- iopoll: Call cpu_relax() in busy loops +- ASoC: Intel: sof_sdw: Add support for Rex soundwire +- ARM: dts: imx6dl: prtrvt, prtvt7, prti6q, prtwd2: fix USB related warnings +- PCI: tegra194: Fix possible array out of bounds access +- ASoC: Intel: sof_sdw: add quirk for LNL RVP +- ASoC: Intel: sof_sdw: add quirk for MTL RVP +- ALSA: emu10k1: roll up loops in DSP setup code for Audigy +- drm/radeon: Fix integer overflow in radeon_cs_parser_init +- net/mlx5: Skip clock update work when device is in error state +- net/mlx5: Move all internal timer metadata into a dedicated struct +- net/mlx5: Refactor init clock function +- mmc: sdhci-f-sdh30: Replace with sdhci_pltfm +- alpha: remove __init annotation from exported page_is_ram() +- scsi: qedf: Fix firmware halt over suspend and resume +- scsi: qedi: Fix firmware halt over suspend and resume +- scsi: core: Fix possible memory leak if device_add() fails +- scsi: snic: Fix possible memory leak if device_add() fails +- scsi: 53c700: Check that command slot is not NULL +- scsi: storvsc: Fix handling of virtual Fibre Channel timeouts +- scsi: core: Fix legacy /proc parsing buffer overflow +- netfilter: nf_tables: report use refcount overflow +- nvme-rdma: fix potential unbalanced freeze & unfreeze +- btrfs: set cache_block_group_error if we find an error +- btrfs: don't stop integrity writeback too early +- ibmvnic: Handle DMA unmapping of login buffs in release functions +- ibmvnic: Unmap DMA login rsp buffer on send login fail +- ibmvnic: Enforce stronger sanity checks on login response +- net/mlx5: Allow 0 for total host VFs +- dmaengine: mcf-edma: Fix a potential un-allocated memory access +- net: phy: at803x: remove set/get wol callbacks for AR8032 +- wifi: cfg80211: fix sband iftype data lookup for AP_VLAN +- IB/hfi1: Fix possible panic during hotplug remove +- drivers: net: prevent tun_build_skb() to exceed the packet size limit +- dccp: fix data-race around dp->dccps_mss_cache +- tunnels: fix kasan splat when generating ipv4 pmtu error +- net/packet: annotate data-races around tp->status +- mISDN: Update parameter type of dsp_cmx_send() +- selftests: forwarding: tc_flower: Relax success criterion +- selftests: forwarding: Switch off timeout +- selftests: forwarding: Skip test when no interfaces are specified +- selftests: forwarding: ethtool_extended_state: Skip when using veth pairs +- selftests: forwarding: ethtool: Skip when using veth pairs +- selftests: forwarding: Add a helper to skip test when using veth pairs +- selftests/rseq: Fix build with undefined __weak +- drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes +- x86/speculation: Add cpu_show_gds() prototype +- x86/mm: Fix VDSO and VVAR placement on 5-level paging machines +- usb: common: usb-conn-gpio: Prevent bailing out if initial role is none +- usb: dwc3: Properly handle processing of pending events +- usb-storage: alauda: Fix uninit-value in alauda_check_media() +- binder: fix memory leak in binder_init() +- iio: cros_ec: Fix the allocation size for cros_ec_command +- io_uring: correct check for O_TMPFILE +- nilfs2: fix use-after-free of nilfs_root in dirtying inodes via iput +- radix tree test suite: fix incorrect allocation size for pthreads +- hwmon: (pmbus/bel-pfe) Enable PMBUS_SKIP_STATUS_CHECK for pfe1100 +- drm/amd/display: check attr flag before set cursor degamma on DCN3+ +- drm/shmem-helper: Reset vma->vm_ops before calling dma_buf_mmap() +- drm/nouveau/gr: enable memory loads on helper invocation on all channels +- riscv,mmio: Fix readX()-to-delay() ordering +- dmaengine: pl330: Return DMA_PAUSED when transaction is paused +- selftests/bpf: Fix sk_assign on s390x +- selftests/bpf: Workaround verification failure for fexit_bpf2bpf/func_replace_return_code +- selftests/bpf: make test_align selftest more robust +- bpf: aggressively forget precise markings during state checkpointing +- bpf: stop setting precise in current state +- bpf: allow precision tracking for programs with subprogs +- ipv6: adjust ndisc_is_useropt() to also return true for PIO +- mmc: moxart: read scr register without changing byte order +- wireguard: allowedips: expand maximum node depth +- !4600 Backport 5.10.190 LTS patches from upstream +- !4363 [OLK-5.10] add ACPI/EINJ CXL error types +- ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node +- ARM: dts: imx6sll: fixup of operating points +- ARM: dts: imx: add usb alias +- wifi: mt76: mt7615: do not advertise 5 GHz on first phy of MT7615D (DBDC) +- mt76: mt7615: Fix fall-through warnings for Clang +- mt76: move band capabilities in mt76_phy +- exfat: support dynamic allocate bh for exfat_entry_set_cache +- exfat: speed up iterate/lookup by fixing start point of traversing cluster chain +- PM: sleep: wakeirq: fix wake irq arming +- PM / wakeirq: support enabling wake-up irq after runtime_suspend called +- soundwire: fix enumeration completion +- soundwire: bus: pm_runtime_request_resume on peripheral attachment +- soundwire: bus: add better dev_dbg to track complete() calls +- selftests/rseq: Play nice with binaries statically linked against glibc 2.35+ +- powerpc/mm/altmap: Fix altmap boundary check +- mtd: rawnand: fsl_upm: Fix an off-by one test in fun_exec_op() +- mtd: rawnand: omap_elm: Fix incorrect type in assignment +- ext2: Drop fragment support +- fs: Protect reconfiguration of sb read-write from racing writes +- net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb +- fs/sysv: Null check to prevent null-ptr-deref bug +- file: reinstate f_pos locking optimization for regular files +- bpf: Disable preemption in bpf_event_output +- arm64: dts: stratix10: fix incorrect I2C property for SCL signal +- mtd: rawnand: meson: fix OOB available bytes for ECC +- mtd: spinand: toshiba: Fix ecc_get_status +- exfat: release s_lock before calling dir_emit() +- exfat: use kvmalloc_array/kvfree instead of kmalloc_array/kfree +- ceph: defer stopping mdsc delayed_work +- USB: zaurus: Add ID for A-300/B-500/C-700 +- libceph: fix potential hang in ceph_osdc_notify() +- scsi: zfcp: Defer fc_rport blocking until after ADISC response +- tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen +- tcp_metrics: annotate data-races around tm->tcpm_net +- tcp_metrics: annotate data-races around tm->tcpm_vals[] +- tcp_metrics: annotate data-races around tm->tcpm_lock +- tcp_metrics: annotate data-races around tm->tcpm_stamp +- tcp_metrics: fix addr_same() helper +- net/mlx5: fs_core: Skip the FTs in the same FS_TYPE_PRIO_CHAINS fs_prio +- net/mlx5: fs_core: Make find_closest_ft more generic +- vxlan: Fix nexthop hash size +- ip6mr: Fix skb_under_panic in ip6mr_cache_report() +- s390/qeth: Don't call dev_close/dev_open (DOWN/UP) +- net: dcb: choose correct policy to parse DCB_ATTR_BCN +- net: netsec: Ignore 'phy-mode' on SynQuacer in DT mode +- net: ll_temac: fix error checking of irq_of_parse_and_map() +- net: ll_temac: Switch to use dev_err_probe() helper +- bpf: sockmap: Remove preempt_disable in sock_map_sk_acquire +- net: add missing data-race annotation for sk_ll_usec +- net: add missing data-race annotations around sk->sk_peek_off +- net: add missing READ_ONCE(sk->sk_rcvbuf) annotation +- net: add missing READ_ONCE(sk->sk_sndbuf) annotation +- net: add missing READ_ONCE(sk->sk_rcvlowat) annotation +- net: annotate data-races around sk->sk_max_pacing_rate +- mISDN: hfcpci: Fix potential deadlock on &hc->lock +- net: sched: cls_u32: Fix match key mis-addressing +- perf test uprobe_from_different_cu: Skip if there is no gcc +- net: dsa: fix value check in bcm_sf2_sw_probe() +- rtnetlink: let rtnl_bridge_setlink checks IFLA_BRIDGE_MODE length +- bpf: Add length check for SK_DIAG_BPF_STORAGE_REQ_MAP_FD parsing +- net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer() +- net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx +- wifi: cfg80211: Fix return value in scan logic +- KVM: s390: fix sthyi error handling +- word-at-a-time: use the same return type for has_zero regardless of endianness +- arm64: dts: imx8mn-var-som: add missing pull-up for onboard PHY reset pinmux +- perf: Fix function pointer case +- io_uring: gate iowait schedule on having pending requests +- ASoC: cs42l51: fix driver to properly autoload with automatic module loading +- io_uring: treat -EAGAIN for REQ_F_NOWAIT as final for io-wq +- selftests: mptcp: depend on SYN_COOKIES +- cpufreq: intel_pstate: Drop ACPI _PSS states table patching +- ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily +- ACPI: processor: perflib: Use the "no limit" frequency QoS +- dm cache policy smq: ensure IO doesn't prevent cleaner policy progress +- ceph: never send metrics if disable_send_metrics is set +- ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register +- s390/dasd: fix hanging device after quiesce/resume +- virtio-net: fix race between set queues and probe +- btrfs: check if the transaction was aborted at btrfs_wait_for_commit() +- staging: r8712: Fix memory leak in _r8712_init_xmit_priv() +- staging: rtl8712: Use constants from +- KVM: VMX: Don't fudge CR0 and CR4 for restricted L2 guest +- KVM: nVMX: Do not clear CR3 load/store exiting bits if L1 wants 'em +- KVM: VMX: Fold ept_update_paging_mode_cr0() back into vmx_set_cr0() +- KVM: VMX: Invert handling of CR0.WP for EPT without unrestricted guest +- irqchip/gic-v4.1: Properly lock VPEs when doing a directLPI invalidation +- irq-bcm6345-l1: Do not assume a fixed block to cpu mapping +- tpm_tis: Explicitly check for error code +- nfsd: Remove incorrect check in nfsd4_validate_stateid +- file: always lock position for FMODE_ATOMIC_POS +- btrfs: check for commit error at btrfs_attach_transaction_barrier() +- hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled +- ALSA: hda/relatek: Enable Mute LED on HP 250 G8 +- tty: n_gsm: fix UAF in gsm_cleanup_mux +- staging: ks7010: potential buffer overflow in ks_wlan_set_encode_ext() +- Documentation: security-bugs.rst: clarify CVE handling +- Documentation: security-bugs.rst: update preferences when dealing with the linux-distros group +- Revert "usb: xhci: tegra: Fix error check" +- usb: xhci-mtk: set the dma max_seg_size +- USB: quirks: add quirk for Focusrite Scarlett +- usb: ohci-at91: Fix the unhandle interrupt when resume +- usb: dwc3: don't reset device side if dwc3 was configured as host-only +- usb: dwc3: pci: skip BYT GPIO lookup table for hardwired phy +- Revert "usb: dwc3: core: Enable AutoRetry feature in the controller" +- can: gs_usb: gs_can_close(): add missing set of CAN state to CAN_STATE_STOPPED +- USB: serial: simple: sort driver entries +- USB: serial: simple: add Kaufmann RKS+CAN VCP +- USB: serial: option: add Quectel EC200A module support +- USB: serial: option: support Quectel EM060K_128 +- serial: sifive: Fix sifive_serial_console_setup() section +- serial: 8250_dw: Preserve original value of DLF register +- serial: qcom-geni: drop bogus runtime pm state update +- USB: gadget: Fix the memory leak in raw_gadget driver +- Revert "usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init()" +- ring-buffer: Fix wrong stat of cpu_buffer->read +- ata: pata_ns87415: mark ns87560_tf_read static +- dm raid: protect md_stop() with 'reconfig_mutex' +- dm raid: clean up four equivalent goto tags in raid_ctr() +- dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths +- block: Fix a source code comment in include/uapi/linux/blkzoned.h +- ASoC: fsl_spdif: Silence output on stop +- drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb() +- RDMA/mthca: Fix crash when polling CQ for shared QPs +- drm/msm/adreno: Fix snapshot BINDLESS_DATA size +- drm/msm/dpu: drop enum dpu_core_perf_data_bus_id +- RDMA/mlx4: Make check for invalid flags stricter +- tipc: stop tipc crypto on failure in tipc_node_create +- tipc: check return value of pskb_trim() +- benet: fix return value check in be_lancer_xmit_workarounds() +- net/sched: mqprio: Add length check for TCA_MQPRIO_{MAX/MIN}_RATE64 +- net/sched: mqprio: add extack to mqprio_parse_nlattr() +- net/sched: mqprio: refactor nlattr parsing to a separate function +- netfilter: nftables: add helper function to validate set element data +- netfilter: nft_set_rbtree: fix overlap expiration walk +- platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100 +- team: reset team's flags when down link is P2P device +- bonding: reset bond's flags when down link is P2P device +- ice: Fix memory management in ice_ethtool_fdir.c +- ipv6 addrconf: fix bug where deleting a mngtmpaddr can create a new temporary address +- ethernet: atheros: fix return value check in atl1e_tso_csum() +- phy: hisilicon: Fix an out of bounds check in hisi_inno_phy_probe() +- vxlan: calculate correct header length for GPE +- vxlan: move to its own directory +- net: phy: marvell10g: fix 88x3310 power up +- i40e: Fix an NULL vs IS_ERR() bug for debugfs_create_dir() +- media: staging: atomisp: select V4L2_FWNODE +- phy: qcom-snps-femto-v2: properly enable ref clock +- phy: qcom-snps-femto-v2: keep cfg_ahb_clk enabled during runtime suspend +- phy: qcom-snps: correct struct qcom_snps_hsphy kerneldoc +- phy: qcom-snps: Use dev_err_probe() to simplify code +- ext4: fix to check return value of freeze_bdev() in ext4_shutdown() +- pwm: meson: fix handling of period/duty if greater than UINT_MAX +- pwm: meson: Simplify duplicated per-channel tracking +- fs: dlm: interrupt posix locks only when process is killed +- dlm: rearrange async condition return +- dlm: cleanup plock_op vs plock_xop +- PCI/ASPM: Avoid link retraining race +- PCI/ASPM: Factor out pcie_wait_for_retrain() +- PCI/ASPM: Return 0 or -ETIMEDOUT from pcie_retrain_link() +- i2c: nomadik: Remove a useless call in the remove function +- i2c: nomadik: Use devm_clk_get_enabled() +- i2c: nomadik: Remove unnecessary goto label +- i2c: Improve size determinations +- i2c: Delete error messages for failed memory allocations +- btrfs: fix extent buffer leak after tree mod log failure at split_node() +- btrfs: fix race between quota disable and relocation +- gpio: tps68470: Make tps68470_gpio_output() always set the initial value +- io_uring: don't audit the capability check in io_uring_create() +- KVM: s390: pv: fix index value of replaced ASCE +- arm64/mpam: update reminder message about MBHDL option +- !4388 intel: backport Intel SST TPMI support +- !4387 intel: backport uncore freq control tpmi support for BHS platform +- !4202 Intel: Backport GNR/SRF pmu uncore support back to kernel 5.10 +- !4273 Intel: Backport SRF/GRR perf cstate support back to kernel 5.10 +- !4048 [OLK-5.10] Intel: Backport PEBS format 5 support to OLK-5.10 for GNR/SRF Timed PEBS enabling +- !4433 【OLK-5.10】Add PCH less Boot support on GNR/SRF +- !4230 [OLK-5.10] Intel: backport to support RAS EDAC feature on Granite Rapids(GNR) and Sierra Forest(SRF) server +- !4617 Fix the bug of tp negotiation concurrency +- hwtracing: hisi_ptt: Move type check to the beginning of hisi_ptt_pmu_event_init() +- ubcore: fix the bug of tp negotiation concurrency +- binder: fix use-after-free in shinker's callback +- !4623 i2c: Optimized the value setting of maxwrite limit to fifo depth - 1 +- !4510 ubi: fastmap: Optimize ubi wl algorithm to improve flash service life +- f2fs: explicitly null-terminate the xattr list +- !4220 backport some patches for kunpeng hccs +- i2c: hisi: Add clearing tx aempty interrupt operation +- i2c: hisi: Optimized the value setting of maxwrite limit to fifo depth - 1 +- ubi: fastmap: Add control in 'UBI_IOCATT' ioctl to reserve PEBs for filling pools +- ubi: fastmap: Add module parameter to control reserving filling pool PEBs +- ubi: fastmap: Fix lapsed wear leveling for first 64 PEBs +- ubi: fastmap: Get wl PEB even ec beyonds the 'max' if free PEBs are run out +- ubi: fastmap: may_reserve_for_fm: Don't reserve PEB if fm_anchor exists +- ubi: fastmap: Remove unneeded break condition while filling pools +- ubi: fastmap: Wait until there are enough free PEBs before filling pools +- ubi: fastmap: Use free pebs reserved for bad block handling +- ubi: Replace erase_block() with sync_erase() +- ubi: fastmap: Allocate memory with GFP_NOFS in ubi_update_fastmap +- ubi: fastmap: erase_block: Get erase counter from wl_entry rather than flash +- ubi: fastmap: Fix missed ec updating after erasing old fastmap data block +- ubi: Simplify bool conversion +- ubi: Fix repeated words in comments +- ubi: fastmap: Check wl_pool for free peb before wear leveling +- ubi: fastmap: Use the bitmap API to allocate bitmaps +- i2c: i801: Add support for Intel Birch Stream SoC +- spi: intel-pci: Add support for Granite Rapids SPI serial flash +- config: update Intel Uncore freq control to openeuler_defconfig for x86 +- config: update Intel SST on TPMI to openeuler_defconfig for x86 +- platform/x86: intel-uncore-freq: Conditionally create attribute for read frequency +- platform/x86/intel-uncore-freq: Ignore minor version change +- platform/x86/intel-uncore-freq: tpmi: Provide cluster level control +- platform/x86/intel-uncore-freq: Support for cluster level controls +- platform/x86/intel-uncore-freq: Uncore frequency control via TPMI +- platform/x86/intel-uncore-freq: Return error on write frequency +- platform/x86: intel-uncore-freq: fix uncore_freq_common_init() error codes +- platform/x86/intel-uncore-freq: Split common and enumeration part +- platform/x86: ISST: Ignore minor version change +- platform/x86: intel_speed_select_if: Remove hardcoded map size +- platform/x86: ISST: Allow level 0 to be not present +- platform/x86: ISST: Use fuse enabled mask instead of allowed levels +- platform/x86: ISST: Reduce noise for missing numa information in logs +- platform/x86: ISST: Fix usage counter +- platform/x86: ISST: Reset default callback on unregister +- platform/x86: ISST: Remove 8 socket limit +- platform/x86: ISST: unlock on error path in tpmi_sst_init() +- platform/x86: ISST: Add suspend/resume callbacks +- platform/x86: ISST: Add SST-TF support via TPMI +- platform/x86: ISST: Add SST-BF support via TPMI +- platform/x86: ISST: Add SST-PP support via TPMI +- platform/x86: ISST: Add SST-CP support via TPMI +- platform/x86: ISST: Parse SST MMIO and update instance +- platform/x86: ISST: Enumerate TPMI SST and create framework +- platform/x86: ISST: Add support for MSR 0x54 +- platform/x86: ISST: Add API version of the target +- platform/x86: ISST: Add IOCTL default callback +- platform/x86: ISST: Add TPMI target +- platform/x86: ISST: Fix kernel documentation warnings +- platform/x86: ISST: Increase range of valid mail box commands +- ACPI: APEI: EINJ: warn on invalid argument when explicitly indicated by platform +- ACPI: APEI: EINJ: Add CXL error types +- ACPI: APEI: EINJ: Limit error type to 32-bit width +- ACPI: APEI: EINJ: Refactor available_error_type_show() +- ACPI: APEI: EINJ: Fix formatting errors +- ACPI, APEI, EINJ: Refuse to inject into the zero page +- perf/x86/intel/cstate: Add Grand Ridge support +- perf/x86/intel/cstate: Add Sierra Forest support +- x86/smp: Export symbol cpu_clustergroup_mask() +- perf/x86/intel/cstate: Cleanup duplicate attr_groups +- soc: hisilicon: kunpeng_hccs: Support the platform with PCC type3 and interrupt ack +- doc: kunpeng_hccs: Fix incorrect email domain name +- soc: hisilicon: kunpeng_hccs: Remove an unused blank line +- soc: hisilicon: kunpeng_hccs: Add failure log for no _CRS method +- soc: hisilicon: kunpeng_hccs: Fix some incorrect format strings +- Revert "soc: hisilicon: kunpeng_hccs: Support the platform with PCC type3 and interrupt ack" +- Revert "soc: hisilicon: kunpeng_hccs: Add failure log for no _CRS method" +- Revert "soc: hisilicon: kunpeng_hccs: Fix some incorrect format strings" +- perf/x86/intel/uncore: Support Sierra Forest and Grand Ridge +- perf/x86/intel/uncore: Support IIO free-running counters on GNR +- perf/x86/intel/uncore: Support Granite Rapids +- perf/x86/uncore: Use u64 to replace unsigned for the uncore offsets array +- perf/x86/intel/uncore: Generic uncore_get_uncores and MMIO format of SPR +- x86/cpu: Fix Crestmont uarch +- EDAC/i10nm: Skip the absent memory controllers +- EDAC/i10nm: Add Intel Sierra Forest server support +- EDAC/i10nm: Add Intel Granite Rapids server support +- EDAC/i10nm: Make more configurations CPU model specific +- perf/x86/intel: Increase max number of the fixed counters +- KVM: x86: use the KVM side max supported fixed counter +- perf/x86/intel: Enable PEBS format 5 +- perf/x86/intel: Fix PEBS-via-PT reload base value for Extended PEBS + +* Wed Feb 21 2024 Jialin Zhang - 5.10.0-188.0.0.90 +- !4605 arm64/mpam: support resctrl fs to show mounting option +- !4604 arm64/mpam: Skip updates of unrelated ctrl type +- !4602 arm64/mpam: support MPAM v0.1 version +- !4521 xen-netback: don't produce zero-size SKB frags +- arm64/mpam: support resctrl fs to show mounting option +- arm64/mpam: Skip updates of unrelated ctrl type +- arm64/mpam: support MPAM v0.1 version +- !4588 fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super +- !4531 fs:/dcache.c: fix negative dentry flag warning in dentry_free +- !4580 printk: fix double unlock issue in logbuf_lock +- fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super +- !4524 fix spi: hisi-sfc-v3xx: Return IRQ_NONE if no interrupts were detected +- spi: hisi-sfc-v3xx: return IRQ_NONE if no interrupts were detected +- !4562 v4 tracing: Backport bugfixes +- printk: fix double unlock issue in logbuf_lock +- trace: Fix kabi breakage in struct trace_event_file +- tracing: Fix uaf issue when open the hist or hist_debug file +- tracing: Have event inject files inc the trace array ref count +- tracing: Have trace_event_file have ref counters +- tracing: Increase trace array ref count on enable and filter files +- fs:/dcache.c: fix negative dentry flag warning in dentry_free +- xen-netback: don't produce zero-size SKB frags +- !4431 v2 patchset for CVE-2023-52340 +- ipv6: fix kabi change in struct dst_ops +- ipv6: Document that max_size sysctl is deprecated +- ipv6: remove max_size check inline with ipv4 + +* Tue Feb 06 2024 Jialin Zhang - 5.10.0-187.0.0.89 +- !4496 [sync] PR-4362: ubifs: Queue up space reservation tasks if retrying many times +- !4461 netfilter: nf_tables: reject QUEUE/DROP verdict parameters +- ubifs: Queue up space reservation tasks if retrying many times +- !4484 v4 Using smmu IIDR registers +- iommu/arm-smmu-v3: Enable iotlb_sync_map according to SMMU_IIDR +- Revert "iommu/arm-smmu-v3: Add a SYNC command to avoid broken page table prefetch" +- netfilter: nf_tables: reject QUEUE/DROP verdict parameters +- !3861 nvme: sanitize metadata bounce buffer for reads +- !4256 scsi: core: Always send batch on reset or error handling command +- scsi: core: Always send batch on reset or error handling command +- Revert "scsi: core: Add scsi_prot_ref_tag() helper" +- Revert "scsi: core: Introduce scsi_get_sector()" +- Revert "scsi: core: Make scsi_get_lba() return the LBA" +- Revert "scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request" +- Revert "scsi: core: Use a structure member to track the SCSI command submitter" +- Revert "scsi: core: Always send batch on reset or error handling command" +- scsi: core: Always send batch on reset or error handling command +- scsi: core: Use a structure member to track the SCSI command submitter +- scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request +- scsi: core: Make scsi_get_lba() return the LBA +- scsi: core: Introduce scsi_get_sector() +- scsi: core: Add scsi_prot_ref_tag() helper +- nvme: sanitize metadata bounce buffer for reads + +* Wed Jan 31 2024 Jialin Zhang - 5.10.0-186.0.0.88 +- !4327 【OLK-5.10】cgroup_writeback: fix deadlock in cgroup1_writeback +- !4280 v2 fs:/dcache.c: fix negative dentry limit not complete problem +- !4321 io_uring/af_unix: disable sending io_uring over sockets +- !4290 net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv +- cgroup_writeback: fix deadlock in cgroup1_writeback +- !4266 ksmbd: fix slab-out-of-bounds in smb_strndup_from_utf16() +- io_uring/af_unix: disable sending io_uring over sockets +- !4262 [sync] PR-4255: drm/amdgpu: Fix potential fence use-after-free v2 +- !4268 linux Mainline ubifs Fix Patch bacnport to 5.10 +- net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv +- !4270 fix spinlock already unlocked in inet_csk_reqsk_queue_add' bug +- fs:/dcache.c: fix negative dentry limit not complete problem +- Revert "fs:/dcache.c: fix negative dentry limit not complete problem" +- !4257 nfc: nci: fix possible NULL pointer dereference in send_acknowledge() +- !4032 intel: add TPMI base driver support for GNR +- !3372 Cluster scheduler support +- ipv6: init the accept_queue's spinlocks in inet6_create +- tcp: make sure init the accept_queue's spinlocks once +- ubifs: fix possible dereference after free +- ubi: block: Fix use-after-free in ubiblock_cleanup +- Revert "mtd/ubi/block: Fix uaf problem in ubiblock_cleanup" +- !4003 ext4: fix some ext4_lblk_t overflow issues +- ksmbd: fix slab-out-of-bounds in smb_strndup_from_utf16() +- drm/amdgpu: Fix potential fence use-after-free v2 +- nfc: nci: fix possible NULL pointer dereference in send_acknowledge() +- !4149 block: remove precise_iostat +- !4213 netlink: fix potential sleeping issue in mqueue_flush_file +- !4121 Init support for ppc64le +- netlink: fix potential sleeping issue in mqueue_flush_file +- !4203 mm/dynamic_hugetlb: skip unexpected migration +- mm/dynamic_hugetlb: skip unexpected migration +- !3228 net: txgbe: Fix memleak in txgbe_calc_eeprom_checksum() +- !4167 sched/fair: Fix qos_timer deadlock when cpuhp offline +- !3134 Add MODULE_FIRMWARE() for FIRMWARE_TG357766. +- !4015 drm/amdgpu: correct the amdgpu runtime dereference usage count +- !4014 drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper() +- !4013 drm/amdgpu: correct chunk_ptr to a pointer to chunk. +- !4012 drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL +- !4010 drm/amd/display: Exit idle optimizations before attempt to access PHY +- !3955 drm/radeon: possible buffer overflow +- !3634 Intel: Backport Granite Rapids(GNR) core PMU support to OLK-5.10 +- sched/fair: Fix qos_timer deadlock when cpuhp offline +- block: remove precise_iostat +- arch: powerpc: add openeuler_defconfig file support for ppc64le compile +- sched,x86: enable CONFIG_SCHED_CLUSTER in openeuler_defconfig +- tools headers cpufeatures: Sync with the kernel sources +- topology: Remove unused cpu_cluster_mask() +- sched,x86: Don't use cluster topology for x86 hybrid CPUs +- x86/smp: Factor out parts of native_smp_prepare_cpus() +- sched,x86: Fix L2 cache mask +- sched: Add cluster scheduler level for x86 +- x86/cpufeatures: Enumerate Intel Hybrid Technology feature bit +- config: update PMT and TPMI openeuler_defconfig for x86 +- platform/x86/intel/vsec: Fix xa_alloc memory leak +- platform/x86/intel/tpmi: Add defines to get version information +- platform/x86/intel/tpmi: Add debugfs support for read/write blocked +- platform/x86/intel/tpmi: Add debugfs interface +- lib/string_helpers: Introduce parse_int_array_user() +- lib/cmdline: Allow get_options() to take 0 to validate the input +- platform/x86/intel/tpmi: Read feature control status +- platform/x86/intel/tpmi: Prevent overflow for cap_offset +- platform/x86/intel: tpmi: Remove hardcoded unit and offset +- platform/x86/intel: tpmi: Revise the comment of intel_vsec_add_aux +- platform/x86/intel: tpmi: Fix double free in tpmi_create_device() +- platform/x86/intel/tpmi: Fix double free reported by Smatch +- platform/x86/intel/tpmi: ADD tpmi external interface for tpmi feature drivers +- platform/x86/intel/tpmi: Process CPU package mapping +- platform/x86/intel: Intel TPMI enumeration driver +- platform/x86/intel: vsec: Use intel_vsec_dev_release() to simplify init() error cleanup +- platform/x86/intel: vsec: Explicitly enable capabilities +- platform/x86/intel: vsec: Fix a memory leak in intel_vsec_add_aux +- platform/x86/intel/vsec: Use mutex for ida_alloc() and ida_free() +- platform/x86/intel/vsec: Support private data +- platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux() +- platform/x86/intel/vsec: Add TPMI ID +- platform/x86/intel/vsec: Fix wrong type for local status variables +- platform/x86/intel/vsec: Add PCI error recovery support to Intel PMT +- platform/x86/intel/pmt: Ignore uninitialized entries +- platform/x86/intel/pmt: Add INTEL_PMT module namespace +- platform/x86/intel/pmt: telemetry: Fix fixed region handling +- platform/x86/intel/vsec: Rework early hardware code +- platform/x86/intel: Fix pmt_crashlog array reference +- platform/x86/intel: Fix 'rmmod pmt_telemetry' panic +- platform/x86/intel: Move intel_pmt from MFD to Auxiliary Bus +- driver core: auxiliary bus: Add driver data helpers +- drm/amdgpu: correct the amdgpu runtime dereference usage count +- drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper() +- drm/amdgpu: correct chunk_ptr to a pointer to chunk. +- drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL +- drm/amd/display: Exit idle optimizations before attempt to access PHY +- ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS +- ext4: avoid overlapping preallocations due to overflow +- ext4: fix BUG in ext4_mb_new_inode_pa() due to overflow +- ext4: add two helper functions extent_logical_end() and pa_logical_end() +- drm/radeon: possible buffer overflow +- perf/x86/intel: Fix the FRONTEND encoding on GNR and MTL +- perf/x86/cstate: Add Granite Rapids support +- perf/x86/msr: Add Granite Rapids +- perf/x86/intel: Add Granite Rapids +- net: txgbe: Fix memleak in txgbe_calc_eeprom_checksum() +- Add MODULE_FIRMWARE() for FIRMWARE_TG357766. + +* Tue Jan 25 2024 jiahua.yu - 5.10.0-185.0.0.88 +- init support for arch ppc64le + +* Wed Jan 24 2024 Jialin Zhang - 5.10.0-185.0.0.87 +- !4138 KVM: arm64: arch_timer: init ret for kvm_timer_enable +- !3689 Intel: Backport Sierra Forest(SRF) core PMU support to OLK-5.10 +- !4134 fs:/dcache.c: fix negative dentry limit not complete problem +- !4136 udma: change the way of query dfx resource +- !4054 ext4: correct return value of ext4_convert_meta_bg +- !4058 ext4: synchronize the casefold bugfix from the mainline. +- hns3 udma: change way of query dfx resource +- fs:/dcache.c: fix negative dentry limit not complete problem +- KVM: arm64: arch_timer: init ret for kvm_timer_enable +- !4100 netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval() +- !3975 md/raid1-10: limit the number of plugged bio +- !3998 cpufreq: CPPC: Fix performance/frequency conversion +- !4022 netfilter: nf_tables: Reject tables of unsupported family +- netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval() +- !4090 ida: Fix crash in ida_free when the bitmap is empty +- !4091 x86/quirks: Add parameter to clear MSIs early +- x86/quirks: Add parameter to clear MSIs early on boot +- x86/PCI: Export find_cap() to be used in early PCI code +- ida: Fix crash in ida_free when the bitmap is empty +- !4019 mm/filemap: avoid buffered read/write race to read inconsistent data +- !4069 tipc: fix a potential deadlock on &tx->lock +- !4064 smb: client: fix OOB in receive_encrypted_standard() +- tipc: fix a potential deadlock on &tx->lock +- smb: client: fix OOB in receive_encrypted_standard() +- !4024 udma: add mailbox description printing. +- ext4: improve error handling from ext4_dirhash() +- ext4: reject casefold inode flag without casefold feature +- ext4: correct return value of ext4_convert_meta_bg +- hns3 udma: add print mailbox description +- netfilter: nf_tables: Reject tables of unsupported family +- mm/filemap: avoid buffered read/write race to read inconsistent data +- cpufreq: CPPC: Fix performance/frequency conversion +- md/raid1-10: fix casting from randomized structure in raid1_submit_write() +- md/raid1-10: limit the number of plugged bio +- md/raid1-10: don't handle pluged bio by daemon thread +- md/md-bitmap: add a new helper to unplug bitmap asynchrously +- md/raid1-10: submit write io directly if bitmap is not enabled +- md/raid1-10: factor out a helper to submit normal write +- md/raid1-10: factor out a helper to add bio to plug +- md/raid10: prevent soft lockup while flush writes +- md: raid1/raid10: drop pending_cnt +- md: drop queue limitation for RAID1 and RAID10 +- Revert "md/raid10: fix softlockup in raid10_unplug" +- perf/x86/intel: Add a quirk for the calculation of the number of counters on Alder Lake +- perf/x86/intel: Fix fixed counter check warning for some Alder Lake +- perf/x86/intel: Add Crestmont PMU +- x86/cpu: Update Hybrids +- x86/cpu: Fix Crestmont uarch +- x86/cpu: Fix Gracemont uarch +- perf/x86/msr: Add Meteor Lake support +- perf/x86/cstate: Add Meteor Lake support +- perf/x86/intel: Support Architectural PerfMon Extension leaf +- x86/cpufeatures: Add Architectural PerfMon Extension bit +- perf/x86: Support Retire Latency +- perf/x86: Add Meteor Lake support +- perf: Add PMU_FORMAT_ATTR_SHOW +- perf/x86/intel: Fix unchecked MSR access error for Alder Lake N +- x86/cpu: Add CPU model numbers for Meteor Lake +- perf/x86/intel: Fix PEBS data source encoding for ADL +- perf/x86/intel: Fix PEBS memory access info encoding for ADL +- perf/x86/uncore: Add new Alder Lake and Raptor Lake support +- perf/x86/uncore: Clean up uncore_pci_ids[] +- perf/x86/cstate: Add new Alder Lake and Raptor Lake support +- perf/x86/msr: Add new Alder Lake and Raptor Lake support +- perf/x86: Add new Alder Lake and Raptor Lake support +- x86/cpu: Add new Alderlake and Raptorlake CPU model numbers +- perf/x86/uncore: Add Raptor Lake uncore support +- perf/x86/msr: Add Raptor Lake CPU support +- perf/x86/cstate: Add Raptor Lake support +- perf/x86: Add Intel Raptor Lake support +- perf/x86/intel/uncore: Add IMC uncore support for ADL +- x86/cpu: Drop spurious underscore from RAPTOR_LAKE #define +- x86/cpu: Add Raptor Lake to Intel family +- perf/x86/intel: Apply mid ACK for small core +- perf/x86/rapl: Add support for Intel Alder Lake +- perf/x86/cstate: Add Alder Lake CPU support +- perf/x86/msr: Add Alder Lake CPU support +- perf/x86/intel/uncore: Add Alder Lake support +- perf: Extend PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE +- perf/x86/intel: Add Alder Lake Hybrid support +- perf/x86: Support filter_match callback +- perf/x86/intel: Add attr_update for Hybrid PMUs +- perf/x86: Add structures for the attributes of Hybrid PMUs +- perf/x86: Register hybrid PMUs +- perf/x86: Factor out x86_pmu_show_pmu_cap +- perf/x86: Remove temporary pmu assignment in event_init +- perf/x86/intel: Factor out intel_pmu_check_extra_regs +- perf/x86/intel: Factor out intel_pmu_check_event_constraints +- perf/x86/intel: Factor out intel_pmu_check_num_counters +- perf/x86: Hybrid PMU support for extra_regs +- perf/x86: Hybrid PMU support for event constraints +- perf/x86: Hybrid PMU support for hardware cache event +- perf/x86: Hybrid PMU support for unconstrained +- perf/x86: Hybrid PMU support for counters +- perf/x86: Hybrid PMU support for intel_ctrl +- perf/x86/intel: Hybrid PMU support for perf capabilities +- x86/cpu: Add helper function to get the type of the current hybrid CPU +- x86/cpufeatures: Enumerate Intel Hybrid Technology feature bit +- perf/x86/intel: Add Tremont Topdown support + +* Wed Jan 17 2024 Jialin Zhang - 5.10.0-184.0.0.86 +- !3981 vhost: use kzalloc() instead of kmalloc() followed by memset() +- !3418 [sync] PR-2918: fix some bugs in loongarch kvm +- !3912 net: bridge: multicast: fix UAF of net_bridge +- !3982 ACPI: CPPC: Assume no transition latency if no PCCT +- ACPI: CPPC: Assume no transition latency if no PCCT +- vhost: use kzalloc() instead of kmalloc() followed by memset() +- !3972 arm64: make cma=0 as default for openeuler +- arm64: make cma=0 as default for openeuler +- !3940 net: hns3: fix the cmdq reset command times out when all VFs are enabled and the queue is full. +- !3925 udma: add capability of DWQE in RC mode +- hns3 udma: add support of DWQE in create qp +- net: hns3: fix reset timeout under full functions and queues +- !3915 nvmet: nul-terminate the NQNs passed in the connect command +- nvmet: nul-terminate the NQNs passed in the connect command +- net: bridge: multicast: fix UAF of net_bridge +- loongarch/kvm: disable hugepage during migration process +- loongarch/kvm: Fix oneshot timer emulation +- loongarch/kvm: Remove SW timer switch when vcpu is halt polling + +* Wed Jan 10 2024 Jialin Zhang - 5.10.0-183.0.0.85 +- !3848 [22.03-LTS-SP3] Bug fix for KVM MMU +- !3562 tty: n_gsm: fix the UAF caused by race condition in gsm_cleanup_mux +- !3776 Revert "sched: clear credit count in error branch" +- !3746 smart_grid: make sure hot zone have the highest priority +- !3810 Some cleanup and bugfix for HNS3 +- !3804 MAINTAINERS: Update maintainers of HiSilicon RoCE +- !3756 md: mainline backport +- KVM: x86/mmu: Allocate pml4_root for guest PAE mode shadowing +- !3694 Fix tow CVEs of CIFS +- openEuler/MAINTAINERS: Update maintainers of HiSilicon RoCE +- MAINTAINERS: Add Youming Luo as Hisilicon RoCE maintainer +- !3822 ext4: fix kernel BUG in 'ext4_write_inline_data_end()' +- !3793 cppc_cpufreq: use policy->cpu in cppc_set_perf() +- ext4: fix kernel BUG in 'ext4_write_inline_data_end()' +- !3811 drivers: net: ub: dev: network_mgmt: Modified OLK5.10 ub compilation missing header files. +- network_mgmt: Modified OLK5.10 ub compilation missing header files. +- net: hns3: set the freed pointers to NULL when lifetime is not end +- net: hns3: remove unnecessary variables initialization +- net: hns3: unsigned value not need to judge to be less than 0 +- !3769 tls: suppress wakeups unless we have a full record +- !3570 perf/core: Fix CVE-2023-6931 +- MAINTAINERS: Add Chengchang Tang as Hisilicon RoCE maintainer +- MAINTAINERS: Update maintainers of HiSilicon RoCE +- !3659 atm: Fix Use-After-Free in do_vcc_ioctl +- !3771 ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super() +- cppc_cpufreq: use policy->cpu as driver of frequency setting +- cppc_cpufreq: clean up cpu, cpu_num and cpunum variable use +- cppc_cpufreq: get cpunum from fb_ctrs instead of smp_processor_id() +- Revert "sched: clear credit count in error branch" +- ext4: fix uninitialized ratelimit_state->lock access in __ext4_fill_super() +- tls: suppress wakeups unless we have a full record +- !3668 net/rose: Fix Use-After-Free in rose_ioctl +- !3480 drivers: net: ub: dev: network_mgmt: ip_notify: ip_notify: Merge the openEuler modification suggestions. +- !3686 Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg +- !3594 CVE-2023-35827 patchset +- !3552 block: warn once for each partition in bio_check_ro() +- !3466 livepatch/core: Disable support for replacing +- !3715 appletalk: Fix Use-After-Free in atalk_ioctl +- md: fix error handling in md_alloc +- md: Constify attribute_group structs +- md: fix mddev->kobj lifetime +- md: properly unwind when failing to add the kobject in md_alloc +- md: extend disks_mutex coverage +- md: add the bitmap group to the default groups for the md kobject +- md: add error handling support for add_disk() +- md: convert to blk_alloc_disk/blk_cleanup_disk +- md/raid10: fix improper BUG_ON() in raise_barrier() +- md: use msleep() in md_notify_reboot() +- md: fix double free of mddev->private in autorun_array() +- !3637 jbd2: fix soft lockup in journal_finish_inode_data_buffers() +- smart_grid: make sure hot zone have the highest priority +- !3459 reset idlest_cpu if not meet the conditions for preferred CPU +- !3272 x86/kprobes: Fix the error judgment for debug exceptions +- !3447 dm: add error handling support for add_disk() +- !3420 md: protect md_thread with rcu +- !3379 md: do not return existing mddevs from mddev_find_or_alloc +- appletalk: Fix Use-After-Free in atalk_ioctl +- smb: client: fix potential OOB in smb2_dump_detail() +- smb: client: fix OOB in smbCalcSize() +- Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg +- net/rose: Fix Use-After-Free in rose_ioctl +- atm: Fix Use-After-Free in do_vcc_ioctl +- jbd2: fix soft lockup in journal_finish_inode_data_buffers() +- !3617 netfilter: nft_set_pipapo: skip inactive elements during set walk +- netfilter: nft_set_pipapo: skip inactive elements during set walk +- ravb: Fix races between ravb_tx_timeout_work() and net related ops +- ravb: Fix use-after-free issue in ravb_tx_timeout_work() +- perf: Fix perf_event_validate_size() lockdep splat +- perf: Fix perf_event_validate_size() +- tty: n_gsm: fix the UAF caused by race condition in gsm_cleanup_mux +- !3553 kernel: update SP3 OPENEULER_MINOR and introduced OPENEULER_LTS +- openEuler: introduced OPENEULER_LTS to identify LTS Release +- kernel: update SP3 OPENEULER_MINOR value to 3 +- block: fix kabi broken in struct hd_part +- block: warn once for each partition in bio_check_ro() +- !3535 Bugfixes for RDMA/hns +- !3519 tick/broadcast-hrtimer: Prevent the timer device on broadcast duty CPU from being disabled +- RDMA/hns: Fix Use-After-Free of rsv_qp +- RDMA/hns: Fix init check of VFs on RoCE bonding slaves +- Revert "RDMA/hns: Add cap_flag check for check_vf_support()" +- !3504 net: hns3: fix kernel crash when 1588 is received on HIP08 devices +- tick/broadcast-hrtimer: Prevent the timer device on broadcast duty CPU from being disabled +- !3508 roh/hns3: Fix the processing flow of ROH CMDq during the reset process. +- roh/hns3: Fix the processing flow of ROH CMDq during the reset process. +- net: hns3: fix kernel crash when 1588 is received on HIP08 devices +- !3084 [OLK-5.10] add Phytium DRM drivers CONFIG +- network_mgmt: Merge the openEuler modification suggestions. +- livepatch/core: Disable support for replacing +- !3463 Support node_reclaim_distance adjust +- !3427 tcp: Disable header prediction for MD5 flow. +- !3421 backport some network patches +- config: enable COBFIG_ARCH_CUSTOM_NUMA_DISTANCE for arm64 +- arm64/numa: Support node_reclaim_distance adjust for arch +- !3461 Revert "mm/mempolicy: don't handle MPOL_LOCA +- Revert "mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy" +- sched/fair: reset idlest_cpu if not meet the conditions for preferred CPU +- dm: add error handling support for add_disk() +- !3422 sch_netem: fix issues in netem_change() vs get_dist_table() +- !3415 Some bugfix for hns3 +- !3404 Add the verification operation after the bus recovery operation obtains resources through the ACPI +- !3424 mbigen: vtimer: disable vtimer mbigen probe when vtimer_irqbypass disabled +- tcp: Disable header prediction for MD5 flow. +- !3375 locking/osq_lock: Avoid false sharing in optimistic_spin_node +- mbigen: vtimer: disable vtimer mbigen probe when vtimer_irqbypass disabled +- !3413 Backport bugfixes for hns +- net: hns3: add use limit for 1D torus feature +- net: hns3: add new 200G link modes for hisilicon device +- sch_netem: fix issues in netem_change() vs get_dist_table() +- net: use indirect calls helpers for sk_exit_memory_pressure() +- tcp: check local var (timeo) before socket fields in one test +- tcp: avoid indirect calls to sock_rfree +- tcp: add RETPOLINE mitigation to sk_backlog_rcv +- tcp: small optimization in tcp recvmsg() +- net: cache align tcp_memory_allocated, tcp_sockets_allocated +- md: protect md_thread with rcu +- md/bitmap: factor out a helper to set timeout +- md/bitmap: always wake up md_thread in timeout_store +- dm-raid: remove useless checking in raid_message() +- md: factor out a helper to wake up md_thread directly +- RDMA/hns: Fix missing parameter check in set_write_notify_param() +- RDMA/hns: Fix incorrect bond clear during slave increase event +- RDMA/hns: Add cap_flag check for check_vf_support() +- RDMA/hns: Fix memory leak in POE debugfs +- net: hns3: Disable SerDes serial loopback for HiLink H60 +- Add the verification operation after the bus recovery operation obtains resources through the ACPI +- !3390 mm/userswap: modify the USWAP registration flag +- !3376 mm/mempolicy: check preferred_node rather than nodes for MPOL_PREFERRED +- !3346 smart_grid: cpufreq: clear offline and isolated CPU in warm CPUs +- mm/userswap: modify the USWAP registration flag +- md: do not return existing mddevs from mddev_find_or_alloc +- md: refactor mddev_find_or_alloc +- md: factor out a mddev_alloc_unit helper from mddev_find +- mm/mempolicy: check preferred_node rather than nodes for MPOL_PREFERRED +- locking/osq_lock: Avoid false sharing in optimistic_spin_node +- smart_grid: cpufreq: clear offline and isolated CPU in warm CPUs +- x86/kprobes: Fix the error judgment for debug exceptions +- arm64: config: add Phytium Drm config + +* Sat Dec 16 2023 huangzq6 - 5.10.0-178.0.0.84 +- add signature for vmlinux + +* Thu Dec 14 2023 Jialin Zhang - 5.10.0-178.0.0.83 +- !3374 cpumask: cleanup nr_cpu_ids vs nr_cpumask_bits mess +- config: Add FORCE_NR_CPUS to openeuler_defconfig +- powerpc/64: don't refer nr_cpu_ids in asm code when it's undefined +- lib/cpumask: add FORCE_NR_CPUS config option +- lib/cpumask: deprecate nr_cpumask_bits +- lib/cpumask: delete misleading comment +- smp: add set_nr_cpu_ids() +- smp: don't declare nr_cpu_ids if NR_CPUS == 1 + +* Tue Dec 12 2023 Jialin Zhang - 5.10.0-177.0.0.82 +- Fix kernel rpm build failure that libperf-jvmti.so is missing +- Enable kabi checking and adapt the check-kabi script +- Update openEuler-22.03-LTS-SP3 KABI whitelists for aarch64 and x86_64 +- !3360 arm64: cpufeature: Add missing .field_width for system registers +- arm64: cpufeature: Add missing .field_width for system registers +- !3093 backport adding GNR support for Intel PCIe gen5 NTB +- !3329 iommu/arm-smmu-v3: Add a SYNC command to avoid broken page table prefetch +- iommu/arm-smmu-v3: Add a SYNC command to avoid broken page table prefetch +- !3320 Make the rcache depot scale better +- !3274 Fixed some memory leak issues of the Perf tool +- iommu/iova: Manage the depot list size +- iommu/iova: Make the rcache depot scale better +- iommu/iova: change IOVA_MAG_SIZE to 127 to save memory +- Revert "iommu/iova: increase the iova_rcache depot max size to 128" +- Revert "config: enable set the max iova mag size to 128" +- Revert "iommu/iova: move IOVA_MAX_GLOBAL_MAGS outside of IOMMU_SUPPORT" +- !3303 net: hns3: Add support for some CMIS transceiver modules and synchronize some CMIS transceiver +- !3304 roh/core: Synchronously update the mac address of the vlan device when configuring the vlan device ip +- net: hns3: fix kernel crash when devlink reload during vf initialization +- net: hns3: fix kernel crash when devlink reload during pf initialization +- net: hns3: fix wrong judgment condition issue +- !3301 unic: Change the max frame size sent to firmware +- roh/core: Synchronously update the mac address of the vlan device when configuring the vlan device ip +- net: hns3: Add support for some CMIS transceiver modules +- net: sfp: Synchronize some CMIS transceiver modules from ethtool +- !3221 Backport x86 patches from upstream 5.10.189 +- unic: Change the max frame size sent to firmware +- !3222 md/raid5: fix miscalculation of 'end_sector' in raid5_read_one_chunk() +- !3269 iommu/arm-smmu-v3: disable stall for quiet_cd +- !3254 icmp: Fix a data-race around sysctl_icmp_errors_use_inbound_ifaddr. +- !3219 crypto: hisiilicon some bugfixs and cleanup +- perf header: Fix one memory leakage in perf_event__fprintf_event_update() +- perf hisi-ptt: Fix one memory leakage in hisi_ptt_process_auxtrace_event() +- perf hisi-ptt: Fix memory leak in lseek failure handling +- !3256 RDMA/hns: Cleanups of some optimize code +- !3257 net: hns3: add input parameters checking and arp cleancode +- iommu/arm-smmu-v3: disable stall for quiet_cd +- !3226 hinic: ethtool: Allow userspace to set more aggregation params +- !3259 mbigen: vtimer: isolate mbigen vtimer funcs with macro +- mbigen: vtimer: isolate mbigen vtimer funcs with macro +- net: hns3: add input parameters checking +- net: hns3: arp cleancode +- RDMA/hns: Use macro instead of magic number +- RDMA/hns: Cleanup for debugfs +- RDMA/hns: Add more check for bonding-unsupported cases +- RDMA/hns: Improve readability of check_bond_support() +- RDMA/hns: Fix the spin_lock and spin_unlock objects are inconsistent +- RDMA/hns: Remove useless NULL check in hns_roce_get_netdev() +- RDMA/hns: Refactor mtr find +- RDMA/hns: Remove unused parameters detected by -Wextra +- RDMA/hns: Remove extra blank line in get_sge_num_from_max_inl_data() +- RDMA/hns: Replace magic number when fill ADDR to HW +- kabi: Fix kabi breakage caused by c1e70ec46591 +- icmp: Fix a data-race around sysctl_icmp_errors_use_inbound_ifaddr. +- !3215 net: hns: fix fake link up on xge port and fix wrong head when modify the tx feature when sending packets +- !2946 LoongArch: disable 40bit user space by default +- x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4 +- net: hns: fix fake link up on xge port +- net: hns: fix wrong head when modify the tx feature when sending packets +- x86/mm: Initialize text poking earlier +- mm: Move mm_cachep initialization to mm_init() +- x86/mm: Use mm_alloc() in poking_init() +- x86/mm: fix poking_init() for Xen PV guests +- x86/xen: Fix secondary processors' FPU initialization +- x86/fpu: Move FPU initialization into arch_cpu_finalize_init() +- x86/fpu: Mark init functions __init +- x86/fpu: Remove cpuinfo argument from init functions +- init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init() +- init: Invoke arch_cpu_finalize_init() earlier +- init: Remove check_bugs() leftovers +- x86/cpu: Switch to arch_cpu_finalize_init() +- !2987 fix CFS bandwidth vs. hrtimer self deadlock +- !3005 [sync] PR-1617: LoonArch: KVM: fix vcpu timer +- !3161 fs: Fix error checking for d_hash_and_lookup() +- hinic: ethtool: Allow userspace to set more aggregation params +- !3220 KVM: arm64: vtimer/virt_dev irq bypass support +- !3092 [OLK-5.10]KVM: arm64: Add host/guest KVM-PTP support +- !3206 Two bugfix patch about memcg swap qos +- md/raid5: fix miscalculation of 'end_sector' in raid5_read_one_chunk() +- !3212 drivers/perf: hisi: UC PMU support statistics in power saving mode +- KVM: arm64: update arm64 openeuler_defconfig for CONFIG_VIRT_PLAT_DEV +- KVM: arm64: sdev: Support virq bypass by INT/VSYNC command +- KVM: arm64: kire: irq routing entry cached the relevant cache data +- KVM: arm64: Introduce shadow device +- virt_plat_dev: Register the virt platform device driver +- irqchip/gic-v3-its: Add virt platform devices MSI support +- irqchip/gic-v3-its: Alloc/Free device id from pools for virtual devices +- irqchip/gic-v3-its: Introduce the reserved device ID pools +- mbigen: Sets the regs related to vtimer irqbypass +- KVM: arm64: vgic-v3: Clearing pending status of vtimer on guest reset +- mbigen: vtimer: add support for MBIX1_CPPI_NEGEDGE_CLR_EN_SETR(CLRR) +- KVM: arm64: arch_timer: Make vtimer_irqbypass a Distributor attr +- KVM: arm64: vtimer: Expose HW-based vtimer interrupt in debugfs +- KVM: arm64: GICv4.1: Allow non-trapping WFI when using direct vtimer interrupt +- KVM: arm64: GICv4.1: Add support for MBIGEN save/restore +- KVM: arm64: arch_timer: Rework vcpu init/reset logic +- KVM: arm64: arch_timer: Probe vtimer irqbypass capability +- KVM: arm64: GICv4.1: Enable vtimer vPPI irqbypass config +- KVM: arm64: GICv4.1: Add direct injection capability to PPI registers +- KVM: arm64: vgic: Add helper for vtimer vppi info register +- KVM: arm64: GICv4.1: Inform the HiSilicon vtimer irqbypass capability +- irqchip/gic-v4.1: Probe vtimer irqbypass capability at RD level +- irqchip/gic-v4.1: Rework its_alloc_vcpu_sgis() to support vPPI allocation +- irqchip/gic-v4.1: Rework get/set_irqchip_state callbacks of GICv4.1-sgi chip +- irqchip/gic-v4.1: Extend VSGI command to support the new vPPI +- irqchip/gic-v4.1: Detect ITS vtimer interrupt bypass capability +- mbigen: vtimer mbigen driver support +- crypto: hisilicon/qm - reset device before enabling it +- crypto: hisilicon/qm - add stop function by hardware +- crypto: hisilicon/qm - remove duplicate configurations +- crypto: hisilicon/qm - dump important registers values before resetting +- crypto: hisilicon/qm - support get device state +- crypto: hisilicon/hpre - mask cluster timeout error +- crypto: hisilicon/qm - modify interrupt resource application process +- crypto: hisilicon/sec2: fix memory use-after-free issue +- crypto: hisilicon/qm - increase the maximum waiting timeout interval of the moilbox. +- crypto: hisilicon/sec2 - optimize the error return process +- vfio/migration - delete a dbg function +- crypto: hisilicon/qm - delete a dbg function +- crypto: hisilicon/qm - add size check in qm set algs +- !3214 bring mc support to page eject +- mm: page_eject: Add mc support during offline page +- mm: Update PF_COREDUMP_MCS to PF_MCS +- mm/hwpoison: add migrate_page_mc_extra() +- mm/hwpoison: introduce copy_mc_highpages +- mm/hwpoison: arm64: introduce copy_mc_highpage +- mm/hwpoison: introduce copy_mc_highpage +- mm: page_eject: Return right value during removal +- kabi: fix kabi broken in struct clocksource and system_time_snapshot +- !3198 udma: add dfx ability of dca for hns3 +- drivers/perf: hisi: UC PMU support statistics in power saving mode +- !3205 RDMA/hns: Fix the incomplete netdev speed, unspecific interrupt name, and resource value verification +- !3203 Some fixes and optimizations for hisi_sas +- !3154 crypto: hisilicon - fix the process to obtain capability register value +- memcg: fix use-after-free of mm_struct +- mm/swap_slots: fix out-of-bounds access of percpu area +- !3196 drivers/perf: hisi: Fix some event id for HiSilicon UC pmu +- RDMA/hns: Rename the interrupts +- RDMA/core: Add support more netdev speed +- RDMA/hns: Add check and adjust for function resource values +- RDMA/hns: Fix port active speed +- !3148 vdpa: add vmstate header file +- scsi: hisi_sas: Check whether debugfs is enabled before removing or releasing it +- scsi: hisi_sas: Fix the deadlock issue that occurs during automatic dump +- scsi: hisi_sas: Correct the number of global debugfs registers +- scsi: hisi_sas: Rollback some operations if FLR failed +- scsi: hisi_sas: Check before using pointer variables +- scsi: hisi_sas: Replace with standard error code return value +- scsi: hisi_sas: Set .phy_attached before notifing phyup event HISI_PHYE_PHY_UP_PM +- scsi: hisi_sas: Handle the NCQ error returned by D2H frame +- scsi: hisi_sas: Remove redundant checks for automatic debugfs dump +- scsi: hisi_sas: Remove unused variable and check in hisi_sas_send_ata_reset_each_phy() +- scsi: hisi_sas: Allocate DFX memory during dump trigger +- scsi: hisi_sas: Directly call register snapshot instead of using workqueue +- scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs +- scsi: hisi_sas: Fix warnings detected by sparse +- scsi: hisi_sas: Fix normally completed I/O analysed as failed +- !3145 vhost-vdpa: add reset state params to indicate reset level +- !3150 Backport 5.10.189 LTS patches from upstream +- hns3 udma: add dfx ability for dca +- drivers/perf: hisi: Fix some event id for HiSilicon UC pmu +- !3128 fix ksmbd to release the ones allocated for async work +- !3130 config: enable COBFIG_ARM64_BRBE for arm64 +- !3061 drivers: perf: Add feature flag check in armpmu_add/del +- um/cpu: Switch to arch_cpu_finalize_init() +- sparc/cpu: Switch to arch_cpu_finalize_init() +- sh/cpu: Switch to arch_cpu_finalize_init() +- mips/cpu: Switch to arch_cpu_finalize_init() +- m68k/cpu: Switch to arch_cpu_finalize_init() +- ia64/cpu: Switch to arch_cpu_finalize_init() +- ARM: cpu: Switch to arch_cpu_finalize_init() +- init: Provide arch_cpu_finalize_init() +- !3152 scsi: scsi_device_gets returns failure +- fs: Fix error checking for d_hash_and_lookup() +- crypto: hisilicon/zip - save capability registers in probe process +- crypto: hisilicon/sec2 - save capability registers in probe process +- crypto: hisilicon/hpre - save capability registers in probe process +- crypto: hisilicon/qm - save capability registers in qm init process +- crypto: hisilicon/qm - check function qp num before alg register +- Revert "crypto: hisilicon/zip - save capability registers in probe process" +- Revert "crypto: hisilicon/sec2 - save capability registers in probe process" +- Revert "crypto: hisilicon/hpre - save capability registers in probe process" +- Revert "crypto: hisilicon/qm - save capability registers in qm init process" +- scsi: fix kabi broken in struct Scsi_Host +- scsi: don't fail if hostt->module is NULL +- scsi: scsi_device_gets returns failure when the module is NULL. +- vdpa: add vmstate header file +- !3117 Backport 5.10.188 LTS patches from upstream +- vhost-vdpa: add reset state params to indicate reset level +- tracing/histograms: Return an error if we fail to add histogram to hist_vars list +- net: phy: prevent stale pointer dereference in phy_init() +- tcp: annotate data-races around fastopenq.max_qlen +- tcp: annotate data-races around icsk->icsk_user_timeout +- tcp: annotate data-races around tp->notsent_lowat +- tcp: annotate data-races around rskq_defer_accept +- tcp: annotate data-races around tp->linger2 +- tcp: annotate data-races around icsk->icsk_syn_retries +- tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries. +- tcp: annotate data-races around tp->keepalive_probes +- tcp: annotate data-races around tp->keepalive_intvl +- tcp: annotate data-races around tp->keepalive_time +- tcp: annotate data-races around tp->tcp_tx_delay +- netfilter: nf_tables: can't schedule in nft_chain_validate +- netfilter: nf_tables: fix spurious set element insertion failure +- llc: Don't drop packet from non-root netns. +- fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe +- Revert "tcp: avoid the lookup process failing to get sk in ehash table" +- net:ipv6: check return value of pskb_trim() +- net: ipv4: Use kfree_sensitive instead of kfree +- tcp: annotate data-races around tcp_rsk(req)->ts_recent +- octeontx2-pf: Dont allocate BPIDs for LBK interfaces +- security: keys: Modify mismatched function name +- iavf: Fix out-of-bounds when setting channels on remove +- iavf: Fix use-after-free in free_netdev +- bridge: Add extack warning when enabling STP in netns. +- net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field() +- pinctrl: amd: Use amd_pinconf_set() for all config options +- fbdev: imxfb: warn about invalid left/right margin +- spi: bcm63xx: fix max prepend length +- igb: Fix igb_down hung on surprise removal +- wifi: iwlwifi: mvm: avoid baid size integer overflow +- wifi: wext-core: Fix -Wstringop-overflow warning in ioctl_standard_iw_point() +- devlink: report devlink_port_type_warn source device +- bpf: Address KCSAN report on bpf_lru_list +- wifi: ath11k: fix registration of 6Ghz-only phy without the full channel range +- sched/fair: Don't balance task to its current running CPU +- arm64: mm: fix VA-range sanity check +- arm64: set __exception_irq_entry with __irq_entry as a default +- ACPI: video: Add backlight=native DMI quirk for Lenovo ThinkPad X131e (3371 AMD version) +- ACPI: video: Add backlight=native DMI quirk for Apple iMac11,3 +- ACPI: button: Add lid disable DMI quirk for Nextbook Ares 8A +- btrfs: add xxhash to fast checksum implementations +- md: fix data corruption for raid456 when reshape restart while grow up +- nbd: Add the maximum limit of allocated index in nbd_dev_add +- debugobjects: Recheck debug_objects_enabled before reporting +- ext4: correct inline offset when handling xattrs in inode body +- ASoC: fsl_sai: Disable bit clock with transmitter +- drm/client: Fix memory leak in drm_client_modeset_probe +- drm/client: Fix memory leak in drm_client_target_cloned +- can: bcm: Fix UAF in bcm_proc_show() +- regmap: Account for register length in SMBus I/O limits +- regmap: Drop initial version of maximum transfer length fixes +- selftests: tc: add 'ct' action kconfig dep +- selftests: tc: set timeout to 15 minutes +- fuse: revalidate: don't invalidate if interrupted +- btrfs: fix warning when putting transaction with qgroups enabled after abort +- perf probe: Add test for regression introduced by switch to die_get_decl_file() +- keys: Fix linking a duplicate key to a keyring's assoc_array +- ALSA: hda/realtek: Enable Mute LED on HP Laptop 15s-eq2xxx +- ALSA: hda/realtek - remove 3k pull low procedure +- drm/atomic: Fix potential use-after-free in nonblocking commits +- net/sched: sch_qfq: reintroduce lmax bound check for MTU +- scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue +- scsi: qla2xxx: Pointer may be dereferenced +- scsi: qla2xxx: Correct the index of array +- scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport() +- scsi: qla2xxx: Fix potential NULL pointer dereference +- scsi: qla2xxx: Fix buffer overrun +- scsi: qla2xxx: Array index may go out of bound +- scsi: qla2xxx: Wait for io return on terminate rport +- tracing/probes: Fix not to count error code to total length +- tracing: Fix null pointer dereference in tracing_err_log_open() +- xtensa: ISS: fix call to split_if_spec +- net: ena: fix shift-out-of-bounds in exponential backoff +- samples: ftrace: Save required argument registers in sample trampolines +- tracing/histograms: Add histograms to hist_vars if they have referenced variables +- s390/decompressor: fix misaligned symbol build error +- Revert "8250: add support for ASIX devices with a FIFO bug" +- meson saradc: fix clock divider mask length +- xhci: Fix resume issue of some ZHAOXIN hosts +- ceph: don't let check_caps skip sending responses for revoke msgs +- firmware: stratix10-svc: Fix a potential resource leak in svc_create_memory_pool() +- tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when iterating clk +- tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error +- serial: atmel: don't enable IRQs prematurely +- drm/amd/display: Correct `DMUB_FW_VERSION` macro +- drm/rockchip: vop: Leave vblank enabled in self-refresh +- drm/atomic: Allow vblank-enabled + self-refresh "disable" +- fs: dlm: return positive pid value for F_GETLK +- md/raid0: add discard support for the 'original' layout +- misc: pci_endpoint_test: Re-init completion for every test +- misc: pci_endpoint_test: Free IRQs before removing the device +- PCI: rockchip: Set address alignment for endpoint mode +- PCI: rockchip: Use u32 variable to access 32-bit registers +- PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core +- PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked +- PCI: rockchip: Write PCI Device ID to correct register +- PCI: rockchip: Assert PCI Configuration Enable bit after probe +- PCI: qcom: Disable write access to read only registers for IP v2.3.3 +- PCI: Add function 1 DMA alias quirk for Marvell 88SE9235 +- PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold +- hwrng: imx-rngc - fix the timeout for init and self check +- jfs: jfs_dmap: Validate db_l2nbperpage while mounting +- ext4: fix wrong unit use in ext4_mb_new_blocks +- ext4: get block from bh in ext4_free_blocks for fast commit replay +- ext4: fix wrong unit use in ext4_mb_clear_bb +- MIPS: Loongson: Fix cpu_probe_loongson() again +- erofs: fix compact 4B support for 16k block size +- misc: fastrpc: Create fastrpc scalar with correct buffer count +- powerpc: Fail build if using recordmcount with binutils v2.37 +- net: bcmgenet: Ensure MDIO unregistration has clocks enabled +- mtd: rawnand: meson: fix unaligned DMA buffers handling +- tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation +- pinctrl: amd: Only use special debounce behavior for GPIO 0 +- pinctrl: amd: Detect internal GPIO0 debounce handling +- pinctrl: amd: Fix mistake in handling clearing pins at startup +- net/sched: sch_qfq: refactor parsing of netlink parameters +- net/sched: make psched_mtu() RTNL-less safe +- netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write() +- net/sched: flower: Ensure both minimum and maximum ports are specified +- wifi: airo: avoid uninitialized warning in airo_get_rate() +- erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF +- riscv, bpf: Fix inconsistent JIT image generation +- bpf, riscv: Support riscv jit to provide bpf_line_info +- riscv: bpf: Avoid breaking W^X +- riscv: bpf: Move bpf_jit_alloc_exec() and bpf_jit_free_exec() to core +- igc: Fix inserting of empty frame for launchtime +- igc: Fix launchtime before start of cycle +- platform/x86: wmi: Break possible infinite loop when parsing GUID +- platform/x86: wmi: move variables +- platform/x86: wmi: use guid_t and guid_equal() +- platform/x86: wmi: remove unnecessary argument +- NTB: ntb_tool: Add check for devm_kcalloc +- NTB: ntb_transport: fix possible memory leak while device_register() fails +- ntb: intel: Fix error handling in intel_ntb_pci_driver_init() +- NTB: amd: Fix error handling in amd_ntb_pci_driver_init() +- ntb: idt: Fix error handling in idt_pci_driver_init() +- udp6: fix udp6_ehashfn() typo +- icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev(). +- net: prevent skb corruption on frag list segmentation +- net: bgmac: postpone turning IRQs off to avoid SoC hangs +- ionic: remove WARN_ON to prevent panic_on_warn +- gve: Set default duplex configuration to full +- net: mvneta: fix txq_map in case of txq_number==1 +- scsi: qla2xxx: Fix error code in qla2x00_start_sp() +- igc: set TP bit in 'supported' and 'advertising' fields of ethtool_link_ksettings +- net/mlx5e: Check for NOT_READY flag state after locking +- net/mlx5e: fix double free in mlx5e_destroy_flow_table +- igc: Remove delay during TX ring configuration +- drm/panel: simple: Add Powertip PH800480T013 drm_display_mode flags +- drm/panel: simple: Add connector_type for innolux_at043tn24 +- workqueue: clean up WORK_* constant types, clarify masking +- net: lan743x: Don't sleep in atomic context +- io_uring: add reschedule point to handle_tw_list() +- io_uring: Use io_schedule* in cqring wait +- block/partition: fix signedness issue for Amiga partitions +- rcu-tasks: Simplify trc_read_check_handler() atomic operations +- rcu-tasks: Mark ->trc_reader_special.b.need_qs data races +- rcu-tasks: Mark ->trc_reader_nesting data races +- tty: serial: fsl_lpuart: add earlycon for imx8ulp platform +- wireguard: netlink: send staged packets when setting initial private key +- wireguard: queueing: use saner cpu selection wrapping +- netfilter: conntrack: Avoid nf_ct_helper_hash uses after free +- netfilter: nf_tables: fix scheduling-while-atomic splat +- netfilter: nf_tables: add rescheduling points during loop detection walks +- sh: pgtable-3level: Fix cast to pointer from integer of different size +- block: add overflow checks for Amiga partition support +- tpm, tpm_tis: Claim locality in interrupt handler +- fanotify: disallow mount/sb marks on kernel internal pseudo fs +- fs: no need to check source +- leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename +- ARM: orion5x: fix d2net gpio initialization +- ASoC: mediatek: mt8173: Fix snd_soc_component_initialize error path +- ASoC: mediatek: mt8173: Fix irq error path +- btrfs: fix race when deleting quota root from the dirty cow roots list +- btrfs: add handling for RAID1C23/DUP to btrfs_reduce_alloc_profile +- fs: Lock moved directories +- fs: Establish locking order for unrelated directories +- Revert "f2fs: fix potential corruption when moving a directory" +- ext4: Remove ext4 locking of moved directory +- fs: avoid empty option when generating legacy mount string +- jffs2: reduce stack usage in jffs2_build_xattr_subsystem() +- shmem: use ramfs_kill_sb() for kill_sb method of ramfs-based tmpfs +- autofs: use flexible array in ioctl structure +- um: Use HOST_DIR for mrproper +- bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent +- bcache: Remove unnecessary NULL point check in node allocations +- bcache: fixup btree_cache_wait list damage +- mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is used. +- mmc: mmci: Set PROBE_PREFER_ASYNCHRONOUS +- mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M +- mmc: core: disable TRIM on Kingston EMMC04G-M627 +- io_uring: wait interruptibly for request completions on exit +- NFSD: add encoding of op_recall flag for write delegation +- i2c: qup: Add missing unwind goto in qup_i2c_probe() +- ALSA: jack: Fix mutex call in snd_jack_report() +- i2c: xiic: Don't try to handle more interrupt events after error +- i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process() +- apparmor: fix missing error check for rhashtable_insert_fast +- sh: dma: Fix DMA channel offset calculation +- s390/qeth: Fix vipa deletion +- net: dsa: tag_sja1105: fix MAC DA patching from meta frames +- pptp: Fix fib lookup calls. +- net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX +- xsk: Honor SO_BINDTODEVICE on bind +- tcp: annotate data races in __tcp_oow_rate_limited() +- net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode +- powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y +- octeontx2-af: Fix mapping for NIX block from CGX connection +- f2fs: fix error path handling in truncate_dnode() +- mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 +- spi: bcm-qspi: return error if neither hif_mspi nor mspi is available +- net: dsa: vsc73xx: fix MTU configuration +- Add MODULE_FIRMWARE() for FIRMWARE_TG357766. +- sctp: fix potential deadlock on &net->sctp.addr_wq_lock +- media: cec: i2c: ch7322: also select REGMAP +- rtc: st-lpc: Release some resources in st_rtc_probe() in case of error +- pwm: sysfs: Do not apply state to already disabled PWMs +- pwm: imx-tpm: force 'real_period' to be zero in suspend +- phy: tegra: xusb: check return value of devm_kzalloc() +- mfd: stmpe: Only disable the regulators if they are enabled +- KVM: s390: vsie: fix the length of APCB bitmap +- mfd: stmfx: Nullify stmfx->vdd in case of error +- mfd: stmfx: Fix error path in stmfx_chip_init +- test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation +- serial: 8250_omap: Use force_suspend and resume for system suspend +- Revert "usb: common: usb-conn-gpio: Set last role to unknown before initial detection" +- mfd: intel-lpss: Add missing check for platform_get_resource +- usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe() +- usb: common: usb-conn-gpio: Set last role to unknown before initial detection +- usb: dwc3: qcom: Fix an error handling path in dwc3_qcom_probe() +- usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove() +- KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes +- media: atomisp: gmin_platform: fix out_len in gmin_get_config_dsm_var() +- media: venus: helpers: Fix ALIGN() of non power of two +- mfd: rt5033: Drop rt5033-battery sub-device +- kernfs: fix missing kernfs_idr_lock to remove an ID from the IDR +- serial: 8250: lock port for UART_IER access in omap8250_irq() +- serial: 8250: lock port for stop_rx() in omap8250_irq() +- usb: hide unused usbfs_notify_suspend/resume functions +- usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe() +- extcon: Fix kernel doc of property capability fields to avoid warnings +- extcon: Fix kernel doc of property fields to avoid warnings +- usb: gadget: u_serial: Add null pointer check in gserial_suspend +- usb: dwc3: qcom: Fix potential memory leak +- clk: qcom: ipq6018: fix networking resets +- clk: qcom: reset: support resetting multiple bits +- clk: qcom: reset: Allow specifying custom reset delay +- media: videodev2.h: Fix struct v4l2_input tuner index comment +- media: usb: Check az6007_read() return value +- clk: qcom: gcc-ipq6018: Use floor ops for sdcc clocks +- serial: 8250: omap: Fix freeing of resources on failed register +- sh: j2: Use ioremap() to translate device tree address into kernel memory +- w1: fix loop in w1_fini() +- w1: w1_therm: fix locking behavior in convert_t +- SUNRPC: Fix UAF in svc_tcp_listen_data_ready() +- block: change all __u32 annotations to __be32 in affs_hardblocks.h +- block: fix signed int overflow in Amiga partition support +- phy: tegra: xusb: Clear the driver reference in usb-phy dev +- usb: dwc3: gadget: Propagate core init errors to UDC during pullup +- USB: serial: option: add LARA-R6 01B PIDs +- hwrng: st - keep clock enabled while hwrng is registered +- dax: Introduce alloc_dev_dax_id() +- dax: Fix dax_mapping_release() use after free +- NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION +- ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard +- modpost: fix off by one in is_executable_section() +- crypto: marvell/cesa - Fix type mismatch warning +- modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24} +- modpost: fix section mismatch message for R_ARM_ABS32 +- crypto: nx - fix build warnings when DEBUG_FS is not enabled +- hwrng: virtio - don't waste entropy +- hwrng: virtio - don't wait on cleanup +- hwrng: virtio - add an internal buffer +- powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-boundary +- powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo +- powerpc/powernv/sriov: perform null check on iov before dereferencing iov +- pinctrl: at91-pio4: check return value of devm_kasprintf() +- perf dwarf-aux: Fix off-by-one in die_get_varname() +- perf script: Fix allocation of evsel->priv related to per-event dump files +- perf script: Fixup 'struct evsel_script' method prefix +- kcsan: Don't expect 64 bits atomic builtins from 32 bits architectures +- pinctrl: cherryview: Return correct value if pin in push-pull mode +- perf bench: Add missing setlocale() call to allow usage of %'d style formatting +- perf bench: Use unbuffered output when pipe/tee'ing to a file +- PCI: Add pci_clear_master() stub for non-CONFIG_PCI +- PCI: ftpci100: Release the clock resources +- PCI: pciehp: Cancel bringup sequence if card is not present +- scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() +- PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free +- pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors +- scsi: qedf: Fix NULL dereference in error handling +- PCI: cadence: Fix Gen2 Link Retraining process +- ASoC: imx-audmix: check return value of devm_kasprintf() +- ovl: update of dentry revalidate flags after copy up +- drivers: meson: secure-pwrc: always enable DMA domain +- clk: ti: clkctrl: check return value of kasprintf() +- clk: keystone: sci-clk: check return value of kasprintf() +- clk: si5341: free unused memory on probe failure +- clk: si5341: check return value of {devm_}kasprintf() +- clk: si5341: return error if one synth clock registration fails +- clk: si5341: Add sysfs properties to allow checking/resetting device faults +- clk: si5341: Allow different output VDD_SEL values +- clk: cdce925: check return value of kasprintf() +- clk: vc5: check memory returned by kasprintf() +- drm/msm/dp: Free resources after unregistering them +- drm/msm/dpu: do not enable color-management if DSPPs are not available +- ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer +- clk: tegra: tegra124-emc: Fix potential memory leak +- clk: imx: clk-imx8mp: improve error handling in imx8mp_clocks_probe() +- clk: imx: clk-imx8mn: fix memory leak in imx8mn_clocks_probe +- RDMA/bnxt_re: Avoid calling wake_up threads from spin_lock context +- RDMA/bnxt_re: wraparound mbox producer index +- amdgpu: validate offset_in_bo of drm_amdgpu_gem_va +- drm/radeon: fix possible division-by-zero errors +- drm/amdkfd: Fix potential deallocation of previously deallocated memory. +- hwmon: (pmbus/adm1275) Fix problems with temperature monitoring on ADM1272 +- hwmon: (adm1275) Allow setting sample averaging +- hwmon: (adm1275) enable adm1272 temperature reporting +- hwmon: (gsc-hwmon) fix fan pwm temperature scaling +- ARM: dts: stm32: fix i2s endpoint format property for stm32mp15xx-dkx +- ARM: dts: stm32: Fix audio routing on STM32MP15xx DHCOM PDK2 +- arm64: dts: ti: k3-j7200: Fix physical address of pin +- fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe() +- arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1 +- ARM: dts: iwg20d-q7-common: Fix backlight pwm specifier +- IB/hfi1: Fix wrong mmu_node used for user SDMA packet after invalidate +- IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors +- IB/hfi1: Use bitmap_zalloc() when applicable +- soc/fsl/qe: fix usb.c build errors +- ARM: dts: meson8: correct uart_B and uart_C clock references +- ASoC: es8316: Do not set rate constraints for unsupported MCLKs +- ASoC: es8316: Increment max value for ALC Capture Target Volume control +- memory: brcmstb_dpfe: fix testing array offset after use +- ARM: dts: stm32: Shorten the AV96 HDMI sound card name +- arm64: dts: qcom: apq8096: fix fixed regulator name property +- ARM: omap2: fix missing tick_broadcast() prototype +- ARM: ep93xx: fix missing-prototype warnings +- drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H +- arm64: dts: qcom: msm8996: correct camss unit address +- arm64: dts: qcom: msm8994: correct SPMI unit address +- arm64: dts: qcom: msm8916: correct camss unit address +- ARM: dts: gta04: Move model property out of pinctrl node +- RDMA/bnxt_re: Fix to remove an unnecessary log +- RDMA/bnxt_re: Remove a redundant check inside bnxt_re_update_gid +- RDMA/bnxt_re: Use unique names while registering interrupts +- RDMA/bnxt_re: Fix to remove unnecessary return labels +- RDMA/bnxt_re: Disable/kill tasklet only if it is enabled +- arm64: dts: microchip: sparx5: do not use PSCI on reference boards +- bus: ti-sysc: Fix dispc quirk masking bool variables +- ARM: dts: stm32: Move ethernet MAC EEPROM from SoM to carrier boards +- drm/panel: sharp-ls043t1le01: adjust mode settings +- drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks` +- Input: adxl34x - do not hardcode interrupt trigger type +- ARM: dts: meson8b: correct uart_B and uart_C clock references +- ARM: dts: BCM5301X: Drop "clock-names" from the SPI node +- drm/vram-helper: fix function names in vram helper doc +- drm/bridge: tc358768: fix THS_TRAILCNT computation +- drm/bridge: tc358768: fix TXTAGOCNT computation +- drm/bridge: tc358768: fix THS_ZEROCNT computation +- drm/bridge: tc358768: fix TCLK_TRAILCNT computation +- drm/bridge: tc358768: Add atomic_get_input_bus_fmts() implementation +- drm/bridge: tc358768: fix TCLK_ZEROCNT computation +- drm/bridge: tc358768: fix PLL target frequency +- drm/bridge: tc358768: fix PLL parameters computation +- drm/bridge: tc358768: always enable HS video mode +- Input: drv260x - sleep between polling GO bit +- drm/amd/display: Explicitly specify update type per plane info change +- radeon: avoid double free in ci_dpm_init() +- netlink: Add __sock_i_ino() for __netlink_diag_dump(). +- ipvlan: Fix return value of ipvlan_queue_xmit() +- netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value. +- lib/ts_bm: reset initial match offset for every block of text +- sfc: fix crash when reading stats while NIC is resetting +- net: axienet: Move reset before 64-bit DMA detection +- gtp: Fix use-after-free in __gtp_encap_destroy(). +- selftests: rtnetlink: remove netdevsim device after ipsec offload test +- netlink: do not hard code device address lenth in fdb dumps +- netlink: fix potential deadlock in netlink_set_err() +- net: stmmac: fix double serdes powerdown +- igc: Fix race condition in PTP tx code +- wifi: ath9k: convert msecs to jiffies where needed +- wifi: cfg80211: rewrite merging of inherited elements +- wifi: iwlwifi: pull from TXQs with softirqs disabled +- rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO +- wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key() +- memstick r592: make memstick_debug_get_tpc_name() static +- kexec: fix a memory leak in crash_shrink_memory() +- watchdog/perf: more properly prevent false positives with turbo modes +- watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config +- wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown +- wifi: rsi: Do not configure WoWlan in shutdown hook if not enabled +- wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes +- wifi: ray_cs: Fix an error handling path in ray_probe() +- wifi: ray_cs: Drop useless status variable in parse_addr() +- wifi: ray_cs: Utilize strnlen() in parse_addr() +- wifi: wl3501_cs: Fix an error handling path in wl3501_probe() +- wl3501_cs: use eth_hw_addr_set() +- net: create netdev->dev_addr assignment helpers +- wl3501_cs: Fix misspelling and provide missing documentation +- wifi: atmel: Fix an error handling path in atmel_probe() +- wifi: orinoco: Fix an error handling path in orinoco_cs_probe() +- wifi: orinoco: Fix an error handling path in spectrum_cs_probe() +- regulator: core: Streamline debugfs operations +- regulator: core: Fix more error checking for debugfs_create_dir() +- bpftool: JIT limited misreported as negative value on aarch64 +- nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect() +- nfc: constify several pointers to u8, char and sk_buff +- libbpf: fix offsetof() and container_of() to work with CO-RE +- wifi: mwifiex: Fix the size of a memory allocation in mwifiex_ret_802_11_scan() +- wifi: wilc1000: fix for absent RSN capabilities WFA testcase +- spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG +- samples/bpf: Fix buffer overflow in tcp_basertt +- wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx +- wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation +- igc: Enable and fix RX hash usage by netstack +- pstore/ram: Add check for kstrdup +- ima: Fix build warnings +- evm: Complete description of evm_inode_setattr() +- x86/mm: Fix __swp_entry_to_pte() for Xen PV guests +- perf/ibs: Fix interface via core pmu events +- rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale +- rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup() +- rcuscale: Move shutdown from wait_event() to wait_event_idle() +- rcuscale: Always log error message +- rcuscale: Console output claims too few grace periods +- thermal/drivers/sun8i: Fix some error handling paths in sun8i_ths_probe() +- cpufreq: intel_pstate: Fix energy_performance_preference for passive +- ARM: 9303/1: kprobes: avoid missing-declaration warnings +- powercap: RAPL: Fix CONFIG_IOSF_MBI dependency +- perf/arm-cmn: Fix DTC reset +- PM: domains: fix integer overflow issues in genpd_parse_state() +- clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe +- tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode(). +- posix-timers: Prevent RT livelock in itimer_delete() +- irqchip/jcore-aic: Fix missing allocation of IRQ descriptors +- irqchip/jcore-aic: Kill use of irq_create_strict_mappings() +- md/raid10: fix wrong setting of max_corr_read_errors +- md/raid10: fix overflow of md/safe_mode_delay +- x86/resctrl: Only show tasks' pid in current pid namespace +- fs: pipe: reveal missing function protoypes +- nubus: Partially revert proc_create_single_data() conversion +- drm/amdgpu: Validate VM ioctl flags. +- scripts/tags.sh: Resolve gtags empty index generation +- Revert "thermal/drivers/mediatek: Use devm_of_iomap to avoid resource leak in mtk_thermal_probe" +- HID: logitech-hidpp: add HIDPP_QUIRK_DELAYED_INIT for the T651. +- HID: wacom: Use ktime_t rather than int when dealing with timestamps +- fbdev: imsttfb: Fix use after free bug in imsttfb_probe +- video: imsttfb: check for ioremap() failures +- can: isotp: isotp_sendmsg(): fix return error fix on TX path +- x86/smp: Use dedicated cache-line for mwait_play_dead() +- media: atomisp: fix "variable dereferenced before check 'asd'" +- config: enable COBFIG_ARM64_BRBE for arm64 +- ksmbd: delete asynchronous work from list +- ksmbd: fix typo, syncronous->synchronous +- ksmbd: fix possible memory leak in smb2_lock() +- ksmbd: replace usage of found with dedicated list iterator variable +- !3085 Backport 5.10.185 - 5.10.187 LTS patches from upstream +- !3110 spdxcheck.py: Fix a type error +- !2925 [OLK 5.10]Fix the call trace when hibmc loaded failed +- !3109 arm64/mpam: Fix static analysis warning +- !3100 Default select PAGE_POOL_STATS, add command queue trace for hns3 +- spdxcheck.py: Fix a type error +- drm/hisilicon: fix the call trace when hibmc loaded failed +- arm64/mpam: Fix buffer overflow in mpam_handle_error_irq() +- arm64/mpam: Fix uninitialized symbol ret +- !3083 fs/dirty_pages: introduce a new config option 'CONFIG_DIRTY_PAGES' +- !3082 fs/dirty_pages: add last read check in seq_read_dirty() +- net: hns3: add command queue trace for hns3 +- KVM: arm64: update arm64 openeuler_defconfig for CONFIG_PTP_1588_CLOCK_KVM +- KVM: arm64: fix compile error +- net: hns3: default select PAGE_POOL_STATS +- !2988 [sync] PR-1203: Revert "locking/rwsem: Prevent potential lock starvation" +- ntb: intel: add GNR support for Intel PCIe gen5 NTB +- ptp: fix error print of ptp_kvm on X86_64 platform +- KVM: arm64: Fix Function ID typo for PTP_KVM service +- ptp: Don't print an error if ptp_kvm is not supported +- ptp: arm/arm64: Enable ptp_kvm for arm/arm64 +- KVM: arm64: Add support for the KVM PTP service +- clocksource: Add clocksource id for arm arch counter +- time: Add mechanism to recognize clocksource in time_get_snapshot +- ptp: Reorganize ptp_kvm.c to make it arch-independent +- KVM: arm64: Advertise KVM UID to guests via SMCCC +- arm/arm64: Probe for the presence of KVM hypervisor +- !845 [OLK-5.10] net/smc: Introduce generic netlink interface for diagnostic purposes +- x86/microcode/AMD: Load late on both threads too +- bpf/btf: Accept function names that contain dots +- i2c: imx-lpi2c: fix type char overflow issue when calculating the clock cycle +- x86/apic: Fix kernel panic when booting with intremap=off and x2apic_phys +- drm/radeon: fix race condition UAF in radeon_gem_set_domain_ioctl +- drm/exynos: fix race condition UAF in exynos_g2d_exec_ioctl +- drm/exynos: vidi: fix a wrong error return +- ARM: dts: Fix erroneous ADS touchscreen polarities +- s390/purgatory: disable branch profiling +- ASoC: nau8824: Add quirk to active-high jack-detect +- ASoC: simple-card: Add missing of_node_put() in case of error +- spi: lpspi: disable lpspi module irq in DMA mode +- s390/cio: unregister device when the only path is gone +- Input: soc_button_array - add invalid acpi_index DMI quirk handling +- usb: gadget: udc: fix NULL dereference in remove() +- nfcsim.c: Fix error checking for debugfs_create_dir +- media: cec: core: don't set last_initiator if tx in progress +- arm64: Add missing Set/Way CMO encodings +- HID: wacom: Add error check to wacom_parse_and_register() +- scsi: target: iscsi: Prevent login threads from racing between each other +- gpiolib: Fix GPIO chip IRQ initialization restriction +- gpio: Allow per-parent interrupt data +- sch_netem: acquire qdisc lock in netem_change() +- Revert "net: phy: dp83867: perform soft reset and retain established link" +- netfilter: nfnetlink_osf: fix module autoload +- netfilter: nf_tables: disallow element updates of bound anonymous sets +- netfilter: nft_set_pipapo: .walk does not deal with generations +- be2net: Extend xmit workaround to BE3 chip +- net: dsa: mt7530: fix trapping frames on non-MT7621 SoC MT7530 switch +- ipvs: align inner_mac_header for encapsulation +- mmc: usdhi60rol0: fix deferred probing +- mmc: sh_mmcif: fix deferred probing +- mmc: sdhci-acpi: fix deferred probing +- mmc: owl: fix deferred probing +- mmc: omap_hsmmc: fix deferred probing +- mmc: omap: fix deferred probing +- mmc: mvsdio: fix deferred probing +- mmc: mtk-sd: fix deferred probing +- net: qca_spi: Avoid high load if QCA7000 is not available +- xfrm: Linearize the skb after offloading if needed. +- selftests: net: fcnal-test: check if FIPS mode is enabled +- selftests: net: vrf-xfrm-tests: change authentication and encryption algos +- xfrm: fix inbound ipv4/udp/esp packets to UDPv6 dualstack sockets +- bpf: Fix verifier id tracking of scalars on spill +- bpf: track immediate values written to stack by BPF_ST instruction +- xfrm: Ensure policies always checked on XFRM-I input path +- xfrm: interface: rename xfrm_interface.c to xfrm_interface_core.c +- !3066 rcu: Add RCU stall diagnosis information +- ieee802154: hwsim: Fix possible memory leaks +- memfd: check for non-NULL file_seals in memfd_create() syscall +- x86/mm: Avoid using set_pgd() outside of real PGD pages +- nilfs2: prevent general protection fault in nilfs_clear_dirty_page() +- io_uring/net: disable partial retries for recvmsg with cmsg +- io_uring/net: clear msg_controllen on partial sendmsg retry +- io_uring/net: save msghdr->msg_control for retries +- writeback: fix dereferencing NULL mapping->host on writeback_page_template +- regmap: spi-avmm: Fix regmap_bus max_raw_write +- regulator: pca9450: Fix LDO3OUT and LDO4OUT MASK +- ip_tunnels: allow VXLAN/GENEVE to inherit TOS/TTL from VLAN +- mmc: mmci: stm32: fix max busy timeout calculation +- mmc: meson-gx: remove redundant mmc_request_done() call from irq context +- mmc: sdhci-msm: Disable broken 64-bit DMA on MSM8916 +- PCI: hv: Fix a race condition in hv_irq_unmask() that can cause panic +- PCI: hv: Remove the useless hv_pcichild_state from struct hv_pci_dev +- Revert "PCI: hv: Fix a timing issue which causes kdump to fail occasionally" +- PCI: hv: Fix a race condition bug in hv_pci_query_relations() +- Drivers: hv: vmbus: Fix vmbus_wait_for_unload() to scan present CPUs +- nilfs2: fix buffer corruption due to concurrent device reads +- selftests: mptcp: join: skip check if MIB counter not supported +- selftests: mptcp: pm nl: remove hardcoded default limits +- selftests: mptcp: lib: skip if not below kernel version +- selftests: mptcp: lib: skip if missing symbol +- tick/common: Align tick period during sched_timer setup +- tracing: Add tracing_reset_all_online_cpus_unlocked() function +- net/sched: Refactor qdisc_graft() for ingress and clsact Qdiscs +- drm/amd/display: fix the system hang while disable PSR +- !3087 psi irq in cgroupv1 and psi fine grained +- !3072 printk: ringbuffer: Fix truncating buffer size min_t cast +- !3062 backport SME from mainline +- !3069 drivers: perf: Not enabled ARM64_BRBE by default +- PSI: enable CONFIG_PSI_FINE_GRAINED in openeuler_defconfig +- add cpu fine grained stall tracking in pressure.stat +- PSI: add more memory fine grained stall tracking in pressure.stat +- PSI: Introduce pressure.stat in psi +- PSI: Introduce avgs and total calculation for cgroup reclaim +- PSI: Introduce fine grained stall time collect for cgroup reclaim +- psi: add struct psi_group_ext +- memcg: Modify memcg async reclaim +- sched/psi: Zero the memory of struct psi_group +- psi: dont alloc memory for psi by default +- psi: update psi irqtime when the irq delta is nozero +- psi: enable CONFIG_PSI_CGROUP_V1 in openeuler_defconfig +- mm: add config isolation for psi under cgroup v1 +- mm: disable psi cgroup v1 by default +- psi: support irq.pressure under cgroup v1 +- sched/psi: Bail out early from irq time accounting +- sched/psi: Add PSI_IRQ to track IRQ/SOFTIRQ pressure +- sched/psi: Remove NR_ONCPU task accounting +- sched/psi: Optimize task switch inside shared cgroups again +- sched/psi: Fix periodic aggregation shut off +- psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n +- net/smc: Fix pos miscalculation in statistics +- net/smc: Ensure correct state of the socket in send path +- net/smc: Fix ENODATA tests in smc_nl_get_fback_stats() +- net/smc: Add netlink support for SMC fallback statistics +- net/smc: Add netlink support for SMC statistics +- net/smc: Add SMC statistics support +- um: Fix build w/o CONFIG_PM_SLEEP +- drm/i915/gen11+: Only load DRAM information from pcode +- drm/i915/dg1: Wait for pcode/uncore handshake at startup +- nilfs2: reject devices with insufficient block count +- mmc: block: ensure error propagation for non-blk +- batman-adv: Switch to kstrtox.h for kstrtou64 +- neighbour: delete neigh_lookup_nodev as not used +- net/smc: use memcpy instead of snprintf to avoid out of bounds read +- smc: fix out of bound access in smc_nl_get_sys_info() +- net/smc: fix access to parent of an ib device +- net/smc: Add support for obtaining SMCR device list +- net/smc: Add support for obtaining SMCD device list +- net/smc: Add SMC-D Linkgroup diagnostic support +- net/smc: Introduce SMCR get link command +- net/smc: Introduce SMCR get linkgroup command +- net/smc: Add support for obtaining system information +- net: Remove unused inline function dst_hold_and_use() +- neighbour: Remove unused inline function neigh_key_eq16() +- rcu/kvfree: Avoid freeing new kfree_rcu() memory after old grace period +- afs: Fix vlserver probe RTT handling +- selftests/ptp: Fix timestamp printf format for PTP_SYS_OFFSET +- net: tipc: resize nlattr array to correct size +- net: lapbether: only support ethernet devices +- net/sched: cls_api: Fix lockup on flushing explicitly created chain +- ext4: drop the call to ext4_error() from ext4_get_group_info() +- drm/nouveau: add nv_encoder pointer check for NULL +- drm/nouveau/dp: check for NULL nv_connector->native_mode +- drm/nouveau: don't detect DSM for non-NVIDIA device +- igb: fix nvm.ops.read() error handling +- sctp: fix an error code in sctp_sf_eat_auth() +- ipvlan: fix bound dev checking for IPv6 l3s mode +- IB/isert: Fix incorrect release of isert connection +- IB/isert: Fix possible list corruption in CMA handler +- IB/isert: Fix dead lock in ib_isert +- IB/uverbs: Fix to consider event queue closing also upon non-blocking mode +- RDMA/cma: Always set static rate to 0 for RoCE +- RDMA/mlx5: Initiate dropless RQ for RAW Ethernet functions +- octeontx2-af: fixed resource availability check +- iavf: remove mask from iavf_irq_enable_queues() +- RDMA/rxe: Fix the use-before-initialization error of resp_pkts +- RDMA/rxe: Removed unused name from rxe_task struct +- RDMA/rxe: Remove the unused variable obj +- ping6: Fix send to link-local addresses with VRF. +- net: enetc: correct the indexes of highest and 2nd highest TCs +- netfilter: nfnetlink: skip error delivery on batch in case of ENOMEM +- spi: fsl-dspi: avoid SCK glitches with continuous transfers +- RDMA/rtrs: Fix the last iu->buf leak in err path +- usb: dwc3: gadget: Reset num TRBs before giving back the request +- serial: lantiq: add missing interrupt ack +- USB: serial: option: add Quectel EM061KGL series +- ALSA: hda/realtek: Add a quirk for Compaq N14JP6 +- net: usb: qmi_wwan: add support for Compal RXM-G1 +- RDMA/uverbs: Restrict usage of privileged QKEYs +- nouveau: fix client work fence deletion race +- powerpc/purgatory: remove PGO flags +- x86/purgatory: remove PGO flags +- kexec: support purgatories with .text.hot sections +- nilfs2: fix possible out-of-bounds segment allocation in resize ioctl +- nilfs2: fix incomplete buffer cleanup in nilfs_btnode_abort_change_key() +- nios2: dts: Fix tse_mac "max-frame-size" property +- ocfs2: check new file size on fallocate call +- ocfs2: fix use-after-free when unmounting read-only filesystem +- epoll: ep_autoremove_wake_function should use list_del_init_careful +- irqchip/gic: Correctly validate OF quirk descriptors +- drm:amd:amdgpu: Fix missing buffer object unlock in failure path +- xen/blkfront: Only check REQ_FUA for writes +- ASoC: dwc: move DMA init to snd_soc_dai_driver probe() +- mips: Move initrd_start check after initrd address sanitisation. +- MIPS: Alchemy: fix dbdma2 +- parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory() +- parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu() +- ASoC: soc-pcm: test if a BE can be prepared +- btrfs: handle memory allocation failure in btrfs_csum_one_bio +- btrfs: scrub: try harder to mark RAID56 block groups read-only +- power: supply: Fix logic checking if system is running from battery +- irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues +- regulator: Fix error checking for debugfs_create_dir +- platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0 +- power: supply: Ratelimit no data debug output +- tools: gpio: fix debounce_period_us output of lsgpio +- ARM: dts: vexpress: add missing cache properties +- power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule() +- power: supply: sc27xx: Fix external_power_changed race +- power: supply: ab8500: Fix external_power_changed race +- test_firmware: fix a memory leak with reqs buffer +- test_firmware: prevent race conditions by a correct implementation of locking +- test_firmware: Use kstrtobool() instead of strtobool() +- kernel.h: split out kstrtox() and simple_strtox() to a separate header +- lib: cleanup kstrto*() usage +- fs/dirty_pages: introduce a new config option 'CONFIG_DIRTY_PAGES' +- !3065 support page eject +- fs/dirty_pages: add last read check in seq_read_dirty() +- net/smc: Introduce generic netlink interface for diagnostic purposes +- net/smc: Refactor smc ism v2 capability handling +- net/smc: Add diagnostic information to link structure +- net/smc: Add diagnostic information to smc ib-device +- net/smc: Add link counters for IB device ports +- !3020 fs/dirty_pages: fix inode reference count leakage error in dump_dirtypages_sb() +- !3022 fs/dirty_pages: fix some errors in seq_read_dirty() +- !3045 crypto: hisilicon/zip - add zip comp high perf mode configuration +- printk: ringbuffer: Fix truncating buffer size min_t cast +- !2953 Revert vf fault patch and fix some page pool bug +- !2788 [OLK-5.10] Add support for Mucse Network Adapter(N10) +- !3048 posix-cpu-timers: Implement timer_wait_running callback +- !811 [OLK-5.10] net/smc: patches to optimize rmbs and sndbuff +- drivers: perf: Not enabled ARM64_BRBE by default +- config: update openeuler_defconfig for arm64 and x86 +- rcu: Align the output of RCU CPU stall warning messages +- rcu: Add RCU stall diagnosis information +- sched: Add helper nr_context_switches_cpu() +- sched: Add helper kstat_cpu_softirqs_sum() +- sched/debug: Show the registers of 'current' in dump_cpu_task() +- sched/debug: Try trigger_single_cpu_backtrace(cpu) in dump_cpu_task() +- rcu: Check and report missed fqs timer wakeup on RCU stall +- rcu: Do not NMI offline CPUs +- rcu: For RCU grace-period kthread starvation, dump last CPU it ran on +- config: update defconfig for PAGE_EJECT +- mm: page_eject: Introuduce page ejection +- mm/hwpoison: Export symbol soft_offline_page +- !3057 livepatch/powerpc: Fix issue that miss one layer on stack checking +- !2938 Backport 5.10.183 - 5.10.184 LTS patches from upstream +- openeuler_defconfig: enable SME for arm64 by default +- arm64/ptrace: Clean up error handling path in sve_set_common() +- arm64/fpsimd: Sync and zero pad FPSIMD state for streaming SVE +- arm64: Remove the __user annotation for the restore_za_context() argument +- arm64/signal: Flush FPSIMD register state when disabling streaming mode +- arm64: cpufeature: Add missing .field_width for GIC system registers +- arm64/ptrace: Ensure that SME is set up for target when writing SSVE state +- arm64/fpsimd: Sync FPSIMD state with SVE for SME only systems +- arm64/fpsimd: Clear SME state in the target task when setting the VL +- arm64/sme: Set new vector length before reallocating +- arm64/fpsimd: Ensure SME storage is allocated after SVE VL changes +- arm64: sme: Use STR P to clear FFR context field in streaming SVE mode +- arm64/sme: Optimise SME exit on syscall entry +- arm64/sme: Don't use streaming mode to probe the maximum SME VL +- arm64/signal: Always allocate SVE signal frames on SME only systems +- arm64: ptrace: Use ARM64_SME to guard the SME register enumerations +- arm64/ptrace: Don't clear calling process' TIF_SME on OOM +- arm64/sme: Don't flush SVE register state when handling SME traps +- arm64/sme: Don't flush SVE register state when allocating SME storage +- arm64/sme: Fix EFI save/restore +- arm64/sme: Fix SVE/SME typo in ABI documentation +- arm64/sme: Fix tests for 0b1111 value ID registers +- arm64/sme: Remove _EL0 from name of SVCR - FIXME sysreg.h +- arm64/sme: Standardise bitfield names for SVCR +- arm64/sme: Drop SYS_ from SMIDR_EL1 defines +- arm64/fp: Rename SVE and SME LEN field name to _WIDTH +- arm64/fp: Make SVE and SME length register definition match architecture +- KVM: arm64: Always start with clearing SME flag on load +- KVM: arm64: Handle SME host state when running guests +- KVM: arm64: Trap SME usage in guest +- KVM: arm64: Hide SME system registers from guests +- arm64/sme: More sensibly define the size for the ZA register set +- arm64/sme: Fix NULL check after kzalloc +- arm64/sme: Add ID_AA64SMFR0_EL1 to __read_sysreg_by_encoding() +- arm64/sme: Provide Kconfig for SME +- arm64/sme: Save and restore streaming mode over EFI runtime calls +- arm64/sme: Disable streaming mode and ZA when flushing CPU state +- arm64/sme: Add ptrace support for ZA +- arm64/sme: Implement ptrace support for streaming mode SVE registers +- arm64/sme: Implement ZA signal handling +- arm64/sme: Implement streaming SVE signal handling +- arm64/sme: Disable ZA and streaming mode when handling signals +- arm64/sme: Implement traps and syscall handling for SME +- arm64/sme: Implement ZA context switching +- arm64/sme: Implement streaming SVE context switching +- arm64/sme: Implement SVCR context switching +- arm64/sme: Implement support for TPIDR2 +- arm64/sme: Implement vector length configuration prctl()s +- arm64/sme: Implement sysctl to set the default vector length +- arm64/sme: Identify supported SME vector lengths at boot +- arm64/sme: Basic enumeration support +- arm64/sme: Early CPU setup for SME +- arm64: Do not trap PMSNEVFR_EL1 +- arm64: Disable fine grained traps on boot +- arm64/sme: Manually encode SME instructions +- arm64/sme: System register and exception syndrome definitions +- arm64/sme: Provide ABI documentation for SME +- arm64: cpufeature: Always specify and use a field width for capabilities +- arm64/sve: Minor clarification of ABI documentation +- arm64/sve: Generalise vector length configuration prctl() for SME +- arm64/sve: Make sysctl interface for SVE reusable by SME +- arm64/sve: Track vector lengths for tasks in an array +- arm64/sve: Explicitly load vector length when restoring SVE state +- arm64/sve: Put system wide vector length information into structs +- arm64/sve: Use accessor functions for vector lengths in thread_struct +- arm64/sve: Rename find_supported_vector_length() +- KVM: arm64: Save/restore SVE state for nVHE +- KVM: arm64: Save guest's ZCR_EL1 before saving the FPSIMD state +- arm64/sve: Make access to FFR optional +- arm64/fp: Reindent fpsimd_save() +- KVM: arm64: Rework SVE host-save/guest-restore +- KVM: arm64: Map SVE context at EL2 when available +- arm64: sve: Provide sve_cond_update_zcr_vq fallback when !ARM64_SVE +- arm64: sve: Provide a conditional update accessor for ZCR_ELx +- KVM: arm64: Introduce vcpu_sve_vq() helper +- KVM: arm64: Use {read,write}_sysreg_el1 to access ZCR_EL1 +- KVM: arm64: Provide KVM's own save/restore SVE primitives +- KVM: arm64: Let vcpu_sve_pffr() handle HYP VAs +- arm64/sve: Better handle failure to allocate SVE register storage +- arm64/sve: Remove sve_load_from_fpsimd_state() +- arm64/sve: Use the sve_flush macros in sve_load_from_fpsimd_state() +- arm64/sve: Skip flushing Z registers with 128 bit vectors +- arm64/sve: Split _sve_flush macro into separate Z and predicate flushes +- drivers: perf: Add feature flag check in armpmu_add/del +- drivers: initial support for rnp drivers from Mucse Technology +- livepatch/powerpc: Fix issue that miss one layer on stack checking +- !3051 [OLK-5.10] ub: add device parameter to ubcore_user_control +- !3049 Revert "arm64/mpam: Fix mpam corrupt when cpu online" +- !3052 mpam: Fix uninitialized value +- Revert "staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE" +- btrfs: unset reloc control if transaction commit fails in prepare_to_relocate() +- btrfs: check return value of btrfs_commit_transaction in relocation +- drm/atomic: Don't pollute crtc_state->mode_blob with error pointers +- MIPS: locking/atomic: Fix atomic{_64,}_sub_if_positive +- tcp: fix tcp_min_tso_segs sysctl +- ext4: only check dquot_initialize_needed() when debugging +- Revert "ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled" +- vhost: support PACKED when setting-getting vring_base +- riscv: fix kprobe __user string arg print fault issue +- eeprom: at24: also select REGMAP +- i2c: sprd: Delete i2c adapter in .remove's error path +- ASoC: codecs: wsa881x: do not set can_multi_write flag +- staging: vc04_services: fix gcc-13 build warning +- usb: usbfs: Use consistent mmap functions +- usb: usbfs: Enforce page requirements for mmap +- pinctrl: meson-axg: add missing GPIOA_18 gpio group +- rbd: get snapshot context after exclusive lock is ensured to be held +- rbd: move RBD_OBJ_FLAG_COPYUP_ENABLED flag setting +- tee: amdtee: Add return_origin to 'struct tee_cmd_load_ta' +- Bluetooth: hci_qca: fix debugfs registration +- Bluetooth: Fix use-after-free in hci_remove_ltk/hci_remove_irk +- s390/dasd: Use correct lock while counting channel queue length +- ceph: fix use-after-free bug for inodes when flushing capsnaps +- can: j1939: avoid possible use-after-free when j1939_can_rx_register fails +- can: j1939: change j1939_netdev_lock type to mutex +- can: j1939: j1939_sk_send_loop_abort(): improved error queue handling in J1939 Socket +- drm/amdgpu: fix xclk freq on CHIP_STONEY +- ALSA: hda/realtek: Add Lenovo P3 Tower platform +- ALSA: hda/realtek: Add a quirk for HP Slim Desktop S01 +- Input: psmouse - fix OOB access in Elantech protocol +- Input: xpad - delete a Razer DeathAdder mouse VID/PID entry +- batman-adv: Broken sync while rescheduling delayed work +- bnxt_en: Implement .set_port / .unset_port UDP tunnel callbacks +- bnxt_en: Query default VLAN before VNIC setup on a VF +- bnxt_en: Don't issue AP reset during ethtool's reset operation +- lib: cpu_rmap: Fix potential use-after-free in irq_cpu_rmap_release() +- bpf: Add extra path pointer check to d_path helper +- net: sched: fix possible refcount leak in tc_chain_tmplt_add() +- net: sched: move rtm_tca_policy declaration to include file +- rfs: annotate lockless accesses to RFS sock flow table +- rfs: annotate lockless accesses to sk->sk_rxhash +- ipv6: rpl: Fix Route of Death. +- netfilter: ipset: Add schedule point in call_ad(). +- netfilter: conntrack: fix NULL pointer dereference in nf_confirm_cthelper +- qed/qede: Fix scheduling while atomic +- Bluetooth: L2CAP: Add missing checks for invalid DCID +- Bluetooth: Fix l2cap_disconnect_req deadlock +- net/sched: fq_pie: ensure reasonable TCA_FQ_PIE_QUANTUM values +- net/smc: Avoid to access invalid RMBs' MRs in SMCRv1 ADD LINK CONT +- net: dsa: lan9303: allow vid != 0 in port_fdb_{add|del} methods +- wifi: mt76: mt7615: fix possible race in mt7615_mac_sta_poll +- afs: Fix setting of mtime when creating a file/dir/symlink +- spi: qup: Request DMA before enabling clocks +- staging: vchiq_core: drop vchiq_status from vchiq_initialise +- i40e: fix build warning in ice_fltr_add_mac_to_list() +- i40e: fix build warnings in i40e_alloc.h +- i40iw: fix build warning in i40iw_manage_apbvt() +- block/blk-iocost (gcc13): keep large values in a new enum +- blk-iocost: avoid 64-bit division in ioc_timer_fn +- f2fs: fix iostat lock protection +- bonding (gcc13): synchronize bond_{a,t}lb_xmit() types +- remove the sx8 block driver +- sfc (gcc13): synchronize ef100_enqueue_skb()'s return type +- gcc-plugins: Reorganize gimple includes for GCC 13 +- ata: ahci: fix enum constants for gcc-13 +- ext4: enable the lazy init thread when remounting read/write +- selftests: mptcp: join: skip if MPTCP is not supported +- selftests: mptcp: simult flows: skip if MPTCP is not supported +- selftests: mptcp: diag: skip if MPTCP is not supported +- crypto: ccp: Play nice with vmalloc'd memory for SEV command structs +- crypto: ccp: Reject SEV commands with mismatching command buffer +- media: ti-vpe: cal: avoid FIELD_GET assertion +- tpm, tpm_tis: Request threaded interrupt handler +- regmap: Account for register length when chunking +- KEYS: asymmetric: Copy sig and digest in public_key_verify_signature() +- KVM: x86: Account fastpath-only VM-Exits in vCPU stats +- test_firmware: fix the memory leak of the allocated firmware buffer +- serial: 8250_tegra: Fix an error handling path in tegra_uart_probe() +- fbcon: Fix null-ptr-deref in soft_cursor +- ext4: add lockdep annotations for i_data_sem for ea_inode's +- ext4: disallow ea_inodes with extended attributes +- ext4: set lockdep subclass for the ea_inode in ext4_xattr_inode_cache_find() +- ext4: add EA_INODE checking to ext4_iget() +- selftests: mptcp: pm nl: skip if MPTCP is not supported +- selftests: mptcp: connect: skip if MPTCP is not supported +- tracing/probe: trace_probe_primary_from_call(): checked list_first_entry +- selinux: don't use make's grouped targets feature yet +- btrfs: fix csum_tree_block page iteration to avoid tripping on -Werror=array-bounds +- tty: serial: fsl_lpuart: use UARTCTRL_TXINV to send break instead of UARTCTRL_SBK +- mmc: vub300: fix invalid response handling +- eth: sun: cassini: remove dead code +- gcc-12: disable '-Wdangling-pointer' warning for now +- ath6kl: Use struct_group() to avoid size-mismatched casting +- ACPI: thermal: drop an always true check +- x86/boot: Wrap literal addresses in absolute_pointer() +- ata: libata-scsi: Use correct device no in ata_find_dev() +- scsi: stex: Fix gcc 13 warnings +- misc: fastrpc: reject new invocations during device removal +- misc: fastrpc: return -EPIPE to invocations on device removal +- usb: gadget: f_fs: Add unbind event before functionfs_unbind +- net: usb: qmi_wwan: Set DTR quirk for BroadMobi BM818 +- iio: dac: build ad5758 driver when AD5758 is selected +- iio: adc: ad7192: Change "shorted" channels to differential +- iio: dac: mcp4725: Fix i2c_master_send() return value handling +- iio: light: vcnl4035: fixed chip ID check +- iio: imu: inv_icm42600: fix timestamp reset +- HID: wacom: avoid integer overflow in wacom_intuos_inout() +- HID: google: add jewel USB id +- iio: adc: mxs-lradc: fix the order of two cleanup operations +- mailbox: mailbox-test: fix a locking issue in mbox_test_message_write() +- atm: hide unused procfs functions +- drm/msm: Be more shouty if per-process pgtables aren't working +- ALSA: oss: avoid missing-prototype warnings +- netfilter: conntrack: define variables exp_nat_nla_policy and any_addr with CONFIG_NF_NAT +- wifi: b43: fix incorrect __packed annotation +- scsi: core: Decrease scsi_device's iorequest_cnt if dispatch failed +- arm64/mm: mark private VM_FAULT_X defines as vm_fault_t +- ARM: dts: stm32: add pin map for CAN controller on stm32f7 +- wifi: rtl8xxxu: fix authentication timeout due to incorrect RCR value +- s390/pkey: zeroize key blobs +- media: mn88443x: fix !CONFIG_OF error by drop of_match_ptr from ID table +- media: dvb_ca_en50221: fix a size write bug +- media: netup_unidvb: fix irq init by register it at the end of probe +- media: dvb-usb: dw2102: fix uninit-value in su3000_read_mac_address +- media: dvb-usb: digitv: fix null-ptr-deref in digitv_i2c_xfer() +- media: dvb-usb-v2: rtl28xxu: fix null-ptr-deref in rtl28xxu_i2c_xfer +- media: dvb-usb-v2: ce6230: fix null-ptr-deref in ce6230_i2c_master_xfer() +- media: dvb-usb-v2: ec168: fix null-ptr-deref in ec168_i2c_xfer() +- media: dvb-usb: az6027: fix three null-ptr-deref in az6027_i2c_xfer() +- media: dvb_demux: fix a bug for the continuity counter +- ASoC: ssm2602: Add workaround for playback distortions +- ASoC: dt-bindings: Adjust #sound-dai-cells on TI's single-DAI codecs +- xfrm: Check if_id in inbound policy/secpath match +- ASoC: dwc: limit the number of overrun messages +- block/rnbd: replace REQ_OP_FLUSH with REQ_OP_WRITE +- fbdev: stifb: Fix info entry in sti_struct on error path +- fbdev: modedb: Add 1920x1080 at 60 Hz video mode +- media: rcar-vin: Select correct interrupt mode for V4L2_FIELD_ALTERNATE +- ARM: 9295/1: unwind:fix unwind abort for uleb128 case +- btrfs: abort transaction when sibling keys check fails for leaves +- mailbox: mailbox-test: Fix potential double-free in mbox_test_message_write() +- watchdog: menz069_wdt: fix watchdog initialisation +- mtd: rawnand: marvell: don't set the NAND frequency select +- mtd: rawnand: marvell: ensure timing values are written +- net: dsa: mv88e6xxx: Increase wait after reset deactivation +- net/mlx5: Read embedded cpu after init bit cleared +- udp6: Fix race condition in udp6_sendmsg & connect +- net/netlink: fix NETLINK_LIST_MEMBERSHIPS length report +- net/sched: Prohibit regrafting ingress or clsact Qdiscs +- net/sched: Reserve TC_H_INGRESS (TC_H_CLSACT) for ingress (clsact) Qdiscs +- net/sched: sch_clsact: Only create under TC_H_CLSACT +- net/sched: sch_ingress: Only create under TC_H_INGRESS +- tcp: Return user_mss for TCP_MAXSEG in CLOSE/LISTEN state if user_mss set +- af_packet: do not use READ_ONCE() in packet_bind() +- mtd: rawnand: ingenic: fix empty stub helper definitions +- amd-xgbe: fix the false linkup in xgbe_phy_status +- af_packet: Fix data-races of pkt_sk(sk)->num. +- netrom: fix info-leak in nr_write_internal() +- net/mlx5: fw_tracer, Fix event handling +- dmaengine: pl330: rename _start to prevent build error +- iommu/amd: Don't block updates to GATag if guest mode is on +- iommu/rockchip: Fix unwind goto issue +- RDMA/bnxt_re: Fix return value of bnxt_re_process_raw_qp_pkt_rx +- RDMA/bnxt_re: Fix a possible memory leak +- dmaengine: at_xdmac: fix potential Oops in at_xdmac_prep_interleaved() +- dmaengine: at_xdmac: Move the free desc to the tail of the desc list +- dmaengine: at_xdmac: Fix race for the tx desc callback +- dmaengine: at_xdmac: Fix concurrency over chan's completed_cookie +- RDMA/efa: Fix unsupported page sizes in device +- RDMA/bnxt_re: Fix the page_size used during the MR creation +- RDMA/bnxt_re: Code refactor while populating user MRs +- !2831 [22.03-LTS-SP3] TDP MMU Support +- !3037 introduce smart_grid zone +- mpam: Fix uninitialized value +- ub: add device parameter to ubcore_user_control +- arm64/sve: Rework SVE access trap to convert state in registers +- arm64/sve: Add compile time checks for SVE hooks in generic functions +- arm64/sve: Remove redundant system_supports_sve() tests +- Revert "arm64/mpam: Fix mpam corrupt when cpu online" +- posix-cpu-timers: Implement timer_wait_running callback +- !3019 RDMA/hns: Some cleanups for openEuler +- !3033 ipmi_si: fix a memleak in try_smi_init() +- !2617 [SYNC patch to OLK-5.10]Add ACS quirk for Wangxun NICs +- net/smc: Fix slab-out-of-bounds issue in fallback +- net/smc: Only save the original clcsock callback functions +- net/smc: Avoid overwriting the copies of clcsock callback functions +- net/smc: Transitional solution for clcsock race issue +- net/smc: fix documentation of buffer sizes +- net/smc: Forward wakeup to smc socket waitqueue after fallback +- !3006 open: make RESOLVE_CACHED correctly test for O_TMPFILE +- net/smc: Use correct buffer sizes when switching between TCP and SMC +- net/smc: Fix setsockopt and sysctl to specify same buffer size again +- anolis: net/smc: Introduce sysctl tcp2smc +- !865 [OLK-5.10] net/smc: backport the bugfixes of crash and other key problems in SMC +- !3039 ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet +- crypto: hisilicon/qm - add comments and remove redundant +- crypto: hisilicon/qm - simplify the status of qm +- crypto: hisilicon/sgl - small cleanups for sgl.c +- crypto: hisilicon/zip - add zip comp high perf mode configuration +- crypto: hisilicon/qm - remove incorrect type cast +- crypto: hisilicon/qm - print device abnormal information +- ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet +- sched: smart grid: check is active in affinity timer +- smart_grid: cpufreq: introduce smart_grid cpufreq control +- smart_grid: introduce smart_grid_strategy_ctrl sysctl +- smart_grid: introduce /proc/pid/smart_grid_level +- sched: introduce smart grid qos zone +- sched: Fix null pointer derefrence for sd->span +- config: enable CONFIG_QOS_SCHED_SMART_GRID by default +- sched: Fix memory leak for smart grid +- sched: Delete redundant updates to p->prefer_cpus +- sched: Adjust few parameters range for smart grid +- sched: clear credit count in error branch +- sched: Fix memory leak on error branch +- sched: fix dereference NULL pointers +- sched: Fix timer storm for smart grid +- sched: Fix negative count for jump label +- sched: Fix possible deadlock in tg_set_dynamic_affinity_mode +- sched: fix WARN found by deadlock detect +- sched: fix smart grid usage count +- sched: smart grid: init sched_grid_qos structure on QOS purpose +- sched: Introduce smart grid scheduling strategy for cfs +- !3009 vhost-vdpa: allow set feature VHOST_F_LOG_ALL when been negotiated. +- !2594 [OLK-5.10] x86/perf: Update PMU support for more Zhaoxin CPU +- RDMA/hns: Improve readabilties for dca uverbs +- RDMA/hns: Fix unhandled error code in dca uverbs +- RDMA/hns: Fix memory leak in free_mr_exit() and free_mr_init() +- RDMA/hns: Remove redundant address operations in print DCA logs +- RDMA/hns: Fix several memory issues in roce bonding +- RDMA/hns: Delete redundant assignment values +- RDMA/hns: Fix a meaningless loop in free_buffer_pages_proc() +- RDMA/hns: Fix incorrect print type in bond +- RDMA/hns: Improve the readability of free mr exception branch +- !3008 [OLK-5.10] ub: Fix bugs in urma kernel and user lib +- ipmi_si: fix a memleak in try_smi_init() +- !2747 [OLK-5.10] drivers: initial support for xsc drivers from Yunsilicon Technology +- anolis: net/smc: delay RDMA resource release until connecitons freed +- anolis: net/smc: Avoid clcsock access panic +- anolis: net/smc: move sk_acceptq_{removed,add} into accept_q_lock's protection +- anolis: net/smc: fix deadlock when lgr terminating +- anolis: net/smc: Resolve the race between SMC-R link access and clear +- net/smc: Correct smc link connection counter in case of smc client +- net/smc: Add connection counters for links +- anolis: net/smc: Resolve the race between link group access and termination +- anolis: net/smc: Expose SMCPROTO_SMC and SMCPROTO_SMC6 to userspace +- fs/dirty_pages: fix some errors in seq_read_dirty() +- fs/dirty_pages: fix inode reference count leakage error in dump_dirtypages_sb() +- !2964 Backport crypto bugfix +- PCI: Add ACS quirk for Wangxun NICs +- Revert "openeuler: pci: workaround multiple functions can be assigned to only one VM" +- !3011 config: update openeuler_defconfig for x86 with gcc 10.3.1 +- RDMA/hns: Remove unnecessary checks for NULL in mtr_alloc_bufs() +- RDMA/hns: Fix sleeping in setup_dca_buf_to_hw() +- RDMA/hns: Use complete parentheses in macros +- !553 fix vmx_ldtr_test failed +- config: update openeuler_defconfig for x86 with gcc 10.3.1 +- vhost-vdpa: allow set feature VHOST_F_LOG_ALL when been negotiated. +- ub: Fix bugs in urma kernel and user lib +- open: make RESOLVE_CACHED correctly test for O_TMPFILE +- LoongArch: KVM: fix vcpu timer functions +- !2989 [sync] PR-1095: irqchip: gic-v3: Collection table support muti pages +- net/smc: Use reserve space when adding struct netns_smc in struct net +- net/smc: Tune the maximum size of virtually contiguous sndbufs or RMBs for SMC-R +- net/smc: Add size match for smc_buf_get_slot +- net/smc: Unbind r/w buffer size from clcsock and make them tunable +- net/smc: Allow virtually contiguous sndbufs or RMBs for SMC-R +- net/smc: Allow SMC-D 1MB DMB allocations +- net/smc: Use sysctl-specified types of buffers in new link group +- net/smc: Introduce a sysctl for setting SMC-R buffer type +- net/smc: fix a memory leak in smc_sysctl_net_exit() +- net/smc: fix -Wmissing-prototypes warning when CONFIG_SYSCTL not set +- net/smc: fix compile warning for smc_sysctl +- net/smc: add sysctl interface for SMC +- irqchip: gic-v3: Collection table support muti pages +- Revert "locking/rwsem: Better collate rwsem_read_trylock()" +- Revert "locking/rwsem: Pass the current atomic count to rwsem_down_read_slowpath()" +- Revert "locking/rwsem: Prevent potential lock starvation" +- !2879 SCSI: hisi_raid: support SPxxx series RAID/HBA controllers +- !2973 Add script to check & update openeuler_defconfig +- cpu/hotplug: fix kabi breakage in enum cpuhp_state +- hrtimers: Push pending hrtimers away from outgoing CPU earlier +- !2961 can: raw: fix memory leak +- config: update openeuler_defconfig for arm64 +- config: update openeuler_defconfig for x86 +- kconfig: Add script to check & update openeuler_defconfig +- Revert "kconfig: Add script to update openeuler_defconfig" +- !2774 [OLK-5.10] sched/fair: Scan cluster before scanning LLC in wake-up path +- !2915 Introduce CPU inspect feature +- !2949 Cmdline for ARMv8 Pointer Authentication +- openeuler_defconfig: enable CPU inspect for arm64 by default +- cpuinspect: add ATF inspector +- cpuinspect: add CPU-inspect infrastructure +- crypto: fix kabi broken in struct crypto_instance +- crypto: api - Use work queue in crypto_destroy_instance +- can: raw: add missing refcount for memory leak fix +- can: raw: fix lockdep issue in raw_release() +- can: raw: fix receiver memory leak +- net: hns3: fix statistics issue when disable page pool +- net: page_pool: optimize page pool page allocation in NUMA scenario +- mm/page_alloc: add an alloc_pages_bulk_array_node() helper +- arm64: add cmdline to control ptrauth feature at boot +- arm64: Defer enabling pointer authentication on boot core +- drivers: initial support for xsc drivers from Yunsilicon Technology +- LoongArch: disable 40bit user space by default +- !2943 ext4: mitigate cacheline false sharing in struct ext4_inode_info +- enable MITIGATION_FALSE_SHARING by default +- ext4: mitigatin cacheline false sharing in struct ext4_inode_info +- !2731 PCI/IOV: Add pci_sriov_numvfs_lock to support enable pci sriov concurrently +- !2926 Fixed some issues of ultrasoc-smb +- net: hns3: add vf fault detect support +- net: hns3: add hns3 vf fault detect cap bit support +- Revert "net: hns3: add hns3 vf fault detect cap bit support" +- Revert "net: hns3: add vf fault process in hns3 ras" +- Revert "net: hns3: add build check in hclge_get_vf_isolate_bitmap" +- Revert "net: hns3: notify specified VF for recovery operation" +- !2864 unic: add ub support to hns3 +- !1967 cpu/hotplug: Prevent self deadlock on CPU hot-unplug +- !2929 RDMA/hns: A set of bugfixes for openEuler +- coresight: ultrasoc-smb: Fix uninitialized before use buf_hw_base +- coresight: ultrasoc-smb: Config SMB buffer before register sink +- coresight: ultrasoc-smb: Fix sleep while close preempt in enable_smb +- !2932 Revert "net: hns3: add command queue trace for hns3" +- Revert "net: hns3: add command queue trace for hns3" +- RDMA/hns: Add a max length of gid table +- RDMA/hns: Fix congestions control algorithm type for UD +- RDMA/hns: Response dmac to userspace +- RDMA/hns: Fix simultaneous reset and resource deregistration +- RDMA/hns: Cleanup of RoCE Bonding driver +- RDMA/hns: Fix a missing validation check for sl +- RDMA/hns: Fix a missing default value for invalid congest type +- RDMA/hns: Fix incorrect congest type configuration +- !2928 ub: add new feature for urma +- !2687 integrity: Fix possible multiple allocation in integrity_inode_get() +- !2865 Backport 5.10.181 - 5.10.182 LTS patches from upstream +- ub: add new feature for urma +- !2911 Fix syntax issues in comments and print +- KVM: x86/mmu: Fix incorrect reference count for TDP MMU root +- KVM: x86/mmu: fast_page_fault support for the TDP MMU +- KVM: x86/mmu: Protect marking SPs unsync when using TDP MMU with spinlock +- KVM: x86/mmu: Make walk_shadow_page_lockless_{begin,end} interoperate with the TDP MMU +- KVM: x86/mmu: Fix use of enums in trace_fast_page_fault +- KVM: x86/mmu: Rename cr2_or_gpa to gpa in fast_page_fault +- KVM: x86/mmu: Remove broken WARN that fires on 32-bit KVM w/ nested EPT +- KVM: x86/mmu: Don't WARN on a NULL shadow page in TDP MMU check +- KVM: x86/mmu: Fix uninitialized boolean variable flush +- KVM: x86/mmu: Remove redundant root_hpa checks +- KVM: x86/mmu: Refactor is_tdp_mmu_root into is_tdp_mmu +- KVM: x86/mmu: Remove redundant is_tdp_mmu_enabled check +- KVM: x86/mmu: Remove redundant is_tdp_mmu_root check +- KVM: x86: Stub out is_tdp_mmu_root on 32-bit hosts +- KVM: x86/mmu: Grab nx_lpage_splits as an unsigned long before division +- KVM: x86/mmu: Fix TLB flush range when handling disconnected pt +- KVM: x86/mmu: Fix TDP MMU page table level +- KVM: x86/mmu: Fix pf_fixed count in tdp_mmu_map_handle_target_level() +- KVM: x86/mmu: Lazily allocate memslot rmaps +- KVM: x86/mmu: Skip rmap operations if rmaps not allocated +- KVM: x86/mmu: Add a field to control memslot rmap allocation +- KVM: mmu: Add slots_arch_lock for memslot arch fields +- KVM: mmu: Refactor memslot copy +- KVM: x86/mmu: Factor out allocating memslot rmap +- KVM: x86/mmu: Deduplicate rmap freeing +- KVM: x86/mmu: Make is_nx_huge_page_enabled an inline function +- KVM: x86/mmu: Fix comment mentioning skip_4k +- kvm/x86: Fix 'lpages' kvm stat for TDM MMU +- KVM: x86/mmu: Avoid unnecessary page table allocation in kvm_tdp_mmu_map() +- KVM: x86/mmu: Fix wrong/misleading comments in TDP MMU fast zap +- KVM: x86/mmu: Tear down roots before kvm_mmu_zap_all_fast returns +- KVM: x86/mmu: Fast invalidation for TDP MMU +- KVM: x86/mmu: Allow enabling/disabling dirty logging under MMU read lock +- KVM: x86/mmu: Allow zapping collapsible SPTEs to use MMU read lock +- KVM: x86/mmu: Allow zap gfn range to operate under the mmu read lock +- KVM: x86/mmu: Protect the tdp_mmu_roots list with RCU +- KVM: x86/mmu: handle cmpxchg failure in kvm_tdp_mmu_get_root +- KVM: x86/mmu: Make TDP MMU root refcount atomic +- KVM: x86/mmu: Refactor yield safe root iterator +- KVM: x86/mmu: Merge TDP MMU put and free root +- KVM: x86/mmu: use tdp_mmu_free_sp to free roots +- KVM: x86/mmu: Move kvm_mmu_(get|put)_root to TDP MMU +- KVM: x86/mmu: Re-add const qualifier in kvm_tdp_mmu_zap_collapsible_sptes +- KVM: x86/mmu: Clarify TDP MMU page list invariants +- KVM: x86/mmu: Introduce the on_unlock hook to flush the cache for SEV +- KVM: x86/mmu: Allow yielding during MMU notifier unmap/zap, if possible +- KVM: Take mmu_lock when handling MMU notifier iff the hva hits a memslot +- KVM: Move MMU notifier's mmu_lock acquisition into common helper +- KVM: RISC-V: Convert to the gfn-based MMU notifier callbacks +- KVM: PPC: Book3S HV: Fix conversion to gfn-based MMU notifier callbacks +- KVM: PPC: Convert to the gfn-based MMU notifier callbacks +- KVM: MIPS/MMU: Convert to the gfn-based MMU notifier callbacks +- KVM: arm64: Convert to the gfn-based MMU notifier callbacks +- KVM: Move x86's MMU notifier memslot walkers to generic code +- KVM: MIPS: defer flush to generic MMU notifier code +- KVM: MIPS: let generic code call prepare_flush_shadow +- KVM: MIPS: rework flush_shadow_* callbacks into one that prepares the flush +- KVM: x86/mmu: Simplify code for aging SPTEs in TDP MMU +- KVM: x86/mmu: Remove spurious clearing of dirty bit from TDP MMU SPTE +- KVM: x86/mmu: Drop trace_kvm_age_page() tracepoint +- KVM: Move arm64's MMU notifier trace events to generic code +- KVM: Move prototypes for MMU notifier callbacks to generic code +- KVM: x86/mmu: Use leaf-only loop for walking TDP SPTEs when changing SPTE +- KVM: x86/mmu: Pass address space ID to TDP MMU root walkers +- KVM: x86/mmu: Pass address space ID to __kvm_tdp_mmu_zap_gfn_range() +- KVM: x86/mmu: Coalesce TLB flushes across address spaces for gfn range zap +- KVM: x86/mmu: Coalesce TLB flushes when zapping collapsible SPTEs +- KVM: x86/mmu: Move flushing for "slot" handlers to caller for legacy MMU +- KVM: x86/mmu: Coalesce TDP MMU TLB flushes when zapping collapsible SPTEs +- KVM: x86/mmu: Passing up the error state of mmu_alloc_shadow_roots() +- KVM: MMU: load PDPTRs outside mmu_lock +- KVM: MMU: protect TDP MMU pages only down to required level +- KVM: x86: Further clarify the logic and comments for toggling log dirty +- KVM: x86/mmu: Expand on the comment in kvm_vcpu_ad_need_write_protect() +- KVM: nVMX: Disable PML in hardware when running L2 +- KVM: x86/mmu: Consult max mapping level when zapping collapsible SPTEs +- KVM: x86/mmu: Pass the memslot to the rmap callbacks +- KVM: x86/mmu: Split out max mapping level calculation to helper +- KVM: x86/mmu: Dump reserved bits if they're detected on non-MMIO SPTE +- KVM: x86/mmu: Optimize not-present/MMIO SPTE check in get_mmio_spte() +- KVM: x86/mmu: Use raw level to index into MMIO walks' sptes array +- KVM: x86/mmu: Use low available bits for removed SPTEs +- KVM: x86/mmu: WARN if old _or_ new SPTE is REMOVED in non-atomic path +- KVM: x86/mmu: Use is_removed_spte() instead of open coded equivalents +- KVM: x86/mmu: Tweak auditing WARN for A/D bits to !PRESENT (was MMIO) +- KVM: x86/mmu: Use a dedicated bit to track shadow/MMU-present SPTEs +- KVM: x86/mmu: Use high bits for host/mmu writable masks for EPT SPTEs +- KVM: x86/mmu: Make Host-writable and MMU-writable bit locations dynamic +- KVM: x86/mmu: Move logic for setting SPTE masks for EPT into the MMU proper +- KVM: x86/mmu: Co-locate code for setting various SPTE masks +- KVM: x86/mmu: Move initial kvm_mmu_set_mask_ptes() call into MMU proper +- KVM: x86/mmu: Document dependency bewteen TDP A/D type and saved bits +- KVM: x86/mmu: Use MMIO SPTE bits 53 and 52 for the MMIO generation +- KVM: x86/mmu: Rename and document A/D scheme for TDP SPTEs +- KVM: x86/mmu: Stop using software available bits to denote MMIO SPTEs +- KVM: x86/mmu: Rename 'mask' to 'spte' in MMIO SPTE helpers +- KVM: x86/mmu: Drop redundant trace_kvm_mmu_set_spte() in the TDP MMU +- KVM: x86/mmu: Handle MMIO SPTEs directly in mmu_set_spte() +- KVM: x86/mmu: Don't install bogus MMIO SPTEs if MMIO caching is disabled +- KVM: x86/mmu: Disable MMIO caching if MMIO value collides with L1TF +- KVM: x86/mmu: Bail from fast_page_fault() if SPTE is not shadow-present +- KVM: x86/mmu: Check for shadow-present SPTE before querying A/D status +- KVM: x86/mmu: Add convenience wrapper for acting on single hva in TDP MMU +- KVM: x86/mmu: Add typedefs for rmap/iter handlers +- KVM: x86/mmu: Use 'end' param in TDP MMU's test_age_gfn() +- KVM: x86/mmu: WARN if TDP MMU's set_tdp_spte() sees multiple GFNs +- KVM: x86/mmu: Remove spurious TLB flush from TDP MMU's change_pte() hook +- KVM: x86: mmu: initialize fault.async_page_fault in walk_addr_generic +- KVM: x86/mmu: WARN on NULL pae_root or lm_root, or bad shadow root level +- KVM: x86/mmu: Sync roots after MMU load iff load as successful +- KVM: x86/mmu: Set the C-bit in the PDPTRs and LM pseudo-PDPTRs +- KVM: x86/mmu: Fix and unconditionally enable WARNs to detect PAE leaks +- KVM: x86/mmu: Check PDPTRs before allocating PAE roots +- KVM: x86/mmu: Ensure MMU pages are available when allocating roots +- KVM: x86/mmu: Allocate pae_root and lm_root pages in dedicated helper +- KVM: x86/mmu: Allocate the lm_root before allocating PAE roots +- KVM: x86/mmu: Capture 'mmu' in a local variable when allocating roots +- KVM: x86/mmu: Make HVA handler retpoline-friendly +- KVM: x86/mmu: Store the address space ID in the TDP iterator +- KVM: x86/mmu: Factor out tdp_iter_return_to_root +- KVM: x86/mmu: Fix RCU usage when atomically zapping SPTEs +- KVM: x86/mmu: Fix RCU usage in handle_removed_tdp_mmu_page +- KVM: x86/mmu: Skip !MMU-present SPTEs when removing SP in exclusive mode +- KVM: x86/mmu: Consider the hva in mmu_notifier retry +- KVM: x86/mmu: Skip mmu_notifier check when handling MMIO page fault +- KVM: Raise the maximum number of user memslots +- KVM: x86: compile out TDP MMU on 32-bit systems +- KVM: x86: Add helper to consolidate "raw" reserved GPA mask calculations +- KVM: x86/mmu: Add helper to generate mask of reserved HPA bits +- KVM: x86: Use reserved_gpa_bits to calculate reserved PxE bits +- KVM: x86: SEV: Treat C-bit as legal GPA bit regardless of vCPU mode +- KVM: nSVM: Use common GPA helper to check for illegal CR3 +- KVM: VMX: Use GPA legality helpers to replace open coded equivalents +- KVM: x86: Add a helper to handle legal GPA with an alignment requirement +- KVM: x86: Add a helper to check for a legal GPA +- KVM: selftests: Verify supported CR4 bits can be set before KVM_SET_CPUID2 +- KVM: x86: Return bool instead of int for CR4 and SREGS validity checks +- KVM: x86/mmu: Allow parallel page faults for the TDP MMU +- KVM: x86/mmu: Mark SPTEs in disconnected pages as removed +- KVM: x86/mmu: Flush TLBs after zap in TDP MMU PF handler +- KVM: x86/mmu: Use atomic ops to set SPTEs in TDP MMU map +- KVM: x86/mmu: Factor out functions to add/remove TDP MMU pages +- i915: kvmgt: the KVM mmu_lock is now an rwlock +- KVM: x86/mmu: Use an rwlock for the x86 MMU +- sched: Add cond_resched_rwlock +- sched: Add needbreak for rwlocks +- locking/arch: Move qrwlock.h include after qspinlock.h +- locking/rwlocks: Add contention detection for rwlocks +- KVM: x86/mmu: Protect TDP MMU page table memory with RCU +- KVM: x86/mmu: Clear dirtied pages mask bit before early break +- KVM: x86/mmu: Skip no-op changes in TDP MMU functions +- KVM: x86/mmu: Factor out handling of removed page tables +- KVM: x86/mmu: Don't redundantly clear TDP MMU pt memory +- KVM: x86/mmu: Add lockdep when setting a TDP MMU SPTE +- KVM: x86/mmu: Add comment on __tdp_mmu_set_spte +- kvm: x86/mmu: Add TDP MMU SPTE changed trace point +- kvm: x86/mmu: Add existing trace points to TDP MMU +- KVM: x86/mmu: Use boolean returns for (S)PTE accessors +- !2348 net: ipv4: fix one memleak in __inet_del_ifa() +- !2798 handle uninitialized numa nodes gracefully. +- !2888 OLK-5.10: GNR-SRF new KVM ISA support +- !2845 crypto: hisilicon - revert some patch +- fs: Fix syntax issues in comments +- fs: Fix syntax issues in comments and print statements. +- netfilter: ctnetlink: Support offloaded conntrack entry deletion +- ipv{4,6}/raw: fix output xfrm lookup wrt protocol +- bluetooth: Add cmd validity checks at the start of hci_sock_ioctl() +- net: phy: mscc: enable VSC8501/2 RGMII RX clock +- net/mlx5: Devcom, serialize devcom registration +- net/mlx5: devcom only supports 2 ports +- power: supply: bq24190: Call power_supply_changed() after updating input current +- power: supply: core: Refactor power_supply_set_input_current_limit_from_supplier() +- power: supply: bq27xxx: After charger plug in/out wait 0.5s for things to stabilize +- power: supply: bq27xxx: Ensure power_supply_changed() is called on current sign changes +- power: supply: bq27xxx: Move bq27xxx_battery_update() down +- power: supply: bq27xxx: expose battery data when CI=1 +- power: supply: bq27xxx: Add cache parameter to bq27xxx_battery_current_and_status() +- power: supply: bq27xxx: make status more robust +- power: supply: bq27xxx: fix sign of current_now for newer ICs +- power: supply: bq27xxx: fix polarity of current_now +- net: phy: mscc: add VSC8502 to MODULE_DEVICE_TABLE +- 3c589_cs: Fix an error handling path in tc589_probe() +- arm64: dts: imx8mn-var-som: fix PHY detection bug by adding deassert delay +- net/mlx5: Devcom, fix error flow in mlx5_devcom_register_device +- net/mlx5: Fix error message when failing to allocate device memory +- net/mlx5: DR, Fix crc32 calculation to work on big-endian (BE) CPUs +- net/mlx5e: do as little as possible in napi poll when budget is 0 +- forcedeth: Fix an error handling path in nv_probe() +- ASoC: Intel: Skylake: Fix declaration of enum skl_ch_cfg +- x86/show_trace_log_lvl: Ensure stack pointer is aligned, again +- xen/pvcalls-back: fix double frees with pvcalls_new_active_socket() +- coresight: Fix signedness bug in tmc_etr_buf_insert_barrier_packet() +- fs: fix undefined behavior in bit shift for SB_NOUSER +- power: supply: sbs-charger: Fix INHIBITED bit for Status reg +- power: supply: bq27xxx: Fix poll_interval handling and races on remove +- power: supply: bq27xxx: Fix I2C IRQ race on remove +- power: supply: bq27xxx: Fix bq27xxx_battery_update() race condition +- power: supply: leds: Fix blink to LED on transition +- ipv6: Fix out-of-bounds access in ipv6_find_tlv() +- bpf: Fix mask generation for 32-bit narrow loads of 64-bit fields +- octeontx2-pf: Fix TSOv6 offload +- selftests: fib_tests: mute cleanup error message +- net: fix skb leak in __skb_tstamp_tx() +- media: radio-shark: Add endpoint checks +- USB: sisusbvga: Add endpoint checks +- USB: core: Add routines for endpoint checks in old drivers +- udplite: Fix NULL pointer dereference in __sk_mem_raise_allocated(). +- net: fix stack overflow when LRO is disabled for virtual interfaces +- fbdev: udlfb: Fix endpoint check +- debugobjects: Don't wake up kswapd from fill_pool() +- x86/topology: Fix erroneous smp_num_siblings on Intel Hybrid platforms +- parisc: Fix flush_dcache_page() for usage from irq context +- selftests/memfd: Fix unknown type name build failure +- dt-binding: cdns,usb3: Fix cdns,on-chip-buff-size type +- btrfs: use nofs when cleaning up aborted transactions +- gpio: mockup: Fix mode of debugfs files +- parisc: Allow to reboot machine after system halt +- parisc: Handle kgdb breakpoints only in kernel context +- m68k: Move signal frame following exception on 68020/030 +- net: cdc_ncm: Deal with too low values of dwNtbOutMaxSize +- ALSA: hda/realtek: Enable headset onLenovo M70/M90 +- ALSA: hda: Fix unhandled register update during auto-suspend period +- ALSA: hda/ca0132: add quirk for EVGA X299 DARK +- ocfs2: Switch to security_inode_init_security() +- spi: fsl-cpm: Use 16 bit mode for large transfers with even size +- spi: fsl-spi: Re-organise transfer bits_per_word adaptation +- ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 +- watchdog: sp5100_tco: Immediately trigger upon starting. +- s390/qdio: fix do_sqbs() inline assembly constraint +- s390/qdio: get rid of register asm +- serial: 8250_exar: Add support for USR298x PCI Modems +- serial: exar: Add support for Sealevel 7xxxC serial cards +- serial: 8250_exar: derive nr_ports from PCI ID for Acces I/O cards +- HID: wacom: add three styli to wacom_intuos_get_tool_type +- HID: wacom: Add new Intuos Pro Small (PTH-460) device IDs +- HID: wacom: Force pen out of prox if no events have been received in a while +- nilfs2: fix use-after-free bug of nilfs_root in nilfs_evict_inode() +- powerpc/64s/radix: Fix soft dirty tracking +- tpm/tpm_tis: Disable interrupts for more Lenovo devices +- ceph: force updating the msg pointer in non-split case +- vc_screen: reload load of struct vc_data pointer in vcs_write() to avoid UAF +- serial: Add support for Advantech PCI-1611U card +- statfs: enforce statfs[64] structure initialization +- can: kvaser_pciefd: Disable interrupts in probe error path +- can: kvaser_pciefd: Do not send EFLUSH command on TFD interrupt +- can: kvaser_pciefd: Clear listen-only bit if not explicitly requested +- can: kvaser_pciefd: Empty SRB buffer in probe +- can: kvaser_pciefd: Call request_irq() before enabling interrupts +- can: kvaser_pciefd: Set CAN_STATE_STOPPED in kvaser_pciefd_stop() +- can: isotp: recvmsg(): allow MSG_CMSG_COMPAT flag +- can: j1939: recvmsg(): allow MSG_CMSG_COMPAT flag +- ALSA: hda/realtek: Add quirk for 2nd ASUS GU603 +- ALSA: hda/realtek: Add a quirk for HP EliteDesk 805 +- ALSA: hda/realtek: Add quirk for Clevo L140AU +- ALSA: hda: Add NVIDIA codec IDs a3 through a7 to patch table +- ALSA: hda: Fix Oops by 9.1 surround channel names +- usb: typec: altmodes/displayport: fix pin_assignment_show +- usb: gadget: u_ether: Fix host MAC address case +- usb: dwc3: debugfs: Resume dwc3 before accessing registers +- USB: UHCI: adjust zhaoxin UHCI controllers OverCurrent bit value +- usb-storage: fix deadlock when a scsi command timeouts more than once +- USB: usbtmc: Fix direction for 0-length ioctl control messages +- ALSA: usb-audio: Add a sample rate workaround for Line6 Pod Go +- bridge: always declare tunnel functions +- netfilter: nft_set_rbtree: fix null deref on element insertion +- vlan: fix a potential uninit-value in vlan_dev_hard_start_xmit() +- igb: fix bit_shift to be in [1..8] range +- cassini: Fix a memory leak in the error handling path of cas_init_one() +- scsi: storvsc: Don't pass unused PFNs to Hyper-V host +- wifi: iwlwifi: mvm: don't trust firmware n_channels +- wifi: mac80211: fix min center freq offset tracing +- net: bcmgenet: Restore phy_stop() depending upon suspend/close +- net: bcmgenet: Remove phy_stop() from bcmgenet_netif_stop() +- tipc: check the bearer min mtu properly when setting it by netlink +- tipc: do not update mtu if msg_max is too small in mtu negotiation +- tipc: add tipc_bearer_min_mtu to calculate min mtu +- net/tipc: fix tipc header files for kernel-doc +- net: nsh: Use correct mac_offset to unwind gso skb in nsh_gso_segment() +- drm/exynos: fix g2d_open/close helper function definitions +- SUNRPC: Fix trace_svc_register() call site +- media: netup_unidvb: fix use-after-free at del_timer() +- erspan: get the proto with the md version for collect_md +- serial: arc_uart: fix of_iomap leak in `arc_serial_probe` +- vsock: avoid to close connected socket after the timeout +- ALSA: hda/realtek: Apply HP B&O top speaker profile to Pavilion 15 +- ALSA: firewire-digi00x: prevent potential use after free +- net: phy: dp83867: add w/a for packet errors seen with short cables +- net: fec: Better handle pm_runtime_get() failing in .remove() +- af_key: Reject optional tunnel/BEET mode templates in outbound policies +- cpupower: Make TSC read per CPU for Mperf monitor +- drm/msm/dpu: Remove duplicate register defines from INTF +- drm/msm/dp: unregister audio driver during unbind +- Revert "Fix XFRM-I support for nested ESP tunnels" +- btrfs: fix space cache inconsistency after error loading it from disk +- btrfs: replace calls to btrfs_find_free_ino with btrfs_find_free_objectid +- btrfs: move btrfs_find_highest_objectid/btrfs_find_free_objectid to disk-io.c +- mfd: dln2: Fix memory leak in dln2_probe() +- phy: st: miphy28lp: use _poll_timeout functions for waits +- Input: xpad - add constants for GIP interface numbers +- iommu/arm-smmu-v3: Acknowledge pri/event queue overflow if any +- clk: tegra20: fix gcc-7 constant overflow warning +- iommu/arm-smmu-qcom: Limit the SMR groups to 128 +- RDMA/core: Fix multiple -Warray-bounds warnings +- recordmcount: Fix memory leaks in the uwrite function +- sched: Fix KCSAN noinstr violation +- mcb-pci: Reallocate memory region to avoid memory overlapping +- serial: 8250: Reinit port->pm on port specific driver unbind +- usb: typec: tcpm: fix multiple times discover svids error +- HID: wacom: generic: Set battery quirk only when we see battery data +- spi: spi-imx: fix MX51_ECSPI_* macros when cs > 3 +- HID: logitech-hidpp: Reconcile USB and Unifying serials +- HID: logitech-hidpp: Don't use the USB serial for USB devices +- staging: rtl8192e: Replace macro RTL_PCI_DEVICE with PCI_DEVICE +- Bluetooth: L2CAP: fix "bad unlock balance" in l2cap_disconnect_rsp +- Bluetooth: hci_bcm: Fall back to getting bdaddr from EFI if not set +- wifi: ath11k: Fix SKB corruption in REO destination ring +- wifi: iwlwifi: dvm: Fix memcpy: detected field-spanning write backtrace +- null_blk: Always check queue mode setting from configfs +- wifi: iwlwifi: pcie: Fix integer overflow in iwl_write_to_user_buf +- wifi: iwlwifi: pcie: fix possible NULL pointer dereference +- samples/bpf: Fix fout leak in hbm's run_bpf_prog +- f2fs: fix to drop all dirty pages during umount() if cp_error is set +- ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa() +- ext4: set goal start correctly in ext4_mb_normalize_request +- gfs2: Fix inode height consistency check +- scsi: message: mptlan: Fix use after free bug in mptlan_remove() due to race condition +- lib: cpu_rmap: Avoid use after free on rmap->obj array entries +- scsi: target: iscsit: Free cmds before session free +- net: Catch invalid index in XPS mapping +- net: pasemi: Fix return type of pasemi_mac_start_tx() +- ext2: Check block size validity during mount +- wifi: brcmfmac: cfg80211: Pass the PMK in binary instead of hex +- bpf: Annotate data races in bpf_local_storage +- wifi: ath: Silence memcpy run-time false positive warning +- drm/amd: Fix an out of bounds error in BIOS parser +- ACPICA: ACPICA: check null return of ACPI_ALLOCATE_ZEROED in acpi_db_display_objects +- ACPICA: Avoid undefined behavior: applying zero offset to null pointer +- drm/tegra: Avoid potential 32-bit integer overflow +- remoteproc: stm32_rproc: Add mutex protection for workqueue +- ACPI: EC: Fix oops when removing custom query handlers +- arm64: dts: qcom: msm8996: Add missing DWC3 quirks +- regmap: cache: Return error in cache sync operations for REGCACHE_NONE +- drm/amd/display: Use DC_LOG_DC in the trasform pixel function +- fs: hfsplus: remove WARN_ON() from hfsplus_cat_{read,write}_inode() +- rcu: Protect rcu_print_task_exp_stall() ->exp_tasks access +- refscale: Move shutdown from wait_event() to wait_event_idle() +- ext4: allow ext4_get_group_info() to fail +- ext4: allow to find by goal if EXT4_MB_HINT_GOAL_ONLY is set +- ext4: add mballoc stats proc file +- ext4: drop s_mb_bal_lock and convert protected fields to atomic +- ext4: remove redundant mb_regenerate_buddy() +- ext4: fix lockdep warning when enabling MMP +- ext4: don't clear SB_RDONLY when remounting r/w until quota is re-enabled +- ext4: reflect error codes from ext4_multi_mount_protect() to its callers +- ext4: remove an unused variable warning with CONFIG_QUOTA=n +- fbdev: arcfb: Fix error handling in arcfb_probe() +- drm/i915/dp: prevent potential div-by-zero +- af_unix: Fix data races around sk->sk_shutdown. +- af_unix: Fix a data race of sk->sk_receive_queue->qlen. +- net: datagram: fix data-races in datagram_poll() +- tcp: add annotations around sk->sk_shutdown accesses +- tcp: factor out __tcp_close() helper +- net: add vlan_get_protocol_and_depth() helper +- net: tap: check vlan with eth_type_vlan() method +- net: annotate sk->sk_err write from do_recvmmsg() +- netlink: annotate accesses to nlk->cb_running +- netfilter: conntrack: fix possible bug_on with enable_hooks=1 +- net: Fix load-tearing on sk->sk_stamp in sock_recv_cmsgs(). +- linux/dim: Do nothing if no time delta between samples +- net: mdio: mvusb: Fix an error handling path in mvusb_mdio_probe() +- ARM: 9296/1: HP Jornada 7XX: fix kernel-doc warnings +- drm/mipi-dsi: Set the fwnode for mipi_dsi_device +- driver core: add a helper to setup both the of_node and fwnode of a device +- !2902 net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict() +- !2791 [sync] PR-1122: ext4: delete redundant uptodate check for buffer +- KVM: x86: Advertise PREFETCHIT0/1 CPUID to user space +- KVM: x86: Advertise AVX-NE-CONVERT CPUID to user space +- KVM: x86: Advertise AVX-VNNI-INT8 CPUID to user space +- x86: KVM: Advertise AVX-IFMA CPUID to user space +- x86: KVM: Advertise AMX-FP16 CPUID to user space +- x86: KVM: Advertise CMPccXADD CPUID to user space +- KVM: x86: Update KVM-only leaf handling to allow for 100% KVM-only leafs +- KVM: x86: Add BUILD_BUG_ON() to detect bad usage of "scattered" flags +- net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict() +- !2890 net: ipv6: addrconf: Add the IPv6 link local address of the UB port. +- net: ipv6: addrconf: Add the IPv6 link local address of the UB port. +- !2884 LoongArch: fix two cpu hotplug problem +- !2872 net: hns3: Backport some mainline feature and some hns3 bugfix +- !2867 netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one +- net: hns3: fix VF wrong speed and duplex issue +- net: hns3: fix VF reset fail issue +- net: hns3: fix variable may not initialized problem in hns3_init_mac_addr() +- net: hns3: fix out-of-bounds access may occur when coalesce info is read via debugfs +- net: hns3: fix incorrect capability bit display for copper port +- net: hns3: add barrier in vf mailbox reply process +- net: hns3: fix add VLAN fail issue +- drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for hisi_hns3_pmu uninit process +- net: hns3: add some link modes for hisilicon device +- net: hns3: add arp proxy switch in ethtool +- net: hns3: support arp proxy +- !2881 soc: hisilicon: kunpeng_hccs: Support the platform with PCC type3 and interrupt ack +- LoongArch: fix two cpu hotplug problem +- Use udma's macro to isolate udma client functions +- UNIC: config function guid to hw in periodic service task +- UNIC: The driver loading process is terminated when the guid fails to be obtained. +- UNIC: Add the processing of the return value of ubl_rmv_sw_ctype. +- UBL: verify skb space when sw_ctype adding +- !2875 Support SRQ Context tracing by debugfs +- soc: hisilicon: kunpeng_hccs: Support the platform with PCC type3 and interrupt ack +- soc: hisilicon: kunpeng_hccs: Add failure log for no _CRS method +- soc: hisilicon: kunpeng_hccs: Fix some incorrect format strings +- !2868 backport the patch moving ACPI PCC macro definition to common header file +- SCSI: hisi_raid: support SPxxx series RAID/HBA controllers +- !2762 Intel: backport SPR/EMR vt-d pcie upstream bug fix for 5.10 +- crypto: hisilicon/qm - prevent soft lockup in receive loop +- Revert "crypto: hisilicon/qm - prevent soft lockup in qm_poll_req_cb()'s loop" +- crypto: hisilicon/qm - fix EQ/AEQ interrupt issue +- Revert "crypto: hisilicon/qm - fix EQ/AEQ interrupt issue" +- crypto: hisilicon/sec - fix for sgl unmmap problem +- Revert "crypto: hisilicon/sec - fix for resource leak" +- vfio/migration: adapts to element naming changes in the vf_state structure +- crypto: hisilicon/qm: Set the VF QM state register +- Revert "vfio/hisilicon: modify QM for live migration driver" +- Revert "crypto: hisilicon/qm: Set the VF QM state register" +- crypto: hisilicon/qm - remove unneeded hardware cache write back +- Revert "crypto: hisilicon/qm - remove redundant cache writeback" +- RDMA/hns: Support SRQ Context tracing by debugfs +- RDMA/hns: Refactor hns RoCE debugfs +- !2852 MAINTAINERS: update openEuler/MAINTAINERS for vdpa driver +- !2756 Introduce some vdpa ops to support vdpa device live migrate +- !2863 Support some dfx for hns3 +- soc: kunpeng_hccs: Migrate to use generic PCC shmem related macros +- hwmon: (xgene) Migrate to use generic PCC shmem related macros +- i2c: xgene-slimpro: Migrate to use generic PCC shmem related macros +- ACPI: PCC: Add PCC shared memory region command and status bitfields +- netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one +- !2820 Fix memleak in disassociate_ctty() +- !2862 UBL: Change the name of ub netdev to ubl. +- !810 configs: enable CONFIG_SMC and CONFIG_SMC_DIAG by default +- net: hns3: add command queue trace for hns3 +- net: hns3: add support for page_pool_get_stats +- net: hns3: dump more reg info based on ras mod +- net: hns3: Support dump pfc frame statistics in tx timeout log +- UBL: Change the name of ub netdev to ubl. +- !828 [OLK-5.10] net/smc: Optimization for connect performance +- !2855 Support SW stats with debugfs +- !2851 bugfix for CVE-2022-45884 +- !2821 arm64: config: Disable CONFIG_ARM64_PBHA by default +- RDMA/hns: Remove return value checks of debugfs functions +- RDMA/hns: Don't set the HW stats ops for VF and HIP08 +- RDMA/hns: Support SW stats with debugfs +- RDMA/hns: Fix an inappropriate err code for unsupported operations +- Revert "RDMA/hns: Add dfx cnt stats" +- Revert "RDMA/hns: Fix missing dealloc_dfx_cnt() during device unregister" +- !2837 udma: solve two compile problem of hns3-udma driver +- MAINTAINERS: update openEuler/MAINTAINERS for vdpa driver +- media: dvb-core: Fix use-after-free due to race at dvb_register_device() +- media: dvbdev: fix error logic at dvb_register_device() +- media: dvbdev: Fix memleak in dvb_register_device +- hns3 udma: add dependency by hns3 +- hns3 udma: add mask for udma_reg_write +- iommu/vt-d: Remove set but not used variable +- iommu: fix kabi issue with KABI_EXTEND macro +- !2843 Add error handle for sd +- !2794 arm64/perf: Enable branch stack sampling +- !2840 drm/qxl: fix UAF on handle creation +- !2829 Modify idle cpu judgment in dynamic affinity +- !2777 RDMA/hns: Revert the private patch on the openEuler and Re-upload the patch from Linux mainline. +- scsi: sd: Clean up sdkp if device_add_disk() failed +- scsi: sd: Add error handling support for add_disk() +- !2825 Add error handle for driver +- net/smc: fix application data exception +- anolis: net/smc: Introduce multiple tcp listen works to enhance tcp_listen_work +- anolis: net/smc: optimize for smc_accept_poll +- anolis: net/smc: double check whether accept queue is empty before schedule_timeout +- anolis: net/smc: Change listen wq to unbound highpri wq +- net/smc: Make smc_tcp_listen_work() independent +- net/smc: Clear memory when release and reuse buffer +- drm/qxl: fix UAF on handle creation +- !827 [OLK-5.10] net/smc: aligning the connect behaviour with TCP +- !2776 blk-mq: avoid housekeeping CPUs scheduling a worker on a non-housekeeping CPU +- net/smc: align the connect behaviour with TCP +- !825 [OLK-5.10] net/smc: optimization related to data transmission +- !847 [OLK-5.10] net/smc: support cork option +- !826 [OLK-5.10] net/smc: mutex lock optimize +- !813 [OLK-5.10] net/smc: backport dma sync ops optimize +- !2775 Backport 5.10.180 LTS patches from upstream. +- sched/fair: Modify idle cpu judgment in dynamic affinity +- drm/amd/display: Fix hang when skipping modeset +- drm/exynos: move to use request_irq by IRQF_NO_AUTOEN flag +- printk: declare printk_deferred_{enter,safe}() in include/linux/printk.h +- KVM: x86: move guest_pv_has out of user_access section +- KVM: x86: do not report preemption if the steal time cache is stale +- KVM: x86: revalidate steal time cache if MSR value changes +- KVM: x86: do not set st->preempted when going back to user space +- KVM: x86: Remove obsolete disabling of page faults in kvm_arch_vcpu_put() +- KVM: Fix steal time asm constraints +- KVM: x86: Fix recording of guest steal time / preempted status +- KVM: x86: Ensure PV TLB flush tracepoint reflects KVM behavior +- drbd: correctly submit flush bio on barrier +- serial: 8250: Fix serial8250_tx_empty() race with DMA Tx +- ext4: fix invalid free tracking in ext4_xattr_move_to_block() +- ext4: remove a BUG_ON in ext4_mb_release_group_pa() +- ext4: bail out of ext4_xattr_ibody_get() fails for any reason +- ext4: add bounds checking in get_max_inline_xattr_value_size() +- ext4: fix deadlock when converting an inline directory in nojournal mode +- ext4: improve error recovery code paths in __ext4_remount() +- ext4: fix data races when using cached status extents +- KVM: x86: hyper-v: Avoid calling kvm_make_vcpus_request_mask() with vcpu_mask==NULL +- HID: wacom: insert timestamp to packed Bluetooth (BT) events +- HID: wacom: Set a default resolution for older tablets +- drm/amdgpu: disable sdma ecc irq only when sdma RAS is enabled in suspend +- drm/amdgpu/gfx: disable gfx9 cp_ecc_error_irq only when enabling legacy gfx ras +- drm/amdgpu: fix an amdgpu_irq_put() issue in gmc_v9_0_hw_fini() +- drm/panel: otm8009a: Set backlight parent to panel device +- f2fs: fix potential corruption when moving a directory +- ARM: dts: s5pv210: correct MIPI CSIS clock name +- ARM: dts: exynos: fix WM8960 clock name in Itop Elite +- remoteproc: st: Call of_node_put() on iteration error +- remoteproc: stm32: Call of_node_put() on iteration error +- sh: nmi_debug: fix return value of __setup handler +- sh: init: use OF_EARLY_FLATTREE for early init +- sh: mcount.S: fix build error when PRINTK is not enabled +- sh: math-emu: fix macro redefined warning +- inotify: Avoid reporting event with invalid wd +- platform/x86: touchscreen_dmi: Add info for the Dexp Ursus KX210i +- platform/x86: touchscreen_dmi: Add upside-down quirk for GDIX1002 ts on the Juno Tablet +- cifs: fix pcchunk length type in smb2_copychunk_range +- btrfs: print-tree: parent bytenr must be aligned to sector size +- btrfs: don't free qgroup space unless specified +- btrfs: fix btrfs_prev_leaf() to not return the same key twice +- perf symbols: Fix return incorrect build_id size in elf_read_build_id() +- crypto: sun8i-ss - Fix a test in sun8i_ss_setup_ivs() +- perf map: Delete two variable initialisations before null pointer checks in sort__sym_from_cmp() +- perf pmu: zfree() expects a pointer to a pointer to zero it after freeing its contents +- perf vendor events power9: Remove UTF-8 characters from JSON files +- net: enetc: check the index of the SFI rather than the handle +- virtio_net: suppress cpu stall when free_unused_bufs +- virtio_net: split free_unused_bufs() +- net: dsa: mt7530: fix corrupt frames using trgmii on 40 MHz XTAL MT7621 +- ALSA: caiaq: input: Add error handling for unsupported input methods in `snd_usb_caiaq_input_init` +- drm/amdgpu: add a missing lock for AMDGPU_SCHED +- af_packet: Don't send zero-byte data in packet_sendmsg_spkt(). +- ionic: remove noise from ethtool rxnfc error msg +- octeontx2-vf: Detach LF resources on probe cleanup +- octeontx2-pf: Disable packet I/O for graceful exit +- rxrpc: Fix hard call timeout units +- sfc: Fix module EEPROM reporting for QSFP modules +- net/sched: act_mirred: Add carrier check +- watchdog: dw_wdt: Fix the error handling path of dw_wdt_drv_probe() +- writeback: fix call of incorrect macro +- net: dsa: mv88e6xxx: add mv88e6321 rsvd2cpu +- sit: update dev->needed_headroom in ipip6_tunnel_bind_dev() +- net/sched: cls_api: remove block_cb from driver_list before freeing +- net/ncsi: clear Tx enable mode when handling a Config required AEN +- scsi: qedi: Fix use after free bug in qedi_remove() +- dm verity: fix error handling for check_at_most_once on FEC +- dm verity: skip redundant verity_handle_err() on I/O errors +- mailbox: zynqmp: Fix counts of child nodes +- mailbox: zynq: Switch to flexible array to simplify code +- crypto: ccp - Clear PSP interrupt status register before calling handler +- ring-buffer: Ensure proper resetting of atomic variables in ring_buffer_reset_online_cpus +- tty: Prevent writing chars during tcsetattr TCSADRAIN/FLUSH +- tty: clean include/linux/tty.h up +- tty: move some tty-only functions to drivers/tty/tty.h +- tty: move some internal tty lock enums and functions out of tty.h +- tty: audit: move some local functions out of tty.h +- tty: create internal tty.h file +- scsi: target: core: Avoid smp_processor_id() in preemptible code +- arm64: dts: qcom: sdm845: correct dynamic power coefficients +- sound/oss/dmasound: fix 'dmasound_setup' defined but not used +- debugobject: Ensure pool refill (again) +- arm64: Stash shadow stack pointer in the task struct on interrupt +- arm64: Always load shadow stack pointer directly from the task struct +- perf intel-pt: Fix CYC timestamps after standalone CBR +- perf auxtrace: Fix address filter entire kernel size +- dm flakey: fix a crash with invalid table line +- dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path +- dm clone: call kmem_cache_destroy() in dm_clone_init() error path +- ia64: fix an addr to taddr in huge_pte_offset() +- s390/dasd: fix hanging blockdevice after request requeue +- btrfs: scrub: reject unsupported scrub flags +- scripts/gdb: fix lx-timerlist for Python3 +- afs: Fix updating of i_size with dv jump from server +- mfd: tqmx86: Correct board names for TQMxE39x +- mfd: tqmx86: Specify IO port register range more precisely +- mfd: tqmx86: Add support for TQMx110EB and TQMxE40x +- mfd: tqmx86: Remove incorrect TQMx90UC board ID +- mfd: tqmx86: Do not access I2C_DETECT register through io_base +- thermal/drivers/mediatek: Use devm_of_iomap to avoid resource leak in mtk_thermal_probe +- dmaengine: at_xdmac: do not enable all cyclic channels +- dmaengine: dw-edma: Fix to enable to issue dma request on DMA processing +- dmaengine: dw-edma: Fix to change for continuous transfer +- phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and ulpi_port +- pwm: mtk-disp: Disable shadow registers before setting backlight values +- pwm: mtk-disp: Adjust the clocks to avoid them mismatch +- pwm: mtk-disp: Don't check the return code of pwmchip_remove() +- leds: tca6507: Fix error handling of using fwnode_property_read_string +- dmaengine: mv_xor_v2: Fix an error code. +- leds: TI_LMU_COMMON: select REGMAP instead of depending on it +- ext4: fix use-after-free read in ext4_find_extent for bigalloc + inline +- openrisc: Properly store r31 to pt_regs on unhandled exceptions +- clocksource/drivers/davinci: Fix memory leak in davinci_timer_register when init fails +- RDMA/mlx5: Use correct device num_ports when modify DC +- SUNRPC: remove the maximum number of retries in call_bind_status +- RDMA/mlx5: Fix flow counter query via DEVX +- Input: raspberrypi-ts - fix refcount leak in rpi_ts_probe +- input: raspberrypi-ts: Release firmware handle when not needed +- firmware: raspberrypi: Introduce devm_rpi_firmware_get() +- NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease +- IB/hfi1: Fix bugs with non-PAGE_SIZE-end multi-iovec user SDMA requests +- IB/hfi1: Add additional usdma traces +- IB/hfi1: Add AIP tx traces +- IB/hfi1: Fix SDMA mmu_rb_node not being evicted in LRU order +- RDMA/srpt: Add a check for valid 'mad_agent' pointer +- RDMA/cm: Trace icm_send_rej event before the cm state is reset +- RDMA/siw: Remove namespace check from siw_netdev_event() +- clk: add missing of_node_put() in "assigned-clocks" property parsing +- power: supply: generic-adc-battery: fix unit scaling +- rtc: meson-vrtc: Use ktime_get_real_ts64() to get the current time +- RDMA/mlx4: Prevent shift wrapping in set_user_sq_size() +- rtc: omap: include header for omap_rtc_power_off_program prototype +- workqueue: Fix hung time report of worker pools +- nbd: fix uaf in nbd_open +- mtd/ubi/block: Fix uaf problem in ubiblock_cleanup +- mtd/ubi/block: Fix null pointer dereference issue in error path +- mtd/ubi/block: add error handling support for add_disk() +- ubi: use blk_mq_alloc_disk and blk_cleanup_disk +- scsi: sr: Add error handling support for add_disk() +- block/brd: add error handling support for add_disk() +- brd: convert to blk_alloc_disk/blk_cleanup_disk +- nvme: add error handling support for add_disk() +- nvme: use blk_mq_alloc_disk +- block: add a flag to make put_disk on partially initalized disks safer +- nbd: add error handling support for add_disk() +- nbd: fix order of cleaning up the queue and freeing the tagset +- nbd: use blk_mq_alloc_disk and blk_cleanup_disk +- loop: add error handling support for add_disk() +- loop: fix order of cleaning up the queue and freeing the tagset +- loop: use blk_mq_alloc_disk and blk_cleanup_disk +- blk-mq: fix an IS_ERR() vs NULL bug +- blk-mq: add the blk_mq_alloc_disk APIs +- block: add blk_alloc_disk and blk_cleanup_disk APIs +- arm64: config: Disable CONFIG_ARM64_PBHA by default +- tty: tty_jobctrl: fix pid memleak in disassociate_ctty() +- Revert "tty: fix pid memleak in disassociate_ctty()" +- !2716 ext4: recheck buffer valid after page unlock +- RDMA/rdmavt: Delete unnecessary NULL check +- RDMA/siw: Fix potential page_array out of range access +- clk: at91: clk-sam9x60-pll: fix return value check +- perf/core: Fix hardlockup failure caused by perf throttle +- powerpc/rtas: use memmove for potentially overlapping buffer copy +- macintosh: via-pmu-led: requires ATA to be set +- powerpc/sysdev/tsi108: fix resource printk format warnings +- powerpc/wii: fix resource printk format warnings +- powerpc/mpc512x: fix resource printk format warning +- macintosh/windfarm_smu_sat: Add missing of_node_put() +- spmi: Add a check for remove callback when removing a SPMI driver +- staging: rtl8192e: Fix W_DISABLE# does not work after stop/start +- serial: 8250: Add missing wakeup event reporting +- tty: serial: fsl_lpuart: adjust buffer length to the intended size +- firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe +- usb: mtu3: fix kernel panic at qmu transfer done irq handler +- usb: chipidea: fix missing goto in `ci_hdrc_probe` +- usb: gadget: tegra-xudc: Fix crash in vbus_draw +- sh: sq: Fix incorrect element size for allocating bitmap buffer +- i2c: cadence: cdns_i2c_master_xfer(): Fix runtime PM leak on error path +- spi: cadence-quadspi: fix suspend-resume implementations +- ASoC: fsl_mqs: move of_node_put() to the correct location +- coresight: etm_pmu: Set the module field +- scripts/gdb: bail early if there are no generic PD +- scripts/gdb: bail early if there are no clocks +- ia64: salinfo: placate defined-but-not-used warning +- ia64: mm/contig: fix section mismatch warning/error +- PCI/EDR: Clear Device Status after EDR error recovery +- of: Fix modalias string generation +- vmci_host: fix a race condition in vmci_host_poll() causing GPF +- spi: fsl-spi: Fix CPM/QE mode Litte Endian +- spi: qup: Don't skip cleanup in remove's error path +- linux/vt_buffer.h: allow either builtin or modular for macros +- ASoC: es8316: Handle optional IRQ assignment +- ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ +- PCI: imx6: Install the fault handler only on compatible match +- spi: imx: Don't skip cleanup in remove's error path +- spi: spi-imx: using pm_runtime_resume_and_get instead of pm_runtime_get_sync +- iio: light: max44009: add missing OF device matching +- fpga: bridge: fix kernel-doc parameter description +- usb: dwc3: gadget: Change condition for processing suspend event +- usb: host: xhci-rcar: remove leftover quirk handling +- pstore: Revert pmsg_lock back to a normal mutex +- ipmi: ASPEED_BT_IPMI_BMC: select REGMAP_MMIO instead of depending on it +- tcp/udp: Fix memleaks of sk and zerocopy skbs with TX timestamp. +- net: amd: Fix link leak when verifying config failed +- netlink: Use copy_to_user() for optval in netlink_getsockopt(). +- Revert "Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work" +- ipv4: Fix potential uninit variable access bug in __ip_make_skb() +- net/sched: sch_fq: fix integer overflow of "credit" +- bpf: Don't EFAULT for getsockopt with optval=NULL +- ixgbe: Enable setting RSS table to default values +- ixgbe: Allow flow hash to be set via ethtool +- wifi: iwlwifi: fw: fix memory leak in debugfs +- wifi: iwlwifi: mvm: check firmware response size +- wifi: iwlwifi: make the loop for card preparation effective +- jdb2: Don't refuse invalidation of already invalidated buffers +- wifi: iwlwifi: fw: move memset before early return +- wifi: iwlwifi: yoyo: Fix possible division by zero +- md/raid10: fix memleak of md thread +- bpf, sockmap: Revert buggy deadlock fix in the sockhash and sockmap +- nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage" +- nvme: fix async event trace event +- nvme: handle the persistent internal error AER +- bpf, sockmap: fix deadlocks in the sockhash and sockmap +- net: ethernet: stmmac: dwmac-rk: fix optional phy regulator handling +- f2fs: fix to avoid use-after-free for cached IPU bio +- xsk: Fix unaligned descriptor validation +- bpftool: Fix bug for long instructions in program CFG dumps +- selftests/bpf: Wait for receive in cg_storage_multi test +- net: qrtr: correct types of trace event parameters +- wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_reg() +- wifi: rtlwifi: fix incorrect error codes in rtl_debugfs_set_write_rfreg() +- crypto: sa2ul - Select CRYPTO_DES +- crypto: caam - Clear some memory in instantiate_rng +- f2fs: compress: fix to call f2fs_wait_on_page_writeback() in f2fs_write_raw_pages() +- f2fs: apply zone capacity to all zone type +- f2fs: enforce single zone capacity +- f2fs: handle dqget error in f2fs_transfer_project_quota() +- scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS +- scsi: target: iscsit: Fix TAS handling during conn cleanup +- scsi: target: Fix multiple LUN_RESET handling +- scsi: target: Make state_list per CPU +- scsi: target: Rename cmd.bad_sector to cmd.sense_info +- scsi: target: Rename struct sense_info to sense_detail +- net/packet: convert po->auxdata to an atomic flag +- net/packet: convert po->origdev to an atomic flag +- net/packet: annotate accesses to po->xmit +- vlan: partially enable SIOCSHWTSTAMP in container +- bpf: Remove misleading spec_v1 check on var-offset stack read +- scm: fix MSG_CTRUNC setting condition for SO_PASSSEC +- bpf: fix precision propagation verbose logging +- bpf: take into account liveness when propagating precision +- wifi: rtw88: mac: Return the original error from rtw_mac_power_switch() +- wifi: rtw88: mac: Return the original error from rtw_pwr_seq_parser() +- tools: bpftool: Remove invalid ' json escape +- wifi: ath6kl: reduce WARN to dev_dbg() in callback +- wifi: ath5k: fix an off by one check in ath5k_eeprom_read_freq_list() +- wifi: ath9k: hif_usb: fix memory leak of remain_skbs +- wifi: ath6kl: minor fix for allocation size +- tick/common: Align tick period with the HZ tick. +- tick: Get rid of tick_period +- drm/i915: Make intel_get_crtc_new_encoder() less oopsy +- debugobject: Prevent init race with static objects +- arm64: kgdb: Set PSTATE.SS to 1 to re-enable single-step +- x86/ioapic: Don't return 0 from arch_dynirq_lower_bound() +- regulator: stm32-pwr: fix of_iomap leak +- media: venus: dec: Fix handling of the start cmd +- media: venus: vdec: Handle DRC after drain +- media: venus: preserve DRC state across seeks +- media: venus: vdec: Make decoder return LAST flag for sufficient event +- media: venus: vdec: Fix non reliable setting of LAST flag +- media: rc: gpio-ir-recv: Fix support for wake-up +- media: rcar_fdp1: Fix refcount leak in probe and remove function +- media: rcar_fdp1: Fix the correct variable assignments +- media: rcar_fdp1: Make use of the helper function devm_platform_ioremap_resource() +- media: rcar_fdp1: fix pm_runtime_get_sync() usage count +- media: rcar_fdp1: simplify error check logic at fdp_open() +- x86/apic: Fix atomic update of offset in reserve_eilvt_offset() +- regulator: core: Avoid lockdep reports when resolving supplies +- regulator: core: Consistently set mutex_owner when using ww_mutex_lock_slow() +- drm/lima/lima_drv: Add missing unwind goto in lima_pdev_probe() +- ARM: dts: gta04: fix excess dma channel usage +- mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data +- ACPI: processor: Fix evaluating _PDC method when running as Xen dom0 +- drm: msm: adreno: Disable preemption on Adreno 510 +- drm/msm/adreno: drop bogus pm_runtime_set_active() +- drm/msm/adreno: Defer enabling runpm until hw_init() +- media: max9286: Free control handler +- drm/bridge: adv7533: Fix adv7533_mode_valid for adv7533 and adv7535 +- firmware: qcom_scm: Clear download bit during reboot +- media: bdisp: Add missing check for create_workqueue +- ARM: dts: qcom: ipq8064: Fix the PCI I/O port range +- ARM: dts: qcom: ipq8064: reduce pci IO size to 64K +- ARM: dts: qcom: ipq4019: Fix the PCI I/O port range +- arm64: dts: qcom: msm8996: Fix the PCI I/O port range +- arm64: dts: qcom: ipq8074: Fix the PCI I/O port range +- arm64: dts: qcom: msm8998: Fix the PCI I/O port range +- arm64: dts: qcom: sdm845: Fix the PCI I/O port range +- arm64: dts: qcom: sdm845: correct dynamic power coefficients +- arm64: dts: qcom: msm8998: Fix stm-stimulus-base reg name +- EDAC/skx: Fix overflows on the DRAM row address mapping arrays +- drm/msm/disp/dpu: check for crtc enable rather than crtc active to release shared resources +- arm64: dts: renesas: r8a774c0: Remove bogus voltages from OPP table +- arm64: dts: renesas: r8a77990: Remove bogus voltages from OPP table +- soc: ti: pm33xx: Fix refcount leak in am33xx_pm_probe +- soc: ti: pm33xx: Enable basic PM runtime support for genpd +- drm/probe-helper: Cancel previous job before starting new one +- drm/vgem: add missing mutex_destroy +- drm/rockchip: Drop unbalanced obj unref +- erofs: fix potential overflow calculating xattr_isize +- erofs: stop parsing non-compact HEAD index if clusterofs is invalid +- tpm, tpm_tis: Claim locality when interrupts are reenabled on resume +- tpm, tpm: Implement usage counter for locality +- tpm, tpm_tis: Claim locality before writing interrupt registers +- tpm, tpm_tis: Disable interrupts if tpm_tis_probe_irq() failed +- tpm, tpm_tis: Claim locality before writing TPM_INT_ENABLE register +- tpm, tpm_tis: Do not skip reset of original interrupt vector +- selinux: ensure av_permissions.h is built when needed +- selinux: fix Makefile dependencies of flask.h +- selftests/resctrl: Check for return value after write_schemata() +- selftests/resctrl: Return NULL if malloc_and_init_memory() did not alloc mem +- rcu: Fix missing TICK_DEP_MASK_RCU_EXP dependency check +- clk: rockchip: rk3399: allow clk_cifout to force clk_cifout_src to reparent +- wifi: rtl8xxxu: RTL8192EU always needs full init +- mailbox: zynqmp: Fix typo in IPI documentation +- mailbox: zynqmp: Fix IPI isr handling +- nilfs2: fix infinite loop in nilfs_mdt_get_block() +- nilfs2: do not write dirty data after degenerating to read-only +- parisc: Fix argument pointer in real64_call_asm() +- sound/oss/dmasound: fix build when drivers are mixed =y/=m +- iommu/amd: Fix "Guest Virtual APIC Table Root Pointer" configuration in IRTE +- i2c: omap: Fix standard mode false ACK readings +- KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted +- reiserfs: Add security prefix to xattr name in reiserfs_security_write() +- crypto: safexcel - Cleanup ring IRQ workqueues on load failure +- crypto: api - Demote BUG_ON() in crypto_unregister_alg() to a WARN_ON() +- ring-buffer: Sync IRQ works before buffer destruction +- pwm: meson: Fix g12a ao clk81 name +- pwm: meson: Fix axg ao mux parents +- kheaders: Use array declaration instead of char +- ipmi: fix SSIF not responding under certain cond. +- ipmi:ssif: Add send_retries increment +- MIPS: fw: Allow firmware to pass a empty env +- tick/nohz: Fix cpu_is_hotpluggable() by checking with nohz subsystem +- xhci: fix debugfs register accesses while suspended +- staging: iio: resolver: ads1210: fix config mode +- ext4: use ext4_journal_start/stop for fast commit transactions +- blk-crypto: make blk_crypto_evict_key() more robust +- blk-crypto: make blk_crypto_evict_key() return void +- blk-mq: release crypto keyslot before reporting I/O complete +- hwmon: (adt7475) Use device_property APIs when configuring polarity +- hwmon: (k10temp) Check range scale when CUR_TEMP register is read-write +- USB: dwc3: fix runtime pm imbalance on unbind +- USB: dwc3: fix runtime pm imbalance on probe errors +- PCI: qcom: Fix the incorrect register usage in v2.7.0 config +- PCI: pciehp: Fix AB-BA deadlock between reset_lock and device_lock +- wireguard: timers: cast enum limits members to int in prints +- asm-generic/io.h: suppress endianness warnings for readq() and writeq() +- ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750 +- iio: adc: palmas_gpadc: fix NULL dereference on rmmod +- driver core: Don't require dynamic_debug for initcall_debug probe timing +- USB: serial: option: add UNISOC vendor and TOZED LT70C product +- drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var +- KVM: arm64: Fix buffer overflow in kvm_arm_set_fw_reg() +- counter: 104-quad-8: Fix race condition between FLAG and CNTR reads +- !2783 Add error handle for add_disk +- !2782 cpufreq: Abort show()/store() for half-initialized policies +- arch/x86/mm/numa: Do not initialize nodes twice +- powerpc/numa: Handle partially initialized numa nodes +- mm/memcontrol: do not tweak node in mem_cgroup_init() +- memcg: do not tweak node in alloc_mem_cgroup_per_node_info +- mm: make free_area_init_node aware of memory less nodes +- mm, memory_hotplug: reorganize new pgdat initialization +- mm, memory_hotplug: drop arch_free_nodedata +- mm: handle uninitialized numa nodes gracefully +- mm, memory_hotplug: make arch_alloc_nodedata independent on CONFIG_MEMORY_HOTPLUG +- perf: Fix kabi breakage in struct perf_branch_entry +- drivers: perf: arm_pmuv3: Enable branch stack sampling via FEAT_BRBE +- drivers: perf: arm_pmuv3: Enable branch stack sampling framework +- drivers: perf: arm_pmu: Add new sched_task() callback +- arm64/sysreg: Add BRBE registers and fields +- perf branch: Fix interpretation of branch records +- perf record: Add remaining branch filters: "no_cycles", "no_flags" & "hw_index" +- perf: Consolidate branch sample filter helpers +- perf branch: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform +- perf branch: Add branch privilege information request flag +- perf branch: Extend branch type classification +- perf branch: Add system error and not in transaction branch types +- perf: Add PERF_BR_NEW_ARCH_[N] map for BRBE on arm64 platform +- perf: Capture branch privilege information +- perf: Extend branch type classification +- perf/core: Add speculation info to branch entries +- perf: Add system error and not in transaction branch types +- arm64/sysreg: Introduce helpers for access to sysreg fields +- perf script: Output branch sample type +- perf script: Refactor branch stack printing +- perf session: Print branch stack entry type in --dump-raw-trace +- perf evsel: Add error message for unsupported branch stack cases +- perf: Add irq and exception return branch types +- perf tools: Add missing branch_sample_type to perf_event_attr__fprintf() +- sched/topology: fix kabi change in sched_group +- ext4: delete redundant uptodate check for buffer +- block: Set memalloc_noio to false in the error path +- block: Fix minor range check in device_add_disk() +- block: clear ->slave_dir when dropping the main slave_dir reference +- block: call blk_get_queue earlier in __device_add_disk +- block: check minor range in device_add_disk() +- block: fix memory leak for elevator on add_disk failure +- block: Fix the kabi change on blk_register_region +- block: Fix the kabi change in device_add_disk +- block: fix error unwinding in device_add_disk +- block: fix device_add_disk() kobject_create_and_add() error handling +- block: add error handling for device_add_disk / add_disk +- block: return errors from blk_register_region +- block: add the events* attributes to disk_attrs +- block: return errors from disk_alloc_events +- block: return errors from blk_integrity_add +- block: call blk_integrity_add earlier in device_add_disk +- block: fold register_disk into device_add_disk +- nbd: fix possible overflow on 'first_minor' in nbd_dev_add() +- nbd: fix possible overflow for 'first_minor' in nbd_dev_add() +- nbd: fix max value for 'first_minor' +- Revert "Revert "block: nbd: add sanity check for first_minor"" +- nbd: Reorganize the messy commit log about the first_minor check +- cpufreq: make interface functions and lock holding state clear +- cpufreq: Abort show()/store() for half-initialized policies +- RDMA/hns: Fix signed-unsigned mixed comparisons +- RDMA/hns: Fix printing level of asynchronous events +- RDMA/hns: Fix CQ and QP cache affinity +- RDMA/hns: Fix inaccurate error label name in init instance +- RDMA/hns: Remove VF extend configuration +- RDMA/hns: Fix AH attr queried by query_qp +- Revert "RDMA/hns: Fix AH attr queried by query_qp" +- Revert "RDMA/hns: Remove VF extend configuration" +- Revert "RDMA/hns: Fix inaccurate error label name in init instance" +- Revert "RDMA/hns: Fix CQ and QP cache affinity" +- Revert "RDMA/hns: Fix printing level of asynchronous events" +- Revert "RDMA/hns: Fix signed-unsigned mix with relational" +- sched/fair: Use candidate prev/recent_used CPU if scanning failed for cluster wakeup +- sched/fair: Scan cluster before scanning LLC in wake-up path +- sched: Add cpus_share_resources API +- sched/topology: Align group flags when removing degenerate domain +- sched/topology: Propagate SMT flags when removing degenerate domain +- sched/topology: Introduce sched_group::flags +- Revert "sched: Add per_cpu cluster domain info and cpus_share_lowest_cache API" +- Revert "sched/fair: Scan cluster before scanning LLC in wake-up path" +- blk-mq: avoid housekeeping CPUs scheduling a worker on a non-housekeeping CPU +- !2765 Remove invalid cpu selection logic in dynamic affinity +- iommu/vt-d: Avoid superfluous IOTLB tracking in lazy mode +- iommu: Indicate queued flushes via gather data +- iommu: Handle freelists when using deferred flushing in iommu drivers +- vfio/pci: Add DVSEC PCI Extended Config Capability to user visible list. +- PCI: Add #defines for accessing PCIe DVSEC fields +- iommu/vt-d: Fix kdump kernels boot failure with scalable mode +- iommu/vt-d: Fix buggy QAT device mask +- iommu/vt-d: Add a fix for devices need extra dtlb flush +- sched/fair: Remove invalid cpu selection logic in dynamic affinity +- !2757 soc: hisilicon: hisi_hbmdev: Add hbm acls repair and query methods +- !2546 memcg swap qos: add ability to disable memcg swap +- soc: hisilicon: hisi_hbmdev: Add hbm acls repair and query methods +- vhost-vdpa: fix compile warnings +- arm64: openeuler_defconfig: add VDPA config +- vhost-vdpa: fix msi irq request err +- vhost-vdpa: Allow transparent MSI IOV +- export iommu_get_resv_regions and iommu_set_resv_regions +- vhost: add VHOST feature VHOST_BACKEND_F_BYTEMAPLOG +- vhost-vdpa: add uAPI for device migration status +- vdpa: add vdpa device migration status ops +- vhost-vdpa: add uAPI for device buffer +- vdpa: add device state operations +- vhost-vdpa: add uAPI for logging +- vdpa: add log operations +- tools include UAPI: Sync linux/vhost.h with the kernel sources +- vdpa: add get_backend_features vdpa operation +- virtio: fix virtio transitional ids +- virtio: update virtio id table, add transitional ids +- PCI/IOV: Add pci_iov_vf_id() to get VF index +- vhost_vdpa: support PACKED when setting-getting vring_base +- vhost_vdpa: tell vqs about the negotiated +- vhost_vdpa: fix unmap process in no-batch mode +- vhost-vdpa: use bind_mm/unbind_mm device callbacks +- vdpa: add bind_mm/unbind_mm callbacks +- vhost-vdpa: vhost_vdpa_alloc_domain() should be using a const struct bus_type * +- vhost-vdpa: free iommu domain after last use during cleanup +- vhost-vdpa: uAPI to resume the device +- vhost-vdpa: Introduce RESUME backend feature bit +- vdpa: Add resume operation +- vhost_vdpa: fix the crash in unmap a large memory +- vhost-vdpa: fix an iotlb memory leak +- !2683 fix memcgv1 oom meminfo bug +- !2443 CVE-2023-37453 +- !2721 net: sched: sch_qfq: Use non-work-conserving warning handler +- !2737 perf auxtrace ptt: Record whether an auxtrace mmap is needed +- perf auxtrace ptt: Record whether an auxtrace mmap is needed +- !2670 page_pool: Add support query allocation stats and recycle stats +- PCI/IOV: Add pci_sriov_numvfs_lock to support enable pci sriov concurrently +- !2714 crypto: hisilicon/zip - support deflate algorithm +- net: sched: sch_qfq: Use non-work-conserving warning handler +- net: page_pool: fix kabi issue for page poos statistics +- !2678 io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid +- ext4: recheck buffer valid after page unlock +- crypto: hisilicon/zip - support deflate algorithm +- net: page_pool: add page allocation stats for two fast page allocate path +- net: page_pool: introduce ethtool stats +- page_pool: Add recycle stats to page_pool_put_page_bulk +- Documentation: update networking/page_pool.rst +- page_pool: Add function to batch and return stats +- page_pool: Add recycle stats +- page_pool: Add allocation stats +- integrity: Fix possible multiple allocation in integrity_inode_get() +- memcg: dump memory.stat during cgroup OOM for v1 +- memcg: use seq_buf_do_printk() with mem_cgroup_print_oom_meminfo() +- seq_buf: Add seq_buf_do_printk() helper +- seq_buf: Add seq_buf_terminate() API +- io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid +- memcg/swap: add ability to disable memcg swap +- x86/perf: Update PMU support for more Zhaoxin CPU +- USB: core: Fix oversight in SuperSpeed initialization +- USB: core: Fix race by not overwriting udev->descriptor in hub_port_init() +- USB: core: Change usb_get_device_descriptor() API +- USB: core: Unite old scheme and new scheme descriptor reads +- net: ipv4: fix one memleak in __inet_del_ifa() +- cpu/hotplug: Prevent self deadlock on CPU hot-unplug +- anolis: net/smc: do not send msg in receiving process when tx is not blocked. +- net/smc: Send out the remaining data in sndbuf before close +- net/smc: don't send in the BH context if sock_owned_by_user +- net/smc: send directly on setting TCP_NODELAY +- net/smc: add autocorking support +- net/smc: Call trace_smc_tx_sendmsg when data corked +- net/smc: Add comment for smc_tx_pending +- net/smc: Cork when sendpage with MSG_SENDPAGE_NOTLAST flag +- net/smc: Remove corked dealyed work +- net/smc: Send directly when TCP_CORK is cleared +- net/smc: rdma write inline if qp has sufficient inline space +- net/smc: send cdc msg inline if qp has sufficient inline space +- net/smc: Rename 'llc_conf_mutex' variable to 'llc_conf_lock' in struct smc_link_group +- net/smc: replace mutex rmbs_lock and sndbufs_lock with rw_semaphore +- net/smc: use read semaphores to reduce unnecessary blocking in smc_buf_create() & smcr_buf_unuse() +- net/smc: llc_conf_mutex refactor, replace it with rw_semaphore +- configs: enable CONFIG_SMC and CONFIG_SMC_DIAG by default +- net/smc: optimize for smc_sndbuf_sync_sg_for_device and smc_rmb_sync_sg_for_cpu +- net/smc: remove redundant dma sync ops +- KVM: nVMX: Set LDTR to its architecturally defined value on nested VM-Exit + +* Mon Nov 13 2023 zhaoxiaoqiang11 - 5.10.0-166.0.0.81 +- adapt spec for arm64 64kb page build + +* Tue Nov 07 2023 Liu Jian - 5.10.0-166.0.0.80 +- And net-acc tool to kernel-tools. + +* Thu Nov 02 2023 Jialin Zhang - 5.10.0-166.0.0.79 +- !2675 RDMA/hns: Support STARS over RDMA +- !2688 nvmet-tcp: Fix a possible UAF in queue intialization setup +- !2704 crypto: hisilicon - round some bugfixes +- !2381 Add Phytium Display Engine support to the OLK-5.10. +- !2699 add sample sockmap code for redis +- !2695 BTC for openeuler +- !2686 Backport 5.10.179 LTS patches from upstream. +- !2694 LoongArch: add 32/64 pc relative relocation type support +- ASN.1: Fix check for strdup() success +- ASoC: fsl_asrc_dma: fix potential null-ptr-deref +- iio: adc: at91-sama5d2_adc: fix an error code in at91_adc_allocate_trigger() +- pwm: hibvt: Explicitly set .polarity in .get_state() +- pwm: iqs620a: Explicitly set .polarity in .get_state() +- pwm: meson: Explicitly set .polarity in .get_state() +- ext4: fix use-after-free in ext4_xattr_set_entry +- ext4: remove duplicate definition of ext4_xattr_ibody_inline_set() +- Revert "ext4: fix use-after-free in ext4_xattr_set_entry" +- fuse: fix deadlock between atomic O_TRUNC and page invalidation +- fuse: always revalidate rename target dentry +- fuse: fix attr version comparison in fuse_read_update_size() +- fuse: check s_root when destroying sb +- virtiofs: split requests that exceed virtqueue size +- virtiofs: clean up error handling in virtio_fs_get_tree() +- purgatory: fix disabling debug info +- docs: futex: Fix kernel-doc references after code split-up preparation +- MIPS: Define RUNTIME_DISCARD_EXIT in LD script +- sched/uclamp: Fix a uninitialized variable warnings +- sched/uclamp: Make cpu_overutilized() use util_fits_cpu() +- sched/uclamp: Make select_idle_capacity() use util_fits_cpu() +- sched/uclamp: Fix fits_capacity() check in feec() +- sched/uclamp: Make task_fits_capacity() use util_fits_cpu() +- mm/khugepaged: check again on anon uffd-wp during isolation +- mmc: sdhci_am654: Set HIGH_SPEED_ENA for SDR12 and SDR25 +- kernel/sys.c: fix and improve control flow in __sys_setres[ug]id() +- memstick: fix memory leak if card device is never registered +- nilfs2: initialize unused bytes in segment summary blocks +- iio: light: tsl2772: fix reading proximity-diodes from device tree +- powerpc/doc: Fix htmldocs errors +- xen/netback: use same error messages for same errors +- nvme-tcp: fix a possible UAF when failing to allocate an io queue +- s390/ptrace: fix PTRACE_GET_LAST_BREAK error handling +- net: dsa: b53: mmap: add phy ops +- scsi: core: Improve scsi_vpd_inquiry() checks +- scsi: megaraid_sas: Fix fw_crash_buffer_show() +- selftests: sigaltstack: fix -Wuninitialized +- Input: i8042 - add quirk for Fujitsu Lifebook A574/H +- f2fs: Fix f2fs_truncate_partial_nodes ftrace event +- e1000e: Disable TSO on i219-LM card to increase speed +- mlxsw: pci: Fix possible crash during initialization +- net: rpl: fix rpl header size calculation +- mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next() +- i40e: fix i40e_setup_misc_vector() error handling +- i40e: fix accessing vsi->active_filters without holding lock +- netfilter: nf_tables: fix ifdef to also consider nf_tables=m +- sfc: Fix use-after-free due to selftest_work +- sfc: Split STATE_READY in to STATE_NET_DOWN and STATE_NET_UP. +- virtio_net: bugfix overflow inside xdp_linearize_page() +- regulator: fan53555: Explicitly include bits header +- netfilter: br_netfilter: fix recent physdev match breakage +- arm64: dts: imx8mm-evk: correct pmic clock source +- arm64: dts: meson-g12-common: specify full DMC range +- arm64: dts: qcom: ipq8074-hk01: enable QMP device, not the PHY node +- ARM: dts: rockchip: fix a typo error for rk3288 spdif node +- !2672 fix CVE-2023-46813 +- crypto: hisilicon/qm - fix the type value of aeq +- crypto: hisilicon/hpre - Fix a erroneous check after snprintf() +- tools: add sample sockmap code for redis +- net: add local_skb parameter to identify local tcp connection +- net: let sockops can use bpf_get_current_comm() +- cgroup: make cgroup_bpf_prog_attach work when cgroup2 is not mounted +- cgroup: add cgroup_v1v2_get_from_[fd/file]() +- bpf, sockmap: Fix map type error in sock_map_del_link +- libbpf: Support uniform BTF-defined key/value specification across all BPF maps +- ipmi: Errata workaround to prevent SMS message processing timeout +- ipmi: Add erratum 162102203 config to enable workaround for SMS message processing timeout +- LoongArch: Add support for 64_PCREL relocation type +- LoongArch: Add support for 32_PCREL relocation type +- LoongArch: Define relocation types for ABI v2.10 +- !2666 net: xfrm: Fix xfrm_address_filter OOB read +- nvmet-tcp: Fix a possible UAF in queue intialization setup +- !2541 Intel: Backport some SPR and EMR PMU related upstream bugfixes to OLK-5.10 +- !2631 Backport 5.10.178 LTS patches from upstream. +- crypto: hisilicon/sec - Do not check for 0 return after calling platform_get_irq() +- crypto: hisilicon/qm - increase device doorbell timeout +- !2495 [OLK 5.10]drm driver bug revise for hisilicon +- sysctl: Fix data-races in proc_dou8vec_minmax(). +- panic, kexec: make __crash_kexec() NMI safe +- kexec: turn all kexec_mutex acquisitions into trylocks +- kexec: move locking into do_kexec_load +- riscv: Handle zicsr/zifencei issues between clang and binutils +- kbuild: check CONFIG_AS_IS_LLVM instead of LLVM_IAS +- kbuild: Switch to 'f' variants of integrated assembler flag +- kbuild: check the minimum assembler version in Kconfig +- watchdog: sbsa_wdog: Make sure the timeout programming is within the limits +- i2c: ocores: generate stop condition after timeout in polling mode +- x86/rtc: Remove __init for runtime functions +- sched/fair: Fix imbalance overflow +- sched/fair: Move calculate of avg_load to a better location +- powerpc/papr_scm: Update the NUMA distance table for the target node +- powerpc/pseries: Add support for FORM2 associativity +- powerpc/pseries: Add a helper for form1 cpu distance +- powerpc/pseries: Consolidate different NUMA distance update code paths +- powerpc/pseries: Rename TYPE1_AFFINITY to FORM1_AFFINITY +- powerpc/pseries: rename min_common_depth to primary_domain_index +- cgroup/cpuset: Wake up cpuset_attach_wq tasks in cpuset_cancel_attach() +- x86/PCI: Add quirk for AMD XHCI controller that loses MSI-X state in D3hot +- scsi: ses: Handle enclosure with just a primary component gracefully +- net: sfp: initialize sfp->i2c_block_size at sfp allocation +- riscv: add icache flush for nommu sigreturn trampoline +- asymmetric_keys: log on fatal failures in PE/pkcs7 +- verify_pefile: relax wrapper length check +- drm: panel-orientation-quirks: Add quirk for Lenovo Yoga Book X90F +- efi: sysfb_efi: Add quirk for Lenovo Yoga Book X91F/L +- i2c: imx-lpi2c: clean rx/tx buffers upon new message +- wifi: mwifiex: mark OF related data as maybe unused +- power: supply: cros_usbpd: reclassify "default case!" as debug +- libbpf: Fix single-line struct definition output in btf_dump +- net: macb: fix a memory corruption in extended buffer descriptor mode +- udp6: fix potential access to stale information +- RDMA/core: Fix GID entry ref leak when create_ah fails +- sctp: fix a potential overflow in sctp_ifwdtsn_skip +- net: qrtr: Fix an uninit variable access bug in qrtr_tx_resume() +- qlcnic: check pci_reset_function result +- drm/armada: Fix a potential double free in an error handling path +- sysctl: add proc_dou8vec_minmax() +- niu: Fix missing unwind goto in niu_alloc_channels() +- RDMA/cma: Allow UD qp_type to join multicast only +- IB/mlx5: Add support for 400G_8X lane speed +- IB/mlx5: Add support for NDR link speed +- clk: sprd: set max_register according to mapping range +- mtd: rawnand: stm32_fmc2: use timings.mode instead of checking tRC_min +- mtd: rawnand: stm32_fmc2: remove unsupported EDO mode +- mtd: rawnand: meson: fix bitmask for length in command word +- mtdblock: tolerate corrected bit-flips +- fbmem: Reject FB_ACTIVATE_KD_TEXT from userspace +- btrfs: fix fast csum implementation detection +- btrfs: print checksum type and implementation at mount time +- Bluetooth: Fix race condition in hidp_session_thread +- Bluetooth: L2CAP: Fix use-after-free in l2cap_disconnect_{req,rsp} +- ALSA: hda/sigmatel: fix S/PDIF out on Intel D*45* motherboards +- ALSA: firewire-tascam: add missing unwind goto in snd_tscm_stream_start_duplex() +- ALSA: i2c/cs8427: fix iec958 mixer control deactivation +- ALSA: hda/sigmatel: add pin overrides for Intel DP45SG motherboard +- ALSA: emu10k1: fix capture interrupt handler unlinking +- Revert "pinctrl: amd: Disable and mask interrupts on resume" +- bpftool: Print newline before '}' for struct with padding only fields +- ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown +- Revert "media: ti: cal: fix possible memory leak in cal_ctx_create()" +- drm/bridge: lt9611: Fix PLL being unable to lock +- selftests: intel_pstate: ftime() is deprecated +- mm/swap: fix swap_info_struct race between swapoff and get_swap_pages() +- drm/nouveau/disp: Support more modes by checking with lower bpc +- drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path +- ASoC: hdac_hdmi: use set_stream() instead of set_tdm_slots() +- tracing: Free error logs of tracing instances +- can: isotp: isotp_ops: fix poll() to not report false EPOLLOUT events +- can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access +- ftrace: Mark get_lock_parent_ip() __always_inline +- perf/core: Fix the same task check in perf_event_set_output +- iio: adc: ad7791: fix IRQ flags +- ALSA: hda/realtek: Add quirk for Clevo X370SNW +- dt-bindings: serial: renesas,scif: Fix 4th IRQ for 4-IRQ SCIFs +- nilfs2: fix sysfs interface lifetime +- nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread() +- tty: serial: fsl_lpuart: avoid checking for transfer complete when UARTCTRL_SBK is asserted in lpuart32_tx_empty +- tty: serial: sh-sci: Fix Rx on RZ/G2L SCI +- tty: serial: sh-sci: Fix transmit end interrupt handler +- iio: light: cm32181: Unregister second I2C client if present +- iio: dac: cio-dac: Fix max DAC write value check for 12-bit +- iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip +- USB: serial: option: add Quectel RM500U-CN modem +- USB: serial: option: add Telit FE990 compositions +- usb: typec: altmodes/displayport: Fix configure initial pin assignment +- USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs +- xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu +- usb: xhci: tegra: fix sleep in atomic call +- NFSD: callback request does not use correct credential for AUTH_SYS +- sunrpc: only free unix grouplist after RCU settles +- net: stmmac: fix up RX flow hash indirection table when setting channels +- net: ethernet: ti: am65-cpsw: Fix mdio cleanup in probe +- gpio: davinci: Add irq chip flag to skip set wake +- ipv6: Fix an uninit variable access bug in __ip6_make_skb() +- net: qrtr: Do not do DEL_SERVER broadcast after DEL_CLIENT +- sctp: check send stream number after wait_for_sndbuf +- net: don't let netpoll invoke NAPI if in xmit context +- icmp: guard against too small mtu +- net: qrtr: Fix a refcount bug in qrtr_recvmsg() +- net: qrtr: combine nameservice into main module +- wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta +- KVM: s390: pv: fix external interruption loop not always detected +- pwm: sprd: Explicitly set .polarity in .get_state() +- pwm: cros-ec: Explicitly set .polarity in .get_state() +- Drivers: vmbus: Check for channel allocation before looking up relids +- gpio: GPIO_REGMAP: select REGMAP instead of depending on it +- RDMA/hns: Support write with notify +- RDMA/hns: Support kernel ULP querying HW ID +- RDMA/hns: Support STARS mode QP +- RDMA/hns: Support configuring POE channels and creating POE CQs +- RDMA/hns: Fix print after query hw id failed. +- RDMA/hns: Support query HW ID from user space. +- x86/sev: Check for user-space IOIO pointing to kernel space +- x86/sev: Check IOBM for IOIO exceptions from user-space +- x86/sev: Disable MMIO emulation from user mode +- net: xfrm: Fix xfrm_address_filter OOB read +- !2579 LoongArch: default IPMI related defconfig to m +- !2319 add a mutex lock for qos_level +- !2621 RDMA/hns: Append SCC context to the raw dump of QP Resource +- !2656 coresight: trbe: Enable ACPI based devices +- !2657 Synchronize mainline hisilicon uncore pmu driver bugfix to openEuler-OLK-5.10 +- perf: hisi: Fix use-after-free when register pmu fails +- drivers/perf: hisi_pcie: Initialize event->cpu only on success +- drivers/perf: hisi_pcie: Check the type first in pmu::event_init() +- coresight: trbe: Enable ACPI based TRBE devices +- coresight: trbe: Add a representative coresight_platform_data for TRBE +- arm_pmu: acpi: Add a representative platform device for TRBE +- arm_pmu: acpi: Refactor arm_spe_acpi_register_device() +- Revert "coresight: Return the pointer of @pdata when not "fwnode"" +- Revert "arm64/trbe: Add initial MADT/SPE probing" +- Revert "coresight: trbe: Enable ACPI/Platform automatic module loading" +- !2632 arm64: fix a concurrency issue in emulation_proc_handler() +- !2642 Synchronize coresight driver bugfix patches to openEuler +- !2377 tracing: Backport bugfixes +- !2641 Fix CVE-2023-5717 +- !2628 ubi: Refuse attaching if mtd's erasesize is 0 +- !2543 psi: fix "no previous prototype" warnings when CONFIG_CGROUPS=n +- coresight: tmc-etr: Disable warnings for allocation failures +- coresight: Fix run time warnings while reusing ETR buffer +- coresight: trbe: Fix TRBE potential sleep in atomic context +- coresight: Fix memory leak in acpi_buffer->pointer +- coresight: trbe: Allocate platform data per device +- coresight: trbe: Fix return value check in arm_trbe_register_coresight_cpu() +- perf: Fix kabi breakage in struct perf_event +- perf: Disallow mis-matched inherited group reads +- !2620 coresight: etm4x: Migrate ACPI AMBA devices to platform drive +- !2608 [sync] PR-2557: Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO +- arm64: armv8_deprecated: fix unused-function error +- arm64: armv8_deprecated: rework deprected instruction handling +- arm64: armv8_deprecated: move aarch32 helper earlier +- arm64: armv8_deprecated move emulation functions +- arm64: armv8_deprecated: fold ops into insn_emulation +- arm64: rework EL0 MRS emulation +- arm64: factor insn read out of call_undef_hook() +- arm64: factor out EL1 SSBS emulation hook +- arm64: split EL0/EL1 UNDEF handlers +- arm64: allow kprobes on EL0 handlers +- arm64: rework BTI exception handling +- arm64: rework FPAC exception handling +- arm64: consistently pass ESR_ELx to die() +- arm64: die(): pass 'err' as long +- Revert "arm64: fix a concurrency issue in emulation_proc_handler()" +- !2615 preempt/dynamic: Fix setup_preempt_mode() return value +- !2624 [sync] PR-2613: CVE-2022-44033 +- ubi: Refuse attaching if mtd's erasesize is 0 +- !2452 audit: fix possible soft lockup in __audit_inode_child() +- char: pcmcia: remove all the drivers +- tty: ipwireless: move Kconfig entry to tty +- RDMA/hns: Append SCC context to the raw dump of QP Resource +- coresight: etm4x: Ensure valid drvdata and clock before clk_put() +- coresight: etm4x: Add ACPI support in platform driver +- coresight: platform: acpi: Ignore the absence of graph +- coresight: etm4x: Change etm4_platform_driver driver for MMIO devices +- coresight: etm4x: Drop pid argument from etm4_probe() +- coresight: etm4x: Drop iomem 'base' argument from etm4_probe() +- coresight: etm4x: Allocate and device assign 'struct etmv4_drvdata' earlier +- Revert "coresight: ete: Add acpi match id for Hip09" +- preempt/dynamic: Fix setup_preempt_mode() return value +- !1613 arm64/mpam: implement CPU_PM notifier +- !2592 Add support for RDMA VF over UBL +- Bluetooth: hci_ldisc: check HCI_UART_PROTO_READY flag in HCIUARTGETPROTO +- !2573 media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221 +- !2496 uacce: some bugfix and cleanup +- !1553 remove useless spinlock section +- !1804 count time in drain_all_pages during direct reclaim as memory pressure +- !2571 xen/events: replace evtchn_rwlock with RCU +- RDMA/hns: Add support for RDMA VF over UBL +- RDMA/core: Add support for the new ARPHRD_UB +- LoongArch: default IPMI related defconfig to m +- sched: add mutex lock to protect qos_level +- uacce: remove unused file 'dev_state' +- uacce: cleanup some unused codes +- uacce: fix NULL pointer when unbind device +- media: dvb-core: Fix use-after-free due to race condition at dvb_ca_en50221 +- !2481 Introduce PBHA and PBHA bit0 to control the usage of HBM Cache precisely +- !2537 Support SRQ record doorbell +- xen/events: replace evtchn_rwlock with RCU +- !2456 Added the UB network management driver. +- psi: fix "no previous prototype" warnings when CONFIG_CGROUPS=n +- network_mgmt: Support IP notify Protocol. +- network_mgmt: Added the UB network management driver. +- perf/x86/uncore: Correct the number of CHAs on EMR +- perf/x86/uncore: Correct the number of CHAs on SPR +- perf/x86/intel: Fix pebs event constraints for SPR +- !2465 Backport 5.10.177 LTS patches from upstream +- !2454 igb: set max size RX buffer when store bad packet is enabled +- RDMA/hns: Support SRQ record doorbell +- !2370 ipv4: fix null-deref in ipv4_link_failure +- !2411 netfilter: xt_sctp: validate the flag_info count +- !2517 RDMA/hns: Support flexible wqe buffer page size +- !2159 Enable HiSilicon Erratum 162001900 quirk for HIP08/09 +- !2363 skip smt expel when cpu down +- !2476 Fixed five CVEs vulnerabilities of ksmbd +- !2491 udma: add udma support to hns3 +- gpu:fix gpu shutdown message +- !2501 scsi: mpt3sas: Perform additional retries if doorbell read returns 0 +- RDMA/hns: Support flexible wqe buffer page size +- RDMA/hns: Refactor hns_roce_alloc_ucontext() +- !2480 coresight: Fix loss of connection info when a module is unloaded +- !2488 coresight: etm4x: Match all ETM4 instances based on DEVARCH and DEVTYPE +- !2483 Fix bug for init roh client instance +- !1293 Enable reliable memory for x86 platform +- !2459 Bugfixes for RDMA/hns +- !2499 f2fs: fix to avoid NULL pointer dereference f2fs_write_end_io() +- !2492 Avoid spin or livelock during panic +- !2500 Modify a format problem of gpio +- !2440 netfilter: xt_u32: validate user space input +- scsi: mpt3sas: Perform additional retries if doorbell read returns 0 +- gpio: hisi: Fix format specifier +- f2fs: fix to avoid NULL pointer dereference f2fs_write_end_io() +- !2489 Some optimizations for PTT driver +- !2407 Revert "uacce: use filep->f_mapping to replace inode->i_mapping" +- !2437 crypto: drbg - Only fail when jent is unavailable in FIPS mode +- !2468 fix cgroup poll UAF +- printk: Drop console_sem during panic +- printk: Avoid livelock with heavy printk during panic +- printk: disable optimistic spin during panic +- printk: Add panic_in_progress helper +- hns3 udma: support dfx function of query stats of TX and RX packets. +- hns3 udma: support dfx function of query resources +- hns3 udma: support config params of multipath function for UM Jetty/JFS +- hns3 udma: support of DCA +- hns3 udma: support config and query parameters of SCC algorithms +- hns3 udma: support config congestion control algorithms +- hns3 udma: support POE mode. +- hns3 udma: change the way of modify qp process +- hns3 udma: support of flush cqe +- hns3 udma: support import and unimport jetty +- hns3 udma: add feature of hardware reset +- hns3 udma: support create and destroy JETTY +- hns3 udma: add support of UM JFR +- hns3 udma: support modify tp and destroy tp +- hns3 udma: add support of UM JFS +- hns3 udma: add support of create / destroy JFS +- hns3 udma: add function clear when ko rmmod +- hns3 udma: support create tp +- hns3 udma: support import and unimport jfr +- hns3 udma: add support of query_device_status +- hns3 udma: add support of query_device_attr +- hns3 udma: support modify jfr function +- hns3 udma: add support of mmap direct wqe page +- hns3 udma: support 1-bit ECC recover function. +- hns3 udma: support import and unimport segment +- hns3 udma: add register and unregister segment +- hns3 udma: support report events to AE or CE handler. +- hns3 udma: support create and destroy jfr. +- hns3 udma: support of link status change +- hns3 udma: support of set eid +- hns3 udma: support of modify jfc +- hns3 udma: support of notify address in create jfc +- hns3 udma: create and destroy jfc +- hns3 udma: feature of record doorbell +- hns3 udma: mmap doorbell address to uar page +- hns3 udma: create and destroy u-context +- hns3 udma: add feature for eq +- hns3 udma: init software tables of qp/uar and others +- hns3 udma: feature of memory translate region +- hns3 udma: function of hardware init +- hns3 udma: cmd and mailbox for hns3-udma driver +- hns3 udma: support loading and unloading of udma driver. +- !2462 ub: change name in kconfig, and kconfig content of ub +- hwtracing: hisi_ptt: Don't try to attach a task +- hwtracing: hisi_ptt: Optimize the trace data committing +- hwtracing: hisi_ptt: Handle the interrupt in hardirq context +- hwtracing: hisi_ptt: Disable interrupt after trace end +- coresight: etm4x: Match all ETM4 instances based on DEVARCH and DEVTYPE +- Revert "coresight: etm4x: Add Support for HiSilicon T6 ETM" +- sched/fair: skip smt expel when cpu down +- ub: change name in kconfig, and kconfig content of ub +- net: hns3: fix bug for init roh client instance +- openeuler: configs: arm64: Enable PBHA by default +- arm64: mm: Introduce kernel param pbha +- arm64: mm: Introduce prctl to control pbha behavior +- arm64: mm: Set flag VM_PBHA_BIT0 for global init task +- arm64: mm: Introduce procfs interface to update PBHA0 bit +- arm64: mm: Set PBHA0 bit for VM_PBHA_BIT0 +- arm64: mm: Introduce VM_PBHA_BIT0 to enable pbha bit0 for single vma +- arm64: mm: Show PBHA bit 59 as PBHA0 in ptdump +- arm64: mm: Update kernel pte entries if pbha bit0 enabled +- arm64: mm: Detect and enable PBHA bit0 at early startup +- arm64: cpufeature: Enable PBHA for stage1 early via FDT +- Documentation: arm64: Describe the support and expectations for PBHA +- KVM: arm64: Configure PBHA bits for stage2 +- arm64: mm: Add pgprot_pbha() to allow drivers to request PBHA values +- arm64: cpufeature: Enable PBHA bits for stage1 +- dt-bindings: arm: Add binding for Page Based Hardware Attributes +- dt-bindings: Rename the description of cpu nodes cpu.yaml +- KVM: arm64: Detect and enable PBHA for stage2 +- arm64: Extract early FDT mapping from kaslr_early_init() +- coresight: Fix loss of connection info when a module is unloaded +- ksmbd: do not call kvmalloc() with __GFP_NORETRY | __GFP_NO_WARN +- ksmbd: fix infinite loop in ksmbd_conn_handler_loop() +- ksmbd: send proper error response in smb2_tree_connect() +- ksmbd: fix racy issue from smb2 close and logoff with multichannel +- ksmbd: call rcu_barrier() in ksmbd_server_exit() +- ksmbd: fix racy issue under cocurrent smb2 tree disconnect +- !2447 xhci: print warning when HCE was set +- hsr: ratelimit only when errors are printed +- gfs2: Always check inode size of inline inodes +- libbpf: Fix btf_dump's packed struct determination +- selftests/bpf: Add few corner cases to test padding handling of btf_dump +- libbpf: Fix BTF-to-C converter's padding logic +- selftests/bpf: Test btf dump for struct with padding only fields +- zonefs: Fix error message in zonefs_file_dio_append() +- btrfs: scan device in non-exclusive mode +- s390/uaccess: add missing earlyclobber annotations to __clear_user() +- drm/amd/display: Add DSC Support for Synaptics Cascaded MST Hub +- drm/etnaviv: fix reference leak when mmaping imported buffer +- rcu: Fix rcu_torture_read ftrace event +- xtensa: fix KASAN report for show_stack +- ALSA: hda/realtek: Add quirk for Lenovo ZhaoYang CF4620Z +- ALSA: usb-audio: Fix regression on detection of Roland VS-100 +- ALSA: hda/conexant: Partial revert of a quirk for Lenovo +- NFSv4: Fix hangs when recovering open state after a server reboot +- powerpc: Don't try to copy PPR for task with NULL pt_regs +- pinctrl: at91-pio4: fix domain name assignment +- pinctrl: amd: Disable and mask interrupts on resume +- net: phy: dp83869: fix default value for tx-/rx-internal-delay +- xen/netback: don't do grant copy across page boundary +- Input: goodix - add Lenovo Yoga Book X90F to nine_bytes_report DMI table +- cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL +- cifs: prevent infinite recursion in CIFSGetDFSRefer() +- Input: focaltech - use explicitly signed char type +- Input: alps - fix compatibility with -funsigned-char +- pinctrl: ocelot: Fix alt mode for ocelot +- net: dsa: mv88e6xxx: Enable IGMP snooping on user ports only +- bnxt_en: Add missing 200G link speed reporting +- bnxt_en: Fix typo in PCI id to device description string mapping +- i40e: fix registers dump after run ethtool adapter self test +- net: ipa: compute DMA pool size properly +- ALSA: ymfpci: Fix BUG_ON in probe function +- ALSA: ymfpci: Fix assignment in if condition +- s390/vfio-ap: fix memory leak in vfio_ap device driver +- can: bcm: bcm_tx_setup(): fix KMSAN uninit-value in vfs_write +- net: stmmac: don't reject VLANs when IFF_PROMISC is set +- net/net_failover: fix txq exceeding warning +- regulator: Handle deferred clk +- r8169: fix RTL8168H and RTL8107E rx crc error +- ptp_qoriq: fix memory leak in probe() +- scsi: megaraid_sas: Fix crash after a double completion +- sfc: ef10: don't overwrite offload features at NIC reset +- mtd: rawnand: meson: invalidate cache on polling ECC bit +- mips: bmips: BCM6358: disable RAC flush for TP1 +- ca8210: Fix unsigned mac_len comparison with zero in ca8210_skb_tx() +- tracing: Fix wrong return in kprobe_event_gen_test.c +- tools/power turbostat: Fix /dev/cpu_dma_latency warnings +- fbdev: au1200fb: Fix potential divide by zero +- fbdev: lxfb: Fix potential divide by zero +- fbdev: intelfb: Fix potential divide by zero +- fbdev: nvidia: Fix potential divide by zero +- sched_getaffinity: don't assume 'cpumask_size()' is fully initialized +- fbdev: tgafb: Fix potential divide by zero +- ALSA: hda/ca0132: fixup buffer overrun at tuning_ctl_set() +- ALSA: asihpi: check pao in control_message() +- net: hsr: Don't log netdev_err message on unknown prp dst node +- md: avoid signed overflow in slot_store() +- fsverity: don't drop pagecache at end of FS_IOC_ENABLE_VERITY +- dm crypt: avoid accessing uninitialized tasklet +- bus: imx-weim: fix branch condition evaluates to a garbage value +- drm/meson: fix missing component unbind on bind errors +- drm/meson: Fix error handling when afbcd.ops->init fails +- kcsan: avoid passing -g for test +- kernel: kcsan: kcsan_test: build without structleak plugin +- usb: dwc3: gadget: Add 1ms delay after end transfer command without IOC +- usb: dwc3: gadget: move cmd_endtransfer to extra function +- NFSD: fix use-after-free in __nfs42_ssc_open() +- KVM: fix memoryleak in kvm_init() +- ocfs2: fix data corruption after failed write +- sched/fair: Sanitize vruntime of entity being migrated +- sched/fair: sanitize vruntime of entity being placed +- firmware: arm_scmi: Fix device node validation for mailbox transport +- tee: amdtee: fix race condition in amdtee_open_session +- drm/i915: Preserve crtc_state->inherited during state clearing +- drm/i915/active: Fix missing debug object activation +- nilfs2: fix kernel-infoleak in nilfs_ioctl_wrap_copy() +- wifi: mac80211: fix qos on mesh interfaces +- usb: ucsi: Fix NULL pointer deref in ucsi_connector_change() +- usb: chipidea: core: fix possible concurrent when switch role +- usb: chipdea: core: fix return -EINVAL if request role is the same with current role +- usb: cdns3: Fix issue with using incorrect PCI device function +- igb: revert rtnl_lock() that causes deadlock +- fsverity: Remove WQ_UNBOUND from fsverity read workqueue +- usb: gadget: u_audio: don't let userspace block driver unbind +- usb: dwc2: fix a devres leak in hw_enable upon suspend resume +- scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR +- cifs: empty interface list when server doesn't support query interfaces +- sh: sanitize the flags on sigreturn +- net: usb: qmi_wwan: add Telit 0x1080 composition +- net: usb: cdc_mbim: avoid altsetting toggling for Telit FE990 +- scsi: storvsc: Handle BlockSize change in Hyper-V VHD/VHDX file +- scsi: lpfc: Avoid usage of list iterator variable after loop +- scsi: ufs: core: Add soft dependency on governor_simpleondemand +- scsi: hisi_sas: Check devm_add_action() return value +- scsi: target: iscsi: Fix an error message in iscsi_check_key() +- selftests/bpf: check that modifier resolves after pointer +- m68k: Only force 030 bus error if PC not in exception table +- ca8210: fix mac_len negative array access +- HID: cp2112: Fix driver not registering GPIO IRQ chip as threaded +- riscv: Bump COMMAND_LINE_SIZE value to 1024 +- thunderbolt: Use const qualifier for `ring_interrupt_index` +- thunderbolt: Use scale field when allocating USB3 bandwidth +- uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS583Gen 2 +- scsi: qla2xxx: Perform lockless command completion in abort path +- hwmon (it87): Fix voltage scaling for chips with 10.9mV ADCs +- hwmon: fix potential sensor registration fail if of_node is missing +- platform/chrome: cros_ec_chardev: fix kernel data leak from ioctl +- Bluetooth: btsdio: fix use after free bug in btsdio_remove due to unfinished work +- Bluetooth: L2CAP: Fix responding with wrong PDU type +- Bluetooth: L2CAP: Fix not checking for maximum number of DCID +- Bluetooth: btqcomsmd: Fix command timeout after setting BD address +- net: mdio: thunder: Add missing fwnode_handle_put() +- gve: Cache link_speed value from device +- nvme-tcp: fix nvme_tcp_term_pdu to match spec +- net/sonic: use dma_mapping_error() for error check +- erspan: do not use skb_mac_header() in ndo_start_xmit() +- atm: idt77252: fix kmemleak when rmmod idt77252 +- net/mlx5: E-Switch, Fix an Oops in error handling code +- net/mlx5: Read the TC mapping of all priorities on ETS query +- net/mlx5: Fix steering rules cleanup +- bpf: Adjust insufficient default bpf_jit_limit +- keys: Do not cache key in task struct if key is requested from kernel thread +- bootconfig: Fix testcase to increase max node +- net/ps3_gelic_net: Use dma_mapping_error +- net/ps3_gelic_net: Fix RX sk_buff length +- !2449 [OLK-5.10] arch_topology: Limit span of cpu_clustergroup_mask() +- sched/psi: Select KERNFS as needed +- kernfs: add stub helper for kernfs_generic_poll() +- sched/psi: use kernfs polling functions for PSI trigger polling +- net: phy: Ensure state transitions are processed from phy_stop() +- qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info +- net: usb: smsc95xx: Limit packet length to skb->len +- i2c: imx-lpi2c: check only for enabled interrupt flags +- igc: fix the validation logic for taprio's gate list +- igbvf: Regard vf reset nack as success +- intel/igbvf: free irq on the error path in igbvf_request_msix() +- iavf: fix non-tunneled IPv6 UDP packet type and hashing +- iavf: fix inverted Rx hash condition leading to disabled hash +- xsk: Add missing overflow check in xdp_umem_reg +- ARM: dts: imx6sl: tolino-shine2hd: fix usbotg1 pinctrl +- ARM: dts: imx6sll: e60k02: fix usbotg1 pinctrl +- power: supply: bq24190_charger: using pm_runtime_resume_and_get instead of pm_runtime_get_sync +- drm/sun4i: fix missing component unbind on bind errors +- serial: 8250: ASPEED_VUART: select REGMAP instead of depending on it +- serial: 8250: SERIAL_8250_ASPEED_VUART should depend on ARCH_ASPEED +- tty: serial: fsl_lpuart: fix race on RX DMA shutdown +- serial: fsl_lpuart: Fix comment typo +- KVM: Register /dev/kvm as the _very_ last thing during initialization +- KVM: Pre-allocate cpumasks for kvm_make_all_cpus_request_except() +- KVM: Optimize kvm_make_vcpus_request_mask() a bit +- KVM: KVM: Use cpumask_available() to check for NULL cpumask when kicking vCPUs +- KVM: Clean up benign vcpu->cpu data races when kicking vCPUs +- ipmi:ssif: Add a timer between request retries +- ipmi:ssif: resend_msg() cannot fail +- ipmi:ssif: Increase the message retry time +- ipmi:ssif: make ssif_i2c_send() void +- interconnect: qcom: osm-l3: fix icc_onecell_data allocation +- RDMA/hns: Fix the concurrency error between bond and reset. +- !2442 Backport 5.10.176 LTS patches from upstream. +- !2431 Backport microcode patches from upstream 5.10.173 +- RDMA/hns: Fix unregistering device and accessing to debugfs concurrently +- RDMA/hns: Fix signed-unsigned mix with relational +- RDMA/hns: Fix printing level of asynchronous events +- RDMA/hns: Fix registering dca debugfs when dca has not been set +- RDMA/hns: Fix potential NULL pointer in DCA memory query +- RDMA/hns: Fix context dca configuration +- !2410 netfilter: nfnetlink_osf: avoid OOB read +- igb: set max size RX buffer when store bad packet is enabled +- audit: fix possible soft lockup in __audit_inode_child() +- !2308 unic: add ub support to hns3 +- arch_topology: Make cluster topology span at least SMT CPUs +- arch_topology: Limit span of cpu_clustergroup_mask() +- xhci: print warning when HCE was set +- !2423 Revert "perf: pmu: fix set wrong filter mode for running events issue" and "perf: hns3: default use hardware event 0 as group leader event." +- uacce: use q->mapping to replace inode->i_mapping +- Revert "uacce: use filep->f_mapping to replace inode->i_mapping" +- Enabled microcode late loading as default for x86 in openeuler_defconfig +- x86/microcode: Adjust late loading result reporting message +- x86/microcode: Check CPU capabilities after late microcode update correctly +- x86/microcode: Add a parameter to microcode_check() to store CPU capabilities +- x86/microcode: Default-disable late loading +- HID: uhid: Over-ride the default maximum data buffer value with our own +- HID: core: Provide new max_buffer_size attribute to over-ride the default +- fs: use consistent setgid checks in is_sxid() +- attr: add in_group_or_capable() +- fs: move S_ISGID stripping into the vfs_*() helpers +- fs: add mode_strip_sgid() helper +- PCI/DPC: Await readiness of secondary bus after reset +- PCI: Unify delay handling for reset and resume +- s390/ipl: add missing intersection check to ipl_report handling +- io_uring: avoid null-ptr-deref in io_arm_poll_handler +- drm/i915/active: Fix misuse of non-idle barriers as fence trackers +- drm/i915: Don't use stolen memory for ring buffers with LLC +- x86/mm: Fix use of uninitialized buffer in sme_enable() +- x86/mce: Make sure logged MCEs are processed after sysfs update +- cpuidle: psci: Iterate backwards over list in psci_pd_remove() +- fbdev: stifb: Provide valid pixelclock and add fb_check_var() checks +- mmc: sdhci_am654: lower power-on failed message severity +- mm/userfaultfd: propagate uffd-wp bit when PTE-mapping the huge zeropage +- mptcp: avoid setting TCP_CLOSE state twice +- drm/shmem-helper: Remove another errant put in error path +- ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book2 Pro +- ALSA: hda: intel-dsp-config: add MTL PCI id +- cifs: Fix smb2_set_path_size() +- tracing: Make tracepoint lockdep check actually test something +- tracing: Check field value in hist_field_name() +- tracing: Make splice_read available again +- interconnect: fix mem leak when freeing nodes +- firmware: xilinx: don't make a sleepable memory allocation from an atomic context +- serial: 8250_em: Fix UART port type +- tty: serial: fsl_lpuart: skip waiting for transmission complete when UARTCTRL_SBK is asserted +- ext4: fix possible double unlock when moving a directory +- drm/amd/display: fix shift-out-of-bounds in CalculateVMAndRowBytes +- sh: intc: Avoid spurious sizeof-pointer-div warning +- drm/amdkfd: Fix an illegal memory access +- ext4: fix task hung in ext4_xattr_delete_inode +- ext4: fail ext4_iget if special inode unallocated +- jffs2: correct logic when creating a hole in jffs2_write_begin +- mmc: atmel-mci: fix race between stop command and start of next command +- media: m5mols: fix off-by-one loop termination error +- hwmon: (adm1266) Set `can_sleep` flag for GPIO chip +- hwmon: tmp512: drop of_match_ptr for ID table +- hwmon: (ucd90320) Add minimum delay between bus accesses +- hwmon: (ina3221) return prober error code +- hwmon: (adt7475) Fix masking of hysteresis registers +- hwmon: (adt7475) Display smoothing attributes in correct order +- ethernet: sun: add check for the mdesc_grab() +- qed/qed_mng_tlv: correctly zero out ->min instead of ->hour +- selftests: net: devlink_port_split.py: skip test if no suitable device available +- net/iucv: Fix size of interrupt data +- net: usb: smsc75xx: Move packet length check to prevent kernel panic in skb_pull +- ipv4: Fix incorrect table ID in IOCTL path +- net: dsa: mv88e6xxx: fix max_mtu of 1492 on 6165, 6191, 6220, 6250, 6290 +- ice: xsk: disable txq irq before flushing hw +- block: sunvdc: add check for mdesc_grab() returning NULL +- nvmet: avoid potential UAF in nvmet_req_complete() +- nvme: fix handling single range discard request +- block: null_blk: Fix handling of fake timeout request +- null_blk: Move driver into its own directory +- drm/bridge: Fix returned array size name for atomic_get_input_bus_fmts kdoc +- net: usb: smsc75xx: Limit packet length to skb->len +- net/smc: fix deadlock triggered by cancel_delayed_work_syn() +- net: phy: smsc: bail out in lan87xx_read_status if genphy_read_status fails +- net: tunnels: annotate lockless accesses to dev->needed_headroom +- qed/qed_dev: guard against a possible division by zero +- net/smc: fix NULL sndbuf_desc in smc_cdc_tx_handler() +- i40e: Fix kernel crash during reboot when adapter is in recovery mode +- ipvlan: Make skb->skb_iif track skb->dev for l3s mode +- nfc: pn533: initialize struct pn533_out_arg properly +- tcp: tcp_make_synack() can be called from process context +- scsi: core: Fix a procfs host directory removal regression +- scsi: core: Fix a comment in function scsi_host_dev_release() +- netfilter: nft_redir: correct value of inet type `.maxattrs` +- netfilter: nft_redir: correct length for loading protocol registers +- netfilter: nft_masq: correct length for loading protocol registers +- netfilter: nft_nat: correct length for loading protocol registers +- ALSA: hda: Match only Intel devices with CONTROLLER_IN_GPU() +- scsi: mpt3sas: Fix NULL pointer access in mpt3sas_transport_port_add() +- docs: Correct missing "d_" prefix for dentry_operations member d_weak_revalidate +- clk: HI655X: select REGMAP instead of depending on it +- drm/meson: fix 1px pink line on GXM when scaling video overlay +- cifs: Move the in_send statistic to __smb_send_rqst() +- drm/panfrost: Don't sync rpm suspension after mmu flushing +- xfrm: Allow transport-mode states with AF_UNSPEC selector +- netfilter: xt_u32: validate user space input +- !2428 Add Hisilicon hibmc drm driver maintainers to openEuler/MAINTAINERS +- crypto: drbg - Only fail when jent is unavailable in FIPS mode +- !1282 Stop attempts to auxtrace mmap when not an auxtrace event +- !2340 xfs: recent patches to fix xfs issues +- Revert "perf: hns3: default use hardware event 0 as group leader event." +- Revert "perf: pmu: fix set wrong filter mode for running events issue" +- !2326 fix CVE-2023-20569 +- !2406 ub: change default Kconfig of urma to n, and depends on arm64 +- MAINTAINERS: update openEuler/MAINTAINERS for Hisilicon +- UNIC: add support for tc speed limitation +- UNIC: Debugfs supports query of ip and guid table's list and specification +- UNIC: Support using MC GUID and table management +- UNIC: Supports query, configuration, and management of IP entry +- UNIC: add support for querying and configuring the function guid +- UNIC: PF supports MAC loopback +- UNIC: add nfe ras for PFA and TXPM module +- UNIC: Support UDMA client management +- UNIC: Support changing MTU size in UB mode +- UNIC: Replace ether interface by ubl interface +- unic: export the function of getting l3_type for UB +- UNIC: Adds the process of UNIC driver initializing +- UNIC: Support identify UBoE device through device id +- UNIC: Support identify UBL device through device id +- ubl: add CONFIG_UBL definition and UBL interface +- netfilter: xt_sctp: validate the flag_info count +- netfilter: nfnetlink_osf: avoid OOB read +- !2395 Uacce round main line two cleanup patches +- ub: change default Kconfig to n, and depends on arm64 +- kabi: Allow extra bugsints (bsc#1213927). +- x86/cpufeatures: Fix abi breakage caused by NCAPINTS in cpufeature header file. +- tools arch x86: Sync the msr-index.h copy with the kernel sources +- objtool/x86: Fix SRSO mess +- x86/srso: Correct the mitigation status when SMT is disabled +- objtool/x86: Fixup frame-pointer vs rethunk +- x86/srso: Disable the mitigation on unaffected configurations +- x86/retpoline: Don't clobber RFLAGS during srso_safe_ret() +- x86/cpu: Cleanup the untrain mess +- x86/cpu: Rename srso_(.*)_alias to srso_alias_1 +- x86/cpu: Rename original retbleed methods +- x86/cpu: Clean up SRSO return thunk mess +- x86/alternative: Make custom return thunk unconditional +- x86/cpu: Fix up srso_safe_ret() and __x86_return_thunk() +- x86/cpu: Fix __x86_return_thunk symbol type +- x86/ibt: Add ANNOTATE_NOENDBR +- objtool: Add frame-pointer-specific function ignore +- x86/srso: Fix build breakage with the LLVM linker +- x86/srso: Tie SBPB bit setting to microcode patch detection +- x86/srso: Fix return thunks in generated code +- x86/srso: Add IBPB on VMEXIT +- x86/srso: Add IBPB +- x86/srso: Add SRSO_NO support +- x86/srso: Add IBPB_BRTYPE support +- x86/srso: Add a Speculative RAS Overflow mitigation +- x86/cpu, kvm: Add support for CPUID_80000021_EAX +- x86/bugs: Increase the x86 bugs vector size to two u32s +- tools headers cpufeatures: Sync with the kernel sources +- !2390 Backport 5.10.174 - 5.10.175 LTS patches from upstream. +- s390/dasd: add missing discipline function +- KVM: VMX: Fix crash due to uninitialized current_vmcs +- KVM: VMX: Introduce vmx_msr_bitmap_l01_changed() helper +- KVM: nVMX: Don't use Enlightened MSR Bitmap for L3 +- UML: define RUNTIME_DISCARD_EXIT +- sh: define RUNTIME_DISCARD_EXIT +- s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 +- powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds +- powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT +- arch: fix broken BuildID for arm64 and riscv +- ext4: block range must be validated before use in ext4_mb_clear_bb() +- ext4: add strict range checks while freeing blocks +- ext4: add ext4_sb_block_valid() refactored out of ext4_inode_block_valid() +- ext4: refactor ext4_free_blocks() to pull out ext4_mb_clear_bb() +- drm/i915: Don't use BAR mappings for ring buffers with LLC +- skbuff: Fix nfct leak on napi stolen +- media: rc: gpio-ir-recv: add remove function +- media: ov5640: Fix analogue gain control +- scripts: handle BrokenPipeError for python scripts +- PCI: Add SolidRun vendor ID +- macintosh: windfarm: Use unsigned type for 1-bit bitfields +- alpha: fix R_ALPHA_LITERAL reloc for large modules +- powerpc/kcsan: Exclude udelay to prevent recursive instrumentation +- MIPS: Fix a compilation issue +- block, bfq: fix uaf for bfqq in bic_set_bfqq() +- block, bfq: replace 0/1 with false/true in bic apis +- block/bfq-iosched.c: use "false" rather than "BLK_RW_ASYNC" +- block, bfq: fix uaf for bfqq in bfq_exit_icq_bfqq +- block, bfq: fix possible uaf for 'bfqq->bic' +- tpm/eventlog: Don't abort tpm_read_log on faulty ACPI address +- watch_queue: fix IOC_WATCH_QUEUE_SET_SIZE alloc error paths +- iommu/amd: Add a length limitation for the ivrs_acpihid command-line parameter +- ext4: Fix deadlock during directory rename +- RISC-V: Don't check text_mutex during stop_machine +- riscv: Use READ_ONCE_NOCHECK in imprecise unwinding stack mode +- SUNRPC: Fix a server shutdown leak +- net/smc: fix fallback failed while sendmsg with fastopen +- platform: x86: MLX_PLATFORM: select REGMAP instead of depending on it +- scsi: megaraid_sas: Update max supported LD IDs to 240 +- net: ethernet: mtk_eth_soc: fix RX data corruption issue +- btf: fix resolving BTF_KIND_VAR after ARRAY, STRUCT, UNION, PTR +- netfilter: tproxy: fix deadlock due to missing BH disable +- netfilter: ctnetlink: revert to dumping mark regardless of event type +- bnxt_en: Avoid order-5 memory allocation for TPA data +- net: phylib: get rid of unnecessary locking +- net: stmmac: add to set device wake up flag when stmmac init phy +- net: caif: Fix use-after-free in cfusbl_device_notify() +- net: lan78xx: fix accessing the LAN7800's internal phy specific registers from the MAC driver +- net: usb: lan78xx: Remove lots of set but unused 'ret' variables +- selftests: nft_nat: ensuring the listening side is up before starting the client +- ila: do not generate empty messages in ila_xlat_nl_cmd_get_mapping() +- powerpc: dts: t1040rdb: fix compatible string for Rev A boards +- nfc: fdp: add null check of devm_kmalloc_array in fdp_nci_i2c_read_device_properties +- bgmac: fix *initial* chip reset to support BCM5358 +- drm/msm/a5xx: fix context faults during ring switch +- drm/msm/a5xx: fix the emptyness check in the preempt code +- drm/msm: Document and rename preempt_lock +- drm/msm/a5xx: fix setting of the CP_PREEMPT_ENABLE_LOCAL register +- drm/msm: Fix potential invalid ptr free +- drm/nouveau/kms/nv50: fix nv50_wndw_new_ prototype +- drm/nouveau/kms/nv50-: remove unused functions +- ext4: Fix possible corruption when moving a directory +- scsi: core: Remove the /proc/scsi/${proc_name} directory earlier +- riscv: Add header include guards to insn.h +- riscv: Avoid enabling interrupts in die() +- RISC-V: Avoid dereferening NULL regs in die() +- arm64: efi: Make efi_rt_lock a raw_spinlock +- iommu/vt-d: Fix PASID directory pointer coherency +- iommu/vt-d: Fix lockdep splat in intel_pasid_get_entry() +- irqdomain: Fix mapping-creation race +- irqdomain: Refactor __irq_domain_alloc_irqs() +- irqdomain: Look for existing mapping only once +- irq: Fix typos in comments +- udf: Fix off-by-one error when discarding preallocation +- nfc: change order inside nfc_se_io error path +- ext4: zero i_disksize when initializing the bootloader inode +- ext4: fix WARNING in ext4_update_inline_data +- ext4: move where set the MAY_INLINE_DATA flag is set +- ext4: fix RENAME_WHITEOUT handling for inline directories +- ext4: fix cgroup writeback accounting with fs-layer encryption +- drm/connector: print max_requested_bpc in state debugfs +- drm/amdgpu: fix error checking in amdgpu_read_mm_registers for soc15 +- x86/CPU/AMD: Disable XSAVES on AMD family 0x17 +- fork: allow CLONE_NEWTIME in clone3 flags +- fs: prevent out-of-bounds array speculation when closing a file descriptor +- staging: rtl8192e: Remove call_usermodehelper starting RadioPower.sh +- staging: rtl8192e: Remove function ..dm_check_ac_dc_power calling a script +- wifi: cfg80211: Partial revert "wifi: cfg80211: Fix use after free for wext" +- !2313 fixed the repeated setting logic of memcg_swap_qos_enable +- uacce: use sysfs_emit instead of sprintf +- uacce: remove uacce_vma_fault +- !2384 netfilter: nf_tables: disallow rule removal from chain binding +- netfilter: nf_tables: disallow rule removal from chain binding +- !1931 Backport 5.10.173 LTS patches from upstream. +- !2383 nf_table LTS +- netfilter: nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID +- netfilter: nf_tables: skip bound chain on rule flush +- netfilter: nf_tables: skip immediate deactivate in _PREPARE_ERROR +- netfilter: nf_tables: unbind non-anonymous set if rule construction fails +- netfilter: nf_tables: drop map element references from preparation phase +- netfilter: nftables: rename set element data activation/deactivation functions +- netfilter: nf_tables: reject unbound chain set before commit phase +- netfilter: nf_tables: reject unbound anonymous set before commit phase +- netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain +- netfilter: nf_tables: fix chain binding transaction logic +- netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE +- netfilter: nf_tables: use net_generic infra for transaction data +- Revert "netfilter: nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID" +- Revert "netfilter: nf_tables: skip bound chain on rule flush" +- Revert "netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE" +- Revert "netfilter: nf_tables: fix chain binding transaction logic" +- Revert "netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain" +- Revert "netfilter: nf_tables: skip immediate deactivate in _PREPARE_ERROR" +- Revert "netfilter: nf_tables: unbind non-anonymous set if rule construction fails" +- !2350 UB driver: add implementation of urma ubcore and uburma module +- DRM: Add documentation for phytium dc +- DRM: Phytium display DRM driver +- !2359 netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c +- usb: gadget: uvc: fix missing mutex_unlock() if kstrtou8() fails +- scsi: mpt3sas: Remove usage of dma_get_required_mask() API +- scsi: mpt3sas: re-do lost mpt3sas DMA mask fix +- scsi: mpt3sas: Don't change DMA mask while reallocating pools +- Revert "scsi: mpt3sas: Fix return value check of dma_get_required_mask()" +- media: uvcvideo: Fix race condition with usb_kill_urb +- media: uvcvideo: Provide sync and async uvc_ctrl_status_event +- Bluetooth: hci_sock: purge socket queues in the destruct() callback +- drm/display/dp_mst: Fix down message handling after a packet reception error +- drm/display/dp_mst: Fix down/up message handling after sink disconnect +- x86/resctl: fix scheduler confusion with 'current' +- x86/resctrl: Apply READ_ONCE/WRITE_ONCE to task_struct.{rmid,closid} +- net: tls: avoid hanging tasks on the tx_lock +- soundwire: cadence: Drain the RX FIFO after an IO timeout +- soundwire: cadence: Remove wasted space in response_buf +- phy: rockchip-typec: Fix unsigned comparison with less than zero +- PCI: loongson: Add more devices that need MRRS quirk +- kernel/fail_function: fix memory leak with using debugfs_lookup() +- PCI: Take other bus devices into account when distributing resources +- PCI: Align extra resources for hotplug bridges properly +- usb: gadget: uvc: Make bSourceID read/write +- usb: uvc: Enumerate valid values for color matching +- USB: ene_usb6250: Allocate enough memory for full object +- usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math +- iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_config_word() +- iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_status_word() +- tools/iio/iio_utils:fix memory leak +- mei: bus-fixup:upon error print return values of send and receive +- serial: sc16is7xx: setup GPIO controller later in probe +- tty: serial: fsl_lpuart: disable the CTS when send break signal +- staging: emxx_udc: Add checks for dma_alloc_coherent() +- media: uvcvideo: Silence memcpy() run-time false positive warnings +- media: uvcvideo: Quirk for autosuspend in Logitech B910 and C910 +- media: uvcvideo: Handle errors from calls to usb_string +- media: uvcvideo: Handle cameras with invalid descriptors +- IB/hfi1: Update RMT size calculation +- mfd: arizona: Use pm_runtime_resume_and_get() to prevent refcnt leak +- bootconfig: Increase max nodes of bootconfig from 1024 to 8192 for DCC support +- firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3 +- tracing: Add NULL checks for buffer in ring_buffer_free_read_page() +- thermal: intel: BXT_PMIC: select REGMAP instead of depending on it +- thermal: intel: quark_dts: fix error pointer dereference +- ASoC: zl38060 add gpiolib dependency +- ASoC: zl38060: Remove spurious gpiolib select +- ASoC: adau7118: don't disable regulators on device unbind +- scsi: ipr: Work around fortify-string warning +- rtc: sun6i: Always export the internal oscillator +- tcp: tcp_check_req() can be called from process context +- ARM: dts: spear320-hmi: correct STMPE GPIO compatible +- net/sched: act_sample: fix action bind logic +- nfc: fix memory leak of se_io context in nfc_genl_se_io +- net/mlx5: Geneve, Fix handling of Geneve object id as error code +- 9p/rdma: unmap receive dma buffer in rdma_request()/post_recv() +- 9p/xen: fix connection sequence +- 9p/xen: fix version parsing +- net: fix __dev_kfree_skb_any() vs drop monitor +- sctp: add a refcnt in sctp_stream_priorities to avoid a nested loop +- netfilter: ebtables: fix table blob use-after-free +- netfilter: ctnetlink: fix possible refcount leak in ctnetlink_create_conntrack() +- watchdog: pcwd_usb: Fix attempting to access uninitialized memory +- watchdog: Fix kmemleak in watchdog_cdev_register +- watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path +- x86: um: vdso: Add '%rcx' and '%r11' to the syscall clobber list +- ubi: Fix possible null-ptr-deref in ubi_free_volume() +- ubifs: Fix memory leak in alloc_wbufs() +- ubifs: Fix build errors as symbol undefined +- um: vector: Fix memory leak in vector_config +- fs: f2fs: initialize fsdata in pagecache_write() +- f2fs: use memcpy_{to,from}_page() where possible +- pwm: stm32-lp: fix the check on arr and cmp registers update +- pwm: sifive: Always let the first pwm_apply_state succeed +- pwm: sifive: Reduce time the controller lock is held +- objtool: Fix memory leak in create_static_call_sections() +- fs/jfs: fix shift exponent db_agl2size negative +- kbuild: Port silent mode detection to future gnu make. +- pinctrl: rockchip: fix reading pull type on rk3568 +- pinctrl: rockchip: fix mux route data for rk3568 +- wifi: ath9k: use proper statements in conditionals +- arm64: dts: qcom: ipq8074: fix Gen2 PCIe QMP PHY +- drm/edid: fix AVI infoframe aspect ratio handling +- drm/radeon: Fix eDP for single-display iMac11,2 +- drm/i915/quirks: Add inverted backlight quirk for HP 14-r206nv +- vfio/type1: prevent underflow of locked_vm via exec() +- PCI: Avoid FLR for AMD FCH AHCI adapters +- PCI: hotplug: Allow marking devices as disconnected during bind/unbind +- PCI/PM: Observe reset delay irrespective of bridge_d3 +- riscv: jump_label: Fixup unaligned arch_static_branch function +- scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses +- scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process() +- scsi: ses: Don't attach if enclosure has no components +- scsi: qla2xxx: Fix erroneous link down +- scsi: qla2xxx: Fix DMA-API call trace on NVMe LS requests +- scsi: qla2xxx: Fix link failure in NPIV environment +- ktest.pl: Add RUN_TIMEOUT option with default unlimited +- ktest.pl: Fix missing "end_monitor" when machine check fails +- ktest.pl: Give back console on Ctrt^C on monitor +- mm/thp: check and bail out if page in deferred queue already +- mm: memcontrol: deprecate charge moving +- docs: gdbmacros: print newest record +- remoteproc/mtk_scp: Move clk ops outside send_lock +- media: ipu3-cio2: Fix PM runtime usage_count in driver unbind +- mips: fix syscall_get_nr +- dax/kmem: Fix leak of memory-hotplug resources +- alpha: fix FEN fault handling +- rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails +- ARM: dts: exynos: correct TMU phandle in Odroid HC1 +- ARM: dts: exynos: correct TMU phandle in Odroid XU +- ARM: dts: exynos: correct TMU phandle in Exynos5250 +- ARM: dts: exynos: correct TMU phandle in Odroid XU3 family +- ARM: dts: exynos: correct TMU phandle in Exynos4 +- ARM: dts: exynos: correct TMU phandle in Exynos4210 +- dm flakey: don't corrupt the zero page +- dm flakey: fix logic when corrupting a bio +- thermal: intel: powerclamp: Fix cur_state for multi package system +- wifi: cfg80211: Fix use after free for wext +- wifi: rtl8xxxu: Use a longer retry limit of 48 +- dm: add cond_resched() to dm_wq_work() +- mtd: spi-nor: Fix shift-out-of-bounds in spi_nor_set_erase_type +- ext4: refuse to create ea block when umounted +- ext4: optimize ea_inode block expansion +- ALSA: hda/realtek: Add quirk for HP EliteDesk 800 G6 Tower PC +- ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls() +- io_uring/poll: allow some retries for poll triggering spuriously +- io_uring: remove MSG_NOSIGNAL from recvmsg +- io_uring/rsrc: disallow multi-source reg buffers +- io_uring: add a conditional reschedule to the IOPOLL cancelation loop +- io_uring: mark task TASK_RUNNING before handling resume/task work +- io_uring: handle TIF_NOTIFY_RESUME when checking for task_work +- irqdomain: Drop bogus fwspec-mapping error handling +- irqdomain: Fix disassociation race +- irqdomain: Fix association race +- ima: Align ima_file_mmap() parameters with mmap_file LSM hook +- brd: return 0/-error from brd_insert_page() +- Documentation/hw-vuln: Document the interaction between IBRS and STIBP +- x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter +- x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range +- x86/kprobes: Fix __recover_optprobed_insn check optimizing logic +- x86/reboot: Disable SVM, not just VMX, when stopping CPUs +- x86/reboot: Disable virtualization in an emergency if SVM is supported +- x86/crash: Disable virt in core NMI crash handler to avoid double shootdown +- x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows) +- KVM: s390: disable migration mode when dirty tracking is disabled +- KVM: x86: Inject #GP if WRMSR sets reserved bits in APIC Self-IPI +- KVM: Destroy target device if coalesced MMIO unregistration fails +- udf: Fix file corruption when appending just after end of preallocated extent +- udf: Detect system inodes linked into directory hierarchy +- udf: Preserve link count of system files +- udf: Do not update file length for failed writes to inline files +- udf: Do not bother merging very long extents +- udf: Truncate added extents on failed expansion +- ocfs2: fix non-auto defrag path not working issue +- ocfs2: fix defrag path triggering jbd2 ASSERT +- f2fs: fix cgroup writeback accounting with fs-layer encryption +- f2fs: fix information leak in f2fs_move_inline_dirents() +- exfat: fix inode->i_blocks for non-512 byte sector size device +- exfat: redefine DIR_DELETED as the bad cluster number +- exfat: fix unexpected EOF while reading dir +- exfat: fix reporting fs error when reading dir beyond EOF +- hfs: fix missing hfs_bnode_get() in __hfs_bnode_create +- ARM: dts: exynos: correct HDMI phy compatible in Exynos4 +- cifs: Fix uninitialized memory read in smb3_qfs_tcon() +- s390/kprobes: fix current_kprobe never cleared after kprobes reenter +- s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler +- s390: discard .interp section +- s390/extmem: return correct segment type in __segment_load() +- ipmi_ssif: Rename idle state and check +- rtc: pm8xxx: fix set-alarm race +- firmware: coreboot: framebuffer: Ignore reserved pixel color bits +- wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu +- nfsd: zero out pointers after putting nfsd_files on COPY setup error +- dm cache: add cond_resched() to various workqueue loops +- dm thin: add cond_resched() to various workqueue loops +- drm: panel-orientation-quirks: Add quirk for Lenovo IdeaPad Duet 3 10IGL5 +- HID: logitech-hidpp: Don't restart communication if not necessary +- pinctrl: at91: use devm_kasprintf() to avoid potential leaks +- hwmon: (coretemp) Simplify platform device handling +- gfs2: Improve gfs2_make_fs_rw error handling +- regulator: s5m8767: Bounds check id indexing into arrays +- regulator: max77802: Bounds check regulator id against opmode +- ASoC: kirkwood: Iterate over array indexes instead of using pointer math +- docs/scripts/gdb: add necessary make scripts_gdb step +- drm/msm/dsi: Add missing check for alloc_ordered_workqueue +- drm: amd: display: Fix memory leakage +- drm/radeon: free iio for atombios when driver shutdown +- drm/tiny: ili9486: Do not assume 8-bit only SPI controllers +- HID: Add Mapping for System Microphone Mute +- drm/omap: dsi: Fix excessive stack usage +- drm/amd/display: Fix potential null-deref in dm_resume +- Bluetooth: btusb: Add VID:PID 13d3:3529 for Realtek RTL8821CE +- PM: EM: fix memory leak with using debugfs_lookup() +- uaccess: Add minimum bounds check on kernel buffer size +- coda: Avoid partial allocation of sig_inputArgs +- net/mlx5: fw_tracer: Fix debug print +- ACPI: video: Fix Lenovo Ideapad Z570 DMI match +- wifi: mt76: dma: free rx_head in mt76_dma_rx_cleanup +- m68k: Check syscall_trace_enter() return code +- net: bcmgenet: Add a check for oversized packets +- ACPI: Don't build ACPICA with '-Os' +- ice: add missing checks for PF vsi type +- inet: fix fast path in __inet_hash_connect() +- wifi: mt7601u: fix an integer underflow +- wifi: brcmfmac: ensure CLM version is null-terminated to prevent stack-out-of-bounds +- x86/bugs: Reset speculation control settings on init +- timers: Prevent union confusion from unexpected restart_syscall() +- thermal: intel: Fix unsigned comparison with less than zero +- wifi: ath11k: debugfs: fix to work with multiple PCI devices +- rcu-tasks: Make rude RCU-Tasks work well with CPU hotplug +- rcu: Suppress smp_processor_id() complaint in synchronize_rcu_expedited_wait() +- rcu: Make RCU_LOCKDEP_WARN() avoid early lockdep checks +- wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds() +- wifi: ath9k: Fix use-after-free in ath9k_hif_usb_disconnect() +- blk-iocost: fix divide by 0 error in calc_lcoefs() +- ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy +- udf: Define EFSCORRUPTED error code +- rpmsg: glink: Avoid infinite loop on intent for missing channel +- media: saa7134: Use video_unregister_device for radio_dev +- media: i2c: ov7670: 0 instead of -EINVAL was returned +- media: i2c: imx219: Fix binning for RAW8 capture +- media: i2c: imx219: Split common registers from mode tables +- media: i2c: imx219: remove redundant writes +- media: i2c: ov772x: Fix memleak in ov772x_probe() +- media: ov5675: Fix memleak in ov5675_init_controls() +- media: ov2740: Fix memleak in ov2740_init_controls() +- media: max9286: Fix memleak in max9286_v4l2_register() +- builddeb: clean generated package content +- powerpc: Remove linker flag from KBUILD_AFLAGS +- media: platform: ti: Add missing check for devm_regulator_get +- media: ti: cal: fix possible memory leak in cal_ctx_create() +- remoteproc: qcom_q6v5_mss: Use a carveout to authenticate modem headers +- Input: iqs269a - do not poll during ATI +- Input: iqs269a - do not poll during suspend or resume +- alpha/boot/tools/objstrip: fix the check for ELF header +- vdpa/mlx5: Don't clear mr struct on destroy MR +- MIPS: vpe-mt: drop physical_memsize +- MIPS: SMP-CPS: fix build error when HOTPLUG_CPU not set +- powerpc/eeh: Set channel state after notifying the drivers +- powerpc/eeh: Small refactor of eeh_handle_normal_event() +- powerpc/rtas: ensure 4KB alignment for rtas_data_buf +- powerpc/rtas: make all exports GPL +- powerpc/pseries/lparcfg: add missing RTAS retry status handling +- powerpc/pseries/lpar: add missing RTAS retry status handling +- powerpc/perf/hv-24x7: add missing RTAS retry status handling +- clk: Honor CLK_OPS_PARENT_ENABLE in clk_core_is_enabled() +- powerpc/powernv/ioda: Skip unallocated resources when mapping to PE +- clk: qcom: gpucc-sdm845: fix clk_dis_wait being programmed for CX GDSC +- clk: qcom: gpucc-sc7180: fix clk_dis_wait being programmed for CX GDSC +- Input: ads7846 - don't check penirq immediately for 7845 +- Input: ads7846 - always set last command to PWRDOWN +- Input: ads7846 - convert to one message +- Input: ads7846 - convert to full duplex +- Input: ads7846 - don't report pressure for ads7845 +- clk: imx: avoid memory leak +- clk: renesas: cpg-mssr: Remove superfluous check in resume code +- clk: renesas: cpg-mssr: Fix use after free if cpg_mssr_common_init() failed +- linux/kconfig.h: replace IF_ENABLED() with PTR_IF() in +- Input: iqs269a - configure device with a single block write +- Input: iqs269a - increase interrupt handler return delay +- Input: iqs269a - drop unused device node references +- mtd: rawnand: sunxi: Fix the size of the last OOB region +- RISC-V: fix funct4 definition for c.jalr in parse_asm.h +- clk: qcom: gcc-qcs404: fix names of the DSI clocks used as parents +- clk: qcom: gcc-qcs404: disable gpll[04]_out_aux parents +- mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read() +- objtool: add UACCESS exceptions for __tsan_volatile_read/write +- printf: fix errname.c list +- selftests/ftrace: Fix bash specific "==" operator +- sparc: allow PM configs for sparc32 COMPILE_TEST +- perf tools: Fix auto-complete on aarch64 +- leds: led-core: Fix refcount leak in of_led_get() +- perf llvm: Fix inadvertent file creation +- gfs2: jdata writepage fix +- cifs: Fix warning and UAF when destroy the MR list +- cifs: Fix lost destroy smbd connection when MR allocate failed +- nfsd: fix race to check ls_layouts +- hid: bigben_probe(): validate report count +- HID: bigben: use spinlock to safely schedule workers +- HID: bigben_worker() remove unneeded check on report_field +- HID: bigben: use spinlock to protect concurrent accesses +- ASoC: soc-dapm.h: fixup warning struct snd_pcm_substream not declared +- spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one() +- NFS: fix disabling of swap +- nfs4trace: fix state manager flag printing +- NFSv4: keep state manager thread active if swap is enabled +- NFS: Fix up handling of outstanding layoutcommit in nfs_update_inode() +- dm: remove flush_scheduled_work() during local_exit() +- ASoC: tlv320adcx140: fix 'ti,gpio-config' DT property init +- hwmon: (mlxreg-fan) Return zero speed for broken fan +- spi: bcm63xx-hsspi: Fix multi-bit mode setting +- spi: bcm63xx-hsspi: fix pm_runtime +- scsi: aic94xx: Add missing check for dma_map_single() +- scsi: mpt3sas: Fix a memory leak +- drm/amdgpu: fix enum odm_combine_mode mismatch +- hwmon: (ltc2945) Handle error case in ltc2945_value_store +- ASoC: dt-bindings: meson: fix gx-card codec node regex +- ASoC: mchp-spdifrx: Fix uninitialized use of mr in mchp_spdifrx_hw_params() +- ASoC: mchp-spdifrx: disable all interrupts in mchp_spdifrx_dai_remove() +- ASoC: mchp-spdifrx: fix controls that works with completion mechanism +- ASoC: mchp-spdifrx: fix return value in case completion times out +- ASoC: atmel: fix spelling mistakes +- ASoC: mchp-spdifrx: fix controls which rely on rsr register +- spi: dw_bt1: fix MUX_MMIO dependencies +- gpio: vf610: connect GPIO label to dev name +- ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress() +- drm/mediatek: Clean dangling pointer on bind error path +- drm/mediatek: mtk_drm_crtc: Add checks for devm_kcalloc +- drm/mediatek: Drop unbalanced obj unref +- drm/mediatek: Use NULL instead of 0 for NULL pointer +- drm/mediatek: dsi: Reduce the time of dsi from LP11 to sending cmd +- gpu: host1x: Don't skip assigning syncpoints to channels +- pinctrl: mediatek: Initialize variable *buf to zero +- pinctrl: mediatek: Initialize variable pullen and pullup to zero +- pinctrl: bcm2835: Remove of_node_put() in bcm2835_of_gpio_ranges_fallback() +- drm/msm/mdp5: Add check for kzalloc +- drm/msm/dpu: Add check for cstate +- drm/msm: use strscpy instead of strncpy +- drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness +- drm/bridge: lt9611: pass a pointer to the of node +- drm/bridge: lt9611: fix clock calculation +- drm/bridge: lt9611: fix programming of video modes +- drm/bridge: lt9611: fix polarity programming +- drm/bridge: lt9611: fix HPD reenablement +- drm/bridge: lt9611: fix sleep mode setup +- drm/msm/dpu: Disallow unallocated resources to be returned +- ALSA: hda/ca0132: minor fix for allocation size +- drm/msm/adreno: Fix null ptr access in adreno_gpu_cleanup() +- ASoC: fsl_sai: initialize is_dsp_mode flag +- drm/vc4: hdmi: Correct interlaced timings again +- drm/vc4: hvs: Fix colour order for xRGB1555 on HVS5 +- drm/vc4: hvs: Set AXI panic modes +- pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups +- pinctrl: rockchip: do coding style for mux route struct +- pinctrl: rockchip: add support for rk3568 +- pinctrl: stm32: Fix refcount leak in stm32_pctrl_get_irq_domain +- pinctrl: qcom: pinctrl-msm8976: Correct function names for wcss pins +- drm/msm/hdmi: Add missing check for alloc_ordered_workqueue +- gpu: ipu-v3: common: Add of_node_put() for reference returned by of_graph_get_port_by_id() +- drm: tidss: Fix pixel format definition +- drm/vc4: dpi: Fix format mapping for RGB565 +- drm/vc4: dpi: Add option for inverting pixel clock and output enable +- drm/vkms: Fix null-ptr-deref in vkms_release() +- drm/bridge: megachips: Fix error handling in i2c_register_driver() +- drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC +- drm/fourcc: Add missing big-endian XRGB1555 and RGB565 formats +- drm: Fix potential null-ptr-deref due to drmm_mode_config_init() +- sefltests: netdevsim: wait for devlink instance after netns removal +- selftest: fib_tests: Always cleanup before exit +- net: bcmgenet: fix MoCA LED control +- l2tp: Avoid possible recursive deadlock in l2tp_tunnel_register() +- selftests/net: Interpret UDP_GRO cmsg data as an int value +- irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts +- irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts +- bpf: Fix global subprog context argument resolution logic +- can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a bus error +- thermal/drivers/hisi: Drop second sensor hi3660 +- wifi: mac80211: make rate u32 in sta_set_rate_info_rx() +- crypto: crypto4xx - Call dma_unmap_page when done +- selftests/bpf: Fix out-of-srctree build +- wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize() +- wifi: iwl4965: Add missing check for create_singlethread_workqueue() +- wifi: iwl3945: Add missing check for create_singlethread_workqueue +- RISC-V: time: initialize hrtimer based broadcast clock event device +- m68k: /proc/hardware should depend on PROC_FS +- crypto: rsa-pkcs1pad - Use akcipher_request_complete +- rds: rds_rm_zerocopy_callback() correct order for list_add_tail() +- libbpf: Fix alen calculation in libbpf_nla_dump_errormsg() +- Bluetooth: L2CAP: Fix potential user-after-free +- OPP: fix error checking in opp_migrate_dentry() +- s390/vmem: fix empty page tables cleanup under KASAN +- irqchip/ti-sci: Fix refcount leak in ti_sci_intr_irq_domain_probe +- irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe +- irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains +- irqchip: Fix refcount leak in platform_irqchip_probe +- net/mlx5: Enhance debug print in page allocation failure +- bpftool: profile online CPUs instead of possible +- crypto: ccp - Flush the SEV-ES TMR memory before giving it to firmware +- crypto: ccp - Refactor out sev_fw_alloc() +- leds: led-class: Add missing put_device() to led_put() +- crypto: xts - Handle EBUSY correctly +- net: ethernet: ti: add missing of_node_put before return +- net: ethernet: ti: am65-cpsw: handle deferred probe with dev_err_probe() +- net: ethernet: ti: am65-cpsw: fix tx csum offload for multi mac mode +- ub: fix warning happened in compilation +- ring-buffer: Do not attempt to read past "commit" +- ring-buffer: Do not swap cpu_buffer during resize process +- !2258 ext4: do not mark inode dirty every time when appending using delalloc +- !2305 drm/inspur: fix compile warning +- perf/smmuv3: Add MODULE_ALIAS for module auto loading +- perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09 +- Revert "perf/smmuv3: Enable HiSilicon Erratum quirk" +- ipv4: fix null-deref in ipv4_link_failure +- !2255 Sync the commit "irqchip/gicv3-its: Add workaround for hip09 ITS erratum 162100801" from 22.03-SP2 to OLK-5.10 +- !2323 net/sched: Retire rsvp classifier +- !2347 RDMA/irdma: Prevent zero-length STAG registration +- netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c +- ub: ubcore add tp-related process in jetty implements +- ub: uburma query vf related attributes, then store in cdev. +- ub: uburma query upi, then store in cdev. +- ub: uburma support query vf status and write in cdev +- ub: ubcore add set upi and add/delete ueid api impls +- ub: ubcore add attr queried of query res cmd. +- ub: uburma add cmd user control implementation. +- ub: uburma add cmd import/unimport segment implementation. +- ub: uburma add cmd register/unregister segment implementation. +- ub: uburma add cmd alloc/free key id implementation. +- ub: ubcore add data plane ops api. +- ub: ubcore add import/unimport seg api. +- ub: ubcore add register/unregister seg api. +- ub: ubcore add alloc and free key id api. +- ub: ubcore add cmd config and show utp implementation. +- ub: uburma add cmd bind/unbind jetty implementation. +- ub: uburma add cmd advise/unadvise jetty implementation. +- ub: uburma add cmd advise/unadvise jfr implementation. +- ub: ubcore add bind and unbind jetty api. +- ub: ubcore add advise and unadvise jetty api. +- ub: ubcore add advise and unadvise jfr api. +- ub: ubcore add config and show utp api. +- ub: ubcore add implements of create and destroy vtp +- ub: ubcore add bind and unbind tp api +- ub: ubcore add unadivse tp api +- ub: ubcore add restore tp api +- ub: ubcore add enable tp impls +- ub: ubcore add tp request and response handle in netlink +- ub: ubcore add handle restore tp req +- ub: ubcore add handle delete tp req +- ub: ubcore add modify target tp in advise tp process +- ub: ubcore add handle create tp req +- ub: ubcore add create and query tp implements. +- ub: ubcore add nl_send_wait api +- ub: ubcore add advise tp api process +- ub: ubcore add tp table ops api +- ub: ubcore add create/delete tp table api +- ub: uburma add cmd create jfce implementation. +- ub: uburma add cmd import/unimport jetty implementation. +- ub: uburma add cmd modify/delete jetty implementation. +- ub: uburma add cmd create jetty implementation. +- ub: uburma add cmd import/unimport jfr implementation. +- ub: uburma add cmd modify/delete jfc implementation. +- ub: uburma add cmd create jfc implementation. +- ub: uburma add cmd modify/delete jfr implementation. +- ub: uburma add cmd create jfr implementation. +- ub: uburma add cmd create/delete jfs implementation. +- ub: uburma add cmd create/delete/ctx implementation. +- ub: uburma add ioctl file ops impls for jfae event. +- ub: uburma add ioctl file ops impls for jfce event. +- ub: uburma add poll and release file ops impls for jfce and jfae event. +- ub: uburma add jfae-related event api implementation. +- ub: uburma add jfce-related event api implementation. +- ub: uburma add jfc/jfr/jfs/jetty/tjfr/tjetty uobj implementation. +- ub: uburma add jfce and jfae uobj implementation. +- ub: uburma add jetty and event related uobj def and event api def +- ub: ubcore add event api and add jetty and event api impls to compile +- ub: ubcore add find jetty/jfr/jfs/jfc and user ctl api impls +- ub: ubcore add import/unimport jetty/jfr api impls +- ub: ubcore add query/modify/flush jetty api impls +- ub: ubcore add create/delete jetty api impls +- ub: ubcore add create/query/modify/delete jfr api impls +- ub: ubcore add query/modify/flush jfs api impls +- ub: ubcore add create/delete jfs api impls +- ub: ubcore add create/modify/delete jfc api impls +- ub: ubcore add query jetty resources impl in query_res +- ub: ubcore add query resources impl in ubcore_main +- ub: add jetty-related device attributes, and store in cdev +- ub: add device attr feature, max jetty to query, and store in cdev +- ub: ubcore add jetty, tjetty, jetty id definition. +- ub: ubcore add jfc, jfr, jfs and event definition. +- ub: uburma query guid, trans type and driver name, then store in cdev. +- ub: uburma query active width and mtu, then store in cdev. +- ub: uburma query max mtu, stat and speed attrs, then store in cdev. +- ub: uburma support query port status and write in cdev +- ub: ubcore provide query resources ops +- ub: ubcore provide query device status ops +- ub: ubcore provide add and delete eid ops +- ub: add advanced hash table ops and add hash table into ubcore init process +- ub: add hash table basic function in ubcore +- ub: uburma add uobj init and exit process in uburma open and close +- ub: add idr impl of uobj api in uburma +- ub: add fd impl of uobj api in uburma +- ub: provide basic ops uobj_lookup_get and put for uobj. +- ub: add uobj basic function in uburma to manage resource release process +- ub: add mmap ops support in ubcore and uburma +- ub: uburma support open/release file ops +- ub: init uburma cmd function that support handle ioctl from user mode. +- RDMA/irdma: Prevent zero-length STAG registration +- !2307 Add UB driver,Initialize the UBCORE and UBURMA modules in the URMA subsystem, and add the data and API definition on which the hardware driver depends. +- xfs: update the last_sync_lsn with ctx start lsn +- xfs: shutdown xfs once inode double free +- xfs: fix off-by-one-block in xfs_discard_folio() +- xfs: xfs_bmap_punch_delalloc_range() should take a byte range +- iomap: buffered write failure should not truncate the page cache +- xfs,iomap: move delalloc punching to iomap +- xfs: use byte ranges for write cleanup ranges +- xfs: punching delalloc extents on write failure is racy +- xfs: longest free extent no need consider postalloc +- xfs: fix xfs shutdown since we reserve more blocks in agfl fixup +- xfs: block reservation too large for minleft allocation +- xfs: set minleft correctly for randomly sparse inode allocations +- xfs: shutdown to ensure submits buffers on LSN boundaries +- xfs: don't verify agf length when log recovery +- xfs: Remove redundant assignment to busy +- xfs: remove redundant pointer lip +- xfs: remove redundant initializations of pointers drop_leaf and save_leaf +- xfs: xfs_trans_cancel() path must check for log shutdown +- xfs: fix bounds check in xfs_defer_agfl_block() +- xfs: AGF length has never been bounds checked +- xfs: journal geometry is not properly bounds checked +- xfs: don't block in busy flushing when freeing extents +- xfs: allow extent free intents to be retried +- xfs: pass alloc flags through to xfs_extent_busy_flush() +- Revert "xfs: propagate the return value of xfs_log_force() to avoid soft lockup" +- xfs: use deferred frees for btree block freeing +- xfs: don't reverse order of items in bulk AIL insertion +- xfs: validate block number being freed before adding to xefi +- xfs: validity check agbnos on the AGFL +- xfs: pass xfs_extent_free_item directly through the log intent code +- xfs: remove unused parameter from refcount code +- xfs: reduce the size of struct xfs_extent_free_item +- xfs: rename xfs_bmap_add_free to xfs_free_extent_later +- xfs: create slab caches for frequently-used deferred items +- xfs: compact deferred intent item structures +- xfs: rename _zone variables to _cache +- xfs: remove kmem_zone typedef +- xfs: remove xfs_setattr_time() declaration +- xfs: use setattr_copy to set vfs inode attributes +- xfs: set prealloc flag in xfs_alloc_file_space() +- xfs: don't assert fail on perag references on teardown +- xfs: fix dir3 block read verify fail during log recover +- xfs: propagate the return value of xfs_log_force() to avoid soft lockup +- xfs: keep growfs sb log item active until ail flush success +- ub: ubcore add other ops api definition +- ub: ubcore add device attributes definition +- ub: ubcore add tp ops api definition +- ub: ubcore add dataplane type and ops api definition +- ub: ubcore add segment type and api definition +- ub: ubcore add jetty-related api definition which will be used by driver +- ub: ubcore add jetty, event and hash table definition +- ub: ubcore add get_mtu and other APIs that will be used by the driver. +- ub: support uburma to query device attr and store attrs in cdev. +- ub: add alloc/free ucontext ops in ubcore +- ub: add config device ops in ubcore +- ub: add memory map api in ubcore +- ub: support set client ctx data in ubcore +- ub: register uburma as a client of ubcore +- ub: Add register/unregister client api in ubcore +- ub: Add register device api in ubcore +- ub: init netlink in ubcore +- ub: support query stat of ubcore device +- ub: init uburma module +- ub: init ubcore module +- !2309 hns3 : Add support to query scc version +- net/sched: Retire rsvp classifier +- mm/swapfile: fixed the repeated setting logic of memcg_swap_qos_enable +- !1688 mm/ksm: Remove the ksm_merge_any status +- !2261 backport kunpeng hccs driver and enable compiling config +- !2306 [RoCE] Fix the WC cannot be polled occasionally after reseting +- net: hns3: add support to query scc version by devlink info +- soc: kunpeng_hccs: fix some sparse warnings about incorrect type +- soc: kunpeng_hccs: add MAILBOX dependency +- soc: kunpeng_hccs: fix size_t format string +- arm64: openeuler_defconfig: add Kunpeng HCCS config +- doc: soc: hisilicon: Add Kunpeng HCCS driver documentation +- soc: hisilicon: add sysfs entry to query information of HCCS +- !1448 Tracing fixes +- soc: hisilicon: Support HCCS driver on Kunpeng SoC +- RDMA/hns: Fix missing reset notification by user space driver +- RDMA/hns: Fix potential UAF after reset +- !2302 xfrm6: fix inet6_dev refcount underflow problem +- !2197 [RoCE] Support getting xrcd num from firmware;Fix incorrect post-send with direct wqe of wr-list +- drm/inspur: fix compile warning +- !2292 Backport some patch for HNS3 and revert some patch +- xfrm6: fix inet6_dev refcount underflow problem +- !2287 scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup() +- !2286 scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow +- net: hns3: add 5ms delay before clear firmware reset irq source +- net: hns3: fix fail to delete tc flower rules during reset issue +- net: hns3: only enable unicast promisc when mac table full +- net: hns3: fix GRE checksum offload issue +- net: hns3: add cmdq check for vf periodic service task +- Revert "net: hns3: only enable unicast promisc when mac table full" +- scsi: lpfc: Fix ioremap issues in lpfc_sli4_pci_mem_setup() +- scsi: lpfc: Prevent lpfc_debugfs_lockstat_write() buffer overflow +- !1972 sched/fair: fix qos_idle_h_nr_running in enqueue/dequeue +- !2280 add myself as kunpeng hccs maintainer +- !2282 sdei_watchdog: Avoid exception during sdei handler +- sdei_watchdog: Avoid exception during sdei handler +- MAINTAINERS: update openEuler/MAINTAINERS for kunpeng HCCS +- !1243 config: enable set the max iova mag size to 128 +- ext4: do not mark inode dirty every time when appending using delalloc +- irqchip/gicv3-its: Add workaround for hip09 ITS erratum 162100801 +- RDMA/hns: Fix incorrect post-send with direct wqe of wr-list +- RDMA/hns: Support get XRCD number from firmware +- Revert "RDMA/hns: Fix incorrect post-send with direct wqe of wr-list in kernel space" +- Revert "RDMA/hns: Support getting xrcd num from firmware" +- sched/fair: fix qos_idle_h_nr_running in enqueue/dequeue +- x86/microcode: Print previous version of microcode after reload +- x86: Mark stop_this_cpu() __noreturn +- x86/microcode: Replace deprecated CPU-hotplug functions. +- x86/cpu: Init AP exception handling from cpu_init_secondary() +- powercap: fix possible name leak in powercap_register_zone() +- crypto: seqiv - Handle EBUSY correctly +- crypto: essiv - Handle EBUSY correctly +- crypto: ccp - Failure on re-initialization due to duplicate sysfs filename +- ACPI: battery: Fix missing NUL-termination with large strings +- wifi: cfg80211: Fix extended KCK key length check in nl80211_set_rekey_data() +- wifi: ath11k: Fix memory leak in ath11k_peer_rx_frag_setup +- wifi: ath9k: Fix potential stack-out-of-bounds write in ath9k_wmi_rsp_callback() +- wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails +- ath9k: htc: clean up statistics macros +- ath9k: hif_usb: simplify if-if to if-else +- wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback function +- wifi: orinoco: check return value of hermes_write_wordrec() +- wifi: rtl8xxxu: Fix memory leaks with RTL8723BU, RTL8192EU +- thermal/drivers/tsens: Sort out msm8976 vs msm8956 data +- thermal/drivers/tsens: Add compat string for the qcom,msm8960 +- thermal/drivers/qcom/tsens_v1: Enable sensor 3 on MSM8976 +- thermal/drivers/tsens: Drop msm8976-specific defines +- ACPICA: nsrepair: handle cases without a return value correctly +- crypto: ccp - Avoid page allocation failure warning for SEV_GET_ID2 +- crypto: ccp - Use kzalloc for sev ioctl interfaces to prevent kernel memory leak +- crypto: ccp: Use the stack and common buffer for status commands +- crypto: ccp: Use the stack for small SEV command buffers +- lib/mpi: Fix buffer overrun when SG is too long +- rcu-tasks: Fix synchronize_rcu_tasks() VS zap_pid_ns_processes() +- rcu-tasks: Remove preemption disablement around srcu_read_[un]lock() calls +- rcu-tasks: Improve comments explaining tasks_rcu_exit_srcu purpose +- genirq: Fix the return type of kstat_cpu_irqs_sum() +- ACPICA: Drop port I/O validation for some regions +- crypto: x86/ghash - fix unaligned access in ghash_setkey() +- wifi: wl3501_cs: don't call kfree_skb() under spin_lock_irqsave() +- wifi: libertas: cmdresp: don't call kfree_skb() under spin_lock_irqsave() +- wifi: libertas: main: don't call kfree_skb() under spin_lock_irqsave() +- wifi: libertas: if_usb: don't call kfree_skb() under spin_lock_irqsave() +- wifi: libertas_tf: don't call kfree_skb() under spin_lock_irqsave() +- wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid() +- wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit() +- wifi: wilc1000: fix potential memory leak in wilc_mac_xmit() +- wifi: ipw2200: fix memory leak in ipw_wdev_init() +- wifi: ipw2x00: don't call dev_kfree_skb() under spin_lock_irqsave() +- libbpf: Fix btf__align_of() by taking into account field offsets +- wifi: rtlwifi: Fix global-out-of-bounds bug in _rtl8812ae_phy_set_txpower_limit() +- rtlwifi: fix -Wpointer-sign warning +- wifi: rtl8xxxu: don't call dev_kfree_skb() under spin_lock_irqsave() +- wifi: libertas: fix memory leak in lbs_init_adapter() +- wifi: iwlegacy: common: don't call dev_kfree_skb() under spin_lock_irqsave() +- wifi: rtlwifi: rtl8723be: don't call kfree_skb() under spin_lock_irqsave() +- wifi: rtlwifi: rtl8188ee: don't call kfree_skb() under spin_lock_irqsave() +- wifi: rtlwifi: rtl8821ae: don't call kfree_skb() under spin_lock_irqsave() +- wifi: rsi: Fix memory leak in rsi_coex_attach() +- block: bio-integrity: Copy flags when bio_integrity_payload is cloned +- x86/perf/zhaoxin: Add stepping check for ZXC +- sched/rt: pick_next_rt_entity(): check list_entry +- sched/deadline,rt: Remove unused parameter from pick_next_[rt|dl]_entity() +- s390/dasd: Fix potential memleak in dasd_eckd_init() +- s390/dasd: Prepare for additional path event handling +- blk-mq: correct stale comment of .get_budget +- blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx +- blk-mq: avoid sleep in blk_mq_alloc_request_hctx +- arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node +- ARM: dts: imx7s: correct iomuxc gpr mux controller cells +- ARM: dts: sun8i: nanopi-duo2: Fix regulator GPIO reference +- arm64: dts: renesas: beacon-renesom: Fix gpio expander reference +- arm64: dts: amlogic: meson-gxbb-kii-pro: fix led node name +- arm64: dts: amlogic: meson-gxl-s905d-phicomm-n1: fix led node name +- arm64: dts: amlogic: meson-gx-libretech-pc: fix update button name +- arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux node name +- arm64: dts: amlogic: meson-gx: add missing unit address to rng node name +- arm64: dts: amlogic: meson-gxl-s905d-sml5442tw: drop invalid clock-names property +- arm64: dts: amlogic: meson-gx: add missing SCPI sensors compatible +- arm64: dts: amlogic: meson-axg: fix SCPI clock dvfs node name +- arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name +- ARM: imx: Call ida_simple_remove() for ida_simple_get +- ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato +- arm64: dts: ti: k3-j7200: Fix wakeup pinmux range +- ARM: s3c: fix s3c64xx_set_timer_source prototype +- ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init() +- arm64: dts: meson: remove CPU opps below 1GHz for G12A boards +- arm64: dts: qcom: ipq8074: correct PCIe QMP PHY output clock names +- arm64: dts: qcom: ipq8074: fix Gen3 PCIe node +- arm64: dts: qcom: ipq8074: correct Gen2 PCIe ranges +- arm64: dts: qcom: ipq8074: fix Gen3 PCIe QMP PHY +- arm64: dts: qcom: ipq8074: fix PCIe PHY serdes size +- arm64: dts: qcom: Fix IPQ8074 PCIe PHY nodes +- arm64: dts: qcom: ipq8074: correct USB3 QMP PHY-s clock output names +- arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address +- arm64: dts: meson-g12a: Fix internal Ethernet PHY unit name +- arm64: dts: meson-gx: Fix Ethernet MAC address unit name +- arm64: dts: qcom: sc7180: correct SPMI bus address cells +- arm64: dts: qcom: sdm845-db845c: fix audio codec interrupt pin name +- arm64: dts: mediatek: mt8183: Fix systimer 13 MHz clock description +- ARM: zynq: Fix refcount leak in zynq_early_slcr_init +- arm64: dts: qcom: qcs404: use symbol names for PCIe resets +- ARM: OMAP2+: Fix memory leak in realtime_counter_init() +- powerpc/mm: Rearrange if-else block to avoid clang warning +- mm: count time in drain_all_pages during direct reclaim as memory pressure +- mm/reliable: Fix kabi change +- Enable reliable memory in openeuler x86 default config +- mm: Enable reliable memory for x86 platform +- mm/hugetlb: fix parameter passed to allocate bootmem memory +- mm/ksm: Remove the ksm_merge_any status +- arm64/mpam: implement CPU_PM notifier +- sched/fair: Remove superfluous lock section in do_sched_cfs_slack_timer() +- ftrace: Fix possible warning on checking all pages used in ftrace_process_locs() +- ftrace: Store the order of pages allocated in ftrace_page +- tracing: Fix memory leak of iter->temp when reading trace_pipe +- ring-buffer: Fix deadloop issue on reading trace_pipe +- perf auxtrace: Remove auxtrace_mmap_params__set_idx() per_cpu parameter +- perf auxtrace: Add mmap_needed to auxtrace_mmap_params +- perf auxtrace: Record whether an auxtrace mmap is needed +- libperf evlist: Add evsel as a parameter to ->idx() +- libperf evlist: Move ->idx() into mmap_per_evsel() +- libperf evlist: Remove ->idx() per_cpu parameter +- config: enable set the max iova mag size to 128 + +* Fri Sep 22 2023 Jialin Zhang - 5.10.0-161.0.0.78 +- !2269 etmem: Fixed an issue where the module reference counting is incorrect +- !2220 sched/qos: Fix warning in CPU hotplug scenarios +- !2156 drm: add inspur drm driver support +- !2256 MAINTAINERS: update openEuler/MAINTAINERS for UB and PMU +- etmem: Fixed an issue where the module reference counting is incorrect +- !2199 Not clear ATA_PFLAG_EH_PENDING and not thaw the port twice in ata_eh_reset() +- MAINTAINERS: update openEuler/MAINTAINERS for UB and PMU +- !2224 ext4: fix rec_len verify error +- !2222 Add new config 'CONFIG_EXT4_ERROR_REPORT' to control ext3/4 error reporting +- !1517 [OLK-5.10] Rework CPU capacity asymmetry detection +- !2183 livepatch/core: Fix possible issue that old function is not checked +- !2230 media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb() +- !2218 uacce: modify the configuration mode of device isolation stragety +- !2163 Fix the two problems when using binutil 2.41. +- media: ttusb-dec: fix memory leak in ttusb_dec_exit_dvb() +- !2169 net: sched: sch_qfq: Fix UAF in qfq_dequeue() +- ext4: fix rec_len verify error +- Add new config 'CONFIG_EXT4_ERROR_REPORT' to control ext3/4 error reporting +- sched/qos: Fix warning in CPU hotplug scenarios +- uacce: modify the configuration mode of device isolation stragety +- !2210 jbd2: Fix potential data lost in recovering journal raced with synchronizing fs bdev +- jbd2: Fix potential data lost in recovering journal raced with synchronizing fs bdev +- !2190 zram: correctly handle all next_arg() cases +- ata: libata-eh: do not thaw the port twice in ata_eh_reset() +- ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset() +- zram: correctly handle all next_arg() cases +- livepatch/core: Fix possible issue that old function is not checked +- !2173 ata: libahci: clear pending interrupt status +- ata: libahci: clear pending interrupt status +- !2162 zram: do not waste zram_table_entry flags bits +- net: sched: sch_qfq: Fix UAF in qfq_dequeue() +- !2153 netfilter: nftables: exthdr: fix 4-byte stack OOB write +- LoongArch: Fix module relocation error with binutils 2.41 +- LoongArch: Fix the write_fcsr() macro +- zram: do not waste zram_table_entry flags bits +- drm: add inspur drm driver support +- netfilter: nftables: exthdr: fix 4-byte stack OOB write +- !2086 fix CVE-2023-20588 +- !2095 io_uring: ensure IOPOLL locks around deferred work +- !2126 netfilter: nf_tables: skip immediate deactivate in _PREPARE_ERROR +- !2123 Backport some patch for HNS3 and revert some unnecessary patch +- !2099 xhci:fix USB xhci controller issue +- !1806 SUNRPC: Add cond_resched() at the appropriate point in __rpc_execute() +- net: hns3: fix wrong page_region param for 8521 phy custom interface +- net: hns3: support report ROCEE_AXI_RESP_ERROR event for custom +- net: hns3: correct the logic of hclge_sync_vf_qb_mode() +- netfilter: nf_tables: skip immediate deactivate in _PREPARE_ERROR +- !1778 nvme-pci: fix DMA direction of unmapping integrity data +- net: hns3: support tc limit rate +- net: hns3: support tc command with max rate parameter +- drivers/perf: hisi: Update HiSilicon PMU maintainers +- net: hns3: remove GSO partial feature bit +- net: hns3: fix the port information display when sfp is absent +- net: hns3: fix invalid mutex between tc qdisc and dcb ets command issue +- net: hns3: fix debugfs concurrency issue between kfree buffer and read +- net: hns3: fix byte order conversion issue in hclge_dbg_fd_tcam_read() +- net: hns3: Support query tx timeout threshold by debugfs +- net: hns3: fix tx timeout issue +- net: hns3: fix wrong rpu tln reg issue +- net: hns3: Support tlv in regs data for HNS3 VF driver +- net: hns3: Support tlv in regs data for HNS3 PF driver +- net: hns3: move dump regs function to a separate file +- Revert "net: hns3: refactor hclge_update_desc_vfid for extension" +- Revert "net: hns3: fix GRE checksum offload issue" +- !2085 af_unix: Fix null-ptr-deref in unix_stream_sendpage(). +- !2097 Fixed 4 CVEs of the ksmbd +- !2092 netfilter: nf_tables: skip bound chain on rule flush +- !2090 net/sched: sch_hfsc: Ensure inner classes have fsc curve +- xhci:fix USB xhci controller issue +- Revert "xhci:fix USB xhci controller issue" +- ksmbd: not allow guest user on multichannel +- ksmbd: fix deadlock in ksmbd_find_crypto_ctx() +- ksmbd: block asynchronous requests when making a delay on session setup +- ksmbd: destroy expired sessions +- io_uring: ensure IOPOLL locks around deferred work +- netfilter: nf_tables: skip bound chain on rule flush +- net/sched: sch_hfsc: Ensure inner classes have fsc curve +- !1977 fix race between setxattr and write back +- x86/CPU/AMD: Fix the DIV(0) initial fix attempt +- x86/CPU/AMD: Do not leak quotient data after a division by 0 +- af_unix: Fix null-ptr-deref in unix_stream_sendpage(). +- !2009 Fix errors related to bond for RDMA/hns +- !2080 ima: fix the undefined value during the build +- ima: fix the undefined value during the build +- !2040 iommu/arm-smmu-v3: Fix ECMDQ initialization error and add arm_smmu_v3.disable_ecmdq +- !2068 i2c: hisi: Only handle the interrupt of the driver's transfer +- !1986 tracing: Fix race issue between cpu buffer write and swap +- !2065 dm: switch to precise io accounting +- i2c: hisi: Only handle the interrupt of the driver's transfer +- dm: switch to precise io accounting +- !2055 Only enable unicast promisc when mac table full to fix the hns3 bug +- net: hns3: only enable unicast promisc when mac table full +- !2042 ima: Add macros to isolate the IMA digest list +- !1752 ksmbd: validate session id and tree id in the compound request +- ima: Add macros to isolate the IMA digest list +- !1327 Huawei BMA: To fix the bug in the iBMA driver code +- !1786 LoongArch: export lsx/lasx related struct to user space +- iommu/arm-smmu-v3: Allow disabling ECMDQs at boot time +- iommu/arm-smmu-v3: Make ECMDQs to be evenly allocated based on the number of cores +- !1962 x86/speculation: Add force option to GDS mitigation +- !1991 sched/smt: fix unbalance sched_smt_present dec/inc +- !1966 cpu/hotplug: Prevent self deadlock on CPU hot-unplug +- !1965 crypto:padata: Fix return err for PADATA_RESET +- RDMA/hns: Fix missing cleanup when bond_grp becomes invalid +- RDMA/hns: Fix the device loss after unbinding RoCE bond resource slave +- RDMA/hns: Fix wild pointer error of RoCE bonding when rmmod hns3 +- RDMA/hns: Add functions to obtain netdev and bus_num from an hr_dev +- RDMA/hns: Fix a memory leak error when bond clear failed +- !1928 RDMA/hns Bugfix from mainline linux +- !1911 ksmbd: fix out-of-bound read in smb2_write +- sched/smt: fix unbalance sched_smt_present dec/inc +- tracing: Fix race issue between cpu buffer write and swap +- !1954 zs_malloc: return ERR_PTR on failure +- !1963 block: don't get gendisk if queue has not been registered +- ext2: dump current reservation window info +- ext2: fix race between setxattr and write back +- ext2: introduce flag argument for ext2_new_blocks() +- ext2: remove ext2_new_block() +- !1905 tracing: Fix memleak due to race between current_tracer and trace +- cpu/hotplug: Prevent self deadlock on CPU hot-unplug +- crypto:padata: Fix return err for PADATA_RESET +- block: don't get gendisk if queue has not been registered +- x86: Move gds_ucode_mitigated() declaration to header +- Documentation/x86: Fix backwards on/off logic about YMM support +- KVM: Add GDS_NO support to KVM +- x86/speculation: Add Kconfig option for GDS +- x86/speculation: Add force option to GDS mitigation +- mm/zsmalloc: do not attempt to free IS_ERR handle +- zsmalloc: zs_malloc: return ERR_PTR on failure +- !1919 net: hns3: revert some patch and backport some hns3 mainline +- !1900 tracing: Fix cpu buffers unavailable due to 'record_disabled' missed +- RDMA/hns: Remove the num_qpc_timer variable +- !1718 ignore the rt /dl task in tg_change_scheduler +- !1920 net/hinic3: Add DPU PF device type support. +- !1883 SUNRPC: don't pause on incomplete allocation +- net/hinic3: Add DPU PF device type support. +- net: hns3: fix deadlock issue when externel_lb and reset are executed together +- net: hns3: add wait until mac link down +- net: hns3: refactor hclge_mac_link_status_wait for interface reuse +- net: hns3: restore user pause configure when disable autoneg +- net: hns3: fix strscpy causing content truncation issue +- net: hns3: fix strncpy() not using dest-buf length as length issue +- net: hns3: fix reset delay time to avoid configuration timeout +- Revert "net: hns3: modify reset delay time to avoid configuration timeout" +- Revert "net: hns3: fix strncpy() not using dest-buf length as length issue" +- Revert "net: hns3: restore user pause configure when disable autoneg" +- Revert "net: hns3: refactor hclge_mac_link_status_wait for interface reuse" +- Revert "net: hns3: add wait until mac link down" +- !1446 Fix the default return value of dm_pool_dec_data_range() +- ksmbd: fix out-of-bound read in smb2_write +- tracing: Fix memleak due to race between current_tracer and trace +- !1531 [OLK-5.10] Add support for Hygon model 4h~6h processors +- tracing: Fix cpu buffers unavailable due to 'record_disabled' missed +- sched/fair: ignore the rt or dl task in tg_change_scheduler +- !1872 Synchronizing mainline HiSilicon uncore PMU patches +- !1834 cleanup for RDMA/hns from mainline linux +- SUNRPC: don't pause on incomplete allocation +- EDAC/amd64: Add support for Hygon family 18h model 6h +- x86/amd_nb: Add support for Hygon family 18h model 6h +- hwmon/k10temp: Add support for Hygon family 18h model 5h +- EDAC/amd64: Add support for Hygon family 18h model 5h +- x86/amd_nb: Add support for Hygon family 18h model 5h +- x86/cpu: Get LLC ID for Hygon family 18h model 5h +- i2c-piix4: Remove the IMC detecting for Hygon SMBus +- hwmon/k10temp: Add support for Hygon family 18h model 4h +- EDAC/mce_amd: Use struct cpuinfo_x86.logical_die_id for Hygon NodeId +- EDAC/amd64: Adjust address translation for Hygon family 18h model 4h +- EDAC/amd64: Add support for Hygon family 18h model 4h +- EDAC/amd64: Get UMC channel from the 6th nibble for Hygon +- iommu/hygon: Add support for Hygon family 18h model 4h IOAPIC +- x86/amd_nb: Add northbridge support for Hygon family 18h model 4h +- x86/amd_nb: Add Hygon family 18h model 4h PCI IDs +- x86/microcode/hygon: Add microcode loading support for Hygon processors +- x86/cpu/hygon: Modify the CPU topology deriving method for Hygon +- !1826 x86/speculation: Add Gather Data Sampling mitigation +- x86/MCE/AMD: Use an u64 for bank_map +- EDAC/mc_sysfs: Increase legacy channel support to 12 +- x86/cstate: Allow ACPI C1 FFH MWAIT use on Hygon systems +- drivers/perf: hisi: Add support for HiSilicon UC PMU driver +- drivers/perf: hisi: Add support for HiSilicon H60PA and PAv3 PMU driver +- Revert "drivers/perf: hisi: Add support for HiSilicon H60PA and PAv3 PMU driver" +- Revert "drivers/perf: hisi: Add support for HiSilicon UC PMU driver" +- !1851 Backport 5.10.169 - 5.10.172 LTS patches from upstream +- !1821 nbd: pass nbd_sock to nbd_read_reply() instead of index +- !1843 net: bridge: multicast: notify switchdev driver whenever MC processing gets disabled +- !1852 arm64: support batched/deferred tlb shootdown during page reclamation/migration +- mm/tlbbatch: fix kabi change +- arm64: support batched/deferred tlb shootdown during page reclamation/migration +- mm/tlbbatch: introduce arch_flush_tlb_batched_pending() +- mm/tlbbatch: rename and extend some functions +- mm/tlbbatch: introduce arch_tlbbatch_should_defer() +- USB: core: Don't hold device lock while reading the "descriptors" sysfs file +- usb: gadget: u_serial: Add null pointer check in gserial_resume +- USB: serial: option: add support for VW/Skoda "Carstick LTE" +- scripts/tags.sh: fix incompatibility with PCRE2 +- scripts/tags.sh: Invoke 'realpath' via 'xargs' +- bpf: bpf_fib_lookup should not return neigh in NUD_FAILED state +- HID: core: Fix deadloop in hid_apply_multiplier. +- IB/hfi1: Assign npages earlier +- btrfs: send: limit number of clones and allocated memory size +- ACPI: NFIT: fix a potential deadlock during NFIT teardown +- ARM: dts: rockchip: add power-domains property to dp node on rk3288 +- arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc +- Fix XFRM-I support for nested ESP tunnels +- ext4: Fix function prototype mismatch for ext4_feat_ktype +- audit: update the mailing list in MAINTAINERS +- wifi: mwifiex: Add missing compatible string for SD8787 +- nbd: fix possible overflow for 'first_minor' in nbd_dev_add() +- nbd: fix max value for 'first_minor' +- Revert "Revert "block: nbd: add sanity check for first_minor"" +- mac80211: mesh: embedd mesh_paths and mpp_paths into ieee80211_if_mesh +- powerpc: dts: t208x: Disable 10G on MAC1 and MAC2 +- can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len +- KVM: SVM: Skip WRMSR fastpath on VM-Exit if next RIP isn't valid +- KVM: x86: Fail emulation during EMULTYPE_SKIP on any exception +- random: always mix cycle counter in add_latent_entropy() +- clk: mxl: syscon_node_to_regmap() returns error pointers +- powerpc: dts: t208x: Mark MAC1 and MAC2 as 10G +- clk: mxl: Fix a clk entry by adding relevant flags +- clk: mxl: Add option to override gate clks +- clk: mxl: Remove redundant spinlocks +- clk: mxl: Switch from direct readl/writel based IO to regmap based IO +- wifi: rtl8xxxu: gen2: Turn on the rate control +- drm/etnaviv: don't truncate physical page address +- nvmem: core: fix return value +- net: sched: sch: Fix off by one in htb_activate_prios() +- ASoC: SOF: Intel: hda-dai: fix possible stream_tag leak +- alarmtimer: Prevent starvation by small intervals and SIG_IGN +- i40e: Add checking for null for nlmsg_find_attr() +- net/sched: act_ctinfo: use percpu stats +- flow_offload: fill flags to action structure +- drm/i915/gen11: Wa_1408615072/Wa_1407596294 should be on GT list +- drm/i915/gen11: Moving WAs to icl_gt_workarounds_init() +- nilfs2: fix underflow in second superblock position calculations +- ipv6: Fix tcp socket connection with DSCP. +- ipv6: Fix datagram socket connection with DSCP. +- ixgbe: add double of VLAN header when computing the max MTU +- net: stmmac: Restrict warning on disabling DMA store and fwd mode +- bnxt_en: Fix mqprio and XDP ring checking logic +- net: stmmac: fix order of dwmac5 FlexPPS parametrization sequence +- net: openvswitch: fix possible memory leak in ovs_meter_cmd_set() +- net/usb: kalmia: Don't pass act_len in usb_bulk_msg error path +- dccp/tcp: Avoid negative sk_forward_alloc by ipv6_pinfo.pktoptions. +- sctp: sctp_sock_filter(): avoid list_entry() on possibly empty list +- net: bgmac: fix BCM5358 support by setting correct flags +- i40e: add double of VLAN header when computing the max MTU +- ixgbe: allow to increase MTU to 3K with XDP enabled +- revert "squashfs: harden sanity check in squashfs_read_xattr_id_table" +- !1802 zram: Support multiple compression streams +- !1796 arm64: enable THP_SWAP for arm64 +- Revert "mm: Always release pages to the buddy allocator in memblock_free_late()." +- hugetlb: check for undefined shift on 32 bit architectures +- sched/psi: Fix use-after-free in ep_remove_wait_queue() +- ALSA: hda/realtek - fixed wrong gpio assigned +- ALSA: hda/conexant: add a new hda codec SN6180 +- mmc: mmc_spi: fix error handling in mmc_spi_probe() +- mmc: sdio: fix possible resource leaks in some error paths +- mmc: jz4740: Work around bug on JZ4760(B) +- netfilter: nft_tproxy: restrict to prerouting hook +- ovl: remove privs in ovl_fallocate() +- ovl: remove privs in ovl_copyfile() +- s390/signal: fix endless loop in do_signal +- aio: fix mremap after fork null-deref +- nvmem: core: fix registration vs use race +- nvmem: core: fix cleanup after dev_set_name() +- nvmem: core: remove nvmem_config wp_gpio +- nvmem: core: add error handling for dev_set_name +- platform/x86: touchscreen_dmi: Add Chuwi Vi8 (CWI501) DMI match +- nvme-fc: fix a missing queue put in nvmet_fc_ls_create_association +- s390/decompressor: specify __decompress() buf len to avoid overflow +- net: sched: sch: Bounds check priority +- net: stmmac: do not stop RX_CLK in Rx LPI state for qcs404 SoC +- net/rose: Fix to not accept on connected socket +- tools/virtio: fix the vringh test for virtio ring changes +- ASoC: cs42l56: fix DT probe +- ALSA: hda: Do not unset preset when cleaning up codec +- selftests/bpf: Verify copy_register_state() preserves parent/live fields +- ASoC: Intel: sof_rt5682: always set dpcm_capture for amplifiers +- !1833 xsk: Initialise xskb free_list_node +- !1822 Backport 5.10.168 LTS patches from upstream +- !1835 tcp: Reduce chance of collisions in inet6_hashfn(). +- net: bridge: multicast: notify switchdev driver whenever MC processing gets disabled +- !1815 Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb +- !1784 tun/tap: fix CVE-2023-4194 +- RDMA/hns: Replacing magic number with macros in apply_func_caps() +- RDMA/hns: Remove redundant 'phy_addr' in hns_roce_hem_list_find_mtt() +- RDMA/hns: Remove redundant 'bt_level' for hem_list_alloc_item() +- RDMA/hns: Remove redundant member doorbell_qpn of struct hns_roce_qp +- !1814 fix CVE-2023-20593 for openEuler +- tcp: Reduce chance of collisions in inet6_hashfn(). +- xsk: Initialise xskb free_list_node +- !1813 ksmbd: fix cve-2023-38432 +- x86/speculation: Add cpu_show_gds() prototype +- x86/speculation: Add Gather Data Sampling mitigation +- nbd: pass nbd_sock to nbd_read_reply() instead of index +- Fix page corruption caused by racy check in __free_pages +- arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive +- arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive +- arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive +- riscv: Fixup race condition on PG_dcache_clean in flush_icache_pte +- ceph: flush cap releases when the session is flushed +- usb: typec: altmodes/displayport: Fix probe pin assign check +- usb: core: add quirk for Alcor Link AK9563 smartcard reader +- btrfs: free device in btrfs_close_devices for a single device filesystem +- net: USB: Fix wrong-direction WARNING in plusb.c +- pinctrl: intel: Restore the pins that used to be in Direct IRQ mode +- spi: dw: Fix wrong FIFO level setting for long xfers +- pinctrl: single: fix potential NULL dereference +- pinctrl: aspeed: Fix confusing types in return value +- ALSA: pci: lx6464es: fix a debug loop +- selftests: forwarding: lib: quote the sysctl values +- net/mlx5: fw_tracer, Zero consumer index when reloading the tracer +- net/mlx5: fw_tracer, Clear load bit when freeing string DBs buffers +- net/mlx5e: IPoIB, Show unknown speed instead of error +- net: mscc: ocelot: fix VCAP filters not matching on MAC with "protocol 802.1Q" +- ice: Do not use WQ_MEM_RECLAIM flag for workqueue +- uapi: add missing ip/ipv6 header dependencies for linux/stddef.h +- ionic: clean interrupt before enabling queue to avoid credit race +- net: phy: meson-gxl: use MMD access dummy stubs for GXL, internal PHY +- bonding: fix error checking in bond_debug_reregister() +- xfrm: fix bug with DSCP copy to v6 from v4 tunnel +- RDMA/usnic: use iommu_map_atomic() under spin_lock() +- IB/IPoIB: Fix legacy IPoIB due to wrong number of queues +- xfrm/compat: prevent potential spectre v1 gadget in xfrm_xlate32_attr() +- IB/hfi1: Restore allocated resources on failed copyout +- xfrm: compat: change expression for switch in xfrm_xlate64 +- can: j1939: do not wait 250 ms if the same addr was already claimed +- of/address: Return an error when no valid dma-ranges are found +- tracing: Fix poll() and select() do not work on per_cpu trace_pipe and trace_pipe_raw +- ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book2 Pro 360 +- ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control() +- ALSA: hda/realtek: Add Positivo N14KP6-TG +- btrfs: zlib: zero-initialize zlib workspace +- btrfs: limit device extents to the device size +- migrate: hugetlb: check for hugetlb shared PMD in node migration +- mm/migration: return errno when isolate_huge_page failed +- iio:adc:twl6030: Enable measurement of VAC +- bpf: Do not reject when the stack read size is different from the tracked scalar size +- nvmem: core: Fix a conflict between MTD and NVMEM on wp-gpios property +- wifi: brcmfmac: Check the count value of channel spec to prevent out-of-bounds reads +- f2fs: fix to do sanity check on i_extra_isize in is_alive() +- fbdev: smscufx: fix error handling code in ufx_usb_probe +- serial: 8250_dma: Fix DMA Rx rearm race +- serial: 8250_dma: Fix DMA Rx completion race +- nvmem: core: fix cell removal on error +- nvmem: core: initialise nvmem->id early +- drm/i915: Fix potential bit_17 double-free +- Squashfs: fix handling and sanity checking of xattr_ids count +- fpga: stratix10-soc: Fix return value check in s10_ops_write_init() +- x86/debug: Fix stack recursion caused by wrongly ordered DR7 accesses +- mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps +- riscv: disable generation of unwind tables +- parisc: Wire up PTRACE_GETREGS/PTRACE_SETREGS for compat case +- parisc: Fix return code of pdc_iodc_print() +- nvmem: qcom-spmi-sdam: fix module autoloading +- iio: imu: fxos8700: fix MAGN sensor scale and unit +- iio: imu: fxos8700: remove definition FXOS8700_CTRL_ODR_MIN +- iio: imu: fxos8700: fix failed initialization ODR mode assignment +- iio: imu: fxos8700: fix incorrect ODR mode readback +- iio: imu: fxos8700: fix swapped ACCEL and MAGN channels readback +- iio: imu: fxos8700: fix map label of channel type to MAGN sensor +- iio: imu: fxos8700: fix IMU data bits returned to user space +- iio: imu: fxos8700: fix incomplete ACCEL and MAGN channels readback +- iio: imu: fxos8700: fix ACCEL measurement range selection +- iio:adc:twl6030: Enable measurements of VUSB, VBAT and others +- iio: adc: berlin2-adc: Add missing of_node_put() in error path +- iio: hid: fix the retval in accel_3d_capture_sample +- efi: Accept version 2 of memory attributes table +- ALSA: hda/realtek: Add Acer Predator PH315-54 +- watchdog: diag288_wdt: fix __diag288() inline assembly +- watchdog: diag288_wdt: do not use stack buffers for hardware data +- net: qrtr: free memory on error path in radix_tree_insert() +- Input: i8042 - add Clevo PCX0DX to i8042 quirk table +- Input: i8042 - add TUXEDO devices to i8042 quirk tables +- Input: i8042 - merge quirk tables +- Input: i8042 - move __initconst to fix code styling warning +- usb: gadget: f_fs: Fix unbalanced spinlock in __ffs_ep0_queue_wait +- usb: dwc3: qcom: enable vbus override when in OTG dr-mode +- usb: dwc3: dwc3-qcom: Fix typo in the dwc3 vbus override API +- iio: adc: stm32-dfsdm: fill module aliases +- net/x25: Fix to not accept on connected socket +- platform/x86: dell-wmi: Add a keymap for KEY_MUTE in type 0x0010 table +- i2c: rk3x: fix a bunch of kernel-doc warnings +- scsi: target: core: Fix warning on RT kernels +- i2c: mxs: suppress probe-deferral error message +- qede: execute xdp_do_flush() before napi_complete_done() +- qede: add netpoll support for qede driver +- efi: fix potential NULL deref in efi_mem_reserve_persistent +- net: openvswitch: fix flow memory leak in ovs_flow_cmd_new +- virtio-net: Keep stop() to follow mirror sequence of open() +- selftests: net: udpgso_bench_tx: Cater for pending datagrams zerocopy benchmarking +- selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs +- selftests: net: udpgso_bench_rx/tx: Stop when wrong CLI args are provided +- selftests: net: udpgso_bench_rx: Fix 'used uninitialized' compiler warning +- ata: libata: Fix sata_down_spd_limit() when no link speed is reported +- can: j1939: fix errant WARN_ON_ONCE in j1939_session_deactivate +- igc: return an error if the mac type is unknown in igc_ptp_systim_to_hwtstamp() +- net: phy: meson-gxl: Add generic dummy stubs for MMD register access +- squashfs: harden sanity check in squashfs_read_xattr_id_table +- netfilter: br_netfilter: disable sabotage_in hook after first suppression +- net: phy: dp83822: Fix null pointer access on DP83825/DP83826 devices +- sfc: correctly advertise tunneled IPv6 segmentation +- virtio-net: execute xdp_do_flush() before napi_complete_done() +- fix "direction" argument of iov_iter_kvec() +- fix iov_iter_bvec() "direction" argument +- READ is "data destination", not source... +- WRITE is "data source", not destination... +- vhost/net: Clear the pending messages when the backend is removed +- scsi: Revert "scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT" +- drm/vc4: hdmi: make CEC adapter name unique +- arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX +- bpf: Fix to preserve reg parent/live fields when copying range info +- bpf: Support <8-byte scalar spill and refill +- ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path() +- bpf: Fix a possible task gone issue with bpf_send_signal[_thread]() helpers +- powerpc/imc-pmu: Revert nest_init_lock to being a mutex +- bpf: Fix incorrect state pruning for <8B spill/fill +- bus: sunxi-rsb: Fix error handling in sunxi_rsb_init() +- firewire: fix memory leak for payload of request subaction to IEC 61883-1 FCP region +- Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb +- tools arch x86: Sync the msr-index.h copy with the kernel sources +- x86/cpu/amd: Enable Zenbleed fix for AMD Custom APU 0405 +- x86/cpu/amd: Add a Zenbleed fix +- x86/cpu/amd: Move the errata checking functionality up +- ksmbd: validate command request size +- ksmbd: validate command payload size +- !1724 Net: ethernet: Support management channel of the host tool in 3snic 3s9xx network driver +- SUNRPC: Add cond_resched() at the appropriate point in __rpc_execute() +- zram: add incompressible flag to read_block_state() +- zram: add incompressible writeback +- documentation: add zram recompression documentation +- zram: add algo parameter support to zram_recompress() +- zram: remove redundant checks from zram_recompress() +- zram: add size class equals check into recompression +- zram: clarify writeback_store() comment +- zram: add recompress flag to read_block_state() +- zram: introduce recompress sysfs knob +- zram: factor out WB and non-WB zram read functions +- zram: add recompression algorithm sysfs knob +- lib/cmdline: Export next_arg() for being used in modules +- zram: preparation for multi-zcomp support +- zram: fix race between zram_reset_device() and disksize_store() +- !1793 Backport 5.10.166 - 5.10.167 LTS patches from upstream. +- !1788 exfat: check if filename entries exceeds max filename length +- arm64: enable THP_SWAP for arm64 +- net: fix NULL pointer in skb_segment_list +- Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt +- dmaengine: imx-sdma: Fix a possible memory leak in sdma_transfer_init +- blk-cgroup: fix missing pd_online_fn() while activating policy +- arm64: dts: imx8mq-thor96: fix no-mmc property for SDHCI +- ARM: dts: vf610: Fix pca9548 i2c-mux node names +- ARM: dts: imx: Fix pca9547 i2c-mux node name +- clk: Fix pointer casting to prevent oops in devm_clk_release() +- perf/x86/amd: fix potential integer overflow on shift of a int +- netfilter: conntrack: unify established states for SCTP paths +- x86/i8259: Mark legacy PIC interrupts with IRQ_LEVEL +- block: fix and cleanup bio_check_ro +- Revert "selftests/ftrace: Update synthetic event syntax errors" +- nfsd: Ensure knfsd shuts down when the "nfsd" pseudofs is unmounted +- nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf +- Revert "Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode" +- tools: gpio: fix -c option of gpio-event-mon +- net: mdio-mux-meson-g12a: force internal PHY off on mux switch +- net/tg3: resolve deadlock in tg3_reset_task() during EEH +- thermal: intel: int340x: Add locking to int340x_thermal_get_trip_type() +- net: ravb: Fix possible hang if RIS2_QFF1 happen +- netrom: Fix use-after-free of a listening socket. +- netfilter: conntrack: fix vtag checks for ABORT/SHUTDOWN_COMPLETE +- ipv4: prevent potential spectre v1 gadget in fib_metrics_match() +- ipv4: prevent potential spectre v1 gadget in ip_metrics_convert() +- netlink: annotate data races around sk_state +- netlink: annotate data races around dst_portid and dst_group +- netlink: annotate data races around nlk->portid +- netfilter: nft_set_rbtree: skip elements in transaction from garbage collection +- netfilter: nft_set_rbtree: Switch to node list walk for overlap detection +- net: fix UaF in netns ops registration error path +- netlink: prevent potential spectre v1 gadgets +- i2c: designware: use casting of u64 in clock multiplication to avoid overflow +- i2c: designware: Use DIV_ROUND_CLOSEST() macro +- units: Add SI metric prefix definitions +- units: Add Watt units +- EDAC/qcom: Do not pass llcc_driv_data as edac_device_ctl_info's pvt_info +- EDAC/device: Respect any driver-supplied workqueue polling value +- ARM: 9280/1: mm: fix warning on phys_addr_t to void pointer assignment +- thermal: intel: int340x: Protect trip temperature from concurrent updates +- KVM: x86/vmx: Do not skip segment attributes if unusable bit is set +- cifs: Fix oops due to uncleared server->smbd_conn in reconnect +- ftrace/scripts: Update the instructions for ftrace-bisect.sh +- trace_events_hist: add check for return value of 'create_hist_field' +- tracing: Make sure trace_printk() can output as soon as it can be used +- module: Don't wait for GOING modules +- scsi: hpsa: Fix allocation size for scsi_host_alloc() +- xhci: Set HCD flag to defer primary roothub registration +- Bluetooth: hci_sync: cancel cmd_timer if hci_open failed +- docs: Fix path paste-o for /sys/kernel/warn_count +- panic: Expose "warn_count" to sysfs +- panic: Introduce warn_limit +- panic: Consolidate open-coded panic_on_warn checks +- panic: Separate sysctl logic from CONFIG_SMP +- ia64: make IA64_MCA_RECOVERY bool instead of tristate +- kasan: no need to unset panic_on_warn in end_report() +- ubsan: no need to unset panic_on_warn in ubsan_epilogue() +- panic: unset panic_on_warn inside panic() +- kernel/panic: move panic sysctls to its own file +- fs: reiserfs: remove useless new_opts in reiserfs_remount +- x86: ACPI: cstate: Optimize C3 entry on AMD CPUs +- netfilter: conntrack: do not renew entry stuck in tcp SYN_SENT state +- Revert "selftests/bpf: check null propagation only neither reg is PTR_TO_BTF_ID" +- lockref: stop doing cpu_relax in the cmpxchg loop +- platform/x86: asus-nb-wmi: Add alternate mapping for KEY_SCREENLOCK +- platform/x86: touchscreen_dmi: Add info for the CSL Panther Tab HD +- KVM: s390: interrupt: use READ_ONCE() before cmpxchg() +- spi: spidev: remove debug messages that access spidev->spi without locking +- ASoC: fsl-asoc-card: Fix naming of AC'97 CODEC widgets +- ASoC: fsl_ssi: Rename AC'97 streams to avoid collisions with AC'97 CODEC +- cpufreq: armada-37xx: stop using 0 as NULL pointer +- s390/debug: add _ASM_S390_ prefix to header guard +- drm: Add orientation quirk for Lenovo ideapad D330-10IGL +- ASoC: fsl_micfil: Correct the number of steps on SX controls +- kcsan: test: don't put the expect array on the stack +- cpufreq: Add Tegra234 to cpufreq-dt-platdev blocklist +- !1650 mm: disable kernelcore=mirror when no mirror memory +- tcp: fix rate_app_limited to default to 1 +- net: dsa: microchip: ksz9477: port map correction in ALU table entry register +- driver core: Fix test_async_probe_init saves device in wrong array +- w1: fix WARNING after calling w1_process() +- w1: fix deadloop in __w1_remove_master_device() +- tcp: avoid the lookup process failing to get sk in ehash table +- dmaengine: xilinx_dma: call of_node_put() when breaking out of for_each_child_of_node() +- HID: betop: check shape of output reports +- l2tp: prevent lockdep issue in l2tp_tunnel_register() +- net: macb: fix PTP TX timestamp failure due to packet padding +- dmaengine: Fix double increment of client_count in dma_chan_get() +- drm/panfrost: fix GENERIC_ATOMIC64 dependency +- net: mlx5: eliminate anonymous module_init & module_exit +- usb: gadget: f_fs: Ensure ep0req is dequeued before free_request +- usb: gadget: f_fs: Prevent race during ffs_ep0_queue_wait +- HID: revert CHERRY_MOUSE_000C quirk +- net: stmmac: fix invalid call to mdiobus_get_phy() +- net: mdio: validate parameter addr in mdiobus_get_phy() +- net: usb: sr9700: Handle negative len +- l2tp: close all race conditions in l2tp_tunnel_register() +- l2tp: convert l2tp_tunnel_list to idr +- exfat: check if filename entries exceeds max filename length +- LoongArch: export lsx/lasx related struct to user space +- !1721 [sync] PR-1651: Fix missing dealloc_dfx_cnt() during device unregister +- !1671 Backport bugfixes for RDMA/hns from mainline linux +- Net: ethernet: Support management channel of the host tool in 3snic 3s9xx network driver +- net: tap_open(): set sk_uid from current_fsuid() +- net: tun_chr_open(): set sk_uid from current_fsuid() +- gpio: mxc: Always set GPIOs used as interrupt source to INPUT mode +- net: wan: Add checks for NULL for utdm in undo_uhdlc_init and unmap_si_regs +- net: nfc: Fix use-after-free in local_cleanup() +- phy: rockchip-inno-usb2: Fix missing clk_disable_unprepare() in rockchip_usb2phy_power_on() +- bpf: Fix pointer-leak due to insufficient speculative store bypass mitigation +- amd-xgbe: Delay AN timeout during KR training +- amd-xgbe: TX Flow Ctrl Registers are h/w ver dependent +- ARM: dts: at91: sam9x60: fix the ddr clock for sam9x60 +- phy: ti: fix Kconfig warning and operator precedence +- PM: AVS: qcom-cpr: Fix an error handling path in cpr_probe() +- affs: initialize fsdata in affs_truncate() +- IB/hfi1: Remove user expected buffer invalidate race +- IB/hfi1: Immediately remove invalid memory from hardware +- IB/hfi1: Fix expected receive setup error exit issues +- IB/hfi1: Reserve user expected TIDs +- IB/hfi1: Reject a zero-length user expected buffer +- RDMA/core: Fix ib block iterator counter overflow +- tomoyo: fix broken dependency on *.conf.default +- firmware: arm_scmi: Harden shared memory access in fetch_notification +- firmware: arm_scmi: Harden shared memory access in fetch_response +- EDAC/highbank: Fix memory leak in highbank_mc_probe() +- ARM: imx: add missing of_node_put() +- arm64: dts: imx8mm-beacon: Fix ecspi2 pinmux +- ARM: dts: imx6qdl-gw560x: Remove incorrect 'uart-has-rtscts' +- ARM: dts: imx7d-pico: Use 'clock-frequency' +- ARM: dts: imx6ul-pico-dwarf: Use 'clock-frequency' +- memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe() +- memory: atmel-sdramc: Fix missing clk_disable_unprepare in atmel_ramc_probe() +- clk: Provide new devm_clk helpers for prepared and enabled clocks +- clk: generalize devm_clk_get() a bit +- !1768 bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves +- !1766 xen/netback: Fix buffer overrun triggered by unusual packet +- !1771 Backport 5.10.164 - 5.10.165 LTS patches from upstream. +- nvme-pci: fix DMA direction of unmapping integrity data +- io_uring/rw: remove leftover debug statement +- io_uring/rw: ensure kiocb_end_write() is always called +- io_uring: fix double poll leak on repolling +- io_uring: Clean up a false-positive warning from GCC 9.3.0 +- mm/khugepaged: fix collapse_pte_mapped_thp() to allow anon_vma +- Bluetooth: hci_qca: Fixed issue during suspend +- Bluetooth: hci_qca: check for SSR triggered flag while suspend +- Bluetooth: hci_qca: Wait for SSR completion during suspend +- soc: qcom: apr: Make qcom,protection-domain optional again +- Revert "wifi: mac80211: fix memory leak in ieee80211_if_add()" +- net/mlx5: fix missing mutex_unlock in mlx5_fw_fatal_reporter_err_work() +- io_uring/net: fix fast_iov assignment in io_setup_async_msg() +- io_uring: io_kiocb_update_pos() should not touch file for non -1 offset +- tracing: Use alignof__(struct {type b;}) instead of offsetof() +- x86/fpu: Use _Alignof to avoid undefined behavior in TYPE_ALIGN +- Revert "drm/amdgpu: make display pinning more flexible (v2)" +- efi: rt-wrapper: Add missing include +- arm64: efi: Execute runtime services from a dedicated stack +- drm/amd/display: Fix COLOR_SPACE_YCBCR2020_TYPE matrix +- drm/amd/display: Calculate output_color_space after pixel encoding adjustment +- drm/amd/display: Fix set scaling doesn's work +- drm/i915: re-disable RC6p on Sandy Bridge +- mei: me: add meteor lake point M DID +- gsmi: fix null-deref in gsmi_get_variable +- serial: atmel: fix incorrect baudrate setup +- dmaengine: tegra210-adma: fix global intr clear +- serial: pch_uart: Pass correct sg to dma_unmap_sg() +- dt-bindings: phy: g12a-usb3-pcie-phy: fix compatible string documentation +- dt-bindings: phy: g12a-usb2-phy: fix compatible string documentation +- usb-storage: apply IGNORE_UAS only for HIKSEMI MD202 on RTL9210 +- usb: gadget: f_ncm: fix potential NULL ptr deref in ncm_bitrate() +- usb: gadget: g_webcam: Send color matching descriptor per frame +- usb: typec: altmodes/displayport: Fix pin assignment calculation +- usb: typec: altmodes/displayport: Add pin assignment helper +- usb: host: ehci-fsl: Fix module alias +- USB: serial: cp210x: add SCALANCE LPE-9000 device id +- tty: serial: qcom-geni-serial: fix slab-out-of-bounds on RX FIFO buffer +- thunderbolt: Use correct function to calculate maximum USB3 link rate +- cifs: do not include page data when checking signature +- btrfs: fix race between quota rescan and disable leading to NULL pointer deref +- mmc: sdhci-esdhc-imx: correct the tuning start tap and step setting +- mmc: sunxi-mmc: Fix clock refcount imbalance during unbind +- comedi: adv_pci1760: Fix PWM instruction handling +- usb: core: hub: disable autosuspend for TI TUSB8041 +- misc: fastrpc: Fix use-after-free race condition for maps +- misc: fastrpc: Don't remove map on creater_process and device_release +- USB: misc: iowarrior: fix up header size for USB_DEVICE_ID_CODEMERCS_IOW100 +- staging: vchiq_arm: fix enum vchiq_status return types +- USB: serial: option: add Quectel EM05CN modem +- USB: serial: option: add Quectel EM05CN (SG) modem +- USB: serial: option: add Quectel EC200U modem +- USB: serial: option: add Quectel EM05-G (RS) modem +- USB: serial: option: add Quectel EM05-G (CS) modem +- USB: serial: option: add Quectel EM05-G (GR) modem +- !1623 introduce cgroup level smt expell +- xhci: Detect lpm incapable xHC USB3 roothub ports from ACPI tables +- usb: acpi: add helper to check port lpm capability using acpi _DSM +- xhci: Add a flag to disable USB3 lpm on a xhci root port level. +- xhci: Add update_hub_device override for PCI xHCI hosts +- !1729 fix CVE-2023-4128 in OLK510 +- xhci: Fix null pointer dereference when host dies +- usb: xhci: Check endpoint is valid before dereferencing it +- xhci-pci: set the dma max_seg_size +- io_uring/rw: defer fsnotify calls to task context +- io_uring: do not recalculate ppos unnecessarily +- io_uring: update kiocb->ki_pos at execution time +- io_uring: remove duplicated calls to io_kiocb_ppos +- io_uring: ensure that cached task references are always put on exit +- io_uring: fix CQ waiting timeout handling +- io_uring: lock overflowing for IOPOLL +- io_uring: check for valid register opcode earlier +- io_uring: fix async accept on O_NONBLOCK sockets +- io_uring: allow re-poll if we made progress +- io_uring: support MSG_WAITALL for IORING_OP_SEND(MSG) +- io_uring: add flag for disabling provided buffer recycling +- io_uring: ensure recv and recvmsg handle MSG_WAITALL correctly +- io_uring: improve send/recv error handling +- io_uring: don't gate task_work run on TIF_NOTIFY_SIGNAL +- Bluetooth: hci_qca: Fix driver shutdown on closed serdev +- Bluetooth: hci_qca: Wait for timeout during suspend +- drm/i915/gt: Reset twice +- ALSA: hda/realtek - Turn on power early +- efi: fix userspace infinite retry read efivars after EFI runtime services page fault +- nilfs2: fix general protection fault in nilfs_btree_insert() +- zonefs: Detect append writes at invalid locations +- Add exception protection processing for vd in axi_chan_handle_err function +- wifi: mac80211: sdata can be NULL during AMPDU start +- wifi: brcmfmac: fix regression for Broadcom PCIe wifi devices +- f2fs: let's avoid panic if extent_tree is not created +- x86/asm: Fix an assembler warning with current binutils +- btrfs: always report error in run_one_delayed_ref() +- RDMA/srp: Move large values to a new enum for gcc13 +- net/ethtool/ioctl: return -EOPNOTSUPP if we have no phy stats +- tools/virtio: initialize spinlocks in vring_test.c +- selftests/bpf: check null propagation only neither reg is PTR_TO_BTF_ID +- pNFS/filelayout: Fix coalescing test for single DS +- btrfs: fix trace event name typo for FLUSH_DELAYED_REFS +- Revert "usb: ulpi: defer ulpi_register on ulpi_read_id timeout" +- io_uring/io-wq: only free worker if it was allocated for creation +- io_uring/io-wq: free worker if task_work creation is canceled +- drm/virtio: Fix GEM handle creation UAF +- efi: fix NULL-deref in init error path +- arm64: cmpxchg_double*: hazard against entire exchange variable +- arm64: atomics: remove LL/SC trampolines +- arm64: atomics: format whitespace consistently +- x86/resctrl: Fix task CLOSID/RMID update race +- x86/resctrl: Use task_curr() instead of task_struct->on_cpu to prevent unnecessary IPI +- KVM: x86: Do not return host topology information from KVM_GET_SUPPORTED_CPUID +- Documentation: KVM: add API issues section +- iommu/mediatek-v1: Fix an error handling path in mtk_iommu_v1_probe() +- iommu/mediatek-v1: Add error handle for mtk_iommu_probe +- mm: Always release pages to the buddy allocator in memblock_free_late(). +- net/mlx5e: Don't support encap rules with gbp option +- net/mlx5: Fix ptp max frequency adjustment range +- net/sched: act_mpls: Fix warning during failed attribute validation +- nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame() +- hvc/xen: lock console list traversal +- octeontx2-af: Fix LMAC config in cgx_lmac_rx_tx_enable +- octeontx2-af: Map NIX block from CGX connection +- octeontx2-af: Update get/set resource count functions +- tipc: fix unexpected link reset due to discovery messages +- ASoC: wm8904: fix wrong outputs volume after power reactivation +- regulator: da9211: Use irq handler when ready +- EDAC/device: Fix period calculation in edac_device_reset_delay_period() +- x86/boot: Avoid using Intel mnemonics in AT&T syntax asm +- powerpc/imc-pmu: Fix use of mutex in IRQs disabled section +- netfilter: ipset: Fix overflow before widen in the bitmap_ip_create() function. +- ext4: fix uninititialized value in 'ext4_evict_inode' +- usb: ulpi: defer ulpi_register on ulpi_read_id timeout +- xhci: Prevent infinite loop in transaction errors recovery for streams +- xhci: move and rename xhci_cleanup_halted_endpoint() +- xhci: store TD status in the td struct instead of passing it along +- xhci: move xhci_td_cleanup so it can be called by more functions +- xhci: Add xhci_reset_halted_ep() helper function +- xhci: adjust parameters passed to cleanup_halted_endpoint() +- xhci: get isochronous ring directly from endpoint structure +- xhci: Avoid parsing transfer events several times +- clk: imx: imx8mp: add shared clk gate for usb suspend clk +- dt-bindings: clocks: imx8mp: Add ID for usb suspend clock +- clk: imx8mp: add clkout1/2 support +- clk: imx8mp: Add DISP2 pixel clock +- iommu/amd: Fix ill-formed ivrs_ioapic, ivrs_hpet and ivrs_acpihid options +- iommu/amd: Add PCI segment support for ivrs_[ioapic/hpet/acpihid] commands +- bus: mhi: host: Fix race between channel preparation and M0 event +- ixgbe: fix pci device refcount leak +- platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during probe +- drm/msm/dp: do not complete dp_aux_cmd_fifo_tx() if irq is not for aux transfer +- drm/msm/adreno: Make adreno quirks not overwrite each other +- cifs: Fix uninitialized memory read for smb311 posix symlink create +- s390/percpu: add READ_ONCE() to arch_this_cpu_to_op_simple() +- s390/cpum_sf: add READ_ONCE() semantics to compare and swap loops +- ASoC: qcom: lpass-cpu: Fix fallback SD line index handling +- s390/kexec: fix ipl report address for kdump +- perf auxtrace: Fix address filter duplicate symbol selection +- docs: Fix the docs build with Sphinx 6.0 +- efi: tpm: Avoid READ_ONCE() for accessing the event log +- KVM: arm64: Fix S1PTW handling on RO memslots +- ALSA: hda/realtek: Enable mute/micmute LEDs on HP Spectre x360 13-aw0xxx +- bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves +- xen/netback: Fix buffer overrun triggered by unusual packet +- !1749 Input: cyttsp4_core - change del_timer_sync() to timer_shutdown_sync() +- !1742 cxgb4: fix use after free bugs caused by circular dependency problem +- !1520 enable bonding XDP +- !1624 Backport 5.10.163 LTS patches from upstream +- !1737 ksmbd: fix out of bounds read in smb2_sess_setup +- ksmbd: validate session id and tree id in the compound request +- Input: cyttsp4_core - change del_timer_sync() to timer_shutdown_sync() +- !1646 Fixed extioi hardware emulation bugs on loongarch +- !1649 Enable TPM TIS customization +- cxgb4: fix use after free bugs caused by circular dependency problem +- !1727 add support for timer_shutdown() api +- !1734 arm64/mpam: mark partid non-exclusive if self-owned +- ALSA: hda - Enable headset mic on another Dell laptop with ALC3254 +- ALSA: hda/hdmi: Add a HP device 0x8715 to force connect list +- mptcp: use proper req destructor for IPv6 +- mptcp: dedicated request sock for subflow in v6 +- mptcp: remove MPTCP 'ifdef' in TCP SYN cookies +- mptcp: mark ops structures as ro_after_init +- serial: fixup backport of "serial: Deassert Transmit Enable on probe in driver-specific way" +- fsl_lpuart: Don't enable interrupts too early +- ext4: don't set up encryption key during jbd2 transaction +- ext4: disable fast-commit of encrypted dir operations +- parisc: Align parisc MADV_XXX constants with all other architectures +- io_uring: Fix unsigned 'res' comparison with zero in io_fixup_rw_res() +- efi: random: combine bootloader provided RNG seed with RNG protocol output +- mbcache: Avoid nesting of cache->c_list_lock under bit locks +- hfs/hfsplus: avoid WARN_ON() for sanity check, use proper error handling +- hfs/hfsplus: use WARN_ON for sanity check +- selftests: set the BUILD variable to absolute path +- ext4: don't allow journal inode to have encrypt flag +- drm/i915/gvt: fix vgpu debugfs clean in remove +- drm/i915/gvt: fix gvt debugfs destroy +- riscv: uaccess: fix type of 0 variable on error in get_user() +- fbdev: matroxfb: G200eW: Increase max memory from 1 MB to 16 MB +- nfsd: fix handling of readdir in v4root vs. mount upcall timeout +- nvme: fix multipath crash caused by flush request when blktrace is enabled +- ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet +- udf: Fix extension of the last extent in the file +- caif: fix memory leak in cfctrl_linkup_request() +- drm/i915: unpin on error in intel_vgpu_shadow_mm_pin() +- usb: rndis_host: Secure rndis_query check against int overflow +- drivers/net/bonding/bond_3ad: return when there's no aggregator +- perf tools: Fix resources leak in perf_data__open_dir() +- netfilter: ipset: Rework long task execution when adding/deleting entries +- netfilter: ipset: fix hash:net,port,net hang with /0 subnet +- gpio: sifive: Fix refcount leak in sifive_gpio_probe +- ceph: switch to vfs_inode_has_locks() to fix file lock bug +- filelock: new helper: vfs_inode_has_locks +- drm/meson: Reduce the FIFO lines held when AFBC is not used +- RDMA/mlx5: Fix validation of max_rd_atomic caps for DC +- net: phy: xgmiitorgmii: Fix refcount leak in xgmiitorgmii_probe +- net: amd-xgbe: add missed tasklet_kill +- net/mlx5e: Fix hw mtu initializing at XDP SQ allocation +- net/mlx5e: IPoIB, Don't allow CQE compression to be turned on by default +- net/mlx5: Avoid recovery in probe flows +- net/mlx5: Add forgotten cleanup calls into mlx5_init_once() error path +- vhost: fix range used in translate_desc() +- vringh: fix range used in iotlb_translate() +- vhost/vsock: Fix error handling in vhost_vsock_init() +- nfc: Fix potential resource leaks +- qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure +- nfsd: shut down the NFSv4 state objects before the filecache +- veth: Fix race with AF_XDP exposing old or uninitialized descriptors +- vmxnet3: correctly report csum_level for encapsulated packet +- drm/panfrost: Fix GEM handle creation ref-counting +- bpf: pull before calling skb_postpull_rcsum() +- SUNRPC: ensure the matching upcall is in-flight upon downcall +- ext4: fix deadlock due to mbcache entry corruption +- mbcache: automatically delete entries from cache on freeing +- ext4: use kmemdup() to replace kmalloc + memcpy +- ext4: fix leaking uninitialized memory in fast-commit journal +- ext4: fix various seppling typos +- fs: ext4: initialize fsdata in pagecache_write() +- ext4: use memcpy_to_page() in pagecache_write() +- mm/highmem: Lift memcpy_[to|from]_page to core +- ext4: correct inconsistent error msg in nojournal mode +- ext4: goto right label 'failed_mount3a' +- riscv: stacktrace: Fixup ftrace_graph_ret_addr retp argument +- riscv/stacktrace: Fix stack output without ra on the stack top +- ravb: Fix "failed to switch device to config mode" message during unbind +- staging: media: tegra-video: fix device_node use after free +- x86/kprobes: Fix optprobe optimization check with CONFIG_RETHUNK +- x86/kprobes: Convert to insn_decode() +- perf probe: Fix to get the DW_AT_decl_file and DW_AT_call_file as unsinged data +- perf probe: Use dwarf_attr_integrate as generic DWARF attr accessor +- media: s5p-mfc: Fix in register read and write for H264 +- media: s5p-mfc: Clear workbit to handle error condition +- media: s5p-mfc: Fix to handle reference queue during finishing +- x86/MCE/AMD: Clear DFR errors found in THR handler +- x86/mce: Get rid of msr_ops +- btrfs: replace strncpy() with strscpy() +- perf/x86/intel/uncore: Clear attr_update properly +- perf/x86/intel/uncore: Generalize I/O stacks to PMON mapping procedure +- ARM: renumber bits related to _TIF_WORK_MASK +- drm/amdgpu: make display pinning more flexible (v2) +- drm/amdgpu: handle polaris10/11 overlap asics (v2) +- ext4: allocate extended attribute value in vmalloc area +- ext4: avoid unaccounted block allocation when expanding inode +- ext4: initialize quota before expanding inode in setproject ioctl +- ext4: fix inode leak in ext4_xattr_inode_create() on an error path +- ext4: avoid BUG_ON when creating xattrs +- ext4: fix error code return to user-space in ext4_get_branch() +- ext4: fix corruption when online resizing a 1K bigalloc fs +- ext4: fix delayed allocation bug in ext4_clu_mapped for bigalloc + inline +- ext4: init quota for 'old.inode' in 'ext4_rename' +- ext4: check and assert if marking an no_delete evicting inode dirty +- ext4: fix reserved cluster accounting in __es_remove_extent() +- ext4: fix undefined behavior in bit shift for ext4_check_flag_values +- ext4: add inode table check in __ext4_get_inode_loc to aovid possible infinite loop +- ext4: silence the warning when evicting inode with dioread_nolock +- drm/ingenic: Fix missing platform_driver_unregister() call in ingenic_drm_init() +- drm/i915/dsi: fix VBT send packet port selection for dual link DSI +- drm/connector: send hotplug uevent on connector cleanup +- device_cgroup: Roll back to original exceptions after copy failure +- parisc: led: Fix potential null-ptr-deref in start_task() +- remoteproc: core: Do pm_relax when in RPROC_OFFLINE state +- iommu/amd: Fix ivrs_acpihid cmdline parsing code +- driver core: Fix bus_type.match() error handling in __driver_attach() +- crypto: n2 - add missing hash statesize +- PCI/sysfs: Fix double free in error path +- PCI: Fix pci_device_is_present() for VFs by checking PF +- ipmi: fix use after free in _ipmi_destroy_user() +- mtd: spi-nor: Check for zero erase size in spi_nor_find_best_erase_type() +- ipmi: fix long wait in unload when IPMI disconnect +- ASoC: jz4740-i2s: Handle independent FIFO flush bits +- wifi: wilc1000: sdio: fix module autoloading +- efi: Add iMac Pro 2017 to uefi skip cert quirk +- md/bitmap: Fix bitmap chunk size overflow issues +- rtc: ds1347: fix value written to century register +- cifs: fix missing display of three mount options +- cifs: fix confusing debug message +- media: dvb-core: Fix double free in dvb_register_device() +- ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod +- staging: media: tegra-video: fix chan->mipi value on error +- tracing: Fix infinite loop in tracing_read_pipe on overflowed print_trace_line +- tracing/hist: Fix wrong return value in parse_action_params() +- x86/kprobes: Fix kprobes instruction boudary check with CONFIG_RETHUNK +- ftrace/x86: Add back ftrace_expected for ftrace bug reports +- perf/core: Call LSM hook after copying perf_event_attr +- tracing/hist: Fix out-of-bound write on 'action_data.var_ref_idx' +- dm cache: set needs_check flag after aborting metadata +- dm cache: Fix UAF in destroy() +- dm clone: Fix UAF in clone_dtr() +- dm integrity: Fix UAF in dm_integrity_dtr() +- dm thin: Fix UAF in run_timer_softirq() +- dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort +- ALSA: hda/realtek: Apply dual codec fixup for Dell Latitude laptops +- ALSA: patch_realtek: Fix Dell Inspiron Plus 16 +- cpufreq: Init completion before kobject_init_and_add() +- PM/devfreq: governor: Add a private governor_data for governor +- selftests: Use optional USERCFLAGS and USERLDFLAGS +- arm64: dts: qcom: sdm850-lenovo-yoga-c630: correct I2C12 pins drive strength +- ARM: ux500: do not directly dereference __iomem +- btrfs: fix resolving backrefs for inline extent followed by prealloc +- mmc: sdhci-sprd: Disable CLK_AUTO when the clock is less than 400K +- arm64: dts: qcom: sdm845-db845c: correct SPI2 pins drive strength +- jbd2: use the correct print format +- ktest.pl minconfig: Unset configs instead of just removing them +- kest.pl: Fix grub2 menu handling for rebooting +- soc: qcom: Select REMAP_MMIO for LLCC driver +- media: stv0288: use explicitly signed char +- rcu: Prevent lockdep-RCU splats on lock acquisition/release +- torture: Exclude "NOHZ tick-stop error" from fatal errors +- wifi: rtlwifi: 8192de: correct checking of IQK reload +- wifi: rtlwifi: remove always-true condition pointed out by GCC 12 +- net/mlx5e: Fix nullptr in mlx5e_tc_add_fdb_flow() +- ASoC/SoundWire: dai: expand 'stream' concept beyond SoundWire +- ASoC: Intel/SOF: use set_stream() instead of set_tdm_slots() for HDAudio +- kcsan: Instrument memcpy/memset/memmove with newer Clang +- SUNRPC: Don't leak netobj memory when gss_read_proxy_verf() fails +- tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak +- tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak +- tpm: acpi: Call acpi_put_table() to fix memory leak +- mmc: vub300: fix warning - do not call blocking ops when !TASK_RUNNING +- f2fs: should put a page when checking the summary info +- mm, compaction: fix fast_isolate_around() to stay within boundaries +- md: fix a crash in mempool_free +- pnode: terminate at peers of source +- ALSA: line6: fix stack overflow in line6_midi_transmit +- ALSA: line6: correct midi status byte when receiving data from podxt +- ovl: Use ovl mounter's fsuid and fsgid in ovl_link() +- binfmt: Fix error return code in load_elf_fdpic_binary() +- hfsplus: fix bug causing custom uid and gid being unable to be assigned with mount +- pstore/zone: Use GFP_ATOMIC to allocate zone buffer +- HID: plantronics: Additional PIDs for double volume key presses quirk +- HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint +- powerpc/rtas: avoid scheduling in rtas_os_term() +- powerpc/rtas: avoid device tree lookups in rtas_os_term() +- objtool: Fix SEGFAULT +- nvmet: don't defer passthrough commands with trivial effects to the workqueue +- nvme: fix the NVME_CMD_EFFECTS_CSE_MASK definition +- ata: ahci: Fix PCS quirk application for suspend +- nvme-pci: fix page size checks +- cifs: fix oops during encryption +- usb: dwc3: qcom: Fix memory leak in dwc3_qcom_interconnect_init +- pwm: tegra: Fix 32 bit build +- media: dvbdev: fix refcnt bug +- media: dvbdev: fix build warning due to comments +- gcov: add support for checksum field +- regulator: core: fix deadlock on regulator enable +- iio: adc128s052: add proper .data members in adc128_of_match table +- iio: adc: ad_sigma_delta: do not use internal iio_dev lock +- reiserfs: Add missing calls to reiserfs_security_free() +- HID: mcp2221: don't connect hidraw +- HID: wacom: Ensure bootloader PID is usable in hidraw mode +- usb: dwc3: core: defer probe on ulpi_read_id timeout +- usb: dwc3: Fix race between dwc3_set_mode and __dwc3_set_mode +- ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list +- ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB +- ALSA: usb-audio: add the quirk for KT0206 device +- pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES +- afs: Fix lost servers_outstanding count +- perf debug: Set debug_peo_args and redirect_to_stderr variable to correct values in perf_quiet_option() +- pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion +- LoadPin: Ignore the "contents" argument of the LSM hooks +- ASoC: rt5670: Remove unbalanced pm_runtime_put() +- ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in rk_spdif_runtime_resume() +- ASoC: wm8994: Fix potential deadlock +- ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in rockchip_pdm_runtime_resume() +- ASoC: audio-graph-card: fix refcount leak of cpu_ep in __graph_for_each_link() +- ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in mt8173_rt5650_rt5514_dev_probe() +- ASoC: Intel: Skylake: Fix driver hang during shutdown +- ALSA: hda: add snd_hdac_stop_streams() helper +- ALSA/ASoC: hda: move/rename snd_hdac_ext_stop_streams to hdac_stream.c +- hwmon: (jc42) Fix missing unlock on error in jc42_write() +- orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init() +- orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string() +- drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid() +- drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid() +- hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param() +- clk: st: Fix memory leak in st_of_quadfs_setup() +- media: si470x: Fix use-after-free in si470x_int_in_callback() +- mmc: renesas_sdhi: better reset from HS400 mode +- mmc: f-sdh30: Add quirks for broken timeout clock capability +- regulator: core: fix use_count leakage when handling boot-on +- libbpf: Avoid enum forward-declarations in public API in C++ mode +- blk-mq: fix possible memleak when register 'hctx' failed +- media: dvb-usb: fix memory leak in dvb_usb_adapter_init() +- media: dvbdev: adopts refcnt to avoid UAF +- media: dvb-frontends: fix leak of memory fw +- ethtool: avoiding integer overflow in ethtool_phys_id() +- mrp: introduce active flags to prevent UAF when applicant uninit +- drm/amd/display: fix array index out of bound error in bios parser +- drivers/md/md-bitmap: check the return value of md_bitmap_get_counter() +- drm/sti: Use drm_mode_copy() +- drm/rockchip: Use drm_mode_copy() +- drm/msm: Use drm_mode_copy() +- s390/lcs: Fix return type of lcs_start_xmit() +- s390/netiucv: Fix return type of netiucv_tx() +- s390/ctcm: Fix return type of ctc{mp,}m_tx() +- drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback +- drm/amdgpu: Fix type of second parameter in trans_msg() callback +- igb: Do not free q_vector unless new one was allocated +- wifi: brcmfmac: Fix potential shift-out-of-bounds in brcmf_fw_alloc_request() +- hamradio: baycom_epp: Fix return type of baycom_send_packet() +- net: ethernet: ti: Fix return type of netcp_ndo_start_xmit() +- qed (gcc13): use u16 for fid to be big enough +- ipmi: fix memleak when unload ipmi driver +- ASoC: codecs: rt298: Add quirk for KBL-R RVP platform +- wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out +- wifi: ath9k: verify the expected usb_endpoints are present +- brcmfmac: return error when getting invalid max_flowrings from dongle +- drm/etnaviv: add missing quirks for GC300 +- hfs: fix OOB Read in __hfs_brec_find +- acct: fix potential integer overflow in encode_comp_t() +- nilfs2: fix shift-out-of-bounds due to too large exponent of block size +- nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset() +- ACPICA: Fix error code path in acpi_ds_call_control_method() +- fs: jfs: fix shift-out-of-bounds in dbDiscardAG +- udf: Avoid double brelse() in udf_rename() +- fs: jfs: fix shift-out-of-bounds in dbAllocAG +- binfmt_misc: fix shift-out-of-bounds in check_special_flags +- x86/hyperv: Remove unregister syscore call from Hyper-V cleanup +- video: hyperv_fb: Avoid taking busy spinlock on panic path +- arm64: make is_ttbrX_addr() noinstr-safe +- rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state() +- net: stream: purge sk_error_queue in sk_stream_kill_queues() +- myri10ge: Fix an error handling path in myri10ge_probe() +- rxrpc: Fix missing unlock in rxrpc_do_sendmsg() +- net_sched: reject TCF_EM_SIMPLE case for complex ematch module +- mailbox: zynq-ipi: fix error handling while device_register() fails +- skbuff: Account for tail adjustment during pull operations +- openvswitch: Fix flow lookup to use unmasked key +- selftests: devlink: fix the fd redirect in dummy_reporter_test +- rtc: mxc_v2: Add missing clk_disable_unprepare() +- igc: Set Qbv start_time and end_time to end_time if not being configured in GCL +- igc: Lift TAPRIO schedule restriction +- igc: recalculate Qbv end_time by considering cycle time +- igc: Add checking for basetime less than zero +- igc: Use strict cycles for Qbv scheduling +- igc: Enhance Qbv scheduling by using first flag bit +- net: add a helper to avoid issues with HW TX timestamping and SO_TXTIME +- r6040: Fix kmemleak in probe and remove +- nfc: pn533: Clear nfc_target before being used +- mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() +- mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() +- mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under spin_lock_irqsave() +- net: macsec: fix net device access prior to holding a lock +- nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure +- NFSD: Remove spurious cb_setup_err tracepoint +- rtc: pcf85063: fix pcf85063_clkout_control +- rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe() +- rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe() +- netfilter: flowtable: really fix NAT IPv6 offload +- powerpc/pseries/eeh: use correct API for error log size +- powerpc/eeh: Drop redundant spinlock initialization +- remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in adsp_alloc_memory_region() +- remoteproc: qcom_q6v5_pas: detach power domains on remove +- remoteproc: qcom_q6v5_pas: disable wakeup on probe fail or remove +- remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev() +- pwm: sifive: Call pwm_sifive_update_clock() while mutex is held +- iommu/sun50i: Remove IOMMU_DOMAIN_IDENTITY +- selftests/powerpc: Fix resource leaks +- powerpc/hv-gpci: Fix hv_gpci event list +- powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in of_fsl_spi_probe() +- powerpc/perf: callchain validate kernel stack pointer bounds +- kbuild: refactor single builds of *.ko +- kbuild: unify modules(_install) for in-tree and external modules +- kbuild: remove unneeded mkdir for external modules_install +- powerpc/xive: add missing iounmap() in error path in xive_spapr_populate_irq_data() +- powerpc/xmon: Fix -Wswitch-unreachable warning in bpt_cmds +- powerpc/xmon: Enable breakpoints on 8xx +- cxl: Fix refcount leak in cxl_calc_capp_routing +- powerpc/52xx: Fix a resource leak in an error handling path +- macintosh/macio-adb: check the return value of ioremap() +- macintosh: fix possible memory leak in macio_add_one_device() +- iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe() +- iommu/amd: Fix pci device refcount leak in ppr_notifier() +- rtc: pcf85063: Fix reading alarm +- rtc: snvs: Allow a time difference on clock register read +- rtc: cmos: Disable ACPI RTC event on removal +- rtc: cmos: Rename ACPI-related functions +- rtc: cmos: Eliminate forward declarations of some functions +- rtc: cmos: Call rtc_wake_setup() from cmos_do_probe() +- rtc: cmos: Call cmos_wake_setup() from cmos_do_probe() +- rtc: cmos: fix build on non-ACPI platforms +- rtc: cmos: Fix wake alarm breakage +- rtc: cmos: Fix event handler registration ordering issue +- rtc: rtc-cmos: Do not check ACPI_FADT_LOW_POWER_S0 +- pwm: tegra: Improve required rate calculation +- include/uapi/linux/swab: Fix potentially missing __always_inline +- phy: usb: s2 WoL wakeup_count not incremented for USB->Eth devices +- iommu/sun50i: Fix flush size +- iommu/sun50i: Fix R/W permission check +- iommu/sun50i: Consider all fault sources for reset +- iommu/sun50i: Fix reset release +- RDMA/siw: Fix pointer cast warning +- power: supply: fix null pointer dereferencing in power_supply_get_battery_info +- HSI: omap_ssi_core: Fix error handling in ssi_init() +- perf symbol: correction while adjusting symbol +- perf trace: Handle failure when trace point folder is missed +- perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number +- perf trace: Return error if a system call doesn't exist +- power: supply: fix residue sysfs file in error handle route of __power_supply_register() +- HSI: omap_ssi_core: fix possible memory leak in ssi_probe() +- HSI: omap_ssi_core: fix unbalanced pm_runtime_disable() +- fbdev: uvesafb: Fixes an error handling path in uvesafb_probe() +- fbdev: vermilion: decrease reference count in error path +- fbdev: via: Fix error in via_core_init() +- fbdev: pm2fb: fix missing pci_disable_device() +- fbdev: ssd1307fb: Drop optional dependency +- thermal/drivers/imx8mm_thermal: Validate temperature range +- samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe() +- tracing/hist: Fix issue of losting command info in error_log +- usb: storage: Add check for kcalloc +- i2c: mux: reg: check return value after calling platform_get_resource() +- gpiolib: cdev: fix NULL-pointer dereferences +- gpiolib: Get rid of redundant 'else' +- vme: Fix error not catched in fake_init() +- staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor() +- staging: rtl8192u: Fix use after free in ieee80211_rx() +- i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe +- chardev: fix error handling in cdev_device_add() +- mcb: mcb-parse: fix error handing in chameleon_parse_gdd() +- drivers: mcb: fix resource leak in mcb_probe() +- usb: gadget: f_hid: fix refcount leak on error path +- usb: gadget: f_hid: fix f_hidg lifetime vs cdev +- usb: gadget: f_hid: optional SETUP/SET_REPORT mode +- usb: roles: fix of node refcount leak in usb_role_switch_is_parent() +- counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update +- iio: adis: add '__adis_enable_irq()' implementation +- iio:imu:adis: Move exports into IIO_ADISLIB namespace +- iio: adis: stylistic changes +- iio: adis: handle devices that cannot unmask the drdy pin +- iio:imu:adis: Use IRQF_NO_AUTOEN instead of irq request then disable +- iio: temperature: ltc2983: make bulk write buffer DMA-safe +- cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter() +- cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter() +- firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe() +- misc: tifm: fix possible memory leak in tifm_7xx1_switch_media() +- ocxl: fix pci device refcount leak when calling get_function_0() +- misc: ocxl: fix possible name leak in ocxl_file_register_afu() +- test_firmware: fix memory leak in test_firmware_init() +- serial: sunsab: Fix error handling in sunsab_init() +- serial: altera_uart: fix locking in polling mode +- tty: serial: altera_uart_{r,t}x_chars() need only uart_port +- tty: serial: clean up stop-tx part in altera_uart_tx_chars() +- serial: pch: Fix PCI device refcount leak in pch_request_dma() +- serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle. +- serial: amba-pl011: avoid SBSA UART accessing DMACR register +- usb: typec: tipd: Fix spurious fwnode_handle_put in error path +- usb: typec: tcpci: fix of node refcount leak in tcpci_register_port() +- usb: typec: Check for ops->exit instead of ops->enter in altmode_exit +- staging: vme_user: Fix possible UAF in tsi148_dma_list_add +- usb: fotg210-udc: Fix ages old endianness issues +- uio: uio_dmem_genirq: Fix deadlock between irq config and handling +- uio: uio_dmem_genirq: Fix missing unlock in irq configuration +- vfio: platform: Do not pass return buffer to ACPI _RST method +- class: fix possible memory leak in __class_register() +- serial: tegra: Read DMA status before terminating +- drivers: dio: fix possible memory leak in dio_init() +- IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces +- hwrng: geode - Fix PCI device refcount leak +- hwrng: amd - Fix PCI device refcount leak +- crypto: img-hash - Fix variable dereferenced before check 'hdev->req' +- orangefs: Fix sysfs not cleanup when dev init failed +- RDMA/srp: Fix error return code in srp_parse_options() +- RDMA/hfi1: Fix error return code in parse_platform_config() +- riscv/mm: add arch hook arch_clear_hugepage_flags +- crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe() +- crypto: amlogic - Remove kcalloc without check +- RDMA/nldev: Fix failure to send large messages +- f2fs: avoid victim selection from previous victim section +- RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps() +- scsi: snic: Fix possible UAF in snic_tgt_create() +- scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails +- scsi: ipr: Fix WARNING in ipr_init() +- scsi: scsi_debug: Fix possible name leak in sdebug_add_host_helper() +- scsi: fcoe: Fix possible name leak when device_register() fails +- scsi: scsi_debug: Fix a warning in resp_report_zones() +- scsi: scsi_debug: Fix a warning in resp_verify() +- scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device() +- scsi: hpsa: Fix error handling in hpsa_add_sas_host() +- scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add() +- padata: Fix list iterator in padata_do_serial() +- padata: Always leave BHs disabled when running ->parallel() +- crypto: tcrypt - Fix multibuffer skcipher speed test mem leak +- scsi: hpsa: Fix possible memory leak in hpsa_init_one() +- RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create failed +- crypto: ccree - Make cc_debugfs_global_fini() available for module init function +- RDMA/hfi: Decrease PCI device reference count in error path +- PCI: Check for alloc failure in pci_request_irq() +- crypto: cryptd - Use request context instead of stack for sub-request +- crypto: ccree - Remove debugfs when platform_driver_register failed +- scsi: scsi_debug: Fix a warning in resp_write_scat() +- RDMA/siw: Set defined status for work completion with undefined status +- RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port +- RDMA/siw: Fix immediate work request flush to completion queue +- f2fs: fix normal discard process +- apparmor: Fix memleak in alloc_ns() +- crypto: rockchip - rework by using crypto_engine +- crypto: rockchip - delete unneeded variable initialization +- crypto: rockchip - remove non-aligned handling +- crypto: rockchip - better handle cipher key +- crypto: rockchip - add fallback for ahash +- crypto: rockchip - add fallback for cipher +- crypto: rockchip - do not store mode globally +- crypto: rockchip - do not do custom power management +- f2fs: Fix the race condition of resize flag between resizefs +- PCI: pci-epf-test: Register notifier if only core_init_notifier is enabled +- RDMA/core: Fix order of nldev_exit call +- PCI: dwc: Fix n_fts[] array overrun +- apparmor: Use pointer to struct aa_label for lbs_cred +- scsi: core: Fix a race between scsi_done() and scsi_timeout() +- crypto: nitrox - avoid double free on error path in nitrox_sriov_init() +- crypto: sun8i-ss - use dma_addr instead u32 +- apparmor: Fix abi check to include v8 abi +- apparmor: fix lockdep warning when removing a namespace +- apparmor: fix a memleak in multi_transaction_new() +- stmmac: fix potential division by 0 +- Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave() +- Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave() +- Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave() +- Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave() +- Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave() +- Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave() +- Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave() +- sctp: sysctl: make extra pointers netns aware +- ntb_netdev: Use dev_kfree_skb_any() in interrupt context +- net: lan9303: Fix read error execution path +- can: tcan4x5x: Remove invalid write in clear_interrupts +- net: amd-xgbe: Check only the minimum speed for active/passive cables +- net: amd-xgbe: Fix logic around active and passive cables +- net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave() +- hamradio: don't call dev_kfree_skb() under spin_lock_irqsave() +- net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave() +- net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave() +- net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave() +- net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave() +- net/tunnel: wait until all sk_user_data reader finish before releasing the sock +- net: farsync: Fix kmemleak when rmmods farsync +- ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave() +- of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() and find_dup_cset_prop() +- drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init() +- net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload() +- net: defxx: Fix missing err handling in dfx_init() +- net: vmw_vsock: vmci: Check memcpy_from_msg() +- clk: socfpga: Fix memory leak in socfpga_gate_init() +- clk: socfpga: use clk_hw_register for a5/c5 +- clk: socfpga: clk-pll: Remove unused variable 'rc' +- blktrace: Fix output non-blktrace event when blk_classic option enabled +- wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware() +- wifi: rtl8xxxu: Fix the channel width reporting +- wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h +- spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode +- clk: samsung: Fix memory leak in _samsung_clk_register_pll() +- media: coda: Add check for kmalloc +- media: coda: Add check for dcoda_iram_alloc +- media: c8sectpfe: Add of_node_put() when breaking out of loop +- mmc: mmci: fix return value check of mmc_add_host() +- mmc: wbsd: fix return value check of mmc_add_host() +- mmc: via-sdmmc: fix return value check of mmc_add_host() +- mmc: meson-gx: fix return value check of mmc_add_host() +- mmc: omap_hsmmc: fix return value check of mmc_add_host() +- mmc: atmel-mci: fix return value check of mmc_add_host() +- mmc: wmt-sdmmc: fix return value check of mmc_add_host() +- mmc: vub300: fix return value check of mmc_add_host() +- mmc: toshsd: fix return value check of mmc_add_host() +- mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host() +- mmc: pxamci: fix return value check of mmc_add_host() +- mmc: mxcmmc: fix return value check of mmc_add_host() +- mmc: moxart: fix return value check of mmc_add_host() +- mmc: alcor: fix return value check of mmc_add_host() +- NFSv4.x: Fail client initialisation if state manager thread can't run +- SUNRPC: Fix missing release socket in rpc_sockname() +- xprtrdma: Fix regbuf data not freed in rpcrdma_req_create() +- ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt +- media: saa7164: fix missing pci_disable_device() +- ALSA: pcm: Set missing stop_operating flag at undoing trigger start +- hwmon: (jc42) Restore the min/max/critical temperatures on resume +- hwmon: (jc42) Convert register access and caching to regmap/regcache +- regulator: core: fix resource leak in regulator_register() +- configfs: fix possible memory leak in configfs_create_dir() +- hsr: Synchronize sequence number updates. +- hsr: Synchronize sending frames to have always incremented outgoing seq nr. +- hsr: Disable netpoll. +- net: hsr: generate supervision frame without HSR/PRP tag +- hsr: Add a rcu-read lock to hsr_forward_skb(). +- clk: qcom: clk-krait: fix wrong div2 functions +- regulator: core: fix module refcount leak in set_supply() +- wifi: mt76: fix coverity overrun-call in mt76_get_txpower() +- wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys() fails +- wifi: mac80211: fix memory leak in ieee80211_if_add() +- spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE +- bonding: uninitialized variable in bond_miimon_inspect() +- netfilter: conntrack: set icmpv6 redirects as RELATED +- ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe +- drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios() +- drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios() +- drm/amd/pm/smu11: BACO is supported when it's in BACO state +- ASoC: mediatek: mt8173: Enable IRQ when pdata is ready +- ASoC: mediatek: mt8173: Fix debugfs registration for components +- wifi: iwlwifi: mvm: fix double free on tx path. +- ALSA: asihpi: fix missing pci_disable_device() +- NFS: Fix an Oops in nfs_d_automount() +- NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn +- NFSv4.2: Fix initialisation of struct nfs4_label +- NFSv4.2: Fix a memory stomp in decode_attr_security_label +- NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding +- ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd +- ASoC: dt-bindings: wcd9335: fix reset line polarity in example +- drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe() +- media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC +- media: dvb-core: Fix ignored return value in dvb_register_frontend() +- pinctrl: pinconf-generic: add missing of_node_put() +- clk: imx: replace osc_hdmi with dummy +- media: imon: fix a race condition in send_packet() +- media: vimc: Fix wrong function called when vimc_init() fails +- ASoC: qcom: Add checks for devm_kcalloc +- drbd: fix an invalid memory access caused by incorrect use of list iterator +- mtd: maps: pxa2xx-flash: fix memory leak in probe +- bonding: fix link recovery in mode 2 when updelay is nonzero +- drm/amdgpu: fix pci device refcount leak +- clk: rockchip: Fix memory leak in rockchip_clk_register_pll() +- regulator: core: use kfree_const() to free space conditionally +- ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT +- ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT +- HID: hid-sensor-custom: set fixed size for custom attributes +- bpf: Move skb->len == 0 checks into __bpf_redirect +- inet: add READ_ONCE(sk->sk_bound_dev_if) in inet_csk_bind_conflict() +- media: videobuf-dma-contig: use dma_mmap_coherent +- media: platform: exynos4-is: Fix error handling in fimc_md_init() +- media: solo6x10: fix possible memory leak in solo_sysfs_init() +- media: vidtv: Fix use-after-free in vidtv_bridge_dvb_init() +- Input: elants_i2c - properly handle the reset GPIO when power is off +- mtd: lpddr2_nvm: Fix possible null-ptr-deref +- wifi: ath10k: Fix return value in ath10k_pci_init() +- ima: Fix misuse of dereference of pointer in template_desc_init_fields() +- integrity: Fix memory leakage in keyring allocation error path +- drm/fourcc: Fix vsub/hsub for Q410 and Q401 +- drm/fourcc: Add packed 10bit YUV 4:2:0 format +- amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table() +- regulator: core: fix unbalanced of node refcount in regulator_dev_lookup() +- ASoC: pxa: fix null-pointer dereference in filter() +- drm/mediatek: Modify dpi power on/off sequence. +- drm/radeon: Add the missed acpi_put_table() to fix memory leak +- rxrpc: Fix ack.bufferSize to be 0 when generating an ack +- net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write() +- media: camss: Clean up received buffers on failed start of streaming +- wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port +- Input: joystick - fix Kconfig warning for JOYSTICK_ADC +- mtd: Fix device name leak when register device failed in add_mtd_device() +- clk: qcom: gcc-sm8250: Use retention mode for USB GDSCs +- bpf: propagate precision across all frames, not just the last one +- bpf: Check the other end of slot_type for STACK_SPILL +- bpf: propagate precision in ALU/ALU64 operations +- media: platform: exynos4-is: fix return value check in fimc_md_probe() +- bpf: Fix slot type check in check_stack_write_var_off +- drm/msm/hdmi: drop unused GPIO support +- drm/msm/hdmi: switch to drm_bridge_connector +- ima: Fix fall-through warnings for Clang +- drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure +- spi: Update reference to struct spi_controller +- clk: renesas: r9a06g032: Repair grave increment error +- drm/rockchip: lvds: fix PM usage counter unbalance in poweron +- can: kvaser_usb: Compare requested bittiming parameters with actual parameters in do_set_{,data}_bittiming +- can: kvaser_usb: Add struct kvaser_usb_busparams +- can: kvaser_usb_leaf: Fix bogus restart events +- can: kvaser_usb_leaf: Fix wrong CAN state after stopping +- can: kvaser_usb_leaf: Fix improved state not being reported +- can: kvaser_usb_leaf: Set Warning state even without bus errors +- can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT +- can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to {leaf,usbcan}_cmd_can_error_event +- can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device +- can: kvaser_usb: do not increase tx statistics when sending error message frames +- media: exynos4-is: don't rely on the v4l2_async_subdev internals +- media: exynos4-is: Use v4l2_async_notifier_add_fwnode_remote_subdev +- venus: pm_helpers: Fix error check in vcodec_domains_get() +- media: i2c: ad5820: Fix error path +- media: coda: jpeg: Add check for kmalloc +- pata_ipx4xx_cf: Fix unsigned comparison with less than zero +- drm/bridge: adv7533: remove dynamic lane switching from adv7533 bridge +- wifi: rtl8xxxu: Fix reading the vendor of combo chips +- wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb() +- wifi: ath9k: hif_usb: fix memory leak of urbs in ath9k_hif_usb_dealloc_tx_urbs() +- rapidio: devices: fix missing put_device in mport_cdev_open +- hfs: Fix OOB Write in hfs_asc2mac +- relay: fix type mismatch when allocating memory in relay_create_buf() +- eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD +- rapidio: fix possible UAF when kfifo_alloc() fails +- fs: sysv: Fix sysv_nblocks() returns wrong value +- MIPS: OCTEON: warn only once if deprecated link status is being used +- MIPS: BCM63xx: Add check for NULL for clk in clk_enable +- platform/x86: intel_scu_ipc: fix possible name leak in __intel_scu_ipc_register() +- platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]() +- PM: runtime: Do not call __rpm_callback() from rpm_idle() +- PM: runtime: Improve path in rpm_idle() when no callback +- xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource() +- x86/xen: Fix memory leak in xen_init_lock_cpu() +- x86/xen: Fix memory leak in xen_smp_intr_init{_pv}() +- uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix +- ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage() +- clocksource/drivers/timer-ti-dm: Fix missing clk_disable_unprepare in dmtimer_systimer_init_clock() +- cpu/hotplug: Make target_store() a nop when target == state +- futex: Resend potentially swallowed owner death notification +- futex: Move to kernel/futex/ +- clocksource/drivers/sh_cmt: Access registers according to spec +- clocksource/drivers/sh_cmt: Make sure channel clock supply is enabled +- rapidio: rio: fix possible name leak in rio_register_mport() +- rapidio: fix possible name leaks when rio_add_device() fails +- ocfs2: fix memory leak in ocfs2_mount_volume() +- ocfs2: rewrite error handling of ocfs2_fill_super +- ocfs2: ocfs2_mount_volume does cleanup job before return error +- debugfs: fix error when writing negative value to atomic_t debugfs file +- docs: fault-injection: fix non-working usage of negative values +- lib/notifier-error-inject: fix error when writing -errno to debugfs file +- libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value +- cpufreq: amd_freq_sensitivity: Add missing pci_dev_put() +- genirq/irqdesc: Don't try to remove non-existing sysfs files +- nfsd: don't call nfsd_file_put from client states seqfile display +- EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper() +- irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe() +- platform/chrome: cros_usbpd_notify: Fix error handling in cros_usbpd_notify_init() +- perf/x86/intel/uncore: Fix reference count leak in __uncore_imc_init_box() +- perf/x86/intel/uncore: Fix reference count leak in snr_uncore_mmio_map() +- perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox() +- PNP: fix name memory leak in pnp_alloc_dev() +- selftests/efivarfs: Add checking of the test return value +- MIPS: vpe-cmp: fix possible memory leak while module exiting +- MIPS: vpe-mt: fix possible memory leak while module exiting +- ocfs2: fix memory leak in ocfs2_stack_glue_init() +- lib/fonts: fix undefined behavior in bit shift for get_default_font +- proc: fixup uptime selftest +- timerqueue: Use rb_entry_safe() in timerqueue_getnext() +- platform/x86: huawei-wmi: fix return value calculation +- lib/debugobjects: fix stat count and optimize debug_objects_mem_init +- perf: Fix possible memleak in pmu_dev_alloc() +- selftests/ftrace: event_triggers: wait longer for test_event_enable +- cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut() +- fs: don't audit the capability check in simple_xattr_list() +- PM: hibernate: Fix mistake in kerneldoc comment +- alpha: fix syscall entry in !AUDUT_SYSCALL case +- cpuidle: dt: Return the correct numbers of parsed idle states +- sched/uclamp: Fix relationship between uclamp and migration margin +- sched/fair: Cleanup task_util and capacity type +- tpm/tpm_crb: Fix error message in __crb_relinquish_locality() +- tpm/tpm_ftpm_tee: Fix error handling in ftpm_mod_init() +- pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP +- ARM: mmp: fix timer_read delay +- pstore/ram: Fix error return code in ramoops_probe() +- arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC +- ARM: dts: turris-omnia: Add switch port 6 node +- ARM: dts: turris-omnia: Add ethernet aliases +- ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port +- ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port +- ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port +- ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port +- ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port +- ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port +- arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name +- arm64: dts: mediatek: pumpkin-common: Fix devicetree warnings +- arm64: dts: mt2712-evb: Fix usb vbus regulators unit names +- arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names +- arm64: dts: mt2712e: Fix unit address for pinctrl node +- arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators +- arm64: dts: ti: k3-j721e-main: Drop dma-coherent in crypto node +- arm64: dts: ti: k3-am65-main: Drop dma-coherent in crypto node +- perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init() +- perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init() +- soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe +- soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe +- soc: ti: knav_qmss_queue: Use pm_runtime_resume_and_get instead of pm_runtime_get_sync +- arm: dts: spear600: Fix clcd interrupt +- soc: qcom: apr: Add check for idr_alloc and of_property_read_string_index +- soc: qcom: apr: make code more reuseable +- soc: qcom: llcc: make irq truly optional +- drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static +- ARM: dts: stm32: Fix AV96 WLAN regulator gpio property +- ARM: dts: stm32: Drop stm32mp15xc.dtsi from Avenger96 +- objtool, kcsan: Add volatile read/write instrumentation to whitelist +- arm64: dts: qcom: msm8916: Drop MSS fallback compatible +- arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias +- arm64: dts: qcom: sdm630: fix UART1 pin bias +- ARM: dts: qcom: apq8064: fix coresight compatible +- arm64: dts: qcom: msm8996: fix GPU OPP table +- arm64: dts: qcom: ipq6018-cp01-c1: use BLSPI1 pins +- usb: musb: remove extra check in musb_gadget_vbus_draw +- !1680 nvme-pci: fix doorbell buffer value endianness +- !1693 nvme-pci: fix mempool alloc size +- ksmbd: fix out of bounds read in smb2_sess_setup +- !1666 nvme-pci: fix timeout request state check +- arm64/mpam: mark partid non-exclusive if self-owned +- !1709 Backport cgroup: fix missing cpus_read_{lock,unlock}() in cgroup_transfer_tasks() +- !1713 netfilter: nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID +- net/sched: cls_route: No longer copy tcf_result on update to avoid use-after-free +- net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-free +- net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-free +- timers: Keep del_timer[_sync]() exported +- timers: Provide timer_shutdown[_sync]() +- timers: Add shutdown mechanism to the internal functions +- timers: Split [try_to_]del_timer[_sync]() to prepare for shutdown mode +- timers: Silently ignore timers with a NULL function +- timers: Rename del_timer() to timer_delete() +- timers: Rename del_timer_sync() to timer_delete_sync() +- timers: Use del_timer_sync() even on UP +- timers: Update kernel-doc for various functions +- timers: Replace BUG_ON()s +- timers: Get rid of del_singleshot_timer_sync() +- sw64: Do not use timer namespace for timer_shutdown() function +- clocksource/drivers/sp804: Do not use timer namespace for timer_shutdown() function +- clocksource/drivers/arm_arch_timer: Do not use timer namespace for timer_shutdown() function +- ARM: spear: Do not use timer namespace for timer_shutdown() function +- !1201 [sync] PR-1144: crypto: hisilicon/qm: modify loop exit condition +- !1719 net: hns3: revert "net: hns3: disbable pfc en before the reset" and backport the mainline +- !1597 Fix the bugs of 3SNIC driver compilation failure while using clang +- RDMA/hns: Fix missing dealloc_dfx_cnt() during device unregister +- net: hns3: fix sending pfc frames after reset issue +- net: hns3: support set pfc pause trans time +- Revert "net: hns3: support set pfc pause trans time" +- Revert "net: hns3: disbable pfc en before the reset" +- !1683 net: hns3: revert some bugfix and backport some patch +- !1630 sched: Add feature 'UTIL_TASKGROUP' for dynamic affinity +- !1711 xfrm: add NULL check in xfrm_update_ae_params +- net: hns3: add tm flush when setting tm +- net: hns3: fix the imp capability bit cannot exceed 32 bits issue +- net: hns3: support debugfs for wake on lan +- net: hns3: support wake on lan configuration and query +- Revert "net: hns3: support wake on lan configuration and query" +- Revert "net: hns3: support debugfs for wake on lan" +- Revert "net: hns3: fix getting supported parameter from driver in hclge_set_wol" +- Revert "net: hns3: fix the HCLGE_OPC_WOL_CFG opcode id for wol" +- Revert "net: hns3: sync linux kernel hns3 wol to openeuler" +- Revert "net: hns3: fix pointer cast to different type for wol" +- Revert "net: hns3: fix the imp capability bit cannot exceed 32 bits issue" +- Revert "net: hns3: add tm flush when setting tm" +- !1707 Mainline bugfix patches backport 5.10 +- !1660 remove cpu.qos_leve from root cpu cgroup +- sched/doc: Update the CPU capacity asymmetry bits +- sched/topology: Rework CPU capacity asymmetry detection +- sched/core: Introduce SD_ASYM_CPUCAPACITY_FULL sched_domain flag +- RDMA/hns: Add clear_hem return value to log +- RDMA/hns: Fix hns_roce_table_get return value +- Revert "RDMA/hns: Fix hns_roce_table_get return value" +- Revert "RDMA/hns: Add clear_hem return value to log" +- RDMA/hns: Modify the value of long message loopback slice +- RDMA/hns: Fix base address table allocation +- RDMA/hns: Fix timeout attr in query qp for HIP08 +- Revert "RDMA/hns: Fix timeout attr in query qp for HIP08" +- Revert "RDMA/hns: Fix base address table allocation" +- Revert "RDMA/hns: Modify the value of long message loopback slice" +- netfilter: nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID +- xfrm: add NULL check in xfrm_update_ae_params +- !1618 LoongArch: fix some config not defined +- cgroup: fix missing cpus_read_{lock,unlock}() in cgroup_transfer_tasks() +- cgroup: Use cgroup_attach_{lock,unlock}() from cgroup_attach_task_all() +- driver core: Update device link status properly for device_bind_driver() +- lib/genalloc.c: change return type to unsigned long for bitmap_set_ll +- bus: arm-integrator-lm: Add of_node_put() before return statement +- lib/cmdline: fix get_option() for strings starting with hyphen +- !1682 netfilter: nft_set_pipapo: fix improper element removal +- nvme-pci: fix mempool alloc size +- !1690 uacce: delete the pointer address printing +- uacce: delete the pointer address printing +- sched/fair: introduce cgroup level smt expell +- !1672 tty: fix pid memleak in disassociate_ctty() +- !1268 [sync] PR-1070: crypto: hisilicon - fix some reset problem +- netfilter: nft_set_pipapo: fix improper element removal +- nvme-pci: fix doorbell buffer value endianness +- tty: fix pid memleak in disassociate_ctty() +- !1659 vfio-pci: Match specific devices with vendor id and device id +- !1657 media: usb: siano: Fix CVE-2023-4132 +- nvme-pci: fix timeout request state check +- !1522 Allow bpf_get_netns_cookie in BPF_PROG_TYPE_SK_MSG and BPF_PROG_TYPE_SOCK_OPS +- sched/fair: remove cpu.qos_leve from root cpu cgroup +- vfio-pci: Match specific devices with vendor id and device id +- media: usb: siano: Fix warning due to null work_func_t function pointer +- media: usb: siano: Fix use after free bugs caused by do_submit_urb +- !1596 ksmbd: fix out-of-bound read in deassemble_neg_contexts() +- mm: disable kernelcore=mirror when no mirror memory +- loongarch/config: Enable TPM TIS customization +- loongarch/kvm: Fixed extioi hardware emulation bugs +- !1605 CVE-2023-38430 +- !1551 ksmbd: allocate one more byte for implied bcc[0 +- !1580 tracing: Fix warning in trace_buffered_event_disable() +- !1604 net: nfc: Fix CVE-2023-3863 +- !1555 net: hns3: fix setting wrong tx_timeout value issue and synchronizes the differences between the kernel and openeuler +- !1611 sched: Fix build error for dynamic_affinity_enable() +- sched: Add feature 'UTIL_TASKGROUP' for dynamic affinity +- net: hns3: fix wrong bw weight of disabled tc issue +- net: hns3: fix wrong tc bandwidth weight data issue +- !1621 fix three CVEs by backport mainline patchs +- ksmbd: fix racy issue from session setup and logoff +- ksmbd: Fix spelling mistake "excceed" -> "exceeded" +- ksmbd: limit pdu length size according to connection status +- ksmbd: Implements sess->ksmbd_chann_list as xarray +- !1578 Backport 5.10.160 - 5.10.162 LTS patches from upstream. +- Fix the bugs of 3SNIC driver compilation failure while using clang +- LoongArch: fix CONFIG_TRACE_IRQFLAGS_SUPPORT not defined +- LoongArch: fix CONFIG_ZONE_DMA32 not defined +- LoongArch: fix percpu area not allocated as expected +- !1591 net/sched: cls_u32: Fix reference counter leak leading to overflow +- sched: Fix build error for dynamic_affinity_enable() +- ksmbd: validate smb request protocol id +- ksmbd: define SMB2_COMPRESSION_TRANSFORM_ID in fs/ksmbd/smb2pdu.h +- net: nfc: Fix use-after-free caused by nfc_llcp_find_local +- nfc: llcp: simplify llcp_sock_connect() error paths +- !1581 psi: fix compile error for psi cgroupv1 when CONFIG_CGROUP=n +- !1547 binder: fix UAF caused by faulty buffer cleanup +- ksmbd: fix out-of-bound read in deassemble_neg_contexts() +- !1585 ksmbd: fix global-out-of-bounds in smb2_find_context_vals +- io_uring: pass in EPOLL_URING_WAKE for eventfd signaling and wakeups +- eventfd: provide a eventfd_signal_mask() helper +- eventpoll: add EPOLL_URING_WAKE poll wakeup flag +- Revert "proc: don't allow async path resolution of /proc/self components" +- Revert "proc: don't allow async path resolution of /proc/thread-self components" +- net/sched: cls_u32: Fix reference counter leak leading to overflow +- ksmbd: fix global-out-of-bounds in smb2_find_context_vals +- psi: fix compile error for psi cgroupv1 when CONFIG_CGROUP=n +- tracing: Fix warning in trace_buffered_event_disable() +- task_work: unconditionally run task_work from get_signal() +- signal: kill JOBCTL_TASK_WORK +- kernel: stop masking signals in create_io_thread() +- entry/kvm: Exit to user mode when TIF_NOTIFY_SIGNAL is set +- kernel: allow fork with TIF_NOTIFY_SIGNAL pending +- task_work: remove legacy TWA_SIGNAL path +- alpha: fix TIF_NOTIFY_SIGNAL handling +- ARC: unbork 5.11 bootup: fix snafu in _TIF_NOTIFY_SIGNAL handling +- ia64: don't call handle_signal() unless there's actually a signal queued +- sparc: add support for TIF_NOTIFY_SIGNAL +- nds32: add support for TIF_NOTIFY_SIGNAL +- ia64: add support for TIF_NOTIFY_SIGNAL +- h8300: add support for TIF_NOTIFY_SIGNAL +- c6x: add support for TIF_NOTIFY_SIGNAL +- alpha: add support for TIF_NOTIFY_SIGNAL +- xtensa: add support for TIF_NOTIFY_SIGNAL +- microblaze: add support for TIF_NOTIFY_SIGNAL +- hexagon: add support for TIF_NOTIFY_SIGNAL +- csky: add support for TIF_NOTIFY_SIGNAL +- openrisc: add support for TIF_NOTIFY_SIGNAL +- sh: add support for TIF_NOTIFY_SIGNAL +- um: add support for TIF_NOTIFY_SIGNAL +- s390: add support for TIF_NOTIFY_SIGNAL +- mips: add support for TIF_NOTIFY_SIGNAL +- parisc: add support for TIF_NOTIFY_SIGNAL +- nios32: add support for TIF_NOTIFY_SIGNAL +- m68k: add support for TIF_NOTIFY_SIGNAL +- arc: add support for TIF_NOTIFY_SIGNAL +- task_work: Use TIF_NOTIFY_SIGNAL if available +- tools headers UAPI: Sync openat2.h with the kernel sources +- saner calling conventions for unlazy_child() +- net: loopback: use NET_NAME_PREDICTABLE for name_assign_type +- HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk +- HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10 +- HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch 10E +- HID: ite: Add support for Acer S1002 keyboard-dock +- igb: Initialize mailbox message for VF reset +- xhci: Apply XHCI_RESET_TO_DEFAULT quirk to ADL-N +- USB: serial: f81534: fix division by zero on line-speed change +- USB: serial: f81232: fix division by zero on line-speed change +- USB: serial: cp210x: add Kamstrup RF sniffer PIDs +- USB: serial: option: add Quectel EM05-G modem +- usb: gadget: uvc: Prevent buffer overflow in setup handler +- udf: Fix extending file within last block +- udf: Do not bother looking for prealloc extents if i_lenExtents matches i_size +- udf: Fix preallocation discarding at indirect extent boundary +- udf: Discard preallocation before extending file with a hole +- ASoC: ops: Correct bounds check for second channel on SX controls +- nvme-pci: clear the prp2 field when not used +- ASoC: cs42l51: Correct PGA Volume minimum value +- can: mcba_usb: Fix termination command argument +- can: sja1000: fix size of OCR_MODE_MASK define +- pinctrl: meditatek: Startup with the IRQs disabled +- libbpf: Use page size as max_entries when probing ring buffer map +- ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx() +- ASoC: fsl_micfil: explicitly clear CHnF flags +- ASoC: fsl_micfil: explicitly clear software reset bit +- fuse: always revalidate if exclusive create +- vfs: fix copy_file_range() averts filesystem freeze protection +- vfs: fix copy_file_range() regression in cross-fs copies +- x86/smpboot: Move rcu_cpu_starting() earlier +- !1480 ksmbd: fix wrong UserName check in session_user +- !1557 net/sched: cls_fw: Fix improper refcount update leads to use-after-free +- !1550 Sync patches for sharepool +- !1527 arm64/mpam: fix missing kfree domain's ctrl_val arrray +- !1548 mm: memcontrol: fix cannot alloc the maximum memcg ID +- net/sched: cls_fw: Fix improper refcount update leads to use-after-free +- net: hns3: fix setting wrong tx_timeout value issue +- !1541 Backport 5.10.158 - 5.10.159 LTS patches from upstream. +- ksmbd: allocate one more byte for implied bcc[0] +- mm/sharepool: Delete unused flag in sp_group. +- mm/sharepool: Delete total_num and total_size in sp_spa_stat +- mm/sharepool: Add sp_group_sem protection. +- mm/sharepool: Delete SPG_FLAG_NON_DVPP. +- mm/sharepool: Change data type of members in sp_spa_stat to atomic64. +- mm/sharepool: Add mg_sp_alloc_nodemask +- !1437 arm64: enable lrcpc feature of ARMv8.x from mainline +- mm: memcontrol: fix cannot alloc the maximum memcg ID +- binder: fix UAF caused by faulty buffer cleanup +- !1535 net/sched: sch_qfq: account for stab overhead in qfq_enqueue +- can: esd_usb: Allow REC and TEC to return to zero +- macsec: add missing attribute validation for offload +- net: mvneta: Fix an out of bounds check +- ipv6: avoid use-after-free in ip6_fragment() +- net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq() +- ethernet: aeroflex: fix potential skb leak in greth_init_rings() +- tipc: call tipc_lxc_xmit without holding node_read_lock +- net: dsa: sja1105: fix memory leak in sja1105_setup_devlink_regions() +- ipv4: Fix incorrect route flushing when table ID 0 is used +- ipv4: Fix incorrect route flushing when source address is deleted +- tipc: Fix potential OOB in tipc_link_proto_rcv() +- net: hisilicon: Fix potential use-after-free in hix5hd2_rx() +- net: hisilicon: Fix potential use-after-free in hisi_femac_rx() +- net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq +- ip_gre: do not report erspan version on GRE interface +- net: stmmac: fix "snps,axi-config" node property parsing +- nvme initialize core quirks before calling nvme_init_subsystem +- NFC: nci: Bounds check struct nfc_target arrays +- i40e: Disallow ip4 and ip6 l4_4_bytes +- i40e: Fix for VF MAC address 0 +- i40e: Fix not setting default xps_cpus after reset +- net: mvneta: Prevent out of bounds read in mvneta_config_rss() +- xen-netfront: Fix NULL sring after live migration +- net: encx24j600: Fix invalid logic in reading of MISTAT register +- net: encx24j600: Add parentheses to fix precedence +- mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add() +- selftests: rtnetlink: correct xfrm policy rule in kci_test_ipsec_offload +- net: dsa: ksz: Check return value +- Bluetooth: Fix not cleanup led when bt_init fails +- Bluetooth: 6LoWPAN: add missing hci_dev_put() in get_l2cap_conn() +- vmxnet3: correctly report encapsulated LRO packet +- drm: bridge: dw_hdmi: fix preference of RGB modes over YUV420 +- igb: Allocate MSI-X vector when testing +- e1000e: Fix TX dispatch condition +- gpio: amd8111: Fix PCI device reference count leak +- drm/bridge: ti-sn65dsi86: Fix output polarity setting bug +- netfilter: ctnetlink: fix compilation warning after data race fixes in ct mark +- ca8210: Fix crash by zero initializing data +- ieee802154: cc2520: Fix error return code in cc2520_hw_init() +- netfilter: nft_set_pipapo: Actually validate intervals in fields after the first one +- rtc: mc146818-lib: fix signedness bug in mc146818_get_time() +- rtc: mc146818-lib: fix locking in mc146818_set_time +- rtc: cmos: Disable irq around direct invocation of cmos_interrupt() +- HID: core: fix shift-out-of-bounds in hid_report_raw_event +- HID: hid-lg4ff: Add check for empty lbuf +- HID: usbhid: Add ALWAYS_POLL quirk for some mice +- drm/shmem-helper: Avoid vm_open error paths +- drm/shmem-helper: Remove errant put in error path +- drm/vmwgfx: Don't use screen objects when SEV is active +- KVM: s390: vsie: Fix the initialization of the epoch extension (epdx) field +- Bluetooth: Fix crash when replugging CSR fake controllers +- Bluetooth: btusb: Add debug message for CSR controllers +- mm/gup: fix gup_pud_range() for dax +- media: v4l2-dv-timings.c: fix too strict blanking sanity checks +- Revert "ARM: dts: imx7: Fix NAND controller size-cells" +- media: videobuf2-core: take mmap_lock in vb2_get_unmapped_area() +- xen/netback: do some code cleanup +- rtc: mc146818: Reduce spinlock section in mc146818_set_time() +- rtc: cmos: Replace spin_lock_irqsave with spin_lock in hard IRQ +- rtc: cmos: avoid UIP when reading alarm time +- rtc: cmos: avoid UIP when writing alarm time +- rtc: mc146818-lib: extract mc146818_avoid_UIP +- rtc: mc146818-lib: fix RTC presence check +- rtc: Check return value from mc146818_get_time() +- rtc: mc146818-lib: change return values of mc146818_get_time() +- rtc: cmos: remove stale REVISIT comments +- rtc: mc146818: Dont test for bit 0-5 in Register D +- rtc: mc146818: Detect and handle broken RTCs +- rtc: mc146818: Prevent reading garbage +- mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths +- mm/khugepaged: fix GUP-fast interaction by sending IPI +- mm/khugepaged: take the right locks for page table retraction +- net: usb: qmi_wwan: add u-blox 0x1342 composition +- 9p/xen: check logical size for buffer size +- usb: dwc3: gadget: Disable GUSB2PHYCFG.SUSPHY for End Transfer +- fbcon: Use kzalloc() in fbcon_prepare_logo() +- regulator: twl6030: fix get status of twl6032 regulators +- ASoC: soc-pcm: Add NULL check in BE reparenting +- btrfs: send: avoid unaligned encoded writes when attempting to clone range +- ALSA: seq: Fix function prototype mismatch in snd_seq_expand_var_event +- regulator: slg51000: Wait after asserting CS pin +- 9p/fd: Use P9_HDRSZ for header size +- ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188 +- ASoC: wm8962: Wait for updated value of WM8962_CLOCKING1 register +- ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementation +- ARM: 9251/1: perf: Fix stacktraces for tracepoint events in THUMB2 kernels +- ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name +- arm64: dts: rockchip: fix ir-receiver node names +- ARM: dts: rockchip: fix ir-receiver node names +- arm: dts: rockchip: fix node name for hym8563 rtc +- arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4 series +- ipc/sem: Fix dangling sem_array access in semtimedop race +- v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails +- block: unhash blkdev part inode when the part is deleted +- Input: raydium_ts_i2c - fix memory leak in raydium_i2c_send() +- char: tpm: Protect tpm_pm_suspend with locks +- Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend" +- ACPI: HMAT: Fix initiator registration for single-initiator systems +- ACPI: HMAT: remove unnecessary variable initialization +- i2c: imx: Only DMA messages with I2C_M_DMA_SAFE flag set +- i2c: npcm7xx: Fix error handling in npcm_i2c_init() +- x86/pm: Add enumeration check before spec MSRs save/restore setup +- x86/tsx: Add a feature bit for TSX control MSR support +- Revert "tty: n_gsm: avoid call of sleeping functions from atomic context" +- ipv4: Fix route deletion when nexthop info is not specified +- ipv4: Handle attempt to delete multipath route when fib_info contains an nh reference +- selftests: net: fix nexthop warning cleanup double ip typo +- selftests: net: add delete nexthop route warning test +- Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is enabled +- parisc: Increase FRAME_WARN to 2048 bytes on parisc +- xtensa: increase size of gcc stack frame check +- parisc: Increase size of gcc stack frame check +- iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init() +- iommu/vt-d: Fix PCI device refcount leak in has_external_pci() +- pinctrl: single: Fix potential division by zero +- ASoC: ops: Fix bounds check for _sx controls +- tracing: Free buffers when a used dynamic event is removed +- drm/i915: Never return 0 if not all requests retired +- drm/amdgpu: temporarily disable broken Clang builds due to blown stack-frame +- mmc: sdhci: Fix voltage switch delay +- mmc: sdhci-sprd: Fix no reset data and command after voltage switch +- mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check +- mmc: core: Fix ambiguous TRIM and DISCARD arg +- mmc: mmc_test: Fix removal of debugfs file +- net: stmmac: Set MAC's flow control register to reflect current settings +- pinctrl: intel: Save and restore pins in "direct IRQ" mode +- x86/bugs: Make sure MSR_SPEC_CTRL is updated properly upon resume from S3 +- nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry() +- tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep" +- error-injection: Add prompt for function error injection +- riscv: vdso: fix section overlapping under some conditions +- net/mlx5: DR, Fix uninitialized var warning +- hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new() +- hwmon: (coretemp) Check for null before removing sysfs attrs +- net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed +- sctp: fix memory leak in sctp_stream_outq_migrate() +- packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE +- net: tun: Fix use-after-free in tun_detach() +- afs: Fix fileserver probe RTT handling +- net: hsr: Fix potential use-after-free +- tipc: re-fetch skb cb after tipc_msg_validate +- dsa: lan9303: Correct stat name +- net: ethernet: nixge: fix NULL dereference +- net/9p: Fix a potential socket leak in p9_socket_open +- net: net_netdev: Fix error handling in ntb_netdev_init_module() +- net: phy: fix null-ptr-deref while probe() failed +- wifi: mac8021: fix possible oob access in ieee80211_get_rate_duration +- wifi: cfg80211: don't allow multi-BSSID in S1G +- wifi: cfg80211: fix buffer overflow in elem comparison +- aquantia: Do not purge addresses when setting the number of rings +- qlcnic: fix sleep-in-atomic-context bugs caused by msleep +- can: cc770: cc770_isa_probe(): add missing free_cc770dev() +- can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev() +- net/mlx5e: Fix use-after-free when reverting termination table +- net/mlx5: Fix uninitialized variable bug in outlen_write() +- e100: Fix possible use after free in e100_xmit_prepare +- e100: switch from 'pci_' to 'dma_' API +- iavf: Fix error handling in iavf_init_module() +- iavf: remove redundant ret variable +- fm10k: Fix error handling in fm10k_init_module() +- i40e: Fix error handling in i40e_init_module() +- ixgbevf: Fix resource leak in ixgbevf_init_module() +- of: property: decrement node refcount in of_fwnode_get_reference_args() +- bpf: Do not copy spin lock field from user in bpf_selem_alloc +- hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails +- hwmon: (i5500_temp) fix missing pci_disable_device() +- hwmon: (ina3221) Fix shunt sum critical calculation +- hwmon: (ltc2947) fix temperature scaling +- libbpf: Handle size overflow for ringbuf mmap +- ARM: at91: rm9200: fix usb device clock id +- scripts/faddr2line: Fix regression in name resolution on ppc64le +- bpf, perf: Use subprog name when reporting subprog ksymbol +- iio: light: rpr0521: add missing Kconfig dependencies +- iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw +- iio: health: afe4403: Fix oob read in afe4403_read_raw +- btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit() +- drm/amdgpu: Partially revert "drm/amdgpu: update drm_display_info correctly when the edid is read" +- drm/amdgpu: update drm_display_info correctly when the edid is read +- drm/display/dp_mst: Fix drm_dp_mst_add_affected_dsc_crtcs() return code +- btrfs: move QUOTA_ENABLED check to rescan_should_stop from btrfs_qgroup_rescan_worker +- spi: spi-imx: Fix spi_bus_clk if requested clock is higher than input clock +- btrfs: free btrfs_path before copying inodes to userspace +- btrfs: sink iterator parameter to btrfs_ioctl_logical_to_ino +- !1441 workqueue: fix sanity check warning when invoke destroy_workqueue() +- !1506 Backport 5.10.157 LTS patches from upstream +- !1488 RDMA/hns: Remove unnecessary QP type checks +- arm64: cpufeatures: Add capability for LDAPR instruction +- net/sched: sch_qfq: account for stab overhead in qfq_enqueue +- fuse: lock inode unconditionally in fuse_fallocate() +- drm/amdgpu: always register an MMU notifier for userptr +- drm/amd/dc/dce120: Fix audio register mapping, stop triggering KASAN +- btrfs: sysfs: normalize the error handling branch in btrfs_init_sysfs() +- btrfs: free btrfs_path before copying subvol info to userspace +- btrfs: free btrfs_path before copying fspath to userspace +- btrfs: free btrfs_path before copying root refs to userspace +- dm integrity: clear the journal on suspend +- dm integrity: flush the journal on suspend +- gpu: host1x: Avoid trying to use GART on Tegra20 +- net: usb: qmi_wwan: add Telit 0x103a composition +- tcp: configurable source port perturb table size +- platform/x86: hp-wmi: Ignore Smart Experience App event +- zonefs: fix zone report size in __zonefs_io_error() +- platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) +- platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr() +- xen/platform-pci: add missing free_irq() in error path +- xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too +- Input: soc_button_array - add Acer Switch V 10 to dmi_use_low_level_irq[] +- Input: soc_button_array - add use_low_level_irq module parameter +- Input: goodix - try resetting the controller when no config is set +- serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios() +- ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01 +- Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode +- x86/ioremap: Fix page aligned size calculation in __ioremap_caller() +- KVM: x86: remove exit_int_info warning in svm_handle_exit +- KVM: x86: nSVM: leave nested mode on vCPU free +- mm: vmscan: fix extreme overreclaim and swap floods +- gcov: clang: fix the buffer overflow issue +- nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty +- usb: dwc3: gadget: Clear ep descriptor last +- usb: dwc3: gadget: Return -ESHUTDOWN on ep disable +- usb: dwc3: gadget: conditionally remove requests +- ceph: fix NULL pointer dereference for req->r_session +- ceph: Use kcalloc for allocating multiple elements +- ceph: fix possible NULL pointer dereference for req->r_session +- ceph: put the requests/sessions when it fails to alloc memory +- ceph: fix off by one bugs in unsafe_request_wait() +- ceph: flush the mdlog before waiting on unsafe reqs +- ceph: flush mdlog before umounting +- ceph: make iterate_sessions a global symbol +- ceph: make ceph_create_session_msg a global symbol +- usb: cdns3: Add support for DRD CDNSP +- mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI +- mmc: sdhci-brcmstb: Enable Clock Gating to save power +- mmc: sdhci-brcmstb: Re-organize flags +- nios2: add FORCE for vmlinuz.gz +- init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash +- iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails +- iio: light: apds9960: fix wrong register for gesture gain +- arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency +- usb: dwc3: exynos: Fix remove() function +- lib/vdso: use "grep -E" instead of "egrep" +- net: enetc: preserve TX ring priority across reconfiguration +- net: enetc: cache accesses to &priv->si->hw +- net: enetc: manage ENETC_F_QBV in priv->active_offloads only when enabled +- s390/crashdump: fix TOD programmable field size +- net: thunderx: Fix the ACPI memory leak +- nfc: st-nci: fix memory leaks in EVT_TRANSACTION +- nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION +- arcnet: fix potential memory leak in com20020_probe() +- net: arcnet: Fix RESET flag handling +- s390/dasd: fix no record found for raw_track_access +- ipv4: Fix error return code in fib_table_insert() +- dccp/tcp: Reset saddr on failure after inet6?_hash_connect(). +- netfilter: flowtable_offload: add missing locking +- dma-buf: fix racing conflict of dma_heap_add() +- bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending() +- regulator: twl6030: re-add TWL6032_SUBCLASS +- NFC: nci: fix memory leak in nci_rx_data_packet() +- net: sched: allow act_ct to be built without NF_NAT +- sfc: fix potential memleak in __ef100_hard_start_xmit() +- xfrm: Fix ignored return value in xfrm6_init() +- tipc: check skb_linearize() return value in tipc_disc_rcv() +- net/mlx5: Fix handling of entry refcount when command is not issued to FW +- net/mlx5: Fix FW tracer timestamp calculation +- netfilter: ipset: regression in ip_set_hash_ip.c +- netfilter: ipset: Limit the maximal range of consecutive elements to add/delete +- Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register() +- Drivers: hv: vmbus: fix double free in the error path of vmbus_add_channel_work() +- macsec: Fix invalid error code set +- nfp: add port from netdev validation for EEPROM access +- nfp: fill splittable of devlink_port_attrs correctly +- net: pch_gbe: fix pci device refcount leak while module exiting +- net/qla3xxx: fix potential memleak in ql3xxx_send() +- net/mlx4: Check retval of mlx4_bitmap_init +- net: ethernet: mtk_eth_soc: fix error handling in mtk_open() +- ARM: dts: imx6q-prti6q: Fix ref/tcxo-clock-frequency properties +- ARM: mxs: fix memory leak in mxs_machine_init() +- netfilter: conntrack: Fix data-races around ct mark +- 9p/fd: fix issue of list_del corruption in p9_fd_cancel() +- net: pch_gbe: fix potential memleak in pch_gbe_tx_queue() +- nfc/nci: fix race with opening and closing +- rxrpc: Use refcount_t rather than atomic_t +- rxrpc: Allow list of in-use local UDP endpoints to be viewed in /proc +- net: liquidio: simplify if expression +- ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl +- tee: optee: fix possible memory leak in optee_register_device() +- bus: sunxi-rsb: Support atomic transfers +- regulator: core: fix UAF in destroy_regulator() +- spi: dw-dma: decrease reference count in dw_spi_dma_init_mfld() +- regulator: core: fix kobject release warning and memory leak in regulator_register() +- scsi: storvsc: Fix handling of srb_status and capacity change events +- ASoC: soc-pcm: Don't zero TDM masks in __soc_pcm_open() +- ASoC: sgtl5000: Reset the CHIP_CLK_CTRL reg on remove +- ASoC: hdac_hda: fix hda pcm buffer overflow issue +- ARM: dts: am335x-pcm-953: Define fixed regulators in root node +- af_key: Fix send_acquire race with pfkey_register +- xfrm: replay: Fix ESN wrap around for GSO +- MIPS: pic32: treat port as signed integer +- RISC-V: vdso: Do not add missing symbols to version section in linker script +- arm64/syscall: Include asm/ptrace.h in syscall_wrapper header. +- drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017) +- scsi: scsi_debug: Make the READ CAPACITY response compliant with ZBC +- scsi: ibmvfc: Avoid path failures during live migration +- platform/x86: touchscreen_dmi: Add info for the RCA Cambio W101 v2 2-in-1 +- Revert "net: macsec: report real_dev features when HW offloading is enabled" +- selftests/bpf: Add verifier test for release_reference() +- spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run +- wifi: mac80211: Fix ack frame idr leak when mesh has no route +- wifi: airo: do not assign -1 to unsigned char +- audit: fix undefined behavior in bit shift for AUDIT_BIT +- riscv: dts: sifive unleashed: Add PWM controlled LEDs +- wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support +- wifi: mac80211: fix memory free error when registering wiphy fail +- ceph: avoid putting the realm twice when decoding snaps fails +- ceph: do not update snapshot context when there is no new snapshot +- iio: pressure: ms5611: fixed value compensation bug +- iio: ms5611: Simplify IO callback parameters +- nvme-pci: add NVME_QUIRK_BOGUS_NID for Micron Nitro +- nvme: add a bogus subsystem NQN quirk for Micron MTFDKBA2T0TFH +- drm/display: Don't assume dual mode adaptors support i2c sub-addressing +- bridge: switchdev: Fix memory leaks when changing VLAN protocol +- bridge: switchdev: Notify about VLAN protocol changes +- ata: libata-core: do not issue non-internal commands once EH is pending +- ata: libata-scsi: simplify __ata_scsi_queuecmd() +- scsi: scsi_transport_sas: Fix error handling in sas_phy_add() +- arm64/mpam: fix missing kfree domain's ctrl_val arrray +- !1315 Intel: Backport mainline UPI uncore discovery warning fixes for SPR MCC to OLK-5.10 +- bpf: Allow bpf_get_netns_cookie in BPF_PROG_TYPE_SK_MSG +- bpf: Allow bpf_get_netns_cookie in BPF_PROG_TYPE_SOCK_OPS +- !1482 CVE-2023-3567 fix patches +- net: fix kabi change in struct net_device_ops +- bonding: fix NULL deref in bond_rr_gen_slave_id +- bonding: Fix extraction of ports from the packet headers +- net: bonding: Use per-cpu rr_tx_counter +- bonding: Fix negative jump label count on nested bonding +- net, bonding: Add XDP support to the bonding driver +- net, core: Add support for XDP redirection to slave device +- net, bonding: Refactor bond_xmit_hash for use with xdp_buff +- workqueue: Remove unused WORK_NO_COLOR +- workqueue: Assign a color to barrier work items +- workqueue: Mark barrier work with WORK_STRUCT_INACTIVE +- workqueue: Change the code of calculating work_flags in insert_wq_barrier() +- workqueue: Change arguement of pwq_dec_nr_in_flight() +- workqueue: Rename "delayed" (delayed by active management) to "inactive" +- !1475 [OLK-5.10] pmu: remove uncore code for Zhaoxin Platform +- !1473 Backport 5.10.156 LTS patches from upstream. +- !1445 netfilter: nf_tables: prevent OOB access in nft_byteorder_eval +- Revert "net: broadcom: Fix BCMGENET Kconfig" +- ntfs: check overflow when iterating ATTR_RECORDs +- ntfs: fix use-after-free in ntfs_attr_find() +- mm: fs: initialize fsdata passed to write_begin/write_end interface +- 9p/trans_fd: always use O_NONBLOCK read/write +- gfs2: Switch from strlcpy to strscpy +- gfs2: Check sb_bsize_shift after reading superblock +- 9p: trans_fd/p9_conn_cancel: drop client lock earlier +- kcm: close race conditions on sk_receive_queue +- tcp: cdg: allow tcp_cdg_release() to be called multiple times +- uapi/linux/stddef.h: Add include guards +- Input: i8042 - fix leaking of platform device on module removal +- kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case +- scsi: scsi_debug: Fix possible UAF in sdebug_add_host_helper() +- scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus() +- stddef: Introduce struct_group() helper macro +- usbnet: smsc95xx: Fix deadlock on runtime resume +- ring-buffer: Include dropped pages in counting dirty patches +- nvme: ensure subsystem reset is single threaded +- nvme: restrict management ioctls to admin +- perf/x86/intel/pt: Fix sampling using single range output +- misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram() +- docs: update mediator contact information in CoC doc +- mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put() +- mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce timeout +- mmc: core: properly select voltage range without power cycle +- firmware: coreboot: Register bus in module init +- iommu/vt-d: Set SRE bit only when hardware has SRS cap +- scsi: zfcp: Fix double free of FSF request when qdio send fails +- maccess: Fix writing offset in case of fault in strncpy_from_kernel_nofault() +- Input: iforce - invert valid length check when fetching device IDs +- serial: 8250_lpss: Configure DMA also w/o DMA filter +- serial: 8250: Flush DMA Rx on RLSI +- serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs +- dm ioctl: fix misbehavior if list_versions races with module loading +- iio: pressure: ms5611: changed hardcoded SPI speed to value limited +- iio: adc: mp2629: fix potential array out of bound access +- iio: adc: mp2629: fix wrong comparison of channel +- iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init() +- iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger() +- usb: typec: mux: Enter safe mode only when pins need to be reconfigured +- usb: chipidea: fix deadlock in ci_otg_del_timer +- usb: add NO_LPM quirk for Realforce 87U Keyboard +- USB: serial: option: add Fibocom FM160 0x0111 composition +- USB: serial: option: add u-blox LARA-L6 modem +- USB: serial: option: add u-blox LARA-R6 00B modem +- USB: serial: option: remove old LARA-R6 PID +- USB: serial: option: add Sierra Wireless EM9191 +- USB: bcma: Make GPIO explicitly optional +- speakup: fix a segfault caused by switching consoles +- slimbus: stream: correct presence rate frequencies +- Revert "usb: dwc3: disable USB core PHY management" +- ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book Pro 360 +- ALSA: hda/realtek: fix speakers for Samsung Galaxy Book Pro +- ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open() +- tracing: kprobe: Fix potential null-ptr-deref on trace_array in kprobe_event_gen_test_exit() +- tracing: kprobe: Fix potential null-ptr-deref on trace_event_file in kprobe_event_gen_test_exit() +- tracing: Fix wild-memory-access in register_synth_event() +- tracing: Fix memory leak in test_gen_synth_cmd() and test_empty_synth_event() +- tracing/ring-buffer: Have polling block on watermark +- ring_buffer: Do not deactivate non-existant pages +- ftrace: Fix null pointer dereference in ftrace_add_mod() +- ftrace: Optimize the allocation for mcount entries +- ftrace: Fix the possible incorrect kernel message +- cifs: add check for returning value of SMB2_set_info_init +- net: thunderbolt: Fix error handling in tbnet_init() +- cifs: Fix wrong return value checking when GETFLAGS +- net/x25: Fix skb leak in x25_lapb_receive_frame() +- net: ag71xx: call phylink_disconnect_phy if ag71xx_hw_enable() fail in ag71xx_open() +- cifs: add check for returning value of SMB2_close_init +- platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when virtualized +- drbd: use after free in drbd_create_device() +- net: ena: Fix error handling in ena_init() +- net: ionic: Fix error handling in ionic_init_module() +- xen/pcpu: fix possible memory leak in register_pcpu() +- bnxt_en: Remove debugfs when pci_register_driver failed +- net: caif: fix double disconnect client in chnl_net_open() +- net: macvlan: Use built-in RCU list checking +- mISDN: fix misuse of put_device() in mISDN_register_device() +- net: liquidio: release resources when liquidio driver open failed +- mISDN: fix possible memory leak in mISDN_dsp_element_register() +- net: bgmac: Drop free_netdev() from bgmac_enet_remove() +- bpf: Initialize same number of free nodes for each pcpu_freelist +- ata: libata-transport: fix error handling in ata_tdev_add() +- ata: libata-transport: fix error handling in ata_tlink_add() +- ata: libata-transport: fix error handling in ata_tport_add() +- ata: libata-transport: fix double ata_host_put() in ata_tport_add() +- arm64: dts: imx8mn: Fix NAND controller size-cells +- arm64: dts: imx8mm: Fix NAND controller size-cells +- ARM: dts: imx7: Fix NAND controller size-cells +- drm: Fix potential null-ptr-deref in drm_vblank_destroy_worker() +- drm/drv: Fix potential memory leak in drm_dev_init() +- drm/panel: simple: set bpc field for logic technologies displays +- pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map +- parport_pc: Avoid FIFO port location truncation +- siox: fix possible memory leak in siox_device_add() +- arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro +- block: sed-opal: kmalloc the cmd/resp buffers +- sctp: clear out_curr if all frag chunks of current msg are pruned +- sctp: remove the unnecessary sinfo_stream check in sctp_prsctp_prune_unsent +- ASoC: soc-utils: Remove __exit for snd_soc_util_exit() +- tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send +- serial: imx: Add missing .thaw_noirq hook +- serial: 8250: omap: Flush PM QOS work on remove +- serial: 8250: omap: Fix unpaired pm_runtime_put_sync() in omap8250_remove() +- serial: 8250_omap: remove wait loop from Errata i202 workaround +- serial: 8250: omap: Fix missing PM runtime calls for omap8250_set_mctrl() +- serial: 8250: Remove serial_rs485 sanitization from em485 +- ASoC: tas2764: Fix set_tdm_slot in case of single slot +- ASoC: tas2770: Fix set_tdm_slot in case of single slot +- ASoC: core: Fix use-after-free in snd_soc_exit() +- spi: stm32: Print summary 'callbacks suppressed' message +- drm/amdgpu: disable BACO on special BEIGE_GOBY card +- drm/amd/pm: disable BACO entry/exit completely on several sienna cichlid cards +- drm/amd/pm: Read BIF STRAP also for BACO check +- drm/amd/pm: support power source switch on Sienna Cichlid +- mmc: sdhci-esdhc-imx: use the correct host caps for MMC_CAP_8_BIT_DATA +- spi: intel: Use correct mask for flash and protected regions +- mtd: spi-nor: intel-spi: Disable write protection only if asked +- ALSA: hda/realtek: fix speakers and micmute on HP 855 G8 +- ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source", "Routee" -> "Route" +- Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm +- btrfs: remove pointless and double ulist frees in error paths of qgroup tests +- drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid +- i2c: i801: add lis3lv02d's I2C address for Vostro 5568 +- i2c: tegra: Allocate DMA memory for DMA engine +- NFSv4: Retry LOCK on OLD_STATEID during delegation return +- drm/amd/display: Remove wrong pipe control lock +- ASoC: rt1308-sdw: add the default value of some registers +- selftests/intel_pstate: fix build for ARCH=x86_64 +- selftests/futex: fix build for clang +- ASoC: codecs: jz4725b: fix capture selector naming +- ASoC: codecs: jz4725b: use right control for Capture Volume +- ASoC: codecs: jz4725b: fix reported volume for Master ctl +- ASoC: codecs: jz4725b: add missed Line In power control bit +- spi: intel: Fix the offset to get the 64K erase opcode +- ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK +- ASoC: mt6660: Keep the pm_runtime enables before component stuff in mt6660_i2c_probe +- ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe" +- ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe" +- ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe" +- RDMA/hns: Remove unnecessary QP type checks +- !1452 media: dvb-core: Fix use-after-free due on race condition at dvb_net +- vc_screen: modify vcs_size() handling in vcs_read() +- vc_screen: don't clobber return value in vcs_read +- vc_screen: move load of struct vc_data pointer in vcs_read() to avoid UAF +- ksmbd: fix wrong UserName check in session_user +- !1476 ipv6/addrconf: fix a potential refcount underflow for idev +- ipv6/addrconf: fix a potential refcount underflow for idev +- pmu: remove uncore code for Zhaoxin Platform +- !1468 Backport 5.10.155 LTS +- x86/cpu: Restore AMD's DE_CFG MSR after resume +- mmc: sdhci-esdhc-imx: Convert the driver to DT-only +- net: tun: call napi_schedule_prep() to ensure we own a napi +- dmaengine: at_hdmac: Check return code of dma_async_device_register +- dmaengine: at_hdmac: Fix impossible condition +- dmaengine: at_hdmac: Don't allow CPU to reorder channel enable +- dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors +- dmaengine: at_hdmac: Fix descriptor handling when issuing it to hardware +- dmaengine: at_hdmac: Fix concurrency over the active list +- dmaengine: at_hdmac: Free the memset buf without holding the chan lock +- dmaengine: at_hdmac: Fix concurrency over descriptor +- dmaengine: at_hdmac: Fix concurrency problems by removing atc_complete_all() +- dmaengine: at_hdmac: Protect atchan->status with the channel lock +- dmaengine: at_hdmac: Do not call the complete callback on device_terminate_all +- dmaengine: at_hdmac: Fix premature completion of desc in issue_pending +- dmaengine: at_hdmac: Start transfer for cyclic channels in issue_pending +- dmaengine: at_hdmac: Don't start transactions at tx_submit level +- dmaengine: at_hdmac: Fix at_lli struct definition +- cert host tools: Stop complaining about deprecated OpenSSL functions +- can: j1939: j1939_send_one(): fix missing CAN header initialization +- mm/memremap.c: map FS_DAX device memory as decrypted +- udf: Fix a slab-out-of-bounds write bug in udf_find_entry() +- mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI +- btrfs: selftests: fix wrong error check in btrfs_free_dummy_root() +- platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi +- drm/i915/dmabuf: fix sg_table handling in map_dma_buf +- nilfs2: fix use-after-free bug of ns_writer on remount +- nilfs2: fix deadlock in nilfs_count_free_blocks() +- ata: libata-scsi: fix SYNCHRONIZE CACHE (16) command failure +- vmlinux.lds.h: Fix placement of '.data..decrypted' section +- ALSA: usb-audio: Add DSD support for Accuphase DAC-60 +- ALSA: usb-audio: Add quirk entry for M-Audio Micro +- ALSA: hda/realtek: Add Positivo C6300 model quirk +- ALSA: hda: fix potential memleak in 'add_widget_node' +- ALSA: hda/ca0132: add quirk for EVGA Z390 DARK +- ALSA: hda/hdmi - enable runtime pm for more AMD display audio +- mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI +- mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI +- mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI +- mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI +- MIPS: jump_label: Fix compat branch range check +- arm64: efi: Fix handling of misaligned runtime regions and drop warning +- riscv: fix reserved memory setup +- riscv: Separate memory init from paging init +- riscv: Enable CMA support +- riscv: vdso: fix build with llvm +- riscv: process: fix kernel info leakage +- net: macvlan: fix memory leaks of macvlan_common_newlink +- ethernet: tundra: free irq when alloc ring failed in tsi108_open() +- net: mv643xx_eth: disable napi when init rxq or txq failed in mv643xx_eth_open() +- ethernet: s2io: disable napi when start nic failed in s2io_card_up() +- net: atlantic: macsec: clear encryption keys from the stack +- net: phy: mscc: macsec: clear encryption keys when freeing a flow +- cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in cxgb4vf_open() +- net: cxgb3_main: disable napi when bind qsets failed in cxgb_up() +- net: cpsw: disable napi in cpsw_ndo_open() +- net/mlx5e: E-Switch, Fix comparing termination table instance +- net/mlx5: Allow async trigger completion execution on single CPU systems +- net: nixge: disable napi when enable interrupts failed in nixge_open() +- net: marvell: prestera: fix memory leak in prestera_rxtx_switch_init() +- perf stat: Fix printing os->prefix in CSV metrics output +- drivers: net: xgene: disable napi when register irq failed in xgene_enet_open() +- dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove() +- dmaengine: pxa_dma: use platform_get_irq_optional +- tipc: fix the msg->req tlv len check in tipc_nl_compat_name_table_dump_header +- net: broadcom: Fix BCMGENET Kconfig +- net: stmmac: dwmac-meson8b: fix meson8b_devm_clk_prepare_enable() +- can: af_can: fix NULL pointer dereference in can_rx_register() +- ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network +- drm/vc4: Fix missing platform_unregister_drivers() call in vc4_drm_register() +- hamradio: fix issue of dev reference count leakage in bpq_device_event() +- net: lapbether: fix issue of dev reference count leakage in lapbeth_device_event() +- KVM: s390: pv: don't allow userspace to set the clock under PV +- KVM: s390x: fix SCK locking +- capabilities: fix undefined behavior in bit shift for CAP_TO_MASK +- net: fman: Unregister ethernet device on removal +- bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer +- bnxt_en: Fix possible crash in bnxt_hwrm_set_coal() +- net: tun: Fix memory leaks of napi_get_frags +- macsec: clear encryption keys from the stack after setting up offload +- macsec: fix detection of RXSCs when toggling offloading +- macsec: fix secy->n_rx_sc accounting +- macsec: delete new rxsc when offload fails +- net: gso: fix panic on frag_list with mixed head alloc types +- bpf: Fix wrong reg type conversion in release_reference() +- bpf: Add helper macro bpf_for_each_reg_in_vstate +- bpf: Support for pointers beyond pkt_end. +- HID: hyperv: fix possible memory leak in mousevsc_probe() +- bpftool: Fix NULL pointer dereference when pin {PROG, MAP, LINK} without FILE +- wifi: cfg80211: fix memory leak in query_regdb_file() +- wifi: cfg80211: silence a sparse RCU warning +- phy: stm32: fix an error code in probe +- hwspinlock: qcom: correct MMIO max register for newer SoCs +- fuse: fix readdir cache race +- !1184 [sync] PR-1182: Fix CQ and QP cache affinity +- !838 Backport 5.10.154 LTS +- perf/x86/uncore: Don't WARN_ON_ONCE() for a broken discovery table +- perf/x86/uncore: Add a quirk for UPI on SPR +- perf/x86/uncore: Ignore broken units in discovery table +- perf/x86/uncore: Fix potential NULL pointer in uncore_get_alias_name +- perf/x86/uncore: Factor out uncore_device_to_die() +- !1436 Fix CVE-2023-3117 +- !1358 Remove DECnet support from kernel +- media: dvb-core: Fix use-after-free due on race condition at dvb_net +- Fix the default return value of dm_pool_dec_data_range() +- netfilter: nf_tables: prevent OOB access in nft_byteorder_eval +- !1428 scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param() +- !1425 loop: loop_set_status_from_info() check before assignment +- netfilter: nf_tables: unbind non-anonymous set if rule construction fails +- netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain +- netfilter: nf_tables: fix chain binding transaction logic +- netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE +- !1427 nbd: Fix debugfs_create_dir error checking +- !1426 netfilter: nf_tables: do not ignore genmask when looking up chain by id +- !1434 [sync] PR-346: anolis: bond: broadcast ARP or ND messages to all slaves +- anolis: bond: broadcast ARP or ND messages to all slaves +- scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param() +- nbd: Fix debugfs_create_dir error checking +- netfilter: nf_tables: do not ignore genmask when looking up chain by id +- loop: loop_set_status_from_info() check before assignment +- !1415 Fix generic/299 fail +- ext4: Add debug message to notify user space is out of free +- Revert "ext4: Stop trying writing pages if no free blocks generated" +- !1359 bpf, sockops: Enhance the return capability of sockops +- !1408 Replace the hulk patch with the lts patch +- cgroup: Do not corrupt task iteration when rebinding subsystem +- Revert "cgroup: Stop task iteration when rebinding subsystem" +- !1357 SUNRPC: Ensure that the gssproxy client can start in a connected state +- !1399 bpf: cpumap: Fix memory leak in cpu_map_update_elem +- bpf: cpumap: Fix memory leak in cpu_map_update_elem +- !1355 etmem: fix the div 0 problem in swapcache reclaim process +- !1345 dm: requeue IO if mapping table not yet +- !1376 jbd2: Check 'jh->b_transaction' before remove it from checkpoint +- !1312 quota: fix race condition between dqput() and dquot_mark_dquot_dirty() +- jbd2: Check 'jh->b_transaction' before remove it from checkpoint +- !1351 dm thin: fix deadlock when swapping to thin device +- !1346 dm thin metadata: check fail_io before using data_sm +- !1207 block: don't set GD_NEED_PART_SCAN if scan partition failed +- !1074 arch_topology, ACPI: populate cpu capacity from CPPC +- !1254 Two CVE fixes of ksmbd +- !1324 io_uring: hold uring mutex around poll removal +- !1287 ipvlan:Fix out-of-bounds caused by unclear skb->cb +- !1353 ubifs mainline bugfix patch backport +- !1354 ubi: Fix return value overwrite issue in try_write_vid_and_data() +- Remove DECnet support from kernel +- SUNRPC: Ensure that the gssproxy client can start in a connected state +- etmem: fix the div 0 problem in swapcache reclaim process +- bpf, sockops: Enhance the return capability of sockops +- ubi: Fix return value overwrite issue in try_write_vid_and_data() +- ubifs: Fix memory leak in do_rename +- ubifs: Free memory for tmpfile name +- dm thin: fix deadlock when swapping to thin device +- dm thin metadata: check fail_io before using data_sm +- arm64, topology: add arch_init_invariance_cppc to use information from CPPC +- dm: don't lock fs when the map is NULL during suspend or resume +- dm: don't lock fs when the map is NULL in process of resume +- dm: requeue IO if mapping table not yet available +- Revert "dm: make sure dm_table is binded before queue request" +- !1272 xfs: fix some problems recently +- !1286 ext4: turning quotas off if mount failed after enable quotas +- !1295 blk-wbt: don't show valid wbt_lat_usec in +- !1294 dm stats: check for and propagate alloc_percpu failure +- !1335 bpf: Fix incorrect verifier pruning due to missing register precision taints +- !1326 [OLK-5.10] net: hns3: backport the clean up refine the tcam key convert handle and clear hns3 unused parameter alarm +- bpf: Fix incorrect verifier pruning due to missing register precision taints +- !1325 jbd2: fix several checkpoint +- !1314 ext4: Stop trying writing pages if no free blocks generated +- !1296 Complementing PTT functions to the OLK-5.10 +- arm64, topology: enable use of init_cpu_capacity_cppc() +- arch_topology: obtain cpu capacity using information from CPPC +- ACPI: CPPC: Check present CPUs for determining _CPC is valid +- cppc_acpi: add acpi_cpc_valid for determining _CPC is valid +- net: hns3: clear hns unused parameter alarm +- net: hns3: refine the tcam key convert handle +- Huawei BMA: To fix the bug in the iBMA driver code +- jbd2: fix checkpoint cleanup performance regression +- jbd2: remove __journal_try_to_free_buffer() +- jbd2: fix a race when checking checkpoint buffer busy +- jbd2: Fix wrongly judgement for buffer head removing while doing checkpoint +- jbd2: remove journal_clean_one_cp_list() +- io_uring: hold uring mutex around poll removal +- !1285 nbd: fix null-ptr-dereference while accessing 'nbd->config' +- ext4: Stop trying writing pages if no free blocks generated +- quota: simplify drop_dquot_ref() +- quota: fix dqput() to follow the guarantees dquot_srcu should provide +- quota: add new helper dquot_active() +- quota: rename dquot_active() to inode_quota_active() +- quota: factor out dquot_write_dquot() +- !1280 cgroup: always put cset in cgroup_css_set_put_fork +- !1297 iommu/iova: move IOVA_MAX_GLOBAL_MAGS outside of IOMMU_SUPPORT +- !1283 media: dm1105: Fix use after free bug in dm1105_remove due to race condition +- !1270 media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*() +- iommu/iova: move IOVA_MAX_GLOBAL_MAGS outside of IOMMU_SUPPORT +- hwtracing: hisi_ptt: Keep to advertise PERF_PMU_CAP_EXCLUSIVE +- hwtracing: hisi_ptt: Add dummy callback pmu::read() +- hwtracing: hisi_ptt: Fix potential sleep in atomic context +- hwtracing: hisi_ptt: Advertise PERF_PMU_CAP_NO_EXCLUDE for PTT PMU +- hwtracing: hisi_ptt: Export available filters through sysfs +- hwtracing: hisi_ptt: Add support for dynamically updating the filter list +- hwtracing: hisi_ptt: Factor out filter allocation and release operation +- blk-wbt: don't show valid wbt_lat_usec in sysfs while wbt is disabled +- blk-wbt: make enable_state more accurate +- dm stats: check for and propagate alloc_percpu failure +- ipvlan:Fix out-of-bounds caused by unclear skb->cb +- ext4: turning quotas off if mount failed after enable quotas +- nbd: fix null-ptr-dereference while accessing 'nbd->config' +- nbd: factor out a helper to get nbd_config without holding 'config_lock' +- nbd: fold nbd config initialization into nbd_alloc_config() +- media: dm1105: Fix use after free bug in dm1105_remove due to race condition +- cgroup: always put cset in cgroup_css_set_put_fork +- !1253 media: saa7134: fix use after free bug in saa7134_finidev due to race condition +- xfs: fix uninitialized variable access +- xfs: set XFS_FEAT_NLINK correctly +- xfs: don't leak perag when growfs fails +- xfs: factor out xfs_destroy_perag() +- xfs: fix warning in xfs_vm_writepages() +- xfs: don't leak intent item when recovery intents fail +- xfs: factor out xfs_defer_pending_abort +- xfs: fix mounting failed caused by sequencing problem in the log records +- media: dvb-core: Fix kernel WARNING for blocking operation in wait_event*() +- crypto: hisilicon/qm - disable error report before flr +- crypto: hisilicon/qm - disable same error report before resetting +- crypto: hisilicon/qm - remove duplicate assignment and release +- crypto: hisilicon/hpre - enable sva error interrupt event +- crypto: hisilicon/qm - flush all work before driver removed. +- !1132 arm64: entry: fix ABBA deadlock when el1_dbg preempts rq->lock context +- !1262 drm/msm/dpu: Add check for pstates +- !1127 [sync] PR-1077: drm/qxl: Fix missing free_irq +- !1261 usb: gadget: udc: renesas_usb3: Fix use after free bug in renesas_usb3_remove due to race condition +- !637 Introduce new memory policy for OLK-5.10 +- drm/msm/dpu: Add check for pstates +- usb: gadget: udc: renesas_usb3: Fix use after free bug in renesas_usb3_remove due to race condition +- !1247 HID: intel_ish-hid: Add check for ishtp_dma_tx_map +- ksmbd: fix NULL pointer dereference in smb2_get_info_filesystem() +- ksmbd: fix memleak in session setup +- media: saa7134: fix use after free bug in saa7134_finidev due to race condition +- !1246 mm/hugetlb_vmemmap: remap head page to newly allocated page +- !1245 hugetlb: Fix some incorrect behavior +- !1242 arm64: kernel: disable CNP on LINXICORE9100 +- HID: intel_ish-hid: Add check for ishtp_dma_tx_map +- mm/hugetlb_vmemmap: remap head page to newly allocated page +- hugetlb: fix hugepages_setup when deal with pernode +- hugetlb: fix wrong use of nr_online_nodes +- !1217 sched/rt: Fix possible warn when push_rt_task +- arm64: kernel: disable CNP on LINXICORE9100 +- !1223 iommu/iova: increase the iova_rcache depot max size to 128 +- !1181 relayfs: fix out-of-bounds access in relay_file_read +- !1220 mm/memory_hotplug: extend offline_and_remove_memory() to handle more than one memory block +- !1191 fix memory reliable related issues +- !1194 fix memleak with efi_fake_mem +- !1228 Per-memcg swap control +- !1227 x86/fpu: KABI_BROKEN_REMOVE "union fpregs_state state" from struct fpu +- config: enable memcg swap qos for x86_64 and arm64 by default +- mm: swap_slots: add per-type slot cache +- mm/swapfile: introduce per-memcg swapfile control +- memcg: add restrict to swap to cgroup1 +- memcg: introduce per-memcg swapin interface +- memcg: introduce memcg swap qos feature +- memcg: add page type to memory.reclaim interface +- mm: vmpressure: don't count proactive reclaim in vmpressure +- x86/fpu: KABI_BROKEN_REMOVE "union fpregs_state state" from struct fpu +- !1221 media: rkvdec: fix use after free bug in rkvdec_remove +- iommu/iova: increase the iova_rcache depot max size to 128 +- media: rkvdec: fix use after free bug in rkvdec_remove +- mm/memory_hotplug: extend offline_and_remove_memory() to handle more than one memory block +- sched/rt: Fix possible warn when push_rt_task +- !1196 fs/stat: make tmp variable 16-bytes aligned in copy stat +- !1185 nbd: validate the block size in nbd_set_size +- block: don't set GD_NEED_PART_SCAN if scan partition failed +- !1148 LoongArch: cleanup swiotlb bakcup buffer related code +- crypto: hisilicon/qm: modify loop exit condition +- !1190 memcg: fix implicit declaration of memcg_print_bad_task() +- fs/stat: make tmp variable 16-bytes aligned in copy stat +- !1159 xhci:fix USB xhci controller issue +- config: Disable EFI_FAKE_MEMMAP support for arm64 by default +- efi: Fix UAF for arm64 when enable efi_fake_mem +- !1178 memstick: r592: Fix UAF bug in r592_remove due to race condition +- efi: Disable mirror feature during crashkernel +- mm: mem_reliable: Update reliable page counter to zero if underflows +- mm: mem_reliable: Fix reliable page counter mismatch problem +- memcg: fix implicit declaration of memcg_print_bad_task() +- !1177 net/sched: flower: fix possible OOB write in fl_set_geneve_opt() +- nbd: fix incomplete validation of ioctl arg +- nbd: validate the block size in nbd_set_size +- RDMA/hns: Fix CQ and QP cache affinity +- relayfs: fix out-of-bounds access in relay_file_read +- !1133 sched: Add static key for qos sched to improve performance +- memstick: r592: Fix UAF bug in r592_remove due to race condition +- net/sched: flower: fix possible OOB write in fl_set_geneve_opt() +- !1157 Add LoongArch maintainers to openEuler/MAINTAINERS +- !1154 [sync] PR-582: mm: oom: move memcg_print_bad_task() out of mem_cgroup_scan_tasks() +- !1162 fbcon: Check font dimension limits +- MAINTAINERS: update openEuler/MAINTAINERS for LoongArch +- !1098 proc: allow pid_revalidate() during LOOKUP_RCU +- fbcon: Check font dimension limits +- xhci:fix USB xhci controller issue +- !1107 scsi: hisi_sas: A group of SAS-related bugfixes +- mm: oom: move memcg_print_bad_task() out of mem_cgroup_scan_tasks() +- !1150 EDAC/i10nm: Add Intel Emerald Rapids server support +- EDAC/i10nm: Add Intel Emerald Rapids server support +- Revert "LoongArch: Add ARCH_HAS_SETUP_DMA_OPS and DMA_OPS" +- Revert "LoongArch: Add swiotlb backups buffer" +- !1136 gfs2: Don't deref jdesc in evict +- !948 Dependency of Kmesh on Kernel Modification +- !1131 [sync] PR-1081: some backport bugfix for sockmap +- gfs2: Don't deref jdesc in evict +- sched: Add static key for qos sched to improve performance +- arm64: entry: fix ABBA deadlock when el1_dbg preempts rq->lock context +- !1071 [sync] PR-1069: support ACPI for MPAM 2.0 +- !1023 spi: dw: Add support for 32-bits max xfer size +- !1075 [sync] PR-1042: xfrm: Reinject transport-mode packets through workqueue +- bpf: fix bpf_tcp_ingress addr use after free +- net: deal with most data-races in sk_wait_event() +- bpf, sockmap: Don't let sock_map_{close,destroy,unhash} call itself +- bpf, sockmap: Check for any of tcp_bpf_prots when cloning a listener +- bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect +- bpf, sockmap: Fix missing BPF_F_INGRESS flag when using apply_bytes +- bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data +- bpf, sock_map: Move cancel_work_sync() out of sock lock +- bpf, sockmap: Fix the sk->sk_forward_alloc warning of sk_stream_kill_queues +- !991 genirq: Increase the number of IRQ descriptors +- drm/qxl: Fix missing free_irq +- !1115 userswap bugfix +- !1113 net: hns3: refactor hclge_mac_link_status_wait and add wait until mac link down +- !1084 LoongArch: fix wrong 7a1000 int_clear register write +- !1083 LoongArch: fix system hang caused by 2k500 bmc driver +- userswap: fix kmalloc ENOMEM failed for a large memory +- userswap: fix BUG_ON in userfaultfd_release() +- net: hns3: add wait until mac link down +- net: hns3: refactor hclge_mac_link_status_wait for interface reuse +- scsi: hisi_sas: Check usage count only when the runtime PM status is RPM_SUSPENDING +- scsi: hisi_sas: Work around build failure in suspend function +- scsi: hisi_sas: Block requests before take debugfs snapshot +- scsi: hisi_sas: Add slave_destroy interface for v3 hw +- scsi: sd: try more retries of START_STOP when resuming scsi device +- bpf: Introduces a new state to identify the location of the sockops call +- ipv4, bpf: Introduced to support the ULP to modify sockets during setopt +- net, bpf: Introduces a new ebpf delay connect flag +- net, bpf: Add a writeable_tracepoint to inet_stream_connect +- !1089 power: supply: bq24190: Fix use after free bug in bq24190_remove due to race condition +- !1090 fs/ntfs3: Check fields while reading +- proc: allow pid_revalidate() during LOOKUP_RCU +- fs/ntfs3: Check fields while reading +- genirq: Increase the number of IRQ descriptors +- power: supply: bq24190: Fix use after free bug in bq24190_remove due to race condition +- irqchip/loongson-pch-pic: 7a1000 int_clear reg must use 64bit write. +- ipmi_si: ls2k500 kcs driver add wait bmc reboot done and rebind support. +- xfrm: Reinject transport-mode packets through workqueue +- ACPI/MPAM: Adapt to Arm's MPAM ACPI table version 2 +- ACPI / PPTT: Find PPTT processor node by cache id +- ACPICA: ACPI 6.4: PPTT: add new version of subtable type 1 +- ACPICA: Add support for Arm's MPAM ACPI table version 2 +- xfrm: Reinject transport-mode packets through workqueue +- !1004 [sync] PR-993: Clean up for RDMA/HNS +- !1028 fs: hfsplus: fix UAF issue in hfsplus_put_super +- !1027 scripts: Fix issue of module signing with openssl 3.x +- !1007 perf: hns3: add event suppport for ROH and default use hardware event 0 as group leader event +- !1032 bugfix the lost interruption problem after live migration +- !1019 drivers/perf: hisi: Don't migrate perf to the CPU going to teardown +- vfio/migration: bugfix lost interruption after live migration +- crypto: hisilicon/qm - fix EQ/AEQ interrupt issue +- fs: hfsplus: fix UAF issue in hfsplus_put_super +- !978 io_uring: fix the problem of running +- spi: dw: Add support for 32-bits max xfer size +- !1003 roh: Fix ROH multi-BD cmdq issue +- drivers/perf: hisi: Don't migrate perf to the CPU going to teardown +- !944 nbd: get config_lock before sock_shutdown +- !920 dm thin: Fix ABBA deadlock by resetting dm_bufio_client +- !924 dm: add disk before alloc dax +- perf: hns3: default use hardware event 0 as group leader event. +- perf: hns3: add event suppport for ROH +- !980 crypto: hisilicon - fix mailbox operation process +- !941 LoongArch: fix 2k500 sfb driver not work during reboot +- roh: Fix ROH multi-BD cmdq issue +- RDMA/hns: Remove redundant 'num_mtt_segs' and 'max_extend_sg' +- RDMA/hns: Remove redundant 'use_lowmem' argument from hns_roce_init_hem_table() +- !947 locking/rwsem: Prevent potential lock starvation +- !928 hikey9xx: Fixed incorrect use of kfree to free sreg +- !799 SCSI: SSSRAID: fix the issue that consider the scenario of HDD will occur unexpected high latency when pressure, concurrent, time all big enough +- !990 ubi: Fix deadlock caused by recursively holding work_sem +- !953 xfs: fixes patchs and backport patchs +- !949 mm: page_counter: remove unneeded atomic ops for low/min +- ubi: Fix deadlock caused by recursively holding work_sem +- mtd: ubi: wl: Fix a couple of kernel-doc issues +- !940 net: hns3: related bugfixes, refactoring, and cleanup +- !954 block: iocost bugfix +- !946 icost bugfix +- !970 [sync] PR-903: backport block bugfix +- !356 x86/boot/compressed: Register dummy NMI handler in EFI boot loader, to avoid kdump crashes +- !967 Support dynamic_hugetlb on arm64 and fix some bug +- kernel: don't call do_exit() for PF_IO_WORKER threads +- x86/process: setup io_threads more like normal user space threads +- arch: ensure parisc/powerpc handle PF_IO_WORKER in copy_thread() +- arch: setup PF_IO_WORKER threads like PF_KTHREAD +- crypto: hisilicon/qm - alloc buffer to set and get xqc +- crypto: hisilicon/qm - fix the pf2vf timeout when device reset +- vfio/migration: obtain the mailbox configuration at one time +- crypto: hisilicon/qm - obtain the mailbox configuration at one time +- SCSI: SSSRAID: fix the issue that HDD unexpected high latency occured +- !968 Fix ORC unwinder on paravirt {save,restore}_fl +- !969 kobject: Fix slab-out-of-bounds in fill_kobj_path() +- md/raid10: fix incorrect done of recovery +- md/raid10: fix null-ptr-deref in raid10_sync_request +- block/badblocks: fix badblocks loss when badblocks combine +- block/badblocks: fix the bug of reverse order +- md: fix unexpected changes of return value in rdev_set_badblocks +- md/raid10: fix io hung in md_wait_for_blocked_rdev() +- block: Only set bb->changed when badblocks changes +- md/raid10: fix incorrect counting of rdev->nr_pending +- md/raid10: remove WANR_ON_ONCE in raid10_end_write_request +- md/raid10: fix uaf if replacement replaces rdev +- md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request +- md/raid10: fix io loss while replacement replace rdev +- md/raid10: prioritize adding disk to 'removed' mirror +- md: fix io loss when remove rdev fail +- md/raid10: fix a race between removing rdev and access conf->mirrors[i].rdev +- md/raid10: fix taks hung in raid10d +- md/raid10: factor out code from wait_barrier() to stop_waiting_barrier() +- md/raid10: fix softlockup in raid10_unplug +- md/raid1: stop mdx_raid1 thread when raid1 array run failed +- md: fix sysfs duplicate file while adding rdev +- md: replace invalid function flush_rdev_wq() with flush_workqueue() +- md: Flush workqueue md_rdev_misc_wq in md_alloc() +- block: don't allow the same type rq_qos add more than once +- blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost +- blk-iocost: don't allow to configure bio based device +- net: hns3: restore user pause configure when disable autoneg +- net: hns3: fix strncpy() not using dest-buf length as length issue +- net: hns3: refactor hclge_update_desc_vfid for extension +- net: hns3: add tm flush when setting tm +- net: hns3: fix the imp capability bit cannot exceed 32 bits issue +- net: hns3: fix GRE checksum offload issue +- perf: pmu: fix set wrong filter mode for running events issue +- kobject: Fix slab-out-of-bounds in fill_kobj_path() +- x86/unwind: Fix check_paravirt() calls orc_find() before declaration +- x86/unwind: Fix orc entry for paravirt {save,restore}_fl +- mm/dynamic_hugetlb: fix type error of pfn in __hpool_split_gigantic_page() +- mm/dynamic_hugetlb: set PagePool to bad page +- mm/dynamic_hugetlb: replace spin_lock with mutex_lock and fix kabi broken +- mm/dynamic_hugetlb: isolate hugepage without dissolve +- mm/dynamic_hugetlb: support dynamic hugetlb on arm64 +- mm/dynamic_hugetlb: fix kabi broken when enable CONFIG_DYNAMIC_HUGETLB on arm64 +- !943 Fixed the accelerator capability register issue. +- !937 tcp: restrict net.ipv4.tcp_app_win +- !925 tcp: prohibit TCP_REPAIR_OPTIONS if data was already sent +- block: fix order error in blk_release_queue +- block: fix null-pointer dereference in ioc_pd_init +- xfs: atomic drop extent entries when inactiving attr +- xfs: factor out __xfs_da3_node_read() +- xfs: fix a UAF in xfs_iflush_abort_clean +- xfs: fix a UAF when inode item push +- xfs: fix the problem of mount failure caused by not refreshing mp->m_sb +- iomap: iomap: fix memory corruption when recording errors during writeback +- xfs: fix hung when transaction commit fail in xfs_inactive_ifree +- xfs: fix dead loop when do mount with IO fault injection +- xfs: fix ag count overflow during growfs +- xfs: account extra freespace btree splits for multiple allocations +- xfs: force shutdown xfs when xfs_attr_inactive fails +- xfs: fix negative array access in xfs_getbmap +- xfs: fix BUG_ON in xfs_getbmap() +- xfs: use iomap_valid method to detect stale cached iomaps +- iomap: write iomap validity checks +- xfs: write page faults in iomap are not buffered writes +- xfs: fix exception caused by unexpected illegal bestcount in leaf dir +- Revert "[Huawei] xfs: fix uaf when leaf dir bestcount not match with dir data blocks" +- xfs: don't expose internal symlink metadata buffers to the vfs +- xfs: shut down filesystem if we xfs_trans_cancel with deferred work items +- xfs: fix maxlevels comparisons in the btree staging code +- xfs: sb verifier doesn't handle uncached sb buffer +- xfs: fallocate() should call file_modified() +- xfs: remove XFS_PREALLOC_SYNC +- xfs: shutdown during log recovery needs to mark the log shutdown +- xfs: xfs_trans_commit() path must check for log shutdown +- xfs: xfs_do_force_shutdown needs to block racing shutdowns +- xfs: log shutdown triggers should only shut down the log +- xfs: shutdown in intent recovery has non-intent items in the AIL +- xfs: AIL should be log centric +- xfs: increase rename inode reservation +- xfs: trim the mapp array accordingly in xfs_da_grow_inode_int +- xfs: check return codes when flushing block devices +- xfs: remove xfs_blkdev_issue_flush +- xfs: fix NULL pointer dereference in xfs_getbmap() +- !929 xfs: rework feature flags +- !938 config: Disable CONFIG_EULER_FS by default +- !883 [sync] PR-878: Bugfixes for RDMA/hns +- mm: page_counter: remove unneeded atomic ops for low/min +- x86/boot/compressed: Register dummy NMI handler in EFI boot loader, to avoid kdump crashes +- locking/rwsem: Prevent potential lock starvation +- locking/rwsem: Pass the current atomic count to rwsem_down_read_slowpath() +- locking/rwsem: Better collate rwsem_read_trylock() +- blk-iocost: dispatch all throttled bio in ioc_pd_offline +- blk-iocost: don't throttle bio if iocg is offlined +- blk-iocost: track whether iocg is still online +- blk-iocost: fix UAF in ioc_pd_free +- nbd: get config_lock before sock_shutdown +- crypto: hisilicon/zip - save capability registers in probe process +- crypto: hisilicon/sec2 - save capability registers in probe process +- crypto: hisilicon/hpre - save capability registers in probe process +- crypto: hisilicon/qm - save capability registers in qm init process +- crypto: hisilicon/qm - add a function to set qm algs +- crypto: hisilicon/sec - fix for resource leak +- crypto: hisilicon/sec - remove unused parameter +- crypto: hisilicon/sec - misc cleanups +- PCI/portdrv: Prevent LS7A Bus Master clearing on shutdown +- Revert "PCI: Add quirk for LS7A to avoid reboot failure" +- config: Disable CONFIG_EULER_FS by default +- tcp: restrict net.ipv4.tcp_app_win +- !897 LoongArch: improve dma ops and interrupt process +- !869 LoongArch: defconfig: Enable a large number of configurations +- !922 jbd2: fix checkpoint inconsistent +- xfs: kill xfs_sb_version_has_v3inode() +- xfs: introduce xfs_sb_is_v5 helper +- xfs: remove unused xfs_sb_version_has wrappers +- xfs: convert xfs_sb_version_has checks to use mount features +- xfs: convert scrub to use mount-based feature checks +- xfs: open code sb verifier feature checks +- xfs: convert xfs_fs_geometry to use mount feature checks +- xfs: replace XFS_FORCED_SHUTDOWN with xfs_is_shutdown +- xfs: convert remaining mount flags to state flags +- xfs: convert mount flags to features +- xfs: consolidate mount option features in m_features +- xfs: replace xfs_sb_version checks with feature flag checks +- xfs: reflect sb features in xfs_mount +- xfs: rework attr2 feature and mount options +- xfs: rename xfs_has_attr() +- xfs: xfs_is_shutdown vs xlog_is_shutdown cage fight +- xfs: log items should have a xlog pointer, not a mount +- xfs: fix incorrect error-out in xfs_remove +- hikey9xx: Fixed incorrect use of kfree to free sreg +- tcp: prohibit TCP_REPAIR_OPTIONS if data was already sent +- dm: add disk before alloc dax +- !918 Misc fixes for Kunpeng accelerator drivers! +- jbd2: remove t_checkpoint_io_list +- jbd2: recheck chechpointing non-dirty buffer +- !919 Revert "ext4: dio take shared inode lock when overwriting preallocated blocks" +- dm thin: Fix ABBA deadlock by resetting dm_bufio_client +- crypto: hisilicon/qm - remove unnecessary aer.h include +- crypto: hisilicon/qm - stop function and write data to memory +- crypto: hisilicon/hpre - ensure private key less than n +- crypto: hisilicon/qm - prevent soft lockup in qm_poll_req_cb()'s loop +- Revert "ext4: dio take shared inode lock when overwriting preallocated blocks" +- LoongArch: defconfig: Enable a large number of configurations +- !880 LoongArch: kdump: Add high memory reservation +- !868 LoongArch: fix compile error caused by __ffs not defined +- !792 LoongArch: add ls2k500 bmc support +- LoongArch: Add swiotlb backups buffer +- !906 ipv6: Add lwtunnel encap size of all siblings in nexthop calculation +- !907 tcp/dccp: Add another way to allocate local ports in connect() +- !874 nic: hns3: fix pointer cast for wol and fix getting GE port lanes error and set cpu affinity +- tcp/dccp: Add another way to allocate local ports in connect() +- ipv6: Add lwtunnel encap size of all siblings in nexthop calculation +- !890 ethtool: ioctl: fix potential NULL deref in ethtool_set_coalesce() +- !895 config: enable CONFIG_BPF_STREAM_PARSER=y on arm64 +- LoongArch: fix ls2k500 bmc not work when installing iso +- !894 Fixed two accelerator bugfixes +- LoongArch: Add ARCH_HAS_SETUP_DMA_OPS and DMA_OPS +- pci: irq: Add early_param pci_irq_limit to limit pci irq numbers +- config: enable CONFIG_BPF_STREAM_PARSER=y on arm64 +- ethtool: ioctl: fix potential NULL deref in ethtool_set_coalesce() +- !886 net: sched: fix NULL pointer dereference in mq_attach +- uacce: use filep->f_mapping to replace inode->i_mapping +- crypto:hisilicon/qm: bugfix queue parameter issue +- !881 arm64: Keep HWCAP2_WFXT uapi consistent with upstream +- arm64: Keep HWCAP2_WFXT uapi consistent with upstream +- net: sched: fix NULL pointer dereference in mq_attach +- LoongArch: kdump: Add high memory reservation +- LoongArch: defconfig: enable CONFIG_FB_LS2K500=m. +- ipmi: add ls2k500 bmc ipmi support. +- fbdev: add ls2k500sfb driver for ls2k500 bmc. +- !852 [OLK 5.10] userswap bugfix +- RDMA/hns: Fix sleeping in atomic context during DCA unloading +- RDMA/hns: Fix a missing kfree() to hr_dev->priv +- RDMA/hns: Fix incorrect post-send with direct wqe of wr-list in kernel space +- RDMA/hns: Fix inaccurate error label name in init instance +- RDMA/hns: Remove VF extend configuration +- RDMA/hns: fix iommu_map_sg() failed when MR bigger than 4G +- RDMA/hns: Fix a missing check of atomic wr length +- !855 Remove the automatic loading of the hisi_trng driver +- !877 sched: fix performance degradation on lmbench +- sched: fix performance degradation on lmbench +- net: hns3: fix set cpu affinity when state down +- net: hns3: add support for getting GE port lanes +- net: hns3: fix pointer cast to different type for wol +- !863 Backport CVEs and bugfixes +- !866 arm64: kdump: Avoid reserving low memory repeatedly +- !860 [OLK-5.10] Add support for Emerald Rapids to powercap/intel_rapl driver. +- LoongArch: fix __ffs not defined compile error +- arm64: kdump: Avoid reserving low memory repeatedly +- drm/virtio: Fix error code in virtio_gpu_object_shmem_init() +- drm/virtio: Correct drm_gem_shmem_get_sg_table() error handling +- drm/virtio: Fix NULL vs IS_ERR checking in virtio_gpu_object_shmem_init +- cgroup: Stop task iteration when rebinding subsystem +- sched/topology: Fix exceptional memory access in sd_llc_free_all() +- block: Fix the partition start may overflow in add_partition() +- ext4: avoid a potential slab-out-of-bounds in ext4_group_desc_csum +- iomap: don't invalidate folios after writeback errors +- iomap: Don't create iomap_page objects in iomap_page_mkwrite_actor +- iomap: Don't create iomap_page objects for inline files +- iomap: Permit pages without an iop to enter writeback +- eulerfs: fix null-ptr-dereference when allocate page failed +- eulerfs: add error handling for nv_init() +- md: fix kabi broken in struct mddev +- md: use interruptible apis in idle/frozen_sync_thread +- md: wake up 'resync_wait' at last in md_reap_sync_thread() +- md: refactor idle/frozen_sync_thread() +- md: add a mutex to synchronize idle and frozen in action_store() +- md: refactor action_store() for 'idle' and 'frozen' +- Revert "md: unlock mddev before reap sync_thread in action_store" +- md: unlock mddev before reap sync_thread in action_store +- block: fix wrong mode for blkdev_put() from disk_scan_partitions() +- block: fix scan partition for exclusively open device again +- block: merge disk_scan_partitions and blkdev_reread_part +- powercap: intel_rapl: add support for Emerald Rapids +- scripts: Fix issue of module signing with openssl 3.x +- !795 sched/fair: Introduce multiple qos level +- !850 Fix race condition in __percpu_counter_sum() function within cpu hotplug +- !849 drivers/cpufreq: gain accurate CPU frequency from cpufreq/cpuinfo_cur_freq +- !773 Compiler: Add value profile support for kernel. +- !842 net: hns3: add support for Hisilicon ptp sync device +- !844 A patchset of sched to improve benchmark performance +- crypto/trng: Remove the automatic loading of the hisi_trng driver +- crypto: hisilicon/trng - use %u to print u32 variables +- !837 Backport bugfixes for RDMA/hns +- GCC: Add value profile support for kernel. +- !803 ACC support no-sva feature +- sched/fair: Introduce multiple qos level +- sched: Clear ttwu_pending after enqueue_task() +- sched: Remove the limitation of WF_ON_CPU on wakelist if wakee cpu is idle +- sched/fair: Fix kabi borken in sched_domain +- sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans multiple LLCs +- sched/fair: Improve consistency of allowed NUMA balance calculations +- sched/pelt: Relax the sync of load_sum with load_avg +- pcpcntrs: fix dying cpu summation race +- cpumask: introduce for_each_cpu_or +- lib: extend the scope of small_const_nbits() macro +- cpumask: Introduce DYING mask +- sched/pelt: Relax the sync of runnable_sum with runnable_avg +- sched/pelt: Continue to relax the sync of util_sum with util_avg +- crypto: hisilicon/qm - support no-sva feature +- uacce: add UACCE_MODE_NOIOMMU for warpdrive +- !851 perf/smmuv3: Enable HiSilicon Erratum quirk +- !793 LoongArch: kvm: add pv ipi support +- !840 intel: backport uncore-freq current frequency sysfs related patches +- !839 intel: backport intel-pstate patches for Server platforms +- !809 LoongArch: defconfig: enable memory and pci hotplug related configs for LoongArch +- userswap: fix variable uninitialized in uswap_unmap_anon_page() +- userswap: mark swap-out buffer PTE as writable +- userswap: fix kernel BUG in userfaultfd_release() +- userswap: add VMA check for uswap registration +- userswap: add handling of ZERO_PAGE +- userswap: add page_count() check for swap-out VA +- userswap: add VMA check for swap-in and swap-out buffer +- userswap: fix BUG_ON in __mcopy_atomic() +- !547 [OLK-5.10] cpufreq: ACPI: Add Zhaoxin/Centaur turbo boost control interface support +- !544 [OLK-5.10] ACPI, x86: Improve Zhaoxin processors support for NONSTOP TSC +- !848 Support T6 ETM and Workaround CPU hung bug on hip09 +- perf/smmuv3: Enable HiSilicon Erratum quirk +- perf cs-etm: add error logging to cs_etm_is_etmv4() +- coresight: etm4x: Workaround CPU hung bug on hip09 +- coresight: etm4x: Add Support for HiSilicon T6 ETM +- cpufreq: CPPC: keep target core awake when reading its cpufreq rate +- config: enable CONFIG_ARM64_AMU_EXTN to be compatible with AMU platform +- cpufreq: ACPI: Add Zhaoxin/Centaur turbo boost control interface support +- ACPI, x86: Improve Zhaoxin processors support for NONSTOP TSC +- net: hns3: add support for Hisilicon ptp sync device +- !835 Add Huawei Intelligent Network Card Driver: hinic3 +- LoongArch: defconfig: Add PCI hotplug support +- LoongArch: defconfig: Add memory hotplug support +- platform/x86: intel-uncore-freq: Prevent driver loading in guests +- platform/x86/intel/uncore-freq: Display uncore current frequency +- platform/x86/intel/uncore-freq: Use sysfs API to create attributes +- cpufreq: intel_pstate: Enable HWP IO boost for all servers +- cpufreq: intel_pstate: Add Sapphire Rapids support in no-HWP mode +- cpufreq: intel_pstate: Support Sapphire Rapids OOB mode +- cpufreq: intel_pstate: Handle no_turbo in frequency invariance +- RDMA/hns: Modify the value of long message loopback slice +- RDMA/hns: Fix base address table allocation +- RDMA/hns: Fix timeout attr in query qp for HIP08 +- net/hinic3: Add Huawei Intelligent Network Card Driver: hinic3 +- cpufreq: intel_pstate: Add Ice Lake server to out-of-band IDs +- !601 fix test_vmxon failed +- !739 Fix kvm-unit-tests vmx_cr4_osxsave_test case failed +- !767 [HUST CSE] fs/ntfs3: Aolve errors caused by uninitialized variables +- LoongArch: LSVZ: Support PV IPI to reduce VM exit +- !777 update patches for sw64 architecture +- !824 Net: ethernet: 3snic 3s9xx network driver add "select NET_DEVLINK" +- Net: ethernet: 3snic 3s9xx network driver add "select NET_DEVLINK" +- !821 Revert "riscv: topology: fix default topology reporting" +- !820 Net: m1600: Fix build err +- Revert "riscv: topology: fix default topology reporting" +- Net: m1600: Fix build err for hwmon.c. +- ipc: remove memcg accounting for sops objects in do_semtimedop() +- drm/i915/sdvo: Setup DDC fully before output init +- drm/i915/sdvo: Filter out invalid outputs more sensibly +- drm/rockchip: dsi: Force synchronous probe +- ext4,f2fs: fix readahead of verity data +- KVM: x86: emulator: update the emulation mode after CR0 write +- KVM: x86: emulator: introduce emulator_recalc_and_set_mode +- KVM: x86: emulator: em_sysexit should update ctxt->mode +- KVM: x86: Mask off reserved bits in CPUID.80000001H +- KVM: x86: Mask off reserved bits in CPUID.80000008H +- KVM: x86: Mask off reserved bits in CPUID.8000001AH +- KVM: x86: Mask off reserved bits in CPUID.80000006H +- ext4: fix BUG_ON() when directory entry has invalid rec_len +- ext4: fix warning in 'ext4_da_release_space' +- parisc: Avoid printing the hardware path twice +- parisc: Export iosapic_serial_irq() symbol for serial port driver +- parisc: Make 8250_gsc driver dependend on CONFIG_PARISC +- perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[] +- perf/x86/intel: Fix pebs event constraints for ICL +- efi: random: Use 'ACPI reclaim' memory for random seed +- efi: random: reduce seed size to 32 bytes +- fuse: add file_modified() to fallocate +- capabilities: fix potential memleak on error path from vfs_getxattr_alloc() +- tracing/histogram: Update document for KEYS_MAX size +- tools/nolibc/string: Fix memcmp() implementation +- kprobe: reverse kp->flags when arm_kprobe failed +- tracing: kprobe: Fix memory leak in test_gen_kprobe/kretprobe_cmd() +- btrfs: fix type of parameter generation in btrfs_get_dentry +- coresight: cti: Fix hang in cti_disable_hw() +- mtd: rawnand: gpmi: Set WAIT_FOR_READY timeout based on program/erase times +- fscrypt: fix keyring memory leak on mount failure +- fscrypt: stop using keyrings subsystem for fscrypt_master_key +- fscrypt: simplify master key locking +- ALSA: usb-audio: Add quirks for MacroSilicon MS2100/MS2106 devices +- block, bfq: protect 'bfqd->queued' by 'bfqd->lock' +- i2c: piix4: Fix adapter not be removed in piix4_remove() +- arm64: dts: juno: Add thermal critical trip points +- firmware: arm_scmi: Make Rx chan_setup fail on memory errors +- firmware: arm_scmi: Suppress the driver's bind attributes +- ARM: dts: imx6qdl-gw59{10,13}: fix user pushbutton GPIO offset +- efi/tpm: Pass correct address to memblock_reserve +- i2c: xiic: Add platform module alias +- drm/amdgpu: set vm_update_mode=0 as default for Sienna Cichlid in SRIOV case +- HID: saitek: add madcatz variant of MMO7 mouse device ID +- scsi: core: Restrict legal sdev_state transitions via sysfs +- ACPI: APEI: Fix integer overflow in ghes_estatus_pool_init() +- media: meson: vdec: fix possible refcount leak in vdec_probe() +- media: dvb-frontends/drxk: initialize err to 0 +- media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZE +- media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE +- media: rkisp1: Zero v4l2_subdev_format fields in when validating links +- media: rkisp1: Initialize color space on resizer sink and source pads +- s390/boot: add secure boot trailer +- xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices +- mtd: parsers: bcm47xxpart: Fix halfblock reads +- mtd: parsers: bcm47xxpart: print correct offset on read error +- fbdev: stifb: Fall back to cfb_fillrect() on 32-bit HCRX cards +- video/fbdev/stifb: Implement the stifb_fillrect() function +- mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake +- mmc: sdhci-pci: Avoid comma separated statements +- mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus +- drm/msm/hdmi: fix IRQ lifetime +- drm/msm/hdmi: Remove spurious IRQF_ONESHOT flag +- ipv6: fix WARNING in ip6_route_net_exit_late() +- net, neigh: Fix null-ptr-deref in neigh_table_clear() +- net: mdio: fix undefined behavior in bit shift for __mdiobus_register +- btrfs: fix ulist leaks in error paths of qgroup self tests +- btrfs: fix inode list leak during backref walking at find_parent_nodes() +- btrfs: fix inode list leak during backref walking at resolve_indirect_refs() +- isdn: mISDN: netjet: fix wrong check of device registration +- mISDN: fix possible memory leak in mISDN_register_device() +- rose: Fix NULL pointer dereference in rose_send_frame() +- ipvs: fix WARNING in ip_vs_app_net_cleanup() +- ipvs: fix WARNING in __ip_vs_cleanup_batch() +- ipvs: use explicitly signed chars +- netfilter: nf_tables: release flow rule object from commit path +- net: sched: Fix use after free in red_enqueue() +- ata: pata_legacy: fix pdc20230_set_piomode() +- net: fec: fix improper use of NETDEV_TX_BUSY +- nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send() +- nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send() +- nfc: nxp-nci: Fix potential memory leak in nxp_nci_send() +- NFC: nxp-nci: remove unnecessary labels +- nfc: fdp: Fix potential memory leak in fdp_nci_send() +- nfc: fdp: drop ftrace-like debugging messages +- RDMA/qedr: clean up work queue on failure in qedr_alloc_resources() +- RDMA/core: Fix null-ptr-deref in ib_core_cleanup() +- net: dsa: Fix possible memory leaks in dsa_loop_init() +- nfs4: Fix kmemleak when allocate slot failed +- NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot +- NFSv4.1: Handle RECLAIM_COMPLETE trunking errors +- NFSv4: Fix a potential state reclaim deadlock +- IB/hfi1: Correctly move list in sc_disable() +- RDMA/cma: Use output interface for net_dev check +- KVM: x86: Add compat handler for KVM_X86_SET_MSR_FILTER +- KVM: x86: Copy filter arg outside kvm_vm_ioctl_set_msr_filter() +- KVM: x86: Protect the unused bits in MSR exiting flags +- x86/topology: Fix duplicated core ID within a package +- x86/topology: Fix multiple packages shown on a single-package system +- x86/topology: Set cpu_die_id only if DIE_TYPE found +- KVM: x86: Treat #DBs from the emulator as fault-like (code and DR7.GD=1) +- KVM: x86: Trace re-injected exceptions +- KVM: nVMX: Don't propagate vmcs12's PERF_GLOBAL_CTRL settings to vmcs02 +- KVM: nVMX: Pull KVM L0's desired controls directly from vmcs01 +- serial: ar933x: Deassert Transmit Enable on ->rs485_config() +- serial: 8250: Let drivers request full 16550A feature probing +- !761 net: stmmac: fix potential double free of dma descriptor resources +- !807 Backport 5.10.153 LTS +- !805 Add support for HiSilicon UC/H60PA/PAv3 PMU driver +- !545 [OLK-5.10] x86/acpi/cstate: Optimize ARB_DISABLE on Centaur CPUs +- !789 x86 FPU/AMX bug fix since kernel v5.18 +- !787 Intel: Support In Field Scan(IFS) Array BIST +- !781 Intel: backport split lock EMR CPU support for OLK 5.10 +- !760 LoongArch: kvm: fix bug of kvm's hugepage +- drivers/perf: hisi: Add support for HiSilicon UC PMU driver +- drivers/perf: hisi: Add support for HiSilicon H60PA and PAv3 PMU driver +- drivers/perf: hisi: add NULL check for name +- drivers/perf: hisi: Remove redundant initialized of pmu->name +- drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu" +- serial: Deassert Transmit Enable on probe in driver-specific way +- serial: core: move RS485 configuration tasks from drivers into core +- can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global FIFO receive +- arm64/kexec: Test page size support with new TGRAN range values +- arm64/mm: Fix __enable_mmu() for new TGRAN range values +- arm64: Add AMPERE1 to the Spectre-BHB affected list +- net: enetc: survive memory pressure without crashing +- net/mlx5: Fix crash during sync firmware reset +- net/mlx5: Fix possible use-after-free in async command interface +- net/mlx5e: Do not increment ESN when updating IPsec ESN state +- nh: fix scope used to find saddr when adding non gw nh +- net: ehea: fix possible memory leak in ehea_register_port() +- openvswitch: switch from WARN to pr_warn +- ALSA: aoa: Fix I2S device accounting +- ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev() +- net: fec: limit register access on i.MX6UL +- PM: domains: Fix handling of unavailable/disabled idle states +- net: ksz884x: fix missing pci_disable_device() on error in pcidev_init() +- i40e: Fix flow-type by setting GL_HASH_INSET registers +- i40e: Fix VF hang when reset is triggered on another VF +- i40e: Fix ethtool rx-flow-hash setting for X722 +- ipv6: ensure sane device mtu in tunnels +- media: vivid: set num_in/outputs to 0 if not supported +- media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced' +- media: v4l2-dv-timings: add sanity checks for blanking values +- media: vivid: dev->bitmap_cap wasn't freed in all cases +- media: vivid: s_fbuf: add more sanity checks +- PM: hibernate: Allow hybrid sleep to work with s2idle +- can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() in error path +- can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error path +- tcp: fix indefinite deferral of RTO with SACK reneging +- tcp: fix a signed-integer-overflow bug in tcp_add_backlog() +- tcp: minor optimization in tcp_add_backlog() +- net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY +- net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed +- kcm: annotate data-races around kcm->rx_wait +- kcm: annotate data-races around kcm->rx_psock +- atlantic: fix deadlock at aq_nic_stop +- amd-xgbe: add the bit rate quirk for Molex cables +- amd-xgbe: fix the SFP compliance codes check for DAC cables +- x86/unwind/orc: Fix unreliable stack dump with gcov +- net: netsec: fix error handling in netsec_register_mdio() +- tipc: fix a null-ptr-deref in tipc_topsrv_accept +- perf/x86/intel/lbr: Use setup_clear_cpu_cap() instead of clear_cpu_cap() +- ALSA: ac97: fix possible memory leak in snd_ac97_dev_register() +- ASoC: qcom: lpass-cpu: Mark HDMI TX parity register as volatile +- arc: iounmap() arg is volatile +- ASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile +- drm/msm: Fix return type of mdp4_lvds_connector_mode_valid +- media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation +- net: ieee802154: fix error return code in dgram_bind() +- xen/gntdev: Prevent leaking grants +- Xen/gntdev: don't ignore kernel unmapping error +- s390/pci: add missing EX_TABLE entries to __pcistg_mio_inuser()/__pcilg_mio_inuser() +- s390/futex: add missing EX_TABLE entry to __futex_atomic_op() +- perf auxtrace: Fix address filter symbol name match for modules +- kernfs: fix use-after-free in __kernfs_remove +- counter: microchip-tcb-capture: Handle Signal1 read and Synapse +- mmc: core: Fix kernel panic when remove non-standard SDIO card +- mmc: sdhci_am654: 'select', not 'depends' REGMAP_MMIO +- drm/msm/dp: fix IRQ lifetime +- drm/msm/hdmi: fix memory corruption with too many bridges +- drm/msm/dsi: fix memory corruption with too many bridges +- scsi: qla2xxx: Use transport-defined speed mask for supported_speeds +- mac802154: Fix LQI recording +- exec: Copy oldsighand->action under spin-lock +- fs/binfmt_elf: Fix memory leak in load_elf_binary() +- fbdev: smscufx: Fix several use-after-free bugs +- iio: temperature: ltc2983: allocate iio channels once +- iio: light: tsl2583: Fix module unloading +- tools: iio: iio_utils: fix digit calculation +- xhci: Remove device endpoints from bandwidth list when freeing the device +- xhci: Add quirk to reset host back to default state at shutdown +- mtd: rawnand: marvell: Use correct logic for nand-keep-config +- usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 controller +- usb: bdc: change state when port disconnected +- usb: dwc3: gadget: Don't set IMI for no_interrupt +- usb: dwc3: gadget: Stop processing more requests on IMI +- USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM +- ALSA: rme9652: use explicitly signed char +- ALSA: au88x0: use explicitly signed char +- ALSA: Use del_timer_sync() before freeing timer +- can: kvaser_usb: Fix possible completions during init_completion +- can: j1939: transport: j1939_session_skb_drop_old(): spin_unlock_irqrestore() before kfree_skb() +- drivers/perf: hisi: Simplify the parameters of hisi_pmu_init() +- drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability +- perf: hisi: Extract hisi_pmu_init +- !798 bpf: support BPF_PROG_QUERY for progs attached to sockmap +- selftests/x86/amx: Add a ptrace test +- x86/fpu/xstate: Prevent false-positive warning in __copy_xstate_uabi_buf() +- selftests/x86/amx: Use provided __cpuid_count() macro +- selftests: Provide local define of __cpuid_count() +- x86/fpu: Fix copy_xstate_to_uabi() to copy init states correctly +- x86/fpu: Exclude dynamic states from init_fpstate +- x86/fpu: Fix the init_fpstate size check with the actual size +- x86/fpu: Configure init_fpstate attributes orderly +- x86/fpu/xstate: Consolidate size calculations +- x86/fpu/xstate: Handle supervisor states in XSTATE permissions +- x86/fpu/xsave: Handle compacted offsets correctly with supervisor states +- x86/fpu: Cache xfeature flags from CPUID +- x86/fpu/xsave: Initialize offset/size cache early +- x86/fpu: Remove unused supervisor only offsets +- x86/fpu: Remove redundant XCOMP_BV initialization +- !802 Backport CVEs and bugfixes +- bpf: support BPF_PROG_QUERY for progs attached to sockmap +- !780 Backport 5.10.152 LTS +- netfilter: nf_tables: deactivate anonymous set from preparation phase +- xfs: verify buffer contents when we skip log replay +- iommu/arm-smmu-v3: Fix ECMDQs is not initialized correctly +- !791 crypto: hisilicon/qm - support dumping stop queue status +- !794 scsi: hisi_sas: The IO timeout mechanism and error handling related bugfix +- !608 Net: ethernet: Support 3snic 3s9xx network card +- crypto: hisilicon/qm - support dumping stop queue status +- crypto: hisilicon/qm - add debugfs to query the status of the stop queue +- !782 openEuler supports bcache by default on x86 platforms +- !765 LoongArch: fix some stability issues +- scsi: hisi_sas: Change DMA setup lock timeout to 2.5s +- scsi: hisi_sas: Modify v3 HW SATA disk error state completion processing +- !786 Support userswap feature +- !790 mm: enable ksm per process and cgroup +- memcg: support ksm merge any mode per cgroup +- mm/ksm: unmerge and clear VM_MERGEABLE when setting PR_SET_MEMORY_MERGE=0 +- mm: add new KSM process and sysfs knobs +- mm: add new api to enable ksm per process +- ksm: add profit monitoring documentation +- ksm: count allocated ksm rmap_items for each process +- ksm: count ksm merging pages for each process +- Net: ethernet: Support 3snic 3s9xx network card 3snic inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I6TX4J CVE: NA +- !778 [sync] PR-774: Backport CVEs and bugfixes +- userswap: add user mode check for swap-out VA +- userswap: check read and write permissions for swap-out pages +- userswap: add VMA checks for register address +- userswap: add checks for input addresses +- userswap: fix some type and logical bugs +- userswap: split uswap_register() to validate address ranges +- userswap: fix NULL pointer dereference in uswap_unmap_anon_page() +- userswap: convert enable_userswap to static key +- userswap: move userswap feature code into mm/userswap.c +- userswap: provide cpu info in userfault msg +- userswap: introduce new flag to determine the first page fault +- userswap: fix VM_BUG_ON() in handle_userfault() +- userswap: introduce MREMAP_USWAP_SET_PTE to remap for swapping out +- userswap: introduce UFFDIO_COPY_MODE_DIRECT_MAP to map without copying +- udp: Update reuse->has_conns under reuseport_lock. +- mm: /proc/pid/smaps_rollup: fix no vma's null-deref +- mmc: core: Add SD card quirk for broken discard +- Makefile.debug: re-enable debug info for .S files +- x86/Kconfig: Drop check for -mabi=ms for CONFIG_EFI_STUB +- ACPI: video: Force backlight native for more TongFang devices +- hv_netvsc: Fix race between VF offering and VF association message from host +- perf/x86/intel/pt: Relax address filter validation +- riscv: topology: fix default topology reporting +- arm64: dts: qcom: sc7180-trogdor: Fixup modem memory region +- fcntl: make F_GETOWN(EX) return 0 on dead owner task +- perf: Skip and warn on unknown format 'configN' attrs +- perf pmu: Validate raw event with sysfs exported format bits +- riscv: always honor the CONFIG_CMDLINE_FORCE when parsing dtb +- riscv: Add machine name to kernel boot log and stack dump output +- mmc: sdhci-tegra: Use actual clock rate for SW tuning correction +- xen/gntdev: Accommodate VMA splitting +- xen: assume XENFEAT_gnttab_map_avail_bits being set for pv guests +- tracing: Do not free snapshot if tracer is on cmdline +- tracing: Simplify conditional compilation code in tracing_set_tracer() +- dmaengine: mxs: use platform_driver_register +- dmaengine: mxs-dma: Remove the unused .id_table +- drm/virtio: Use appropriate atomic state in virtio_gpu_plane_cleanup_fb() +- iommu/vt-d: Clean up si_domain in the init_dmars() error path +- iommu/vt-d: Allow NVS regions in arch_rmrr_sanity_check() +- net: phy: dp83822: disable MDI crossover status change interrupt +- net: hns: fix possible memory leak in hnae_ae_register() +- sfc: include vport_id in filter spec hash and equal() +- net: sched: sfb: fix null pointer access issue when sfb_init() fails +- net: sched: delete duplicate cleanup of backlog and qlen +- net: sched: cake: fix null pointer access issue when cake_init() fails +- nvme-hwmon: kmalloc the NVME SMART log buffer +- nvme-hwmon: consistently ignore errors from nvme_hwmon_init +- nvme-hwmon: Return error code when registration fails +- nvme-hwmon: rework to avoid devm allocation +- ionic: catch NULL pointer issue on reconfig +- net: hsr: avoid possible NULL deref in skb_clone() +- cifs: Fix xid leak in cifs_ses_add_channel() +- cifs: Fix xid leak in cifs_flock() +- cifs: Fix xid leak in cifs_copy_file_range() +- net: phy: dp83867: Extend RX strap quirk for SGMII mode +- net/atm: fix proc_mpc_write incorrect return value +- sfc: Change VF mac via PF as first preference if available. +- HID: magicmouse: Do not set BTN_MOUSE on double report +- i40e: Fix DMA mappings leak +- tipc: fix an information leak in tipc_topsrv_kern_subscr +- tipc: Fix recognition of trial period +- ACPI: extlog: Handle multiple records +- btrfs: fix processing of delayed tree block refs during backref walking +- btrfs: fix processing of delayed data refs during backref walking +- r8152: add PID for the Lenovo OneLink+ Dock +- media: venus: dec: Handle the case where find_format fails +- media: mceusb: set timeout to at least timeout provided +- KVM: arm64: vgic: Fix exit condition in scan_its_table() +- kvm: Add support for arch compat vm ioctls +- cpufreq: qcom: fix memory leak in error path +- ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS +- ata: ahci-imx: Fix MODULE_ALIAS +- hwmon/coretemp: Handle large core ID value +- x86/microcode/AMD: Apply the patch early on every logical thread +- i2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter +- cpufreq: qcom: fix writes in read-only memory region +- selinux: enable use of both GFP_KERNEL and GFP_ATOMIC in convert_context() +- ocfs2: fix BUG when iput after ocfs2_mknod fails +- ocfs2: clear dinode links count in case of error +- !766 LoongArch: add kexec&kdump support +- config: enable bcache for x86 by default +- !758 net: hns3: Backport wol feature and some hns3 bugfix +- !570 Net: m1600: Support nebula-matrix m1600-series network card +- !629 arm64: Add initial support for FEAT_WFxT +- x86/split_lock: Enumerate architectural split lock disable bit +- Net: m1600: Add m1600-driver for nebula-matrix m1600 series smart NIC. +- net: hns3: fix reset timeout when enable full VF +- net: hns3: fix output information incomplete for dumping tx queue info with debugfs +- !772 timekeeping: Make CLOCKSOURCE_VALIDATE_LAST_CYCLE configurable +- config: make CLOCKSOURCE_VALIDATE_LAST_CYCLE not set by default +- !768 Backport 5.10.151 LTS +- filemap: Correct the conditions for marking a folio as accessed +- Revert "filemap: Correct the conditions for marking a folio as accessed" +- netrom: Fix use-after-free caused by accept on already connected socket +- bluetooth: Perform careful capability checks in hci_sock_ioctl() +- fs/ntfs3: Delete duplicate condition in ntfs_read_mft() +- fs/ntfs3: Fix slab-out-of-bounds read in run_unpack +- fs/ntfs3: Validate data run offset +- xfs: buffer pins need to hold a buffer reference +- ovl: get_acl: Fix null pointer dereference at realinode in rcu-walk mode +- fix kabi broken due to import new inode operation get_inode_acl +- ovl: enable RCU'd ->get_acl() +- vfs: add rcu argument to ->get_acl() callback +- bpf: add missing header file include +- uaccess: Add speculation barrier to copy_from_user() +- sw64: bpf: optimize DIV and MOD instructions +- sw64: fix crash kernel memory reservation +- sw64: kvm: optimize external interrupts assignment for guest +- sw64: guard hotplug cpu specific code +- sw64: perf: unwind: use perf's copy of kernel headers +- sw64: trace user task unalignment +- sw64: kvm: fix inconsitent timing metrics +- sw64: restart idle routine if it is interrupted +- sw64: mm: fix pmd_present() for THP +- sw64: fix format of Kconfig +- sw64: reorganize CPU_FREQ related config +- efi/sw_64: work around adding memblock regions +- sw64: kvm: add the implementation of HCALL_STOP +- sw64: fix a compile error with CONFIG_EFI=n +- sw64: simplify and improve smp operations +- sw64: kvm: fix clock synchronization of VM live migration +- sw64: fix support for qemu boards without IOR:SMP_INFO +- sw64: setup cpu topology of guest +- sw64: simplify pgtable set and populate interfaces +- sw64: extend pt_regs to fix broken bpf_user_pt_regs_t +- sw64: update kata_openeuler_defconfig and kata_guest_defconfig +- sw64: fix bpf_user_pt_regs_t +- sw64: increase the minimun frequency of DVFS +- sw64: fix compilation error when CONFIG_IPMI_POWEROFF=m +- sw64: add support for restartable sequences +- sw64: iommu: fix iommu-flush ops to support multi-device passthrough +- sw64: enable CONFIG_IKHEADERS in defconfig +- sw64: select ARCH_WANT_DEFAULT_BPF_JIT in Kconfig +- sw64: expand the occasion for using legacy power management +- sw64: optimize idle routine +- sw64: fix THREAD_INFO_IN_TASK support for suspend and hibernation +- sw64: topology: fix thread_sibling setup +- sw64: perf: add libbfd support +- sw64: fix a compile error with CONFIG_SCHED_INFO=n +- sw64: add support for vmtop +- sw64: add CONFIG_SCHEDSTATS=y to defconfig +- sw64: add more registers saved during suspend/resume cycle +- sw64: deprecate the restored memory region during suspend cycle +- fs/ntfs3: Fixed the error of uninitialized value +- !771 Revert "config: enable bcache for x86 by default" +- timekeeping: Make CLOCKSOURCE_VALIDATE_LAST_CYCLE configurable +- Revert "config: enable bcache for x86 by default" +- !757 openEuler supports bcache by default on x86 platforms +- arm64: Use WFxT for __delay() when possible +- arm64: Add wfet()/wfit() helpers +- arm64: Add HWCAP advertising FEAT_WFXT +- KVM: arm64: Expose the WFXT feature to guests +- KVM: arm64: Offer early resume for non-blocking WFxT instructions +- KVM: arm64: Handle blocking WFIT instruction +- KVM: arm64: Introduce kvm_counter_compute_delta() helper +- KVM: arm64: Simplify kvm_cpu_has_pending_timer() +- arm64: Add RV and RN fields for ESR_ELx_WFx_ISS +- arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition +- config: enable bcache for x86 by default +- !634 Accelerator Linux Mainline Patch Round +- Documentation/ABI: Update IFS ABI doc +- platform/x86/intel/ifs: Update IFS doc +- platform/x86/intel/ifs: Implement Array BIST test +- platform/x86/intel/ifs: Sysfs interface for Array BIST +- platform/x86/intel/ifs: Introduce Array Scan test to IFS +- x86/include/asm/msr-index.h: Add IFS Array test bits +- platform/x86/intel/ifs: IFS cleanup +- platform/x86/intel/ifs: Reorganize driver data +- platform/x86/intel/ifs: Separate ifs_pkg_auth from ifs_data +- !763 DAMON features: Support for process-level hot and cold data recognition and adjustment. +- kbuild: Add skip_encoding_btf_enum64 option to pahole +- kbuild: Unify options for BTF generation for vmlinux and modules +- kbuild: skip per-CPU BTF generation for pahole v1.18-v1.21 +- kbuild: Quote OBJCOPY var to avoid a pahole call break the build +- bpf: Generate BTF_KIND_FLOAT when linking vmlinux +- !749 intel: backport intel-idle support for EMR +- !748 intel: backport intel-uncore-freq support for EMR +- !742 SPR: EDAC driver enhance for driver decode and 2LM +- !622 Intel: Add PMU support for Intel Emerald Rapids +- !615 Intel: Add RAPL support for Emerald Rapids(EMR) +- LoongArch: Fix kdump failure on v40 interface specification +- LoongArch: configs: Enable kexec/kdump +- LoongArch: kdump: Add crashkernel=YM handling +- LoongArch: kdump: Add single kernel image implementation +- LoongArch: Add support for kernel address space layout randomization (KASLR) +- LoongArch: Add support for kernel relocation +- LoongArch: Add la_abs macro implementation +- LoongArch: Add JUMP_VIRT_ADDR macro implementation to avoid using la.abs +- LoongArch: Use la.pcrel instead of la.abs when it's trivially possible +- LoongArch: efistub: Modify the address where efistub jumps to the main kernel +- LoongArch: kdump: Add memory reservation for old kernel +- LoongArch: Integrate initrd operation +- LoongArch: kexec: Add compatibility with old interfaces +- LoongArch: Flush TLB earlier at initialization +- LoongArch: Add kdump support +- LoongArch: Add kexec support +- LoongArch: defconfig: enable CONFIG_CACHEFILES +- i2c: loongson: fix irq not freed when remove module +- LoongArch: Set _PAGE_DIRTY only if _PAGE_MODIFIED is set in {pmd,pte}_mkwrite() +- LoongArch: Set _PAGE_DIRTY only if _PAGE_WRITE is set in {pmd,pte}_mkdirty() +- LoongArch: Clear FPU/SIMD thread info flags for kernel thread +- LoongArch: Remove generic irq migration +- LoongArch: Fix secondary bridge routing errors +- net: stmmac: fix potential double free of dma descriptor resources +- LoongArch: kvm: fix bug of kvm's hugepage +- crypto: hisilicon/qm - fix coding style issues +- crypto: hisilicon/qm - update comments to match function +- crypto: hisilicon/qm - change function names +- crypto: hisilicon/qm - use min() instead of min_t() +- crypto: hisilicon/qm - remove some unused defines +- crypto: hisilicon: Wipe entire pool on error +- crypto: hisilicon/qm - define the device isolation strategy +- uacce: supports device isolation feature +- crypto: hisilicon - remove redundant config PCI dependency for some CRYPTO_DEV_HISI configs +- crypto: ccree,hisilicon - Fix dependencies to correct algorithm +- crypto: hisilicon/qm - add device status check when start fails +- crypto: hisilicon/hpre - Use helper to set reqsize +- crypto: kpp - Add helper to set reqsize +- crypto: hisilicon/qm - fix 'QM_XEQ_DEPTH_CAP' mask value +- crypto: hisilicon/sec - remove continuous blank lines +- crypto: hisilicon/sec - fix spelling mistake 'ckeck' -> 'check' +- crypto: hisilicon/qm - the command dump process is modified +- crypto: hisilicon/qm - split a debugfs.c from qm +- crypto: hisilicon/qm - modify the process of regs dfx +- crypto: hisilicon/qm - delete redundant null assignment operations +- crypto: hisilicon/qm - add missing pci_dev_put() in q_num_set() +- !640 sched/fair: Introduce QOS_SMT_EXPELL priority reversion mechanism +- !624 Intel SPR fast rep string operations support +- !594 Intel: SGX incremental backporting patches until upstream 6.3 +- !580 Intel: Recover two microcode interfaces when support In Field Scan(IFS) multi-blob images +- !469 OLK-5.10: x86/cpu: Add several Intel server CPU model numbers +- config: enable CONFIG_QOS_SCHED_SMT_EXPELLER +- sched/fair: Add cmdline nosmtexpell +- sched/fair: Introduce QOS_SMT_EXPELL priority reversion mechanism +- net: hns3: sync linux kernel hns3 wol to openeuler +- !753 arm64/mpam: modify mpam irq register error log +- arm64/mpam: modify mpam irq register error log +- sched/fair: Start tracking qos_offline tasks count in cfs_rq +- platform/x86: intel-uncore-freq: add Emerald Rapids support +- intel_idle: add Emerald Rapids Xeon support +- EDAC/i10nm: Add driver decoder for Sapphire Rapids server +- EDAC/skx_common: Enable EDAC support for the "near" memory +- kvm: x86: Sink cpuid update into vendor-specific set_cr4 functions +- !169 sched/fair: Scan cluster before scanning LLC in wake-up path +- !678 backport some bug fix for page pool +- !724 Backport CVEs and bugfixes +- USB: gadgetfs: Fix race between mounting and unmounting +- prlimit: do_prlimit needs to have a speculation check +- ext4: check iomap type only if ext4_iomap_begin() does not fail +- dm ioctl: fix nested locking in table_clear() to remove deadlock concern +- net: qcom/emac: Fix use after free bug in emac_remove due to race condition +- net: sched: sch_qfq: prevent slab-out-of-bounds in qfq_activate_agg +- i2c: xgene-slimpro: Fix out-of-bounds bug in xgene_slimpro_i2c_xfer() +- ext4: only update i_reserved_data_blocks on successful block allocation +- can: af_can: fix NULL pointer dereference in can_rcv_filter +- RDMA/core: Refactor rdma_bind_addr +- RDMA/cma: Ensure rdma_addr_cancel() happens before issuing more requests +- scsi: dpt_i2o: Remove obsolete driver +- writeback, cgroup: fix null-ptr-deref write in bdi_split_work_to_wbs +- bpf, sockmap: Fix an infinite loop error when len is 0 in tcp_bpf_recvmsg_parser() +- bpf, sockmap: Fix double bpf_prog_put on error case in map_link +- bpf, sockmap: Re-evaluate proto ops when psock is removed from sockmap +- bpf, sockmap: Attach map progs to psock early for feature probes +- bpf, sockmap: Fix return codes from tcp_bpf_recvmsg_parser() +- bpf, sockmap: Fix race in ingress receive verdict with redirect to self +- !675 driver/hifc&hinic: Fix compile error in allyesconfigs +- scsi/hifc: Fix compile error in allyesconfigs +- net/hinic: Fix compile error in allyesconfigs +- !665 [HUST CSE] fix a use-after-free bug in uncore_pci_remove() +- skbuff: Fix a race between coalescing and releasing SKBs +- !596 drivers/coresight: Add UltraSoc System Memory Buffer driver +- drivers/coresight: Add UltraSoc System Memory Buffer driver +- coresight: cti-sysfs: Mark coresight_cti_reg_store() as __maybe_unused +- coresight: Make new csdev_access offsets unsigned +- coresight: cti-sysfs: Re-use same functions for similar sysfs register accessors +- coresight: Re-use same function for similar sysfs register accessors +- coresight: Simplify sysfs accessors by using csdev_access abstraction +- coresight: Remove unused function parameter +- Revert "drivers/coresight: Add Ultrasoc System Memory Buffer driver" +- x86/perf: fix use-after-free bug in uncore_pci_remove() +- !636 backport some PCC driver patches +- !564 usb: disable soft retry for EJ188 controller +- sched:Open the kernel configuration for cluster. +- scheduler: Disable cluster scheduling by default +- scheduler: Add boot time enabling/disabling of cluster scheduling +- scheduler: Add runtime knob sysctl_sched_cluster +- scheduler: Create SDTL_SKIP flag to skip topology level +- sched/fair: Scan cluster before scanning LLC in wake-up path +- sched: Add per_cpu cluster domain info and cpus_share_lowest_cache API +- !592 Backport 5.10.150 LTS +- !644 The driver modifies the configuration of SAS link establishment and link stability. +- scsi: hisi_sas: Configure the initialization registers according to HBA model +- mm: Use wrapper to fix KABI broken in struct mempolicy +- !630 vfio/pci: Fix mistakenly deleted "vdev->num_regions" +- !639 Fix errors related to bond and rq inline +- RDMA/hns: Fix the compatibility flag problem +- RDMA/hns: Fix the inconsistency between the rq inline bit and the community +- RDMA/hns: Fix a missing constraint for slave num in RoCE Bonding +- RDMA/hns: Support dispatching IB event for RoCE bonding +- RDMA/hns: Set IB port state depending on upper device for RoCE bonding +- RDMA/hns: Get real-time port state of bonding slave +- RDMA/hns: Fix the counting error of bonding with more than 2 slaves +- RDMA/hns: Fix the repetitive workqueue mission in RoCE Bonding +- RDMA/hns: Rename hns_roce_bond_info_record() to make sense +- RDMA/hns: Support reset recovery for RoCE bonding +- RDMA/hns: Fix the counting error of slave number +- RDMA/hns: Fix the driver uninit order during bond setting +- RDMA/hns: Simplify the slave uninit logic of RoCE bonding operations +- RDMA/hns: Remove the struct member 'bond_grp' from hns_roce_dev +- RDMA/hns: Initial value assignment cleanup for RoCE Bonding variables +- RDMA/hns: Delete a useless assignment to bond_state +- RDMA/hns: Apply XArray for Bond ID allocation +- RDMA/hns: Move bond_work from hns_roce_dev to hns_roce_bond_group +- mm/mempolicy: fix memory leak in set_mempolicy_home_node system call +- tools headers UAPI: Sync files changed by new set_mempolicy_home_node syscall +- mm/hugetlb: add dedicated func to get 'allowed' nodemask for current process +- mm/mempolicy: wire up syscall set_mempolicy_home_node +- mm/mempolicy: add set_mempolicy_home_node syscall +- mm/mempolicy: use policy_node helper with MPOL_PREFERRED_MANY +- mm/mempolicy: advertise new MPOL_PREFERRED_MANY +- mm/hugetlb: add support for mempolicy MPOL_PREFERRED_MANY +- mm/memplicy: add page allocation function for MPOL_PREFERRED_MANY policy +- mm/mempolicy: add MPOL_PREFERRED_MANY for multiple preferred nodes +- mm/mempolicy: unify the parameter sanity check for mbind and set_mempolicy +- mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy +- mailbox: pcc: Reset pcc_chan_count to zero in case of PCC probe failure +- i2c: xgene-slimpro: Fix wrong pointer passed to PTR_ERR() +- mailbox: pcc: Fix spelling mistake "Plaform" -> "Platform" +- mailbox: pcc: Fix an invalid-load caught by the address sanitizer +- mailbox: pcc: Handle all PCC subtypes correctly in pcc_mbox_irq +- mailbox: pcc: Avoid using the uninitialized variable 'dev' +- mailbox: pcc: Move bulk of PCCT parsing into pcc_mbox_probe +- mailbox: pcc: Add support for PCCT extended PCC subspaces(type 3/4) +- mailbox: pcc: Drop handling invalid bit-width in {read,write}_register +- mailbox: pcc: Avoid accessing PCCT table in pcc_send_data and pcc_mbox_irq +- mailbox: pcc: Add PCC register bundle and associated accessor functions +- mailbox: pcc: Rename doorbell ack to platform interrupt ack register +- mailbox: pcc: Use PCC mailbox channel pointer instead of standard +- mailbox: pcc: Add pcc_mbox_chan structure to hold shared memory region info +- mailbox: pcc: Consolidate subspace doorbell register parsing +- mailbox: pcc: Consolidate subspace interrupt information parsing +- mailbox: pcc: Refactor all PCC channel information into a structure +- mailbox: fix various typos in comments +- perf/x86/rapl: Add support for Intel Emerald Rapids +- !381 net: hns3: add support handling tx dhcp packets for ROH +- perf/x86/intel/cstate: Add Emerald Rapids +- perf/x86/intel: Add Emerald Rapids +- perf/x86/intel/uncore: Add Emerald Rapids +- perf/x86/msr: Add Emerald Rapids +- perf/x86/cstate: Add SAPPHIRERAPIDS_X CPU support +- perf/x86/cstate: Add ICELAKE_X and ICELAKE_D support +- net: hns3: add support handling tx dhcp packets for ROH +- !617 Support geting xrcd num from firmware +- RDMA/hns: Support getting xrcd num from firmware +- !633 Backport CVEs and bugfixes +- bonding: Fix memory leak when changing bond type to Ethernet +- bonding: restore bond's IFF_SLAVE flag if a non-eth dev enslave fails +- bonding: restore IFF_MASTER/SLAVE flags on bond enslave ether type change +- hwmon: (xgene) Fix use after free bug in xgene_hwmon_remove due to race condition +- rxrpc: Fix race between conn bundle lookup and bundle removal [ZDI-CAN-15975] +- power: supply: da9150: Fix use after free bug in da9150_charger_remove due to race condition +- mm: mem_reliable: Fix blank space issue in reliable_report_usage() +- timers/nohz: Last resort update jiffies on nohz_full IRQ entry +- xfs: don't leak btree cursor when insrec fails after a split +- xfs: avoid unnecessary runtime sibling pointer endian conversions +- xfs: detect self referencing btree sibling pointers +- xfs: introduce xfs_buf_daddr() +- xfs: move kernel-specific superblock validation out of libxfs +- xfs: bound maximum wait time for inodegc work +- xfs: introduce xfs_inodegc_push() +- xfs: flush inodegc workqueue tasks before cancel +- xfs: drop async cache flushes from CIL commits. +- xfs: limit iclog tail updates +- xfs: need to see iclog flags in tracing +- io_uring: ensure that io_init_req() passes in the right issue_flags +- io_uring: add missing lock in io_get_file_fixed +- !618 Bugfixes related to SAS error handling, DIF, and low power consumption +- vfio/pci: Fix mistakenly deleted "vdev->num_regions" +- !616 net: hns3: supports customization requirements +- !625 AMD: Fix build warning. +- kabi: Fix kabi breakage without build warning. +- Revert "kabi: Fix kabi breakage caused by commit d5616bac7ada." +- KVM: x86: Advertise fast REP string features inherent to the CPU +- x86/cpufeatures: Add macros for Intel's new fast rep string features +- !593 Backport CVEs and bugfixes +- net: hns3: add extend interface support for read and write phy register +- net: hns3: add support set led +- net: hns3: add support set mac state +- net: hns3: add support detect port wire type +- net: hns3: add support PF provides customized interfaces to detect port faults. +- !611 net: hns3: add supports customization requirements and fix vf fault detect err +- scsi: sd: Update DIX config every time sd_revalidate_disk() is called +- scsi: sd: Reorganize DIF/DIX code to avoid calling revalidate twice +- scsi: hisi_sas: Ensure all enabled PHYs up during controller reset +- scsi: hisi_sas: Exit suspending state when usage count is greater than 0 +- scsi: hisi_sas: Set a port invalid only if there are no devices attached when refreshing port id +- scsi: libsas: Do not export sas_ata_wait_after_reset() +- scsi: hisi_sas: Fix SATA devices missing issue during I_T nexus reset +- scsi: libsas: Add smp_ata_check_ready_type() +- !503 SAS-related bugfix:rolls back these policies without disabling the hard disk PHY. +- !600 The driver supports PCIe 4 TB BAR device allocation. +- Revert "scsi: hisi_sas: Disable SATA disk phy for severe I_T nexus reset failure" +- net: hns3: notify specified VF for recovery operation +- net: hns3: add build check in hclge_get_vf_isolate_bitmap +- net: hns3: disbable pfc en before the reset +- net: hns3: support set pfc pause trans time +- net: hns3: add support disable nic clock +- net: hns3: add support config and query serdes lane status +- net: hns3: add supports configure optical module enable +- net: hns3: add support query the presence of optical module +- net: hns3: add support modified tx timeout +- KVM: nVMX: Inject #GP, not #UD, if "generic" VMXON CR0/CR4 check fails +- PCI: Support BAR sizes up to 8TB +- x86/sgx: Add overflow check in sgx_validate_offset_length() +- tools headers cpufeatures: Sync with the kernel sources +- KVM/VMX: Allow exposing EDECCSSA user leaf function to KVM guest +- x86/sgx: Allow enclaves to use Asynchrounous Exit Notification +- x86/sgx: Reduce delay and interference of enclave release +- x86/sgx: Improve comments for sgx_encl_lookup/alloc_backing() +- x86/sgx: Handle VA page allocation failure for EAUG on PF. +- x86/sgx: Do not fail on incomplete sanitization on premature stop of ksgxd +- selftests/sgx: Ignore OpenSSL 3.0 deprecated functions warning +- !581 Add support for SVE Direct WQE for hns +- net/sched: Retire tcindex classifier +- drm/vmwgfx: Validate the box size for the snooped cursor +- netfilter: nf_tables: nft_parse_register can return a negative value +- netfilter: nf_tables: validate registers coming from userspace. +- Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race condition +- KVM: nVMX: add missing consistency checks for CR0 and CR4 +- nfc: st-nci: Fix use after free bug in ndlc_remove due to race condition +- xfs: __percpu_counter_compare() inode count debug too expensive +- xfs: fix memcpy fortify errors in EFI log format copying +- xfs: fix memcpy fortify errors in RUI log format copying +- xfs: fix memcpy fortify errors in CUI log format copying +- xfs: fix memcpy fortify errors in BUI log format copying +- xfs: Use struct xfs_bmdr_block instead of struct xfs_btree_block to calculate root node size +- xfs: allow setting full range of panic tags +- xfs: don't use BMBT btree split workers for IO completion +- xfs: fix extent busy updating +- xfs: get root inode correctly at bulkstat +- xfs: invalidate xfs_bufs when allocating cow extents +- xfs: attach dquots to inode before reading data/cow fork mappings +- xfs: invalidate block device page cache during unmount +- xfs: add selinux labels to whiteout inodes +- xfs: convert buf_cancel_table allocation to kmalloc_array +- xfs: don't leak xfs_buf_cancel structures when recovery fails +- xfs: refactor buffer cancellation table allocation +- xfs: fix type mismatches in the inode reclaim functions +- xfs: don't allow log writes if the data device is readonly +- Revert "drm/amdgpu: make sure to init common IP before gmc" +- gcov: support GCC 12.1 and newer compilers +- f2fs: fix wrong condition to trigger background checkpoint correctly +- thermal: intel_powerclamp: Use first online CPU as control_cpu +- ext4: continue to expand file system when the target size doesn't reach +- Revert "drm/amdgpu: use dirty framebuffer helper" +- Revert "drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega" +- net/ieee802154: don't warn zero-sized raw_sendmsg() +- Revert "net/ieee802154: reject zero-sized raw_sendmsg()" +- net: ieee802154: return -EINVAL for unknown addr type +- perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc +- clk: bcm2835: Make peripheral PLLC critical +- usb: idmouse: fix an uninit-value in idmouse_open +- nvmet-tcp: add bounds check on Transfer Tag +- nvme: copy firmware_rev on each init +- staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv() +- Revert "usb: storage: Add quirk for Samsung Fit flash" +- usb: musb: Fix musb_gadget.c rxstate overflow bug +- usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info() +- md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d +- soundwire: intel: fix error handling on dai registration issues +- soundwire: cadence: Don't overwrite msg->buf during write commands +- bcache: fix set_at_max_writeback_rate() for multiple attached devices +- ata: libahci_platform: Sanity check the DT child nodes number +- blk-throttle: prevent overflow while calculating wait time +- staging: vt6655: fix potential memory leak +- power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type() +- nbd: Fix hung when signal interrupts nbd_start_device_ioctl() +- scsi: 3w-9xxx: Avoid disabling device if failing to enable it +- usb: host: xhci-plat: suspend/resume clks for brcm +- usb: host: xhci-plat: suspend and resume clocks +- clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate +- media: cx88: Fix a null-ptr-deref bug in buffer_prepare() +- clk: zynqmp: Fix stack-out-of-bounds in strncpy` +- btrfs: scrub: try to fix super block errors +- arm64: dts: imx8mq-librem5: Add bq25895 as max17055's power supply +- kselftest/arm64: Fix validatation termination record after EXTRA_CONTEXT +- ARM: dts: imx6sx: add missing properties for sram +- ARM: dts: imx6sll: add missing properties for sram +- ARM: dts: imx6sl: add missing properties for sram +- ARM: dts: imx6qp: add missing properties for sram +- ARM: dts: imx6dl: add missing properties for sram +- ARM: dts: imx6q: add missing properties for sram +- ARM: dts: imx7d-sdb: config the max pressure for tsc2046 +- drm/amd/display: Remove interface for periodic interrupt 1 +- drm/dp: Don't rewrite link config when setting phy test pattern +- mmc: sdhci-msm: add compatible string check for sdm670 +- drm/meson: explicitly remove aggregate driver at module unload time +- drm/amdgpu: fix initial connector audio value +- ASoC: SOF: pci: Change DMI match info to support all Chrome platforms +- platform/x86: msi-laptop: Change DMI match / alias strings to fix module autoloading +- platform/chrome: cros_ec: Notify the PM of wake events during resume +- drm: panel-orientation-quirks: Add quirk for Anbernic Win600 +- drm/vc4: vec: Fix timings for VEC modes +- drm: bridge: dw_hdmi: only trigger hotplug event on link change +- udmabuf: Set ubuf->sg = NULL if the creation of sg table fails +- drm/amd/display: fix overflow on MIN_I64 definition +- gpu: lontium-lt9611: Fix NULL pointer dereference in lt9611_connector_init() +- drm: Prevent drm_copy_field() to attempt copying a NULL pointer +- drm: Use size_t type for len variable in drm_copy_field() +- drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc() +- Bluetooth: L2CAP: Fix user-after-free +- net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory +- wifi: rt2x00: correctly set BBP register 86 for MT7620 +- wifi: rt2x00: set SoC wmac clock register +- wifi: rt2x00: set VGC gain for both chains of MT7620 +- wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620 +- wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620 +- can: bcm: check the result of can_send() in bcm_can_tx() +- Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times +- Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create() +- regulator: core: Prevent integer underflow +- wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit() +- xfrm: Update ipcomp_scratches with NULL when freed +- wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg() +- tcp: annotate data-race around tcp_md5sig_pool_populated +- openvswitch: Fix overreporting of drops in dropwatch +- openvswitch: Fix double reporting of drops in dropwatch +- bpftool: Clear errno after libcap's checks +- wifi: brcmfmac: fix invalid address access when enabling SCAN log level +- NFSD: fix use-after-free on source server when doing inter-server copy +- NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data +- x86/entry: Work around Clang __bdos() bug +- thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash +- powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue +- MIPS: BCM47XX: Cast memcmp() of function to (void *) +- ACPI: video: Add Toshiba Satellite/Portege Z830 quirk +- rcu-tasks: Convert RCU_LOCKDEP_WARN() to WARN_ONCE() +- rcu: Back off upon fill_page_cache_func() allocation failure +- selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle +- f2fs: fix to account FS_CP_DATA_IO correctly +- f2fs: fix to avoid REQ_TIME and CP_TIME collision +- f2fs: fix race condition on setting FI_NO_EXTENT flag +- ACPI: APEI: do not add task_work to kernel thread to avoid memory leak +- thermal/drivers/qcom/tsens-v0_1: Fix MSM8939 fourth sensor hw_id +- crypto: cavium - prevent integer overflow loading firmware +- crypto: marvell/octeontx - prevent integer overflows +- kbuild: rpm-pkg: fix breakage when V=1 is used +- kbuild: remove the target in signal traps when interrupted +- tracing: kprobe: Make gen test module work in arm and riscv +- tracing: kprobe: Fix kprobe event gen test module on exit +- iommu/iova: Fix module config properly +- crypto: qat - fix DMA transfer direction +- crypto: qat - use pre-allocated buffers in datapath +- crypto: qat - fix use of 'dma_map_single' +- crypto: inside-secure - Change swab to swab32 +- crypto: ccp - Release dma channels before dmaengine unrgister +- crypto: akcipher - default implementation for setting a private key +- iommu/omap: Fix buffer overflow in debugfs +- cgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset +- hwrng: imx-rngc - Moving IRQ handler registering after imx_rngc_irq_mask_clear() +- crypto: sahara - don't sleep when in softirq +- powerpc: Fix SPE Power ISA properties for e500v1 platforms +- powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5 +- x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition +- powerpc/powernv: add missing of_node_put() in opal_export_attrs() +- powerpc/pci_dn: Add missing of_node_put() +- powerpc/sysdev/fsl_msi: Add missing of_node_put() +- powerpc/math_emu/efp: Include module.h +- mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg +- clk: ast2600: BCLK comes from EPLL +- clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe +- clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration +- clk: baikal-t1: Add SATA internal ref clock buffer +- clk: baikal-t1: Add shared xGMAC ref/ptp clocks internal parent +- clk: baikal-t1: Fix invalid xGMAC PTP clock divider +- clk: vc5: Fix 5P49V6901 outputs disabling when enabling FOD +- spmi: pmic-arb: correct duplicate APID to PPID mapping logic +- dmaengine: ioat: stop mod_timer from resurrecting deleted timer in __cleanup() +- clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent +- mfd: sm501: Add check for platform_driver_register() +- mfd: fsl-imx25: Fix check for platform_get_irq() errors +- mfd: lp8788: Fix an error handling path in lp8788_irq_init() and lp8788_irq_init() +- mfd: lp8788: Fix an error handling path in lp8788_probe() +- mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq() +- mfd: intel_soc_pmic: Fix an error handling path in intel_soc_pmic_i2c_probe() +- fsi: core: Check error number after calling ida_simple_get +- clk: qcom: apss-ipq6018: mark apcs_alias0_core_clk as critical +- scsi: iscsi: iscsi_tcp: Fix null-ptr-deref while calling getpeername() +- scsi: libsas: Fix use-after-free bug in smp_execute_task_sg() +- serial: 8250: Fix restoring termios speed after suspend +- firmware: google: Test spinlock on panic path to avoid lockups +- staging: vt6655: fix some erroneous memory clean-up loops +- phy: qualcomm: call clk_disable_unprepare in the error handling +- tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdown +- serial: 8250: Toggle IER bits on only after irq has been set up +- serial: 8250: Add an empty line and remove some useless {} +- drivers: serial: jsm: fix some leaks in probe +- usb: gadget: function: fix dangling pnp_string in f_printer.c +- xhci: Don't show warning for reinit on known broken suspend +- IB: Set IOVA/LENGTH on IB_MR in core/uverbs layers +- RDMA/cm: Use SLID in the work completion as the DLID in responder side +- md/raid5: Ensure stripe_fill happens on non-read IO with journal +- md: Replace snprintf with scnprintf +- mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct() +- ata: fix ata_id_has_dipm() +- ata: fix ata_id_has_ncq_autosense() +- ata: fix ata_id_has_devslp() +- ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting() +- RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall. +- mtd: rawnand: fsl_elbc: Fix none ECC mode +- mtd: devices: docg3: check the return value of devm_ioremap() in the probe +- dyndbg: drop EXPORTed dynamic_debug_exec_queries +- dyndbg: let query-modname override actual module name +- dyndbg: fix module.dyndbg handling +- dyndbg: fix static_branch manipulation +- dmaengine: hisilicon: Add multi-thread support for a DMA channel +- dmaengine: hisilicon: Fix CQ head update +- dmaengine: hisilicon: Disable channels when unregister hisi_dma +- fpga: prevent integer overflow in dfl_feature_ioctl_set_irq() +- misc: ocxl: fix possible refcount leak in afu_ioctl() +- RDMA/rxe: Fix the error caused by qp->sk +- RDMA/rxe: Fix "kernel NULL pointer dereference" error +- media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init +- media: meson: vdec: add missing clk_disable_unprepare on error in vdec_hevc_start() +- tty: xilinx_uartps: Fix the ignore_status +- media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop +- HSI: omap_ssi_port: Fix dma_map_sg error check +- HSI: omap_ssi: Fix refcount leak in ssi_probe +- clk: tegra20: Fix refcount leak in tegra20_clock_init +- clk: tegra: Fix refcount leak in tegra114_clock_init +- clk: tegra: Fix refcount leak in tegra210_clock_init +- clk: sprd: Hold reference returned by of_get_parent() +- clk: berlin: Add of_node_put() for of_get_parent() +- clk: qoriq: Hold reference returned by of_get_parent() +- clk: oxnas: Hold reference returned by of_get_parent() +- clk: meson: Hold reference returned by of_get_parent() +- usb: common: debug: Check non-standard control requests +- usb: common: move function's kerneldoc next to its definition +- usb: common: add function to get interval expressed in us unit +- usb: common: Parse for USB SSP genXxY +- usb: ch9: Add USB 3.2 SSP attributes +- iio: ABI: Fix wrong format of differential capacitance channel ABI. +- iio: inkern: only release the device node when done with it +- iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume +- iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq +- iio: adc: at91-sama5d2_adc: check return status for pressure and touch +- iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX +- ARM: dts: exynos: fix polarity of VBUS GPIO of Origen +- ARM: Drop CMDLINE_* dependency on ATAGS +- ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family +- soc/tegra: fuse: Drop Kconfig dependency on TEGRA20_APB_DMA +- ia64: export memory_add_physaddr_to_nid to fix cxl build error +- ARM: dts: kirkwood: lsxl: remove first ethernet port +- ARM: dts: kirkwood: lsxl: fix serial line +- ARM: dts: turris-omnia: Fix mpp26 pin name and comment +- soc: qcom: smem_state: Add refcounting for the 'state->of_node' +- soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe() +- memory: of: Fix refcount leak bug in of_lpddr3_get_ddr_timings() +- memory: of: Fix refcount leak bug in of_get_ddr_timings() +- memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe() +- ALSA: hda/hdmi: Don't skip notification handling during PM operation +- ASoC: mt6660: Fix PM disable depth imbalance in mt6660_i2c_probe +- ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe +- ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe +- ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe +- mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe() +- ALSA: dmaengine: increment buffer pointer atomically +- ASoC: da7219: Fix an error handling path in da7219_register_dai_clks() +- drm/msm/dp: correct 1.62G link rate at dp_catalog_ctrl_config_msa() +- drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx +- ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API +- mmc: au1xmmc: Fix an error handling path in au1xmmc_probe() +- drm/omap: dss: Fix refcount leak bugs +- ALSA: hda: beep: Simplify keep-power-at-enable behavior +- ASoC: rsnd: Add check for rsnd_mod_power_on +- drm/bridge: megachips: Fix a null pointer dereference bug +- drm: fix drm_mipi_dbi build errors +- platform/x86: msi-laptop: Fix resource cleanup +- platform/x86: msi-laptop: Fix old-ec check for backlight registering +- ASoC: tas2764: Fix mute/unmute +- ASoC: tas2764: Drop conflicting set_bias_level power setting +- ASoC: tas2764: Allow mono streams +- platform/chrome: fix memory corruption in ioctl +- platform/chrome: fix double-free in chromeos_laptop_prepare() +- drm:pl111: Add of_node_put() when breaking out of for_each_available_child_of_node() +- drm/dp_mst: fix drm_dp_dpcd_read return value checks +- drm/bridge: parade-ps8640: Fix regulator supply order +- drm/mipi-dsi: Detach devices when removing the host +- drm/bridge: Avoid uninitialized variable warning +- drm: bridge: adv7511: fix CEC power down control register offset +- once: add DO_ONCE_SLOW() for sleepable contexts +- net/ieee802154: reject zero-sized raw_sendmsg() +- net: rds: don't hold sock lock when cancelling work from rds_tcp_reset_callbacks() +- spi: Ensure that sg_table won't be used after being freed +- tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited +- sctp: handle the error returned from sctp_auth_asoc_init_active_key +- vhost/vsock: Use kvmalloc/kvfree for larger packets. +- wifi: rtl8xxxu: Fix AIFS written to REG_EDCA_*_PARAM +- spi: s3c64xx: Fix large transfers with DMA +- netfilter: nft_fib: Fix for rpath check with VRF devices +- Bluetooth: hci_core: Fix not handling link timeouts propertly +- i2c: mlxbf: support lock mechanism +- spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe +- spi: dw: Fix PM disable depth imbalance in dw_spi_bt1_probe +- x86/cpu: Include the header of init_ia32_feat_ctl()'s prototype +- x86/microcode/AMD: Track patch allocation size explicitly +- wifi: ath11k: fix number of VHT beamformee spatial streams +- Bluetooth: hci_{ldisc,serdev}: check percpu_init_rwsem() failure +- bpf: Ensure correct locking around vulnerable function find_vpid() +- net: fs_enet: Fix wrong check in do_pd_setup +- wifi: rtl8xxxu: Remove copy-paste leftover in gen2_update_rate_mask +- wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration +- bpf: btf: fix truncated last_member_type_id in btf_struct_resolve +- spi: meson-spicc: do not rely on busy flag in pow2 clk ops +- wifi: rtl8xxxu: Fix skb misuse in TX queue selection +- spi: qup: add missing clk_disable_unprepare on error in spi_qup_pm_resume_runtime() +- spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume() +- selftests/xsk: Avoid use-after-free on ctx +- wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse() +- Bluetooth: btusb: mediatek: fix WMT failure during runtime suspend +- Bluetooth: btusb: fix excessive stack usage +- Bluetooth: btusb: Fine-tune mt7663 mechanism. +- x86/resctrl: Fix to restore to original value when re-enabling hardware prefetch register +- spi: mt7621: Fix an error message in mt7621_spi_probe() +- bpftool: Fix a wrong type cast in btf_dumper_int +- wifi: mac80211: allow bw change during channel switch in mesh +- leds: lm3601x: Don't use mutex after it was destroyed +- wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state() +- nfsd: Fix a memory leak in an error handling path +- objtool: Preserve special st_shndx indexes in elf_update_symbol +- ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE +- ARM: 9244/1: dump: Fix wrong pg_level in walk_pmd() +- MIPS: SGI-IP27: Fix platform-device leak in bridge_platform_create() +- MIPS: SGI-IP27: Free some unused memory +- sh: machvec: Use char[] for section boundaries +- userfaultfd: open userfaultfds with O_RDONLY +- selinux: use "grep -E" instead of "egrep" +- smb3: must initialize two ACL struct fields to zero +- drm/i915: Fix watermark calculations for gen12+ MC CCS modifier +- drm/i915: Fix watermark calculations for gen12+ RC CCS modifier +- drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table() +- drm/nouveau/kms/nv140-: Disable interlacing +- staging: greybus: audio_helper: remove unused and wrong debugfs usage +- KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS +- KVM: nVMX: Unconditionally purge queued/injected events on nested "exit" +- KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility +- media: cedrus: Set the platform driver data earlier +- efi: libstub: drop pointless get_memory_map() call +- thunderbolt: Explicitly enable lane adapter hotplug events at startup +- tracing: Disable interrupt or preemption before acquiring arch_spinlock_t +- ring-buffer: Add ring_buffer_wake_waiters() +- ring-buffer: Check pending waiters when doing wake ups as well +- ring-buffer: Have the shortest_full queue be the shortest not longest +- ring-buffer: Allow splice to read previous partially read pages +- ftrace: Properly unset FTRACE_HASH_FL_MOD +- livepatch: fix race between fork and KLP transition +- ext4: update 'state->fc_regions_size' after successful memory allocation +- ext4: fix potential memory leak in ext4_fc_record_regions() +- ext4: fix potential memory leak in ext4_fc_record_modified_inode() +- ext4: fix miss release buffer head in ext4_fc_write_inode +- ext4: place buffer head allocation before handle start +- ext4: don't increase iversion counter for ea_inodes +- ext4: make ext4_lazyinit_thread freezable +- ext4: avoid crash when inline data creation follows DIO write +- jbd2: add miss release buffer head in fc_do_one_pass() +- jbd2: fix potential use-after-free in jbd2_fc_wait_bufs +- jbd2: fix potential buffer head reference count leak +- jbd2: wake up journal waiters in FIFO order, not LIFO +- hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero +- hardening: Avoid harmless Clang option under CONFIG_INIT_STACK_ALL_ZERO +- hardening: Clarify Kconfig text for auto-var-init +- f2fs: fix to do sanity check on summary info +- f2fs: fix to do sanity check on destination blkaddr during recovery +- f2fs: increase the limit for reserve_root +- btrfs: fix race between quota enable and quota rescan ioctl +- scsi: qedf: Populate sysfs attributes for vport +- powerpc/boot: Explicitly disable usage of SPE instructions +- powercap: intel_rapl: Use standard Energy Unit for SPR Dram RAPL domain +- PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge +- mm/mmap: undo ->mmap() when arch_validate_flags() fails +- drm/udl: Restore display mode on resume +- drm/virtio: Check whether transferred 2D BO is shmem +- nvme-pci: set min_align_mask before calculating max_hw_sectors +- UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK +- riscv: Pass -mno-relax only on lld < 15.0.0 +- riscv: Make VM_WRITE imply VM_READ +- riscv: Allow PROT_WRITE-only mmap() +- parisc: fbdev/stifb: Align graphics memory size to 4MB +- RISC-V: Make port I/O string accessors actually work +- regulator: qcom_rpm: Fix circular deferral regression +- hwmon: (gsc-hwmon) Call of_node_get() before of_find_xxx API +- ASoC: wcd934x: fix order of Slimbus unprepare/disable +- ASoC: wcd9335: fix order of Slimbus unprepare/disable +- platform/chrome: cros_ec_proto: Update version on GET_NEXT_EVENT failure +- HID: multitouch: Add memory barriers +- fs: dlm: handle -EBUSY first in lock arg validation +- fs: dlm: fix race between test_bit() and queue_work() +- mmc: sdhci-sprd: Fix minimum clock limit +- can: kvaser_usb_leaf: Fix CAN state after restart +- can: kvaser_usb_leaf: Fix TX queue out of sync after restart +- can: kvaser_usb_leaf: Fix overread with an invalid command +- can: kvaser_usb: Fix use of uninitialized completion +- usb: add quirks for Lenovo OneLink+ Dock +- iio: pressure: dps310: Reset chip after timeout +- iio: pressure: dps310: Refactor startup procedure +- iio: adc: ad7923: fix channel readings for some variants +- iio: ltc2497: Fix reading conversion results +- iio: dac: ad5593r: Fix i2c read protocol requirements +- cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message +- cifs: destage dirty pages before re-reading them for cache=none +- mtd: rawnand: atmel: Unmap streaming DMA mappings +- ALSA: hda/realtek: Add Intel Reference SSID to support headset keys +- ALSA: hda/realtek: Add quirk for ASUS GV601R laptop +- ALSA: hda/realtek: Correct pin configs for ASUS G533Z +- ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530 +- ALSA: usb-audio: Fix NULL dererence at error path +- ALSA: usb-audio: Fix potential memory leaks +- ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free() +- ALSA: oss: Fix potential deadlock at unregistration +- !585 x86/speculation: Allow enabling STIBP with legacy IBRS +- x86/speculation: Allow enabling STIBP with legacy IBRS +- RDMA/hns: Add SVE DIRECT WQE flag to support libhns +- !575 Backport CVEs and bugfixes +- !576 Support congestion control algorithm configuration +- Revert "x86/microcode: Rip out the OLD_INTERFACE" +- Revert "x86/microcode: Default-disable late loading" +- Revert "x86/microcode: Taint and warn on late loading" +- Revert "x86/microcode: Remove unnecessary perf callback" +- Revert "misc: Mark MICROCODE_MINOR unused" +- Revert "docs: Update documentation to reflect what TAINT_CPU_OUT_OF_SPEC means" +- Revert "x86/microcode: Document the whole late loading problem" +- Revert "x86/microcode: Remove ->request_microcode_user()" +- Revert "x86/microcode: Print previous version of microcode after reload" +- Revert "x86/microcode: Rip out the subsys interface gunk" +- Revert "x86/microcode: Simplify init path even more" +- Revert "x86/microcode: Kill refresh_fw" +- Revert "x86/microcode: Do some minor fixups" +- Revert "x86/microcode: Drop struct ucode_cpu_info.valid" +- !424 [OLK-5.10] openeuer/MAINTAINER: Add maintainers for Kunpeng SoC. +- RDMA/hns: Support congestion control algorithm configuration at QP granularity +- RDMA/hns: Modify congestion abbreviation +- sctp: Call inet6_destroy_sock() via sk->sk_destruct(). +- dccp: Call inet6_destroy_sock() via sk->sk_destruct(). +- net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues(). +- inet6: Remove inet6_destroy_sock() in sk->sk_prot->destroy(). +- tcp/udp: Call inet6_destroy_sock() in IPv6 sk->sk_destruct(). +- udp: Call inet6_destroy_sock() in setsockopt(IPV6_ADDRFORM). +- 9p/xen : Fix use after free bug in xen_9pfs_front_remove due to race condition +- ubi: Fix failure attaching when vid_hdr offset equals to (sub)page size +- ubi: ensure that VID header offset + VID header size <= alloc, size +- ftrace: Fix issue that 'direct->addr' not restored in modify_ftrace_direct() +- perf/core: Fix perf_output_begin parameter is incorrectly invoked in perf_event_bpf_output +- xirc2ps_cs: Fix use after free bug in xirc2ps_detach +- ring-buffer: Fix race while reader and writer are on the same page +- loop: Add parm check in loop_control_ioctl +- ext4: Fix i_disksize exceeding i_size problem in paritally written case +- ext4: ext4_put_super: Remove redundant checking for 'sbi->s_journal_bdev' +- ext4: Fix reusing stale buffer heads from last failed mounting +- btrfs: fix race between quota disable and quota assign ioctls +- dm crypt: add cond_resched() to dmcrypt_write() +- driver core: Fix lockdep warning on wfs_lock +- driver core: platform: Add extra error check in devm_platform_get_irqs_affinity() +- xfs: don't leak memory when attr fork loading fails +- xfs: delete unnecessary NULL checks +- xfs: replace inode fork size macros with functions +- xfs: replace XFS_IFORK_Q with a proper predicate function +- xfs: use XFS_IFORK_Q to determine the presence of an xattr fork +- xfs: make inode attribute forks a permanent part of struct xfs_inode +- xfs: convert XFS_IFORK_PTR to a static inline helper +- xfs: don't reuse busy extents on extent trim +- fs/xfs: convert comma to semicolon +- xfs: xfs_ail_push_all_sync() stalls when racing with updates +- xfs: check buffer pin state after locking in delwri_submit +- xfs: log worker needs to start before intent/unlink recovery +- !256 sched: Supprot dynamic affinity in scheduler +- config: enable CONFIG_QOS_SCHED_DYNAMIC_AFFINITY by default +- sched: Add statistics for scheduler dynamic affinity +- sched: Adjust cpu allowed in load balance dynamicly +- sched: Adjust wakeup cpu range according CPU util dynamicly +- cpuset: Introduce new interface for scheduler dynamic affinity +- sched: Introduce dynamic affinity for cfs scheduler +- !323 [OLK-5.10] sched: Introduce priority load balance for CFS +- sched/fair: Avoid offline tasks starve to death for priority load balance +- config: enable CONFIG_QOS_SCHED_PRIO_LB for x86 and arm64 +- sched: Introduce priority load balance for CFS +- !563 Backport CVEs and bugfixes +- usb: xhci: add XHCI_NO_SOFT_RETRY quirk for EJ188 +- net: sched: Use struct_size() helper in kvmalloc() +- net_sched: Use struct_size() and flex_array_size() helpers +- ext4: dio take shared inode lock when overwriting preallocated blocks +- ext4: fix race between writepages and remount +- mm: mem_reliable: Initialize reliable_nr_page when mm_init() +- clocksource/drivers/arm_arch_timer: Fix CNTPCT_LO and CNTVCT_LO value +- kvm: initialize all of the kvm_debugregs structure before sending it to userspace +- nvme: use nvme_cid to generate command_id in trace event +- xfs: don't report reserved bnobt space as available +- xfs: don't include bnobt blocks when reserving free block pool +- xfs: set aside allocation btree blocks from block reservation +- xfs: introduce in-core global counter of allocbt blocks +- act_mirred: use the backlog for nested calls to mirred ingress +- net/sched: act_mirred: better wording on protection against excessive stack growth +- net/sched: act_mirred: refactor the handle of xmit +- scsi: scsi_dh_alua: fix memleak for 'qdata' in alua_activate() +- !539 LoongArch: fix compile warnning of drm/loongson driver +- !556 net: hns3: modify reset delay time to avoid configuration timeout +- net: hns3: modify reset delay time to avoid configuration timeout +- x86/acpi/cstate: Optimize ARB_DISABLE on Centaur CPUs +- !538 Disable local invalidate operation, fix memory leak and error code of CMD +- drm/loongson: fix compile warnning +- RDMA/hns: Fix error code of CMD +- RDMA/hns: fix memory leak in hns_roce_alloc_mr() +- RDMA/hns: Disable local invalidate operation +- mm/damon/paddr: fix missing folio_put() +- mm/damon/Kconfig: add DAMON debugfs interface deprecation notice +- mm/damon/dbgfs: print DAMON debugfs interface deprecation message +- Docs/ABI/damon: document 'schemes//tried_regions' sysfs directory +- Docs/admin-guide/mm/damon/usage: document schemes//tried_regions sysfs directory +- tools/selftets/damon/sysfs: test tried_regions directory existence +- mm/damon/sysfs-schemes: implement DAMOS-tried regions clear command +- mm/damon/sysfs: implement DAMOS tried regions update command +- mm/damon/sysfs-schemes: implement scheme region directory +- mm/damon/sysfs-schemes: implement schemes/tried_regions directory +- mm/damon/core: add a callback for scheme target regions check +- selftests/damon: add tests for DAMON_LRU_SORT's enabled parameter +- mm/damon/lru_sort: enable and disable synchronously +- selftests/damon: add tests for DAMON_RECLAIM's enabled parameter +- mm/damon/reclaim: enable and disable synchronously +- mm/damon/modules: deduplicate init steps for DAMON context setup +- mm/damon/sysfs: split out schemes directory implementation to separate file +- mm/damon/sysfs: split out kdamond-independent schemes stats update logic into a new function +- mm/damon/sysfs: move unsigned long range directory to common module +- mm/damon/sysfs: move sysfs_lock to common module +- mm/damon/sysfs: remove parameters of damon_sysfs_region_alloc() +- mm/damon/sysfs: use damon_addr_range for region's start and end values +- mm/damon/core: split out scheme quota adjustment logic into a new function +- mm/damon/core: split out scheme stat update logic into a new function +- mm/damon/core: split damos application logic into a new function +- mm/damon/core: split out DAMOS-charged region skip logic into a new function +- mm/damon/sysfs: fix wrong empty schemes assumption under online tuning in damon_sysfs_set_schemes() +- mm/damon/sysfs-schemes: skip stats update if the scheme directory is removed +- mm/damon/dbgfs: check if rm_contexts input is for a real context +- mm/damon: use damon_sz_region() in appropriate place +- mm/damon: move sz_damon_region to damon_sz_region +- mm/damon/core: initialize damon_target->list in damon_new_target() +- mm/damon: deduplicate damon_{reclaim,lru_sort}_apply_parameters() +- mm/damon/sysfs: return 'err' value when call kstrtoul() failed +- mm/damon: rename damon_pageout_score() to damon_cold_score() +- mm/damon: return void from damon_set_schemes() +- mm/damon/lru_sort: change damon_lru_sort_wmarks to static +- mm/damon/reclaim: change damon_reclaim_wmarks to static +- mm/damon: use 'struct damon_target *' instead of 'void *' in target_valid() +- mm/damon: simplify scheme create in lru_sort.c +- mm/damon/sysfs: avoid call damon_target_has_pid() repeatedly +- mm/damon/core: simplify the kdamond stop mechanism by removing 'done' +- mm/damon/sysfs: simplify the variable 'pid' assignment operation +- mm/damon: simplify the parameter passing for 'prepare_access_checks' +- mm/damon/lru_sort: deduplicate hot/cold schemes generators +- mm/damon/lru_sort: use quotas param generator +- mm/damon/reclaim: use the quota params generator macro +- mm/damon/modules-common: implement damos time quota params generator +- mm/damon/modules-common: implement a damos quota params generator +- mm/damon/lru_sort: use stat generator +- mm/damon/reclaim: use stat parameters generator +- mm/damon/modules-common: implement a stats parameters generator macro +- mm/damon/reclaim: use watermarks parameters generator macro +- mm/damon/lru_sort: use watermarks parameters generator macro +- mm/damon/modules-common: implement a watermarks module parameters generator macro +- mm/damon/reclaim: use monitoring attributes parameters generator macro +- mm/damon/lru_sort: use monitoring attributes parameters generaotr macro +- mm/damon: implement a monitoring attributes module parameters generator macro +- mm/damon/lru_sort: use 'struct damon_attrs' for storing parameters for it +- mm/damon/reclaim: use 'struct damon_attrs' for storing parameters for it +- mm/damon/core: reduce parameters for damon_set_attrs() +- mm/damon/core: use a dedicated struct for monitoring attributes +- mm/damon/core: factor out 'damos_quota' private fileds initialization +- mm/damon/core: copy struct-to-struct instead of field-to-field in damon_new_scheme() +- mm/damon/paddr: deduplicate damon_pa_{mark_accessed,deactivate_pages}() +- mm/damon/paddr: make supported DAMOS actions of paddr clear +- mm/damon: simplify scheme create in damon_lru_sort_apply_parameters +- mm/damon: improve damon_new_region strategy +- mm/damon/sysfs: use the wrapper directly to check if the kdamond is running +- mm/damon/sysfs: change few functions execute order +- mm/damon: remove duplicate get_monitoring_region() definitions +- mm/damon/Kconfig: notify debugfs deprecation plan +- mm/damon/core-test: test damon_set_regions +- mm/damon/core: avoid holes in newly set monitoring target ranges +- mm/damon/vaddr: add a comment for 'default' case in damon_va_apply_scheme() +- mm/damon: introduce struct damos_access_pattern +- mm/damon: simplify damon_ctx check in damon_sysfs_before_terminate +- mm/damon/core: iterate the regions list from current point in damon_set_regions() +- mm/damon/sysfs: simplify the judgement whether kdamonds are busy +- damon/sysfs: fix possible memleak on damon_sysfs_add_target +- mm/damon: get the hotness from damon_hot_score() in damon_pageout_score() +- mm/damon/vaddr: remove comparison between mm and last_mm when checking region accesses +- mm/damon: simplify the parameter passing for 'check_accesses' +- mm/damon: replace pmd_huge() with pmd_trans_huge() for THP +- mm/damon: validate if the pmd entry is present before accessing +- mm/damon/core: simplify the parameter passing for region split operation +- mm/damon/dbgfs: use kmalloc for allocating only one element +- mm/damon/dbgfs: fix memory leak when using debugfs_lookup() +- mm/damon/dbgfs: avoid duplicate context directory creation +- mm/damon/reclaim: fix potential memory leak in damon_reclaim_init() +- mm/damon/lru_sort: fix potential memory leak in damon_lru_sort_init() +- Docs/admin-guide/damon: add a document for DAMON_LRU_SORT +- mm/damon: introduce DAMON-based LRU-lists Sorting +- Docs/admin-guide/damon/sysfs: document 'LRU_DEPRIO' scheme action +- mm/damon/schemes: add 'LRU_DEPRIO' action +- Docs/admin-guide/damon/sysfs: document 'LRU_PRIO' scheme action +- mm/damon/schemes: add 'LRU_PRIO' DAMOS action +- mm/damon/paddr: use a separate function for 'DAMOS_PAGEOUT' handling +- mm/damon/dbgfs: add and use mappings between 'schemes' action inputs and 'damos_action' values +- mm/damon/reclaim: add 'damon_reclaim_' prefix to 'enabled_store()' +- mm/damon/reclaim: make 'enabled' checking timer simpler +- mm/damon/sysfs: deduplicate inputs applying +- mm/damon/reclaim: deduplicate 'commit_inputs' handling +- mm/damon/{dbgfs,sysfs}: move target_has_pid() from dbgfs to damon.h +- mm/damon: use set_huge_pte_at() to make huge pte old +- mm/damon/reclaim: schedule 'damon_reclaim_timer' only after 'system_wq' is initialized +- mm: damon: use HPAGE_PMD_SIZE +- mm/damon/reclaim: use resource_size function on resource object +- Docs/admin-guide/mm/damon/reclaim: document 'commit_inputs' parameter +- mm/damon/reclaim: support online inputs update +- Docs/{ABI,admin-guide}/damon: Update for 'state' sysfs file input keyword, 'commit' +- mm/damon/sysfs: support online inputs update +- mm/damon/sysfs: update schemes stat in the kdamond context +- mm/damon/sysfs: use enum for 'state' input handling +- mm/damon/sysfs: reuse damon_set_regions() for regions setting +- mm/damon/sysfs: move targets setup code to a separated function +- mm/damon/sysfs: prohibit multiple physical address space monitoring targets +- mm/damon/vaddr: remove damon_va_apply_three_regions() +- mm/damon/vaddr: move 'damon_set_regions()' to core +- mm/damon/vaddr: generalize damon_va_apply_three_regions() +- mm/damon/core: finish kdamond as soon as any callback returns an error +- mm/damon/core: add a new callback for watermarks checks +- Docs/{ABI,admin-guide}/damon: update for fixed virtual address ranges monitoring +- mm/damon/sysfs: support fixed virtual address ranges monitoring +- mm/damon/vaddr: register a damon_operations for fixed virtual address ranges monitoring +- Docs/{ABI,admin-guide}/damon: document 'avail_operations' sysfs file +- selftets/damon/sysfs: test existence and permission of avail_operations +- mm/damon/sysfs: add a file for listing available monitoring ops +- mm/damon/core: add a function for damon_operations registration checks +- mm/damon/reclaim: fix the timer always stays active +- mm/damon: remove unnecessary type castings +- mm/damon/core-test: add a kunit test case for ops registration +- damon: vaddr-test: tweak code to make the logic clearer +- mm/damon: prevent activated scheme from sleeping by deactivated schemes +- mm/damon/sysfs: remove repeat container_of() in damon_sysfs_kdamond_release() +- Docs/ABI/testing: add DAMON sysfs interface ABI document +- Docs/admin-guide/mm/damon/usage: document DAMON sysfs interface +- selftests/damon: add a test for DAMON sysfs interface +- mm/damon/sysfs: support DAMOS stats +- mm/damon/sysfs: support DAMOS watermarks +- mm/damon/sysfs: support schemes prioritization +- mm/damon/sysfs: support DAMOS quotas +- mm/damon/sysfs: support DAMON-based Operation Schemes +- mm/damon/sysfs: support the physical address space monitoring +- mm/damon/sysfs: link DAMON for virtual address spaces monitoring +- mm/damon: implement a minimal stub for sysfs-based DAMON interface +- mm/damon/core: add number of each enum type values +- mm/damon/core: allow non-exclusive DAMON start/stop +- mm/damon: remove unnecessary CONFIG_DAMON option +- mm/damon/paddr,vaddr: remove damon_{p,v}a_{target_valid,set_operations}() +- mm/damon/dbgfs-test: fix is_target_id() change +- mm/damon/dbgfs: use operations id for knowing if the target has pid +- mm/damon/dbgfs: use damon_select_ops() instead of damon_{v,p}a_set_operations() +- mm/damon/reclaim: use damon_select_ops() instead of damon_{v,p}a_set_operations() +- mm/damon/paddr,vaddr: register themselves to DAMON in subsys_initcall +- mm/damon: let monitoring operations can be registered and selected +- mm/damon: rename damon_primitives to damon_operations +- mm/damon: remove redundant page validation +- mm/damon: remove the target id concept +- mm/damon/core: move damon_set_targets() into dbgfs +- mm/damon/dbgfs/init_regions: use target index instead of target id +- mm/damon: minor cleanup for damon_pa_young +- MAINTAINERS: update openEuler/MAINTAINERS for Kunpeng SoC. +- x86/cpu: Add several Intel server CPU model numbers + +* Mon Sep 18 2023 luhuaxin - 5.10.0-146.0.0.77 +- Rename the PGP certificates + +* Tue Jun 06 2023 zhoushuiqing - 5.10.0-146.0.0.76 +- Process PGP certs before kernel building + +* Sat Apr 01 2023 Jialin Zhang - 5.10.0-146.0.0.75 +- !540 fix CVE-2023-0266 +- ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF +- !507 KVM: arm64: Add minimal handling for the ARMv8.7 PMU +- !527 i2c: hisi: Only use the completion interrupt to finish the transfer and i2c: hisi: Avoid redundant interrupts +- KVM: arm64: Add minimal handling for the ARMv8.7 PMU +- KVM: arm64: Use symbolic names for the PMU versions +- !531 Backport CVEs and bugfixes +- i2c: hisi: Only use the completion interrupt to finish the transfer +- i2c: hisi: Avoid redundant interrupts +- block: fix use-after-free of q->q_usage_counter +- block: move q_usage_counter release into blk_queue_release +- Revert "block: fix null-deref in percpu_ref_put" +- md/raid6: Fix the problem of repeatedly applying for memory in raid5_read_one_chunk +- xfs, iomap: limit individual ioend chain lengths in writeback +- net/sched: tcindex: search key must be 16 bits +- net/sched: tcindex: update imperfect hash filters respecting rcu +- tty: fix out-of-bounds access in tty_driver_lookup_tty() +- fs/ntfs3: Validate resident attribute name +- Revert "mm/vmalloc: huge vmalloc backing pages should be split rather than compound" +- mm: compaction: avoid possible NULL pointer dereference in kcompactd_cpu_online +- coredump: fix kabi broken in struct coredump_params +- coredump: Use the vma snapshot in fill_files_note +- coredump/elf: Pass coredump_params into fill_note_info +- coredump: Remove the WARN_ON in dump_vma_snapshot +- coredump: Snapshot the vmas in do_coredump +- mm/swapfile: add cond_resched() in get_swap_pages() +- mm: slince possible data races about pgdat->kswapd +- mm: fix null-ptr-deref in kswapd_is_running() +- fs/ntfs3: Validate MFT flags before replaying logs +- fs/ntfs3: Validate attribute name offset +- bpf: Fixes possible race in update_prog_stats() for 32bit arches +- bpf: Avoid races in __bpf_prog_run() for 32bit arches +- ext4: make sure fs error flag setted before clear journal error +- ext4: commit super block if fs record error when journal record without error +- ima: Fix memory leakage in ima_store_template +- af_unix: Get user_ns from in_skb in unix_diag_get_exact(). +- net: tls: fix possible race condition between do_tls_getsockopt_conf() and do_tls_setsockopt_conf() +- wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies() +- arm64: errata: Remove AES hwcap for COMPAT tasks +- ARM: 9206/1: A9: Add ARM ERRATA 764319 workaround (Updated) +- kernel: Initialize cpumask before parsing +- softirq: Don't try waking ksoftirqd before it has been spawned +- bpf: Prevent decl_tag from being referenced in func_proto arg +- bpf: Skip task with pid=1 in send_signal_common() +- bpf, sockmap: Fix an infinite loop error when len is 0 in tcp_bpf_recvmsg_parser() +- !525 net: hns3: add supports storage product scustomization requirements +- !519 Add new command to support query vf caps +- net: hns3: add support query port ext information +- net: hns3: add support configuring function-level interrupt affinity +- net: hns3: add support clear mac statistics +- net: hns3: add support to get/set 1d torus param +- net: hns3: add supports fast reporting of faulty nodes +- net: hns3: add supports pfc storm detection and suppression +- net: hns3: add support customized exception handling interfaces. +- !459 Backport CVEs and bugfixes +- RDMA/hns: Add new command to support query vf caps +- !508 SCSI: SSSRAID: Fix the bug that system automatically reboot when issue a 'pcie-linkdown' command +- !374 Enable CONFIG_UPROBES_SUPPORT_PC_ALTER in arm64 by default +- !510 LoongArch: fix dual-bridge machine can not work +- !509 Loongson: fix 7a2000 gpu driver can not work +- drm/loongson: using hdmi hot plug status register +- irqchip/loongson: Fix syscore ops registration +- irqchip/loongarch: Fix some issues of irq controllers +- SCSI: SSSRAID: Fix the bug that system automatically reboot when issue a 'pcie-linkdown' command +- uprobe: enable CONFIG_UPROBES_SUPPORT_PC_ALTER in arm64 +- malidp: Fix NULL vs IS_ERR() checking + +* Wed Mar 22 2023 Jialin Zhang - 5.10.0-145.0.0.74 +- !511 Backport CVEs and bugfixes +- livepatch/core: Fix hungtask against cpu hotplug on x86 +- seccomp: Move copy_seccomp() to no failure path. +- media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer() +- mm: optimize do_wp_page() for fresh pages in local LRU pagevecs +- mm: optimize do_wp_page() for exclusive pages in the swapcache +- ftrace: Fix invalid address access in lookup_rec() when index is 0 +- tipc: add an extra conn_get in tipc_conn_alloc +- tipc: set con sock in tipc_conn_alloc +- ext4: fix another off-by-one fsmap error on 1k block filesystems +- mm/vmalloc: huge vmalloc backing pages should be split rather than compound +- HID: asus: use spinlock to safely schedule workers +- HID: asus: use spinlock to protect concurrent accesses +- HID: asus: Remove check for same LED brightness on set +- jbd2: fix data missing when reusing bh which is ready to be checkpointed +- !475 Support congestion control algorithm parameter configuration +- !471 Intel: Support In Field Scan(IFS) multi-blob images +- !476 LoongArch: fix failed to boot +- !497 SAS-related bugfix +- !479 LoongArch: update network related default config +- scsi: hisi_sas: Grab sas_dev lock when traversing the members of sas_dev.list +- scsi: hisi_sas: Handle NCQ error when IPTT is valid +- scsi: libsas: Grab the ATA port lock in sas_ata_device_link_abort() +- scsi: libsas: Update SATA dev FIS in sas_ata_task_done() +- scsi: hisi_sas: Use abort task set to reset SAS disks when discovered +- scsi: hisi_sas: Add SATA_DISK_ERR bit handling for v3 hw +- scsi: hisi_sas: Move slot variable definition in hisi_sas_abort_task() +- scsi: libsas: Add sas_ata_device_link_abort() +- LoongArch: Initialize screen_info variable +- x86/microcode/intel: Do not retry microcode reloading on the APs +- x86/microcode/intel: Do not print microcode revision and processor flags +- platform/x86/intel/ifs: Add missing kernel-doc entry +- Revert "platform/x86/intel/ifs: Mark as BROKEN" +- Documentation/ABI: Update IFS ABI doc +- platform/x86/intel/ifs: Add current_batch sysfs entry +- platform/x86/intel/ifs: Remove reload sysfs entry +- platform/x86/intel/ifs: Add metadata validation +- platform/x86/intel/ifs: Use generic microcode headers and functions +- platform/x86/intel/ifs: Add metadata support +- x86/microcode/intel: Use a reserved field for metasize +- x86/microcode/intel: Add hdr_type to intel_microcode_sanity_check() +- x86/microcode/intel: Reuse microcode_sanity_check() +- x86/microcode/intel: Use appropriate type in microcode_sanity_check() +- x86/microcode/intel: Reuse find_matching_signature() +- platform/x86/intel/ifs: Remove memory allocation from load path +- platform/x86/intel/ifs: Remove image loading during init +- platform/x86/intel/ifs: Return a more appropriate error code +- platform/x86/intel/ifs: Remove unused selection +- x86/microcode: Drop struct ucode_cpu_info.valid +- x86/microcode: Do some minor fixups +- x86/microcode: Kill refresh_fw +- x86/microcode: Simplify init path even more +- x86/microcode: Rip out the subsys interface gunk +- x86/microcode: Print previous version of microcode after reload +- x86/microcode: Remove ->request_microcode_user() +- x86/microcode: Document the whole late loading problem +- docs: Update documentation to reflect what TAINT_CPU_OUT_OF_SPEC means +- misc: Mark MICROCODE_MINOR unused +- !448 LoongArch: fix some pci problems +- !486 Backport CVEs and bugfixes +- platform/x86/intel/ifs: Mark as BROKEN +- !477 tools: fix compile error introduced by LoongArch commit +- x86/microcode: Remove unnecessary perf callback +- x86/microcode: Taint and warn on late loading +- x86/microcode: Default-disable late loading +- x86/microcode: Rip out the OLD_INTERFACE +- scsi: cancel the inflight async device probe when remove scsi_target +- ring-buffer: Fix race between reset page and reading page +- raid1, raid10: switch to precise io accounting +- block: add precise io accouting apis +- md/raid10: fix memleak for 'conf->bio_split' +- scsi: fix use-after-free problem in scsi_remove_target +- sctp: fail if no bound addresses can be used for a given scope +- ext4: fix WARNING in mb_find_extent +- scsi: iscsi_tcp: Fix UAF during login when accessing the shost ipaddress +- scsi: iscsi_tcp: Fix UAF during logout when accessing the shost ipaddress +- scsi: iscsi: Move pool freeing +- xfs: aborting inodes on shutdown may need buffer lock +- ext4: fix incorrect options show of original mount_opt and extend mount_opt2 +- LoongArch: Fixed EIOINTC structure members +- LoongArch: Fix virtual machine startup error +- loongarch/kvm: ls7a add iocsrw emulation +- LoongArch: defconfig: update network configurations +- LoongArch: fix signal handler name changed +- fix compile error introduced by LoongArch commit +- LoongArch: pci root bridige set acpi companion only when not acpi_disabled. +- pci: fix X server auto probe fail when both ast and etnaviv drm present +- LS7A2000: PCIE: Fixup GPU card error +- pci/quirks: ls7a2000: fix pm transition of devices under pcie port +- LoongArch: Fixed some pcie card not scanning properly +- pci: fix kabi error caused by pm_suspend_target_state +- PCI: PM: Fix pcie mrrs restoring +- PCI: Check if the pci controller can use both CFG0 and CFG1 mode to access configuration space +- PCI: Check if entry->offset already exist for mem resource +- RDMA/hns: Support congestion control algorithm parameter configuration +- !447 add perf loongarch support +- !449 LoongArch: add kvm support +- LoongArch: kvm: KVM support for 5.10 +- LoongArch: Export symbol for function smp_send_reschedule() +- LoongArch: kvm: add initial kvm support +- !466 LoongArch: fix compile error when using make allmodconfig +- LoongArch: fix compile error when using make allmodconfig +- !458 Backport CVEs and bugfixes +- !465 Revert "scsi: fix iscsi rescan fails to create block" +- Revert "scsi: fix iscsi rescan fails to create block" +- !427 Support the feature of querying stats +- !388 Add landlock support +- !425 update patches for sw64 architecture +- !444 LoongArch: some LS7a device drivers support and LoongArch bug fix +- RDMA/hns: Add dfx cnt stats +- landlock: Use square brackets around "landlock-ruleset" +- landlock: Enable user space to infer supported features +- landlock: Add user and kernel documentation +- samples/landlock: Add a sandbox manager example +- selftests/landlock: Add user space tests +- arch: Wire up Landlock syscalls +- landlock: Add syscall implementations +- landlock: Support filesystem access-control +- fs,security: Add sb_delete hook +- LSM: Infrastructure management of the superblock +- landlock: Add ptrace restrictions +- landlock: Set up the security framework and manage credentials +- landlock: Add ruleset and domain management +- landlock: Add object management +- phy: tegra: xusb: Fix return value of tegra_xusb_find_port_node function +- LoongArch: remove __ARCH_WANT_NEW_STAT +- LoongArch: modify defconfig according to other architectures +- LoongArch: Change definition of cpu_relax() for Loongson-3 +- drm/loongson: add kernel modesetting driver support for ls7a1000/ls7a2000 +- LoongArch: Use alternative to optimize libraries +- LoongArch: Add alternative runtime patching mechanism +- LoongArch: Remove the .fixup section usage +- LoongArch: extable: Add a dedicated uaccess handler +- LoongArch: extable: Add `type` and `data` fields +- LoongArch: Switch to relative exception tables +- LoongArch: Consolidate __ex_table construction +- LoongArch: fix SECCOMP test error +- LoongArch: fix vmlinux ld error +- LoongArch: enable hugetlbfs support +- LoongArch: save one instruction for arch_local_irq_{enable,disable} +- LoongArch: optimize for syscall return +- LoongArch: refresh usage of sync +- LoongArch: use 40 bits address space for user +- LoongArch: Support loader and kernel interface V40 +- LoongArch: Enhance booting and resume compatibility +- LoongArch: Remove redudant csr save/restore +- LoongArch: Support Power Manager +- irqchip/loongson-liointc: Set different isr for differnt core +- platform: Support loongson laptop generic driver +- LoongArch: Adapted SECTION_SIZE_BITS with page size +- ACPI: Support ACPI_MACHINE_WIDTH for 64 +- spi: loongson: Add LS7A spi driver support +- i2c: loongson: Add LS7A i2c driver support +- LoongArch: Call irq_find_matching_fwnode get irq domain +- irqchip/ACPI: Introduce ACPI_IRQ_MODEL_LPIC for LoongArch +- gpio: loongson: Add 3A/3B/3C/7A gpio dirver support +- rtc: ls2x: Add support for the Loongson-2K/LS7A RTC +- LoongArch: convert p v s cache to l1 l2 l3 format +- cpufreq: Add cpufreq driver for LoongArch +- LoongArch: Fix section mismatch due to acpi_os_ioremap() +- LoongArch: Add vector extensions support +- tools/perf: Add basic support for LoongArch +- perf machine: Use path__join() to compose a path instead of snprintf(dir, '/', filename) +- RDMA/hns: Support hns HW stats +- sw64: implement a new policy of power management +- sw64: add DVFS support for different boards +- sw64: add SIMD emulation for guest IO access +- sw64: fix THREAD_INFO_IN_TASK support +- sw64: maintain PMU counter usage status with bitmap +- sw64: activate CONFIG_THREAD_INFO_IN_TASK +- sw64: LPC: support suspend and resume +- sw64: fix a type mismatch problem +- sw64: perf: remove redundant function declarations +- sw64: fix a compile error with CONFIG_EFI=n +- sw64: iommu: fix the mask of physical address when flushing pcache +- sw64: perf: don't rely on layout of pt_regs to grab some registers +- sw64: perf: fix support for dwarf in perf +- sw64: deliver a warm/cold reset to Root Complex with plugin JMicron 585 card +- sw64: refactor platform dependent codes +- sw64: implement the reset hooks for general platforms +- sw64: split out the idle loop in idle.c +- sw64: rewrite {SAVE,RESTORE}_ALL in a simpler way +- sw64: fix "unwind: target platform=sw_64 is not supported" +- sw64: register a suspend entry +- sw64: update openeuler_defconfig +- sw64: organize defconfigs +- sw64: remove unused code for unaligned load store emulation +- sw64: fix sw64_set_rate() + +* Wed Mar 08 2023 Zheng Zengkai - 5.10.0-144.0.0.73 +- !456 Backport CVEs and bugfixes +- !426 scsi:sssraid: Introduce map_queue in sssraid module & code quality reinforcement content +- media: rc: Fix use-after-free bugs caused by ene_tx_irqsim() +- HID: check empty report_list in bigben_probe() +- HID: check empty report_list in hid_validate_values() +- neigh: make sure used and confirmed times are valid +- Documentation/hw-vuln: Fix rST warning +- Documentation/hw-vuln: Add documentation for Cross-Thread Return Predictions +- KVM: x86: Mitigate the cross-thread return address predictions bug +- x86/speculation: Identify processors vulnerable to SMT RSB predictions +- radi10: fix leak of 'r10bio->remaining' for recovery +- md: fix soft lockup in status_resync +- md: don't update recovery_cp when curr_resync is ACTIVE +- md: Ensure resync is reported after it starts +- md: Use enum for overloaded magic numbers used by mddev->curr_resync +- raid10: fix leak of io accounting +- tcp: Fix listen() regression in 5.15.88. +- net/ulp: Remove redundant ->clone() test in inet_clone_ulp(). +- net/ulp: use consistent error code when blocking ULP +- net/ulp: prevent ULP without clone op from entering the LISTEN status +- net/tls: tls_is_tx_ready() checked list_entry +- usb: dwc3: dwc3-qcom: Add missing platform_device_put() in dwc3_qcom_acpi_register_core +- ntfs: fix out-of-bounds read in ntfs_attr_find() +- splice: don't generate zero-len segement bvecs +- rds: rds_rm_zerocopy_callback() use list_first_entry() +- tap: tap_open(): correctly initialize socket uid +- tun: tun_chr_open(): correctly initialize socket uid +- net: add sock_init_data_uid() +- ring-buffer: Handle race between rb_move_tail and rb_check_pages +- blk-mq: use quiesced elevator switch when reinitializing queues +- ovl: fix use inode directly in rcu-walk mode +- !443 OLK-5.10 backport sharepool and config isolation patches +- !451 add drivers to support hbm memory and hbm cache +- soc: hbmcache: Add support for online and offline the hbm cache +- soc: hisilicon: hisi_hbmdev: Provide extra memory topology information +- ACPI: memhotplug: export the state of each hotplug device +- soc: hisilicon: hisi_hbmdev: Add power domain control methods +- ACPI: OSL: Export the symbol of acpi_hotplug_schedule +- ACPI: bus: Export acpi_dev_for_each_child() to modules +- ACPI: bus: Avoid non-ACPI device objects in walks over children +- ACPI: bus: Introduce acpi_dev_for_each_child() +- mm: sharepool: add static modifier to find_spg_node_by_spg() +- mm: sharepool: Charge Buddy hugepage to memcg +- mm/sharepool: use delete_spg_node to replace some repetitive code +- mm/sharepool: extract group_add_task +- mm/sharepool: Delete redundant size and alloc_size in sp_meminfo. +- mm/sharepool: Delete unused kthread_stat. +- mm/sharepool: Add meminfo_k2u_size. +- mm/sharepool: Add meminfo_alloc_sum_byKB and meminfo_alloc_sum. +- mm/sharepool: Replace spg_proc_stat with sp_meminfo. +- mm/sharepool: Delete unused tgid and spg_id in spg_proc_stat. +- mm/sharepool: replace sp_proc_stat with sp_meminfo. +- mm/sharepool: Move comm from sp_proc_stat to sp_group_master. +- mm/sharepool: Delete redundant tgid in sp_proc_stat. +- mm/sharepool: Fix double delete list in sp_group_exit +- mm/sharepool: split meminfo_update_k2u into meminfo_inc_k2u and meminfo_dec_k2u. +- mm/sharepool: Split meminfo_update into meminfo_inc_usage and meminfo_dec_usage. +- mm/sharepool: Rename sp_spg_stat to sp_meminfo. +- mm/sharepool: Move spa_num field to sp_group. +- mm/sharepool: Delete unused mm in sp_proc_stat. +- mm/sharepool: Delete unused spg_id and hugepage_failures. +- mm/sharepool: Modify error message in mg_sp_group_del_task +- mm/sharepool: Fix null-pointer-deference in sp_free_area +- mm/sharepool: Simplify sp_unshare_uva() +- mm/sharepool: Rename sp_group operations +- mm/sharepool: Simplify sp_make_share_k2u() +- mm/sharepool: Reorganize create_spg() +- mm/sharepool: Add helper for master_list +- mm/sharepool: Refactoring proc file interface similar code +- mm/sharepool: Don't display sharepool statistics in the container +- mm/sharepool: Fix NULL pointer dereference in mg_sp_group_del_task +- mm/sharepool: Fix a double free problem caused by init_local_group +- hugetlbfs: Add config to isolate the code of share_pool +- iommu/arm-smmu-v3: Add config to Add support for suspend and resume +- vmalloc: Add config for Extend for hugepages mapping +- ACPI / APEI: Add config to isolate Notify all ras err +- driver: Add CONFIG_ACPI_APEI_GHES_TS_CORE for code isolation +- perf: hisi: Add configs for PMU isolation +- !413 ACPI: Add Platform Runtime Mechanism(PRM) feature support +- !402 Fixed the following errors: The reset with stream fails, the query of AH attr is invalid and the RoCE Bonding +- SCSI: SSSRAID: Code quality reinforcement content +- SCSI: SSSRAID: Introduce map_queue in sssraid module +- Enable ACPI Platform Runtime Mechanism(PRM) feature support +- ACPI: PRM: Check whether EFI runtime is available +- !418 Backport CVEs and bugfixes +- net: mpls: fix stale pointer if allocation fails during device rename +- x86/bugs: Flush IBP in ib_prctl_set() +- binder: Gracefully handle BINDER_TYPE_FDA objects with num_fds=0 +- binder: Address corner cases in deferred copy and fixup +- binder: fix pointer cast warning +- binder: defer copies of pre-patched txn data +- binder: read pre-translated fds from sender buffer +- binder: avoid potential data leakage when copying txn +- rcu: Avoid stack overflow due to __rcu_irq_enter_check_tick() being kprobe-ed +- net/sched: sch_taprio: do not schedule in taprio_reset() +- net/sched: sch_taprio: fix possible use-after-free +- nbd: fix assignment error for first_minor in nbd_dev_add +- md/raid10: fix wrong setting of max_corr_read_errors +- md/raid10: fix overflow in safe_delay_store +- md/raid10: fix slab-out-of-bounds in md_bitmap_get_counter +- arm64: topology: fix possible overflow in amu_fie_setup() +- ARM: 9242/1: kasan: Only map modules if CONFIG_KASAN_VMALLOC=n +- io_uring: fix soft lockup in io_submit_sqes() +- fix kabi broken due to import of 5.15-stable io_uring +- io_uring: import 5.15-stable io_uring +- task_work: add helper for more targeted task_work canceling +- coredump: Limit what can interrupt coredumps +- kernel: provide create_io_thread() helper +- fs: provide locked helper variant of close_fd_get_file() +- kernel: remove checking for TIF_NOTIFY_SIGNAL +- entry: Add support for TIF_NOTIFY_SIGNAL +- signal: Add task_sigpending() helper +- arm: add support for TIF_NOTIFY_SIGNAL +- arm64: add support for TIF_NOTIFY_SIGNAL +- riscv: add support for TIF_NOTIFY_SIGNAL +- powerpc: add support for TIF_NOTIFY_SIGNAL +- x86: Wire up TIF_NOTIFY_SIGNAL +- iov_iter: add helper to save iov_iter state +- perf beauty: Update copy of linux/socket.h with the kernel sources +- perf trace beauty: Update copy of linux/socket.h with the kernel sources +- io_uring: correct pinned_vm accounting +- file: Rename __close_fd_get_file close_fd_get_file +- io_uring: don't hold uring_lock when calling io_run_task_work* +- io_uring: don't take uring_lock during iowq cancel +- fs: make do_renameat2() take struct filename +- net: add accept helper not installing fd +- net: provide __sys_shutdown_sock() that takes a socket +- fs: expose LOOKUP_CACHED through openat2() RESOLVE_CACHED +- Make sure nd->path.mnt and nd->path.dentry are always valid pointers +- fix handling of nd->depth on LOOKUP_CACHED failures in try_to_unlazy* +- fs: add support for LOOKUP_CACHED +- Revert "io_uring: fix soft lockup when call __io_remove_buffers" +- Revert "io_uring: deduplicate failing task_work_add" +- Revert "io_uring: don't take uring_lock during iowq cancel" +- Revert "[Backport] io_uring: don't keep looping for more events if we can't flush overflow" +- Revert "[Huawei] io-wq: Switch io_wqe_worker's fs before releasing request" +- Revert "[Huawei] io_uring: fix soft lockup in io_submit_sqes()" +- Revert "[Huawei] io_uring:drop identity before creating a private one" +- !332 [5.10]Make Multiple functions On Netswift PCIE NIC belong to different IOMMU group +- ACPI: PRM: Change handler_addr type to void pointer +- ACPI: PRM: Handle memory allocation and memory remap failure +- ACPI: PRM: Remove unnecessary blank lines +- ACPI: PRM: Find PRMT table before parsing it +- ACPI: PRM: Deal with table not present or no module found +- ACPI: Do not singal PRM support if not enabled +- ACPI: Correct _SB._OSC bit definition for PRM +- ACPI: Kconfig: Provide help text for the ACPI_PRMT option +- ACPI: PRM: make symbol 'prm_module_list' static +- ACPI: Add _SB._OSC bit for PRM +- ACPI: PRM: implement OperationRegion handler for the PlatformRtMechanism subtype +- ACPICA: Add PRMT module header to facilitate parsing +- ACPICA: Add support for PlatformRtMechanism OperationRegion handler +- ACPICA: iASL: add disassembler support for PRMT +- openeuler: pci: workaround multiple functions can be assigned to only one VM +- RDMA/hns: fix the error of RoCE VF based on RoCE Bonding PF +- RDMA/hns: Fix AH attr queried by query_qp +- RDMA/hns: Kernel notify usr space to stop ring db + +* Sat Feb 25 2023 Jialin Zhang - 5.10.0-143.0.0.72 +- !414 Backport CVEs and bugfixes +- x86/kasan: Populate shadow for shared chunk of the CPU entry area +- x86/kasan: Add helpers to align shadow addresses up and down +- x86/kasan: Rename local CPU_ENTRY_AREA variables to shorten names +- x86/mm: Populate KASAN shadow for entire per-CPU range of CPU entry area +- x86/mm: Recompute physical address for every page of per-CPU CEA mapping +- x86/kasan: Map shadow for percpu pages on demand +- x86/mm: Randomize per-cpu entry area +- Huawei BMA: Fix iBMA driver bug +- mm: memcg: fix NULL pointer in mem_cgroup_track_foreign_dirty_slowpath() +- mm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages +- vfio/iommu_type1: replace kvmalloc with kvzalloc and kfree with kvfree +- vfio/iommu_type1: replace kfree with kvfree +- ppp: associate skb with a device at tx +- arm32: kaslr: Avoid using the -fpic and fno-pic parameters together +- bpf, sockmap: fix race in sock_map_free() +- bpf: make sure skb->len != 0 when redirecting to a tunneling device +- raw: fix KABI for backporting raw RCU conversion patches +- ipv6: Fix crash when IPv6 is administratively disabled +- raw: remove unused variables from raw6_icmp_error() +- raw: fix a typo in raw_icmp_error() +- raw: complete rcu conversion +- raw: Use helpers for the hlist_nulls variant. +- raw: Fix mixed declarations error in raw_icmp_error(). +- raw: convert raw sockets to RCU +- raw: use more conventional iterators +- cifs: Fix use-after-free in rdata->read_into_pages() +- net: bridge: mcast: add and enforce query interval minimum +- net: bridge: mcast: add and enforce startup query interval minimum +- media: vivid: fix compose size exceed boundary +- !411 intel: backport isst issue fix and other update to align with upstream 6.0 +- !401 Accelerator Live Migration Bugfix +- platform/x86: ISST: PUNIT device mapping with Sub-NUMA clustering +- platform/x86: ISST: use semi-colons instead of commas +- platform/x86: ISST: Mark mmio_range_devid_0 and mmio_range_devid_1 with static keyword +- platform/x86: ISST: Change PCI device macros +- platform/x86: ISST: Allow configurable offset range +- platform/x86: ISST: Check for unaligned mmio address +- platform/x86: ISST: Fix optimization with use of numa +- platform/x86: ISST: Use numa node id for cpu pci dev mapping +- platform/x86: ISST: Optimize CPU to PCI device mapping +- !406 [sync] PR-399: Backport fs, block and net bugfixes +- !407 Backport 5.10.145 - 5.10.149 LTS +- wifi: mac80211: don't parse mbssid in assoc response +- mac80211: mlme: find auth challenge directly +- Revert "fs: check FMODE_LSEEK to control internal pipe splicing" +- misc: pci_endpoint_test: Fix pci_endpoint_test_{copy,write,read}() panic +- misc: pci_endpoint_test: Aggregate params checking for xfer +- Input: xpad - fix wireless 360 controller breaking after suspend +- Input: xpad - add supported devices as contributed on github +- wifi: cfg80211: update hidden BSSes to avoid WARN_ON +- wifi: mac80211_hwsim: avoid mac80211 warning on bad rate +- wifi: cfg80211: ensure length byte is present before access +- wifi: cfg80211/mac80211: reject bad MBSSID elements +- random: use expired timer rather than wq for mixing fast pool +- random: avoid reading two cache lines on irq randomness +- USB: serial: qcserial: add new usb-id for Dell branded EM7455 +- efi: Correct Macmini DMI match in uefi cert quirk +- ALSA: hda: Fix position reporting on Poulsbo +- random: clamp credited irq bits to maximum mixed +- random: restore O_NONBLOCK support +- Revert "clk: ti: Stop using legacy clkctrl names for omap4 and 5" +- rpmsg: qcom: glink: replace strncpy() with strscpy_pad() +- USB: serial: ftdi_sio: fix 300 bps rate for SIO +- mmc: core: Terminate infinite loop in SD-UHS voltage switch +- mmc: core: Replace with already defined values for readability +- drm/amd/display: skip audio setup when audio stream is enabled +- drm/amd/display: update gamut remap if plane has changed +- net: atlantic: fix potential memory leak in aq_ndev_close() +- arch: um: Mark the stack non-executable to fix a binutils warning +- um: Cleanup compiler warning in arch/x86/um/tls_32.c +- um: Cleanup syscall_handler_t cast in syscalls_32.h +- ALSA: hda/hdmi: Fix the converter reuse for the silent stream +- net/ieee802154: fix uninit value bug in dgram_sendmsg +- scsi: qedf: Fix a UAF bug in __qedf_probe() +- ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer +- dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API failure +- dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property +- dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling +- firmware: arm_scmi: Add SCMI PM driver remove routine +- compiler_attributes.h: move __compiletime_{error|warning} +- powerpc/64s/radix: don't need to broadcast IPI for radix pmd collapse flush +- mm: gup: fix the fast GUP race against THP collapse +- xsk: Inherit need_wakeup flag for shared sockets +- perf tools: Fixup get_current_dir_name() compilation +- docs: update mediator information in CoC docs +- Makefile.extrawarn: Move -Wcast-function-type-strict to W=1 +- ceph: don't truncate file in atomic_open +- nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure +- ALSA: hda/hdmi: fix warning about PCM count when used with SOF +- x86/alternative: Fix race in try_get_desc() +- KVM: x86: Hide IA32_PLATFORM_DCA_CAP[31:0] from the guest +- clk: iproc: Do not rely on node name for correct PLL setup +- clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks +- selftests: Fix the if conditions of in test_extra_filter() +- net: stmmac: power up/down serdes in stmmac_open/release +- nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices +- nvme: add new line after variable declatation +- cxgb4: fix missing unlock on ETHOFLD desc collect fail path +- net: sched: act_ct: fix possible refcount leak in tcf_ct_init() +- usbnet: Fix memory leak in usbnet_disconnect() +- Input: melfas_mip4 - fix return value check in mip4_probe() +- Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in suspend/resume time" +- ASoC: tas2770: Reinit regcache on reset +- soc: sunxi: sram: Fix debugfs info for A64 SRAM C +- soc: sunxi: sram: Fix probe function ordering issues +- soc: sunxi_sram: Make use of the helper function devm_platform_ioremap_resource() +- soc: sunxi: sram: Prevent the driver from being unbound +- soc: sunxi: sram: Actually claim SRAM regions +- reset: imx7: Fix the iMX8MP PCIe PHY PERST support +- ARM: dts: am33xx: Fix MMCHS0 dma properties +- swiotlb: max mapping size takes min align mask into account +- media: rkvdec: Disable H.264 error detection +- media: dvb_vb2: fix possible out of bound access +- mm: fix madivse_pageout mishandling on non-LRU page +- mm/migrate_device.c: flush TLB while holding PTL +- mm: prevent page_frag_alloc() from corrupting the memory +- mm/page_alloc: fix race condition between build_all_zonelists and page allocation +- mmc: hsq: Fix data stomping during mmc recovery +- mmc: moxart: fix 4-bit bus width and remove 8-bit bus width +- libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205 +- net: mt7531: only do PLL once after the reset +- ntfs: fix BUG_ON in ntfs_lookup_inode_by_name() +- ARM: dts: integrator: Tag PCI host with device_type +- clk: ingenic-tcu: Properly enable registers before accessing timers +- Input: snvs_pwrkey - fix SNVS_HPVIDR1 register address +- net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455 +- thunderbolt: Explicitly reset plug events delay back to USB4 spec value +- usb: typec: ucsi: Remove incorrect warning +- uas: ignore UAS for Thinkplus chips +- usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS +- uas: add no-uas quirk for Hiksemi usb_disk +- btrfs: fix hang during unmount when stopping a space reclaim worker +- ALSA: hda: Fix Nvidia dp infoframe +- ALSA: hda/hdmi: let new platforms assign the pcm slot dynamically +- ALSA: hda/tegra: Reset hardware +- ALSA: hda/tegra: Use clk_bulk helpers +- thunderbolt: Add support for Intel Maple Ridge single port controller +- thunderbolt: Add support for Intel Maple Ridge +- ext4: make directory inode spreading reflect flexbg size +- ext4: limit the number of retries after discarding preallocations blocks +- devdax: Fix soft-reservation memory description +- i2c: mlxbf: Fix frequency calculation +- i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction() +- i2c: mlxbf: incorrect base address passed during io write +- i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible +- workqueue: don't skip lockdep work dependency in cancel_work_sync() +- drm/rockchip: Fix return type of cdn_dp_connector_mode_valid +- drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage +- drm/amd/display: Limit user regamma to a valid value +- drm/amdgpu: use dirty framebuffer helper +- drm/gma500: Fix BUG: sleeping function called from invalid context errors +- Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region +- cifs: always initialize struct msghdr smb_msg completely +- cifs: use discard iterator to discard unneeded network data more efficiently +- drm/amdgpu: Fix check for RAS support +- vfio/type1: fix vaddr_get_pfns() return in vfio_pin_page_external() +- usb: xhci-mtk: fix issue of out-of-bounds array access +- s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup +- serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting +- serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting +- serial: Create uart_xmit_advance() +- drm/amd/amdgpu: fixing read wrong pf2vf data in SRIOV +- selftests: forwarding: add shebang for sch_red.sh +- net: sched: fix possible refcount leak in tc_new_tfilter() +- net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD +- net/smc: Stop the CLC flow if no link to map buffers on +- drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff() +- perf kcore_copy: Do not check /proc/modules is unchanged +- perf jit: Include program header in ELF files +- can: gs_usb: gs_can_open(): fix race dev->can.state condition +- netfilter: ebtables: fix memory leak when blob is malformed +- netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain() +- netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain() +- net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs +- net/sched: taprio: avoid disabling offload when it was never enabled +- net: socket: remove register_gifconf +- net: enetc: move enetc_set_psfp() out of the common enetc_set_features() +- wireguard: netlink: avoid variable-sized memcpy on sockaddr +- wireguard: ratelimiter: disable timings test by default +- net: ipa: properly limit modem routing table use +- net: ipa: kill IPA_TABLE_ENTRY_SIZE +- net: ipa: DMA addresses are nicely aligned +- net: ipa: avoid 64-bit modulus +- net: ipa: fix table alignment requirement +- net: ipa: fix assumptions about DMA address size +- of: mdio: Add of_node_put() when breaking out of for_each_xx +- drm/hisilicon: Add depends on MMU +- drm/hisilicon/hibmc: Allow to be built if COMPILE_TEST is enabled +- sfc: fix null pointer dereference in efx_hard_start_xmit +- sfc: fix TX channel offset when using legacy interrupts +- i40e: Fix set max_tx_rate when it is lower than 1 Mbps +- i40e: Fix VF set max MTU size +- iavf: Fix set max MTU size with port VLAN and jumbo frames +- iavf: Fix bad page state +- MIPS: Loongson32: Fix PHY-mode being left unspecified +- MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko +- drm/panel: simple: Fix innolux_g121i1_l01 bus_format +- net: team: Unsync device addresses on ndo_stop +- net: bonding: Unsync device addresses on ndo_stop +- net: bonding: Share lacpdu_mcast_addr definition +- scsi: mpt3sas: Fix return value check of dma_get_required_mask() +- scsi: mpt3sas: Force PCIe scatterlist allocations to be within same 4 GB region +- net: phy: aquantia: wait for the suspend/resume operations to finish +- net: core: fix flow symmetric hash +- net: let flow have same hash in two directions +- iavf: Fix cached head and tail value for iavf_get_tx_pending +- netfilter: nf_conntrack_sip: fix ct_sip_walk_headers +- arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma +- dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get() +- arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz +- drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks +- arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob +- xfs: validate inode fork size against fork format +- xfs: reorder iunlink remove operation in xfs_ifree +- interconnect: qcom: icc-rpmh: Add BCMs to commit list in pre_aggregate +- mm/slub: fix to return errno if kmalloc() fails +- can: flexcan: flexcan_mailbox_read() fix return value for drop = true +- riscv: fix a nasty sigreturn bug... +- gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully +- gpio: mockup: fix NULL pointer dereference when removing debugfs +- wifi: mt76: fix reading current per-tid starting sequence number for aggregation +- efi: libstub: check Shim mode using MokSBStateRT +- efi: x86: Wipe setup_data on pure EFI boot +- media: flexcop-usb: fix endpoint type check +- iommu/vt-d: Check correct capability for sagaw determination +- ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop +- ALSA: hda/realtek: Add quirk for ASUS GA503R laptop +- ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack +- ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack +- ALSA: hda/realtek: Re-arrange quirk table entries +- ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop +- ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 +- ALSA: hda: add Intel 5 Series / 3400 PCI DID +- ALSA: hda/tegra: set depop delay for tegra +- USB: serial: option: add Quectel RM520N +- USB: serial: option: add Quectel BG95 0x0203 composition +- arm64/bti: Disable in kernel BTI when cross section thunks are broken +- arm64: Restrict ARM64_BTI_KERNEL to clang 12.0.0 and newer +- Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio" +- vfio/type1: Unpin zero pages +- vfio/type1: Prepare for batched pinning with struct vfio_batch +- vfio/type1: Change success value of vaddr_get_pfn() +- Revert "usb: add quirks for Lenovo OneLink+ Dock" +- usb: cdns3: fix issue with rearming ISO OUT endpoint +- usb: cdns3: fix incorrect handling TRB_SMM flag for ISOC transfer +- usb: gadget: udc-xilinx: replace memcpy with memcpy_toio +- usb: add quirks for Lenovo OneLink+ Dock +- tty: serial: atmel: Preserve previous USART mode if RS485 disabled +- serial: atmel: remove redundant assignment in rs485_config +- mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure +- usb: xhci-mtk: relax TT periodic bandwidth allocation +- usb: xhci-mtk: allow multiple Start-Split in a microframe +- usb: xhci-mtk: add some schedule error number +- usb: xhci-mtk: add a function to (un)load bandwidth info +- usb: xhci-mtk: use @sch_tt to check whether need do TT schedule +- usb: xhci-mtk: add only one extra CS for FS/LS INTR +- usb: xhci-mtk: get the microframe boundary for ESIT +- usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop +- usb: dwc3: gadget: Don't modify GEVNTCOUNT in pullup() +- usb: dwc3: gadget: Refactor pullup() +- usb: dwc3: gadget: Prevent repeat pullup() +- usb: dwc3: Issue core soft reset before enabling run/stop +- usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind +- usb: typec: intel_pmc_mux: Add new ACPI ID for Meteor Lake IOM device +- usb: typec: intel_pmc_mux: Update IOM port status offset for AlderLake +- drm/amdgpu: make sure to init common IP before gmc +- drm/amdgpu: Separate vf2pf work item init from virt data exchange +- drm/amdgpu: indirect register access for nv12 sriov +- drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega +- ALSA: hda/sigmatel: Fix unused variable warning for beep power change +- mksysmap: Fix the mismatch of 'L0' symbols in System.map +- MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping() +- afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked +- net: usb: qmi_wwan: add Quectel RM520N +- ALSA: hda/tegra: Align BDL entry to 4KB boundary +- ALSA: hda/sigmatel: Keep power up while beep is enabled +- wifi: mac80211_hwsim: check length for virtio packets +- rxrpc: Fix calc of resend age +- rxrpc: Fix local destruction being repeated +- regulator: pfuze100: Fix the global-out-of-bounds access in pfuze100_regulator_probe() +- ASoC: nau8824: Fix semaphore unbalance at error paths +- Revert "serial: 8250: Fix reporting real baudrate value in c_ospeed field" +- tools/include/uapi: Fix for parisc and xtensa +- cifs: don't send down the destination address to sendmsg for a SOCK_STREAM +- cifs: revalidate mapping when doing direct writes +- of/device: Fix up of_dma_configure_id() stub +- tracing: hold caller_addr to hardirq_{enable,disable}_ip +- parisc: ccio-dma: Add missing iounmap in error path in ccio_probe() +- drm/meson: Fix OSD1 RGB to YCbCr coefficient +- drm/meson: Correct OSD1 global alpha value +- gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx +- NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0 +- pinctrl: sunxi: Fix name for A100 R_PIO +- of: fdt: fix off-by-one error in unflatten_dt_nodes() +- net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports +- platform/x86/intel: hid: add quirk to support Surface Go 3 +- usb: cdns3: gadget: fix new urb never complete if ep cancel previous requests +- powerpc/pseries/mobility: ignore ibm, platform-facilities updates +- powerpc/pseries/mobility: refactor node lookup during DT update +- dmaengine: bestcomm: fix system boot lockups +- parisc: Flush kernel data mapping in set_pte_at() when installing pte for user page +- parisc: Optimize per-pagetable spinlocks +- serial: 8250: Fix reporting real baudrate value in c_ospeed field +- KVM: PPC: Tick accounting should defer vtime accounting 'til after IRQ handling +- KVM: PPC: Book3S HV: Context tracking exit guest context before enabling irqs +- ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show() +- ubi: fastmap: Fix missed fm_anchor PEB in wear-leveling after disabling fastmap +- ubifs: Re-statistic cleaned znode count if commit failed +- ubifs: dirty_cow_znode: Fix memleak in error handling path +- block, bfq: switch 'bfqg->ref' to use atomic refcount apis +- cifs: sanitize multiple delimiters in prepath +- bpf: Fix sockmap calling sleepable function in teardown path +- bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues +- !387 kvm: arm64: fix some pvsched bugs +- vfio/migration: Modify the vf id acquisition method +- !379 scsi:spraid: Remove spraid driver +- scsi:spraid: Remove spraid driver +- !336 scsi:sssraid: Support 3SNIC 3S5XX serial RAID/HBA controllers +- !393 Backport 5.10.143 - 5.10.144 LTS +- Input: goodix - add compatible string for GT1158 +- soc: fsl: select FSL_GUTS driver for DPIO +- mm: Fix TLB flush for not-first PFNMAP mappings in unmap_region() +- usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS +- platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes +- perf/arm_pmu_platform: fix tests for platform_get_irq() failure +- drm/amd/amdgpu: skip ucode loading if ucode_size == 0 +- nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change() +- Input: iforce - add support for Boeder Force Feedback Wheel +- ieee802154: cc2520: add rc code in cc2520_tx() +- gpio: mockup: remove gpio debugfs when remove device +- tg3: Disable tg3 device on system reboot to avoid triggering AER +- hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message +- HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo +- drm/msm/rd: Fix FIFO-full deadlock +- Input: goodix - add support for GT1158 +- tracefs: Only clobber mode/uid/gid on remount if asked +- iommu/vt-d: Correctly calculate sagaw value of IOMMU +- ARM: dts: imx6qdl-kontron-samx6i: fix spi-flash compatible +- ARM: dts: imx: align SPI NOR node name with dtschema +- hwmon: (mr75203) enable polling for all VM channels +- hwmon: (mr75203) fix multi-channel voltage reading +- hwmon: (mr75203) fix voltage equation for negative source input +- hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used sensors +- hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined +- iommu/amd: use full 64-bit value in build_completion_wait() +- swiotlb: avoid potential left shift overflow +- MIPS: loongson32: ls1c: Fix hang during startup +- ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion +- ASoC: mchp-spdiftx: remove references to mchp_i2s_caps +- tcp: fix early ETIMEDOUT after spurious non-SACK RTO +- nvme-tcp: fix regression that causes sporadic requests to time out +- nvme-tcp: fix UAF when detecting digest errors +- RDMA/mlx5: Set local port to one when accessing counters +- IB/core: Fix a nested dead lock as part of ODP flow +- ipv6: sr: fix out-of-bounds read when setting HMAC data. +- RDMA/siw: Pass a pointer to virt_to_page() +- xen-netback: only remove 'hotplug-status' when the vif is actually destroyed +- i40e: Fix kernel crash during module removal +- ice: use bitmap_free instead of devm_kfree +- tipc: fix shift wrapping bug in map_get() +- afs: Use the operation issue time instead of the reply time for callbacks +- rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2() +- ALSA: usb-audio: Register card again for iface over delayed_register option +- ALSA: usb-audio: Inform the delayed registration more properly +- netfilter: nf_tables: clean up hook list when offload flags check fails +- netfilter: br_netfilter: Drop dst references before setting. +- ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time +- ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time +- ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges +- ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges +- RDMA/hns: Fix wrong fixed value of qp->rq.wqe_shift +- soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs +- RDMA/cma: Fix arguments order in net device validation +- tee: fix compiler warning in tee_shm_register() +- regulator: core: Clean up on enable failure +- ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node +- smb3: missing inode locks in punch hole +- cifs: remove useless parameter 'is_fsctl' from SMB2_ioctl() +- scsi: lpfc: Add missing destroy_workqueue() in error path +- scsi: mpt3sas: Fix use-after-free warning +- drm/i915: Implement WaEdpLinkRateDataReload +- nvmet: fix a use-after-free +- debugfs: add debugfs_lookup_and_remove() +- kprobes: Prohibit probes in gate area +- ALSA: usb-audio: Fix an out-of-bounds bug in __snd_usb_parse_audio_interface() +- ALSA: aloop: Fix random zeros in capture data when using jiffies timer +- ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc() +- drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly +- fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init() +- net/core/skbuff: Check the return value of skb_copy_bits() +- arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level +- parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines +- parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources() +- drm/radeon: add a force flush to delay work when radeon +- drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup. +- drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to psp_hw_fini +- drm/gem: Fix GEM handle release errors +- scsi: megaraid_sas: Fix double kfree() +- scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX +- Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()" +- wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd() +- efi: libstub: Disable struct randomization +- tty: n_gsm: avoid call of sleeping functions from atomic context +- tty: n_gsm: initialize more members at gsm_alloc_mux() +- xen-blkfront: Cache feature_persistent value before advertisement +- NFSD: Fix verifier returned in stable WRITEs +- !380 Fix kernel build error with clang compiler on aarch64 +- SCSI: SSSRAID: Support 3SNIC 3S5XX serial RAID/HBA controllers +- Fix crct10dif-neon-asm_64 build error on clang +- !377 [selftests/resq]fix basic_percpu_ops_test case hang +- kvm: arm64: fix some pvsched bugs +- selftests/rseq: check if libc rseq support is registered + +* Thu Feb 09 2023 Jialin Zhang - 5.10.0-142.0.0.71 +- !390 Backport 5.10.142 LTS +- USB: serial: ch341: fix disabled rx timer on older devices +- USB: serial: ch341: fix lost character on LCR updates +- usb: dwc3: disable USB core PHY management +- usb: dwc3: qcom: fix use-after-free on runtime-PM wakeup +- usb: dwc3: fix PHY disable sequence +- mmc: core: Fix UHS-I SD 1.8V workaround branch +- btrfs: harden identification of a stale device +- drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk +- ALSA: seq: Fix data-race at module auto-loading +- ALSA: seq: oss: Fix data-race for max_midi_devs access +- ALSA: hda/realtek: Add speaker AMP init for Samsung laptops with ALC298 +- net: mac802154: Fix a condition in the receive path +- ip: fix triggering of 'icmp redirect' +- wifi: mac80211: Fix UAF in ieee80211_scan_rx() +- wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected +- driver core: Don't probe devices after bus_type.match() probe deferral +- usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS +- s390: fix nospec table alignments +- s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages +- usb-storage: Add ignore-residue quirk for NXP PN7462AU +- USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020) +- usb: dwc2: fix wrong order of phy_power_on and phy_init +- usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles +- USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode +- USB: serial: option: add Quectel EM060K modem +- USB: serial: option: add support for OPPO R11 diag port +- USB: serial: cp210x: add Decagon UCA device id +- xhci: Add grace period after xHC start to prevent premature runtime suspend. +- thunderbolt: Use the actual buffer in tb_async_error() +- xen-blkfront: Advertise feature-persistent as user requested +- xen-blkback: Advertise feature-persistent as user requested +- mm: pagewalk: Fix race between unmap and page walker +- xen/grants: prevent integer overflow in gnttab_dma_alloc_pages() +- KVM: x86: Mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES +- gpio: pca953x: Add mutex_lock for regcache sync in PM +- hwmon: (gpio-fan) Fix array out of bounds access +- clk: bcm: rpi: Add missing newline +- clk: bcm: rpi: Prevent out-of-bounds access +- clk: bcm: rpi: Use correct order for the parameters of devm_kcalloc() +- clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate +- Input: rk805-pwrkey - fix module autoloading +- clk: core: Fix runtime PM sequence in clk_core_unprepare() +- Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops" +- clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops +- drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported" +- USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id +- misc: fastrpc: fix memory corruption on open +- misc: fastrpc: fix memory corruption on probe +- iio: adc: mcp3911: use correct formula for AD conversion +- iio: ad7292: Prevent regulator double disable +- Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag +- tty: serial: lpuart: disable flow control while waiting for the transmit engine to complete +- vt: Clear selection before changing the font +- powerpc: align syscall table for ppc32 +- serial: fsl_lpuart: RS485 RTS polariy is inverse +- net/smc: Remove redundant refcount increase +- Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb" +- tcp: annotate data-race around challenge_timestamp +- sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb +- kcm: fix strp_init() order and cleanup +- ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler +- net/sched: fix netdevice reference leaks in attach_default_qdiscs() +- net: sched: tbf: don't call qdisc_put() while holding tree lock +- Revert "xhci: turn off port power in shutdown" +- wifi: cfg80211: debugfs: fix return type in ht40allow_map_read() +- ALSA: hda: intel-nhlt: Correct the handling of fmt_config flexible array +- ALSA: hda: intel-nhlt: remove use of __func__ in dev_dbg +- ieee802154/adf7242: defer destroy_workqueue call +- iio: adc: mcp3911: make use of the sign bit +- platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask +- drm/msm/dsi: Fix number of regulators for SDM660 +- drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg +- drm/msm/dp: delete DP_RECOVERED_CLOCK_OUT_EN to fix tps4 +- drm/msm/dsi: fix the inconsistent indenting +- !389 [sync] PR-385: Backport CVEs and bugfixes +- cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all() +- cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock +- cgroup: Elide write-locking threadgroup_rwsem when updating csses on an empty subtree +- net: sched: fix race condition in qdisc_graft() +- macvlan: enforce a consistent minimal mtu +- net: switch to storing KCOV handle directly in sk_buff +- kabi: add early_demux_handler and early_demux back to fix kabi broken in struct net_protocol and inet6_protocol +- tcp/udp: Make early_demux back namespacified. +- net: Use u64_stats_fetch_begin_irq() for stats fetch. +- drm/i915/gvt: fix double free bug in split_2MB_gtt_entry +- ipv6: raw: Deduct extension header length in rawv6_push_pending_frames +- ext4: fix use-after-free in ext4_orphan_cleanup +- ext4: fix null-ptr-deref in ext4_write_info +- block: don't allow a disk link holder to itself +- hugetlbfs: fix off-by-one error in hugetlb_vmdelete_list() +- scsi: fix iscsi rescan fails to create block +- mm/memcg_memfs_info: fix potential oom_lock recursion deadlock +- mm: memcontrol: fix potential oom_lock recursion deadlock +- irqchip/gic-v4: Wait for GICR_VPENDBASER.Dirty to clear before descheduling +- xfs: fix potential log item leak +- !365 net: hns3: Some bugfix about L3E check, promisc mode update, FD counter rules and rss config for HNS3 +- !373 [sync] PR-372: Backport 5.10.141 LTS +- net: neigh: don't call kfree_skb() under spin_lock_irqsave() +- net/af_packet: check len when min_header_len equals to 0 +- lib/vdso: Mark do_hres_timens() and do_coarse_timens() __always_inline() +- netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y +- drm/amdgpu: Increase tlb flush timeout for sriov +- drm/amd/display: Fix pixel clock programming +- drm/amd/pm: add missing ->fini_microcode interface for Sienna Cichlid +- s390/hypfs: avoid error message under KVM +- neigh: fix possible DoS due to net iface start/stop loop +- drm/amd/display: clear optc underflow before turn off odm clock +- drm/amd/display: For stereo keep "FLIP_ANY_FRAME" +- drm/amd/display: Avoid MPC infinite loop +- mmc: mtk-sd: Clear interrupts when cqe off/disable +- ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is dead +- fbdev: fb_pm2fb: Avoid potential divide by zero error +- net: fix refcount bug in sk_psock_get (2) +- HID: hidraw: fix memory leak in hidraw_release() +- udmabuf: Set the DMA mask for the udmabuf device (v2) +- HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report +- Revert "PCI/portdrv: Don't disable AER reporting in get_port_device_capability()" +- kbuild: Fix include path in scripts/Makefile.modpost +- s390/mm: do not trigger write fault when vma does not allow VM_WRITE +- crypto: lib - remove unneeded selection of XOR_BLOCKS +- x86/nospec: Fix i386 RSB stuffing +- x86/nospec: Unwreck the RSB stuffing +- !371 [sync] PR-368: Backport CVEs and bugfixes +- mm/memory: return vm_fault_t result from migrate_to_ram() callback +- net: sched: disallow noqueue for qdisc classes +- netfilter: nft_payload: incorrect arithmetics when fetching VLAN header bits +- xfs: Fix deadlock on xfs_inodegc_worker +- net: sched: cbq: dont intepret cls results when asked to drop +- net: sched: atm: dont intepret cls results when asked to drop +- scsi: ses: fix slab-out-of-bounds in ses_enclosure_data_process +- of/fdt: Don't calculate initrd size from DT if start > end +- lib/cmdline: avoid page fault in next_arg +- rndis_wlan: Prevent buffer overflow in rndis_query_oid +- mm/vmpressure: fix data-race with memcg->socket_pressure +- !362 AMD: Support svm guest when host CR4.LA57 is set. +- !360 [sync] PR-338: Fix virtio-gpu free issues +- KVM: x86: Allow CPU to force vendor-specific TDP level +- net: hns3: fix wrong use of rss size during VF rss config +- net: hns3: add support for FD counter +- net: hns3: fix VF promisc mode not update when mac table full +- net: hns3: fix miss L3E checking for rx packet +- net: hns3: add interrupts re-initialization while doing VF FLR +- !354 [OLK-5.10] machine check safe review issue modification +- drm/virtio: free virtqueues on probe failure +- drm/virtio: Fixes a potential NULL pointer dereference on probe failure +- !343 Add KVM related info to openEuler/MAINTAINERS +- !359 [sync] PR-358: Backport CVEs, bugfixes and other +- binder: fix UAF of alloc->vma in race with munmap() +- io_uring: add missing item types for splice request +- xfs: fix overfilling of reserve pool +- xfs: always succeed at setting the reserve pool size +- xfs: remove infinite loop when reserving free block pool +- xfs: use current->journal_info for detecting transaction recursion +- fix kabi broken due to may_pollfree +- io_uring: disable polling pollfree files +- ksmbd: check nt_len to be at least CIFS_ENCPWD_SIZE in ksmbd_decode_ntlmssp_auth_blob +- driver: char: delete svm.c +- mm: fix unexpected changes to {failslab|fail_page_alloc}.attr +- fs/ntfs3: Fix attr_punch_hole() null pointer derenference +- tracing/osnoise: Do not unregister events twice +- tracing/osnoise: Properly unhook events if start_per_cpu_kthreads() fails +- kasan: add kasan support for memcpy_mcs() +- arm64: fix return value type of memcpy_mcs() +- docs: Add KVM related info to openEuler/MAINTAINERS + +* Thu Jan 19 2023 Zheng Zengkai - 5.10.0-141.0.0.70 +- !350 AMD: Fix cpu capabilities incorrect detection bug. +- !355 [sync] PR-347: Backport CVEs and fs bugfixes +- io_uring: kill goto error handling in io_sqpoll_wait_sq() +- ext4: fix bad checksum after online resize +- xfs: fix use-after-free in xattr node block inactivation +- USB: core: Fix RST error in hub.c +- USB: core: Prevent nested device-reset calls +- !339 ima: Fix a potential NULL pointer access in ima_restore_measurement_list +- x86/cpufeatures: Fix cpu capabilities incorrect detection. +- !342 sync pull request https://gitee.com/openeuler/kernel/pulls/340 from openEuler-22.03-LTS. +- KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS +- bfq: fix null-ptr-deref in bfq_pd_offline +- i2c: ismt: Fix an out-of-bounds bug in ismt_access() +- ksmbd: fix heap-based overflow in set_ntacl_dacl() +- ksmbd: prevent out of bound read for SMB2_WRITE +- ksmbd: validate length in smb2_write() +- xfs: fix super block buf log item UAF during force shutdown +- xfs: wait iclog complete before tearing down AIL +- xfs: get rid of assert from xfs_btree_islastblock +- ima: Fix a potential NULL pointer access in ima_restore_measurement_list +- media: mceusb: Use new usb_control_msg_*() routines +- perf: hisi: Fix read sccl_id and ccl_id error in TSV200 +- mm: add cond_resched() in swapin_walk_pmd_entry() +- misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault and gru_handle_user_call_os +- livepatch: Fix compile error when CONFIG_LIVEPATCH_WO_FTRACE disabled +- dm thin: Use last transaction's pmd->root when commit failed +- zram: avoid race between zram_remove and disksize_store +- zram: don't fail to remove zram during unloading module +- blk-mq: fix kabi broken in struct bio +- blk-mq: fix kabi broken in struct request +- block, bfq: fix possible uaf for 'bfqq->bic' +- block, bfq: fix null pointer dereference in bfq_bio_bfqg() +- blk-mq: set default elevator as deadline in case of hctx shared tagset +- ext2: replace bh_submit_read() helper with bh_read() +- ufs: replace ll_rw_block() +- udf: replace ll_rw_block() +- reiserfs: replace ll_rw_block() +- ocfs2: replace ll_rw_block() +- ntfs3: replace ll_rw_block() +- jbd2: replace ll_rw_block() +- isofs: replace ll_rw_block() +- gfs2: replace ll_rw_block() +- fs/buffer: replace ll_rw_block() +- fs/buffer: add some new buffer read helpers +- wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_CHANNEL_LIST attribute +- xen/netback: don't call kfree_skb() with interrupts disabled +- media: dvb-core: Fix UAF due to refcount races at releasing +- wifi: wilc1000: validate pairwise and authentication suite offsets +- wifi: wilc1000: validate number of channels +- wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_OPER_CHANNEL attribute +- drm/amdkfd: Check for null pointer after calling kmemdup +- mm: Fix PASID use-after-free issue +- timekeeping: Adding a padding before timekeeper in tk_core +- scsi: iscsi: remove .unbind_conn from iscsi_transport +- Revert "scsi: iscsi: fix kabi broken in struct iscsi_transport" +- Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del() +- Bluetooth: L2CAP: Fix build errors in some archs +- cpuidle: add cpuidle-haltpoll driver module parameter +- clk: imx: Add check for kcalloc +- x86/cpu/hygon: Set __max_die_per_package on Hygon +- mm/dynamic_hugetlb: fix clear PagePool without lock protection +- mm/dynamic_hugetlb: fix list corruption in hpool_merge_page() +- mm/swapfile: use new way to fix broken kabi in swap_info_struct +- block: always align request_wrapper to cacheline +- block: fix crash on cmpxchg for request_wrapper +- !269 Reduce the memory usage by kernel +- efi/libstub: Fix build error in efi-stub.c for riscv +- mm: init: Fix build waring for ascend enable features +- mtd: physmap-core: Fix NULL pointer dereferencing in of_select_probe_type() +- ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP +- xen/netback: fix build warning +- xen/netback: Ensure protocol headers don't fall in the non-linear area +- block: only use cmpxchg64 in 64bit platform +- proc: proc_skip_spaces() shouldn't think it is working on C strings +- proc: avoid integer type confusion in get_proc_long +- sched/qos: Don't unthrottle cfs_rq when cfs_rq is throttled by qos +- Revert "ipvlan: Modify the value of ipvlan modes" +- net/af_packet: make sure to pull mac header +- KVM: arm64: Fix {fp_asimd,sve}_exit_stat manipulation +- dm thin: Fix ABBA deadlock between shrink_slab and dm_pool_abort_metadata +- arm64: fix a concurrency issue in emulation_proc_handler() +- !309 vdpa: Add the vdpa device management mechanism and optimize the iotlb +- !324 clk: 16dv300: add GPL license info for 16dv300 module. +- vdpa/vp_vdpa: fix kfree a wrong pointer in vp_vdpa_remove +- tools include UAPI: Sync linux/vhost.h with the kernel sources +- tools include UAPI: Sync linux/vhost.h with the kernel sources +- tools include UAPI: Sync linux/vhost.h with the kernel sources +- vhost-vdpa: call vhost_vdpa_cleanup during the release +- vhost: allow batching hint without size +- vdpa_sim: set vringh notify callback +- virtio_pci: struct virtio_pci_common_cfg add queue_reset +- virtio_pci: struct virtio_pci_common_cfg add queue_notify_data +- virtio: use virtio_reset_device() when possible +- virtio: document virtio_reset_device +- virtio: wrap config->reset calls +- virtio_pci: introduce helper to get/set queue reset +- virtio_pci: extract the logic of active vq for modern pci +- vhost-vdpa: uAPI to suspend the device +- vhost-vdpa: introduce SUSPEND backend feature bit +- vdpa: Add suspend operation +- vhost-vdpa: Call ida_simple_remove() when failed +- vDPA: fix 'cast to restricted le16' warnings in vdpa.c +- vDPA: !FEATURES_OK should not block querying device config space +- vdpa: make get_vq_group and set_group_asid optional +- vhost-vdpa: return -EFAULT on copy_to_user() failure +- vdpa/vp_vdpa : add vdpa tool support in vp_vdpa +- vhost-vdpa: support ASID based IOTLB API +- vhost-vdpa: introduce uAPI to set group ASID +- vhost-vdpa: uAPI to get virtqueue group id +- vhost-vdpa: introduce uAPI to get the number of address spaces +- vhost-vdpa: introduce uAPI to get the number of virtqueue groups +- vhost-vdpa: introduce asid based IOTLB +- vhost: support ASID in IOTLB API +- vhost_iotlb: split out IOTLB initialization +- vdpa: introduce config operations for associating ASID to a virtqueue group +- vdpa: multiple address spaces support +- vdpa: introduce virtqueue groups +- vhost-vdpa: switch to use vhost-vdpa specific IOTLB +- vhost-vdpa: passing iotlb to IOMMU mapping helpers +- virtio-vdpa: don't set callback if virtio doesn't need it +- vhost: move the backend feature bits to vhost_types.h +- net/vdpa: Use readers/writers semaphore instead of cf_mutex +- net/vdpa: Use readers/writers semaphore instead of vdpa_dev_mutex +- vdpa: Add support for querying vendor statistics +- vdpa: Fix error logic in vdpa_nl_cmd_dev_get_doit +- vhost: handle error while adding split ranges to iotlb +- vdpa: change the type of nvqs to u32 +- vhost: fix hung thread due to erroneous iotlb entries +- vdpa: factor out vdpa_set_features_unlocked for vdpa internal use +- vdpa: Protect vdpa reset with cf_mutex +- vdpa: Avoid taking cf_mutex lock on get status +- vdpa: Use BIT_ULL for bit operations +- vdpa: Support reporting max device capabilities +- vdpa: Add support for returning device configuration information +- vdpa: Allow to configure max data virtqueues +- vdpa: Read device configuration only if FEATURES_OK +- vdpa: Sync calls set/get config/status with cf_mutex +- vdpa: Provide interface to read driver features +- vdpa: Mark vdpa_config_ops.get_vq_notification as optional +- vdpa: Avoid duplicate call to vp_vdpa get_status +- docs: document sysfs ABI for vDPA bus +- vhost-vdpa: clean irqs before reseting vdpa device +- vdpa: Enable user to set mac and mtu of vdpa device +- vdpa: Use kernel coding style for structure comments +- vdpa: Introduce query of device config layout +- vdpa: Introduce and use vdpa device get, set config helpers +- vdpa: add new attribute VDPA_ATTR_DEV_MIN_VQ_SIZE +- virtio_vdpa: setup correct vq size with callbacks get_vq_num_{max,min} +- vdpa: min vq num of vdpa device cannot be greater than max vq num +- vdpa: add new callback get_vq_num_min in vdpa_config_ops +- vhost_vdpa: unset vq irq before freeing irq +- vdpa: potential uninitialized return in vhost_vdpa_va_map() +- vhost-iotlb: Add an opaque pointer for vhost IOTLB +- vdpa: Support transferring virtual addressing during DMA mapping +- vdpa: factor out vhost_vdpa_pa_map() and vhost_vdpa_pa_unmap() +- vdpa: Add an opaque pointer for vdpa_config_ops.dma_map() +- vhost-vdpa: Handle the failure of vdpa_reset() +- vdpa: Fix some coding style issues +- vdpa: Make use of PFN_PHYS/PFN_UP/PFN_DOWN helper macro +- vdpa: Add documentation for vdpa_alloc_device() macro +- virtio/vdpa: clear the virtqueue state during probe +- vp_vdpa: correct the return value when fail to map notification +- virito_pci libray: hide vp_modern_map_capability() +- vhost/vdpa: Remove the restriction that only supports virtio-net devices +- virtio_pci_modern: hide vp_modern_get_queue_notify_off() +- vdpa: Follow kdoc comment style +- vdpa: Follow kdoc comment style +- virtio_vdpa: don't warn when fail to disable vq +- vdpa: Use simpler version of ida allocation +- vhost_vdpa: switch to vmemdup_user() +- clk: hi3516dv300: add GPL license info. driver inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I65S6L +- coresight: trbe: Enable ACPI/Platform automatic module loading +- arm64/trbe: Add initial MADT/SPE probing +- ACPI 6.5: MADT: add support for trace buffer extension in GICC +- coresight: Return the pointer of @pdata when not "fwnode" +- blk-mq: don't access request_wrapper if request is not allocated from block layer +- blk-mq: fix kabi broken due to request_wrapper +- ide-cd: don't clear rq_flags after blk_get_request +- iommu: Fix error handling in probe_acpi_namespace_devices() +- !321 net: hns3: fix the HCLGE_OPC_WOL_CFG opcode id for wol and fix the incorrect way to obtain parameters. +- net: hns3: fix the HCLGE_OPC_WOL_CFG opcode id for wol +- net: hns3: fix getting supported parameter from driver in hclge_set_wol +- !318 net: hns3: This series bugfix for the HNS3 ethernet driver. +- !307 arch: mach: add support for 16dv300 series soc. +- net: hns3: fix setting incorrect phy link ksettings for firmware in resetting process +- net: hns3: fix return value check bug of rx copybreak +- net: hns3: fix incorrect hw rss hash type of rx packet +- sched: disable sched_autogroup by default +- Revert "add barriers to buffer_uptodate and set_buffer_uptodate" +- Fixed the issue that the macro def_domain_type is repeatedly defined. +- coresight: trbe: remove cpuhp instance node before remove cpuhp state +- RDMA/hns: adjust the structure of RoCE bonding driver +- RDMA/hns: add constraints for bonding-unsupported situations +- RDMA/hns: fix the error of missing GID in RoCE bonding mode 1 +- RDMA/hns: fix possible dead lock when setting RoCE Bonding +- drm/i915: fix TLB invalidation for Gen12 video and compute engines +- fork: Fixed the extended kabi memory is not initialized +- mm/dynamic_hugetlb: fix compound_nr incorrect +- mm/shmem: fix shmem_swapin() race with swapoff +- swap: fix do_swap_page() race with swapoff +- mm/swapfile: fix broken kabi in swap_info_struct +- mm/swapfile: use percpu_ref to serialize against concurrent swapoff +- swapfile: fix soft lockup in scan_swap_map_slots +- spi: hisi-sfc-v3xx: drop unnecessary ACPI_PTR and related ifendif protection +- spi: hisi-sfc-v3xx: fix potential irq race condition +- spi: hisi-sfc-v3xx: add address mode check +- spi: hisi-sfc-v3xx: extend version checking compatibility +- coresight: ete: Add acpi match id for Hip09 +- coresight: etm4x: Fix accesses to TRCSEQRSTEVR and TRCSEQSTR +- l2tp: Don't sleep and disable BH under writer-side sk_callback_lock +- l2tp: Serialize access to sk_user_data with sk_callback_lock +- Bluetooth: L2CAP: Fix u8 overflow +- workqueue: fix state-dump console deadlock +- preempt/dynamic: Fix typo in macro conditional statement +- jump_label: Fix usage in module __init +- arm64/mpam: update last_cmd_status in parse_cache() and parse_bw() +- arm64/mpam: remove kernfs_get() calls() and add kernfs_put() calls to prevent refcount leak +- arm64/mpam: make mbw_max/min not less than min_bw +- arm64/mpam: Fix indent format error in resctrl_parse_param() +- arm64/mpam: decrease dom_num when domain goes offline +- arm64/mpam: correct mbw_max/min if remainder is too large +- mm/migrate.c: rework migration_entry_wait() to not take a pageref +- sched/fair: limit burst to zero when cfs bandwidth is toggled off +- sched: Fix null-ptr-deref in free_fair_sched_group +- !317 AMD: Fix allmodconfig build issue in amd perf uncore module. +- !314 config: disable CONFIG_QOS_SCHED_SMT_EXPELLER +- x86/cpu: Add get_llc_id() helper function +- perf/amd/uncore: Clean up header use, use loopback +- mm/smaps: don't access young/dirty bit if pte unpresent +- mm/huge_memory.c: use helper function migration_entry_to_page() +- SUNRPC: RPC level errors should set task->tk_rpc_status +- NFSv4.2 fix problems with __nfs42_ssc_open +- NFS: Don't allocate nfs_fattr on the stack in __nfs42_ssc_open() +- xfrm: clone missing x->lastused in xfrm_do_migrate +- xfrm: fix refcount leak in __xfrm_policy_check() +- kernel/sched: Remove dl_boosted flag comment +- vfs: make sync_filesystem return errors from ->sync_fs +- fs: remove __sync_filesystem +- pinctrl: amd: Don't save/restore interrupt status and wake status bits +- kernel/sys_ni: add compat entry for fadvise64_64 +- parisc: Fix exception handler for fldw and fstw instructions +- audit: fix potential double free on error path from fsnotify_add_inode_mark +- kbuild: dummy-tools: avoid tmpdir leak in dummy gcc +- iommu: bugfix for missing symbols when build arm_smmu_v3.ko +- !308 Enable CONFIG_UPROBES_SUPPORT_PC_ALTER by default +- uprobe: enable CONFIG_UPROBES_SUPPORT_PC_ALTER by default +- module: add hi3516dv300 clk driver +- tc-testing: gitignore, delete plugins directory +- sw64: fix kernel_stack_pointer +- sw64: add support for KPROBES_ON_FTRACE +- sw64: optimize single float load store instruction emulation +- sw64: fix VM_DATA_DEFAULT_FLAGS +- sw64: kvm: support debugging guest kernel via gdb +- sw64: add basic NVDIMM support +- sw64: fix argument type of __sw64_vcpu_run() +- sw64: ftrace: fix function graph tracing support +- sw64: generate call instruction with disp 0 +- sw64: ftrace: fix ARCH_SUPPORTS_FTRACE_OPS support +- sw64: mark sched_clock() as notrace +- sw64: fix memmap_range_valid() +- sw64: bpf: improve BPF_CALL address check +- sw64: add basic livepatch support on SW64 +- sw64: acpi: fix compilation dependency when CONFIG_PCI=n +- sw64: fix recordmcount and dynamic ftrace +- sw64: fix topology setup +- sw64: kvm: fix guest longtime offset of VCPU +- sw64: improve stack trace +- sw64: remove unused boot syncronization code +- Revert "sw64: clean up unused single step support in kernel" +- sw64: fix compile error when CONFIG_DEBUG_PER_CPU_MAPS=y +- sw64: always restore MATCH configuration after scheduling +- sw64: track last vpn in struct cpuinfo_sw64 +- sw64: make struct cpuinfo_sw64 cache line aligned +- sw64: kvm: add qemu fw_cfg device to chip_vt.dts +- sw64: kvm: add qemu fw_cfg device support in sysfs +- !302 sched: programmable: fix build error of bpf_topology +- sched: programmable: Fix build error for nr_cpus_ids +- sched: programmable: fix build error of bpf_topology +- !300 bpf: Fix build error: linux/kabi.h: No such file or directory +- !294 昇腾补丁回合 +- bpf: Fix build error: linux/kabi.h: No such file or directory +- memblock,arm64: expand the static memblock memory table +- iort: Read ACPI configure to get streamid. +- Hugtlb: bugfix for hugetlb remap +- mm: cma: use pr_err_ratelimited for CMA warning +- oom: add oom notifier call for oom panic +- cpu-feature: Enable Taisan IDC feature for Taishan core version +- memcontrol: Add oom recover for kmemcg when release buddy hugepage +- !259 cgroup: Support iocost for cgroup v1 +- !279 sched: programmable: bpf support programmable schedule capacity for scheduler +- cgroup: Support iocost for cgroup v1 +- !298 Perf tool add Hip09 json support. +- !234 AMD: Support perf mem/c2c for AMD Zen platform. +- !211 AMD: Add EPYC Gen4 PerfMonV2 uncore support +- hix5hd2: Add I2C_M_STOP flag support for hix5hd2 driver. +- perf jevents: Add support for HiSilicon PA PMU aliasing +- perf jevents: Add support for HiSilicon SLLC PMU aliasing +- perf jevents: Add support for HiSilicon HHA PMU aliasing +- perf jevents: Add support for HiSilicon DDRC PMU aliasing +- perf jevents: Add support for HiSilicon L3C PMU aliasing +- perf test: Add pmu-events test for aliases of hip09 ddrc pmu +- perf vendor events arm64: Revise hip08 uncore events +- perf test: Verify more event members in pmu-events test +- perf jevents: Support ConfigCode +- perf parse-events: Set numeric term config +- perf test: Add pmu-events sys event support +- perf jevents: Print SoC name per system event table +- perf pmu: Make pmu_add_sys_aliases() public +- perf test: Add more pmu-events uncore aliases +- perf test: Re-add pmu-event uncore PMU alias test +- perf pmu: Check .is_uncore field in pmu_add_cpu_aliases_map() +- perf test: Test pmu-events core aliases separately +- perf test: Factor out pmu-events alias comparison +- perf test: Declare pmu-events test events separately +- perf jevents: Relocate test events to cpu folder +- perf test: Factor out pmu-events event comparison +- perf jevents: Make build dependency on test JSONs +- perf jevents: Add test for arch std events +- perf pmu: Save pmu name +- perf pmu: Add alias match method to fit pmu_name of HiSilicon DDRC +- perf pmu: Fix alias matching +- perf tools: Fix pattern matching for same substring in different PMU type +- perf metricgroup: Support adding metrics for system PMUs +- perf metricgroup: Support printing metric groups for system PMUs +- perf metricgroup: Split up metricgroup__print() +- perf metricgroup: Fix metrics using aliases covering multiple PMUs +- perf evlist: Change evlist__splice_list_tail() ordering +- perf pmu: Add pmu_add_sys_aliases() +- perf pmu: Add pmu_id() +- perf jevents: Add support for system events tables +- perf jevents: Add support for an extra directory level +- staging: rtl8712: fix use after free bugs +- Fix kabi change caused by reverting patches +- Revert "iommu: Introduce attach/detach_pasid_table API" +- Revert "iommu: Introduce bind/unbind_guest_msi" +- Revert "iommu/smmuv3: Allow s1 and s2 configs to coexist" +- Revert "iommu/smmuv3: Get prepared for nested stage support" +- Revert "iommu/smmuv3: Implement attach/detach_pasid_table" +- Revert "iommu/smmuv3: Allow stage 1 invalidation with unmanaged ASIDs" +- Revert "iommu/smmuv3: Implement cache_invalidate" +- Revert "dma-iommu: Implement NESTED_MSI cookie" +- Revert "iommu/smmuv3: Nested mode single MSI doorbell per domain enforcement" +- Revert "iommu/smmuv3: Enforce incompatibility between nested mode and HW MSI regions" +- Revert "iommu/smmuv3: Implement bind/unbind_guest_msi" +- Revert "iommu/smmuv3: report additional recoverable faults" +- Revert "vfio: VFIO_IOMMU_SET_PASID_TABLE" +- Revert "vfio: VFIO_IOMMU_CACHE_INVALIDATE" +- Revert "vfio: VFIO_IOMMU_SET_MSI_BINDING" +- Revert "vfio/pci: Add VFIO_REGION_TYPE_NESTED region type" +- Revert "vfio/pci: Register an iommu fault handler" +- Revert "vfio/pci: Allow to mmap the fault queue" +- Revert "vfio: Use capability chains to handle device specific irq" +- Revert "vfio/pci: Add framework for custom interrupt indices" +- Revert "vfio: Add new IRQ for DMA fault reporting" +- Revert "vfio/pci: Register and allow DMA FAULT IRQ signaling" +- Revert "vfio: Document nested stage control" +- Revert "vfio/pci: Register a DMA fault response region" +- Revert "vfio/pci: Inject page response upon response region fill" +- Revert "iommu/arm-smmu-v3: Using HTTU with SMMU STE and stage 2 TTD" +- Revert "iommu/io-pgtable-arm: Make data access permissions of stage1/2 compatible" +- Revert "iommu/io-pgtable-arm: Remove the limitation on the page table format of sync/clear_dirty_log()" +- Revert "iommu/arm-smmu-v3: Change the TLBI CMD in arm_smmu_cache_invalidate()" +- Revert "iommu/arm-smmu-v3: Align invalid range with leaf page size upwards when support RIL" +- Revert "iommu/arm-smmu-v3: Standardize granule size when support RIL" +- Revert "iommu/arm-smmu-v3: Remove the redundant shift operation of 'size'" +- Revert "iommu: fix build error when CONFIG_IOMMU_API is off" +- Revert "vfio/pci: Fix wrong return value when get iommu attribute DOMAIN_ATTR_NESTING" +- Revert "iommu/smmuv3: Remove the S1 mapping restriction of dirty log" +- RDMA/hns: Fixes concurrent ressetting and post_recv in DCA mode +- RDMA/hns: Optimize user DCA perfermance by sharing DCA status +- RDMA/hns: Add debugfs support for DCA +- RDMA/hns: Add DCA support for kernel space +- RDMA/hns: Add method to query WQE buffer's address +- RDMA/hns: Add method to detach WQE buffer +- RDMA/hns: Setup the configuration of WQE addressing to QPC +- RDMA/hns: Add method for attaching WQE buffer +- RDMA/hns: Configure DCA mode for the userspace QP +- RDMA/hns: Add method for shrinking DCA memory pool +- RDMA/hns: Introduce DCA for RC QP +- net: hns3: add vf fault process in hns3 ras +- net: hns3: add hns3 vf fault detect cap bit support +- net: hns3: support debugfs for wake on lan +- net: hns3: support wake on lan configuration and query +- dm: Fix UAF in run_timer_softirq() +- livepatch/ppc64: Fix preemption check when enabling +- livepatch: Avoid CPU hogging with cond_resched +- livepatch: Fix several code style issues +- livepatch/x86: Avoid conflict with static {call,key} +- livepatch/core: Restrict minimum size of function that can be patched +- livepatch/x86: Rename old_code to old_insns +- livepatch: Fix patching functions which have static_call +- dm-thin: Resume failed in FAIL mode +- dm: fix null pointer dereference in dev_create() +- ARM: 9160/1: NOMMU: Reload __secondary_data after PROCINFO_INITFUNC +- ARM: 9059/1: cache-v7: get rid of mini-stack +- ARM: 9058/1: cache-v7: refactor v7_invalidate_l1 to avoid clobbering r5/r6 +- KVM: arm64: Implement the capability of DVMBM +- KVM: arm64: Add kvm_arch::dvm_cpumask and dvm_lock +- KVM: arm64: Add kvm_vcpu_arch::cpus_ptr and pre_cpus_ptr +- KVM: arm64: Probe and configure DVMBM capability on HiSi CPUs +- KVM: arm64: Support a new HiSi CPU type +- mm: hugetlb: fix UAF in hugetlb_handle_userfault +- mm/memory: add non-anonymous page check in the copy_present_page() +- net: hns3: refactor the debugfs for dumping FD tcam +- net: hns3: PF supports to set and query lane_num by sysfs +- net: hns3: allocate fd counter for queue bonding +- net: hns3: add queue bonding mode support for VF +- net: hns3: add support for queue bonding mode of flow director +- net: hns3: refine the handling for VF heartbeat +- mpi: Fix length check in mpi_key_length() +- Revert "posix-cpu-timers: Make timespec to nsec conversion safe" +- ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 +- bpf, sockmap: fix sk_rmem_alloc underflow for sockmap +- sched/fair:ARM64 enables SIS_UTIL and disables SIS_PROP +- sched/fair: Fix kabi borken in sched_domain_shared +- sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg +- block: check flags of claimed slave bdev to fix uaf for bd_holder_dir +- pinctrl: core: Set ret to 0 when group is skipped +- pinctrl: core: Handling pinmux and pinconf separately +- blk-mq: fix null pointer dereference in blk_mq_clear_rq_mapping() +- blk-wbt: fix that 'rwb->wc' is always set to 1 in wbt_init() +- blk-wbt: call rq_qos_add() after wb_normal is initialized +- block: wbt: Remove unnecessary invoking of wbt_update_limits in wbt_init +- blk-mq: fix missing blk_account_io_done() in error path +- crypto: hisilicon/qm - delete redundancy check +- crypto: hisilicon/qm - add pci bdf number check +- crypto: hisilicon/qm - increase the memory of local variables +- crypto: hisilicon/qm - re-enable communicate interrupt before notifying PF +- crypto: hisilicon/sec - enabling clock gating of the address prefetch module +- crypto: hisilicon/qm - fix incorrect parameters usage +- crypto: hisilicon/qm - drop unnecessary IS_ENABLE(CONFIG_NUMA) check +- crypto: hisilicon/hpre - fix resource leak in remove process +- crypto: hisilicon/qm - fix the qos value initialization +- !216 AMD: Add CONFIG_PERF_EVENTS_AMD_BRS=y to openeuler_defconfig +- kabi: Fix kabi breakage caused by new member added to struct perf_sample_data. +- perf/uapi: Define PERF_MEM_SNOOPX_PEER in kernel header file +- perf/x86/amd: Support PERF_SAMPLE_PHY_ADDR +- perf/x86/amd: Support PERF_SAMPLE_ADDR +- perf/x86/amd: Support PERF_SAMPLE_{WEIGHT|WEIGHT_STRUCT} +- perf/x86/amd: Support PERF_SAMPLE_DATA_SRC +- perf/x86/amd: Add IBS OP_DATA2 DataSrc bit definitions +- perf/mem: Introduce PERF_MEM_LVLNUM_{EXTN_MEM|IO} +- perf: Add sample_flags to indicate the PMU-filled sample data +- perf: Add new macros for mem_hops field +- perf: Add mem_hops field in perf_mem_data_src structure +- perf/x86/ibs: Add new IBS register bits into header +- perf/amd/uncore: Allow the driver to be built as a module +- perf/x86/amd/uncore: Add PerfMonV2 RDPMC assignments +- perf/x86/amd/uncore: Add PerfMonV2 DF event format +- perf/x86/amd/uncore: Detect available DF counters +- perf/x86/amd/uncore: Use attr_update for format attributes +- perf/x86/amd/uncore: Use dynamic events array +- !201 AMD: Add Perfmonv2/IBS/BRS features for AMD EPYC platforms +- !265 Add LoongArch support +- openEuler: add openEuler/MAINTAINERS for Maintainers & Committers +- !250 add UPROBE_ALTER_PC flag for uprobe mechanism +- !268 [OLK-5.10]perf arm64 metricgroup support and some bugfix +- !282 Synchronize the code of mainline perf tool and support the parsing of TRBE trace data +- !283 [OLK-5.10] Add debug print of 64G link speed +- kabi: test fix kabi for enum bpf_prog_type and bpf_attach_type +- openeuler_defconfig: enable CONFIG_BPF_SCHED for x86 +- sched: programmable: Add lib for sched programmable +- sched: programmable: Add three hooks in select_task_rq_fair() +- sched: programmable: add bpf hooks to update rq and task state in enqueue_task/deqeue_task of CFS +- sched: programmable: Add hook for pick next task +- sched: cfs: add bpf hooks to control wakeup and tick preemption +- bpf:programmable: Add helper func to check cpu share cache +- bpf:programmable: Add cpumask ops collection +- sched: programmable: Add convenient helper functions to convert sched entity +- sched: programmable: Add helper function for cpu topology. +- LoongArch: defconfig: Set CONFIG_TXGBE=m by default +- LS7A2000 : Add quirk for OHCI device rev 0x02 +- stmmac: pci: Add dwmac support for Loongson +- uprobe: add UPROBE_ALTER_PC flag for uprobe +- kabi: Fix kabi breakage caused by commit d5616bac7ada. +- !276 support set/get VxLAN rule of rx flow director by ethtool +- !215 cgroupv1使能cgroup writeback的功能 +- !222 vdpa: add two ioctl commands to support generic vDPA +- qla2xxx: add debug print of 64G link speed +- perf cs-etm: Fix corrupt inject files when only last branch option is enabled +- perf cs-etm: No-op refactor of synth opt usage +- perf cs-etm: Update deduction of TRCCONFIGR register for branch broadcast +- perf cs-etm: Remove duplicate and incorrect aux size checks +- perf cs-etm: Print size using consistent format +- perf cs-etm: Show a warning for an unknown magic number +- perf cs-etm: Print the decoder name +- perf cs-etm: Create ETE decoder +- perf cs-etm: Update OpenCSD decoder for ETE +- perf cs-etm: Fix typo +- perf cs-etm: Save TRCDEVARCH register +- perf cs-etm: Refactor out ETMv4 header saving +- perf cs-etm: Initialise architecture based on TRCIDR1 +- perf cs-etm: Refactor initialisation of decoder params. +- perf cs-etm: Add warnings for missing DSOs +- perf cs-etm: Improve Coresight zero timestamp warning +- perf annotate: Add disassembly warnings for annotate --stdio +- perf annotate: Re-add annotate_warned functionality +- perf tools: Add WARN_ONCE equivalent for UI warnings +- perf tools: Add flag for tracking warnings of missing DSOs +- perf cs-etm: Pass unformatted flag to decoder +- perf cs-etm: Use existing decoder instead of resetting it +- perf cs-etm: Suppress printing when resetting decoder +- perf cs-etm: Only setup queues when they are modified +- perf cs-etm: Split setup and timestamp search functions +- perf cs-etm: Refactor initialisation of kernel start address +- tools headers UAPI: Sync perf_event.h with the kernel sources +- perf cs-etm: Split --dump-raw-trace by AUX records +- perf cs-etm: Split Coresight decode by aux records +- perf cs-etm: Delay decode of non-timeless data until cs_etm__flush_events() +- perf cs-etm: Remove callback cs_etm_find_snapshot() +- perf cs-etm: Prevent and warn on underflows during timestamp calculation. +- perf cs-etm: Start reading 'Z' --itrace option +- perf cs-etm: Move synth_opts initialisation +- perf auxtrace: Add Z itrace option for timeless decoding +- perf cs-etm: Set time on synthesised samples to preserve ordering +- perf cs-etm: Refactor timestamp variable names +- perf cs-etm: Detect pid in VMID for kernel running at EL2 +- perf cs-etm: Add helper cs_etm__get_pid_fmt() +- perf cs-etm: Support PID tracing in config +- perf cs-etm: Fix bitmap for option +- perf cs-etm: Update ETM metadata format +- vdpa: clean up get_config_size ret value handling +- vdpa/mlx5: Fix clearing of VIRTIO_NET_F_MAC feature bit +- vdpa: Consider device id larger than 31 +- vdpa: fix use-after-free on vp_vdpa_remove +- virtio: always enter drivers/virtio/ +- vp_vdpa: Fix return value check for vdpa_alloc_device() +- virtio_pci_modern: correct sparse tags for notify +- virtio_pci_modern: __force cast the notify mapping +- vp_vdpa: allow set vq state to initial state after reset +- virtio-pci library: introduce vp_modern_get_driver_features() +- vdpa: support packed virtqueue for set/get_vq_state() +- vp_vdpa: add vq irq offloading support +- vdpa: Add reset callback in vdpa_config_ops +- vp_vdpa: report doorbell address +- virtio-pci library: report resource address +- vp_vdpa: switch to use vp_modern_map_vq_notify() +- virtio-pci library: switch to use vp_modern_map_vq_notify() +- virtio_pci_modern: introduce helper to map vq notify area +- vhost/vdpa: use get_config_size callback in vhost_vdpa_config_validate() +- vdpa: add driver_override support +- vdpa_sim_blk: add support for vdpa management tool +- vdpa_sim_net: Add support for user supported devices +- vdpa_sim: make vdpasim->buffer size configurable +- vdpa: add vdpa simulator for block device +- vdpa: split vdpasim to core and net modules +- vdpa: set the virtqueue num during register +- vdpa_sim: add supported_features field in vdpasim_dev_attr +- vdpa_sim: add set_config callback in vdpasim_dev_attr +- vdpa_sim: add work_fn in vdpasim_dev_attr +- vdpa_sim: add device id field in vdpasim_dev_attr +- vdpa_sim: split vdpasim_virtqueue's iov field in out_iov and in_iov +- vdpa: remove unnecessary 'default n' in Kconfig entries +- vdpa: Enable user to query vdpa device info +- virtio-pci: introduce modern device module +- virito-pci-modern: rename map_capability() to vp_modern_map_capability() +- virtio-pci-modern: introduce helper to get notification offset +- virtio-pci-modern: introduce helper for getting queue nums +- virtio-pci-modern: introduce helper for setting/geting queue size +- virtio-pci-modern: introduce helper to set/get queue_enable +- virtio-pci-modern: introduce vp_modern_queue_address() +- virtio-pci-modern: introduce vp_modern_set_queue_vector() +- net: hns3: support set/get VxLAN rule of rx flow director by ethtool +- net: ethtool: add VxLAN to the NFC API +- bpf: sched: Add helper functions to get cpu statistics +- sched: programmable: Add helpers to set tag of task or task_group +- sched: programmable: add bpf_sched_task_tag_of helper function +- sched: programmable: add bpf_sched_tg_tag_of helper function +- sched: programmable: Add user interface of task tag +- sched: programmable: Add user interface of task group tag +- sched: programmable: Add a tag for the task group +- sched: programmable: Add a tag for the task +- bpftool: recognize scheduler programs +- libbpf: add support for scheduler bpf programs +- bpf: sched: introduce bpf_sched_enable() +- bpf: sched: basic infrastructure for scheduler bpf +- perf vendor events arm64: Fix incorrect Hisi hip08 L3 metrics +- cgroup: support cgroup writeback on cgroupv1 +- cgroup: Add cgroup1_get_from_id() +- mm/page_alloc.c: add sysctl to revise the batch and high of percpu pageset +- mm/zswap: remove _init in the initialization +- mm/zswap: delay the initializaton of zswap until the first enablement +- mm/zswap: replace zswap_init_{started/failed} with zswap_init_state +- perf pmu: Add pmu_events_map__find() function to find the common PMU map for the system +- perf test: Handle metric reuse in pmu-events parsing test +- perf metricgroup: Make find_metric() public with name change +- perf vendor events arm64: Add Hisi hip08 L3 metrics +- perf vendor events arm64: Add Hisi hip08 L2 metrics +- perf vendor events arm64: Add Hisi hip08 L1 metrics +- LoongArch: hugepage table replace tlb +- LoongArch: change global registers to local registers +- LoongArch: Old BPI compatibility +- LoongArch: add kernel setvirtmap for runtime +- LoongArch: enable some netfilter related configs +- LoongArch: defconfig: use make defconfig to save a clean defconfig +- tools perf: Fix compilation error with new binutils +- tools include: add dis-asm-compat.h to handle version differences +- tools build: Don't display disassembler-four-args feature test +- tools build: Add feature test for init_disassemble_info API changes +- LoongArch: Support R_LARCH_GOT_PC_{LO12,HI20} in modules +- LoongArch: Support PC-relative relocations in modules +- LoongArch: Define ELF relocation types added in v2.00 ABI +- LoongArch: Adjust symbol addressing for AS_HAS_EXPLICIT_RELOCS +- LoongArch: Add Kconfig option AS_HAS_EXPLICIT_RELOCS +- irqchip/loongson-liointc: Fix an error handling path in liointc_init() +- irqchip/loongarch: Fix irq_domain_alloc_fwnode() abuse +- irqchip/loongson-eiointc: Fix a build warning +- irqchip/loongson-eiointc: Fix irq affinity setting +- irqchip: Adjust Kconfig for Loongson +- PCI: Add quirk for LS7A to avoid reboot failure +- PCI: loongson: Improve the MRRS quirk for LS7A +- PCI: loongson: Work around LS7A incorrect Interrupt Pin registers +- PCI: loongson: Don't access non-existent devices +- PCI: loongson: Add ACPI init support +- PCI: loongson: Use generic 8/16/32-bit config ops on LS2K/LS7A +- irqchip / ACPI: Introduce ACPI_IRQ_MODEL_LPIC for LoongArch +- ACPI: irq: Allow acpi_gsi_to_irq() to have an arch-specific fallback +- APCI: irq: Add support for multiple GSI domains +- drm/radeon: Workaround radeon driver bug for Loongson +- LoongArch: Add writecombine support for drm +- Input: i8042 - Add PNP checking hook for Loongson +- LoongArch: Add qspinlock support +- LoongArch: Add perf events support +- LoongArch: Add SysRq-x (TLB Dump) support +- LoongArch: Use TLB for ioremap() +- LoongArch: Enable ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP +- LoongArch: Add sparse memory vmemmap support +- MIPS&LoongArch&NIOS2: Adjust prototypes of p?d_init() +- irqchip/loongson-pch-lpc: Add suspend/resume support +- irqchip/loongson-pch-pic: Add suspend/resume support +- irqchip/loongson-eiointc: Add suspend/resume support +- irqchip/loongson-htvec: Add suspend/resume support +- irqchip/loongson-htvec: Add ACPI init support +- ACPI / table: Print CORE_PIC information when MADT is parsed +- ACPICA: Events: Support fixed pcie wake event +- ACPICA: MADT: Add LoongArch APICs support +- ACPI: Add LoongArch support for ACPI_PROCESSOR/ACPI_NUMA +- Revert "LoongArch: Provisionally add ACPICA data structures" +- loongarch: efi: enable generic EFI compressed boot +- efi/libstub: implement generic EFI zboot +- efi/libstub: use EFI provided memcpy/memset routines +- efi/libstub: add some missing EFI prototypes +- efi/loongarch: Add efistub booting support +- irqchip: Select downstream irqchip drivers for LoongArch CPU +- LoongArch: Add subword xchg/cmpxchg emulation +- LoongArch: Cleanup headers to avoid circular dependency +- LoongArch: Cleanup reset routines with new API +- LoongArch: Fix build warnings in VDSO +- LoongArch: Select PCI_QUIRKS to avoid build error +- LoongArch: Update Loongson-3 default config file +- LoongArch: Add USER_STACKTRACE support +- LoongArch: Add STACKTRACE support +- LoongArch: Add prologue unwinder support +- LoongArch: Add guess unwinder support +- LoongArch: Add vDSO syscall __vdso_getcpu() +- LoongArch: Add PCI controller support +- LoongArch: Parse MADT to get multi-processor information +- LoongArch: Jump to the link address before enable PG +- LoongArch: Requires __force attributes for any casts +- LoongArch: Fix unsigned comparison with less than zero +- LoongArch: Adjust arch/loongarch/Kconfig +- LoongArch: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK +- irqchip/loongson-pch-pic: Move find_pch_pic() into CONFIG_ACPI +- LoongArch: Fix wrong "ROM Size" of boardinfo +- LoongArch: Fix missing fcsr in ptrace's fpr_set +- LoongArch: Fix shared cache size calculation +- LoongArch: Disable executable stack by default +- LoongArch: Remove unused variables +- LoongArch: Remove clock setting during cpu hotplug stage +- LoongArch: Remove useless header compiler.h +- LoongArch: Remove several syntactic sugar macros for branches +- LoongArch: Re-tab the assembly files +- LoongArch: Simplify "BGT foo, zero" with BGTZ +- LoongArch: Simplify "BLT foo, zero" with BLTZ +- LoongArch: Simplify "BEQ/BNE foo, zero" with BEQZ/BNEZ +- LoongArch: Use the "move" pseudo-instruction where applicable +- LoongArch: Use the "jr" pseudo-instruction where applicable +- LoongArch: Use ABI names of registers where appropriate +- irqchip: Add LoongArch CPU interrupt controller support +- LoongArch: fix kabi change due to enum chuph_state +- irqchip: Add Loongson Extended I/O interrupt controller support +- irqchip/loongson-liointc: Add ACPI init support +- irqchip/loongson-pch-msi: Add ACPI init support +- irqchip/loongson-pch-pic: Add ACPI init support +- irqchip: Add Loongson PCH LPC controller support +- LoongArch: Prepare to support multiple pch-pic and pch-msi irqdomain +- LoongArch: Use ACPI_GENERIC_GSI for gsi handling +- LoongArch: Provisionally add ACPICA data structures +- loongarch: drop definition of PGD_ORDER +- loongarch: drop definition of PUD_ORDER +- loongarch: drop definition of PMD_ORDER +- loongarch: drop definition of PTE_ORDER +- LoongArch: Fix section mismatch warning +- LoongArch: Fix build errors for tinyconfig +- LoongArch: Remove obsolete mentions of vcsr +- LoongArch: Drop these obsolete selects in Kconfig +- efi: Simplify arch_efi_call_virt() macro +- LoongArch: Make compute_return_era() return void +- LoongArch: Fix wrong fpu version +- LoongArch: Fix EENTRY/MERRENTRY setting in setup_tlb_handler() +- LoongArch: Fix sleeping in atomic context in setup_tlb_handler() +- LoongArch: Fix the _stext symbol address +- LoongArch: Fix the !THP build +- LoongArch: vmlinux.lds.S: Add missing ELF_DETAILS +- LoongArch: Remove MIPS comment about cycle counter +- LoongArch: Fix the !CONFIG_SMP build +- LoongArch: Add Loongson-3 default config file +- LoongArch: Add Non-Uniform Memory Access (NUMA) support +- LoongArch: Add multi-processor (SMP) support +- LoongArch: Add VDSO and VSYSCALL support +- LoongArch: Add some library functions +- LoongArch: Add misc common routines +- LoongArch: Add ELF and module support +- LoongArch: Add signal handling support +- LoongArch: Add system call support +- LoongArch: Add memory management +- LoongArch: Add process management +- LoongArch: Add exception/interrupt handling +- LoongArch: Add boot and setup routines +- LoongArch: Add other common headers +- LoongArch: Add atomic/locking headers +- LoongArch: Add CPU definition headers +- LoongArch: Add ELF-related definitions +- LoongArch: Add build infrastructure +- fbdev: Prevent probing generic drivers if a FB is already registered +- serial: 8250_pnp: Support configurable clock frequency +- genirq/generic_chip: Export irq_unmap_generic_chip +- mm/swapops: make is_pmd_migration_entry more strict +- initramfs: Provide a common initrd reserve function +- initrd: Add the preprocessor guard in initrd.h +- x86/cpufeatures: Fix abi breakage caused by NCAPINTS in cpufeature header file. +- perf/amd/ibs: Advertise zen4_ibs_extensions as pmu capability attribute +- perf/amd/ibs: Add support for L3 miss filtering +- perf/amd/ibs: Use ->is_visible callback for dynamic attributes +- perf/x86/amd/ibs: Add bitfield definitions in new header +- perf/x86/amd/core: Fix reloading events for SVM +- perf/x86/amd/core: Add PerfMonV2 overflow handling +- perf/x86/amd/core: Add PerfMonV2 counter control +- perf/x86/amd/core: Detect available counters +- perf/x86/amd/core: Detect PerfMonV2 support +- x86/msr: Add PerfCntrGlobal* registers +- x86/cpufeatures: Add PerfMonV2 feature bit +- perf/x86/amd: Add idle hooks for branch sampling +- ACPI: Add perf low power callback +- perf/x86/amd: Make Zen3 branch sampling opt-in +- perf/x86/amd: Add AMD branch sampling period adjustment +- perf/x86/amd: Enable branch sampling priv level filtering +- perf/x86/amd: Add branch-brs helper event for Fam19h BRS +- perf/x86/amd: Add AMD Fam19h Branch Sampling support +- x86/cpufeatures: Add AMD Fam19h Branch Sampling feature +- perf/core: Add perf_clear_branch_entry_bitfields() helper +- x86/cpufeatures: Assign dedicated feature word for CPUID_0x8000001F[EAX] +- x86/cpu: Add VM page flush MSR availablility as a CPUID feature +- virtio-pci-modern: introduce vp_modern_generation() +- virtio-pci-modern: introduce helpers for setting and getting features +- virtio-pci-modern: introduce helpers for setting and getting status +- virtio-pci-modern: introduce helper to set config vector +- virtio-pci-modern: introduce vp_modern_remove() +- virtio-pci-modern: factor out modern device initialization logic +- virtio-pci: split out modern device +- virtio-pci: do not access iomem via struct virtio_pci_device directly +- vdpa: support exposing the count of vqs to userspace +- vdpa: Enable a user to add and delete a vdpa device +- vdpa: Add missing comment for virtqueue count +- vdpa: Define vdpa mgmt device, ops and a netlink interface +- vdpa: Extend routine to accept vdpa device name +- vdpa: support exposing the config size to userspace +- vdpa: add get_config_size callback in vdpa_config_ops +- vdpa: introduce virtio pci driver +- add CONFIG_PERF_EVENTS_AMD_BRS=y to openeuler_defconfig + +* Sat Nov 26 2022 Zheng Zengkai - 5.10.0-129.0.0.69 +- !275 Intel Advanced Matrix Extensions (AMX) - KVM support +- !227 Intel SPR: Enable Intel SPR features in default kernel config for OLK-5.10 +- !223 SPR: IDXD driver (on top of OLK-5.10) - DSA/IAA incremental backporting patches until upstream 6.1 +- openeuler_defconfig: Enable configs for Intel IDXD driver +- sched: Fix kABI for task->pasid_activated +- x86/fpu: Fix KABI broken caused by introducing of guest permissions in struct fpu +- KVM: x86: Use ERR_PTR_USR() to return -EFAULT as a __user pointer +- selftests: kvm: check dynamic bits against KVM_X86_XCOMP_GUEST_SUPP +- KVM: x86: add system attribute to retrieve full set of supported xsave states +- KVM: x86: Add a helper to retrieve userspace address from kvm_device_attr +- KVM: x86/cpuid: Exclude unpermitted xfeatures sizes at KVM_GET_SUPPORTED_CPUID +- tools headers UAPI: Sync x86 arch prctl headers with the kernel sources +- tools headers UAPI: Sync arch prctl headers with the kernel sources +- tools arch x86: Sync the msr-index.h copy with the kernel sources +- tools: Move x86 syscall number fallbacks to .../uapi/ +- selftests: kvm: move vm_xsave_req_perm call to amx_test +- KVM: x86/cpuid: Clear XFD for component i if the base feature is missing +- selftest: kvm: Add amx selftest +- selftest: kvm: Move struct kvm_x86_state to header +- selftest: kvm: Reorder vcpu_load_state steps for AMX +- x86/fpu: Fix inline prefix warnings +- kvm: x86: Disable interception for IA32_XFD on demand +- x86/fpu: Provide fpu_sync_guest_vmexit_xfd_state() +- kvm: selftests: Add support for KVM_CAP_XSAVE2 +- kvm: x86: Add support for getting/setting expanded xstate buffer +- x86/fpu: Add uabi_size to guest_fpu +- kvm: x86: Add CPUID support for Intel AMX +- kvm: x86: Add XCR0 support for Intel AMX +- kvm: x86: Disable RDMSR interception of IA32_XFD_ERR +- kvm: x86: Emulate IA32_XFD_ERR for guest +- kvm: x86: Intercept #NM for saving IA32_XFD_ERR +- x86/fpu: Prepare xfd_err in struct fpu_guest +- kvm: x86: Add emulation for IA32_XFD +- x86/fpu: Provide fpu_update_guest_xfd() for IA32_XFD emulation +- kvm: x86: Enable dynamic xfeatures at KVM_SET_CPUID2 +- x86/fpu: Provide fpu_enable_guest_xfd_features() for KVM +- x86/fpu: Add guest support to xfd_enable_feature() +- x86/fpu: Make XFD initialization in __fpstate_reset() a function argument +- kvm: x86: Exclude unpermitted xfeatures at KVM_GET_SUPPORTED_CPUID +- kvm: x86: Fix xstate_required_size() to follow XSTATE alignment rule +- x86/fpu: Prepare guest FPU for dynamically enabled FPU features +- x86/fpu: Extend fpu_xstate_prctl() with guest permissions +- dmaengine: idxd: Fix kABI for IDXD perfmon cpu hot plug state +- dmaengine: idxd: Remove linux/msi.h include +- dmaengine: idxd: Fix crc_val field for completion record +- dmaengine: idxd: Make read buffer sysfs attributes invisible for Intel IAA +- dmaengine: idxd: Make max batch size attributes in sysfs invisible for Intel IAA +- dmaengine: idxd: fix RO device state error after been disabled/reset +- dmaengine: idxd: Fix max batch size for Intel IAA +- dmaengine: idxd: Do not enable user type Work Queue without Shared Virtual Addressing +- dmaengine: idxd: add configuration for concurrent batch descriptor processing +- dmaengine: idxd: add configuration for concurrent work descriptor processing +- dmaengine: idxd: add WQ operation cap restriction support +- dmanegine: idxd: reformat opcap output to match bitmap_parse() input +- dmaengine: idxd: convert ats_dis to a wq flag +- dmaengine: idxd: Remove unused struct idxd_fault +- dmaengine: idxd: track enabled workqueues in bitmap +- lib: bitmap: Introduce node-aware alloc API +- dmaengine: idxd: Set wq state to disabled in idxd_wq_disable_cleanup() +- dmaengine: idxd: avoid deadlock in process_misc_interrupts() +- dmaengine: idxd: Correct IAX operation code names +- MAINTAINERS: idxd driver maintainer update +- dmaengine: idxd: Only call idxd_enable_system_pasid() if succeeded in enabling SVA feature +- dmaengine: idxd: force wq context cleanup on device disable path +- dmaengine: idxd: make idxd_wq_enable() return 0 if wq is already enabled +- dmaengine: idxd: Remove unnecessary synchronize_irq() before free_irq() +- dmaengine: idxd: skip irq free when wq type is not kernel +- dmaengine: idxd: make idxd_register/unregister_dma_channel() static +- dmaengine: idxd: free irq before wq type is reset +- dmaengine: idxd: fix lockdep warning on device driver removal +- dmaengine: idxd: Separate user and kernel pasid enabling +- dmaengine: idxd: refactor wq driver enable/disable operations +- dmaengine: idxd: move wq irq enabling to after device enable +- dmaengine: idxd: set max_xfer and max_batch for RO device +- dmaengine: idxd: update IAA definitions for user header +- dmaengine: idxd: remove trailing white space on input str for wq name +- dmaengine: idxd: don't load pasid config until needed +- dmaengine: idxd: skip clearing device context when device is read-only +- dmaengine: idxd: fix retry value to be constant for duration of function call +- dmaengine: idxd: match type for retries var in idxd_enqcmds() +- dmaengine: idxd: fix device cleanup on disable +- dmaengine: idxd: Remove useless DMA-32 fallback configuration +- dmaengine: idxd: restore traffic class defaults after wq reset +- Documentation/x86: Update documentation for SVA (Shared Virtual Addressing) +- tools/objtool: Check for use of the ENQCMD instruction in the kernel +- x86/cpufeatures: Re-enable ENQCMD +- x86/traps: Demand-populate PASID MSR via #GP +- sched: Define and initialize a flag to identify valid PASID in the task +- x86/fpu: Clear PASID when copying fpstate +- iommu/sva: Assign a PASID to mm on PASID allocation and free it on mm exit +- kernel/fork: Initialize mm's PASID +- iommu/ioasid: Introduce a helper to check for valid PASIDs +- mm: Change CONFIG option for mm->pasid field +- iommu/sva: Rename CONFIG_IOMMU_SVA_LIB to CONFIG_IOMMU_SVA +- iommu/vt-d: Clean up unused PASID updating functions +- iommu/vt-d: Fix PASID leak in intel_svm_unbind_mm() +- iommu/vt-d: Fix PASID reference leak +- iommu/vt-d: Use iommu_sva_alloc(free)_pasid() helpers +- iommu/vt-d: Add pasid private data helpers +- iommu/vt-d: Remove SVM_FLAG_PRIVATE_PASID +- iommu/vt-d: Remove svm_dev_ops +- iommu/vt-d: Disable SVM when ATS/PRI/PASID are not enabled in the device +- dmaengine: idxd: deprecate token sysfs attributes for read buffers +- dmaengine: idxd: change bandwidth token to read buffers +- dmaengine: idxd: fix wq settings post wq disable +- dmaengine: idxd: change MSIX allocation based on per wq activation +- dmaengine: idxd: fix descriptor flushing locking +- dmaengine: idxd: embed irq_entry in idxd_wq struct +- dmaengine: idxd: add knob for enqcmds retries +- dmaengine: idxd: set defaults for wq configs +- dmaengine: idxd: handle interrupt handle revoked event +- dmaengine: idxd: handle invalid interrupt handle descriptors +- dmaengine: idxd: create locked version of idxd_quiesce() call +- dmaengine: idxd: add helper for per interrupt handle drain +- dmaengine: idxd: move interrupt handle assignment +- dmaengine: idxd: int handle management refactoring +- dmaengine: idxd: rework descriptor free path on failure +- dmaengine: idxd: fix missed completion on abort path +- dmaengine: idxd: fix calling wq quiesce inside spinlock +- dmaengine: idxd: fix resource leak on dmaengine driver disable +- dmaengine: idxd: cleanup completion record allocation +- dmaengine: idxd: reconfig device after device reset command +- dmaengine: idxd: add halt interrupt support +- dmaengine: idxd: Use list_move_tail instead of list_del/list_add_tail +- dmanegine: idxd: fix resource free ordering on driver removal +- dmaengine: idxd: remove kernel wq type set when load configuration +- dmaengine: idxd: remove gen cap field per spec 1.2 update +- dmaengine: idxd: check GENCAP config support for gencfg register +- dmaengine: idxd: move out percpu_ref_exit() to ensure it's outside submission +- dmaengine: idxd: remove interrupt disable for dev_lock +- dmaengine: idxd: remove interrupt disable for cmd_lock +- dmaengine: idxd: fix setting up priv mode for dwq +- dmaengine: idxd: set descriptor allocation size to threshold for swq +- dmaengine: idxd: make submit failure path consistent on desc freeing +- dmaengine: idxd: remove interrupt flag for completion list spinlock +- dmaengine: idxd: make I/O interrupt handler one shot +- dmaengine: idxd: clear block on fault flag when clear wq +- dmaengine: idxd: add capability check for 'block on fault' attribute +- dmaengine: idxd: Remove unused status variable in irq_process_work_list() +- dmaengine: idxd: Fix a possible NULL pointer dereference +- dmaengine: idxd: fix abort status check +- dmanegine: idxd: add software command status +- dmaengine: idxd: rotate portal address for better performance +- dmaengine: idxd: fix uninit var for alt_drv +- dmaengine: idxd: Set defaults for GRPCFG traffic class +- dmaengine: idxd: remove fault processing code +- dmaengine: idxd: move dsa_drv support to compatible mode +- dmaengine: dsa: move dsa_bus_type out of idxd driver to standalone +- dmaengine: idxd: create user driver for wq 'device' +- dmaengine: idxd: create dmaengine driver for wq 'device' +- dmaengine: idxd: create idxd_device sub-driver +- dmaengine: idxd: add type to driver in order to allow device matching +- dmanegine: idxd: open code the dsa_drv registration +- dmaengine: idxd: idxd: move remove() bits for idxd 'struct device' to device.c +- dmaengine: idxd: move probe() bits for idxd 'struct device' to device.c +- dmaengine: idxd: fix bus_probe() and bus_remove() for dsa_bus +- dmaengine: idxd: remove iax_bus_type prototype +- dmaengine: idxd: remove bus shutdown +- dmaengine: idxd: move wq_disable() to device.c +- dmaengine: idxd: move wq_enable() to device.c +- dmaengine: idxd: remove IDXD_DEV_CONF_READY +- dmaengine: idxd: add 'struct idxd_dev' as wrapper for conf_dev +- dmaengine: idxd: add driver name +- dmaengine: idxd: add driver register helper +- dmaengine: idxd: have command status always set +- dmaengine: idxd: Add wq occupancy information to sysfs attribute +- dmanegine: idxd: cleanup all device related bits after disabling device +- dmaengine: idxd: Simplify code and axe the use of a deprecated API +- dmaengine: idxd: fix submission race window +- dmaengine: idxd: fix sequence for pci driver remove() and shutdown() +- dmaengine: idxd: fix setup sequence for MSIXPERM table +- dmaengine: idxd: assign MSIX vectors to each WQ rather than roundrobin +- dmaengine: idxd: fix array index when int_handles are being used +- dmaengine: idxd: fix desc->vector that isn't being updated +- dmaengine: idxd: add missing percpu ref put on failure +- dmaengine: idxd: Change license on idxd.h to LGPL +- dmaengine: idxd: remove devm allocation for idxd->int_handles +- dmaengine: idxd: Remove redundant variable cdev_ctx +- dmaengine: idxd: Fix missing error code in idxd_cdev_open() +- dmaengine: idxd: Add missing cleanup for early error out in probe call +- dmaengine: idxd: add engine 'struct device' missing bus type assignment +- dmaengine: idxd: Use cpu_feature_enabled() +- dmaengine: idxd: Enable IDXD performance monitor support +- dmaengine: idxd: Add IDXD performance monitor support +- dmaengine: idxd: remove MSIX masking for interrupt handlers +- dmaengine: idxd: device cmd should use dedicated lock +- dmaengine: idxd: support reporting of halt interrupt +- dmaengine: idxd: enable SVA feature for IOMMU +- dmaengine: idxd: convert sprintf() to sysfs_emit() for all usages +- dmaengine: idxd: add interrupt handle request and release support +- dmaengine: idxd: add support for readonly config mode +- dmaengine: idxd: add percpu_ref to descriptor submission path +- dmaengine: idxd: remove detection of device type +- dmaengine: idxd: iax bus removal +- dmaengine: idxd: fix group conf_dev lifetime +- dmaengine: idxd: fix engine conf_dev lifetime +- dmaengine: idxd: fix wq conf_dev 'struct device' lifetime +- dmaengine: idxd: fix idxd conf_dev 'struct device' lifetime +- dmaengine: idxd: use ida for device instance enumeration +- dmaengine: idxd: removal of pcim managed mmio mapping +- dmaengine: idxd: cleanup pci interrupt vector allocation management +- dmaengine: idxd: clear MSIX permission entry on shutdown +- dmaengine: idxd: add module parameter to force disable of SVA +- x86/asm: Annotate movdir64b()'s dst argument with __iomem +- dma: idxd: use DEFINE_MUTEX() for mutex lock +- dmaengine: idxd: Fix list corruption in description completion +- dmaengine: idxd: add IAX configuration support in the IDXD driver +- dmaengine: idxd: add ATS disable knob for work queues +- dmaengine: idxd: define table offset multiplier +- dmaengine: idxd: Update calculation of group offset to be more readable +- dmaengine: idxd: Add ABI documentation for shared wq +- dmaengine: idxd: Clean up descriptors with fault error +- dmaengine: idxd: Add shared workqueue support +- !220 Intel Advanced Matrix Extensions (AMX) support on SPR +- mm: Fix kabi change caused by saved_auxv[] in mm_struct for x86_64 +- !270 Synchronize the coresight code of the Linux mainline to support HiSilicon tracing +- openeuler_defconfig: Enable TRBE and TMC +- drivers/ETM: fix error in invalid cs_id +- coresight: etm4x: Expose trcdevarch via sysfs +- perf cs-etm: Update ARM's CoreSight hardware tracing OpenCSD library to v1.0.0 +- coresight: etm4x: Add support for PE OS lock +- coresight: etm4x: Convert all register accesses +- coresight: etm4x: avoid build failure with unrolled loops +- coresight: trbe: Make sure we have enough space +- coresight: trbe: Allow driver to choose a different alignment +- coresight: trbe: Decouple buffer base from the hardware base +- coresight: trbe: Add a helper to pad a given buffer area +- coresight: trbe: Add a helper to calculate the trace generated +- coresight: trbe: Defer the probe on offline CPUs +- coresight: trbe: Fix incorrect access of the sink specific data +- coresight: trbe: Prohibit trace before disabling TRBE +- coresight: trbe: End the AUX handle on truncation +- coresight: trbe: Do not truncate buffer on IRQ +- coresight: trbe: Fix handling of spurious interrupts +- coresight: trbe: irq handler: Do not disable TRBE if no action is needed +- coresight: trbe: Unify the enabling sequence +- coresight: trbe: Drop duplicate TRUNCATE flags +- coresight: trbe: Ensure the format flag is always set +- coresight: etm-pmu: Ensure the AUX handle is valid +- coresight: etm4x: Use Trace Filtering controls dynamically +- coresight: etm4x: Save restore TRFCR_EL1 +- coresight: etm4x: Move ETM to prohibited region for disable +- coresight: Don't immediately close events that are run on invalid CPU/sink combos +- coresight: tmc-etr: Speed up for bounce buffer in flat mode +- KVM: arm64: Handle access to TRFCR_EL1 +- coresight: sink: Add TRBE driver +- perf: aux: Add flags for the buffer format +- perf: aux: Add CoreSight PMU buffer formats +- arm64: Add support for trace synchronization barrier +- coresight: core: Add support for dedicated percpu sinks +- coresight: etm-perf: Handle stale output handles +- coresight: ete: Add support for ETE tracing +- coresight: ete: Add support for ETE sysreg access +- coresight: Add support for v8.4 SelfHosted tracing +- arm64: Add TRBE definitions +- arm64: Add TRFCR_ELx definitions +- coresight: etm4x: Add support for sysreg only devices +- coresight: etm4x: Refactor probing routine +- coresight: etm4x: Use TRCDEVARCH for component discovery +- coresight: etm4x: Add necessary synchronization for sysreg access +- coresight: etm4x: Detect system instructions support +- coresight: etm4x: Detect access early on the target CPU +- coresight: etm4x: Handle ETM architecture version +- coresight: etm4x: Check for Software Lock +- coresight: etm4x: Define DEVARCH register fields +- coresight: etm4x: Hide sysfs attributes for unavailable registers +- coresight: etm4x: Add sysreg access helpers +- coresight: etm4x: Make offset available for sysfs attributes +- coresight: etm4x: Always read the registers on the host CPU +- coresight: Convert claim/disclaim operations to use access wrappers +- coresight: Convert coresight_timeout to use access abstraction +- coresight: Introduce device access abstraction +- !229 Intel SPR: Adding uncore PMU support and fix uprobes rbtree usage for OLK-5.10 +- !251 [OLK-5.10] arm64: add machine checksafe support +- !54 configs: change the value of NLS_CODEPAGE_437 from m to y +- !255 ksmbd-introduce-new-SMB3-kernel-server +- !262 crypto: enable some SM configs +- arm64: add machine check safe sysctl interface +- arm64: add dump_user_range() to machine check safe +- arm64: introduce copy_mc_to_kernel() implementation +- arm64: add cow to machine check safe +- arm64: get/put_user support machine check safe +- arm64: copy_form/to_user support machine check safe +- arm64: add support for machine check error safe +- arm64: extable: add new extable type "__mc_ex_table" +- uaccess: add generic fallback version of copy_mc_to_user() +- Revert "arm64: config: enable CONFIG_ARM64_UCE_KERNEL_RECOVERY" +- Revert "arm64: ras: copy_from_user scenario support uce kernel recovery" +- x86/fpu: Avoid kabi change caused by struct fpu +- x86: Avoid kabi change caused by adding pkru element in thread_struct +- x86/fpu: Prevent FPU state corruption +- selftests/x86/amx: Update the ARCH_REQ_XCOMP_PERM test +- x86/fpu/xstate: Fix the ARCH_REQ_XCOMP_PERM implementation +- x86/cpufeatures: Put the AMX macros in the word 18 block +- x86/ptrace: Fix xfpregs_set()'s incorrect xmm clearing +- signal: Skip the altstack update when not needed +- x86/fpu/signal: Initialize sw_bytes in save_xstate_epilog() +- x86/fpu: Optimize out sigframe xfeatures when in init state +- Documentation/x86: Add documentation for using dynamic XSTATE features +- selftests/x86/amx: Add context switch test +- selftests/x86/amx: Add test cases for AMX state management +- x86/fpu/amx: Enable the AMX feature in 64-bit mode +- x86/fpu: Add XFD handling for dynamic states +- x86/fpu: Calculate the default sizes independently +- x86/fpu/amx: Define AMX state components and have it used for boot-time checks +- x86/fpu/xstate: Prepare XSAVE feature table for gaps in state component numbers +- x86/fpu/xstate: Add fpstate_realloc()/free() +- x86/fpu/xstate: Add XFD #NM handler +- x86/fpu: Update XFD state where required +- x86/fpu: Add sanity checks for XFD +- x86/fpu: Add XFD state to fpstate +- x86/msr-index: Add MSRs for XFD +- x86/cpufeatures: Add eXtended Feature Disabling (XFD) feature bit +- x86/fpu: Reset permission and fpstate on exec() +- x86/fpu: Prepare fpu_clone() for dynamically enabled features +- x86/fpu/signal: Prepare for variable sigframe length +- x86/signal: Use fpu::__state_user_size for sigalt stack validation +- x86/fpu: Add basic helpers for dynamically enabled features +- x86/arch_prctl: Add controls for dynamic XSTATE components +- x86/fpu: Add fpu_state_config::legacy_features +- x86/fpu: Add members to struct fpu to cache permission information +- x86/fpu/xstate: Provide xstate_calculate_size() +- x86/signal: Implement sigaltstack size validation +- signal: Add an optional check for altstack size +- x86/fpu: Remove old KVM FPU interface +- x86/kvm: Convert FPU handling to a single swap buffer +- x86/fpu: Provide infrastructure for KVM FPU cleanup +- x86/fpu: Prepare for sanitizing KVM FPU code +- x86/fpu/xstate: Move remaining xfeature helpers to core +- x86/fpu: Rework restore_regs_from_fpstate() +- x86/fpu: Mop up xfeatures_mask_uabi() +- x86/fpu: Move xstate feature masks to fpu_*_cfg +- x86/fpu: Move xstate size to fpu_*_cfg +- x86/fpu/xstate: Cleanup size calculations +- x86/fpu: Cleanup fpu__init_system_xstate_size_legacy() +- x86/fpu: Provide struct fpu_config +- x86/fpu/signal: Use fpstate for size and features +- x86/fpu/xstate: Use fpstate for copy_uabi_to_xstate() +- x86/fpu: Use fpstate in __copy_xstate_to_uabi_buf() +- x86/fpu: Use fpstate in fpu_copy_kvm_uabi_to_fpstate() +- x86/fpu/xstate: Use fpstate for xsave_to_user_sigframe() +- x86/fpu/xstate: Use fpstate for os_xsave() +- x86/fpu: Use fpstate::size +- x86/fpu: Add size and mask information to fpstate +- x86/process: Move arch_thread_struct_whitelist() out of line +- x86/fpu: Do not leak fpstate pointer on fork +- x86/fpu: Remove fpu::state +- x86/math-emu: Convert to fpstate +- x86/fpu/core: Convert to fpstate +- x86/fpu/signal: Convert to fpstate +- x86/fpu/regset: Convert to fpstate +- x86/fpu: Convert tracing to fpstate +- x86/KVM: Convert to fpstate +- x86/fpu: Replace KVMs xstate component clearing +- x86/fpu: Convert restore_fpregs_from_fpstate() to struct fpstate +- x86/fpu: Convert fpstate_init() to struct fpstate +- x86/fpu: Provide struct fpstate +- x86/fpu: Replace KVMs home brewed FPU copy to user +- x86/fpu: Provide a proper function for ex_handler_fprestore() +- x86/fpu: Replace the includes of fpu/internal.h +- x86/fpu: Mop up the internal.h leftovers +- x86/sev: Include fpu/xcr.h +- x86/fpu: Remove internal.h dependency from fpu/signal.h +- x86/fpu: Move fpstate functions to api.h +- x86/fpu: Move mxcsr related code to core +- x86/fpu: Move fpregs_restore_userregs() to core +- x86/fpu: Make WARN_ON_FPU() private +- x86/fpu: Move legacy ASM wrappers to core +- x86/fpu: Move os_xsave() and os_xrstor() to core +- x86/fpu: Make os_xrstor_booting() private +- x86/fpu: Clean up CPU feature tests +- x86/fpu: Move context switch and exit to user inlines into sched.h +- x86/fpu: Mark fpu__init_prepare_fx_sw_frame() as __init +- x86/fpu: Rework copy_xstate_to_uabi_buf() +- x86/fpu: Replace KVMs home brewed FPU copy from user +- x86/fpu: Move KVMs FPU swapping to FPU core +- x86/fpu/xstate: Mark all init only functions __init +- x86/fpu/xstate: Provide and use for_each_xfeature() +- x86/fpu: Cleanup xstate xcomp_bv initialization +- x86/fpu: Do not inherit FPU context for kernel and IO worker threads +- x86/process: Clone FPU in copy_thread() +- x86/fpu: Remove pointless memset in fpu_clone() +- x86/fpu: Cleanup the on_boot_cpu clutter +- x86/fpu: Restrict xsaves()/xrstors() to independent states +- x86/pkru: Remove useless include +- x86/fpu: Update stale comments +- x86/fpu: Remove pointless argument from switch_fpu_finish() +- x86/fpu/signal: Fix missed conversion to correct boolean retval in save_xstate_epilog() +- x86/fpu/signal: Change return code of restore_fpregs_from_user() to boolean +- x86/fpu/signal: Change return code of check_xstate_in_sigframe() to boolean +- x86/fpu/signal: Change return type of __fpu_restore_sig() to boolean +- x86/fpu/signal: Change return type of fpu__restore_sig() to boolean +- x86/signal: Change return type of restore_sigcontext() to boolean +- x86/fpu/signal: Change return type of copy_fpregs_to_sigframe() helpers to boolean +- x86/fpu/signal: Change return type of copy_fpstate_to_sigframe() to boolean +- x86/fpu/signal: Move xstate clearing out of copy_fpregs_to_sigframe() +- x86/fpu/signal: Move header zeroing out of xsave_to_user_sigframe() +- x86/fpu/signal: Clarify exception handling in restore_fpregs_from_user() +- x86/fpu: Mask out the invalid MXCSR bits properly +- x86/fpu: Restore the masking out of reserved MXCSR bits +- x86/fpu/xstate: Clear xstate header in copy_xstate_to_uabi_buf() again +- x86/fpu/signal: Let xrstor handle the features to init +- x86/fpu/signal: Handle #PF in the direct restore path +- x86/fpu/signal: Split out the direct restore code +- x86/fpu/signal: Sanitize copy_user_to_fpregs_zeroing() +- x86/fpu/signal: Sanitize the xstate check on sigframe +- x86/fpu/signal: Remove the legacy alignment check +- x86/fpu/signal: Move initial checks into fpu__restore_sig() +- x86/fpu: Mark init_fpstate __ro_after_init +- x86/pkru: Remove xstate fiddling from write_pkru() +- x86/fpu: Don't store PKRU in xstate in fpu_reset_fpstate() +- x86/fpu: Remove PKRU handling from switch_fpu_finish() +- x86/fpu: Mask PKRU from kernel XRSTOR[S] operations +- x86/fpu: Hook up PKRU into ptrace() +- x86/fpu: Add PKRU storage outside of task XSAVE buffer +- x86/fpu: Dont restore PKRU in fpregs_restore_userspace() +- x86/fpu: Rename xfeatures_mask_user() to xfeatures_mask_uabi() +- x86/fpu: Move FXSAVE_LEAK quirk into __copy_kernel_to_fpregs() +- x86/fpu: Rename __fpregs_load_activate() to fpregs_restore_userregs() +- x86/fpu: Clean up the fpu__clear() variants +- x86/fpu: Rename fpu__clear_all() to fpu_flush_thread() +- x86/fpu: Use pkru_write_default() in copy_init_fpstate_to_fpregs() +- x86/cpu: Write the default PKRU value when enabling PKE +- x86/pkru: Provide pkru_write_default() +- x86/pkru: Provide pkru_get_init_value() +- x86/cpu: Sanitize X86_FEATURE_OSPKE +- x86/fpu: Rename and sanitize fpu__save/copy() +- x86/pkeys: Move read_pkru() and write_pkru() +- x86/fpu/xstate: Sanitize handling of independent features +- x86/fpu: Rename "dynamic" XSTATEs to "independent" +- x86/fpu: Rename initstate copy functions +- x86/fpu: Rename copy_kernel_to_fpregs() to restore_fpregs_from_fpstate() +- x86/fpu: Get rid of the FNSAVE optimization +- x86/fpu: Rename copy_fpregs_to_fpstate() to save_fpregs_to_fpstate() +- x86/fpu: Deduplicate copy_uabi_from_user/kernel_to_xstate() +- x86/fpu: Rename xstate copy functions which are related to UABI +- x86/fpu: Rename fregs-related copy functions +- x86/math-emu: Rename frstor() +- x86/fpu: Rename fxregs-related copy functions +- x86/fpu: Rename copy_user_to_xregs() and copy_xregs_to_user() +- x86/fpu: Rename copy_xregs_to_kernel() and copy_kernel_to_xregs() +- x86/fpu: Get rid of copy_supervisor_to_kernel() +- x86/fpu: Cleanup arch_set_user_pkey_access() +- x86/kvm: Avoid looking up PKRU in XSAVE buffer +- x86/fpu: Get rid of using_compacted_format() +- x86/fpu: Move fpu__write_begin() to regset +- x86/fpu/regset: Move fpu__read_begin() into regset +- x86/fpu: Remove fpstate_sanitize_xstate() +- x86/fpu: Use copy_xstate_to_uabi_buf() in fpregs_get() +- x86/fpu: Use copy_xstate_to_uabi_buf() in xfpregs_get() +- x86/fpu: Make copy_xstate_to_kernel() usable for [x]fpregs_get() +- x86/fpu: Clean up fpregs_set() +- x86/fpu: Fail ptrace() requests that try to set invalid MXCSR values +- x86/fpu: Rewrite xfpregs_set() +- x86/fpu: Simplify PTRACE_GETREGS code +- x86/fpu: Reject invalid MXCSR values in copy_kernel_to_xstate() +- x86/fpu: Sanitize xstateregs_set() +- x86/fpu: Move inlines where they belong +- x86/fpu: Remove unused get_xsave_field_ptr() +- x86/fpu: Get rid of fpu__get_supported_xfeatures_mask() +- x86/fpu: Make xfeatures_mask_all __ro_after_init +- x86/fpu: Mark various FPU state variables __ro_after_init +- x86/pkeys: Revert a5eff7259790 ("x86/pkeys: Add PKRU value to init_fpstate") +- Revert "x86/fpu: Correct pkru/xstate inconsistency" +- selftest/x86/signal: Include test cases for validating sigaltstack +- selftest/sigaltstack: Use the AT_MINSIGSTKSZ aux vector if available +- x86/elf: Support a new ELF aux vector AT_MINSIGSTKSZ +- x86/signal: Introduce helpers to get the maximum signal frame size +- uapi/auxvec: Define the aux vector AT_MINSIGSTKSZ +- Enable Intel AMX for default config +- Enable default config for Intel NTB LTR vendor support for gen4 NTB +- Enable Intel SPR HFI support for default config +- Enable Intel PMT support for default config +- Enable SGX virtualization in default config +- vfs: Check the truncate maximum size in inode_newsize_ok() +- ksmbd: add reserved room in ipc request/response +- ksmbd: limits exceeding the maximum allowable outstanding requests +- ksmbd: move credit charge deduction under processing request +- ksmbd: add support for smb2 max credit parameter +- ksmbd: set unique value to volume serial field in FS_VOLUME_INFORMATION +- cifsd: add Kconfig and Makefile +- ksmbd: Fix wrong return value and message length check in smb2_ioctl() +- ksmbd: set NTLMSSP_NEGOTIATE_SEAL flag to challenge blob +- ksmbd: fix encryption failure issue for session logoff response +- ksmbd: fix endless loop when encryption for response fails +- ksmbd: return STATUS_BAD_NETWORK_NAME error status if share is not configured +- ksmbd: prevent out of bound read for SMB2_TREE_CONNNECT +- ksmbd: Fix user namespace mapping +- ksmbd: fix use-after-free bug in smb2_tree_disconect +- ksmbd: fix memory leak in smb2_handle_negotiate +- ksmbd: fix racy issue while destroying session on multichannel +- ksmbd: use vfs_llseek instead of dereferencing NULL +- ksmbd: remove unused ksmbd_share_configs_cleanup function +- ksmbd: fix kernel oops from idr_remove() +- ksmbd: replace sessions list in connection with xarray +- ksmbd: use wait_event instead of schedule_timeout() +- ksmbd: fix incorrect handling of iterate_dir +- ksmbd: handle smb2 query dir request for OutputBufferLength that is too small +- ksmbd: add channel rwlock +- ksmbd: smbd: fix connection dropped issue +- ksmbd: fix reference count leak in smb_check_perm_dacl() +- ksmbd: reduce smb direct max read/write size +- ksmbd: don't align last entry offset in smb2 query directory +- ksmbd: fix same UniqueId for dot and dotdot entries +- ksmbd: smbd: validate buffer descriptor structures +- ksmbd: fix SMB 3.11 posix extension mount failure +- ksmbd: fix guest connection failure with nautilus +- ksmbd: uninitialized variable in create_socket() +- ksmbd: smbd: fix missing client's memory region invalidation +- ksmbd: add smb-direct shutdown +- ksmbd: smbd: change the default maximum read/write, receive size +- ksmbd: smbd: create MR pool +- ksmbd: smbd: call rdma_accept() under CM handler +- ksmbd: set 445 port to smbdirect port by default +- ksmbd: register ksmbd ib client with ib_register_client() +- ksmbd: Fix smb2_get_name() kernel-doc comment +- ksmbd: Fix smb2_set_info_file() kernel-doc comment +- ksmbd: Fix buffer_check_err() kernel-doc comment +- ksmbd: fix multi session connection failure +- ksmbd: set both ipv4 and ipv6 in FSCTL_QUERY_NETWORK_INTERFACE_INFO +- ksmbd: set RSS capable in FSCTL_QUERY_NETWORK_INTERFACE_INFO +- ksmbd: Remove unused fields from ksmbd_file struct definition +- ksmbd: Remove unused parameter from smb2_get_name() +- ksmbd: disable SMB2_GLOBAL_CAP_ENCRYPTION for SMB 3.1.1 +- ksmbd: fix uninitialized symbol 'pntsd_size' +- ksmbd: remove select FS_POSIX_ACL in Kconfig +- ksmbd: fix memleak in get_file_stream_info() +- ksmbd: contain default data stream even if xattr is empty +- ksmbd: downgrade addition info error msg to debug in smb2_get_info_sec() +- ksmbd: Fix an error handling path in 'smb2_sess_setup()' +- ksmbd: change LeaseKey data type to u8 array +- ksmbd: remove smb2_buf_length in smb2_transform_hdr +- ksmbd: remove smb2_buf_length in smb2_hdr +- ksmbd: don't need 8byte alignment for request length in ksmbd_check_message +- ksmbd: Fix buffer length check in fsctl_validate_negotiate_info() +- ksmbd: Remove redundant 'flush_workqueue()' calls +- ksmdb: use cmd helper variable in smb2_get_ksmbd_tcon() +- ksmbd: use ksmbd_req_buf_next() in ksmbd_smb2_check_message() +- ksmbd: use ksmbd_req_buf_next() in ksmbd_verify_smb_message() +- ksmbd: add buffer validation in session setup +- ksmbd: throttle session setup failures to avoid dictionary attacks +- ksmbd: validate OutputBufferLength of QUERY_DIR, QUERY_INFO, IOCTL requests +- ksmbd: validate credit charge after validating SMB2 PDU body size +- ksmbd: add buffer validation for smb direct +- ksmbd: limit read/write/trans buffer size not to exceed 8MB +- ksmbd: validate compound response buffer +- ksmbd: fix potencial 32bit overflow from data area check in smb2_write +- ksmbd: improve credits management +- ksmbd: add validation in smb2_ioctl +- ksmbd: fix oops from fuse driver +- ksmbd: fix version mismatch with out of tree +- ksmbd: use buf_data_size instead of recalculation in smb3_decrypt_req() +- ksmbd: remove the leftover of smb2.0 dialect support +- ksmbd: check strictly data area in ksmbd_smb2_check_message() +- ksmbd: add the check to vaildate if stream protocol length exceeds maximum value +- ksmbd: missing check for NULL in convert_to_nt_pathname() +- ksmbd: fix transform header validation +- ksmbd: add buffer validation for SMB2_CREATE_CONTEXT +- ksmbd: add validation in smb2 negotiate +- ksmbd: add request buffer validation in smb2_set_info +- ksmbd: use correct basic info level in set_file_basic_info() +- ksmbd: remove NTLMv1 authentication +- ksmbd: fix documentation for 2 functions +- ksmbd: fix invalid request buffer access in compound +- ksmbd: remove RFC1002 check in smb2 request +- ksmbd: use LOOKUP_BENEATH to prevent the out of share access +- ksmbd: remove follow symlinks support +- ksmbd: check protocol id in ksmbd_verify_smb_message() +- ksmbd: add default data stream name in FILE_STREAM_INFORMATION +- ksmbd: log that server is experimental at module load +- ksmbd: add validation for FILE_FULL_EA_INFORMATION of smb2_get_info +- ksmbd: prevent out of share access +- ksmbd: transport_rdma: Don't include rwlock.h directly +- ksmbd: fix read of uninitialized variable ret in set_file_basic_info +- ksmbd: remove unused ksmbd_file_table_flush function +- ksmbd: smbd: fix dma mapping error in smb_direct_post_send_data +- ksmbd: Reduce error log 'speed is unknown' to debug +- ksmbd: remove setattr preparations in set_file_basic_info() +- ksmbd: ensure error is surfaced in set_file_basic_info() +- ksmbd: fix __write_overflow warning in ndr_read_string +- ksmbd: fix permission check issue on chown and chmod +- ksmbd: don't set FILE DELETE and FILE_DELETE_CHILD in access mask by default +- ksmbd: smbd: fix kernel oops during server shutdown +- ksmbd: use proper errno instead of -1 in smb2_get_ksmbd_tcon() +- ksmbd: update the comment for smb2_get_ksmbd_tcon() +- ksmbd: change int data type to boolean +- ksmbd: Fix multi-protocol negotiation +- ksmbd: fix an oops in error handling in smb2_open() +- ksmbd: add ipv6_addr_v4mapped check to know if connection from client is ipv4 +- ksmbd: fix missing error code in smb2_lock +- ksmbd: use channel signingkey for binding SMB2 session setup +- ksmbd: don't set RSS capable in FSCTL_QUERY_NETWORK_INTERFACE_INFO +- ksmbd: Return STATUS_OBJECT_PATH_NOT_FOUND if smb2_creat() returns ENOENT +- ksmbd: fix -Wstringop-truncation warnings +- ksmbd: Fix potential memory leak in tcp_destroy_socket() +- ksmbd: add support for negotiating signing algorithm +- ksmbd: add negotiate context verification +- ksmbd: fix typo of MS-SMBD +- ksmbd: move credit charge verification over smb2 request size verification +- ksmbd: set STATUS_INVALID_PARAMETER error status if credit charge is invalid +- ksmbd: fix wrong error status return on session setup +- ksmbd: fix wrong compression context size +- ksmbd: fix typo in comment +- ksmbd: fix an error message in ksmbd_conn_trasnport_init +- ksmbd: set RDMA capability for FSCTL_QUERY_NETWORK_INTERFACE_INFO +- ksmbd: fix unused err value in smb2_lock +- ksmbd: fix memory leak in ksmbd_vfs_get_sd_xattr() +- ksmbd: remove unneeded check_context_err +- ksmbd: handle error cases first in smb2_create_sd_buffers +- ksmbd: make smb2_find_context_vals return NULL if not found +- ksmbd: uninterruptible wait for a file being unlocked +- ksmbd: free ksmbd_lock when file is closed +- ksmbd: fix the running request count decrement +- ksmbd: use kasprintf() in ksmbd_vfs_xattr_stream_name() +- ksmbd: delete some stray tabs +- ksmbd: change data type of volatile/persistent id to u64 +- ksmbd: fix memory leak in smb_inherit_dacl() +- ksmbd: fix memory leak smb2_populate_readdir_entry() +- ksmbd: fix read on the uninitialized send_ctx +- ksmbd: remove unneeded NULL check in for_each_netdev +- ksmbd: Fix read on the uninitialized pointer sess +- ksmbd: fix kernel oops in ksmbd_rpc_ioctl/rap() +- ksmbd: adapt vfs api to 5.10 +- ksmbd: replace struct dentry with struct path in some function's arguments +- ksmbd: reorder and document on-disk and netlink structures in headers +- ksmbd: change server config string index to enumeration +- ksmbd: change server state type macro to enumeration +- ksmbd: change sid types to enumeration +- ksmbd: change ACE types to enumeration +- ksmbd: remove SMB1 oplock level macros +- ksmbd: opencode to remove ATTR_FP macro +- ksmbd: use ksmbd_vfs_lock_parent to get stable parent dentry +- ksmbd: opencode to remove FP_INODE macro +- ksmbd: fix dentry racy with rename() +- ksmbd: Relax credit_charge check in smb2_validate_credit_charge() +- ksmbd: allow PROTECTED_DACL_SECINFO and UNPROTECTED_DACL_SECINFO addition information in smb2 set info security +- ksmbd: replace request and respone buffer macro with inline functions +- ksmbd: replace SMB_DIRECT_TRANS macro with inline function +- ksmbd: remove and replace macros with inline functions in smb_common.h +- ksmbd: remove getting worker state macros +- ksmbd: replace PAYLOAD_HEAD with inline function +- ksmbd: replace KSMBD_ALIGN with kernel ALIGN macro +- ksmbd: replace BUFFER_NR_PAGES with inline function +- ksmbd: remove macros in transport_ipc.c +- ksmbd: set MAY_* flags together with open flags +- ksmbd: factor out a ksmbd_vfs_lock_parent helper +- ksmbd: move fs/cifsd to fs/ksmbd +- cifsd: add index.rst in cifs documentation +- cifsd: fix WARNING: document isn't included in any toctree +- cifsd: add ksmbd/nfsd interoperability to feature table +- doc: cifsd: change the reference to configuration.txt +- cifsd: fix build warnings from cifsd.rst +- cifsd: update cifsd.rst document +- cifsd: fix WARNING: Title overline too short +- ksmbd: use f_bsize in FS_SECTOR_SIZE_INFORMATION +- ksmbd: remove unneeded NULL check in the list iterator +- ksmbd: use f_bsize instead of q->limits.logical_block_size +- ksmbd: change stream type macro to enumeration +- ksmbd: opencode posix acl functions instead of wrappers +- ksmbd: factor out a ksmbd_validate_entry_in_use helper from __ksmbd_vfs_rename +- ksmbd: opencode to avoid trivial wrappers +- ksmbd: remove ksmbd_err/info +- ksmbd: replace KSMBD_SHARE_CONFIG_PATH with inline function +- ksmbd: remove ____ksmbd_align in ksmbd_server.h +- ksmbd: remove unneeded FIXME comment +- ksmbd: fix overly long line +- ksmbd: use goto instead of duplicating the resoure cleanup in ksmbd_open_fd +- ksmbd: use list_for_each_entry instead of list_for_each +- ksmbd: remove ksmbd_vfs_copy_file_range +- ksmbd: initialize variables on the declaration +- ksmbd: remove cache read/trans buffer support +- ksmbd: add support for SMB3 multichannel +- ksmbd: fix kfree of uninitialized pointer oid +- cifsd: append ksmbd prefix into names for asn1 decoder +- cifsd: remove duplicated argument +- cifsd: set epoch in smb2_lease_break response +- cifsd: fix list_add double add BUG_ON trap in setup_async_work() +- cifsd: fix additional warnings from checkpatch.pl --strict +- cifsd: fix potential read overflow in ksmbd_vfs_stream_read() +- cifsd: check return value of ksmbd_vfs_getcasexattr() correctly +- cifsd: fix memleak in ksmbd_vfs_stream_read() +- cifsd: fix memleak in ksmbd_vfs_stream_write() +- cifsd: make alignment match open parenthesis +- cifsd: enclose macro variables in parenthesis +- cifsd: fix Control flow issues in ksmbd_build_ntlmssp_challenge_blob() +- cifsd: lookup a file with LOOKUP_FOLLOW only if 'follow symlinks = yes' +- cifsd: Prefer kernel type 'u16' over 'uint16_t' +- cifsd: remove unnecessary parentheses around +- cifsd: Alignment should match open parenthesis +- cifsd: Blank lines aren't necessary after an open brace '{' +- cifsd: No space is necessary after a cast +- cifsd: don't use multiple blank lines +- cifsd: spaces preferred around that '/' +- cifsd: braces {} should be used on all arms of this statement +- cifsd: add the check to prevent potential overflow with smb_strtoUTF16() and UNICODE_LEN() +- cifsd: alignment match open parenthesis +- cifsd: return -ENOMEM about error from ksmbd_crypto_ctx_find_xxx calls +- cifsd: simplify error handling in ksmbd_gen_preauth_integrity_hash() +- cifsd: call kzalloc() directly instead of wrapper +- cifsd: add default case in switch statment in alloc_shash_desc() +- cifsd: change success handling to failure handling +- cifsd: fix wrong return value in ksmbd_crypt_message() +- cifsd: remove unneeded initialization of rc variable in ksmbd_crypt_message() +- cifsd: len can never be negative in ksmbd_init_sg() +- cifsd: add the check if nvec is zero +- cifsd: never return 1 on failure +- cifsd: return zero in always success case +- cifsd: set error return value for memcmp() difference +- cifsd: remove unneeded type casting +- cifsd: simplify error handling in ksmbd_auth_ntlm() +- cifsd: move ret check before the out label +- cifsd: just return smbhash() instead of using rc return value +- cifsd: move fips_enabled check before the str_to_key() +- cifsd: add goto fail in neg_token_init_mech_type() +- cifsd: use memcmp instead of for loop check in oid_eq() +- cifsd: add goto fail in asn1_oid_decode() +- cifsd: add support for FSCTL_DUPLICATE_EXTENTS_TO_FILE +- cifsd: Do not use 0 or 0xFFFFFFFF for TreeID +- cifsd: fix xfstests generic/504 test failure +- cifsd: fix boolreturn.cocci warnings +- cifsd: fix WARNING: Too many leading tabs +- cifsd: fix WARNING: Possible unnecessary 'out of memory' message +- cifsd: decoding gss token using lib/asn1_decoder.c +- cifsd: fix invalid memory access in smb2_write() +- cifsd: add support for AES256 encryption +- cifsd: Fix potential null-ptr-deref in destroy_previous_session() +- cifsd: Update out_buf_len in smb2_populate_readdir_entry() +- cifsd: Handle ksmbd_session_rpc_open() failure in create_smb2_pipe() +- cifsd: Call smb2_set_err_rsp() in smb2_read/smb2_write error path +- cifsd: Fix regression in smb2_get_info +- cifsd: Remove is_attributes_write_allowed() wrapper +- cifsd: Update access check in set_file_allocation_info/set_end_of_file_info +- cifsd: remove the dead code of unimplemented durable handle +- cifsd: use d_inode() +- cifsd: Fix potential null-ptr-deref in smb2_open() +- cifsd: move nt time functions to misc.c +- cifsd: remove unused nterr.c file +- cifsd: remove unused smberr.h +- cifsd: Remove smb2_put_name() +- cifsd: fix reference count decrement of unclaimed file in __ksmbd_lookup_fd +- cifsd: re-implement ksmbd_vfs_kern_path +- cifsd: get parent dentry from child in ksmbd_vfs_remove_file() +- cifsd: add the check if parent is stable by unexpected rename +- cifsd: declare ida statically +- cifsd: remove unused including +- cifsd: prevent a integer overflow in wm_alloc() +- cifsd: remove wrappers of kvmalloc/kvfree +- cifsd: fix memdup.cocci warnings +- cifsd: use kfree to free memory allocated by kmalloc or kzalloc +- cifsd: fix memory leak when loop ends +- cifsd: remove stale prototype and variables +- cifsd: use xarray instead of linked list for tree connect list +- cifsd: remove useless error handling in ksmbd_vfs_read +- cifsd: use file_inode() instead of d_inode() +- cifsd: handle unhashed dentry in ksmbd_vfs_mkdir +- cifsd: remove calling d_path in error paths +- cifsd: remove smack inherit leftovers +- cifsd: fix wrong prototype in comment +- cifsd: merge time_wrappers.h into smb_common.h +- cifsd: clean-up codes using chechpatch.pl --strict +- cifsd: fix error return code in ksmbd_vfs_remove_file() +- cifsd: add the check to work file lock and rename behaviors like Windows unless POSIX extensions are negotiated +- cifsd: use kmalloc() for small allocations +- cifsd: fix wrong use of rw semaphore in __session_create() +- cifsd: remove unneeded macros +- cifsd: remove redundant assignment to variable err +- cifsd: fix error handling in ksmbd_server_init() +- cifsd: Fix an error code in smb2_read() +- cifsd: Pass string length parameter to match_pattern() +- cifsd: fix warning: variable 'total_ace_size' and 'posix_ccontext' set but not used +- cifsd: fix incorrect comments +- cifsd: remove unneeded FIXME comments +- cifsd: fix static checker warning from smb_check_perm_dacl() +- cifsd: fix static checker warning from smb_direct_post_send_data() +- cifsd: Fix a use after free on error path +- cifsd: fix a IS_ERR() vs NULL bug +- cifsd: fix a precedence bug in parse_dacl() +- cifsd: Fix a handful of spelling mistakes +- cifsd: uniquify extract_sharename() +- cifsd: add file operations +- cifsd: add server-side procedures for SMB3 +- cifsd: add server handler for central processing and tranport layers +- crypto: enable some SM configs +- uprobes: (Re)add missing get_uprobe() in __find_uprobe() +- perf/x86/intel/uncore: Fix Intel SPR M3UPI event constraints +- perf/x86/intel/uncore: Fix Intel SPR M2PCIE event constraints +- perf/x86/intel/uncore: Fix Intel SPR IIO event constraints +- perf/x86/intel/uncore: Fix Intel SPR CHA event constraints +- perf/x86/intel/uncore: Fix invalid unit check +- perf/x86/intel/uncore: Fix a kernel WARNING triggered by maxcpus=1 +- perf/x86/intel/uncore: Support IMC free-running counters on Sapphire Rapids server +- perf/x86/intel/uncore: Support IIO free-running counters on Sapphire Rapids server +- perf/x86/intel/uncore: Factor out snr_uncore_mmio_map() +- perf/x86/intel/uncore: Add alias PMU name +- perf/x86/intel/uncore: Add Sapphire Rapids server MDF support +- perf/x86/intel/uncore: Add Sapphire Rapids server M3UPI support +- perf/x86/intel/uncore: Add Sapphire Rapids server UPI support +- perf/x86/intel/uncore: Add Sapphire Rapids server M2M support +- perf/x86/intel/uncore: Add Sapphire Rapids server IMC support +- perf/x86/intel/uncore: Add Sapphire Rapids server PCU support +- perf/x86/intel/uncore: Add Sapphire Rapids server M2PCIe support +- perf/x86/intel/uncore: Add Sapphire Rapids server IRP support +- perf/x86/intel/uncore: Add Sapphire Rapids server IIO support +- perf/x86/intel/uncore: Add Sapphire Rapids server CHA support +- perf/x86/intel/uncore: Add Sapphire Rapids server framework +- x86/cpu: Fix core name for Sapphire Rapids +- x86/cpu: Resort and comment Intel models +- perf/x86/intel/uncore: Generic support for the MMIO type of uncore blocks +- perf/x86/intel/uncore: Generic support for the PCI type of uncore blocks +- perf/x86/intel/uncore: Rename uncore_notifier to uncore_pci_sub_notifier +- perf/x86/intel/uncore: Generic support for the MSR type of uncore blocks +- perf/x86/intel/uncore: Parse uncore discovery tables +- perf/x86/intel/uncore: With > 8 nodes, get pci bus die id from NUMA info +- perf/x86/intel/uncore: Store the logical die id instead of the physical die id. +- rbtree, timerqueue: Use rb_add_cached() +- rbtree, rtmutex: Use rb_add_cached() +- rbtree, uprobes: Use rbtree helpers +- rbtree, perf: Use new rbtree helpers +- rbtree, sched/deadline: Use rb_add_cached() +- rbtree, sched/fair: Use rb_add_cached() +- rbtree: Add generic add and find helpers +- configs: change the value of NLS_CODEPAGE_437 from m to y + +* Fri Nov 25 2022 Zheng Zengkai - 5.10.0-128.0.0.68 +- Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM +- RDMA/hns: Add support for open XRC QP +- RDMA/hns: Fix inconsistency between QPC's sl and DB's sl in roce v1 +- RDMA/hns: Fix roce v1 traffic_class problem +- xfs: fix incorrect i_nlink caused by inode racing +- ima: Handle -ESTALE returned by ima_filter_rule_match() +- ima: Simplify ima_lsm_copy_rule +- selftests: bpf: Don't run sk_lookup in verifier tests +- bpf: Add PROG_TEST_RUN support for sk_lookup programs +- bpf: Consolidate shared test timing code +- docs: perf: Include hns3-pmu.rst in toctree to fix 'htmldocs' WARNING +- drivers/perf: hisi: add driver for HNS3 PMU +- drivers/perf: hisi: Add description for HNS3 PMU driver +- dm ioctl: add DMINFO() to track dm device create/remove +- mm: oom_kill: fix KABI broken by "oom_kill.c: futex: delay the OOM reaper to allow time for proper futex cleanup" +- oom_kill.c: futex: delay the OOM reaper to allow time for proper futex cleanup +- fork: Allocate a new task_struct_resvd object for fork task +- drivers/perf: fixed the issue that the kabi value changed +- rtc: Fix race when disable/enable UIE in rtc_set_time() +- rtc: Cleanup for UIE timer/polling emulation support +- arm64: ftrace: fix module PLTs with mcount +- Bluetooth: L2CAP: Fix attempting to access uninitialized memory +- blk-mq: fix io hang for scsi drivers that depends on timeout handling during scan +- blk-mq: fix null pointer dereference in blk_mq_queue_tag_busy_ite +- i2c: hisi: Add gpio bus recovery support +- mm: mem_reliable: Start fallback if no suitable zone found +- arm64/mm: Drop THP conditionality from FORCE_MAX_ZONEORDER +- xfs: Fix unreferenced object reported by kmemleak in xfs_sysfs_init() +- xfs: fix memory leak in xfs_errortag_init +- xfs: fix sb write verify for lazysbcount +- xfs: reject crazy array sizes being fed to XFS_IOC_GETBMAP* +- xfs: prevent a WARN_ONCE() in xfs_ioc_attr_list() +- xfs: prevent a UAF when log IO errors race with unmount +- xfs: purge dquots after inode walk fails during quotacheck +- xfs: revert "xfs: actually bump warning counts when we send warnings" +- xfs: run callbacks before waking waiters in xlog_state_shutdown_callbacks +- xfs: async CIL flushes need pending pushes to be made stable +- xfs: don't generate selinux audit messages for capability testing +- xfs: only bother with sync_filesystem during readonly remount +- xfs: remove xfs_inew_wait +- xfs: mark a data structure sick if there are cross-referencing errors +- xfs: restore speculative_cow_prealloc_lifetime sysctl +- xfs: make xfs_file_aio_write_checks IOCB_NOWAIT-aware +- xfs: scrub should mark a directory corrupt if any entries cannot be iget'd +- xfs: factor out a xfs_ilock_iocb helper +- xfs: fix parent pointer scrubber bailing out on unallocated inodes +- xfs: fix inode reservation space for removing transaction +- xfs: fix comment for start time value of inode with bigtime enabled +- xfs: fix uaf when leaf dir bestcount not match with dir data blocks +- xfs: Fix dax inode extent calculation when direct write is performed on an unwritten extent +- xfs: Check for extent overflow when swapping extents +- xfs: Check for extent overflow when remapping an extent +- xfs: Check for extent overflow when moving extent from cow to data fork +- xfs: Check for extent overflow when writing to unwritten extent +- xfs: Check for extent overflow when adding/removing xattrs +- xfs: Check for extent overflow when renaming dir entries +- xfs: Check for extent overflow when removing dir entries +- xfs: Check for extent overflow when adding dir entries +- xfs: Check for extent overflow when punching a hole +- xfs: Check for extent overflow when trivally adding a new extent +- xfs: Add helper for checking per-inode extent count overflow +- xfs: flush inode gc workqueue before clearing agi bucket +- xfs: check sb_meta_uuid for dabuf buffer recovery +- xfs: Fix the free logic of state in xfs_attr_node_hasname +- xfs: reduce kvmalloc overhead for CIL shadow buffers +- xfs: only run COW extent recovery when there are no live extents +- xfs: remove all COW fork extents when remounting readonly +- xfs: don't catch dax+reflink inodes as corruption in verifier +- xfs: fix soft lockup via spinning in filestream ag selection loop +- xfs: return errors in xfs_fs_sync_fs +- drivers/perf: hisi: Add TLP filter support +- drivers/perf: hisi: Fix some event id for hisi-pcie-pmu +- hwtracing: hisi_ptt: Only add the supported devices to the filters list +- ftrace: Fix use-after-free for dynamic ftrace_ops +- bfq: Make sure bfqg for which we are queueing requests is online +- bfq: Get rid of __bio_blkcg() usage +- bfq: Track whether bfq_group is still online +- Revert "block, bfq: move bfqq to root_group if parent group is offlined" +- net: hns3: fix get wrong value of function hclge_get_dscp_prio() +- ext4: fix super block checksum incorrect after mount +- Revert "block/wbt: fix negative inflight counter when remove scsi device" +- tee: fix memory leak in tee_shm_register() +- qrtr: Convert qrtr_ports from IDR to XArray +- can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once() +- tracing/probes: Have kprobes and uprobes use $COMM too +- netfilter: nf_tables: fix audit memory leak in nf_tables_commit +- netfilter: nftables: fix a warning message in nf_tables_commit_audit_collect() +- MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0 +- video: fbdev: i740fb: Check the argument of i740_calc_vclk() +- powerpc/64: Init jump labels before parse_early_param() +- smb3: check xattr value length earlier +- f2fs: fix to do sanity check on segment type in build_sit_entries() +- f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page() +- ALSA: control: Use deferred fasync helper +- ALSA: timer: Use deferred fasync helper +- ALSA: core: Add async signal helpers +- powerpc/32: Don't always pass -mcpu=powerpc to the compiler +- watchdog: export lockup_detector_reconfigure +- RISC-V: Add fast call path of crash_kexec() +- riscv: mmap with PROT_WRITE but no PROT_READ is invalid +- modules: Ensure natural alignment for .altinstructions and __bug_table sections +- mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start +- vfio: Clear the caps->buf to NULL after free +- tty: serial: Fix refcount leak bug in ucc_uart.c +- lib/list_debug.c: Detect uninitialized lists +- ext4: avoid resizing to a partial cluster size +- ext4: avoid remove directory when directory is corrupted +- drivers:md:fix a potential use-after-free bug +- nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown +- md: Notify sysfs sync_completed in md_reap_sync_thread() +- dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed +- selftests/kprobe: Do not test for GRP/ without event failures +- csky/kprobe: reclaim insn_slot on kprobe unregistration +- RDMA/rxe: Limit the number of calls to each tasklet +- um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups +- PCI/ACPI: Guard ARM64-specific mcfg_quirks +- cxl: Fix a memory leak in an error handling path +- pinctrl: intel: Check against matching data instead of ACPI companion +- gadgetfs: ep_io - wait until IRQ finishes +- scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user input +- clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description +- zram: do not lookup algorithm in backends table +- uacce: Handle parent device removal or parent driver module rmmod +- clk: qcom: ipq8074: dont disable gcc_sleep_clk_src +- vboxguest: Do not use devm for irq +- usb: dwc2: gadget: remove D+ pull-up while no vbus with usb-role-switch +- usb: renesas: Fix refcount leak bug +- usb: host: ohci-ppc-of: Fix refcount leak bug +- clk: ti: Stop using legacy clkctrl names for omap4 and 5 +- drm/meson: Fix overflow implicit truncation warnings +- irqchip/tegra: Fix overflow implicit truncation warnings +- usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info +- usb: cdns3 fix use-after-free at workaround 2 +- platform/chrome: cros_ec_proto: don't show MKBP version if unsupported +- PCI: Add ACS quirk for Broadcom BCM5750x NICs +- drm/sun4i: dsi: Prevent underflow when computing packet sizes +- netfilter: add helper function to set up the nfnetlink header and use it +- netfilter: nftables: add helper function to set the base sequence number +- audit: log nftables configuration change events once per table +- drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors() +- ASoC: SOF: intel: move sof_intel_dsp_desc() forward +- gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file +- kbuild: fix the modules order between drivers and libs +- igb: Add lock to avoid data race +- stmmac: intel: Add a missing clk_disable_unprepare() call in intel_eth_pci_remove() +- fec: Fix timer capture timing in `fec_ptp_enable_pps()` +- i40e: Fix to stop tx_timeout recovery if GLOBR fails +- regulator: pca9450: Remove restrictions for regulator-name +- i2c: imx: Make sure to unregister adapter on remove() +- ice: Ignore EEXIST when setting promisc mode +- net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions() +- net: genl: fix error path memory leak in policy dumping +- net: dsa: felix: fix ethtool 256-511 and 512-1023 TX packet counters +- net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry +- net: moxa: pass pdev instead of ndev to DMA functions +- net: dsa: mv88e6060: prevent crash on an unused port +- spi: meson-spicc: add local pow2 clock ops to preserve rate between messages +- powerpc/pci: Fix get_phb_number() locking +- netfilter: nf_tables: check NFT_SET_CONCAT flag if field_count is specified +- netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT flag +- netfilter: nf_tables: really skip inactive sets when allocating name +- ASoC: tas2770: Fix handling of mute/unmute +- ASoC: tas2770: Drop conflicting set_bias_level power setting +- ASoC: tas2770: Allow mono streams +- ASoC: tas2770: Set correct FSYNC polarity +- iavf: Fix adminq error handling +- nios2: add force_successful_syscall_return() +- nios2: restarts apply only to the first sigframe we build... +- nios2: fix syscall restart checks +- nios2: traced syscall does need to check the syscall number +- nios2: don't leave NULLs in sys_call_table[] +- nios2: page fault et.al. are *not* restartable syscalls... +- dpaa2-eth: trace the allocated address instead of page struct +- perf probe: Fix an error handling path in 'parse_perf_probe_command()' +- geneve: fix TOS inheriting for ipv4 +- xen/xenbus: fix return type in xenbus_file_read() +- nfp: ethtool: fix the display error of `ethtool -m DEVNAME` +- NTB: ntb_tool: uninitialized heap data in tool_fn_write() +- tools build: Switch to new openssl API for test-libcrypto +- kbuild: dummy-tools: avoid tmpdir leak in dummy gcc +- ceph: don't leak snap_rwsem in handle_cap_grant +- tools/vm/slabinfo: use alphabetic order when two values are equal +- ceph: use correct index when encoding client supported features +- dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources +- dt-bindings: arm: qcom: fix MSM8916 MTP compatibles +- vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout() +- plip: avoid rcu debug splat +- ipv6: do not use RT_TOS for IPv6 flowlabel +- geneve: do not use RT_TOS for IPv6 flowlabel +- ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool +- pinctrl: qcom: sm8250: Fix PDC map +- pinctrl: sunxi: Add I/O bias setting for H6 R-PIO +- pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed +- pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map +- net: bgmac: Fix a BUG triggered by wrong bytes_compl +- virtio_net: fix memory leak inside XPD_TX with mergeable +- SUNRPC: Reinitialise the backchannel request buffers before reuse +- sunrpc: fix expiry of auth creds +- net: atlantic: fix aq_vec index out of range error +- can: mcp251x: Fix race condition on receive interrupt +- bpf: Check the validity of max_rdwr_access for sock local storage map iterator +- bpf: Acquire map uref in .init_seq_private for sock{map,hash} iterator +- bpf: Acquire map uref in .init_seq_private for sock local storage map iterator +- bpf: Acquire map uref in .init_seq_private for hash map iterator +- bpf: Acquire map uref in .init_seq_private for array map iterator +- NFSv4/pnfs: Fix a use-after-free bug in open +- NFSv4.1: RECLAIM_COMPLETE must handle EACCES +- NFSv4: Fix races in the legacy idmapper upcall +- NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly +- NFSv4.1: Don't decrease the value of seq_nr_highest_sent +- Documentation: ACPI: EINJ: Fix obsolete example +- apparmor: Fix memleak in aa_simple_write_to_buffer() +- apparmor: fix reference count leak in aa_pivotroot() +- apparmor: fix overlapping attachment computation +- apparmor: fix setting unconfined mode on a loaded profile +- apparmor: fix aa_label_asxprint return check +- apparmor: Fix failed mount permission check error message +- apparmor: fix absroot causing audited secids to begin with = +- apparmor: fix quiet_denied for file rules +- can: ems_usb: fix clang's -Wunaligned-access warning +- ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II +- tracing: Have filter accept "common_cpu" to be consistent +- btrfs: fix lost error handling when looking up extended ref on log replay +- mmc: meson-gx: Fix an error handling path in meson_mmc_probe() +- mmc: pxamci: Fix an error handling path in pxamci_probe() +- mmc: pxamci: Fix another error handling path in pxamci_probe() +- ata: libata-eh: Add missing command name +- rds: add missing barrier to release_refill +- x86/mm: Use proper mask when setting PUD mapping +- ALSA: hda/realtek: Add quirk for Clevo NS50PU, NS70PU +- ALSA: info: Fix llseek return value when using callback +- !260 svm: Delete unused ioctl command +- svm: Delete unused ioctl command +- !252 hulk backport patchs for ascend feature +- !239 Intel: Enable default kernel config for Intel Emmitsburg pinctrl +- Enable Intel Emmitsburg pinctrl for default config +- mm: fix ignore cpuset enforcement +- mm: fix alloc CDM node memory for MPOL_BIND +- ascend: export interfaces required by ascend drivers +- sharepool: fix sp_alloc_populate no fallocate bug +- mm/sharepool: Fix add group failed with errno 28 +- mm: sharepool: Fix static check warning +- irq-gic-v3: Fix too large cpu_count +- mm/sharepool: Use "tgid" instead of "pid" to find a task +- ascend/arm64: Add ascend_enable_all kernel parameter + +* Fri Nov 18 2022 Zheng Zengkai - 5.10.0-127.0.0.67 +- btrfs: raid56: don't trust any cached sector in __raid56_parity_recover() +- btrfs: only write the sectors in the vertical stripe which has data stripes +- sched/fair: Fix fault in reweight_entity +- net_sched: cls_route: disallow handle of 0 +- net/9p: Initialize the iounit field during fid creation +- tee: add overflow check in register_shm_helper() +- kvm: x86/pmu: Fix the compare function used by the pmu event filter +- mtd: rawnand: arasan: Prevent an unsupported configuration +- Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression +- Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP" +- drm/vc4: change vc4_dma_range_matches from a global to static +- drm/bridge: tc358767: Fix (e)DP bridge endpoint parsing in dedicated function +- Revert "mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv" +- tcp: fix over estimation in sk_forced_mem_schedule() +- mac80211: fix a memory leak where sta_info is not freed +- KVM: x86: Avoid theoretical NULL pointer dereference in kvm_irq_delivery_to_apic_fast() +- KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq +- KVM: Add infrastructure and macro to mark VM as bugged +- dm raid: fix address sanitizer warning in raid_status +- dm raid: fix address sanitizer warning in raid_resume +- ext4: fix extent status tree race in writeback error recovery path +- ext4: update s_overhead_clusters in the superblock during an on-line resize +- ext4: fix warning in ext4_iomap_begin as race between bmap and write +- tracing: Use a struct alignof to determine trace event field alignment +- tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH +- KEYS: asymmetric: enforce SM2 signature use pkey algo +- xen-blkfront: Apply 'feature_persistent' parameter when connect +- xen-blkback: Apply 'feature_persistent' parameter when connect +- xen-blkback: fix persistent grants negotiation +- KVM: x86/pmu: Ignore pmu->global_ctrl check if vPMU doesn't support global_ctrl +- KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if there's no vPMU +- KVM: x86/pmu: Introduce the ctrl_mask value for fixed counter +- KVM: x86/pmu: Use different raw event masks for AMD and Intel +- KVM: x86/pmu: Use binary search to check filtered events +- KVM: nVMX: Inject #UD if VMXON is attempted with incompatible CR0/CR4 +- KVM: x86: Move vendor CR4 validity check to dedicated kvm_x86_ops hook +- KVM: SVM: Drop VMXE check from svm_set_cr4() +- KVM: VMX: Drop explicit 'nested' check from vmx_set_cr4() +- KVM: VMX: Drop guest CPUID check for VMXE in vmx_set_cr4() +- ACPI: CPPC: Do not prevent CPPC from working in the future +- btrfs: reset block group chunk force if we have to wait +- btrfs: reject log replay if there is unsupported RO compat flag +- um: Allow PM with suspend-to-idle +- timekeeping: contribute wall clock to rng on time change +- kexec, KEYS, s390: Make use of built-in and secondary keyring for signature verification +- dm writecache: set a default MAX_WRITEBACK_JOBS +- serial: 8250: Fold EndRun device support into OxSemi Tornado code +- serial: 8250_pci: Replace dev_*() by pci_*() macros +- serial: 8250_pci: Refactor the loop in pci_ite887x_init() +- serial: 8250: Correct the clock for OxSemi PCIe devices +- serial: 8250: Dissociate 4MHz Titan ports from Oxford ports +- PCI/AER: Iterate over error counters instead of error strings +- iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE) +- KVM: x86: Signal #GP, not -EPERM, on bad WRMSR(MCi_CTL/STATUS) +- KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors +- intel_th: pci: Add Raptor Lake-S CPU support +- intel_th: pci: Add Raptor Lake-S PCH support +- intel_th: pci: Add Meteor Lake-P support +- firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails +- usbnet: smsc95xx: Avoid link settings race on interrupt reception +- usbnet: smsc95xx: Don't clear read-only PHY interrupt +- mtd: rawnand: arasan: Fix clock rate in NV-DDR +- mtd: rawnand: arasan: Support NV-DDR interface +- mtd: rawnand: arasan: Fix a macro parameter +- mtd: rawnand: Add NV-DDR timings +- mtd: rawnand: arasan: Check the proposed data interface is supported +- mtd: rawnand: Add a helper to clarify the interface configuration +- drm/vc4: drv: Adopt the dma configuration from the HVS or V3D component +- HID: hid-input: add Surface Go battery quirk +- HID: Ignore battery for Elan touchscreen on HP Spectre X360 15-df0xxx +- drm/mediatek: Keep dsi as LP00 before dcs cmds transfer +- drm/mediatek: Allow commands to be sent during video mode +- drm/i915/dg1: Update DMC_DEBUG3 register +- spmi: trace: fix stack-out-of-bound access in SPMI tracing functions +- __follow_mount_rcu(): verify that mount_lock remains unchanged +- Input: gscps2 - check return value of ioremap() in gscps2_probe() +- x86/olpc: fix 'logical not is only applied to the left hand side' +- ftrace/x86: Add back ftrace_expected assignment +- x86/bugs: Enable STIBP for IBPB mitigated RETBleed +- scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation tests +- scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with I/Os +- scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection +- scsi: qla2xxx: Turn off multi-queue for 8G adapters +- scsi: qla2xxx: Fix discovery issues in FC-AL topology +- scsi: zfcp: Fix missing auto port scan and thus missing target ports +- video: fbdev: s3fb: Check the size of screen before memset_io() +- video: fbdev: arkfb: Check the size of screen before memset_io() +- video: fbdev: vt8623fb: Check the size of screen before memset_io() +- x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y +- sched: Fix the check of nr_running at queue wakelist +- tools/thermal: Fix possible path truncations +- video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock() +- x86/numa: Use cpumask_available instead of hardcoded NULL check +- sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed +- sched/deadline: Merge dl_task_can_attach() and dl_cpu_busy() +- scripts/faddr2line: Fix vmlinux detection on arm64 +- genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO +- powerpc/pci: Fix PHB numbering when using opal-phbid +- kprobes: Forbid probing on trampoline and BPF code areas +- perf symbol: Fail to read phdr workaround +- powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address +- powerpc/xive: Fix refcount leak in xive_get_max_prio +- powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader +- f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same time +- f2fs: write checkpoint during FG_GC +- f2fs: don't set GC_FAILURE_PIN for background GC +- powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and alias +- powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32 +- ASoC: mchp-spdifrx: disable end of block interrupt on failures +- video: fbdev: sis: fix typos in SiS_GetModeID() +- video: fbdev: amba-clcd: Fix refcount leak bugs +- watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe() +- ASoC: audio-graph-card: Add of_node_put() in fail path +- fuse: Remove the control interface for virtio-fs +- ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp() +- ASoC: fsl_easrc: use snd_pcm_format_t type for sample_format +- s390/zcore: fix race when reading from hardware system area +- s390/dump: fix old lowcore virtual vs physical address confusion +- perf tools: Fix dso_id inode generation comparison +- iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop +- mfd: max77620: Fix refcount leak in max77620_initialise_fps +- mfd: t7l66xb: Drop platform disable callback +- remoteproc: sysmon: Wait for SSCTL service to come up +- lib/smp_processor_id: fix imbalanced instrumentation_end() call +- kfifo: fix kfifo_to_user() return type +- rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge +- iommu/exynos: Handle failed IOMMU device registration properly +- tty: n_gsm: fix missing corner cases in gsmld_poll() +- tty: n_gsm: fix DM command +- tty: n_gsm: fix wrong T1 retry count handling +- vfio/ccw: Do not change FSM state in subchannel event +- vfio/mdev: Make to_mdev_device() into a static inline +- vfio: Split creation of a vfio_device into init and register ops +- vfio: Simplify the lifetime logic for vfio_device +- vfio: Remove extra put/gets around vfio_device->group +- remoteproc: qcom: wcnss: Fix handling of IRQs +- ASoC: qcom: Fix missing of_node_put() in asoc_qcom_lpass_cpu_platform_probe() +- tty: n_gsm: fix race condition in gsmld_write() +- tty: n_gsm: fix packet re-transmission without open control channel +- tty: n_gsm: fix non flow control frames during mux flow off +- tty: n_gsm: fix wrong queuing behavior in gsm_dlci_data_output() +- tty: n_gsm: fix user open not possible at responder until initiator open +- tty: n_gsm: Delete gsmtty open SABM frame when config requester +- ASoC: samsung: change gpiod_speaker_power and rx1950_audio from global to static variables +- powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI check in power_pmu_disable +- ASoC: samsung: h1940_uda1380: include proepr GPIO consumer header +- profiling: fix shift too large makes kernel panic +- selftests/livepatch: better synchronize test_klp_callbacks_busy +- remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init +- rpmsg: mtk_rpmsg: Fix circular locking dependency +- ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV +- ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV +- serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty() +- serial: 8250: Export ICR access helpers for internal use +- ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe +- ASoC: codecs: da7210: add check for i2c_add_driver +- ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe +- ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe +- ASoC: samsung: Fix error handling in aries_audio_probe +- ASoC: cros_ec_codec: Fix refcount leak in cros_ec_codec_platform_probe +- opp: Fix error check in dev_pm_opp_attach_genpd() +- usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable() +- nvme: use command_id instead of req->tag in trace_nvme_complete_rq() +- null_blk: fix ida error handling in null_add_dev() +- RDMA/rxe: Fix error unwind in rxe_create_qp() +- RDMA/mlx5: Add missing check for return value in get namespace flow +- selftests: kvm: set rax before vmcall +- mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region +- RDMA/srpt: Fix a use-after-free +- RDMA/srpt: Introduce a reference count in struct srpt_device +- RDMA/srpt: Duplicate port name members +- platform/olpc: Fix uninitialized data in debugfs write +- usb: cdns3: change place of 'priv_ep' assignment in cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable() +- USB: serial: fix tty-port initialized comments +- PCI: tegra194: Fix link up retry sequence +- PCI: tegra194: Fix Root Port interrupt handling +- HID: alps: Declare U1_UNICORN_LEGACY support +- mmc: cavium-thunderx: Add of_node_put() when breaking out of loop +- mmc: cavium-octeon: Add of_node_put() when breaking out of loop +- HID: mcp2221: prevent a buffer overflow in mcp_smbus_write() +- gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data() +- RDMA/hfi1: fix potential memory leak in setup_base_ctxt() +- RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event +- RDMA/qedr: Fix potential memory leak in __qedr_alloc_mr() +- RDMA/qedr: Improve error logs for rdma_alloc_tid error return +- RDMA/rtrs-srv: Fix modinfo output for stringify +- RDMA/rtrs: Avoid Wtautological-constant-out-of-range-compare +- RDMA/rtrs: Define MIN_CHUNK_SIZE +- um: random: Don't initialise hwrng struct with zero +- interconnect: imx: fix max_node_id +- eeprom: idt_89hpesx: uninitialized data in idt_dbgfs_csr_write() +- usb: dwc3: qcom: fix missing optional irq warnings +- usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup +- usb: dwc3: core: Deprecate GCTL.CORESOFTRESET +- usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc() +- usb: gadget: udc: amd5536 depends on HAS_DMA +- xtensa: iss: fix handling error cases in iss_net_configure() +- xtensa: iss/network: provide release() callback +- scsi: smartpqi: Fix DMA direction for RAID requests +- PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks +- PCI/portdrv: Don't disable AER reporting in get_port_device_capability() +- KVM: s390: pv: leak the topmost page table when destroy fails +- mmc: block: Add single read for 4k sector cards +- mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R +- memstick/ms_block: Fix a memory leak +- memstick/ms_block: Fix some incorrect memory allocation +- mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch +- staging: rtl8192u: Fix sleep in atomic context bug in dm_fsync_timer_callback +- intel_th: msu: Fix vmalloced buffers +- intel_th: msu-sink: Potential dereference of null pointer +- intel_th: Fix a resource leak in an error handling path +- PCI: endpoint: Don't stop controller when unbinding endpoint function +- dmaengine: sf-pdma: Add multithread support for a DMA channel +- dmaengine: sf-pdma: apply proper spinlock flags in sf_pdma_prep_dma_memcpy() +- KVM: arm64: Don't return from void function +- soundwire: bus_type: fix remove and shutdown support +- PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists +- PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors +- PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu() +- clk: qcom: camcc-sdm845: Fix topology around titan_top power domain +- clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks +- clk: qcom: ipq8074: fix NSS port frequency tables +- clk: qcom: ipq8074: SW workaround for UBI32 PLL lock +- clk: qcom: ipq8074: fix NSS core PLL-s +- usb: host: xhci: use snprintf() in xhci_decode_trb() +- clk: qcom: clk-krait: unlock spin after mux completion +- misc: rtsx: Fix an error handling path in rtsx_pci_probe() +- dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics +- mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv +- mwifiex: Ignore BTCOEX events from the 88W8897 firmware +- KVM: Don't set Accessed/Dirty bits for ZERO_PAGE +- clk: mediatek: reset: Fix written reset bit offset +- iio: accel: bma400: Reordering of header files +- platform/chrome: cros_ec: Always expose last resume result +- iio: accel: bma400: Fix the scale min and max macro values +- netfilter: xtables: Bring SPDX identifier back +- usb: xhci: tegra: Fix error check +- usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init() +- usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe +- usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe +- fpga: altera-pr-ip: fix unsigned comparison with less than zero +- mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path +- mtd: partitions: Fix refcount leak in parse_redboot_of +- mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release +- HID: cp2112: prevent a buffer overflow in cp2112_xfer() +- PCI: tegra194: Fix PM error handling in tegra_pcie_config_ep() +- mtd: rawnand: meson: Fix a potential double free issue +- mtd: maps: Fix refcount leak in ap_flash_init +- mtd: maps: Fix refcount leak in of_flash_probe_versatile +- clk: renesas: r9a06g032: Fix UART clkgrp bitsel +- wireguard: allowedips: don't corrupt stack when detecting overflow +- wireguard: ratelimiter: use hrtimer in selftest +- dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock +- net: ionic: fix error check for vlan flags in ionic_set_nic_features() +- net: rose: fix netdev reference changes +- netdevsim: Avoid allocation warnings triggered from user space +- iavf: Fix max_rate limiting +- net: allow unbound socket for packets in VRF when tcp_l3mdev_accept set +- tcp: Fix data-races around sysctl_tcp_l3mdev_accept. +- ipv6: add READ_ONCE(sk->sk_bound_dev_if) in INET6_MATCH() +- tcp: sk->sk_bound_dev_if once in inet_request_bound_dev_if() +- inet: add READ_ONCE(sk->sk_bound_dev_if) in INET_MATCH() +- crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of +- net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS +- net/mlx5e: Remove WARN_ON when trying to offload an unsupported TLS cipher/version +- media: cedrus: hevc: Add check for invalid timestamp +- wifi: libertas: Fix possible refcount leak in if_usb_probe() +- wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue +- wifi: wil6210: debugfs: fix uninitialized variable use in `wil_write_file_wmi()` +- i2c: mux-gpmux: Add of_node_put() when breaking out of loop +- i2c: cadence: Support PEC for SMBus block read +- Bluetooth: hci_intel: Add check for platform_driver_register +- can: pch_can: pch_can_error(): initialize errc before using it +- can: error: specify the values of data[5..7] of CAN error frames +- can: usb_8dev: do not report txerr and rxerr during bus-off +- can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off +- can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off +- can: sun4i_can: do not report txerr and rxerr during bus-off +- can: hi311x: do not report txerr and rxerr during bus-off +- can: sja1000: do not report txerr and rxerr during bus-off +- can: rcar_can: do not report txerr and rxerr during bus-off +- can: pch_can: do not report txerr and rxerr during bus-off +- selftests/bpf: fix a test for snprintf() overflow +- wifi: p54: add missing parentheses in p54_flush() +- wifi: p54: Fix an error handling path in p54spi_probe() +- wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi() +- fs: check FMODE_LSEEK to control internal pipe splicing +- bpf: Fix subprog names in stack traces. +- selftests: timers: clocksource-switch: fix passing errors from child +- selftests: timers: valid-adjtimex: build fix for newer toolchains +- libbpf: Fix the name of a reused map +- tcp: make retransmitted SKB fit into the send window +- drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed. +- mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init() +- mt76: mt76x02u: fix possible memory leak in __mt76x02u_mcu_send_msg +- media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment +- drm/msm/mdp5: Fix global state lock backoff +- lib: bitmap: provide devm_bitmap_alloc() and devm_bitmap_zalloc() +- lib: bitmap: order includes alphabetically +- drm: bridge: sii8620: fix possible off-by-one +- drm/mediatek: dpi: Only enable dpi after the bridge is enabled +- drm/mediatek: dpi: Remove output format of YUV +- drm/rockchip: Fix an error handling path rockchip_dp_probe() +- drm/rockchip: vop: Don't crash for invalid duplicate_state() +- selftests/xsk: Destroy BPF resources only when ctx refcount drops to 0 +- crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE +- drm/vc4: hdmi: Correct HDMI timing registers for interlaced modes +- drm/vc4: hdmi: Fix timings for interlaced modes +- drm/vc4: hdmi: Limit the BCM2711 to the max without scrambling +- drm/vc4: hdmi: Don't access the connector state in reset if kmalloc fails +- drm/vc4: hdmi: Avoid full hdmi audio fifo writes +- drm/vc4: hdmi: Remove firmware logic for MAI threshold setting +- drm/vc4: dsi: Add correct stop condition to vc4_dsi_encoder_disable iteration +- drm/vc4: dsi: Fix dsi0 interrupt support +- drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type +- drm/vc4: dsi: Introduce a variant structure +- drm/vc4: dsi: Use snprintf for the PHY clocks instead of an array +- drm/vc4: drv: Remove the DSI pointer in vc4_drv +- drm/vc4: dsi: Correct pixel order for DSI0 +- drm/vc4: dsi: Correct DSI divider calculations +- drm/vc4: plane: Fix margin calculations for the right/bottom edges +- drm/vc4: plane: Remove subpixel positioning check +- media: tw686x: Fix memory leak in tw686x_video_init +- media: v4l2-mem2mem: prevent pollerr when last_buffer_dequeued is set +- media: hdpvr: fix error value returns in hdpvr_read +- drm/mcde: Fix refcount leak in mcde_dsi_bind +- drm: bridge: adv7511: Add check for mipi_dsi_driver_register +- crypto: ccp - During shutdown, check SEV data pointer before using +- test_bpf: fix incorrect netdev features +- drm/radeon: fix incorrrect SPDX-License-Identifiers +- wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd() +- media: tw686x: Register the irq at the end of probe +- crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs() +- i2c: Fix a potential use after free +- crypto: sun8i-ss - fix error codes in allocate_flows() +- crypto: sun8i-ss - do not allocate memory when handling hash requests +- drm: adv7511: override i2c address of cec before accessing it +- virtio-gpu: fix a missing check to avoid NULL dereference +- i2c: npcm: Correct slave role behavior +- i2c: npcm: Remove own slave addresses 2:10 +- drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function +- drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs +- drm/mediatek: Modify dsi funcs to atomic operations +- drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers() +- ath11k: Fix incorrect debug_mask mappings +- drm/mipi-dbi: align max_chunk to 2 in spi_transfer +- ath11k: fix netdev open race +- wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c() +- drm/st7735r: Fix module autoloading for Okaya RH128128T +- ath10k: do not enforce interrupt trigger type +- drm/bridge: tc358767: Make sure Refclk clock are enabled +- drm/bridge: tc358767: Move (e)DP bridge endpoint parsing into dedicated function +- pwm: lpc18xx-sct: Convert to devm_platform_ioremap_resource() +- pwm: sifive: Shut down hardware only after pwmchip_remove() completed +- pwm: sifive: Ensure the clk is enabled exactly once per running PWM +- pwm: sifive: Simplify offset calculation for PWMCMP registers +- pwm: sifive: Don't check the return code of pwmchip_remove() +- dm: return early from dm_pr_call() if DM device is suspended +- thermal/tools/tmon: Include pthread and time headers in tmon.h +- selftests/seccomp: Fix compile warning when CC=clang +- nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt() +- drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX +- arm64: dts: qcom: qcs404: Fix incorrect USB2 PHYs assignment +- soc: qcom: Make QCOM_RPMPD depend on PM +- regulator: of: Fix refcount leak bug in of_get_regulation_constraints() +- blktrace: Trace remapped requests correctly +- block: remove the request_queue to argument request based tracepoints +- hwmon: (drivetemp) Add module alias +- blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created +- erofs: avoid consecutive detection for Highmem memory +- arm64: tegra: Fix SDMMC1 CD on P2888 +- arm64: dts: mt7622: fix BPI-R64 WPS button +- bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe() +- ARM: dts: qcom: pm8841: add required thermal-sensor-cells +- soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register +- soc: qcom: ocmem: Fix refcount leak in of_get_ocmem +- regulator: qcom_smd: Fix pm8916_pldo range +- cpufreq: zynq: Fix refcount leak in zynq_get_revision +- ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init +- ARM: OMAP2+: Fix refcount leak in omapdss_init_of +- ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg +- block: fix infinite loop for invalid zone append +- soc: fsl: guts: machine variable might be unset +- locking/lockdep: Fix lockdep_init_map_*() confusion +- arm64: cpufeature: Allow different PMU versions in ID_DFR0_EL1 +- hexagon: select ARCH_WANT_LD_ORPHAN_WARN +- ARM: dts: ast2600-evb: fix board compatible +- ARM: dts: ast2500-evb: fix board compatible +- x86/pmem: Fix platform-device leak in error path +- arm64: dts: renesas: Fix thermal-sensors on single-zone sensors +- soc: amlogic: Fix refcount leak in meson-secure-pwrc.c +- soc: renesas: r8a779a0-sysc: Fix A2DP1 and A2CV[2357] PDR values +- Input: atmel_mxt_ts - fix up inverted RESET handler +- ARM: dts: imx7d-colibri-emmc: add cpu1 supply +- ACPI: processor/idle: Annotate more functions to live in cpuidle section +- ARM: bcm: Fix refcount leak in bcm_kona_smc_init +- arm64: dts: renesas: beacon: Fix regulator node names +- meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init +- ARM: findbit: fix overflowing offset +- spi: spi-rspi: Fix PIO fallback on RZ platforms +- powerpc/64s: Disable stack variable initialisation for prom_init +- selinux: Add boundary check in put_entry() +- PM: hibernate: defer device probing when resuming from hibernation +- firmware: tegra: Fix error check return value of debugfs_create_file() +- ARM: shmobile: rcar-gen2: Increase refcount for new reference +- arm64: dts: allwinner: a64: orangepi-win: Fix LED node name +- arm64: dts: qcom: ipq8074: fix NAND node name +- ACPI: LPSS: Fix missing check in register_device_clock() +- ACPI: PM: save NVS memory for Lenovo G40-45 +- ACPI: EC: Drop the EC_FLAGS_IGNORE_DSDT_GPE quirk +- ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks +- ARM: OMAP2+: display: Fix refcount leak bug +- spi: synquacer: Add missing clk_disable_unprepare() +- ARM: dts: BCM5301X: Add DT for Meraki MR26 +- ARM: dts: imx6ul: fix qspi node compatible +- ARM: dts: imx6ul: fix lcdif node compatible +- ARM: dts: imx6ul: fix csi node compatible +- ARM: dts: imx6ul: fix keypad compatible +- ARM: dts: imx6ul: change operating-points to uint32-matrix +- ARM: dts: imx6ul: add missing properties for sram +- wait: Fix __wait_event_hrtimeout for RT/DL tasks +- irqchip/mips-gic: Check the return value of ioremap() in gic_of_init() +- genirq: GENERIC_IRQ_IPI depends on SMP +- irqchip/mips-gic: Only register IPI domain when SMP is enabled +- genirq: Don't return error on missing optional irq_request_resources() +- ext2: Add more validity checks for inode counts +- arm64: Do not forget syscall when starting a new thread. +- epoll: autoremove wakers even more aggressively +- netfilter: nf_tables: fix null deref due to zeroed list head +- lockdep: Allow tuning tracing capacity constants. +- usb: dwc3: gadget: fix high speed multiplier setting +- usb: dwc3: gadget: refactor dwc3_repare_one_trb +- arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC +- ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC +- USB: HCD: Fix URB giveback issue in tasklet function +- usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion +- coresight: Clear the connection field properly +- MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK +- powerpc/powernv: Avoid crashing if rng is NULL +- powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E +- powerpc/fsl-pci: Fix Class Code of PCIe Root Port +- PCI: Add defines for normal and subtractive PCI bridges +- ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() +- media: [PATCH] pci: atomisp_cmd: fix three missing checks on list iterator +- md-raid10: fix KASAN warning +- md-raid: destroy the bitmap after destroying the thread +- serial: mvebu-uart: uart2 error bits clearing +- fuse: limit nsec +- scsi: qla2xxx: Zero undefined mailbox IN registers +- scsi: qla2xxx: Fix incorrect display of max frame size +- scsi: sg: Allow waiting for commands to complete on removed device +- iio: light: isl29028: Fix the warning in isl29028_remove() +- mtd: rawnand: arasan: Update NAND bus clock instead of system clock +- drm/amdgpu: Check BO's requested pinning domains against its preferred_domains +- drm/nouveau/acpi: Don't print error when we get -EINPROGRESS from pm_runtime +- drm/nouveau: Don't pm_runtime_put_sync(), only pm_runtime_put_autosuspend() +- drm/nouveau: fix another off-by-one in nvbios_addr +- drm/vc4: hdmi: Disable audio if dmas property is present but empty +- drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error +- parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode +- parisc: Check the return value of ioremap() in lba_driver_probe() +- parisc: Fix device names in /proc/iomem +- ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh() +- usbnet: Fix linkwatch use-after-free on disconnect +- fbcon: Fix accelerated fbdev scrolling while logo is still shown +- fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters +- thermal: sysfs: Fix cooling_device_stats_setup() error code path +- fs: Add missing umask strip in vfs_tmpfile +- vfs: Check the truncate maximum size in inode_newsize_ok() +- tty: vt: initialize unicode screen buffer +- ALSA: hda/realtek: Add a quirk for HP OMEN 15 (8786) mute LED +- ALSA: hda/realtek: Add quirk for another Asus K42JZ model +- ALSA: hda/cirrus - support for iMac 12,1 model +- ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model +- riscv: set default pm_power_off to NULL +- KVM: x86: Tag kvm_mmu_x86_module_init() with __init +- KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP +- KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks +- KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value +- KVM: s390: pv: don't present the ecall interrupt twice +- KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0 +- KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case +- KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case +- HID: wacom: Don't register pad_input for touch switch +- HID: wacom: Only report rotation for art pen +- add barriers to buffer_uptodate and set_buffer_uptodate +- wifi: mac80211_hwsim: use 32-bit skb cookie +- wifi: mac80211_hwsim: add back erroneously removed cast +- wifi: mac80211_hwsim: fix race condition in pending packet +- ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx +- ALSA: hda/realtek: Add quirk for Clevo NV45PZ +- ALSA: bcd2000: Fix a UAF bug on the error path of probing +- scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover" +- Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING" +- x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments +- Makefile: link with -z noexecstack --no-warn-rwx-segments +- !233 dma-mapping: provide a benchmark for streaming DMA mapping +- mtd: Add several functions to the fail_function list +- ubi: Reserve sufficient buffer length for the input mask +- ubi: Add six fault injection type for testing +- ubi: Split io_failures into write_failure and erase_failure +- ubi: Using the Fault Injection Framework to reconstruct the debugfs interface +- ubi: Fix permission display of the debugfs files +- dm btree spine: show warning if node_check failed in node_prep_for_write() +- dm btree spine: remove paranoid node_check call in node_prep_for_write() +- signal: fix deadlock caused by calling printk() under sighand->siglock +- mm: fix missing handler for __GFP_NOWARN +- video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write +- PCI: Do not enable AtomicOps on VFs +- tmpfs: fix regressions from wider use of ZERO_PAGE +- tmpfs: do not allocate pages on read +- mm/filemap.c: remove bogus VM_BUG_ON +- dm ioctl: print error when HC and MD do not match +- config: enable CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE by default +- net: preserve skb_end_offset() in skb_unclone_keeptruesize() +- net: add skb_set_end_offset() helper +- ipv6: Fix signed integer overflow in __ip6_append_data +- bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb() +- block: fix use after free for bd_holder_dir +- Revert "block: Fix UAF in bd_link_disk_holder()" +- block: Fix UAF in bd_link_disk_holder() +- tcp_comp: Fix receives err when server receives a large packet +- ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header +- perf/core: Fix reentry problem in perf_output_read_group() +- KVM: arm64: Only probe Hisi ncsnp feature on Hisi CPUs +- scsi: hisi_sas: Revert "scsi: hisi_sas: Limit max hw sectors for v3 HW" +- ACPI: APD: Check for NULL pointer after calling devm_ioremap() +- Revert "ACPICA: Interpreter: fix memory leak by using existing buffer" +- x86/ioapic: add an interface for driver to sync hardware data into memory +- arm64: Provide a command line to disable spectre_bhb mitigation +- arm64: Fix the ipi backtrace warning when softlockup +- arm64: add dump instr before BUG in kernel +- tty: serial: uartlite: Disable clocks in case of errors +- tty: hvc: make symbol 'hvc_udbg_dev' static +- tty: hvc: hvc_vio: Staticify function invoked only by reference +- tty: hvc: hvc_opal: Staticify function invoked by reference +- cgroup: Fix race condition at rebind_subsystems() +- integrity: Make function integrity_add_key() static +- scsi: hisi_sas: Modify v3 HW SATA completion error processing +- scsi: hisi_sas: Fix rescan after deleting a disk +- scsi: hisi_sas: Use sas_ata_wait_after_reset() in IT nexus reset +- scsi: libsas: Refactor sas_ata_hard_reset() +- scsi: hisi_sas: Undo RPM resume for failed notify phy event for v3 HW +- scsi: hisi_sas: Modify v3 HW SSP underflow error processing +- scsi: hisi_sas: Change hisi_sas_control_phy() phyup timeout +- scsi: hisi_sas: Fix phyup timeout on FPGA +- scsi: hisi_sas: Prevent parallel FLR and controller reset +- scsi: hisi_sas: Prevent parallel controller reset and control phy command +- block: Fix kabi broken in blk-merge.h and blk-cgroup.h +- block: don't merge across cgroup boundaries if blkcg is enabled +- stack: Declare {randomize_,}kstack_offset to fix Sparse warnings +- stack: Introduce CONFIG_RANDOMIZE_KSTACK_OFFSET +- stack: Replace "o" output with "r" input constraint +- lkdtm: Add REPORT_STACK for checking stack offsets +- arm64: entry: Enable random_kstack_offset support +- x86/entry: Enable random_kstack_offset support +- stack: Optionally randomize kernel stack offset each syscall +- !228 Intel SPR: Fix watchdog blocking reboot issue on ACPI WDAT watchdog enabled system for OLK-5.10 +- !235 Introduce memory reliable +- !200 x86: support MWAIT C1 as the default idle state +- !231 ROH: Support ROH basic functions and adapt ROH mode for RDMA/hns driver +- !217 AMD: Support HSMP feature for AMD EPYC platforms +- !226 Intel SPR: Adding core PMU support for OLK-5.10 +- !230 Intel SPR: Add Sapphire Rapids server intel-uncore-freq support for OLK-5.10 +- mm: Add sysctl to clear free list pages +- mm/hugetlb: Hugetlb use non-mirrored memory if memory reliable is enabled +- mm/memblock: Introduce ability to alloc memory from specify memory reigon +- mm: Update reliable flag in memory allocaion for reliable task only in task context +- proc: Count reliable memory usage of reliable tasks +- mm: Add reliable_nr_page for accounting reliable memory +- mm: Show debug info about memory reliable if oom occurs +- mm: Introduce proc interface to disable memory reliable features +- mm: Introduce reliable_debug=S to control shmem use mirrored memory +- mm: Introduce shmem mirrored memory limit for memory reliable +- shmem: Count and show reliable shmem info +- mm: Introduce fallback mechanism for memory reliable +- mm: Add reliable memory use limit for user tasks +- mm: thp: Add memory reliable support for hugepaged collapse +- mm: Add support for limiting the usage of reliable memory in pagecache +- mm: add "ReliableFileCache" item in /proc/meminfo +- proc/meminfo: Add "FileCache" item in /proc/meminfo +- mm: Add cmdline for the reliable memory usage of page cache +- mm: Add kernel param for memory reliable +- mm: Clear GFP_RELIABLE if the conditions are not met +- mm: Disable memory reliable when kdump is in progress +- mm: Count reliable memory info based on zone info +- mm: Refactor code in reliable_report_meminfo() +- mm: Export mem_reliable_status() for checking memory reliable status +- mm: Export static key mem_reliable +- mm: Drop shmem reliable related log during startup +- mm: reliable: Return corrent errno in reliable_check +- macintosh/adb: fix oob read in do_adb_query() function +- Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3586 +- Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3587 +- Bluetooth: btusb: Add Realtek RTL8852C support ID 0x0CB8:0xC558 +- Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04C5:0x1675 +- Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04CA:0x4007 +- Bluetooth: btusb: Add support of IMC Networks PID 0x3568 +- Bluetooth: hci_bcm: Add DT compatible for CYW55572 +- Bluetooth: hci_bcm: Add BCM4349B1 variant +- selftests: KVM: Handle compiler optimizations in ucall +- tools/kvm_stat: fix display of error when multiple processes are found +- ACPI: APEI: Better fix to avoid spamming the console with old error logs +- ACPI: video: Shortening quirk list by identifying Clevo by board_name only +- ACPI: video: Force backlight native for some TongFang devices +- selftests/bpf: Check dst_port only on the client socket +- selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads +- ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet() +- ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep() +- x86/speculation: Make all RETbleed mitigations 64-bit only +- x86/bugs: Do not enable IBPB at firmware entry when IBPB is not available +- xfs: prevent UAF in xfs_log_item_in_current_chkpt +- docs/kernel-parameters: Update descriptions for "mitigations=" param with retbleed +- EDAC/ghes: Set the DIMM label unconditionally +- ARM: 9216/1: Fix MAX_DMA_ADDRESS overflow +- mt7601u: add USB device ID for some versions of XiaoDu WiFi Dongle. +- page_alloc: fix invalid watermark check on a negative value +- ARM: crypto: comment out gcc warning that breaks clang builds +- sctp: leave the err path free in sctp_stream_init to sctp_stream_free +- sfc: disable softirqs for ptp TX +- perf symbol: Correct address for bss symbols +- virtio-net: fix the race between refill work and close +- sctp: fix sleep in atomic context bug in timer handlers +- i40e: Fix interface init with MSI interrupts (no MSI-X) +- tcp: Fix data-races around sysctl_tcp_reflect_tos. +- tcp: Fix a data-race around sysctl_tcp_comp_sack_nr. +- tcp: Fix a data-race around sysctl_tcp_comp_sack_slack_ns. +- tcp: Fix a data-race around sysctl_tcp_comp_sack_delay_ns. +- net: macsec: fix potential resource leak in macsec_add_rxsa() and macsec_add_txsa() +- macsec: always read MACSEC_SA_ATTR_PN as a u64 +- macsec: limit replay window size with XPN +- macsec: fix error message in macsec_add_rxsa and _txsa +- macsec: fix NULL deref in macsec_add_rxsa +- Documentation: fix sctp_wmem in ip-sysctl.rst +- tcp: Fix a data-race around sysctl_tcp_invalid_ratelimit. +- tcp: Fix a data-race around sysctl_tcp_autocorking. +- tcp: Fix a data-race around sysctl_tcp_min_rtt_wlen. +- tcp: Fix a data-race around sysctl_tcp_min_tso_segs. +- net: sungem_phy: Add of_node_put() for reference returned by of_get_parent() +- igmp: Fix data-races around sysctl_igmp_qrv. +- net/tls: Remove the context from the list in tls_device_down +- net: ping6: Fix memleak in ipv6_renew_options(). +- tcp: Fix a data-race around sysctl_tcp_challenge_ack_limit. +- tcp: Fix a data-race around sysctl_tcp_limit_output_bytes. +- tcp: Fix data-races around sysctl_tcp_moderate_rcvbuf. +- Revert "tcp: change pingpong threshold to 3" +- scsi: ufs: host: Hold reference returned by of_parse_phandle() +- ice: do not setup vlan for loopback VSI +- ice: check (DD | EOF) bits on Rx descriptor rather than (EOP | RS) +- tcp: Fix data-races around sysctl_tcp_no_ssthresh_metrics_save. +- tcp: Fix a data-race around sysctl_tcp_nometrics_save. +- tcp: Fix a data-race around sysctl_tcp_frto. +- tcp: Fix a data-race around sysctl_tcp_adv_win_scale. +- tcp: Fix a data-race around sysctl_tcp_app_win. +- tcp: Fix data-races around sysctl_tcp_dsack. +- watch_queue: Fix missing locking in add_watch_to_object() +- watch_queue: Fix missing rcu annotation +- nouveau/svm: Fix to migrate all requested pages +- s390/archrandom: prevent CPACF trng invocations in interrupt context +- ntfs: fix use-after-free in ntfs_ucsncmp() +- Revert "ocfs2: mount shared volume without ha stack" +- Bluetooth: L2CAP: Fix use-after-free caused by l2cap_chan_put +- net: usb: ax88179_178a needs FLAG_SEND_ZLP +- x86/alternative: Report missing return thunk details +- x86/amd: Use IBPB for firmware calls +- Bluetooth: Fix bt_skb_sendmmsg not allocating partial chunks +- Bluetooth: SCO: Fix sco_send_frame returning skb->len +- Bluetooth: Fix passing NULL to PTR_ERR +- Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg +- Bluetooth: SCO: Replace use of memcpy_from_msg with bt_skb_sendmsg +- Bluetooth: Add bt_skb_sendmmsg helper +- Bluetooth: Add bt_skb_sendmsg helper +- ALSA: memalloc: Align buffer allocations in page size +- bitfield.h: Fix "type of reg too small for mask" test +- drm/imx/dcss: fix unused but set variable warnings +- dlm: fix pending remove if msg allocation fails +- x86/bugs: Warn when "ibrs" mitigation is selected on Enhanced IBRS parts +- sched/deadline: Fix BUG_ON condition for deboosted tasks +- bpf: Make sure mac_header was set before using it +- mm/mempolicy: fix uninit-value in mpol_rebind_policy() +- KVM: Don't null dereference ops->destroy +- spi: bcm2835: bcm2835_spi_handle_err(): fix NULL pointer deref for non DMA transfers +- tcp: Fix data-races around sysctl_tcp_max_reordering. +- tcp: Fix a data-race around sysctl_tcp_rfc1337. +- tcp: Fix a data-race around sysctl_tcp_stdurg. +- tcp: Fix a data-race around sysctl_tcp_retrans_collapse. +- tcp: Fix data-races around sysctl_tcp_slow_start_after_idle. +- tcp: Fix a data-race around sysctl_tcp_thin_linear_timeouts. +- tcp: Fix data-races around sysctl_tcp_recovery. +- tcp: Fix a data-race around sysctl_tcp_early_retrans. +- tcp: Fix data-races around sysctl knobs related to SYN option. +- udp: Fix a data-race around sysctl_udp_l3mdev_accept. +- ip: Fix data-races around sysctl_ip_prot_sock. +- ipv4: Fix a data-race around sysctl_fib_multipath_use_neigh. +- drm/imx/dcss: Add missing of_node_put() in fail path +- be2net: Fix buffer overflow in be_get_module_eeprom +- gpio: pca953x: use the correct register address when regcache sync during init +- gpio: pca953x: use the correct range when do regmap sync +- gpio: pca953x: only use single read/write for No AI mode +- ixgbe: Add locking to prevent panic when setting sriov_numvfs to zero +- i40e: Fix erroneous adapter reinitialization during recovery process +- iavf: Fix handling of dummy receive descriptors +- tcp: Fix data-races around sysctl_tcp_fastopen_blackhole_timeout. +- tcp: Fix data-races around sysctl_tcp_fastopen. +- tcp: Fix data-races around sysctl_max_syn_backlog. +- tcp: Fix a data-race around sysctl_tcp_tw_reuse. +- tcp: Fix a data-race around sysctl_tcp_notsent_lowat. +- tcp: Fix data-races around some timeout sysctl knobs. +- tcp: Fix data-races around sysctl_tcp_reordering. +- tcp: Fix data-races around sysctl_tcp_syncookies. +- tcp: Fix data-races around keepalive sysctl knobs. +- igmp: Fix data-races around sysctl_igmp_max_msf. +- igmp: Fix a data-race around sysctl_igmp_max_memberships. +- igmp: Fix data-races around sysctl_igmp_llm_reports. +- net/tls: Fix race in TLS device down flow +- net: stmmac: fix dma queue left shift overflow issue +- i2c: cadence: Change large transfer count reset logic to be unconditional +- net: stmmac: fix unbalanced ptp clock issue in suspend/resume flow +- tcp: Fix a data-race around sysctl_tcp_probe_interval. +- tcp: Fix a data-race around sysctl_tcp_probe_threshold. +- tcp: Fix a data-race around sysctl_tcp_mtu_probe_floor. +- tcp: Fix data-races around sysctl_tcp_min_snd_mss. +- tcp: Fix data-races around sysctl_tcp_base_mss. +- tcp: Fix data-races around sysctl_tcp_mtu_probing. +- tcp/dccp: Fix a data-race around sysctl_tcp_fwmark_accept. +- ip: Fix a data-race around sysctl_fwmark_reflect. +- ip: Fix a data-race around sysctl_ip_autobind_reuse. +- ip: Fix data-races around sysctl_ip_nonlocal_bind. +- ip: Fix data-races around sysctl_ip_fwd_update_priority. +- ip: Fix data-races around sysctl_ip_fwd_use_pmtu. +- ip: Fix data-races around sysctl_ip_no_pmtu_disc. +- igc: Reinstate IGC_REMOVED logic and implement it properly +- drm/amdgpu/display: add quirk handling for stutter mode +- perf/core: Fix data race between perf_event_set_output() and perf_mmap_close() +- pinctrl: ralink: Check for null return of devm_kcalloc +- power/reset: arm-versatile: Fix refcount leak in versatile_reboot_probe +- serial: mvebu-uart: correctly report configured baudrate value +- PCI: hv: Fix interrupt mapping for multi-MSI +- PCI: hv: Reuse existing IRTE allocation in compose_msi_msg() +- PCI: hv: Fix hv_arch_irq_unmask() for multi-MSI +- PCI: hv: Fix multi-MSI to allow more than one MSI vector +- Revert "m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch" +- net: inline rollback_registered_many() +- net: move rollback_registered_many() +- net: inline rollback_registered() +- net: move net_set_todo inside rollback_registered() +- docs: net: explain struct net_device lifetime +- xen/gntdev: Ignore failure to unmap INVALID_GRANT_HANDLE +- mlxsw: spectrum_router: Fix IPv4 nexthop gateway indication +- riscv: add as-options for modules with assembly compontents +- pinctrl: stm32: fix optional IRQ support to gpios +- !199 bugfix: Limit "Dummy wait" workaround to old Intel systems in acpi idle driver +- !195 kernel: add OPENEULER_VERSION_CODE to version.h +- !175 AMD: Add minimum support for AMD EPYC Genoa platform +- !168 SPR: Add vfio_group_iommu_domain interface to support DLB +- !128 [OLK-5.10] Add Zhaoxin rng driver +- RDMA/hns: Pass mac type to user driver for ROH mode +- RDMA/hns: Support RDMA_CM in ROH mode +- RDMA/hns: Add ROH basic configuration and check +- RDMA/hns: Add new device ID +- roh/hns3: Add support for roh dfx(debugfs) +- roh/hns3: Add support for roh reset +- roh/core: Add support for inetaddr notifier in roh/core +- roh/hns3: Add support for roh abnormal interruption +- roh/core: Add roh device sysfs node +- dma-mapping:add a new configuration for map_benchmark. +- dma-mapping: benchmark: pretend DMA is transmitting +- dma-mapping: benchmark: use u8 for reserved field in uAPI structure +- dma-mapping: benchmark: fix kernel crash when dma_map_single fails +- selftests/dma: add test application for DMA_MAP_BENCHMARK +- dma-mapping: add benchmark support for streaming DMA APIs +- !190 sharepool: Update patches from hulk +- mm/sharepool: fix the incorrect judgement of the addr range +- mm/sharepool: Fix sharepool hugepage cgroup uncount error. +- mm/sharepool: Rebind the numa node when fallback to normal pages +- mm/sharepool: Remove the leading double underlines for function name +- mm/sharepool: Fix code-style warnings +- mm/sharepool: fix hugepage_rsvd count increase error +- mm/sharepool: check size=0 in mg_sp_make_share_k2u() +- mm/sharepool: fix potential AA deadlock +- mm/sharepool: delete unused codes +- mm/sharepool: bugfix for 2M U2K +- mm/sharepool: Support alloc ro mapping +- mm/sharepool: Extract sp_mapping_find +- mm/sharepool: replace spg->{dvpp|normal} with spg->mapping[SP_MAPPING_{DVPP|NORMAL}] +- mm/sharepool: Rename sp_mapping.flag to sp_mapping.type +- mm/sharepool: Make the definitions of MMAP_SHARE_POOL_{START|16G_START} more readable +- mm/sharepool: Avoid UAF on mm +- mm/sharepool: Check the maximum value of spg_id +- mm/sharepool: Avoid UAF on spa +- mm/sharepool: delete unnecessary judgment +- mm/sharepool: Fix UAF reported by KASAN +- mm/sharepool: fix deadlock in sp_check_mmap_addr +- mm/sharepool: fix deadlock in spa_stat_of_mapping_show +- mm/sharepool: fix softlockup in high pressure use case. +- mm/sharepool: delete redundant codes +- mm/sharepool: Add a read lock in proc_usage_show() +- mm/sharepool: fix static code-check errors +- mm/sharepool: fix statistics error +- mm/sharepool: Remove the comment and fix a bug in mg_sp_group_id_by_pid() +- mm/sharepool: Remove enable_mdc_default_group and change the definition of is_process_in_group() +- mm/sharepool: Remove sp_device_number_detect function +- mm/sharepool: Remove unused sp_dev_va_start and sp_dev_va_size +- mm/sharepool: Delete unused sysctl interface +- mm/sharepool: fix dvpp spm redundant print error +- mm/sharepool: proc_sp_group_state bugfix +- mm/sharepool: remove deprecated interfaces +- platform/x86/intel-uncore-freq: Add Sapphire Rapids server support +- watchdog: wdat_wdt: Stop watchdog when uninstalling module +- watchdog: wdat_wdt: Using the existing function to check parameter timeout +- perf/x86/intel: Update the FRONTEND MSR mask on Sapphire Rapids +- perf/x86/intel: Fix instructions:ppp support in Sapphire Rapids +- perf/x86/intel: Add more events requires FRONTEND MSR on Sapphire Rapids +- perf/x86/intel: Support CPUID 10.ECX to disable fixed counters +- perf/x86/intel: Add perf core PMU support for Sapphire Rapids +- perf/x86/intel: Filter unsupported Topdown metrics event +- perf/x86/intel: Factor out intel_update_topdown_event() +- perf/core: Add PERF_SAMPLE_WEIGHT_STRUCT +- config: add HW_RANDOM_ZHAOXIN for Zhaoxin CPUs +- Add Zhaoxin rng driver +- defconfig: add CONFIG_AMD_HSMP=m to openeuler_defconfig +- amd_hsmp: Add HSMP protocol version 5 messages +- platform/x86: Add AMD system management interface +- vfio/type1: Fix kabi issue for vfio_iommu_driver_ops +- x86: Remove vendor checks from prefer_mwait_c1_over_halt +- x86: Handle idle=nomwait cmdline properly for x86_idle +- KVM: x86/mmu: Support shadowing NPT when 5-level paging is enabled in host +- KVM: SVM: Allow AVIC support on system w/ physical APIC ID > 255 +- KVM: x86: SVM: move avic definitions from AMD's spec to svm.h +- KVM: SVM: Add 5-level page table support for SVM +- KVM: x86: Prevent KVM SVM from loading on kernels with 5-level paging +- x86/MCE/AMD, EDAC/mce_amd: Support non-uniform MCA bank type enumeration +- x86/MCE/AMD, EDAC/amd64: Move address translation to AMD64 EDAC +- x86/MCE/AMD: Export smca_get_bank_type symbol +- x86/MCE/AMD, EDAC/mce_amd: Add new SMCA bank types +- x86/MCE/AMD, EDAC/mce_amd: Add new SMCA bank types +- EDAC/amd64: Add new register offset support and related changes +- EDAC/amd64: Set memory type per DIMM +- EDAC/amd64: Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh +- EDAC: Add RDDR5 and LRDDR5 memory types +- hwmon: (k10temp) Support up to 12 CCDs on AMD Family of processors +- hwmon: (k10temp) Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh +- x86/amd_nb: Add AMD Family 19h Models (10h-1Fh) and (A0h-AFh) PCI IDs +- hwmon: (k10temp) Remove unused definitions +- hwmon: (k10temp) Remove residues of current and voltage +- hwmon: (k10temp) Add support for yellow carp +- hwmon: (k10temp) Rework the temperature offset calculation +- hwmon: (k10temp) Don't show Tdie for all Zen/Zen2/Zen3 CPU/APU +- hwmon: (k10temp) Add additional missing Zen2 and Zen3 APUs +- hwmon: (k10temp) support Zen3 APUs +- hwmon: (k10temp) Zen3 Ryzen Desktop CPUs support +- x86/amd_nb: Add AMD family 19h model 50h PCI ids +- crypto: ccp - Add support for new CCP/PSP device ID +- ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel systems +- kernel: add OPENEULER_VERSION_CODE to version.h +- vfio/type1: Add vfio_group_iommu_domain() + +* Tue Nov 08 2022 Zheng Zengkai - 5.10.0-126.0.0.66 +- bnx2x: fix potential memory leak in bnx2x_tpa_stop() +- scsi: stex: Properly zero out the passthrough command structure +- Fix the header file location error and adjust the function and structure version. +- !219 【OLK-5.10】RDMA/hns: Support for bonding +- !224 ROH: Support hns roh device init and adapt roh mac type +- !165 ascend agent smmu: an implementation of ARM SMMUv3 ATOS feature +- ascend agent smmu: an implementation of ARM SMMUv3 ATOS feature +- roh/hns3: Add ROH cmdq interface support +- libbpf: Fix null-pointer dereference in find_prog_by_sec_insn() +- blktrace: remove unnessary stop block trace in 'blk_trace_shutdown' +- blktrace: fix possible memleak in '__blk_trace_remove' +- blktrace: introduce 'blk_trace_{start,stop}' helper +- ext4: record error information when insert extent failed in 'ext4_split_extent_at' +- net: tun: fix bugs for oversize packet when napi frags enabled +- nbd: refactor size updates +- nbd: move the task_recv check into nbd_size_update +- nbd: remove the call to set_blocksize +- Revert "cifs: fix double free race when mount fails in cifs_get_root()" +- roh/hns3: Add ROH hns3 driver and register a ROH device +- net: hns3: add support for ROH reset +- net: hns3: add support for ROH ras +- net: hns3: intercept invalid MAC address setting in ROH +- net: hns3: add ROH MAC type definitions and support query MAC type +- net: hns3: HNAE3 framework add support for ROH client +- pgp: Check result of crypto_alloc_shash properly +- RDMA/hns: support RoCE bonding +- !85 [OLK-5.10] x86/cpufeatures: Add Zhaoxin feature bits +- !166 SPR: KVM: Add new instructions, Bus Lock Debug Exception, Bus Lock VM exit and Notify VM exit support +- x86/cpufeatures: Add Zhaoxin feature bits +- !171 SPR: HBM retry_rd_err_log support +- !210 x86/tsc: use topology_max_packages() in tsc watchdog check +- !198 update patches for sw64 architecture +- scsi: libsas: Resume SAS host for phy reset or enable via sysfs +- RDMA/hns: Fix device ex_cmd capacity +- RDMA/hns: Add support for sending port down event fastly +- RDMA/hns: Deliver net device event to ofed +- RDMA/hns: Dump whole QP/CQ/MR resource in raw +- config: support sec crypto. +- bootmem: remove the vmemmap pages from kmemleak in put_page_bootmem +- arm64: memmap: fix request_resource return error +- atm: idt77252: fix use-after-free bugs caused by tst_timer +- fs: fix UAF/GPF bug in nilfs_mdt_destroy +- wifi: Fix potential buffer overflow in 'brcmf_fweh_event_worker' +- nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level() +- mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page +- usb: mon: make mmapped memory read only +- blk-mq: avoid extending delays of active hctx from blk_mq_delay_run_hw_queues +- scsi: sd: Revert "scsi: sd: Remove a local variable" +- devlink: Fix use-after-free after a failed reload +- nouveau: fix migrate_to_ram() for faulting page +- mm/memory.c: fix race when faulting a device private page +- vsock: Fix memory leak in vsock_connect() +- ext4: fix bug_on in __es_tree_search caused by bad boot loader inode +- ext4: add EXT4_IGET_BAD flag to prevent unexpected bad inode +- ext4: add helper to check quota inums +- ext4: fix bug_on in __es_tree_search caused by bad quota inode +- netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find() +- nilfs2: fix leak of nilfs_root in case of writer thread creation failure +- net: mvpp2: fix mvpp2 debugfs leak +- x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry +- kprobes: don't call disarm_kprobe() for disabled kprobes +- block: fix inaccurate io_ticks by set 'precise_iostat' +- arm64: fix rodata=full +- block: fix kabi broken in request_queue +- blk-mq: fix kabi broken in blk_mq_tags +- blk-mq: fix kabi broken in blk_mq_tag_set +- blk-mq: Fix blk_mq_tagset_busy_iter() for shared tags +- blk-mq-sched: Don't reference queue tagset in blk_mq_sched_tags_teardown() +- blk-mq: Optimise blk_mq_queue_tag_busy_iter() for shared tags +- blk-mq: Stop using pointers for blk_mq_tags bitmap tags +- blk-mq: Use shared tags for shared sbitmap support +- blk-mq: Always use blk_mq_is_sbitmap_shared +- blk-mq: Refactor and rename blk_mq_free_map_and_{requests->rqs}() +- blk-mq: Add blk_mq_alloc_map_and_rqs() +- blk-mq: Add blk_mq_tag_update_sched_shared_sbitmap() +- blk-mq: Don't clear driver tags own mapping +- blk-mq: Pass driver tags to blk_mq_clear_rq_mapping() +- blk-mq-sched: Rename blk_mq_sched_free_{requests -> rqs}() +- blk-mq-sched: Rename blk_mq_sched_alloc_{tags -> map_and_rqs}() +- blk-mq: Invert check in blk_mq_update_nr_requests() +- blk-mq: Relocate shared sbitmap resize in blk_mq_update_nr_requests() +- blk-mq: Change rqs check in blk_mq_free_rqs() +- Revert "blk-mq: fix kabi broken by "blk-mq: Use request queue-wide tags for tagset-wide sbitmap"" +- block: fix null-deref in percpu_ref_put +- x86/bus_lock: Don't assume the init value of DEBUGCTLMSR.BUS_LOCK_DETECT to be zero +- KVM: X86: Expose bus lock debug exception to guest +- KVM: X86: Add support for the emulation of DR6_BUS_LOCK bit +- KVM: X86: Rename DR6_INIT to DR6_ACTIVE_LOW +- KVM: nSVM: set fixed bits by hand +- KVM: Fix references to non-existent KVM_CAP_TRIPLE_FAULT_EVENT +- KVM: VMX: Enable Notify VM exit +- KVM: selftests: Add a test to get/set triple fault event +- KVM: x86: Extend KVM_{G,S}ET_VCPU_EVENTS to support pending triple fault +- KVM: VMX: Remove redundant handling of bus lock vmexit +- KVM: nVMX: Fix nested bus lock VM exit +- tools headers UAPI: Sync KVM's kvm.h and vmx.h headers with the kernel sources +- KVM: X86: Add the Document for KVM_CAP_X86_BUS_LOCK_EXIT +- KVM: VMX: Enable bus lock VM exit +- KVM: X86: Reset the vcpu->run->flags at the beginning of vcpu_run +- KVM: Expose AVX_VNNI instruction to guset +- KVM: x86: Expose AVX512_FP16 for supported CPUID +- !161 SPR: IPI Virtualization Support +- x86/tsc: use topology_max_packages() in tsc watchdog check +- x86: Use -mindirect-branch-cs-prefix for RETPOLINE builds +- x86/asm/32: Fix ANNOTATE_UNRET_SAFE use on 32-bit +- objtool: Fix objtool regression on x32 systems +- objtool: Fix symbol creation +- objtool: Fix type of reloc::addend +- objtool: Fix code relocs vs weak symbols +- x86/alternative: Add debug prints to apply_retpolines() +- x86/alternative: Try inline spectre_v2=retpoline,amd +- x86/alternative: Handle Jcc __x86_indirect_thunk_ +eg +- x86/insn-eval: Handle return values from the decoder +- x86/pat: Fix x86_has_pat_wp() +- serial: 8250: Fix PM usage_count for console handover +- serial: pl011: UPSTAT_AUTORTS requires .throttle/unthrottle +- serial: stm32: Clear prev values before setting RTS delays +- serial: 8250: fix return error code in serial8250_request_std_resource() +- vt: fix memory overlapping when deleting chars in the buffer +- tty: serial: samsung_tty: set dma burst_size to 1 +- usb: dwc3: gadget: Fix event pending check +- usb: typec: add missing uevent when partner support PD +- USB: serial: ftdi_sio: add Belimo device ids +- signal handling: don't use BUG_ON() for debugging +- nvme-pci: phison e16 has bogus namespace ids +- Revert "can: xilinx_can: Limit CANFD brp to 2" +- ARM: dts: stm32: use the correct clock source for CEC on stm32mp151 +- soc: ixp4xx/npe: Fix unused match warning +- irqchip: or1k-pic: Undefine mask_ack for level triggered hardware +- ASoC: madera: Fix event generation for rate controls +- ASoC: madera: Fix event generation for OUT1 demux +- ASoC: cs47l15: Fix event generation for low power mux control +- ASoC: dapm: Initialise kcontrol data for mux/demux controls +- ASoC: wm5110: Fix DRE control +- ASoC: SOF: Intel: hda-loader: Clarify the cl_dsp_init() flow +- pinctrl: aspeed: Fix potential NULL dereference in aspeed_pinmux_set_mux() +- ASoC: ops: Fix off by one in range control validation +- net: sfp: fix memory leak in sfp_probe() +- nvme-tcp: always fail a request when sending it failed +- NFC: nxp-nci: don't print header length mismatch on i2c error +- net: tipc: fix possible refcount leak in tipc_sk_create() +- platform/x86: hp-wmi: Ignore Sanitization Mode event +- cpufreq: pmac32-cpufreq: Fix refcount leak bug +- scsi: hisi_sas: Limit max hw sectors for v3 HW +- netfilter: br_netfilter: do not skip all hooks with 0 priority +- virtio_mmio: Restore guest page size on resume +- virtio_mmio: Add missing PM calls to freeze/restore +- mm: sysctl: fix missing numa_stat when !CONFIG_HUGETLB_PAGE +- net/tls: Check for errors in tls_device_init +- KVM: x86: Fully initialize 'struct kvm_lapic_irq' in kvm_pv_kick_cpu_op() +- net: atlantic: remove aq_nic_deinit() when resume +- net: atlantic: remove deep parameter on suspend/resume functions +- sfc: fix kernel panic when creating VF +- seg6: bpf: fix skb checksum in bpf_push_seg6_encap() +- seg6: fix skb checksum in SRv6 End.B6 and End.B6.Encaps behaviors +- seg6: fix skb checksum evaluation in SRH encapsulation/insertion +- sfc: fix use after free when disabling sriov +- ima: Fix potential memory leak in ima_init_crypto() +- ima: force signature verification when CONFIG_KEXEC_SIG is configured +- net: ftgmac100: Hold reference returned by of_get_child_by_name() +- nexthop: Fix data-races around nexthop_compat_mode. +- ipv4: Fix data-races around sysctl_ip_dynaddr. +- raw: Fix a data-race around sysctl_raw_l3mdev_accept. +- icmp: Fix a data-race around sysctl_icmp_ratemask. +- icmp: Fix a data-race around sysctl_icmp_ratelimit. +- sysctl: Fix data-races in proc_dointvec_ms_jiffies(). +- drm/i915/gt: Serialize TLB invalidates with GT resets +- drm/i915/selftests: fix a couple IS_ERR() vs NULL tests +- ARM: dts: sunxi: Fix SPI NOR campatible on Orange Pi Zero +- ARM: dts: at91: sama5d2: Fix typo in i2s1 node +- ipv4: Fix a data-race around sysctl_fib_sync_mem. +- icmp: Fix data-races around sysctl. +- cipso: Fix data-races around sysctl. +- net: Fix data-races around sysctl_mem. +- inetpeer: Fix data-races around sysctl. +- tcp: Fix a data-race around sysctl_tcp_max_orphans. +- sysctl: Fix data races in proc_dointvec_jiffies(). +- sysctl: Fix data races in proc_doulongvec_minmax(). +- sysctl: Fix data races in proc_douintvec_minmax(). +- sysctl: Fix data races in proc_dointvec_minmax(). +- sysctl: Fix data races in proc_douintvec(). +- sysctl: Fix data races in proc_dointvec(). +- net: stmmac: dwc-qos: Disable split header for Tegra194 +- ASoC: Intel: Skylake: Correct the handling of fmt_config flexible array +- ASoC: Intel: Skylake: Correct the ssp rate discovery in skl_get_ssp_clks() +- ASoC: tas2764: Fix amp gain register offset & default +- ASoC: tas2764: Correct playback volume range +- ASoC: tas2764: Fix and extend FSYNC polarity handling +- ASoC: tas2764: Add post reset delays +- ASoC: sgtl5000: Fix noise on shutdown/remove +- ima: Fix a potential integer overflow in ima_appraise_measurement +- drm/i915: fix a possible refcount leak in intel_dp_add_mst_connector() +- net/mlx5e: Fix capability check for updating vnic env counters +- net/mlx5e: kTLS, Fix build time constant test in RX +- net/mlx5e: kTLS, Fix build time constant test in TX +- ARM: 9210/1: Mark the FDT_FIXED sections as shareable +- ARM: 9209/1: Spectre-BHB: avoid pr_info() every time a CPU comes out of idle +- spi: amd: Limit max transfer and message size +- ARM: dts: imx6qdl-ts7970: Fix ngpio typo and count +- ext4: fix race condition between ext4_write and ext4_convert_inline_data +- Revert "evm: Fix memleak in init_desc" +- sh: convert nommu io{re,un}map() to static inline functions +- nilfs2: fix incorrect masking of permission flags for symlinks +- fs/remap: constrain dedupe of EOF blocks +- drm/panfrost: Fix shrinker list corruption by madvise IOCTL +- drm/panfrost: Put mapping instead of shmem obj on panfrost_mmu_map_fault_addr() error +- btrfs: return -EAGAIN for NOWAIT dio reads/writes on compressed and inline extents +- wifi: mac80211: fix queue selection for mesh/OCB interfaces +- ARM: 9214/1: alignment: advance IT state after emulating Thumb instruction +- ARM: 9213/1: Print message about disabled Spectre workarounds only once +- ip: fix dflt addr selection for connected nexthop +- net: sock: tracing: Fix sock_exceed_buf_limit not to dereference stale pointer +- tracing/histograms: Fix memory leak problem +- mm: split huge PUD on wp_huge_pud fallback +- fix race between exit_itimers() and /proc/pid/timers +- xen/netback: avoid entering xenvif_rx_next_skb() with an empty rx queue +- ALSA: hda/realtek - Enable the headset-mic on a Xiaomi's laptop +- ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc221 +- ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671 +- ALSA: hda/realtek: Fix headset mic for Acer SF313-51 +- ALSA: hda/conexant: Apply quirk for another HP ProDesk 600 G3 model +- ALSA: hda - Add fixup for Dell Latitidue E5430 +- Revert "mtd: rawnand: gpmi: Fix setting busy timeout setting" +- dmaengine: ti: Add missing put_device in ti_dra7_xbar_route_allocate +- dmaengine: ti: Fix refcount leak in ti_dra7_xbar_route_allocate +- dmaengine: at_xdma: handle errors of at_xdmac_alloc_desc() correctly +- dmaengine: pl330: Fix lockdep warning about non-static key +- ida: don't use BUG_ON() for debugging +- dt-bindings: dma: allwinner,sun50i-a64-dma: Fix min/max typo +- misc: rtsx_usb: set return value in rsp_buf alloc err path +- misc: rtsx_usb: use separate command and response buffers +- misc: rtsx_usb: fix use of dma mapped buffer for usb bulk transfer +- dmaengine: imx-sdma: Allow imx8m for imx7 FW revs +- i2c: cadence: Unregister the clk notifier in error path +- r8169: fix accessing unset transport header +- selftests: forwarding: fix error message in learning_test +- selftests: forwarding: fix learning_test when h1 supports IFF_UNICAST_FLT +- selftests: forwarding: fix flood_unicast_test when h2 supports IFF_UNICAST_FLT +- ibmvnic: Properly dispose of all skbs during a failover. +- i40e: Fix dropped jumbo frames statistics +- xsk: Clear page contiguity bit when unmapping pool +- ARM: dts: at91: sama5d2_icp: fix eeprom compatibles +- ARM: dts: at91: sam9x60ek: fix eeprom compatible and size +- ARM: at91: pm: use proper compatibles for sam9x60's rtc and rtt +- ARM: at91: pm: use proper compatible for sama5d2's rtc +- arm64: dts: qcom: msm8992-*: Fix vdd_lvs1_2-supply typo +- pinctrl: sunxi: sunxi_pconf_set: use correct offset +- arm64: dts: imx8mp-evk: correct I2C3 pad settings +- arm64: dts: imx8mp-evk: correct gpio-led pad settings +- arm64: dts: imx8mp-evk: correct the uart2 pinctl value +- arm64: dts: imx8mp-evk: correct mmc pad settings +- arm64: dts: qcom: msm8994: Fix CPU6/7 reg values +- pinctrl: sunxi: a83t: Fix NAND function name for some pins +- ARM: meson: Fix refcount leak in meson_smp_prepare_cpus +- xfs: remove incorrect ASSERT in xfs_rename +- can: kvaser_usb: kvaser_usb_leaf: fix bittiming limits +- can: kvaser_usb: kvaser_usb_leaf: fix CAN clock frequency regression +- can: kvaser_usb: replace run-time checks with struct kvaser_usb_driver_info +- powerpc/powernv: delay rng platform device creation until later in boot +- video: of_display_timing.h: include errno.h +- memregion: Fix memregion_free() fallback definition +- PM: runtime: Redefine pm_runtime_release_supplier() +- fbdev: fbmem: Fix logo center image dx issue +- iommu/vt-d: Fix PCI bus rescan device hot add +- netfilter: nft_set_pipapo: release elements in clone from abort path +- net: rose: fix UAF bug caused by rose_t0timer_expiry +- usbnet: fix memory leak in error case +- bpf: Fix insufficient bounds propagation from adjust_scalar_min_max_vals +- bpf: Fix incorrect verifier simulation around jmp32's jeq/jne +- can: gs_usb: gs_usb_open/close(): fix memory leak +- can: grcan: grcan_probe(): remove extra of_node_get() +- can: bcm: use call_rcu() instead of costly synchronize_rcu() +- ALSA: hda/realtek: Add quirk for Clevo L140PU +- RDMA/hns: Support DSCP of userspace +- RDMA/hns: Fix page size cap from firmwall +- RDMA/hns: Fix level-0 addressing for huge page +- RDMA/hns: Support adaptive hopnum for MTR +- RDMA/hns: Support flexible pagesize for MTR +- RDMA/hns: Alloc MTR memory before alloc_mtt() +- RDMA/hns: Refactor mtr_init_buf_cfg() +- RDMA/hns: Fix supported page size +- RDMA/hns: Fix PBL page MTR find +- clocksource/drivers/ixp4xx: remove EXPORT_SYMBOL_GPL from ixp4xx_timer_setup() +- net: usb: qmi_wwan: add Telit 0x1070 composition +- net: usb: qmi_wwan: add Telit 0x1060 composition +- selftests/rseq: Change type of rseq_offset to ptrdiff_t +- selftests/rseq: x86-32: use %gs segment selector for accessing rseq thread area +- selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread area +- selftests/rseq: Fix: work-around asm goto compiler bugs +- selftests/rseq: Remove arm/mips asm goto compiler work-around +- selftests/rseq: Fix warnings about #if checks of undefined tokens +- selftests/rseq: Fix ppc32 offsets by using long rather than off_t +- selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for load/store +- selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian +- selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35 +- selftests/rseq: Introduce thread pointer getters +- selftests/rseq: Introduce rseq_get_abi() helper +- selftests/rseq: Remove volatile from __rseq_abi +- selftests/rseq: Remove useless assignment to cpu variable +- selftests/rseq: introduce own copy of rseq uapi header +- selftests/rseq: remove ARRAY_SIZE define from individual tests +- hwmon: (ibmaem) don't call platform_device_del() if platform_device_add() fails +- ipv6/sit: fix ipip6_tunnel_get_prl return value +- sit: use min +- drivers: cpufreq: Add missing of_node_put() in qoriq-cpufreq.c +- xen/gntdev: Avoid blocking in unmap_grant_pages() +- tcp: add a missing nf_reset_ct() in 3WHS handling +- xfs: fix xfs_trans slab cache name +- xfs: ensure xfs_errortag_random_default matches XFS_ERRTAG_MAX +- net: tun: avoid disabling NAPI twice +- tunnels: do not assume mac header is set in skb_tunnel_check_pmtu() +- io_uring: ensure that send/sendmsg and recv/recvmsg check sqe->ioprio +- epic100: fix use after free on rmmod +- tipc: move bc link creation back to tipc_node_create +- NFC: nxp-nci: Don't issue a zero length i2c_master_read() +- nfc: nfcmrvl: Fix irq_of_parse_and_map() return value +- net: bonding: fix use-after-free after 802.3ad slave unbind +- net: bonding: fix possible NULL deref in rlb code +- net/sched: act_api: Notify user space if any actions were flushed before error +- netfilter: nft_dynset: restore set element counter when failing to update +- s390: remove unneeded 'select BUILD_BIN2C' +- PM / devfreq: exynos-ppmu: Fix refcount leak in of_get_devfreq_events +- caif_virtio: fix race between virtio_device_ready() and ndo_open() +- NFSD: restore EINVAL error translation in nfsd_commit() +- net: ipv6: unexport __init-annotated seg6_hmac_net_init() +- usbnet: fix memory allocation in helpers +- linux/dim: Fix divide by 0 in RDMA DIM +- RDMA/cm: Fix memory leak in ib_cm_insert_listen +- RDMA/qedr: Fix reporting QP timeout attribute +- net: dp83822: disable rx error interrupt +- net: dp83822: disable false carrier interrupt +- net: tun: stop NAPI when detaching queues +- net: tun: unlink NAPI from device on destruction +- net: dsa: bcm_sf2: force pause link settings +- selftests/net: pass ipv6_args to udpgso_bench's IPv6 TCP test +- virtio-net: fix race between ndo_open() and virtio_device_ready() +- net: usb: ax88179_178a: Fix packet receiving +- SUNRPC: Fix READ_PLUS crasher +- s390/archrandom: simplify back to earlier design and initialize earlier +- dm raid: fix KASAN warning in raid5_add_disks +- dm raid: fix accesses beyond end of raid member array +- powerpc/bpf: Fix use of user_pt_regs in uapi +- powerpc/book3e: Fix PUD allocation size in map_kernel_page() +- powerpc/prom_init: Fix kernel config grep +- nvdimm: Fix badblocks clear off-by-one error +- nvme-pci: add NVME_QUIRK_BOGUS_NID for ADATA XPG SX6000LNP (AKA SPECTRIX S40G) +- ipv6: take care of disable_policy when restoring routes +- drm/amdgpu: To flush tlb for MMHUB of RAVEN series +- net: mscc: ocelot: allow unregistered IP multicast flooding +- powerpc/ftrace: Remove ftrace init tramp once kernel init is complete +- tick/nohz: unexport __init-annotated tick_nohz_full_setup() +- drm: remove drm_fb_helper_modinit +- MAINTAINERS: add Amir as xfs maintainer for 5.10.y +- !181 net: bonding: Add support for IPV6 ns/na to balance-alb/balance-tlb mode +- !194 bonding: 3ad: add support for 200G speed +- sw64: remove single step setting in uprobe +- sw64: fix compile error for CONFIG_RRU=y +- sw64: handle kprobe breakpoint if CONFIG_KPROBES=y +- sw64: fix incorrect gp after uretprobe triggered +- sw64: rewrite tlb flushing interfaces +- sw64: rename ASN to ASID +- sw64: fix incorrect gp after kretprobe triggered +- sw64: add deep-set-template.S +- sw64: adjust layout of clear_user.S +- sw64: fix compile errors when CONFIG_STACKTRACE is not set +- sw64: update openeuler_defconfig +- sw64: print real address of sp in show_regs() +- sw64: invoke hmcall with HMC_* macros +- sw64: kvm: add guest live migration support +- sw64: add support for S3 sleep option +- sw64: remove unused sync_icache() and some debug codes +- sw64: tools: add R_SW64_LITERAL_GOT support for relocs +- sw64: perf: add perf kvm support for guest os +- sw64: remove useless enum +- sw64: perf: fix PMI with no event +- sw64: unify header guard naming +- sw64: fix incorrect white space use in macros +- sw64: enable DEBUG_BUGVERBOSE by default +- sw64: sort Kconfig select +- sw64: clear .bss section using memset() +- sw64: remove useless local r26 in setup_rt_frame() +- sw64: fix assembly style +- sw64: bpf: add BPF_JMP32 and BPF_PROBE_MEM +- sw64: kvm: turn off the clock timer of guest os +- sw64: bpf: fix 32-bit bitwise operation +- sw64: bpf: fix insn_offset +- sw64: bpf: fix ebpf jit compiler +- sw64: bpf: fix ebpf jit compiler +- sw64: pcie: fix piu configuration to ensure data correctness +- sw64: fix get_cpu_freq() bug +- sw64: lib: fix __iowrite64_copy() +- sw64: switch to generic calibrate_delay() +- sw64: perf: fix perf_get_regs_user +- sw64: kvm: fix wrong info print of KVM_MEMHOTPLUG +- sw64: init sp with kernel stack top for idle thread +- sw64: ensure IRQs are off when switch/load/activate mm context +- sw64: optimize instruction usage in fork routine +- efi: do some cleanups for efi_map +- sw64: remove trap_a* and hae from pt_regs +- sw64: make RO_DATA PAGE_SIZE aligned +- sw64: clean up unused single step support in kernel +- sw64: fix instruction fault handler +- sw64: clean up unused hmcall definitions +- sw64: fix CPUFreq bug +- sw64: do not set devint_wken for guest and emulator +- sw64: improve deep-copy_template.S +- sw64: switch to inline _copy_{to,from}_user() +- sw64: fix exception handling of deep-copy_user.S +- sw64: adjust instructions order of deep-copy_template.S +- sw64: fix head loop in deep-copy_template.S +- sw64: fix sys_rt_sigaction +- sw64: remove unused members from pcb_struct +- sw64: remove hmcall swpctx from context switch +- sw64: force context reload without hmcall swpctx +- sw64: iommu: allow unlimited minimum value of iova in unmanaged domain +- sw64: simplify icache flush interfaces +- sw64: rename TLB invalidate helpers +- sw64: rename dik_* methods +- sw64: remove context check in csum_partial_copy_from_user() +- sw64: fix deep-copy_user by deep-copy_template +- sw64: kvm: expand the number of SWVM_IRQS +- sw64: fix compile errors when CONFIG_KVM=m +- sw64: simplify do_entInt() +- sw64: always use cpu_data and simplify it +- sw64: gpu: use memset_io and memcpy_toio/fromio for iomem +- sw64: pci: consolidate PCI config entry in drivers/pci +- sw64: add MIGHT_HAVE_PC_SERIO option to control selection of i8042 +- sw64: fix compile error and warning for CONFIG_SMP=n +- sw64: delete run_mode in struct cpu_desc_t +- sw64: adjust make rules to avoid compile error +- sw64: reimplement die_if_kernel() +- sw64: check processor state by user_mode(regs) +- !191 roh/core: Add ROH device driver +- bonding: 3ad: add support for 200G speed +- roh/core: Add ROH device driver +- RDMA/hns: Add clear_hem return value to log +- RDMA/hns: Fix hns_roce_table_get return value +- RDMA/hns: Fix RNR retransmission issue for HIP08 +- RDMA/hns: Optimize the base address table config for MTR +- Revert "RDMA/hns: Optimize the base address table config for MTR" +- RDMA/hns: Remove rq inline in kernel +- RDMA/hns: Support cqe inline in user space +- RDMA/hns: Remove enable rq inline in kernel and add compatibility handling +- RDMA/hns: Fix the problem of sge nums +- Revert "RDMA/hns: Fix the problem of sge nums" +- Revert "RDMA/hns: Remove enable rq inline in kernel and add compatibility handling" +- Revert "RDMA/hns: Support cqe inline in user space" +- RDMA/hns: Fix default congest type +- perf auxtrace arm64: Add support for parsing HiSilicon PCIe Trace packet +- perf auxtrace arm64: Add support for HiSilicon PCIe Tune and Trace device driver +- perf auxtrace arm: Refactor event list iteration in auxtrace_record__init() +- arm64: avoid flushing icache multiple times on contiguous HugeTLB +- VFS: Rolling Back the fmode macro definition and structure members +- irqdomain: Fix driver re-inserting failures when IRQs not being freed +- livepatch/core: Fix livepatch/state leak on error path +- mtd: rawnand: cafe: fix drivers probe/remove methods +- nilfs2: fix use-after-free bug of struct nilfs_root +- can: j1939: j1939_session_destroy(): fix memory leak of skbs +- r8152: Rate limit overflow messages +- nfp: fix use-after-free in area_cache_get() +- Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu +- media: pvrusb2: fix memory leak in pvr_probe +- binderfs: rework superblock destruction +- libbpf: Fix use-after-free in btf_dump_name_dups +- sch_sfb: Also store skb len before calling child enqueue +- sch_sfb: Don't assume the skb is still around after enqueueing to child +- watch-queue: remove spurious double semicolon +- watchqueue: make sure to serialize 'wqueue->defunct' properly +- kabi: net: fix kabi broken in sk_buff +- io_uring/af_unix: defer registered files gc to io_uring release +- mISDN: fix use-after-free bugs in l1oip timer handlers +- ubi: fastmap: Add fastmap control support for Module parameters +- ubi: fastmap: Add fastmap control support for 'UBI_IOCATT' ioctl +- ipv6: Fix data races around sk->sk_prot. +- io_uring: Use original task for req identity in io_identity_cow() +- tcp: Fix data races around icsk->icsk_af_ops. +- wifi: mac80211: fix crash in beacon protection for P2P-device +- ovl: do not fail because of O_NOATIME +- x86/ftrace: Use alternative RET encoding +- x86/ibt,ftrace: Make function-graph play nice +- Revert "x86/ftrace: Use alternative RET encoding" +- tcp/udp: Fix memory leak in ipv6_renew_options(). +- kcm: avoid potential race in kcm_tx_work +- ubifs: Reserve one leb for each journal head while doing budget +- ubifs: do_rename: Fix wrong space budget when target inode's nlink > 1 +- ubifs: Fix wrong dirty space budget for dirty inode +- ubifs: Rectify space budget for ubifs_xrename() +- ubifs: Rectify space budget for ubifs_symlink() if symlink is encrypted +- powerpc/pseries: wire up rng during setup_arch() +- kbuild: link vmlinux only once for CONFIG_TRIM_UNUSED_KSYMS (2nd attempt) +- random: update comment from copy_to_user() -> copy_to_iter() +- modpost: fix section mismatch check for exported init/exit sections +- ARM: cns3xxx: Fix refcount leak in cns3xxx_init +- memory: samsung: exynos5422-dmc: Fix refcount leak in of_get_dram_timings +- ARM: Fix refcount leak in axxia_boot_secondary +- soc: bcm: brcmstb: pm: pm-arm: Fix refcount leak in brcmstb_pm_probe +- ARM: exynos: Fix refcount leak in exynos_map_pmu +- ARM: dts: imx6qdl: correct PU regulator ramp delay +- ARM: dts: imx7: Move hsic_phy power domain to HSIC PHY node +- powerpc/powernv: wire up rng during setup_arch +- powerpc/rtas: Allow ibm,platform-dump RTAS call with null buffer address +- powerpc: Enable execve syscall exit tracepoint +- parisc: Enable ARCH_HAS_STRICT_MODULE_RWX +- parisc/stifb: Fix fb_is_primary_device() only available with CONFIG_FB_STI +- xtensa: Fix refcount leak bug in time.c +- xtensa: xtfpga: Fix refcount leak bug in setup +- iio: adc: adi-axi-adc: Fix refcount leak in adi_axi_adc_attach_client +- iio: adc: axp288: Override TS pin bias current for some models +- iio: adc: stm32: Fix IRQs on STM32F4 by removing custom spurious IRQs message +- iio: adc: stm32: Fix ADCs iteration in irq handler +- iio: imu: inv_icm42600: Fix broken icm42600 (chip id 0 value) +- iio: adc: stm32: fix maximum clock rate for stm32mp15x +- iio: trigger: sysfs: fix use-after-free on remove +- iio: gyro: mpu3050: Fix the error handling in mpu3050_power_up() +- iio: accel: mma8452: ignore the return value of reset operation +- iio:accel:mxc4005: rearrange iio trigger get and register +- iio:accel:bma180: rearrange iio trigger get and register +- iio:chemical:ccs811: rearrange iio trigger get and register +- f2fs: attach inline_data after setting compression +- usb: chipidea: udc: check request status before setting device address +- USB: gadget: Fix double-free bug in raw_gadget driver +- usb: gadget: Fix non-unique driver names in raw-gadget driver +- xhci-pci: Allow host runtime PM as default for Intel Meteor Lake xHCI +- xhci-pci: Allow host runtime PM as default for Intel Raptor Lake xHCI +- xhci: turn off port power in shutdown +- usb: typec: wcove: Drop wrong dependency to INTEL_SOC_PMIC +- iio: adc: vf610: fix conversion mode sysfs node name +- iio: mma8452: fix probe fail when device tree compatible is used. +- s390/cpumf: Handle events cycles and instructions identical +- gpio: winbond: Fix error code in winbond_gpio_get() +- nvme: move the Samsung X5 quirk entry to the core quirks +- nvme-pci: add NO APST quirk for Kioxia device +- nvme-pci: allocate nvme_command within driver pdu +- nvme: mark nvme_setup_passsthru() inline +- nvme: centralize setting the timeout in nvme_alloc_request +- Revert "net/tls: fix tls_sk_proto_close executed repeatedly" +- virtio_net: fix xdp_rxq_info bug after suspend/resume +- igb: Make DMA faster when CPU is active on the PCIe link +- regmap-irq: Fix a bug in regmap_irq_enable() for type_in_mask chips +- ice: ethtool: advertise 1000M speeds properly +- afs: Fix dynamic root getattr +- MIPS: Remove repetitive increase irq_err_count +- x86/xen: Remove undefined behavior in setup_features() +- selftests: netfilter: correct PKTGEN_SCRIPT_PATHS in nft_concat_range.sh +- udmabuf: add back sanity check +- net/tls: fix tls_sk_proto_close executed repeatedly +- erspan: do not assume transport header is always set +- drm/msm/dp: fix connect/disconnect handled at irq_hpd +- drm/msm/dp: promote irq_hpd handle to handle link training correctly +- drm/msm/dp: deinitialize mainlink if link training failed +- drm/msm/dp: fixes wrong connection state caused by failure of link train +- drm/msm/dp: check core_initialized before disable interrupts at dp_display_unbind() +- drm/msm/mdp4: Fix refcount leak in mdp4_modeset_init_intf +- net/sched: sch_netem: Fix arithmetic in netem_dump() for 32-bit platforms +- bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers +- igb: fix a use-after-free issue in igb_clean_tx_ring +- tipc: fix use-after-free Read in tipc_named_reinit +- tipc: simplify the finalize work queue +- phy: aquantia: Fix AN when higher speeds than 1G are not advertised +- bpf, x86: Fix tail call count offset calculation on bpf2bpf call +- drm/sun4i: Fix crash during suspend after component bind failure +- bpf: Fix request_sock leak in sk lookup helpers +- drm/msm: use for_each_sgtable_sg to iterate over scatterlist +- scsi: scsi_debug: Fix zone transition to full condition +- netfilter: use get_random_u32 instead of prandom +- netfilter: nftables: add nft_parse_register_store() and use it +- netfilter: nftables: add nft_parse_register_load() and use it +- drm/msm: Fix double pm_runtime_disable() call +- USB: serial: option: add Quectel RM500K module support +- USB: serial: option: add Quectel EM05-G modem +- USB: serial: option: add Telit LE910Cx 0x1250 composition +- dm mirror log: clear log bits up to BITS_PER_LONG boundary +- dm era: commit metadata in postsuspend after worker stops +- ata: libata: add qc->flags in ata_qc_complete_template tracepoint +- mtd: rawnand: gpmi: Fix setting busy timeout setting +- mmc: sdhci-pci-o2micro: Fix card detect by dealing with debouncing +- btrfs: add error messages to all unrecognized mount options +- net: openvswitch: fix parsing of nw_proto for IPv6 fragments +- ALSA: hda/realtek: Add quirk for Clevo NS50PU +- ALSA: hda/realtek: Add quirk for Clevo PD70PNT +- ALSA: hda/realtek: Apply fixup for Lenovo Yoga Duet 7 properly +- ALSA: hda/realtek - ALC897 headset MIC no sound +- ALSA: hda/realtek: Add mute LED quirk for HP Omen laptop +- ALSA: hda/conexant: Fix missing beep setup +- ALSA: hda/via: Fix missing beep setup +- random: quiet urandom warning ratelimit suppression message +- random: schedule mix_interrupt_randomness() less often +- arm64: mm: Don't invalidate FROM_DEVICE buffers at start of DMA transfer +- serial: core: Initialize rs485 RTS polarity already on probe +- tcp: drop the hash_32() part from the index calculation +- tcp: dynamically allocate the perturb table used by source ports +- tcp: add small random increments to the source port +- tcp: use different parts of the port_offset for index and offset +- tcp: add some entropy in __inet_hash_connect() +- usb: gadget: u_ether: fix regression in setting fixed MAC address +- zonefs: fix zonefs_iomap_begin() for reads +- s390/mm: use non-quiescing sske for KVM switch to keyed guest +- clk: imx8mp: fix usb_root_clk parent +- powerpc/book3e: get rid of #include +- igc: Enable PCIe PTM +- Revert "PCI: Make pci_enable_ptm() private" +- net: openvswitch: fix misuse of the cached connection on tuple changes +- net/sched: act_police: more accurate MTU policing +- dma-direct: don't over-decrypt memory +- virtio-pci: Remove wrong address verification in vp_del_vqs() +- ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine +- KVM: SVM: Use kzalloc for sev ioctl interfaces to prevent kernel data leak +- KVM: x86: Account a variety of miscellaneous allocations +- KVM: arm64: Don't read a HW interrupt pending state in user context +- ext4: add reserved GDT blocks check +- drm/amd/display: Cap OLED brightness per max frame-average luminance +- dm mirror log: round up region bitmap size to BITS_PER_LONG +- serial: 8250: Store to lsr_save_flags after lsr read +- usb: gadget: lpc32xx_udc: Fix refcount leak in lpc32xx_udc_probe +- usb: dwc2: Fix memory leak in dwc2_hcd_init +- USB: serial: io_ti: add Agilent E5805A support +- USB: serial: option: add support for Cinterion MV31 with new baseline +- crypto: memneq - move into lib/ +- comedi: vmk80xx: fix expression for tx buffer size +- mei: me: add raptor lake point S DID +- i2c: designware: Use standard optional ref clock implementation +- irqchip/gic-v3: Fix refcount leak in gic_populate_ppi_partitions +- irqchip/gic-v3: Fix error handling in gic_populate_ppi_partitions +- irqchip/gic/realview: Fix refcount leak in realview_gic_of_init +- i2c: npcm7xx: Add check for platform_driver_register +- faddr2line: Fix overlapping text section failures, the sequel +- block: Fix handling of offline queues in blk_mq_alloc_request_hctx() +- certs/blacklist_hashes.c: fix const confusion in certs blacklist +- arm64: ftrace: consistently handle PLTs. +- arm64: ftrace: fix branch range checks +- net: ax25: Fix deadlock caused by skb_recv_datagram in ax25_recvmsg +- net: bgmac: Fix an erroneous kfree() in bgmac_remove() +- mlxsw: spectrum_cnt: Reorder counter pools +- nvme: add device name to warning in uuid_show() +- nvme: use sysfs_emit instead of sprintf +- drm/i915/reset: Fix error_state_read ptr + offset use +- misc: atmel-ssc: Fix IRQ check in ssc_probe +- tty: goldfish: Fix free_irq() on remove +- Drivers: hv: vmbus: Release cpu lock in error case +- i40e: Fix call trace in setup_tx_descriptors +- i40e: Fix calculating the number of queue pairs +- i40e: Fix adding ADQ filter to TC0 +- clocksource: hyper-v: unexport __init-annotated hv_init_clocksource() +- pNFS: Avoid a live lock condition in pnfs_update_layout() +- pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE +- random: credit cpu and bootloader seeds by default +- gpio: dwapb: Don't print error on -EPROBE_DEFER +- MIPS: Loongson-3: fix compile mips cpu_hwmon as module build error. +- mellanox: mlx5: avoid uninitialized variable warning with gcc-12 +- net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev[napi]_alloc_frag +- ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg +- nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred +- virtio-mmio: fix missing put_device() when vm_cmdline_parent registration failed +- ALSA: hda/realtek - Add HW8326 support +- scsi: pmcraid: Fix missing resource cleanup in error case +- scsi: ipr: Fix missing/incorrect resource cleanup in error case +- scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd completion +- scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology +- scsi: vmw_pvscsi: Expand vcpuHint to 16 bits +- Input: soc_button_array - also add Lenovo Yoga Tablet2 1051F to dmi_use_low_level_irq +- ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put() +- ASoC: es8328: Fix event generation for deemphasis control +- ASoC: wm8962: Fix suspend while playing music +- quota: Prevent memory allocation recursion while holding dq_lock +- ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo() +- ASoC: cs42l51: Correct minimum value for SX volume control +- ASoC: cs42l56: Correct typo in minimum level for SX volume controls +- ASoC: cs42l52: Correct TLV for Bypass Volume +- ASoC: cs53l30: Correct number of volume levels on SX controls +- ASoC: cs35l36: Update digital volume TLV +- ASoC: cs42l52: Fix TLV scales for mixer controls +- dma-debug: make things less spammy under memory pressure +- ASoC: nau8822: Add operation for internal PLL off and on +- arm64: dts: imx8mm-beacon: Enable RTS-CTS on UART3 +- bpf: Fix incorrect memory charge cost calculation in stack_map_alloc() +- nfsd: Replace use of rwsem with errseq_t +- 9p: missing chunk of "fs/9p: Don't update file type when updating file attributes" +- net: bonding: Add support for IPV6 ns/na to balance-alb/balance-tlb mode +- EDAC/i10nm: Print an extra register set of retry_rd_err_log +- EDAC/i10nm: Retrieve and print retry_rd_err_log registers for HBM +- EDAC/skx_common: Add ChipSelect ADXL component +- x86/cpu: fix kabi for cpuinfo_x86.vmx_capability +- KVM: VMX: enable IPI virtualization +- kvm: selftests: Add KVM_CAP_MAX_VCPU_ID cap test +- KVM: x86: Allow userspace to set maximum VCPU id for VM +- KVM: Move kvm_arch_vcpu_precreate() under kvm->lock +- KVM: VMX: Clean up vmx_refresh_apicv_exec_ctrl() +- KVM: x86: Add support for vICR APIC-write VM-Exits in x2APIC mode +- KVM: VMX: Report tertiary_exec_control field in dump_vmcs() +- KVM: VMX: Detect Tertiary VM-Execution control when setup VMCS config +- KVM: VMX: Extend BUILD_CONTROLS_SHADOW macro to support 64-bit variation +- x86/cpu: Add new VMX feature, Tertiary VM-Execution control + +* Wed Oct 19 2022 Zheng Zengkai - 5.10.0-121.0.0.65 +- binder: fix UAF of ref->proc caused by race condition +- wifi: cfg80211: fix u8 overflow in cfg80211_update_notlisted_nontrans() +- wifi: mac80211: fix MBSSID parsing use-after-free +- fbdev: smscufx: Fix use-after-free in ufx_ops_open() +- arm64: fix oops in concurrently setting insn_emulation sysctls +- wifi: cfg80211: avoid nontransmitted BSS list corruption +- ext4: ext4_read_bh_lock() should submit IO if the buffer isn't uptodate +- ipv4: Handle attempt to delete multipath route when fib_info contains an nh reference +- HID: roccat: Fix use-after-free in roccat_read() +- wifi: cfg80211: fix BSS refcounting bugs +- mm/rmap: Fix kabi broken in anon_vma +- mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse +- kasan: check KASAN_NO_FREE_META in __kasan_metadata_size +- kasan: sanitize objects when metadata doesn't fit +- kasan: introduce set_alloc_info +- kasan: rename get_alloc/free_info +- kasan: simplify quarantine_put call site +- set hisi ptt module defconfig +- RDMA/hns: Support cqe inline in user space +- RDMA/hns: Remove enable rq inline in kernel and add compatibility handling +- RDMA/hns: Fix the problem of sge nums +- RDMA/hns: Fix ext_sge num error when post send +- RDMA/hns: Use a constant instead of sizeof operation +- crypto: hisilicon - support get algs by the capability register +- crypto: hisilicon/sec - get algorithm bitmap from registers +- crypto: hisilicon/zip - support zip capability +- crypto: hisilicon/hpre - optimize registration of ecdh +- crypto: hisilicon/hpre - support hpre capability +- crypto: hisilicon/qm - support get device irq information from hardware registers +- crypto: hisilicon/qm - get error type from hardware registers +- crypto: hisilicon/qm - add UACCE_CMD_QM_SET_QP_INFO support +- crypto: hisilicon/qm - get qp num and depth from hardware registers +- crypto: hisilicon/qm - get hardware features from hardware registers +- crypto: hisilicon/sec - delete redundant blank lines +- crypto: hisilicon/qm - return failure if vfs_num exceeds total VFs +- crypto: hisilicon/qm - fix missing put dfx access +- crypto: hisilicon/qm - check mailbox operation result +- crypto: hisilicon/qm - no judgment in the back process +- crypto: hisilicon/qm - remove unneeded data storage +- crypto: hisilicon/qm - fix missing destroy qp_idr +- crypto: hisilicon/hpre - change return type of hpre_cluster_inqry_write() +- crypto: hisilicon/zip - some misc cleanup +- crypto: hisilicon/zip - optimization for performance +- crypto: hisilicon - Remove pci_aer_clear_nonfatal_status() call +- crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nr +- add CONFIG_BLK_DEV_DUMPINFO and set it enabled in openeuler_defconfig +- add config to control detecting conflict of opening block device +- tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd +- dmaengine: idxd: add missing callback function to support DMA_INTERRUPT +- zonefs: fix handling of explicit_open option on mount +- PCI: qcom: Fix pipe clock imbalance +- md/raid0: Ignore RAID0 layout if the second zone has only one device +- interconnect: Restore sync state by ignoring ipa-virt in provider count +- interconnect: qcom: sc7180: Drop IP0 interconnects +- powerpc/mm: Switch obsolete dssall to .long +- drm/atomic: Force bridge self-refresh-exit on CRTC switch +- drm/bridge: analogix_dp: Support PSR-exit to disable transition +- Input: bcm5974 - set missing URB_NO_TRANSFER_DMA_MAP urb flag +- ixgbe: fix unexpected VLAN Rx in promisc mode on VF +- ixgbe: fix bcast packets Rx on VF after promisc removal +- nfc: st21nfca: fix incorrect sizing calculations in EVT_TRANSACTION +- nfc: st21nfca: fix memory leaks in EVT_TRANSACTION handling +- nfc: st21nfca: fix incorrect validating logic in EVT_TRANSACTION +- net: phy: dp83867: retrigger SGMII AN when link change +- mmc: block: Fix CQE recovery reset success +- ata: libata-transport: fix {dma|pio|xfer}_mode sysfs files +- cifs: fix reconnect on smb3 mount types +- cifs: return errors during session setup during reconnects +- ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo Yoga DuetITL 2021 +- ALSA: hda/conexant - Fix loopback issue with CX20632 +- scripts/gdb: change kernel config dumping method +- vringh: Fix loop descriptors check in the indirect cases +- nodemask: Fix return values to be unsigned +- cifs: version operations for smb20 unneeded when legacy support disabled +- s390/gmap: voluntarily schedule during key setting +- jump_label,noinstr: Avoid instrumentation for JUMP_LABEL=n builds +- x86/cpu: Elide KCSAN for cpu_has() and friends +- modpost: fix undefined behavior of is_arm_mapping_symbol() +- drm/radeon: fix a possible null pointer dereference +- ceph: allow ceph.dir.rctime xattr to be updatable +- Revert "net: af_key: add check for pfkey_broadcast in function pfkey_process" +- scsi: myrb: Fix up null pointer access on myrb_cleanup() +- md: protect md_unregister_thread from reentrancy +- watchdog: wdat_wdt: Stop watchdog when rebooting the system +- kernfs: Separate kernfs_pr_cont_buf and rename_lock. +- serial: msm_serial: disable interrupts in __msm_console_write() +- staging: rtl8712: fix uninit-value in r871xu_drv_init() +- staging: rtl8712: fix uninit-value in usb_read8() and friends +- clocksource/drivers/sp804: Avoid error on multiple instances +- extcon: Modify extcon device to be created after driver data is set +- misc: rtsx: set NULL intfdata when probe fails +- usb: dwc2: gadget: don't reset gadget's driver->bus +- sysrq: do not omit current cpu when showing backtrace of all active CPUs +- USB: hcd-pci: Fully suspend across freeze/thaw cycle +- drivers: usb: host: Fix deadlock in oxu_bus_suspend() +- drivers: tty: serial: Fix deadlock in sa1100_set_termios() +- USB: host: isp116x: check return value after calling platform_get_resource() +- drivers: staging: rtl8192e: Fix deadlock in rtllib_beacons_stop() +- drivers: staging: rtl8192u: Fix deadlock in ieee80211_beacons_stop() +- tty: Fix a possible resource leak in icom_probe +- tty: synclink_gt: Fix null-pointer-dereference in slgt_clean() +- lkdtm/usercopy: Expand size of "out of frame" object +- iio: st_sensors: Add a local lock for protecting odr +- staging: rtl8712: fix a potential memory leak in r871xu_drv_init() +- iio: dummy: iio_simple_dummy: check the return value of kstrdup() +- drm: imx: fix compiler warning with gcc-12 +- net: altera: Fix refcount leak in altera_tse_mdio_create +- ip_gre: test csum_start instead of transport header +- net/mlx5: fs, fail conflicting actions +- net/mlx5: Rearm the FW tracer after each tracer event +- net: ipv6: unexport __init-annotated seg6_hmac_init() +- net: xfrm: unexport __init-annotated xfrm4_protocol_init() +- net: mdio: unexport __init-annotated mdio_bus_init() +- SUNRPC: Fix the calculation of xdr->end in xdr_get_next_encode_buffer() +- net/mlx4_en: Fix wrong return value on ioctl EEPROM query failure +- net: dsa: lantiq_gswip: Fix refcount leak in gswip_gphy_fw_list +- bpf, arm64: Clear prog->jited_len along prog->jited +- af_unix: Fix a data-race in unix_dgram_peer_wake_me(). +- xen: unexport __init-annotated xen_xlate_map_ballooned_pages() +- netfilter: nf_tables: bail out early if hardware offload is not supported +- netfilter: nf_tables: memleak flow rule from commit path +- netfilter: nf_tables: release new hooks on unsupported flowtable flags +- ata: pata_octeon_cf: Fix refcount leak in octeon_cf_probe +- netfilter: nf_tables: always initialize flowtable hook list in transaction +- powerpc/kasan: Force thread size increase with KASAN +- netfilter: nf_tables: delete flowtable hooks via transaction list +- netfilter: nat: really support inet nat without l3 address +- xprtrdma: treat all calls not a bcall when bc_serv is NULL +- video: fbdev: pxa3xx-gcu: release the resources correctly in pxa3xx_gcu_probe/remove() +- video: fbdev: hyperv_fb: Allow resolutions with size > 64 MB for Gen1 +- NFSv4: Don't hold the layoutget locks across multiple RPC calls +- dmaengine: zynqmp_dma: In struct zynqmp_dma_chan fix desc_size data type +- m68knommu: fix undefined reference to `_init_sp' +- m68knommu: set ZERO_PAGE() to the allocated zeroed page +- i2c: cadence: Increase timeout per message if necessary +- f2fs: remove WARN_ON in f2fs_is_valid_blkaddr +- iommu/arm-smmu-v3: check return value after calling platform_get_resource() +- iommu/arm-smmu: fix possible null-ptr-deref in arm_smmu_device_probe() +- tracing: Avoid adding tracer option before update_tracer_options +- tracing: Fix sleeping function called from invalid context on RT kernel +- bootconfig: Make the bootconfig.o as a normal object file +- mips: cpc: Fix refcount leak in mips_cpc_default_phys_base +- dmaengine: idxd: set DMA_INTERRUPT cap bit +- perf c2c: Fix sorting in percent_rmt_hitm_cmp() +- driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction +- tipc: check attribute length for bearer name +- scsi: sd: Fix potential NULL pointer dereference +- afs: Fix infinite loop found by xfstest generic/676 +- gpio: pca953x: use the correct register address to do regcache sync +- tcp: tcp_rtx_synack() can be called from process context +- net: sched: add barrier to fix packet stuck problem for lockless qdisc +- net/mlx5e: Update netdev features after changing XDP state +- net/mlx5: correct ECE offset in query qp output +- net/mlx5: Don't use already freed action pointer +- sfc: fix wrong tx channel offset with efx_separate_tx_channels +- sfc: fix considering that all channels have TX queues +- nfp: only report pause frame configuration for physical device +- net/smc: fixes for converting from "struct smc_cdc_tx_pend **" to "struct smc_wr_tx_pend_priv *" +- riscv: read-only pages should not be writable +- bpf: Fix probe read error in ___bpf_prog_run() +- ubi: fastmap: Fix high cpu usage of ubi_bgt by making sure wl_pool not empty +- jffs2: fix memory leak in jffs2_do_fill_super +- modpost: fix removing numeric suffixes +- net: dsa: mv88e6xxx: Fix refcount leak in mv88e6xxx_mdios_register +- net: ethernet: ti: am65-cpsw-nuss: Fix some refcount leaks +- net: ethernet: mtk_eth_soc: out of bounds read in mtk_hwlro_get_fdir_entry() +- net: sched: fixed barrier to prevent skbuff sticking in qdisc backlog +- s390/crypto: fix scatterwalk_unmap() callers in AES-GCM +- clocksource/drivers/oxnas-rps: Fix irq_of_parse_and_map() return value +- ASoC: fsl_sai: Fix FSL_SAI_xDR/xFR definition +- watchdog: ts4800_wdt: Fix refcount leak in ts4800_wdt_probe +- watchdog: rti-wdt: Fix pm_runtime_get_sync() error checking +- driver: base: fix UAF when driver_attach failed +- bus: ti-sysc: Fix warnings for unbind for serial +- firmware: dmi-sysfs: Fix memory leak in dmi_sysfs_register_handle +- serial: stm32-usart: Correct CSIZE, bits, and parity +- serial: st-asc: Sanitize CSIZE and correct PARENB for CS7 +- serial: sifive: Sanitize CSIZE and c_iflag +- serial: sh-sci: Don't allow CS5-6 +- serial: txx9: Don't allow CS5-6 +- serial: rda-uart: Don't allow CS5-6 +- serial: digicolor-usart: Don't allow CS5-6 +- serial: 8250_fintek: Check SER_RS485_RTS_* only with RS485 +- serial: meson: acquire port->lock in startup() +- rtc: mt6397: check return value after calling platform_get_resource() +- clocksource/drivers/riscv: Events are stopped during CPU suspend +- soc: rockchip: Fix refcount leak in rockchip_grf_init +- extcon: ptn5150: Add queue work sync before driver release +- coresight: cpu-debug: Replace mutex with mutex_trylock on panic notifier +- serial: sifive: Report actual baud base rather than fixed 115200 +- phy: qcom-qmp: fix pipe-clock imbalance on power-on failure +- rpmsg: qcom_smd: Fix returning 0 if irq_of_parse_and_map() fails +- iio: adc: sc27xx: Fine tune the scale calibration values +- iio: adc: sc27xx: fix read big scale voltage not right +- iio: proximity: vl53l0x: Fix return value check of wait_for_completion_timeout +- iio: adc: stmpe-adc: Fix wait_for_completion_timeout return value check +- usb: typec: mux: Check dev_set_name() return value +- firmware: stratix10-svc: fix a missing check on list iterator +- misc: fastrpc: fix an incorrect NULL check on list iterator +- usb: dwc3: pci: Fix pm_runtime_get_sync() error checking +- rpmsg: qcom_smd: Fix irq_of_parse_and_map() return value +- pwm: lp3943: Fix duty calculation in case period was clamped +- staging: fieldbus: Fix the error handling path in anybuss_host_common_probe() +- usb: musb: Fix missing of_node_put() in omap2430_probe +- USB: storage: karma: fix rio_karma_init return +- usb: usbip: add missing device lock on tweak configuration cmd +- usb: usbip: fix a refcount leak in stub_probe() +- tty: serial: fsl_lpuart: fix potential bug when using both of_alias_get_id and ida_simple_get +- tty: n_tty: Restore EOF push handling behavior +- tty: serial: owl: Fix missing clk_disable_unprepare() in owl_uart_probe +- tty: goldfish: Use tty_port_destroy() to destroy port +- lkdtm/bugs: Check for the NULL pointer after calling kmalloc +- iio: adc: ad7124: Remove shift from scan_type +- staging: greybus: codecs: fix type confusion of list iterator variable +- pcmcia: db1xxx_ss: restrict to MIPS_DB1XXX boards +- !163 ICX: EDAC driver decoder for Ice Lake +- !162 SPR: EDPC get recoveried but the PCI configuration registers value changed +- !158 Intel SPR: SGX: Backport SGX EDMM support +- init/Kconfig: Add SMP to the dependencies of QOS_SCHED +- iommu/arm-smmu-v3: Disable ECMDQ before the system is suspended +- tty: fix deadlock caused by calling printk() under tty_port->lock +- netfilter: nf_conntrack_irc: Fix forged IP logic +- ext4: fix dir corruption when ext4_dx_add_entry() fails +- ext4: fix check for block being out of directory size +- ext4: make sure ext4_append() always allocates new block +- ext4: check if directory block is within i_size +- ext4: make variable "count" signed +- iommu: Fix compliation failure caused by iommu_device_register +- ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC +- blk-iocost: don't ignore vrate_min on QD contention +- EDAC/i10nm: Add driver decoder for Ice Lake and Tremont CPUs +- EDAC/skx_common: Make output format similar +- EDAC/skx_common: Use driver decoder first +- PCI/ERR: Retain status from error notification +- x86/sgx: Drop 'page_index' from sgx_backing +- x86/sgx: Set active memcg prior to shmem allocation +- selftests/sgx: Page removal stress test +- selftests/sgx: Test reclaiming of untouched page +- selftests/sgx: Test invalid access to removed enclave page +- selftests/sgx: Test faulty enclave behavior +- selftests/sgx: Test complete changing of page type flow +- selftests/sgx: Introduce TCS initialization enclave operation +- selftests/sgx: Introduce dynamic entry point +- selftests/sgx: Test two different SGX2 EAUG flows +- selftests/sgx: Add test for TCS page permission changes +- selftests/sgx: Add test for EPCM permission changes +- Documentation/x86: Introduce enclave runtime management section +- x86/sgx: Free up EPC pages directly to support large page ranges +- x86/sgx: Support complete page removal +- x86/sgx: Support modifying SGX page type +- x86/sgx: Tighten accessible memory range after enclave initialization +- x86/sgx: Support adding of pages to an initialized enclave +- x86/sgx: Support restricting of enclave page permissions +- x86/sgx: Support VA page allocation without reclaiming +- x86/sgx: Export sgx_encl_page_alloc() +- x86/sgx: Export sgx_encl_{grow,shrink}() +- x86/sgx: Keep record of SGX page type +- x86/sgx: Create utility to validate user provided offset and length +- x86/sgx: Make sgx_ipi_cb() available internally +- x86/sgx: Move PTE zap code to new sgx_zap_enclave_ptes() +- x86/sgx: Rename sgx_encl_ewb_cpumask() as sgx_encl_cpumask() +- x86/sgx: Export sgx_encl_ewb_cpumask() +- x86/sgx: Support loading enclave page without VMA permissions check +- x86/sgx: Add wrapper for SGX2 EAUG function +- x86/sgx: Add wrapper for SGX2 EMODT function +- x86/sgx: Add wrapper for SGX2 EMODPR function +- x86/sgx: Add short descriptions to ENCLS wrappers +- x86/sgx: Ensure no data in PCMD page after truncate +- x86/sgx: Obtain backing storage page with enclave mutex held +- x86/sgx: Disconnect backing page references from dirty status +- x86/sgx: Fix missing poison handling in reclaimer +- x86/sgx: Fix NULL pointer dereference on non-SGX systems +- x86/sgx: Add an attribute for the amount of SGX memory in a NUMA node +- x86/sgx: Fix minor documentation issues +- selftests/sgx: Add test for multiple TCS entry +- selftests/sgx: Enable multiple thread support +- selftests/sgx: Add page permission and exception test +- selftests/sgx: Rename test properties in preparation for more enclave tests +- selftests/sgx: Provide per-op parameter structs for the test enclave +- selftests/sgx: Fix corrupted cpuid macro invocation +- selftests/sgx: Add a new kselftest: Unclobbered_vdso_oversubscribed +- selftests/sgx: Move setup_test_encl() to each TEST_F() +- selftests/sgx: Encpsulate the test enclave creation +- selftests/sgx: Dump segments and /proc/self/maps only on failure +- selftests/sgx: Create a heap for the test enclave +- selftests/sgx: Make data measurement for an enclave segment optional +- selftests/sgx: Assign source for each segment +- selftests/sgx: Fix a benign linker warning + +* Tue Oct 11 2022 Zheng Zengkai - 5.10.0-119.0.0.64 +- crypto: hisilicon/zip - Use the bitmap API to allocate bitmaps +- crypto: hisilicon/sec - fix auth key size error +- crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq +- crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq +- crypto: hisilicon/sec - fix inconsistent argument +- crypto: hisilicon/sec - only HW V2 needs to change the BD err detection +- crypto: hisilicon/qm - modify event irq processing +- crypto: hisilicon/qm - move alloc qm->wq to qm.c +- crypto: hisilicon/qm - add functions for releasing resources +- crypto: hisilicon/trng - fix local variable type +- crypto: hisilicon/sec - fix typos in comment +- net: hns3: add judge fd ability for sync and clear process of flow director +- net: hns3: refactor function hclge_mbx_handler() +- net: hns3: optimize converting dscp to priority process of hns3_nic_select_queue() +- net: hns3: add support for external loopback test +- net/af_packet: add VLAN support for AF_PACKET SOCK_RAW GSO +- net: hns3: debugfs add dump dscp map info +- net: hns3: support ndo_select_queue() +- net: hns3: add support config dscp map to tc +- net: hns3: net: hns3: add querying and setting fec off mode from firmware +- net: hns3: add querying and setting fec llrs mode from firmware +- net: hns3: add querying fec ability from firmware +- net: hns3: add getting capabilities of gro offload and fd from firmware +- RDMA/hns: Support MR's restrack raw ops for hns driver +- RDMA/hns: Support MR's restrack ops for hns driver +- RDMA/hns: Support QP's restrack raw ops for hns driver +- RDMA/hns: Support QP's restrack ops for hns driver +- RDMA/hns: Support CQ's restrack raw ops for hns driver +- RDMA/hns: Add or remove CQ's restrack attributes +- RDMA/hns: Remove redundant DFX file and DFX ops structure +- !129 [OLK-5.10] update pmu for Zhaoxin CPUs +- !156 Enable NVMe over TCP for arm64 +- arm64: openeuler_defconfig: enable nvmf tcp +- sched: fix kabi for core scheduling +- sched/core: Change depends of SCHED_CORE +- sched/core: Fix the bug that task won't enqueue into core tree when update cookie +- sched/core: Avoid obvious double update_rq_clock warning +- arch/arm64: Fix topology initialization for core scheduling +- sched: Teach the forced-newidle balancer about CPU affinity limitation. +- sched/core: Fix forceidle balancing +- sched: Make cookie functions static +- kselftests/sched: cleanup the child processes +- uapi/linux/prctl: provide macro definitions for the PR_SCHED_CORE type argument +- sched/core: Simplify core-wide task selection +- sched: Fix Core-wide rq->lock for uninitialized CPUs +- admin-guide/hw-vuln: Rephrase a section of core-scheduling.rst +- sched/core: Disable CONFIG_SCHED_CORE by default +- Documentation: Add usecases, design and interface for core scheduling +- sched: Add CONFIG_SCHED_CORE help text +- sched: Fix leftover comment typos +- tools headers UAPI: Sync linux/prctl.h with the kernel sources +- kselftest: Add test for core sched prctl interface +- sched: prctl() core-scheduling interface +- sched: Inherit task cookie on fork() +- sched: Trivial core scheduling cookie management +- sched: Migration changes for core scheduling +- sched: Trivial forced-newidle balancer +- sched/fair: Snapshot the min_vruntime of CPUs on force idle +- sched: Fix priority inversion of cookied task with sibling +- sched/fair: Fix forced idle sibling starvation corner case +- sched: Add core wide task selection and scheduling +- sched: Basic tracking of matching tasks +- sched: Introduce sched_class::pick_task() +- sched: Allow sched_core_put() from atomic context +- sched: Optimize rq_lockp() usage +- sched: Core-wide rq->lock +- sched: Prepare for Core-wide rq->lock +- sched: Wrap rq::lock access +- sched: Provide raw_spin_rq_*lock*() helpers +- sched/fair: Add a few assertions +- rbtree: Add generic add and find helpers +- update pmu for Zhaoxin CPUs + +* Fri Sep 30 2022 Zheng Zengkai - 5.10.0-118.0.0.63 +- KVM: arm64: Try stage2 block mapping for host device MMIO +- KVM: arm64: Remove the creation time's mapping of MMIO regions +- ext4: fix use-after-free in ext4_ext_shift_extents +- hwtracing: hisi_ptt: Fix up for "iommu/dma: Make header private" +- MAINTAINERS: Add maintainer for HiSilicon PTT driver +- docs: trace: Add HiSilicon PTT device driver documentation +- hwtracing: hisi_ptt: Add tune function support for HiSilicon PCIe Tune and Trace device +- hwtracing: hisi_ptt: Add trace function support for HiSilicon PCIe Tune and Trace device +- iommu/arm-smmu-v3: Make default domain type of HiSilicon PTT device to identity +- mm: Force TLB flush for PFNMAP mappings before unlink_file_vma() +- sched/fair: Fix kabi broken in struct cfs_rq +- sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq +- ext4: only allow test_dummy_encryption when supported +- MIPS: IP30: Remove incorrect `cpu_has_fpu' override +- MIPS: IP27: Remove incorrect `cpu_has_fpu' override +- RDMA/rxe: Generate a completion for unsupported/invalid opcode +- Revert "random: use static branch for crng_ready()" +- block: fix bio_clone_blkg_association() to associate with proper blkcg_gq +- bfq: Remove pointless bfq_init_rq() calls +- bfq: Drop pointless unlock-lock pair +- bfq: Avoid merging queues with different parents +- thermal/core: Fix memory leak in the error path +- thermal/core: fix a UAF bug in __thermal_cooling_device_register() +- kseltest/cgroup: Make test_stress.sh work if run interactively +- xfs: assert in xfs_btree_del_cursor should take into account error +- xfs: consider shutdown in bmapbt cursor delete assert +- xfs: restore shutdown check in mapped write fault path +- xfs: fix incorrect root dquot corruption error when switching group/project quota types +- xfs: sync lazy sb accounting on quiesce of read-only mounts +- xfs: set inode size after creating symlink +- net: ipa: fix page free in ipa_endpoint_replenish_one() +- net: ipa: fix page free in ipa_endpoint_trans_release() +- phy: qcom-qmp: fix reset-controller leak on probe errors +- coresight: core: Fix coresight device probe failure issue +- blk-iolatency: Fix inflight count imbalances and IO hangs on offline +- vdpasim: allow to enable a vq repeatedly +- dt-bindings: gpio: altera: correct interrupt-cells +- docs/conf.py: Cope with removal of language=None in Sphinx 5.0.0 +- SMB3: EBADF/EIO errors in rename/open caused by race condition in smb2_compound_op +- ARM: pxa: maybe fix gpio lookup tables +- ARM: dts: s5pv210: Remove spi-cs-high on panel in Aries +- phy: qcom-qmp: fix struct clk leak on probe errors +- arm64: dts: qcom: ipq8074: fix the sleep clock frequency +- gma500: fix an incorrect NULL check on list iterator +- tilcdc: tilcdc_external: fix an incorrect NULL check on list iterator +- serial: pch: don't overwrite xmit->buf[0] by x_char +- stm: ltdc: fix two incorrect NULL checks on list iterator +- carl9170: tx: fix an incorrect use of list iterator +- ASoC: rt5514: Fix event generation for "DSP Voice Wake Up" control +- rtl818x: Prevent using not initialized queues +- xtensa/simdisk: fix proc_read_simdisk() +- hugetlb: fix huge_pmd_unshare address update +- nodemask.h: fix compilation error with GCC12 +- iommu/msm: Fix an incorrect NULL check on list iterator +- ftrace: Clean up hash direct_functions on register failures +- um: Fix out-of-bounds read in LDT setup +- um: chan_user: Fix winch_tramp() return value +- mac80211: upgrade passive scan to active scan on DFS channels after beacon rx +- cfg80211: declare MODULE_FIRMWARE for regulatory.db +- irqchip: irq-xtensa-mx: fix initial IRQ affinity +- irqchip/armada-370-xp: Do not touch Performance Counter Overflow on A375, A38x, A39x +- csky: patch_text: Fixup last cpu should be master +- RDMA/hfi1: Fix potential integer multiplication overflow errors +- Kconfig: Add option for asm goto w/ tied outputs to workaround clang-13 bug +- ima: remove the IMA_TEMPLATE Kconfig option +- media: coda: Add more H264 levels for CODA960 +- media: coda: Fix reported H264 profile +- mtd: cfi_cmdset_0002: Use chip_ready() for write on S29GL064N +- mtd: cfi_cmdset_0002: Move and rename chip_check/chip_ready/chip_good_for_write +- md: fix an incorrect NULL check in md_reload_sb +- md: fix an incorrect NULL check in does_sb_need_changing +- drm/i915/dsi: fix VBT send packet port selection for ICL+ +- drm/bridge: analogix_dp: Grab runtime PM reference for DP-AUX +- drm/nouveau/kms/nv50-: atom: fix an incorrect NULL check on list iterator +- drm/nouveau/clk: Fix an incorrect NULL check on list iterator +- drm/etnaviv: check for reaped mapping in etnaviv_iommu_unmap_gem +- drm/amdgpu/cs: make commands with 0 chunks illegal behaviour. +- scsi: ufs: qcom: Add a readl() to make sure ref_clk gets enabled +- scsi: dc395x: Fix a missing check on list iterator +- ocfs2: dlmfs: fix error handling of user_dlm_destroy_lock +- dlm: fix missing lkb refcount handling +- dlm: fix plock invalid read +- s390/perf: obtain sie_block from the right address +- mm, compaction: fast_find_migrateblock() should return pfn in the target zone +- PCI: qcom: Fix unbalanced PHY init on probe errors +- PCI: qcom: Fix runtime PM imbalance on probe errors +- PCI/PM: Fix bridge_d3_blacklist[] Elo i2 overwrite of Gigabyte X299 +- tracing: Fix potential double free in create_var_ref() +- ACPI: property: Release subnode properties with data nodes +- ext4: avoid cycles in directory h-tree +- ext4: verify dir block before splitting it +- ext4: filter out EXT4_FC_REPLAY from on-disk superblock field s_state +- bfq: Update cgroup information before merging bio +- bfq: Split shared queues on move between cgroups +- efi: Do not import certificates from UEFI Secure Boot for T2 Macs +- iwlwifi: mvm: fix assert 1F04 upon reconfig +- wifi: mac80211: fix use-after-free in chanctx code +- f2fs: fix to do sanity check for inline inode +- f2fs: fix fallocate to use file_modified to update permissions consistently +- f2fs: fix to do sanity check on total_data_blocks +- f2fs: don't need inode lock for system hidden quota +- f2fs: fix deadloop in foreground GC +- f2fs: fix to clear dirty inode in f2fs_evict_inode() +- f2fs: fix to do sanity check on block address in f2fs_do_zero_range() +- f2fs: fix to avoid f2fs_bug_on() in dec_valid_node_count() +- perf jevents: Fix event syntax error caused by ExtSel +- perf c2c: Use stdio interface if slang is not supported +- i2c: rcar: fix PM ref counts in probe error paths +- i2c: npcm: Handle spurious interrupts +- i2c: npcm: Correct register access width +- i2c: npcm: Fix timeout calculation +- iommu/amd: Increase timeout waiting for GA log enablement +- dmaengine: stm32-mdma: fix chan initialization in stm32_mdma_irq_handler() +- dmaengine: stm32-mdma: rework interrupt handler +- dmaengine: stm32-mdma: remove GISR1 register +- video: fbdev: clcdfb: Fix refcount leak in clcdfb_of_vram_setup +- NFSv4/pNFS: Do not fail I/O when we fail to allocate the pNFS layout +- NFS: Don't report errors from nfs_pageio_complete() more than once +- NFS: Do not report flush errors in nfs_write_end() +- NFS: fsync() should report filesystem errors over EINTR/ERESTARTSYS +- NFS: Do not report EINTR/ERESTARTSYS as mapping errors +- dmaengine: idxd: Fix the error handling path in idxd_cdev_register() +- i2c: at91: Initialize dma_buf in at91_twi_xfer() +- MIPS: Loongson: Use hwmon_device_register_with_groups() to register hwmon +- cpufreq: mediatek: Unregister platform device on exit +- cpufreq: mediatek: Use module_init and add module_exit +- cpufreq: mediatek: add missing platform_driver_unregister() on error in mtk_cpufreq_driver_init +- i2c: at91: use dma safe buffers +- iommu/mediatek: Add list_del in mtk_iommu_remove +- f2fs: fix dereference of stale list iterator after loop body +- OPP: call of_node_put() on error path in _bandwidth_supported() +- Input: stmfts - do not leave device disabled in stmfts_input_open +- RDMA/hfi1: Prevent use of lock before it is initialized +- mailbox: forward the hrtimer if not queued and under a lock +- mfd: davinci_voicecodec: Fix possible null-ptr-deref davinci_vc_probe() +- powerpc/fsl_rio: Fix refcount leak in fsl_rio_setup +- macintosh: via-pmu and via-cuda need RTC_LIB +- powerpc/perf: Fix the threshold compare group constraint for power9 +- powerpc/64: Only WARN if __pa()/__va() called with bad addresses +- hwrng: omap3-rom - fix using wrong clk_disable() in omap_rom_rng_runtime_resume() +- PCI/AER: Clear MULTI_ERR_COR/UNCOR_RCV bits +- Input: sparcspkr - fix refcount leak in bbc_beep_probe +- crypto: cryptd - Protect per-CPU resource by disabling BH. +- crypto: sun8i-ss - handle zero sized sg +- crypto: sun8i-ss - rework handling of IV +- PCI: imx6: Fix PERST# start-up sequence +- ipc/mqueue: use get_tree_nodev() in mqueue_get_tree() +- proc: fix dentry/inode overinstantiating under /proc/${pid}/net +- ASoC: atmel-classd: Remove endianness flag on class d component +- ASoC: atmel-pdmic: Remove endianness flag on pdmic component +- powerpc/4xx/cpm: Fix return value of __setup() handler +- powerpc/idle: Fix return value of __setup() handler +- pinctrl: renesas: core: Fix possible null-ptr-deref in sh_pfc_map_resources() +- powerpc/8xx: export 'cpm_setbrg' for modules +- drivers/base/memory: fix an unlikely reference counting issue in __add_memory_block() +- dax: fix cache flush on PMD-mapped pages +- drivers/base/node.c: fix compaction sysfs file leak +- pinctrl: mvebu: Fix irq_of_parse_and_map() return value +- nvdimm: Allow overwrite in the presence of disabled dimms +- nvdimm: Fix firmware activation deadlock scenarios +- firmware: arm_scmi: Fix list protocols enumeration in the base protocol +- mfd: ipaq-micro: Fix error check return value of platform_get_irq() +- powerpc/fadump: fix PT_LOAD segment for boot memory area +- arm: mediatek: select arch timer for mt7629 +- pinctrl: bcm2835: implement hook for missing gpio-ranges +- gpiolib: of: Introduce hook for missing gpio-ranges +- crypto: marvell/cesa - ECB does not IV +- misc: ocxl: fix possible double free in ocxl_file_register_afu +- ARM: dts: bcm2835-rpi-b: Fix GPIO line names +- ARM: dts: bcm2837-rpi-3-b-plus: Fix GPIO line name of power LED +- ARM: dts: bcm2837-rpi-cm3-io3: Fix GPIO line names for SMPS I2C +- ARM: dts: bcm2835-rpi-zero-w: Fix GPIO line name for Wifi/BT +- ARM: dts: stm32: Fix PHY post-reset delay on Avenger96 +- can: xilinx_can: mark bit timing constants as const +- platform/chrome: Re-introduce cros_ec_cmd_xfer and use it for ioctls +- ARM: dts: imx6dl-colibri: Fix I2C pinmuxing +- platform/chrome: cros_ec: fix error handling in cros_ec_register() +- KVM: nVMX: Clear IDT vectoring on nested VM-Exit for double/triple fault +- KVM: nVMX: Leave most VM-Exit info fields unmodified on failed VM-Entry +- soc: qcom: llcc: Add MODULE_DEVICE_TABLE() +- ARM: dts: ci4x10: Adapt to changes in imx6qdl.dtsi regarding fec clocks +- PCI: dwc: Fix setting error return on MSI DMA mapping failure +- PCI: rockchip: Fix find_first_zero_bit() limit +- PCI: cadence: Fix find_first_zero_bit() limit +- soc: qcom: smsm: Fix missing of_node_put() in smsm_parse_ipc +- soc: qcom: smp2p: Fix missing of_node_put() in smp2p_parse_ipc +- ARM: dts: suniv: F1C100: fix watchdog compatible +- memory: samsung: exynos5422-dmc: Avoid some over memory allocation +- arm64: dts: rockchip: Move drive-impedance-ohm to emmc phy on rk3399 +- net/smc: postpone sk_refcnt increment in connect() +- rxrpc: Fix decision on when to generate an IDLE ACK +- rxrpc: Don't let ack.previousPacket regress +- rxrpc: Fix overlapping ACK accounting +- rxrpc: Don't try to resend the request if we're receiving the reply +- rxrpc: Fix listen() setting the bar too high for the prealloc rings +- hv_netvsc: Fix potential dereference of NULL pointer +- net: stmmac: fix out-of-bounds access in a selftest +- net: stmmac: selftests: Use kcalloc() instead of kzalloc() +- ASoC: max98090: Move check for invalid values before casting in max98090_put_enab_tlv() +- NFC: hci: fix sleep in atomic context bugs in nfc_hci_hcp_message_tx +- ASoC: wm2000: fix missing clk_disable_unprepare() on error in wm2000_anc_transition() +- thermal/drivers/imx_sc_thermal: Fix refcount leak in imx_sc_thermal_probe +- thermal/core: Fix memory leak in __thermal_cooling_device_register() +- thermal/drivers/core: Use a char pointer for the cooling device name +- thermal/drivers/broadcom: Fix potential NULL dereference in sr_thermal_probe +- thermal/drivers/bcm2711: Don't clamp temperature at zero +- drm/i915: Fix CFI violation with show_dynamic_id() +- drm/msm/dpu: handle pm_runtime_get_sync() errors in bind path +- x86/sev: Annotate stack change in the #VC handler +- drm: msm: fix possible memory leak in mdp5_crtc_cursor_set() +- drm/msm/a6xx: Fix refcount leak in a6xx_gpu_init +- ext4: reject the 'commit' option on ext2 filesystems +- media: rkvdec: h264: Fix bit depth wrap in pps packet +- media: rkvdec: h264: Fix dpb_valid implementation +- media: staging: media: rkvdec: Make use of the helper function devm_platform_ioremap_resource() +- media: ov7670: remove ov7670_power_off from ov7670_remove +- ASoC: ti: j721e-evm: Fix refcount leak in j721e_soc_probe_* +- sctp: read sk->sk_bound_dev_if once in sctp_rcv() +- lsm,selinux: pass flowi_common instead of flowi to the LSM hooks +- m68k: math-emu: Fix dependencies of math emulation support +- nvme: set dma alignment to dword +- Bluetooth: use hdev lock for accept_list and reject_list in conn req +- Bluetooth: use inclusive language when filtering devices +- Bluetooth: use inclusive language in HCI role comments +- Bluetooth: LL privacy allow RPA +- Bluetooth: L2CAP: Rudimentary typo fixes +- Bluetooth: Interleave with allowlist scan +- Bluetooth: fix dangling sco_conn and use-after-free in sco_sock_timeout +- media: vsp1: Fix offset calculation for plane cropping +- media: pvrusb2: fix array-index-out-of-bounds in pvr2_i2c_core_init +- media: exynos4-is: Change clk_disable to clk_disable_unprepare +- media: st-delta: Fix PM disable depth imbalance in delta_probe +- media: exynos4-is: Fix PM disable depth imbalance in fimc_is_probe +- media: aspeed: Fix an error handling path in aspeed_video_probe() +- scripts/faddr2line: Fix overlapping text section failures +- kselftest/cgroup: fix test_stress.sh to use OUTPUT dir +- ASoC: samsung: Fix refcount leak in aries_audio_probe +- ASoC: samsung: Use dev_err_probe() helper +- regulator: pfuze100: Fix refcount leak in pfuze_parse_regulators_dt +- ASoC: mxs-saif: Fix refcount leak in mxs_saif_probe +- ASoC: fsl: Fix refcount leak in imx_sgtl5000_probe +- ath11k: Don't check arvif->is_started before sending management frames +- perf/amd/ibs: Use interrupt regs ip for stack unwinding +- regulator: qcom_smd: Fix up PM8950 regulator configuration +- Revert "cpufreq: Fix possible race in cpufreq online error path" +- spi: spi-fsl-qspi: check return value after calling platform_get_resource_byname() +- iomap: iomap_write_failed fix +- media: uvcvideo: Fix missing check to determine if element is found in list +- drm/msm: return an error pointer in msm_gem_prime_get_sg_table() +- drm/msm/mdp5: Return error code in mdp5_mixer_release when deadlock is detected +- drm/msm/mdp5: Return error code in mdp5_pipe_release when deadlock is detected +- drm/msm/dp: fix event thread stuck in wait_event after kthread_stop() +- regulator: core: Fix enable_count imbalance with EXCLUSIVE_GET +- arm64: fix types in copy_highpage() +- x86/mm: Cleanup the control_va_addr_alignment() __setup handler +- irqchip/aspeed-scu-ic: Fix irq_of_parse_and_map() return value +- irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value +- irqchip/exiu: Fix acknowledgment of edge triggered interrupts +- x86: Fix return value of __setup handlers +- virtio_blk: fix the discard_granularity and discard_alignment queue limits +- perf tools: Use Python devtools for version autodetection rather than runtime +- drm/rockchip: vop: fix possible null-ptr-deref in vop_bind() +- drm/panel: panel-simple: Fix proper bpc for AM-1280800N3TZQW-T00H +- drm/msm: add missing include to msm_drv.c +- drm/msm/hdmi: fix error check return value of irq_of_parse_and_map() +- drm/msm/hdmi: check return value after calling platform_get_resource_byname() +- drm/msm/dsi: fix error checks and return values for DSI xmit functions +- drm/msm/dp: fix error check return value of irq_of_parse_and_map() +- drm/msm/dp: stop event kernel thread when DP unbind +- drm/msm/disp/dpu1: set vbif hw config to NULL to avoid use after memory free during pm runtime resume +- perf tools: Add missing headers needed by util/data.h +- ASoC: rk3328: fix disabling mclk on pclk probe failure +- x86/speculation: Add missing prototype for unpriv_ebpf_notify() +- mtd: rawnand: cadence: fix possible null-ptr-deref in cadence_nand_dt_probe() +- x86/pm: Fix false positive kmemleak report in msr_build_context() +- mtd: spi-nor: core: Check written SR value in spi_nor_write_16bit_sr_and_check() +- libbpf: Fix logic for finding matching program for CO-RE relocation +- selftests/resctrl: Fix null pointer dereference on open failed +- scsi: ufs: core: Exclude UECxx from SFR dump list +- scsi: ufs: qcom: Fix ufs_qcom_resume() +- drm/msm/dpu: adjust display_v_end for eDP and DP +- of: overlay: do not break notify on NOTIFY_{OK|STOP} +- fsnotify: fix wrong lockdep annotations +- ALSA: pcm: Check for null pointer of pointer substream before dereferencing it +- drm/panel: simple: Add missing bus flags for Innolux G070Y2-L01 +- media: hantro: Empty encoder capture buffers by default +- ath9k_htc: fix potential out of bounds access with invalid rxstatus->rs_keyix +- cpufreq: Fix possible race in cpufreq online error path +- spi: img-spfi: Fix pm_runtime_get_sync() error checking +- drm/bridge: Fix error handling in analogix_dp_probe +- HID: elan: Fix potential double free in elan_input_configured +- HID: hid-led: fix maximum brightness for Dream Cheeky +- mtd: rawnand: denali: Use managed device resources +- EDAC/dmc520: Don't print an error for each unconfigured interrupt line +- drbd: fix duplicate array initializer +- target: remove an incorrect unmap zeroes data deduction +- efi: Add missing prototype for efi_capsule_setup_info +- NFC: NULL out the dev->rfkill to prevent UAF +- net: dsa: mt7530: 1G can also support 1000BASE-X link mode +- scftorture: Fix distribution of short handler delays +- spi: spi-ti-qspi: Fix return value handling of wait_for_completion_timeout +- drm: mali-dp: potential dereference of null pointer +- drm/komeda: Fix an undefined behavior bug in komeda_plane_add() +- nl80211: show SSID for P2P_GO interfaces +- bpf: Fix excessive memory allocation in stack_map_alloc() +- libbpf: Don't error out on CO-RE relos for overriden weak subprogs +- drm/vc4: txp: Force alpha to be 0xff if it's disabled +- drm/vc4: txp: Don't set TXP_VSTART_AT_EOF +- drm/vc4: hvs: Reset muxes at probe time +- drm/mediatek: Fix mtk_cec_mask() +- drm/ingenic: Reset pixclock rate when parent clock rate changes +- x86/delay: Fix the wrong asm constraint in delay_loop() +- ASoC: mediatek: Fix missing of_node_put in mt2701_wm8960_machine_probe +- ASoC: mediatek: Fix error handling in mt8173_max98090_dev_probe +- spi: qcom-qspi: Add minItems to interconnect-names +- drm/bridge: adv7511: clean up CEC adapter when probe fails +- drm/edid: fix invalid EDID extension block filtering +- ath9k: fix ar9003_get_eepmisc +- ath11k: acquire ab->base_lock in unassign when finding the peer by addr +- dt-bindings: display: sitronix, st7735r: Fix backlight in example +- RDMA/hfi1: Prevent panic when SDMA is disabled +- powerpc/iommu: Add missing of_node_put in iommu_init_early_dart +- macintosh/via-pmu: Fix build failure when CONFIG_INPUT is disabled +- powerpc/powernv: fix missing of_node_put in uv_init() +- powerpc/xics: fix refcount leak in icp_opal_init() +- powerpc/powernv/vas: Assign real address to rx_fifo in vas_rx_win_attr +- tracing: incorrect isolate_mote_t cast in mm_vmscan_lru_isolate +- PCI: Avoid pci_dev_lock() AB/BA deadlock with sriov_numvfs_store() +- ARM: hisi: Add missing of_node_put after of_find_compatible_node +- ARM: dts: exynos: add atmel,24c128 fallback to Samsung EEPROM +- ARM: versatile: Add missing of_node_put in dcscb_init +- pinctrl: renesas: rzn1: Fix possible null-ptr-deref in sh_pfc_map_resources() +- fat: add ratelimit to fat*_ent_bread() +- powerpc/fadump: Fix fadump to work with a different endian capture kernel +- ARM: OMAP1: clock: Fix UART rate reporting algorithm +- fs: jfs: fix possible NULL pointer dereference in dbFree() +- soc: ti: ti_sci_pm_domains: Check for null return of devm_kcalloc +- crypto: ccree - use fine grained DMA mapping dir +- PM / devfreq: rk3399_dmc: Disable edev on remove() +- arm64: dts: qcom: msm8994: Fix BLSP[12]_DMA channels count +- ARM: dts: s5pv210: align DMA channels with dtschema +- ARM: dts: ox820: align interrupt controller node name with dtschema +- IB/rdmavt: add missing locks in rvt_ruc_loopback +- gfs2: use i_lock spin_lock for inode qadata +- selftests/bpf: fix btf_dump/btf_dump due to recent clang change +- eth: tg3: silence the GCC 12 array-bounds warning +- rxrpc, afs: Fix selection of abort codes +- rxrpc: Return an error to sendmsg if call failed +- m68k: atari: Make Atari ROM port I/O write macros return void +- x86/microcode: Add explicit CPU vendor dependency +- can: mcp251xfd: silence clang's -Wunaligned-access warning +- ASoC: rt1015p: remove dependency on GPIOLIB +- ASoC: max98357a: remove dependency on GPIOLIB +- media: exynos4-is: Fix compile warning +- net: phy: micrel: Allow probing without .driver_data +- nbd: Fix hung on disconnect request if socket is closed before +- ASoC: rt5645: Fix errorenous cleanup order +- nvme-pci: fix a NULL pointer dereference in nvme_alloc_admin_tags +- openrisc: start CPU timer early in boot +- media: cec-adap.c: fix is_configuring state +- media: imon: reorganize serialization +- media: coda: limit frame interval enumeration to supported encoder frame sizes +- media: rga: fix possible memory leak in rga_probe +- rtlwifi: Use pr_warn instead of WARN_ONCE +- ipmi: Fix pr_fmt to avoid compilation issues +- ipmi:ssif: Check for NULL msg when handling events and messages +- ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default +- dma-debug: change allocation mode from GFP_NOWAIT to GFP_ATIOMIC +- spi: stm32-qspi: Fix wait_cmd timeout in APM mode +- perf/amd/ibs: Cascade pmu init functions' return value +- s390/preempt: disable __preempt_count_add() optimization for PROFILE_ALL_BRANCHES +- net: remove two BUG() from skb_checksum_help() +- ASoC: tscs454: Add endianness flag in snd_soc_component_driver +- HID: bigben: fix slab-out-of-bounds Write in bigben_probe +- drm/amdgpu/ucode: Remove firmware load type check in amdgpu_ucode_free_bo +- mlxsw: Treat LLDP packets as control +- mlxsw: spectrum_dcb: Do not warn about priority changes +- ASoC: dapm: Don't fold register value changes into notifications +- net/mlx5: fs, delete the FTE when there are no rules attached to it +- ipv6: Don't send rs packets to the interface of ARPHRD_TUNNEL +- drm: msm: fix error check return value of irq_of_parse_and_map() +- arm64: compat: Do not treat syscall number as ESR_ELx for a bad syscall +- ath10k: skip ath10k_halt during suspend for driver state RESTARTING +- drm/amd/pm: fix the compile warning +- drm/plane: Move range check for format_count earlier +- ASoC: Intel: bytcr_rt5640: Add quirk for the HP Pro Tablet 408 +- ath11k: disable spectral scan during spectral deinit +- scsi: lpfc: Fix resource leak in lpfc_sli4_send_seq_to_ulp() +- scsi: ufs: Use pm_runtime_resume_and_get() instead of pm_runtime_get_sync() +- scsi: megaraid: Fix error check return value of register_chrdev() +- drivers: mmc: sdhci_am654: Add the quirk to set TESTCD bit +- mmc: jz4740: Apply DMA engine limits to maximum segment size +- md/bitmap: don't set sb values if can't pass sanity check +- media: cx25821: Fix the warning when removing the module +- media: pci: cx23885: Fix the error handling in cx23885_initdev() +- media: venus: hfi: avoid null dereference in deinit +- ath9k: fix QCA9561 PA bias level +- drm/amd/pm: fix double free in si_parse_power_table() +- tools/power turbostat: fix ICX DRAM power numbers +- spi: spi-rspi: Remove setting {src,dst}_{addr,addr_width} based on DMA direction +- ALSA: jack: Access input_dev under mutex +- sfc: ef10: Fix assigning negative value to unsigned variable +- rcu: Make TASKS_RUDE_RCU select IRQ_WORK +- rcu-tasks: Fix race in schedule and flush work +- drm/komeda: return early if drm_universal_plane_init() fails. +- ACPICA: Avoid cache flush inside virtual machines +- x86/platform/uv: Update TSC sync state for UV5 +- fbcon: Consistently protect deferred_takeover with console_lock() +- ipv6: fix locking issues with loops over idev->addr_list +- ipw2x00: Fix potential NULL dereference in libipw_xmit() +- b43: Fix assigning negative value to unsigned variable +- b43legacy: Fix assigning negative value to unsigned variable +- mwifiex: add mutex lock for call in mwifiex_dfs_chan_sw_work_queue +- drm/virtio: fix NULL pointer dereference in virtio_gpu_conn_get_modes +- iommu/vt-d: Add RPLS to quirk list to skip TE disabling +- btrfs: repair super block num_devices automatically +- btrfs: add "0x" prefix for unsupported optional features +- ptrace: Reimplement PTRACE_KILL by always sending SIGKILL +- ptrace/xtensa: Replace PT_SINGLESTEP with TIF_SINGLESTEP +- ptrace/um: Replace PT_DTRACE with TIF_SINGLESTEP +- perf/x86/intel: Fix event constraints for ICL +- x86/MCE/AMD: Fix memory leak when threshold_create_bank() fails +- parisc/stifb: Keep track of hardware path of graphics card +- Fonts: Make font size unsigned in font_desc +- xhci: Allow host runtime PM as default for Intel Alder Lake N xHCI +- cifs: when extending a file with falloc we should make files not-sparse +- usb: core: hcd: Add support for deferring roothub registration +- usb: dwc3: gadget: Move null pinter check to proper place +- USB: new quirk for Dell Gen 2 devices +- USB: serial: option: add Quectel BG95 modem +- ALSA: usb-audio: Cancel pending work at closing a MIDI substream +- ALSA: hda/realtek - Fix microphone noise on ASUS TUF B550M-PLUS +- ALSA: hda/realtek: Enable 4-speaker output for Dell XPS 15 9520 laptop +- riscv: Fix irq_work when SMP is disabled +- riscv: Initialize thread pointer before calling C functions +- parisc/stifb: Implement fb_is_primary_device() +- binfmt_flat: do not stop relocating GOT entries prematurely on riscv + +* Wed Sep 21 2022 Zheng Zengkai - 5.10.0-117.0.0.62 +- KVM: x86/pmu: Update AMD PMC sample period to fix guest NMI-watchdog +- KVM: x86/pmu: Introduce pmc->is_paused to reduce the call time of perf interfaces +- efi: capsule-loader: Fix use-after-free in efi_capsule_write +- x86/speculation: Add LFENCE to RSB fill sequence +- x86/speculation: Add RSB VM Exit protections +- quota: Add more checking after reading from quota file +- quota: Replace all block number checking with helper function +- quota: Check next/prev free block number after reading from quota file +- RDMA/hns: Fix gid idx issue caused by free mr +- RDMA/hns: Use the reserved loopback QPs to free MR before destroying MPT +- scsi: libiscsi: Teardown iscsi_cls_conn gracefully +- scsi: libiscsi: Add iscsi_cls_conn to sysfs after initialization +- scsi: iscsi: Add helper functions to manage iscsi_cls_conn +- block: fix regression for dm +- dm: switch to rq-based after queue is initialized +- blk-mq: fix io hung due to missing commit_rqs +- Re-add padlen to the structure alt_instr +- tools headers: Remove broken definition of __LITTLE_ENDIAN +- tools arch: Update arch/x86/lib/mem{cpy,set}_64.S copies used in 'perf bench mem memcpy' - again +- objtool: Fix elf_create_undef_symbol() endianness +- kvm: fix objtool relocation warning +- um: Add missing apply_returns() +- x86/bugs: Remove apostrophe typo +- tools headers cpufeatures: Sync with the kernel sources +- tools arch x86: Sync the msr-index.h copy with the kernel sources +- x86/kvm: fix FASTOP_SIZE when return thunks are enabled +- efi/x86: use naked RET on mixed mode call wrapper +- x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current +- x86/ftrace: Add UNWIND_HINT_FUNC annotation for ftrace_stub +- x86/xen: Fix initialisation in hypercall_page after rethunk +- x86, kvm: use proper ASM macros for kvm_vcpu_is_preempted +- tools/insn: Restore the relative include paths for cross building +- x86/static_call: Serialize __static_call_fixup() properly +- x86/speculation: Disable RRSBA behavior +- x86/kexec: Disable RET on kexec +- x86/bugs: Do not enable IBPB-on-entry when IBPB is not supported +- x86/bugs: Add Cannon lake to RETBleed affected CPU list +- x86/retbleed: Add fine grained Kconfig knobs +- x86/cpu/amd: Enumerate BTC_NO +- x86/common: Stamp out the stepping madness +- x86/speculation: Fill RSB on vmexit for IBRS +- KVM: VMX: Fix IBRS handling after vmexit +- KVM: VMX: Prevent guest RSB poisoning attacks with eIBRS +- KVM: VMX: Convert launched argument to flags +- KVM: VMX: Flatten __vmx_vcpu_run() +- objtool: Re-add UNWIND_HINT_{SAVE_RESTORE} +- x86/speculation: Remove x86_spec_ctrl_mask +- x86/speculation: Use cached host SPEC_CTRL value for guest entry/exit +- x86/speculation: Fix SPEC_CTRL write on SMT state change +- x86/speculation: Fix firmware entry SPEC_CTRL handling +- x86/speculation: Fix RSB filling with CONFIG_RETPOLINE=n +- x86/cpu/amd: Add Spectral Chicken +- objtool: Add entry UNRET validation +- x86/bugs: Do IBPB fallback check only once +- x86/bugs: Add retbleed=ibpb +- x86/xen: Rename SYS* entry points +- objtool: Update Retpoline validation +- intel_idle: Disable IBRS during long idle +- x86/bugs: Report Intel retbleed vulnerability +- x86/bugs: Split spectre_v2_select_mitigation() and spectre_v2_user_select_mitigation() +- x86/speculation: Add spectre_v2=ibrs option to support Kernel IBRS +- x86/bugs: Optimize SPEC_CTRL MSR writes +- x86/entry: Add kernel IBRS implementation +- x86/bugs: Keep a per-CPU IA32_SPEC_CTRL value +- x86/bugs: Enable STIBP for JMP2RET +- x86/bugs: Add AMD retbleed= boot parameter +- x86/bugs: Report AMD retbleed vulnerability +- x86: Add magic AMD return-thunk +- objtool: Treat .text.__x86.* as noinstr +- x86: Use return-thunk in asm code +- x86/sev: Avoid using __x86_return_thunk +- x86/vsyscall_emu/64: Don't use RET in vsyscall emulation +- x86/kvm: Fix SETcc emulation for return thunks +- x86/bpf: Use alternative RET encoding +- x86/ftrace: Use alternative RET encoding +- x86,static_call: Use alternative RET encoding +- objtool: skip non-text sections when adding return-thunk sites +- x86,objtool: Create .return_sites +- x86: Undo return-thunk damage +- x86/retpoline: Use -mfunction-return +- Makefile: Set retpoline cflags based on CONFIG_CC_IS_{CLANG,GCC} +- x86/retpoline: Swizzle retpoline thunk +- x86/retpoline: Cleanup some #ifdefery +- x86/cpufeatures: Move RETPOLINE flags to word 11 +- x86/kvm/vmx: Make noinstr clean +- x86/realmode: build with -D__DISABLE_EXPORTS +- x86/entry: Remove skip_r11rcx +- objtool: Fix SLS validation for kcov tail-call replacement +- crypto: x86/poly1305 - Fixup SLS +- objtool: Default ignore INT3 for unreachable +- kvm/emulate: Fix SETcc emulation function offsets with SLS +- tools arch: Update arch/x86/lib/mem{cpy,set}_64.S copies used in 'perf bench mem memcpy' +- x86: Add straight-line-speculation mitigation +- objtool: Add straight-line-speculation validation +- x86/alternative: Relax text_poke_bp() constraint +- x86: Fix objtool build warning +- x86: Prepare inline-asm for straight-line-speculation +- x86: Prepare asm files for straight-line-speculation +- x86/lib/atomic64_386_32: Rename things +- bpf,x86: Respect X86_FEATURE_RETPOLINE* +- bpf,x86: Simplify computing label offsets +- x86/alternative: Implement .retpoline_sites support +- x86/retpoline: Create a retpoline thunk array +- x86/retpoline: Move the retpoline thunk declarations to nospec-branch.h +- x86/asm: Fixup odd GEN-for-each-reg.h usage +- x86/asm: Fix register order +- x86/retpoline: Remove unused replacement symbols +- objtool,x86: Replace alternatives with .retpoline_sites +- objtool: Explicitly avoid self modifying code in .altinstr_replacement +- objtool: Classify symbols +- objtool: Handle __sanitize_cov*() tail calls +- objtool: Introduce CFI hash +- objtool: Make .altinstructions section entry size consistent +- objtool: Remove reloc symbol type checks in get_alt_entry() +- objtool: print out the symbol type when complaining about it +- objtool: Teach get_alt_entry() about more relocation types +- objtool: Don't make .altinstructions writable +- objtool/x86: Ignore __x86_indirect_alt_* symbols +- objtool: Only rewrite unconditional retpoline thunk calls +- objtool: Fix .symtab_shndx handling for elf_create_undef_symbol() +- x86/alternative: Optimize single-byte NOPs at an arbitrary position +- objtool: Support asm jump tables +- objtool/x86: Rewrite retpoline thunk calls +- objtool: Skip magical retpoline .altinstr_replacement +- objtool: Cache instruction relocs +- objtool: Keep track of retpoline call sites +- objtool: Add elf_create_undef_symbol() +- objtool: Extract elf_symbol_add() +- objtool: Extract elf_strtab_concat() +- objtool: Create reloc sections implicitly +- objtool: Add elf_create_reloc() helper +- objtool: Rework the elf_rebuild_reloc_section() logic +- objtool: Handle per arch retpoline naming +- objtool: Correctly handle retpoline thunk calls +- x86/retpoline: Simplify retpolines +- x86/alternatives: Optimize optimize_nops() +- x86: Add insn_decode_kernel() +- x86/alternative: Use insn_decode() +- x86/insn: Add an insn_decode() API +- x86/insn: Add a __ignore_sync_check__ marker +- x86/insn: Rename insn_decode() to insn_decode_from_regs() +- x86/alternative: Use ALTERNATIVE_TERNARY() in _static_cpu_has() +- x86/alternative: Support ALTERNATIVE_TERNARY +- x86/alternative: Support not-feature +- x86/alternative: Merge include files +- x86/xen: Support objtool vmlinux.o validation in xen-head.S +- x86/xen: Support objtool validation in xen-asm.S +- objtool: Combine UNWIND_HINT_RET_OFFSET and UNWIND_HINT_FUNC +- objtool: Assume only ELF functions do sibling calls +- objtool: Support retpoline jump detection for vmlinux.o +- objtool: Support stack layout changes in alternatives +- objtool: Add 'alt_group' struct +- objtool: Refactor ORC section generation +- KVM/nVMX: Use __vmx_vcpu_run in nested_vmx_check_vmentry_hw +- KVM/VMX: Use TEST %REG,%REG instead of CMP $0,%REG in vmenter.S +- KVM: x86: do not report a vCPU as preempted outside instruction boundaries +- arm64: kdump: Properly handle the 4G boundary +- etmem: Add a scan flag to support specified page swap-out +- etmem: add swapcache reclaim to etmem +- etmem: add original kernel swap enabled options +- etmem: add CONFIG_ETMEM macro definition for etmem feature +- config: enable CONFIG_ETMEM by default +- add ETMEM feature CONFIG to mm/Kconfig +- netfilter: nf_tables: disallow binding to already bound chain +- netfilter: nf_conntrack_irc: Tighten matching on DCC message +- netfilter: nf_tables: do not allow RULE_ID to refer to another chain +- netfilter: nf_tables: do not allow CHAIN_ID to refer to another table +- netfilter: nf_tables: do not allow SET_ID to refer to another table +- video: fbdev: i740fb: Error out if 'pixclock' equals zero +- block: fix the problem of io_ticks becoming smaller +- !104 arm64 config: turn on Amazon ENA ethernet driver +- arm64: openeuler_defconfig: turn on Amazon ENA ethernet driver + +* Wed Sep 07 2022 Zheng Zengkai - 5.10.0-114.0.0.61 +- memcg: Fix the problem of cat memory.high_async_ratio +- memcg: Modify memory.high_async_ratio changing scope +- bpf, cgroup: Fix kernel BUG in purge_effective_progs +- bpf: Don't use tnum_range on array range checking for poke descriptors +- configfs: fix a race in configfs_lookup() +- configfs: fold configfs_attach_attr into configfs_lookup +- configfs: simplify the configfs_dirent_is_ready +- configfs: return -ENAMETOOLONG earlier in configfs_lookup +- af_key: Do not call xfrm_probe_algs in parallel +- tty: use new tty_insert_flip_string_and_push_buffer() in pty_write() +- tty: extract tty_flip_buffer_commit() from tty_flip_buffer_push() +- tty: drop tty_schedule_flip() +- tty: the rest, stop using tty_schedule_flip() +- tty: drivers/tty/, stop using tty_schedule_flip() +- pipe: fix kabi for poll_usage in struct pipe_inode_info +- bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes +- bpf: Fix potential array overflow in bpf_trampoline_get_progs() +- NFSD: Fix possible sleep during nfsd4_release_lockowner() +- NFS: Memory allocation failures are not server fatal errors +- docs: submitting-patches: Fix crossref to 'The canonical patch format' +- tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe() +- tpm: Fix buffer access in tpm2_get_tpm_pt() +- HID: multitouch: add quirks to enable Lenovo X12 trackpoint +- HID: multitouch: Add support for Google Whiskers Touchpad +- raid5: introduce MD_BROKEN +- dm verity: set DM_TARGET_IMMUTABLE feature flag +- dm stats: add cond_resched when looping over entries +- dm crypt: make printing of the key constant-time +- dm integrity: fix error code in dm_integrity_ctr() +- ARM: dts: s5pv210: Correct interrupt name for bluetooth in Aries +- Bluetooth: hci_qca: Use del_timer_sync() before freeing +- zsmalloc: fix races between asynchronous zspage free and page migration +- crypto: ecrdsa - Fix incorrect use of vli_cmp +- crypto: caam - fix i.MX6SX entropy delay value +- x86, kvm: use correct GFP flags for preemption disabled +- x86/kvm: Alloc dummy async #PF token outside of raw spinlock +- KVM: PPC: Book3S HV: fix incorrect NULL check on list iterator +- netfilter: conntrack: re-fetch conntrack after insertion +- crypto: drbg - make reseeding from get_random_bytes() synchronous +- crypto: drbg - move dynamic ->reseed_threshold adjustments to __drbg_seed() +- crypto: drbg - track whether DRBG was seeded with !rng_is_initialized() +- crypto: drbg - prepare for more fine-grained tracking of seeding state +- lib/crypto: add prompts back to crypto libraries +- exfat: check if cluster num is valid +- drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency() +- xfs: detect overflows in bmbt records +- net: ipa: compute proper aggregation limit +- assoc_array: Fix BUG_ON during garbage collect +- cfg80211: set custom regdomain after wiphy registration +- pipe: Fix missing lock in pipe_resize_ring() +- pipe: make poll_usage boolean and annotate its access +- drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers +- i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging +- net: ftgmac100: Disable hardware checksum on AST2600 +- nfc: pn533: Fix buggy cleanup order +- net: af_key: check encryption module availability consistency +- percpu_ref_init(): clean ->percpu_count_ref on failure +- pinctrl: sunxi: fix f1c100s uart2 function + +* Thu Sep 01 2022 Zheng Zengkai - 5.10.0-113.0.0.60 +- mm/huge_memory: remove outdated VM_WARN_ON_ONCE_PAGE from unmap_page() +- ARM: 9203/1: kconfig: fix MODULE_PLTS for KASAN with KASAN_VMALLOC +- ARM: 9202/1: kasan: support CONFIG_KASAN_VMALLOC +- arm64: Kconfig: select KASAN_VMALLOC if KANSAN_GENERIC is enabled +- net: fix sk_wmem_schedule() and sk_rmem_schedule() errors +- KVM: arm64: Use generic KVM xfer to guest work function +- entry: KVM: Allow use of generic KVM entry w/o full generic support +- KVM: arm64: Record number of signal exits as a vCPU stat +- dm thin: fix use-after-free crash in dm_sm_register_threshold_callback +- Revert "NFS: Use of mapping_set_error() results in spurious errors" +- random: Fix kabi change of get_random_bytes() +- random: Fix kabi change due to enum cpuhp_state +- ALSA: ctxfi: Add SB046x PCI ID +- random: check for signals after page of pool writes +- random: wire up fops->splice_{read,write}_iter() +- random: convert to using fops->write_iter() +- random: convert to using fops->read_iter() +- random: unify batched entropy implementations +- random: move randomize_page() into mm where it belongs +- random: move initialization functions out of hot pages +- random: make consistent use of buf and len +- random: use proper return types on get_random_{int,long}_wait() +- random: remove extern from functions in header +- random: use static branch for crng_ready() +- random: credit architectural init the exact amount +- random: handle latent entropy and command line from random_init() +- random: use proper jiffies comparison macro +- random: remove ratelimiting for in-kernel unseeded randomness +- random: move initialization out of reseeding hot path +- random: avoid initializing twice in credit race +- random: use symbolic constants for crng_init states +- siphash: use one source of truth for siphash permutations +- random: help compiler out with fast_mix() by using simpler arguments +- random: do not use input pool from hard IRQs +- random: order timer entropy functions below interrupt functions +- random: do not pretend to handle premature next security model +- random: use first 128 bits of input as fast init +- random: do not use batches when !crng_ready() +- random: insist on random_get_entropy() existing in order to simplify +- xtensa: use fallback for random_get_entropy() instead of zero +- sparc: use fallback for random_get_entropy() instead of zero +- um: use fallback for random_get_entropy() instead of zero +- x86/tsc: Use fallback for random_get_entropy() instead of zero +- nios2: use fallback for random_get_entropy() instead of zero +- arm: use fallback for random_get_entropy() instead of zero +- mips: use fallback for random_get_entropy() instead of just c0 random +- riscv: use fallback for random_get_entropy() instead of zero +- m68k: use fallback for random_get_entropy() instead of zero +- timekeeping: Add raw clock fallback for random_get_entropy() +- powerpc: define get_cycles macro for arch-override +- alpha: define get_cycles macro for arch-override +- parisc: define get_cycles macro for arch-override +- s390: define get_cycles macro for arch-override +- ia64: define get_cycles macro for arch-override +- init: call time_init() before rand_initialize() +- random: fix sysctl documentation nits +- random: document crng_fast_key_erasure() destination possibility +- random: make random_get_entropy() return an unsigned long +- random: allow partial reads if later user copies fail +- random: check for signals every PAGE_SIZE chunk of /dev/[u]random +- random: check for signal_pending() outside of need_resched() check +- random: do not allow user to keep crng key around on stack +- random: do not split fast init input in add_hwgenerator_randomness() +- random: mix build-time latent entropy into pool at init +- random: re-add removed comment about get_random_{u32,u64} reseeding +- random: treat bootloader trust toggle the same way as cpu trust toggle +- random: skip fast_init if hwrng provides large chunk of entropy +- random: check for signal and try earlier when generating entropy +- random: reseed more often immediately after booting +- random: make consistent usage of crng_ready() +- random: use SipHash as interrupt entropy accumulator +- random: replace custom notifier chain with standard one +- random: don't let 644 read-only sysctls be written to +- random: give sysctl_random_min_urandom_seed a more sensible value +- random: do crng pre-init loading in worker rather than irq +- random: unify cycles_t and jiffies usage and types +- random: cleanup UUID handling +- random: only wake up writers after zap if threshold was passed +- random: round-robin registers as ulong, not u32 +- random: clear fast pool, crng, and batches in cpuhp bring up +- random: pull add_hwgenerator_randomness() declaration into random.h +- random: check for crng_init == 0 in add_device_randomness() +- random: unify early init crng load accounting +- random: do not take pool spinlock at boot +- random: defer fast pool mixing to worker +- random: rewrite header introductory comment +- random: group sysctl functions +- random: group userspace read/write functions +- random: group entropy collection functions +- random: group entropy extraction functions +- random: group crng functions +- random: group initialization wait functions +- random: remove whitespace and reorder includes +- random: remove useless header comment +- random: introduce drain_entropy() helper to declutter crng_reseed() +- random: deobfuscate irq u32/u64 contributions +- random: add proper SPDX header +- random: remove unused tracepoints +- random: remove ifdef'd out interrupt bench +- random: tie batched entropy generation to base_crng generation +- random: fix locking for crng_init in crng_reseed() +- random: zero buffer after reading entropy from userspace +- random: remove outdated INT_MAX >> 6 check in urandom_read() +- random: make more consistent use of integer types +- random: use hash function for crng_slow_load() +- random: use simpler fast key erasure flow on per-cpu keys +- random: absorb fast pool into input pool after fast load +- random: do not xor RDRAND when writing into /dev/random +- random: ensure early RDSEED goes through mixer on init +- random: inline leaves of rand_initialize() +- random: get rid of secondary crngs +- random: use RDSEED instead of RDRAND in entropy extraction +- random: fix locking in crng_fast_load() +- random: remove batched entropy locking +- random: remove use_input_pool parameter from crng_reseed() +- random: make credit_entropy_bits() always safe +- random: always wake up entropy writers after extraction +- random: use linear min-entropy accumulation crediting +- random: simplify entropy debiting +- random: use computational hash for entropy extraction +- random: only call crng_finalize_init() for primary_crng +- random: access primary_pool directly rather than through pointer +- random: continually use hwgenerator randomness +- random: simplify arithmetic function flow in account() +- random: selectively clang-format where it makes sense +- random: access input_pool_data directly rather than through pointer +- random: cleanup fractional entropy shift constants +- random: prepend remaining pool constants with POOL_ +- random: de-duplicate INPUT_POOL constants +- random: remove unused OUTPUT_POOL constants +- random: rather than entropy_store abstraction, use global +- random: remove unused extract_entropy() reserved argument +- random: remove incomplete last_data logic +- random: cleanup integer types +- random: cleanup poolinfo abstraction +- random: fix typo in comments +- random: don't reset crng_init_cnt on urandom_read() +- random: avoid superfluous call to RDRAND in CRNG extraction +- random: early initialization of ChaCha constants +- random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs +- random: harmonize "crng init done" messages +- random: mix bootloader randomness into pool +- random: do not re-init if crng_reseed completes before primary init +- random: do not sign extend bytes for rotation when mixing +- random: use BLAKE2s instead of SHA1 in extraction +- random: remove unused irq_flags argument from add_interrupt_randomness() +- random: document add_hwgenerator_randomness() with other input functions +- lib/crypto: blake2s: avoid indirect calls to compression function for Clang CFI +- lib/crypto: sha1: re-roll loops to reduce code size +- lib/crypto: blake2s: move hmac construction into wireguard +- lib/crypto: blake2s: include as built-in +- crypto: blake2s - include instead of +- crypto: blake2s - adjust include guard naming +- crypto: blake2s - add comment for blake2s_state fields +- crypto: blake2s - optimize blake2s initialization +- crypto: blake2s - share the "shash" API boilerplate code +- crypto: blake2s - move update and final logic to internal/blake2s.h +- crypto: blake2s - remove unneeded includes +- crypto: x86/blake2s - define shash_alg structs using macros +- crypto: blake2s - define shash_alg structs using macros +- crypto: lib/blake2s - Move selftest prototype into header file +- MAINTAINERS: add git tree for random.c +- MAINTAINERS: co-maintain random.c +- random: remove dead code left over from blocking pool +- random: avoid arch_get_random_seed_long() when collecting IRQ randomness +- ACPI: sysfs: Fix BERT error region memory mapping +- ACPI: sysfs: Make sparse happy about address space in use +- media: vim2m: initialize the media device earlier +- media: vim2m: Register video device after setting up internals +- KVM: x86: Properly handle APF vs disabled LAPIC situation +- staging: rtl8723bs: prevent ->Ssid overflow in rtw_wx_set_scan() +- Revert "alinux: random: speed up the initialization of module" + +* Wed Aug 17 2022 Zheng Zengkai - 5.10.0-112.0.0.59 +- mm: support pagecache limit +- mm: support periodical memory reclaim +- Revert "mm/page_cache_limit: add pagecache limit proc interface" +- Revert "mm/page_cache_limit: create kernel thread for page cache limit" +- Revert "mm/page_cache_limit: calculate reclaim pages for each node" +- Revert "mm/page_cache_limit: shrink page cache" +- Revert "mm/page_cache_limit: reconfiguration about page cache limit when memory plug/unplug" +- Revert "mm/page_cache_limit: do shrink_page_cache when adding page to page cache" +- Revert "mm/page_cache_limit: add support for droping caches for target node" +- memblock: stop poisoning raw allocations +- mm: introduce memmap_alloc() to unify memory map allocation +- microblaze: simplify pte_alloc_one_kernel() +- mm/page_alloc: always initialize memory map for the holes +- mm: sharepool: sp_alloc_mmap_populate bugfix +- mm: sharepool: use built-in-statistics +- mm,hwpoison: send SIGBUS to PF_MCE_EARLY processes on action required events +- mm: sparsemem: fix missing higher order allocation splitting +- crypto: arm64/poly1305 - fix a read out-of-bound +- posix-cpu-timers: Cleanup CPU timers before freeing them during exec +- net_sched: cls_route: remove from list when handle is 0 +- tty: serial: 8250: 8250_port: Move prototypes to shared location +- mm/slub: add missing TID updates on slab deactivation +- signal/seccomp: Dump core when there is only one live thread +- netfilter: nft_compat: use nfnetlink_unicast() +- netfilter: use nfnetlink_unicast() +- dm-mpath: fix UAF in multipath_message() +- tun: avoid double free in tun_free_netdev +- efi/libstub: arm64: Fix KASLR and memmap= collision +- efi/libstub: arm64: support strchr function for EFI stub +- io_uring:drop identity before creating a private one +- module: check for exit sections in layout_sections() instead of module_init_section() +- afs: Fix afs_getattr() to refetch file status if callback break occurred +- i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe() +- module: treat exit sections the same as init sections when !CONFIG_MODULE_UNLOAD +- dt-bindings: pinctrl: aspeed-g6: remove FWQSPID group +- Input: ili210x - fix reset timing +- arm64: Enable repeat tlbi workaround on KRYO4XX gold CPUs +- net: atlantic: verify hw_head_ lies within TX buffer ring +- net: atlantic: add check for MAX_SKB_FRAGS +- net: atlantic: reduce scope of is_rsc_complete +- net: atlantic: fix "frag[0] not initialized" +- net: stmmac: fix missing pci_disable_device() on error in stmmac_pci_probe() +- ethernet: tulip: fix missing pci_disable_device() on error in tulip_init_one() +- nl80211: fix locking in nl80211_set_tx_bitrate_mask() +- selftests: add ping test with ping_group_range tuned +- nl80211: validate S1G channel width +- mac80211: fix rx reordering with non explicit / psmp ack policy +- scsi: qla2xxx: Fix missed DMA unmap for aborted commands +- perf bench numa: Address compiler error on s390 +- gpio: mvebu/pwm: Refuse requests with inverted polarity +- gpio: gpio-vf610: do not touch other bits when set the target bit +- riscv: dts: sifive: fu540-c000: align dma node name with dtschema +- net: bridge: Clear offload_fwd_mark when passing frame up bridge interface. +- igb: skip phy status check where unavailable +- ARM: 9197/1: spectre-bhb: fix loop8 sequence for Thumb2 +- ARM: 9196/1: spectre-bhb: enable for Cortex-A15 +- net: af_key: add check for pfkey_broadcast in function pfkey_process +- net/mlx5e: Properly block LRO when XDP is enabled +- NFC: nci: fix sleep in atomic context bugs caused by nci_skb_alloc +- net/qla3xxx: Fix a test in ql_reset_work() +- clk: at91: generated: consider range when calculating best rate +- ice: fix possible under reporting of ethtool Tx and Rx statistics +- net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup() +- net: vmxnet3: fix possible use-after-free bugs in vmxnet3_rq_alloc_rx_buf() +- net: systemport: Fix an error handling path in bcm_sysport_probe() +- net/sched: act_pedit: sanitize shift argument before usage +- net: evaluate net.ipvX.conf.all.disable_policy and disable_xfrm +- net: macb: Increment rx bd head after allocating skb and buffer +- net: ipa: record proper RX transaction count +- ARM: dts: aspeed-g6: fix SPI1/SPI2 quad pin group +- pinctrl: pinctrl-aspeed-g6: remove FWQSPID group in pinctrl +- ARM: dts: aspeed-g6: remove FWQSPID group in pinctrl dtsi +- dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace +- drm/dp/mst: fix a possible memory leak in fetch_monitor_name() +- libceph: fix potential use-after-free on linger ping and resends +- crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ +- arm64: mte: Ensure the cleared tags are visible before setting the PTE +- arm64: paravirt: Use RCU read locks to guard stolen_time +- KVM: x86/mmu: Update number of zapped pages even if page list is stable +- PCI/PM: Avoid putting Elo i2 PCIe Ports in D3cold +- Fix double fget() in vhost_net_set_backend() +- selinux: fix bad cleanup on error in hashtab_duplicate() +- ALSA: hda/realtek: Add quirk for TongFang devices with pop noise +- ALSA: wavefront: Proper check of get_user() error +- ALSA: usb-audio: Restore Rane SL-1 quirk +- nilfs2: fix lockdep warnings during disk space reclamation +- nilfs2: fix lockdep warnings in page operations for btree nodes +- platform/chrome: cros_ec_debugfs: detach log reader wq from devm +- drbd: remove usage of list iterator variable after loop +- MIPS: lantiq: check the return value of kzalloc() +- fs: fix an infinite loop in iomap_fiemap +- rtc: mc146818-lib: Fix the AltCentury for AMD platforms +- nvme-multipath: fix hang when disk goes live over reconnect +- tools/virtio: compile with -pthread +- vhost_vdpa: don't setup irq offloading when irq_num < 0 +- s390/pci: improve zpci_dev reference counting +- ALSA: hda/realtek: Enable headset mic on Lenovo P360 +- crypto: x86/chacha20 - Avoid spurious jumps to other functions +- crypto: stm32 - fix reference leak in stm32_crc_remove +- rtc: sun6i: Fix time overflow handling +- gfs2: Disable page faults during lockless buffered reads +- nvme-pci: add quirks for Samsung X5 SSDs +- Input: stmfts - fix reference leak in stmfts_input_open +- Input: add bounds checking to input_set_capability() +- um: Cleanup syscall_handler_t definition/cast, fix warning +- rtc: pcf2127: fix bug when reading alarm registers +- rtc: fix use-after-free on device removal +- igc: Update I226_K device ID +- igc: Remove phy->type checking +- igc: Remove _I_PHY_ID checking +- io_uring: always grab file table for deferred statx +- usb: gadget: fix race when gadget driver register via ioctl +- SUNRPC: Fix fall-through warnings for Clang +- usb: gadget: uvc: allow for application to cleanly shutdown +- usb: gadget: uvc: rename function to be more consistent +- ping: fix address binding wrt vrf +- arm[64]/memremap: don't abuse pfn_valid() to ensure presence of linear map +- net: phy: Fix race condition on link status change +- SUNRPC: Don't call connect() more than once on a TCP socket +- SUNRPC: Prevent immediate close+reconnect +- SUNRPC: Clean up scheduling of autoclose +- drm/vmwgfx: Initialize drm_mode_fb_cmd2 +- cgroup/cpuset: Remove cpus_allowed/mems_allowed setup in cpuset_init_smp() +- net: atlantic: always deep reset on pm op, fixing up my null deref regression +- i40e: i40e_main: fix a missing check on list iterator +- drm/nouveau/tegra: Stop using iommu_present() +- ceph: fix setting of xattrs on async created inodes +- serial: 8250_mtk: Fix register address for XON/XOFF character +- serial: 8250_mtk: Fix UART_EFR register address +- slimbus: qcom: Fix IRQ check in qcom_slim_probe +- USB: serial: option: add Fibocom MA510 modem +- USB: serial: option: add Fibocom L610 modem +- USB: serial: qcserial: add support for Sierra Wireless EM7590 +- USB: serial: pl2303: add device id for HP LM930 Display +- usb: typec: tcpci_mt6360: Update for BMC PHY setting +- usb: typec: tcpci: Don't skip cleanup in .remove() on error +- usb: cdc-wdm: fix reading stuck on device close +- tty: n_gsm: fix mux activation issues in gsm_config() +- tty/serial: digicolor: fix possible null-ptr-deref in digicolor_uart_probe() +- firmware_loader: use kernel credentials when reading firmware +- tcp: resalt the secret every 10 seconds +- net: sfp: Add tx-fault workaround for Huawei MA5671A SFP ONT +- net: emaclite: Don't advertise 1000BASE-T and do auto negotiation +- s390: disable -Warray-bounds +- ASoC: ops: Validate input values in snd_soc_put_volsw_range() +- ASoC: max98090: Generate notifications on changes for custom control +- ASoC: max98090: Reject invalid values in custom control put() +- hwmon: (f71882fg) Fix negative temperature +- gfs2: Fix filesystem block deallocation for short writes +- tls: Fix context leak on tls_device_down +- net: sfc: ef10: fix memory leak in efx_ef10_mtd_probe() +- net/smc: non blocking recvmsg() return -EAGAIN when no data and signal_pending +- net: dsa: bcm_sf2: Fix Wake-on-LAN with mac_link_down() +- net: bcmgenet: Check for Wake-on-LAN interrupt probe deferral +- net/sched: act_pedit: really ensure the skb is writable +- s390/lcs: fix variable dereferenced before check +- s390/ctcm: fix potential memory leak +- s390/ctcm: fix variable dereferenced before check +- selftests: vm: Makefile: rename TARGETS to VMTARGETS +- hwmon: (ltq-cputemp) restrict it to SOC_XWAY +- dim: initialize all struct fields +- ionic: fix missing pci_release_regions() on error in ionic_probe() +- nfs: fix broken handling of the softreval mount option +- mac80211_hwsim: call ieee80211_tx_prepare_skb under RCU protection +- net: sfc: fix memory leak due to ptp channel +- sfc: Use swap() instead of open coding it +- netlink: do not reset transport header in netlink_recvmsg() +- drm/nouveau: Fix a potential theorical leak in nouveau_get_backlight_name() +- ipv4: drop dst in multicast routing path +- net: mscc: ocelot: avoid corrupting hardware counters when moving VCAP filters +- net: mscc: ocelot: restrict tc-trap actions to VCAP IS2 lookup 0 +- net: mscc: ocelot: fix VCAP IS2 filters matching on both lookups +- net: mscc: ocelot: fix last VCAP IS1/IS2 filter persisting in hardware when deleted +- net: Fix features skip in for_each_netdev_feature() +- mac80211: Reset MBSSID parameters upon connection +- hwmon: (tmp401) Add OF device ID table +- iwlwifi: iwl-dbg: Use del_timer_sync() before freeing +- batman-adv: Don't skb_split skbuffs with frag_list +- !67 scsi: mpt3sas: Transition IOC to Ready state during shutdown +- scsi: mpt3sas: Stop fw fault watchdog work item during system shutdown +- scsi: mpt3sas: Transition IOC to Ready state during shutdown +- x86: Clear .brk area at early boot + +* Wed Aug 10 2022 Zheng Zengkai - 5.10.0-109.0.0.58 +- memcg: export high_async_ratio to userland +- memcg: enable memcg async reclaim +- Revert "memcg: support memcg sync reclaim work as kswapd" +- Revert "memcg: make memcg kswapd deal with dirty" +- Revert "memcg: Add static key for memcg kswapd" +- Revert "cgroup: fix compile error when CONFIG_MEMCG = n" +- keys: Allow automatic module signature with SM3 +- netfilter: nf_queue: do not allow packet truncation below transport header offset +- io_uring: use separate list entry for iopoll requests +- io_uring: add missing item types for various requests +- io-wq: Switch io_wqe_worker's fs before releasing request +- coresight: etm4x: Workaround CPU hung bug on HiSilicon ETM +- drivers/perf: hisi: Add Support for CPA PMU +- drivers/perf: hisi: Associate PMUs in SICL with CPUs online +- drivers/perf: hisi: Add driver for HiSilicon PCIe PMU +- mm: userfaultfd: fix missing cache flush in mcopy_atomic_pte() and __mcopy_atomic() +- mm: hugetlb: fix missing cache flush in copy_huge_page_from_user() +- mm: fix missing cache flush for all tail pages of compound page +- Bluetooth: Fix the creation of hdev->name +- arm: remove CONFIG_ARCH_HAS_HOLES_MEMORYMODEL +- nfp: bpf: silence bitwise vs. logical OR warning +- drm/amd/display/dc/gpio/gpio_service: Pass around correct dce_{version, environment} types +- block: drbd: drbd_nl: Make conversion to 'enum drbd_ret_code' explicit +- regulator: consumer: Add missing stubs to regulator/consumer.h +- MIPS: Use address-of operator on section symbols +- !53 Help to merge the bus lock detection and ratelimit feature for OpenEuler +- !45 backport adding Intel NTB LTR vendor support for gen4 NTB +- x86/bus_lock: Set rate limit for bus lock +- Documentation/admin-guide: Add bus lock ratelimit +- Documentation/x86: Add buslock.rst +- Documentation/admin-guide: Change doc for split_lock_detect parameter +- x86/traps: Handle #DB for bus lock +- x86/cpufeatures: Enumerate #DB for bus lock detection +- ntb: intel: add Intel NTB LTR vendor support for gen4 NTB + +* Thu Aug 04 2022 Zheng Zengkai - 5.10.0-108.0.0.57 +- ipv6/addrconf: fix a null-ptr-deref bug for ip6_ptr +- xfrm: xfrm_policy: fix a possible double xfrm_pols_put() in xfrm_bundle_lookup() +- ath9k: fix use-after-free in ath9k_hif_usb_rx_cb +- jbd2: Fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted +- RDMA/hns: Recover 1bit-ECC error of RAM on chip +- RDMA/hns: Refactor the abnormal interrupt handler function +- RDMA/hns: Fix incorrect clearing of interrupt status register +- RDMA/hns: Fix the wrong type of return value of the interrupt handler +- RDMA/hns: Remove unused abnormal interrupt of type RAS +- ext4: Fix race when reusing xattr blocks +- ext4: Unindent codeblock in ext4_xattr_block_set() +- ext4: Remove EA inode entry from mbcache on inode eviction +- mbcache: Add functions to delete entry if unused +- mbcache: Don't reclaim used entries +- md/raid6: refactor raid5_read_one_chunk +- md/raid10: enable io accounting +- md/raid1: enable io accounting +- md/raid1: rename print_msg with r1bio_existed +- md/raid5: avoid redundant bio clone in raid5_read_one_chunk +- md: add io accounting for raid0 and raid5 +- mmc: rtsx: add 74 Clocks in power on flow +- PCI: aardvark: Fix reading MSI interrupt number +- PCI: aardvark: Clear all MSIs at setup +- dm: interlock pending dm_io and dm_wait_for_bios_completion +- rcu: Apply callbacks processing time limit only on softirq +- rcu: Fix callbacks processing time limit retaining cond_resched() +- KVM: LAPIC: Enable timer posted-interrupt only when mwait/hlt is advertised +- KVM: x86/mmu: avoid NULL-pointer dereference on page freeing bugs +- KVM: x86: Do not change ICR on write to APIC_SELF_IPI +- x86/kvm: Preserve BSP MSR_KVM_POLL_CONTROL across suspend/resume +- net/mlx5: Fix slab-out-of-bounds while reading resource dump menu +- kvm: x86/cpuid: Only provide CPUID leaf 0xA if host has architectural PMU +- net: igmp: respect RCU rules in ip_mc_source() and ip_mc_msfilter() +- btrfs: always log symlinks in full mode +- smsc911x: allow using IRQ0 +- selftests: ocelot: tc_flower_chains: specify conform-exceed action for policer +- bnxt_en: Fix unnecessary dropping of RX packets +- bnxt_en: Fix possible bnxt_open() failure caused by wrong RFS flag +- selftests: mirror_gre_bridge_1q: Avoid changing PVID while interface is operational +- net: emaclite: Add error handling for of_address_to_resource() +- net: cpsw: add missing of_node_put() in cpsw_probe_dt() +- net: stmmac: dwmac-sun8i: add missing of_node_put() in sun8i_dwmac_register_mdio_mux() +- net: dsa: mt7530: add missing of_node_put() in mt7530_setup() +- net: ethernet: mediatek: add missing of_node_put() in mtk_sgmii_init() +- NFSv4: Don't invalidate inode attributes on delegation return +- RDMA/siw: Fix a condition race issue in MPA request processing +- selftests/seccomp: Don't call read() on TTY from background pgrp +- net/mlx5: Avoid double clear or set of sync reset requested +- net/mlx5e: Fix the calling of update_buffer_lossy() API +- net/mlx5e: CT: Fix queued up restore put() executing after relevant ft release +- net/mlx5e: Fix trust state reset in reload +- ASoC: dmaengine: Restore NULL prepare_slave_config() callback +- hwmon: (adt7470) Fix warning on module removal +- gpio: pca953x: fix irq_stat not updated when irq is disabled (irq_mask not set) +- can: grcan: only use the NAPI poll budget for RX +- can: grcan: grcan_probe(): fix broken system id check for errata workaround needs +- can: grcan: use ofdev->dev when allocating DMA memory +- can: isotp: remove re-binding of bound socket +- can: grcan: grcan_close(): fix deadlock +- s390/dasd: Fix read inconsistency for ESE DASD devices +- s390/dasd: Fix read for ESE with blksize < 4k +- s390/dasd: prevent double format of tracks for ESE devices +- s390/dasd: fix data corruption for ESE devices +- ASoC: meson: Fix event generation for AUI CODEC mux +- ASoC: meson: Fix event generation for G12A tohdmi mux +- ASoC: meson: Fix event generation for AUI ACODEC mux +- ASoC: wm8958: Fix change notifications for DSP controls +- ASoC: da7219: Fix change notifications for tone generator frequency +- genirq: Synchronize interrupt thread startup +- net: stmmac: disable Split Header (SPH) for Intel platforms +- firewire: core: extend card->lock in fw_core_handle_bus_reset +- firewire: remove check of list iterator against head past the loop body +- firewire: fix potential uaf in outbound_phy_packet_callback() +- Revert "SUNRPC: attempt AF_LOCAL connect on setup" +- drm/amd/display: Avoid reading audio pattern past AUDIO_CHANNELS_COUNT +- iommu/vt-d: Calculate mask for non-aligned flushes +- KVM: x86/svm: Account for family 17h event renumberings in amd_pmc_perf_hw_id +- gpiolib: of: fix bounds check for 'gpio-reserved-ranges' +- mmc: core: Set HS clock speed before sending HS CMD13 +- mmc: sdhci-msm: Reset GCC_SDCC_BCR register for SDHC +- ALSA: fireworks: fix wrong return count shorter than expected by 4 bytes +- ALSA: hda/realtek: Add quirk for Yoga Duet 7 13ITL6 speakers +- parisc: Merge model and model name into one line in /proc/cpuinfo +- MIPS: Fix CP0 counter erratum detection for R4k CPUs +- perf symbol: Remove arch__symbols__fixup_end() +- tty: n_gsm: fix software flow control handling +- tty: n_gsm: fix incorrect UA handling +- tty: n_gsm: fix reset fifo race condition +- tty: n_gsm: fix wrong command frame length field encoding +- tty: n_gsm: fix wrong command retry handling +- tty: n_gsm: fix missing explicit ldisc flush +- tty: n_gsm: fix wrong DLCI release order +- tty: n_gsm: fix insufficient txframe size +- netfilter: nft_socket: only do sk lookups when indev is available +- tty: n_gsm: fix malformed counter for out of frame data +- tty: n_gsm: fix wrong signal octet encoding in convergence layer type 2 +- tty: n_gsm: fix mux cleanup after unregister tty device +- tty: n_gsm: fix decoupled mux resource +- tty: n_gsm: fix restart handling via CLD command +- perf symbol: Update symbols__fixup_end() +- perf symbol: Pass is_kallsyms to symbols__fixup_end() +- x86/cpu: Load microcode during restore_processor_state() +- thermal: int340x: Fix attr.show callback prototype +- net: ethernet: stmmac: fix write to sgmii_adapter_base +- drm/i915: Fix SEL_FETCH_PLANE_*(PIPE_B+) register addresses +- kasan: prevent cpu_quarantine corruption when CPU offline and cache shrink occur at same time +- zonefs: Clear inode information flags on inode creation +- zonefs: Fix management of open zones +- powerpc/perf: Fix 32bit compile +- drivers: net: hippi: Fix deadlock in rr_close() +- cifs: destage any unwritten data to the server before calling copychunk_write +- x86: __memcpy_flushcache: fix wrong alignment if size > 2^32 +- ASoC: wm8731: Disable the regulator when probing fails +- ASoC: Intel: soc-acpi: correct device endpoints for max98373 +- tcp: fix F-RTO may not work correctly when receiving DSACK +- Revert "ibmvnic: Add ethtool private flag for driver-defined queue limits" +- ibmvnic: fix miscellaneous checks +- ixgbe: ensure IPsec VF<->PF compatibility +- net: fec: add missing of_node_put() in fec_enet_init_stop_mode() +- bnx2x: fix napi API usage sequence +- drm/amd/display: Fix memory leak in dcn21_clock_source_create +- drm/amdkfd: Fix GWS queue count +- net: dsa: lantiq_gswip: Don't set GSWIP_MII_CFG_RMII_CLK +- net: phy: marvell10g: fix return value on error +- net: bcmgenet: hide status block before TX timestamping +- clk: sunxi: sun9i-mmc: check return value after calling platform_get_resource() +- bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create() +- tcp: make sure treq->af_specific is initialized +- tcp: fix potential xmit stalls caused by TCP_NOTSENT_LOWAT +- ip_gre, ip6_gre: Fix race condition on o_seqno in collect_md mode +- ip6_gre: Make o_seqno start from 0 in native mode +- ip_gre: Make o_seqno start from 0 in native mode +- net/smc: sync err code when tcp connection was refused +- cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe +- pinctrl: pistachio: fix use of irq_of_parse_and_map() +- arm64: dts: imx8mn-ddr4-evk: Describe the 32.768 kHz PMIC clock +- ARM: dts: imx6ull-colibri: fix vqmmc regulator +- sctp: check asoc strreset_chunk in sctp_generate_reconf_event +- wireguard: device: check for metadata_dst with skb_valid_dst() +- pinctrl: stm32: Keep pinctrl block clock enabled when LEVEL IRQ requested +- tcp: md5: incorrect tcp_header_len for incoming connections +- pinctrl: rockchip: fix RK3308 pinmux bits +- bpf, lwt: Fix crash when using bpf_skb_set_tunnel_key() from bpf_xmit lwt hook +- netfilter: nft_set_rbtree: overlap detection with element re-addition after deletion +- net: dsa: Add missing of_node_put() in dsa_port_link_register_of +- memory: renesas-rpc-if: Fix HF/OSPI data transfer in Manual Mode +- pinctrl: stm32: Do not call stm32_gpio_get() for edge triggered IRQs in EOI +- mtd: rawnand: Fix return value check of wait_for_completion_timeout +- pinctrl: mediatek: moore: Fix build error +- ipvs: correctly print the memory size of ip_vs_conn_tab +- ARM: dts: logicpd-som-lv: Fix wrong pinmuxing on OMAP35 +- ARM: dts: am3517-evm: Fix misc pinmuxing +- ARM: dts: Fix mmc order for omap3-gta04 +- phy: ti: Add missing pm_runtime_disable() in serdes_am654_probe +- phy: mapphone-mdm6600: Fix PM error handling in phy_mdm6600_probe +- ARM: dts: at91: sama5d4_xplained: fix pinctrl phandle name +- ARM: dts: at91: Map MCLK for wm8731 on at91sam9g20ek +- phy: ti: omap-usb2: Fix error handling in omap_usb2_enable_clocks +- bus: ti-sysc: Make omap3 gpt12 quirk handling SoC specific +- ARM: OMAP2+: Fix refcount leak in omap_gic_of_init +- phy: samsung: exynos5250-sata: fix missing device put in probe error paths +- phy: samsung: Fix missing of_node_put() in exynos_sata_phy_probe +- ARM: dts: imx6qdl-apalis: Fix sgtl5000 detection issue +- USB: Fix xhci event ring dequeue pointer ERDP update issue +- mtd: rawnand: fix ecc parameters for mt7622 +- iio:imu:bmi160: disable regulator in error path +- arm64: dts: meson: remove CPU opps below 1GHz for SM1 boards +- arm64: dts: meson: remove CPU opps below 1GHz for G12B boards +- video: fbdev: udlfb: properly check endpoint type +- iocost: don't reset the inuse weight of under-weighted debtors +- x86/pci/xen: Disable PCI/MSI[-X] masking for XEN_HVM guests +- riscv: patch_text: Fixup last cpu should be master +- hex2bin: fix access beyond string end +- pinctrl: samsung: fix missing GPIOLIB on ARM64 Exynos config +- arch_topology: Do not set llc_sibling if llc_id is invalid +- serial: 8250: Correct the clock for EndRun PTP/1588 PCIe device +- serial: 8250: Also set sticky MCR bits in console restoration +- serial: imx: fix overrun interrupts in DMA mode +- usb: phy: generic: Get the vbus supply +- usb: cdns3: Fix issue for clear halt endpoint +- usb: dwc3: gadget: Return proper request status +- usb: dwc3: core: Only handle soft-reset in DCTL +- usb: dwc3: core: Fix tx/rx threshold settings +- usb: dwc3: Try usb-role-switch first in dwc3_drd_init +- usb: gadget: configfs: clear deactivation flag in configfs_composite_unbind() +- usb: gadget: uvc: Fix crash when encoding data for usb request +- usb: typec: ucsi: Fix role swapping +- usb: typec: ucsi: Fix reuse of completion structure +- usb: misc: fix improper handling of refcount in uss720_probe() +- iio: imu: inv_icm42600: Fix I2C init possible nack +- iio: magnetometer: ak8975: Fix the error handling in ak8975_power_on() +- iio: dac: ad5446: Fix read_raw not returning set value +- iio: dac: ad5592r: Fix the missing return value. +- xhci: increase usb U3 -> U0 link resume timeout from 100ms to 500ms +- xhci: stop polling roothubs after shutdown +- xhci: Enable runtime PM on second Alderlake controller +- USB: serial: option: add Telit 0x1057, 0x1058, 0x1075 compositions +- USB: serial: option: add support for Cinterion MV32-WA/MV32-WB +- USB: serial: cp210x: add PIDs for Kamstrup USB Meter Reader +- USB: serial: whiteheat: fix heap overflow in WHITEHEAT_GET_DTR_RTS +- USB: quirks: add STRING quirk for VCOM device +- USB: quirks: add a Realtek card reader +- usb: mtu3: fix USB 3.0 dual-role-switch from device to host +- lightnvm: disable the subsystem + +* Thu Jul 28 2022 Zheng Zengkai - 5.10.0-107.0.0.56 +- mm: hugetlb_vmemmap: disable hugetlb_vmemmap when dynamic hugetlb is enabled +- mm: hugetlb_vmemmap: fix CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON +- mm: hugetlb_vmemmap: add hugetlb_optimize_vmemmap sysctl +- mm: hugetlb_vmemmap: use kstrtobool for hugetlb_vmemmap param parsing +- mm: hugetlb_vmemmap: disable hugetlb_optimize_vmemmap when struct page crosses page boundaries +- sysctl: add a new register_sysctl_init() interface +- mm: hugetlb_vmemmap: cleanup CONFIG_HUGETLB_PAGE_FREE_VMEMMAP* +- mm: hugetlb_vmemmap: cleanup hugetlb_free_vmemmap_enabled* +- mm: hugetlb_vmemmap: cleanup hugetlb_vmemmap related functions +- arm64: mm: hugetlb: enable HUGETLB_PAGE_FREE_VMEMMAP for arm64 +- mm: hugetlb_vmemmap: introduce ARCH_WANT_HUGETLB_PAGE_FREE_VMEMMAP +- Revert "arm64: mm: hugetlb: add support for free vmemmap pages of HugeTLB" +- mm: sparsemem: move vmemmap related to HugeTLB to CONFIG_HUGETLB_PAGE_FREE_VMEMMAP +- selftests: vm: add a hugetlb test case +- mm: sparsemem: use page table lock to protect kernel pmd operations +- mm: hugetlb: replace hugetlb_free_vmemmap_enabled with a static_key +- mm: hugetlb: free the 2nd vmemmap page associated with each HugeTLB page +- mm: make compound_head const-preserving +- jump_label: Provide CONFIG-driven build state defaults +- Revert "mm/dynamic_hugetlb: disable dynamic hugetlb if hugetlb_vmemmap is enabled" +- ubifs: Fix AA deadlock when setting xattr for encrypted file +- ubifs: Fix the issue that UBIFS be read-only due to truncate in the encrypted directory +- lockdown: Fix kexec lockdown bypass with ima policy +- fbmem: Check virtual screen sizes in fb_set_var() +- fbcon: Prevent that screen size is smaller than font size +- fbcon: Disallow setting font bigger than screen size +- inotify: show inotify mask flags in proc fdinfo +- block: prevent lockdep false positive warning about 'bd_mutex' +- block: fix that part scan is disabled in device_add_disk() +- block: Fix warning in bd_link_disk_holder() +- ucounts: add missing data type changes +- bpf: Don't redirect packets with invalid pkt_len +- Revert "net: micrel: fix KS8851_MLL Kconfig" +- block/compat_ioctl: fix range check in BLKGETSIZE +- staging: ion: Prevent incorrect reference counting behavour +- spi: atmel-quadspi: Fix the buswidth adjustment between spi-mem and controller +- can: isotp: stop timeout monitoring when no first frame was sent +- ext4: force overhead calculation if the s_overhead_cluster makes no sense +- ext4: fix overhead calculation to account for the reserved gdt blocks +- ext4, doc: fix incorrect h_reserved size +- ext4: limit length to bitmap_maxbytes - blocksize in punch_hole +- ext4: fix fallocate to use file_modified to update permissions consistently +- perf report: Set PERF_SAMPLE_DATA_SRC bit for Arm SPE event +- powerpc/perf: Fix power9 event alternatives +- drm/vc4: Use pm_runtime_resume_and_get to fix pm_runtime_get_sync() usage +- KVM: PPC: Fix TCE handling for VFIO +- drm/panel/raspberrypi-touchscreen: Initialise the bridge in prepare +- drm/panel/raspberrypi-touchscreen: Avoid NULL deref if not initialised +- perf/core: Fix perf_mmap fail when CONFIG_PERF_USE_VMALLOC enabled +- sched/pelt: Fix attach_entity_load_avg() corner case +- arm_pmu: Validate single/group leader events +- ARC: entry: fix syscall_trace_exit argument +- e1000e: Fix possible overflow in LTR decoding +- ASoC: soc-dapm: fix two incorrect uses of list iterator +- gpio: Request interrupts after IRQ is initialized +- openvswitch: fix OOB access in reserve_sfa_size() +- xtensa: fix a7 clobbering in coprocessor context load/store +- xtensa: patch_text: Fixup last cpu should be master +- net: atlantic: invert deep par in pm functions, preventing null derefs +- dma: at_xdmac: fix a missing check on list iterator +- ata: pata_marvell: Check the 'bmdma_addr' beforing reading +- mm/mmu_notifier.c: fix race in mmu_interval_notifier_remove() +- mm, hugetlb: allow for "high" userspace addresses +- EDAC/synopsys: Read the error count from the correct register +- nvme-pci: disable namespace identifiers for Qemu controllers +- nvme: add a quirk to disable namespace identifiers +- stat: fix inconsistency between struct stat and struct compat_stat +- scsi: qedi: Fix failed disconnect handling +- net: macb: Restart tx only if queue pointer is lagging +- drm/msm/mdp5: check the return of kzalloc() +- dpaa_eth: Fix missing of_node_put in dpaa_get_ts_info() +- brcmfmac: sdio: Fix undefined behavior due to shift overflowing the constant +- mt76: Fix undefined behavior due to shift overflowing the constant +- net: atlantic: Avoid out-of-bounds indexing +- cifs: Check the IOCB_DIRECT flag, not O_DIRECT +- vxlan: fix error return code in vxlan_fdb_append +- arm64: dts: imx: Fix imx8*-var-som touchscreen property sizes +- ALSA: usb-audio: Fix undefined behavior due to shift overflowing the constant +- platform/x86: samsung-laptop: Fix an unsigned comparison which can never be negative +- reset: tegra-bpmp: Restore Handle errors in BPMP response +- ARM: vexpress/spc: Avoid negative array index when !SMP +- arm64: mm: fix p?d_leaf() +- arm64/mm: Remove [PUD|PMD]_TABLE_BIT from [pud|pmd]_bad() +- selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets +- dmaengine: idxd: add RO check for wq max_transfer_size write +- dmaengine: idxd: add RO check for wq max_batch_size write +- net: stmmac: Use readl_poll_timeout_atomic() in atomic state +- netlink: reset network and mac headers in netlink_dump() +- ipv6: fix kabi for ip6_rt_gc_expire in struct netns_ipv6 +- ipv6: make ip6_rt_gc_expire an atomic_t +- l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu +- net/sched: cls_u32: fix possible leak in u32_init_knode() +- ip6_gre: Fix skb_under_panic in __gre6_xmit() +- ip6_gre: Avoid updating tunnel->tun_hlen in __gre6_xmit() +- net/packet: fix packet_sock xmit return value checking +- net/smc: Fix sock leak when release after smc_shutdown() +- rxrpc: Restore removed timer deletion +- igc: Fix BUG: scheduling while atomic +- igc: Fix infinite loop in release_swfw_sync +- esp: limit skb_page_frag_refill use to a single page +- spi: spi-mtk-nor: initialize spi controller after resume +- dmaengine: mediatek:Fix PM usage reference leak of mtk_uart_apdma_alloc_chan_resources +- dmaengine: imx-sdma: Fix error checking in sdma_event_remap +- ASoC: codecs: wcd934x: do not switch off SIDO Buck when codec is in use +- ASoC: msm8916-wcd-digital: Check failure for devm_snd_soc_register_component +- ASoC: atmel: Remove system clock tree configuration for at91sam9g20ek +- ALSA: hda/realtek: Add quirk for Clevo NP70PNP +- ALSA: usb-audio: Clear MIDI port active flag after draining +- gfs2: assign rgrp glock before compute_bitstructs +- perf tools: Fix segfault accessing sample_id xyarray +- tracing: Dump stacktrace trigger to the corresponding instance +- mm: page_alloc: fix building error on -Werror=array-compare +- etherdevice: Adjust ether_addr* prototypes to silence -Wstringop-overead +- !34 SPR: HBM EDAC and MCA recovery enhancement and bug fix +- EDAC/i10nm: Release mdev/mbase when failing to detect HBM +- EDAC/skx_common: Set the memory type correctly for HBM memory +- EDAC/mc: Add new HBM2 memory type +- EDAC/i10nm: Add support for high bandwidth memory +- EDAC/i10nm: Add detection of memory levels for ICX/SPR servers +- EDAC/skx_common: Add new ADXL components for 2-level memory +- EDAC/i10nm: Retrieve and print retry_rd_err_log registers +- EDAC/i10nm: Add Intel Sapphire Rapids server support +- EDAC: Add DDR5 new memory type +- mm/hwpoison: fix error page recovered but reported "not recovered" +- x86/mce: Reduce number of machine checks taken during recovery +- x86/mce: Drop copyin special case for #MC +- generic_perform_write()/iomap_write_actor(): saner logics for short copy +- x86/mce: Change to not send SIGBUS error during copy from user +- mm,hwpoison: send SIGBUS with error virutal address +- mm/hwpoison: do not lock page again when me_huge_page() successfully recovers +- af_unix: Relax race in unix_autobind(). +- af_unix: Replace the big lock with small locks. +- af_unix: Save hash in sk_hash. +- af_unix: Add helpers to calculate hashes. +- af_unix: Return errno instead of NULL in unix_create1(). +- af_unix: Remove UNIX_ABSTRACT() macro and test sun_path[0] instead. +- af_unix: Allocate unix_address in unix_bind_(bsd|abstract)(). +- unix_bind_bsd(): unlink if we fail after successful mknod +- unix_bind_bsd(): move done_path_create() call after dealing with ->bindlock +- af_unix: Remove unix_mkname(). +- af_unix: Copy unix_mkname() into unix_find_(bsd|abstract)(). +- af_unix: Cut unix_validate_addr() out of unix_mkname(). +- af_unix: Return an error as a pointer in unix_find_other(). +- af_unix: Factorise unix_find_other() based on address types. +- fold unix_mknod() into unix_bind_bsd() +- af_unix: Pass struct sock to unix_autobind(). +- __unix_find_socket_byname(): don't pass hash and type separately +- af_unix: Use offsetof() instead of sizeof(). +- unix_bind(): take BSD and abstract address cases into new helpers +- unix_bind(): separate BSD and abstract cases +- unix_bind(): allocate addr earlier +- af_unix: take address assignment/hash insertion into a new helper +- ARM: module: Add all unwind tables when load module +- arm64: openeuler_defconfig: enable ACPI_HMAT and HOT_MEMREMOVE +- block: fix mismatch size for flush_rq +- KEYS: Fix mistaken sizeof call in pgp_key_generate_id +- KEYS: Add safe guard against faulty PGP key +- KEYS: Fix error path return value in pgp_generate_fingerprint +- crypto: hisilicon/sec - don't sleep when in softirq +- !29 Intel SPR: HFI support +- !35 Intel SPR: SGX: backport SGX MCA recovery co-existence +- !30 Intel SPR: powercap: intel_rapl: support new layout of Psys PowerLimit Register layout +- crypto: hisilicon/sec - delete the flag CRYPTO_ALG_ALLOCATES_MEMORY +- crypto: hisilicon/sec - add sm4 generic selection +- crypto: hisilicon/qm - remove hisi_qm_get_free_qp_num() +- crypto: hisilicon/qm - replace hisi_qm_release_qp() with hisi_qm_free_qps() +- crypto: hisilicon/qm - set function with static +- crypto: hisilicon/qm - remove unused function declaration +- crypto: hisilicon/sgl - align the hardware sgl dma address +- crypto: hisilicon/zip - support last word dumping +- crypto: hisilicon/hpre - support last word dumping +- crypto: hisilicon/sec - support last word dumping +- crypto: hisilicon/qm - add last word dumping for ACC +- crypto: hisilicon/zip - support register checking +- crypto: hisilicon/sec - support register checking +- crypto: hisilicon/hpre - support register checking +- crypto: hisilicon/qm - add register checking for ACC +- kernel.h: drop inclusion in bitmap.h +- crypto: hisilicon/qm - optimize the barrier operation +- crypto: hisilicon/qm: Set the VF QM state register +- hisi_acc_qm: Move VF PCI device IDs to common header +- crypto: hisilicon/qm: Move few definitions to common header +- crypto: hisilicon/qm - support the userspace task resetting +- crypto: hisilicon/qm: Move the QM header to include/linux +- crypto: hisilicon/sec - not need to enable sm4 extra mode at HW V3 +- crypto: hisilicon/sec - add the register configuration for HW V3 +- crypto: hisilicon/qm - cleanup warning in qm_vf_read_qos +- crypto: hisilicon/sec - use the correct print format +- crypto: hisilicon - cleanup warning in qm_get_qos_value() +- crypto: hisilicon/qm - disable qm clock-gating +- crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init() +- crypto: hisilicon/qm - fix incorrect return value of hisi_qm_resume() +- crypto: hisilicon/qm - simplified the calculation of qos shaper parameters +- crypto: hisilicon/qm - some optimizations of ths qos write process +- crypto: hisilicon/qm - modify the value of qos initialization +- crypto: hisilicon - modify the value of engine type rate +- crypto: hisilicon/hpre - use swap() to make code cleaner +- crypto: hisilicon - use dev_driver_string() instead of pci_dev->driver->name +- xen/arm: Fix race in RB-tree based P2M accounting +- nbd: fix io hung while disconnecting device +- nbd: don't clear 'NBD_CMD_INFLIGHT' flag if request is not completed +- filemap: Correct the conditions for marking a folio as accessed +- Revert "mm/filemap: fix that first page is not mark accessed in filemap_read()" +- net: rose: fix UAF bugs caused by timer handler +- nbd: fix race between nbd_alloc_config() and module removal +- nbd: call genl_unregister_family() first in nbd_cleanup() +- openeuler_defconfig: Enable SENSORS_ZHAOXIN_CPUTEMP as module by default +- Driver for Zhaoxin CPU core temperature monitoring +- scsi: iscsi: fix kabi broken in struct iscsi_transport +- scsi: iscsi: fix kabi broken in struct iscsi_cls_conn +- scsi: iscsi: Fix unbound endpoint error handling +- scsi: iscsi: Fix endpoint reuse regression +- dma-direct: avoid redundant memory sync for swiotlb +- timers: Fix warning condition in __run_timers() +- i2c: pasemi: Wait for write xfers to finish +- smp: Fix offline cpu check in flush_smp_call_function_queue() +- dm integrity: fix memory corruption when tag_size is less than digest size +- ARM: davinci: da850-evm: Avoid NULL pointer dereference +- tick/nohz: Use WARN_ON_ONCE() to prevent console saturation +- genirq/affinity: Consider that CPUs on nodes can be unbalanced +- drm/amdgpu: Enable gfxoff quirk on MacBook Pro +- drm/amd/display: don't ignore alpha property on pre-multiplied mode +- ipv6: fix panic when forwarding a pkt with no in6 dev +- nl80211: correctly check NL80211_ATTR_REG_ALPHA2 size +- ALSA: pcm: Test for "silence" field in struct "pcm_format_data" +- ALSA: hda/realtek: add quirk for Lenovo Thinkpad X12 speakers +- ALSA: hda/realtek: Add quirk for Clevo PD50PNT +- btrfs: mark resumed async balance as writing +- btrfs: fix root ref counts in error handling in btrfs_get_root_ref +- ath9k: Fix usage of driver-private space in tx_info +- ath9k: Properly clear TX status area before reporting to mac80211 +- gcc-plugins: latent_entropy: use /dev/urandom +- memory: renesas-rpc-if: fix platform-device leak in error path +- KVM: x86/mmu: Resolve nx_huge_pages when kvm.ko is loaded +- mm: kmemleak: take a full lowmem check in kmemleak_*_phys() +- mm: fix unexpected zeroed page mapping with zram swap +- mm, page_alloc: fix build_zonerefs_node() +- perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant +- drivers: net: slip: fix NPD bug in sl_tx_timeout() +- scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan +- scsi: mvsas: Add PCI ID of RocketRaid 2640 +- drm/amd/display: Fix allocate_mst_payload assert on resume +- drm/amd/display: Revert FEC check in validation +- myri10ge: fix an incorrect free for skb in myri10ge_sw_tso +- net: usb: aqc111: Fix out-of-bounds accesses in RX fixup +- net: axienet: setup mdio unconditionally +- tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry +- arm64: alternatives: mark patch_alternative() as `noinstr` +- regulator: wm8994: Add an off-on delay for WM8994 variant +- gpu: ipu-v3: Fix dev_dbg frequency output +- ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs +- net: micrel: fix KS8851_MLL Kconfig +- scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024 +- scsi: lpfc: Fix queue failures when recovering from PCI parity error +- scsi: target: tcmu: Fix possible page UAF +- Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer +- drm/amdkfd: Check for potential null return of kmalloc_array() +- drm/amdgpu/vcn: improve vcn dpg stop procedure +- drm/amdkfd: Fix Incorrect VMIDs passed to HWS +- drm/amd/display: Update VTEM Infopacket definition +- drm/amd/display: FEC check in timing validation +- drm/amd/display: fix audio format not updated after edid updated +- btrfs: do not warn for free space inode in cow_file_range +- btrfs: fix fallocate to use file_modified to update permissions consistently +- drm/amd: Add USBC connector ID +- net: bcmgenet: Revert "Use stronger register read/writes to assure ordering" +- dm mpath: only use ktime_get_ns() in historical selector +- cifs: potential buffer overflow in handling symlinks +- nfc: nci: add flush_workqueue to prevent uaf +- perf tools: Fix misleading add event PMU debug message +- testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set +- sctp: Initialize daddr on peeled off socket +- scsi: iscsi: Fix conn cleanup and stop race during iscsid restart +- scsi: iscsi: Fix offload conn cleanup when iscsid restarts +- scsi: iscsi: Move iscsi_ep_disconnect() +- scsi: iscsi: Fix in-kernel conn failure handling +- scsi: iscsi: Rel ref after iscsi_lookup_endpoint() +- scsi: iscsi: Use system_unbound_wq for destroy_work +- scsi: iscsi: Force immediate failure during shutdown +- scsi: iscsi: Stop queueing during ep_disconnect +- scsi: pm80xx: Enable upper inbound, outbound queues +- scsi: pm80xx: Mask and unmask upper interrupt vectors 32-63 +- net/smc: Fix NULL pointer dereference in smc_pnet_find_ib() +- drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init() +- drm/msm: Fix range size vs end confusion +- cfg80211: hold bss_lock while updating nontrans_list +- net/sched: taprio: Check if socket flags are valid +- net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link +- net: dsa: felix: suppress -EPROBE_DEFER errors +- net/sched: fix initialization order when updating chain 0 head +- mlxsw: i2c: Fix initialization error flow +- net: mdio: Alphabetically sort header inclusion +- gpiolib: acpi: use correct format characters +- veth: Ensure eth header is in skb's linear part +- SUNRPC: Fix the svc_deferred_event trace class +- media: rockchip/rga: do proper error checking in probe +- firmware: arm_scmi: Fix sorting of retrieved clock rates +- memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe +- drm/msm: Add missing put_task_struct() in debugfs path +- btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups() +- ACPI: processor idle: Check for architectural support for LPI +- cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function +- drm/amdkfd: Use drm_priv to pass VM from KFD to amdgpu +- mm/sharepool: Check sp_is_enabled() in all exported interfaces +- mm/sharepool: Add a task_struct parameter for sp_get_local_group() +- mm/sharepool: Don't check the DVPP address space range before merging +- mm/sharepool: Configure the DVPP range for process +- mm/sharepool: Introduce SPG_NON_DVPP flag for sp_group_add_task +- mm/sharepool: Update sp_mapping structure +- mm/sharepool: Clear the initialization of sp-associated structure for a process +- mm/sharepool: Unify the memory allocation process +- mm/sharepool: Use vm_private_data to store the spa +- mm/sharepool: Share pool statistics adaption +- mm/sharepool: Release the sp addr based on the id +- mm/sharepool: Add an interface to obtain an id +- mm/sharepool: Address space management for sp_group +- mm/sharepool: Fix kabi borken in sp_group_master +- mm/sharepool: Create global normal and dvpp mapping +- mm/sharepool: Delete single-group mode +- mm/sharepool: Avoid NULL pointer dereference in mg_sp_group_add_task +- mm/sharepool: Fix using uninitialized sp_flag +- mm/sharepool: Support read-only memory allocation +- mm/sharepool: Modify sharepool sp_mmap() page_offset +- mm/sharepool: Accept device_id in k2u flags +- mm/sharepool: use rwsem to protect sp group exit +- mm/sharepool: Allow share THP to kernel +- !31 update patches for sw64 architecture +- !27 Intel SPR: New instructions AVX VNNI and 5G ISA +- x86/sgx: Add check for SGX pages to ghes_do_memory_failure() +- x86/sgx: Add hook to error injection address validation +- x86/sgx: Hook arch_memory_failure() into mainline code +- x86/sgx: Add SGX infrastructure to recover from poison +- x86/sgx: Initial poison handling for dirty and free pages +- x86/sgx: Add infrastructure to identify SGX EPC pages +- x86/sgx: Add new sgx_epc_page flag bit to mark free pages +- Intel: AVX VNNI: x86: Enumerate AVX Vector Neural Network instructions +- Intel: 5G ISA: x86: Enumerate AVX512 FP16 CPUID feature flag +- sw64: fix floating point register corruption +- sw64: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP +- sw64: kvm: enable binding_vcpu debug dynamically +- sw64: reimplement save_stack_trace() +- sw64: reimplement get_wchan() +- sw64: reimplement show_stack() method +- sw64: rename debugfs dir sw_64 to sw64 +- sw64: deliver a hot reset to Root Complex with plugin JMicron 585 card +- sw64: fix simd version of memset +- sw64: remove unaligned count +- sw64: pci: fix maximum bus number for pci scan +- sw64: add a misc device to chip_vt.dts for memory-hotplug +- sw64: add memhotplug support for guest os +- sw64: perf: fix raw event count +- sw64: gpu: replace '_memset_c_io' by 'memset_io' +- sw64: fix __csum_and_copy when dest is not 8-byte aligned +- drivers/irqchip: add sw64 interrupt controller support +- sw64: perf: fix the number of supported raw events +- sw64: dtb: check address validity with physical address +- sw64: kvm: fix incorrect page_ref_count() call +- sw64: iommu: fix iommu interrupt handler +- sw64: fix dma features for zx200 +- sw64: pcie: fix lack of PME and AER interrupt service routines +- sw64: gpu: correct low-level mmio memset/memcpy direct calls +- sw64: fix compile errors for NOT chip3 +- sw64: perf: add fp based stack trace support +- sw64: rewrite elf core copy interfaces +- sw64: fix ptrace.h with types.h and NOT __ASSEMBLY__ +- sw64: merge user_fpsimd_state into thread_struct +- sw64: add ARCH_TRACEHOOK and regset support +- sw64: change the value of physical_id in /proc/cpuinfo +- sw64: perf: add exclude_user and exclude_kernel support +- sw64: fix some structs related to pt_regs +- sw64: add builtin LPC interrupt controller to chip3.dts +- irqchip: add sw64 chip3 builtin LPC interrupt controller driver +- sw64: remove discontiguous memory support +- sw64: check integrity for dtb passed by BIOS +- sw64: simplify pgtable helpers +- sw64: simplify __phys_addr and __virt_addr_valid +- sw64: avoid copying thread_struct twice +- sw64: move struct pt_regs to kapi ptrace.h +- sw64: access pt_regs with regoffsets where appropriate +- sw64: remove other struct switch_stack things +- sw64: remove switch_stack from __sw64_vcpu_run +- sw64: remove switch_stack and allregs from entUna +- sw64: get blocked thread's frame pointer from thread_struct +- sw64: dump callee-saved registers from pt_regs +- sw64: remove switch_stack from signal handling +- sw64: remove switch_stack from entMM and entSys +- sw64: remove r9_r15 argument of dik_show_regs and die_if_kernel +- sw64: switch to generic fork like system calls +- sw64: add fpu state save/restore interfaces +- sw64: access IO space with readX/writeX +- sw64: map logical address with __va() +- sw64: read host IO registers with rdio64 hmcall +- sw64: map address by OR operation in __va() +- sw64: iommu: work around iova mapping on pci bars +- sw64: do not include sw64io.h in io.h +- sw64: remove unused IO_CONCAT +- sw64: kapi: use generic vga.h +- sw64: clean up unused pci iounmap operation +- sw64: remove VGA_HOSE things +- sw64: kapi: include generic modules.h +- sw64: kapi: remove unimplemented IPLs +- sw64: kapi: remove redudant SMP_CACHE_BYTES +- sw64: move ucontext.h to uapi +- sw64: kapi: generate some kapi headers from generic ones +- sw64: kapi: remove unused header-y from Kbuild +- sw64: uapi: include generic param.h +- sw64: uapi: generate some uapi headers from generic ones +- sw64: remove unused header files +- powercap: intel_rapl: support new layout of Psys PowerLimit Register on SPR +- thermal: netlink: Fix parameter type of thermal_genl_cpu_capability_event() stub +- thermal: netlink: Add a new event to notify CPU capabilities change +- thermal: intel: hfi: INTEL_HFI_THERMAL depends on NET +- thermal: intel: hfi: Notify user space for HFI events +- thermal: intel: hfi: Enable notification interrupt +- x86/Documentation: Describe the Intel Hardware Feedback Interface +- thermal: intel: hfi: Handle CPU hotplug events +- thermal: intel: hfi: Minimally initialize the Hardware Feedback Interface +- x86/cpu: Add definitions for the Intel Hardware Feedback Interface +- thermal: Move therm_throt there from x86/mce +- x86/mce: Get rid of mcheck_intel_therm_init() + +* Mon Jul 18 2022 Zheng Zengkai - 5.10.0-105.0.0.55 +- powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit +- Revert "powerpc: Fix virt_addr_valid() check" +- mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning +- irqchip/gic, gic-v3: Prevent GSI to SGI translations +- Drivers: hv: vmbus: Replace smp_store_mb() with virt_store_mb() +- arm64: module: remove (NOLOAD) from linker script +- selftests: cgroup: Test open-time cgroup namespace usage for migration checks +- selftests: cgroup: Test open-time credential usage for migration checks +- selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644 +- selftests/cgroup: Fix build on older distros +- mm: don't skip swap entry even if zap_details specified +- ubsan: remove CONFIG_UBSAN_OBJECT_SIZE +- dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error" +- tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts +- tools build: Filter out options and warnings not supported by clang +- perf python: Fix probing for some clang command line options +- perf build: Don't use -ffat-lto-objects in the python feature test when building with clang-13 +- drm/amdkfd: Create file descriptor after client is added to smi_clients list +- drm/nouveau/pmu: Add missing callbacks for Tegra devices +- drm/amdgpu/smu10: fix SoC/fclk units in auto mode +- irqchip/gic-v3: Fix GICR_CTLR.RWP polling +- perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator +- ata: sata_dwc_460ex: Fix crash due to OOB write +- gpio: Restrict usage of GPIO chip irq members before initialization +- RDMA/hfi1: Fix use-after-free bug for mm struct +- arm64: patch_text: Fixup last cpu should be master +- btrfs: prevent subvol with swapfile from being deleted +- btrfs: fix qgroup reserve overflow the qgroup limit +- x86/speculation: Restore speculation related MSRs during S3 resume +- x86/pm: Save the MSR validity status at context setup +- mm/mempolicy: fix mpol_new leak in shared_policy_replace +- mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0) +- lz4: fix LZ4_decompress_safe_partial read out of bound +- mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is complete +- mmc: mmci: stm32: correctly check all elements of sg list +- Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning" +- arm64: Add part number for Arm Cortex-A78AE +- perf session: Remap buf if there is no space for event +- perf tools: Fix perf's libperf_print callback +- perf: arm-spe: Fix perf report --mem-mode +- iommu/omap: Fix regression in probe for NULL pointer dereference +- SUNRPC: svc_tcp_sendmsg() should handle errors from xdr_alloc_bvec() +- SUNRPC: Handle low memory situations in call_status() +- SUNRPC: Handle ENOMEM in call_transmit_status() +- io_uring: don't touch scm_fp_list after queueing skb +- drbd: Fix five use after free bugs in get_initial_state +- bpf: Support dual-stack sockets in bpf_tcp_check_syncookie +- spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op() +- qede: confirm skb is allocated before using +- net: phy: mscc-miim: reject clause 45 register accesses +- rxrpc: fix a race in rxrpc_exit_net() +- net: openvswitch: fix leak of nested actions +- net: openvswitch: don't send internal clone attribute to the userspace. +- ice: synchronize_rcu() when terminating rings +- ipv6: Fix stats accounting in ip6_pkt_drop +- ice: Do not skip not enabled queues in ice_vc_dis_qs_msg +- ice: Set txq_teid to ICE_INVAL_TEID on ring creation +- dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe +- IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition +- RDMA/mlx5: Don't remove cache MRs when a delay is needed +- sfc: Do not free an empty page_ring +- bnxt_en: reserve space inside receive page for skb_shared_info +- drm/imx: Fix memory leak in imx_pd_connector_get_modes +- drm/imx: imx-ldb: Check for null pointer after calling kmemdup +- net: stmmac: Fix unset max_speed difference between DT and non-DT platforms +- net: ipv4: fix route with nexthop object delete warning +- ice: Clear default forwarding VSI during VSI release +- scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one() +- Drivers: hv: vmbus: Fix potential crash on module unload +- drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire() +- Revert "hv: utils: add PTP_1588_CLOCK to Kconfig to fix build" +- mm: fix race between MADV_FREE reclaim and blkdev direct IO read +- parisc: Fix patch code locking and flushing +- parisc: Fix CPU affinity for Lasi, WAX and Dino chips +- NFS: Avoid writeback threads getting stuck in mempool_alloc() +- NFS: nfsiod should not block forever in mempool_alloc() +- SUNRPC: Fix socket waits for write buffer space +- jfs: prevent NULL deref in diFree +- virtio_console: eliminate anonymous module_init & module_exit +- serial: samsung_tty: do not unlock port->lock for uart_write_wakeup() +- x86/Kconfig: Do not allow CONFIG_X86_X32_ABI=y with llvm-objcopy +- NFS: swap-out must always use STABLE writes. +- NFS: swap IO handling is slightly different for O_DIRECT IO +- SUNRPC: remove scheduling boost for "SWAPPER" tasks. +- SUNRPC/xprt: async tasks mustn't block waiting for memory +- SUNRPC/call_alloc: async tasks mustn't block waiting for memory +- clk: Enforce that disjoints limits are invalid +- clk: ti: Preserve node in ti_dt_clocks_register() +- xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32 +- NFSv4: Protect the state recovery thread against direct reclaim +- NFSv4.2: fix reference count leaks in _nfs42_proc_copy_notify() +- w1: w1_therm: fixes w1_seq for ds28ea00 sensors +- staging: wfx: fix an error handling in wfx_init_common() +- phy: amlogic: meson8b-usb2: Use dev_err_probe() +- staging: vchiq_core: handle NULL result of find_service_by_handle +- clk: si5341: fix reported clk_rate when output divider is 2 +- minix: fix bug when opening a file with O_DIRECT +- init/main.c: return 1 from handled __setup() functions +- ceph: fix memory leak in ceph_readdir when note_last_dentry returns error +- netlabel: fix out-of-bounds memory accesses +- Bluetooth: Fix use after free in hci_send_acl +- MIPS: ingenic: correct unit node address +- xtensa: fix DTC warning unit_address_format +- usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm +- net: sfp: add 2500base-X quirk for Lantech SFP module +- net: limit altnames to 64k total +- net: account alternate interface name memory +- can: isotp: set default value for N_As to 50 micro seconds +- scsi: libfc: Fix use after free in fc_exch_abts_resp() +- powerpc/secvar: fix refcount leak in format_show() +- MIPS: fix fortify panic when copying asm exception handlers +- PCI: endpoint: Fix misused goto label +- bnxt_en: Eliminate unintended link toggle during FW reset +- Bluetooth: use memset avoid memory leaks +- Bluetooth: Fix not checking for valid hdev on bt_dev_{info,warn,err,dbg} +- tuntap: add sanity checks about msg_controllen in sendmsg +- macvtap: advertise link netns via netlink +- mips: ralink: fix a refcount leak in ill_acc_of_setup() +- net/smc: correct settings of RMB window update limit +- scsi: hisi_sas: Free irq vectors in order for v3 HW +- scsi: aha152x: Fix aha152x_setup() __setup handler return value +- mt76: mt7615: Fix assigning negative values to unsigned variable +- scsi: pm8001: Fix memory leak in pm8001_chip_fw_flash_update_req() +- scsi: pm8001: Fix tag leaks on error +- scsi: pm8001: Fix task leak in pm8001_send_abort_all() +- scsi: pm8001: Fix pm8001_mpi_task_abort_resp() +- scsi: pm8001: Fix pm80xx_pci_mem_copy() interface +- drm/amdkfd: make CRAT table missing message informational only +- dm ioctl: prevent potential spectre v1 gadget +- ipv4: Invalidate neighbour for broadcast address upon address addition +- iwlwifi: mvm: Correctly set fragmented EBS +- power: supply: axp288-charger: Set Vhold to 4.4V +- PCI: pciehp: Add Qualcomm quirk for Command Completed erratum +- tcp: Don't acquire inet_listen_hashbucket::lock with disabled BH. +- PCI: endpoint: Fix alignment fault error in copy tests +- usb: ehci: add pci device support for Aspeed platforms +- iommu/arm-smmu-v3: fix event handling soft lockup +- PCI: aardvark: Fix support for MSI interrupts +- drm/amdgpu: Fix recursive locking warning +- powerpc: Set crashkernel offset to mid of RMA region +- ipv6: fix kabi for mc_forwarding in struct ipv6_devconf +- ipv6: make mc_forwarding atomic +- libbpf: Fix build issue with llvm-readelf +- cfg80211: don't add non transmitted BSS to 6GHz scanned channels +- mt76: dma: initialize skip_unmap in mt76_dma_rx_fill +- power: supply: axp20x_battery: properly report current when discharging +- scsi: bfa: Replace snprintf() with sysfs_emit() +- scsi: mvsas: Replace snprintf() with sysfs_emit() +- bpf: Make dst_port field in struct bpf_sock 16-bit wide +- ath11k: mhi: use mhi_sync_power_up() +- ath11k: fix kernel panic during unload/load ath11k modules +- powerpc: dts: t104xrdb: fix phy type for FMAN 4/5 +- ptp: replace snprintf with sysfs_emit +- usb: gadget: tegra-xudc: Fix control endpoint's definitions +- usb: gadget: tegra-xudc: Do not program SPARAM +- drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj +- drm/amd/display: Add signal type check when verify stream backends same +- ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111 +- drm: Add orientation quirk for GPD Win Max +- KVM: x86/emulator: Emulate RDPID only if it is enabled in guest +- KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs +- rtc: wm8350: Handle error for wm8350_register_irq +- gfs2: gfs2_setattr_size error path fix +- gfs2: Fix gfs2_release for non-writers regression +- gfs2: Check for active reservation in gfs2_release +- !26 Intel SPR: SGX virtualization support +- !25 Intel SPR: Intel PMT support +- !24 Intel SPR: intel_idle support +- docs: virt: api.rst: fix a pointer to SGX documentation +- platform/x86: intel_pmt_telemetry: Ignore zero sized entries +- platform/x86: intel_pmt_crashlog: Constify static attribute_group struct +- platform/x86: intel_pmt_crashlog: Fix incorrect macros +- platform/x86: intel_pmt_class: Initial resource to 0 +- mfd: intel_pmt: Add support for DG1 +- mfd: intel_pmt: Fix nuisance messages and handling of disabled capabilities +- platform/x86: intel_pmt_crashlog: Add dependency on MFD_INTEL_PMT +- platform/x86: intel_pmt_telemetry: Add dependency on MFD_INTEL_PMT +- platform/x86: intel_pmt: Make INTEL_PMT_CLASS non-user-selectable +- platform/x86: pmt: Fix a potential Oops on error in probe +- platform/x86: Intel PMT Crashlog capability driver +- platform/x86: Intel PMT Telemetry capability driver +- platform/x86: Intel PMT class driver +- mfd: Intel Platform Monitoring Technology support +- PCI: Add defines for Designated Vendor-Specific Extended Capability +- intel_idle: Fix SPR C6 optimization +- intel_idle: Fix the 'preferred_cstates' module parameter +- cpuidle: intel_idle: Drop redundant backslash at line end +- cpuidle: intel_idle: Update intel_idle() kerneldoc comment +- intel_idle: add core C6 optimization for SPR +- intel_idle: add 'preferred_cstates' module argument +- intel_idle: add SPR support +- intel_idle: enable interrupts before C1 on Xeons +- intel_idle: Adjust the SKX C6 parameters if PC6 is disabled +- intel_idle: add Iclelake-D support +- intel_idle: update ICX C6 data +- intel_idle: remove definition of DEBUG +- intel_idle: add SnowRidge C-state table +- x86/sgx: Silence softlockup detection when releasing large enclaves +- x86/sgx: Fix free page accounting +- x86/sgx/virt: implement SGX_IOC_VEPC_REMOVE ioctl +- x86/sgx/virt: extract sgx_vepc_remove_page +- x86/sgx: use vma_lookup() in sgx_encl_find() +- mm: add vma_lookup(), update find_vma_intersection() comments +- i915_vma: Rename vma_lookup to i915_vma_lookup +- x86/sgx: Add missing xa_destroy() when virtual EPC is destroyed +- x86/sgx: Do not update sgx_nr_free_pages in sgx_setup_epc_section() +- KVM: x86: Fix implicit enum conversion goof in scattered reverse CPUID code +- KVM: x86: Add capability to grant VM access to privileged SGX attribute +- KVM: VMX: Enable SGX virtualization for SGX1, SGX2 and LC +- KVM: VMX: Add ENCLS[EINIT] handler to support SGX Launch Control (LC) +- KVM: VMX: Add emulation of SGX Launch Control LE hash MSRs +- KVM: VMX: Add SGX ENCLS[ECREATE] handler to enforce CPUID restrictions +- KVM: VMX: Frame in ENCLS handler for SGX virtualization +- KVM: VMX: Add basic handling of VM-Exit from SGX enclave +- KVM: x86: Add reverse-CPUID lookup support for scattered SGX features +- KVM: x86: Add support for reverse CPUID lookup of scattered features +- KVM: x86: Define new #PF SGX error code bit +- KVM: x86: Export kvm_mmu_gva_to_gpa_{read,write}() for SGX (VMX) +- x86/sgx: Move provisioning device creation out of SGX driver +- x86/sgx: Add helpers to expose ECREATE and EINIT to KVM +- x86/sgx: Add helper to update SGX_LEPUBKEYHASHn MSRs +- x86/sgx: Add encls_faulted() helper +- x86/sgx: Add SGX2 ENCLS leaf definitions (EAUG, EMODPR and EMODT) +- x86/sgx: Move ENCLS leaf definitions to sgx.h +- x86/sgx: Initialize virtual EPC driver even when SGX driver is disabled +- x86/cpu/intel: Allow SGX virtualization without Launch Control support +- x86/sgx: Introduce virtual EPC for use by KVM guests +- x86/sgx: Add SGX_CHILD_PRESENT hardware error code +- x86/sgx: Wipe out EREMOVE from sgx_free_epc_page() +- x86/cpufeatures: Add SGX1 and SGX2 sub-features +- x86/cpufeatures: Make SGX_LC feature bit depend on SGX bit +- x86/mm: Signal SIGSEGV with PF_SGX + +* Wed Jul 13 2022 Zheng Zengkai - 5.10.0-104.0.0.54 +- xen/blkfront: force data bouncing when backend is untrusted +- xen/netfront: force data bouncing when backend is untrusted +- xen/netfront: fix leaking data in shared pages +- xen/blkfront: fix leaking data in shared pages +- netfilter: nf_tables: stricter validation of element data +- xen-netfront: restore __skb_queue_tail() positioning in xennet_get_responses() +- tmpfs: fix the issue that the mount and remount results are inconsistent. +- tmpfs: fix undefined-behaviour in shmem_reconfigure() +- mm/filemap: fix UAF in find_lock_entries +- shmem: allow reporting fanotify events with file handles on tmpfs +- fs: introduce a wrapper uuid_to_fsid() +- Revert "iommu: handle page response timeout" +- livepatch/ppc32: Fix the stack check for exception frames +- livepatch/ppc64: Fix the stack check for exception frames +- livepatch/ppc64: Fix several compilation errors in unwind_frame() +- mm/filemap: fix that first page is not mark accessed in filemap_read() +- block: don't use cmpxchg64() on 32-bit platform +- block: fix that iostat can show huge wait time +- block: fix sleeping function called from invalid context in part_get_stat_info() +- block: fix kabi broken in struct hd_struct +- blk-mq: fix kabi broken in struct request +- block: update nsecs[] in part_stat_show() and diskstats_show() +- blk-throttle: fix io hung due to configuration updates +- vt: drop old FONT ioctls +- genirq: Take the proposed affinity at face value if force==true +- irqchip/gic-v3: Always trust the managed affinity provided by the core code +- genirq: Always limit the affinity to online CPUs +- genirq/msi: Shutdown managed interrupts with unsatifiable affinities +- livepatch: Add klp_module_delete_safety_check +- livepatch/x86: Add arch_klp_module_check_calltrace +- livepatch/x86: Add do_check_calltrace +- livepatch/powerpc64: Add arch_klp_module_check_calltrace +- livepatch/powerpc64: Add do_check_calltrace +- livepatch/powerpc32: Add arch_klp_module_check_calltrace +- livepatch/powerpc32: Add do_check_calltrace +- livepatch/arm: Add arch_klp_module_check_calltrace +- livepatch/arm: Add do_check_calltrace +- livepatch/arm64: Add arch_klp_module_check_calltrace +- livepatch/arm64: Add do_check_calltrace +- livepatch/powerpc: Support breakpoint exception optimization +- livepatch/powerpc: Change livepatch_create_btamp to a public function +- livepatch/arm: Support breakpoint exception optimization +- livepatch/arm64: Support breakpoint exception optimization +- livepatch: Add arch_klp_init +- livepatch/x86: Support breakpoint exception optimization +- livepatch: Use breakpoint exception to optimize enabling livepatch +- livepatch: Traverse klp_func_list by using the rcu interface +- livepatch: Delete the duplicate code of klp_compare_address() +- livepatch: Narrow the scope of the 'text_mutex' lock +- livepatch: Cleanup klp_mem_prepare() +- sign-file: Support SM signature +- mm/kfence: reset PG_slab and memcg_data before freeing __kfence_pool +- mm: kfence: fix objcgs vector allocation +- mm/kfence: print disabling or re-enabling message +- kfence: enable check kfence canary on panic via boot param +- kfence: test: try to avoid test_gfpzero trigger rcu_stall +- kunit: fix UAF when run kfence test case test_gfpzero +- arm64: kfence: scale sample_interval to control re-enabling +- kfence: make re-enabling KFENCE compatible with dynamic objects +- kfence: alloc kfence_pool after system startup +- kfence: allow re-enabling KFENCE after system startup +- mm,hwpoison: drop unneeded pcplist draining +- mm,hwpoison: take free pages off the buddy freelists +- mm,hwpoison: drain pcplists before bailing out for non-buddy zero-refcount page + +* Wed Jul 06 2022 Zheng Zengkai - 5.10.0-102.0.0.53 +- smp: fix early_param csdlock_debug boot panic +- RDMA/hns: Use hr_reg_read() instead of remaining roce_get_xxx() +- RDMA/hns: Use hr_reg_xxx() instead of remaining roce_set_xxx() +- RDMA/hns: Remove the num_cqc_timer variable +- RDMA/hns: Add the detection for CMDQ status in the device initialization process +- RDMA/hns: Remove unnecessary ret variable from hns_roce_dereg_mr() +- RDMA/hns: Init the variable at the suitable place +- RDMA/hns: Add judgment on the execution result of CMDQ that free vf resource +- RDMA/hns: Remove redundant variable "ret" +- RDMA/hns: Remove unused function to_hns_roce_state() +- RDMA/hns: Remove unnecessary check for the sgid_attr when modifying QP +- ipmi:watchdog: Set panic count to proper value on a panic +- ipmi/watchdog: replace atomic_add() and atomic_sub() +- scsi: hisi_sas: Change the debugfs parameters dump count default value +- blk-mq: don't clear flush_rq from tags->rqs[] +- ext4: correct the misjudgment in ext4_iget_extra_inode +- ext4: correct max_inline_xattr_value_size computing +- ext4: fix use-after-free in ext4_xattr_set_entry +- ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h +- x86/speculation/mmio: Print SMT warning +- KVM: x86/speculation: Disable Fill buffer clear within guests +- x86/speculation/mmio: Reuse SRBDS mitigation for SBDS +- x86/speculation/srbds: Update SRBDS mitigation selection +- x86/speculation/mmio: Add sysfs reporting for Processor MMIO Stale Data +- x86/speculation/mmio: Enable CPU Fill buffer clearing on idle +- x86/bugs: Group MDS, TAA & Processor MMIO Stale Data mitigations +- x86/speculation/mmio: Add mitigation for Processor MMIO Stale Data +- x86/speculation: Add a common function for MD_CLEAR mitigation update +- x86/speculation/mmio: Enumerate Processor MMIO Stale Data bug +- Documentation: Add documentation for Processor MMIO Stale Data +- arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory zones +- PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup" +- can: m_can: m_can_tx_handler(): fix use after free of skb +- openvswitch: Fixed nd target mask field in the flow dump. +- docs: sysctl/kernel: add missing bit to panic_print +- um: Fix uml_mconsole stop/go +- ARM: dts: spear13xx: Update SPI dma properties +- ARM: dts: spear1340: Update serial node properties +- ASoC: topology: Allow TLV control to be either read or write +- dt-bindings: spi: mxic: The interrupt property is not mandatory +- dt-bindings: mtd: nand-controller: Fix a comment in the examples +- dt-bindings: mtd: nand-controller: Fix the reg property description +- bpf: Fix comment for helper bpf_current_task_under_cgroup() +- bpf: Adjust BPF stack helper functions to accommodate skip > 0 +- mm/usercopy: return 1 from hardened_usercopy __setup() handler +- mm/memcontrol: return 1 from cgroup.memory __setup() handler +- ARM: 9187/1: JIVE: fix return value of __setup handler +- mm/mmap: return 1 from stack_guard_gap __setup() handler +- batman-adv: Check ptr for NULL before reducing its refcnt +- ASoC: soc-compress: Change the check for codec_dai +- staging: mt7621-dts: fix pinctrl-0 items to be size-1 items on ethernet +- proc: bootconfig: Add null pointer check +- can: isotp: restore accidentally removed MSG_PEEK feature +- platform/chrome: cros_ec_typec: Check for EC device +- ACPI: CPPC: Avoid out of bounds access when parsing _CPC data +- riscv module: remove (NOLOAD) +- io_uring: fix memory leak of uid in files registration +- ARM: iop32x: offset IRQ numbers by 1 +- ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs +- pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() +- pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR() +- watchdog: rti-wdt: Add missing pm_runtime_disable() in probe function +- pinctrl: pinconf-generic: Print arguments for bias-pull-* +- watch_queue: Free the page array when watch_queue is dismantled +- crypto: arm/aes-neonbs-cbc - Select generic cbc and aes +- mailbox: imx: fix wakeup failure from freeze mode +- rxrpc: Fix call timer start racing with call destruction +- gfs2: Make sure FITRIM minlen is rounded up to fs block size +- rtc: check if __rtc_read_time was successful +- XArray: Update the LRU list in xas_split() +- can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix return of error value +- can: mcba_usb: properly check endpoint type +- XArray: Fix xas_create_range() when multi-order entry present +- wireguard: socket: ignore v6 endpoints when ipv6 is disabled +- wireguard: socket: free skb in send6 when ipv6 is disabled +- wireguard: queueing: use CFI-safe ptr_ring cleanup function +- ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM +- KVM: SVM: fix panic on out-of-bounds guest IRQ +- KVM: x86: fix sending PV IPI +- KVM: Prevent module exit until all VMs are freed +- KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated +- platform: chrome: Split trace include file +- scsi: qla2xxx: Use correct feature type field during RFF_ID processing +- scsi: qla2xxx: Reduce false trigger to login +- scsi: qla2xxx: Fix N2N inconsistent PLOGI +- scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests +- scsi: qla2xxx: Fix hang due to session stuck +- scsi: qla2xxx: Fix incorrect reporting of task management failure +- scsi: qla2xxx: Fix disk failure to rediscover +- scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair() +- scsi: qla2xxx: Check for firmware dump already collected +- scsi: qla2xxx: Add devids and conditionals for 28xx +- scsi: qla2xxx: Fix device reconnect in loop topology +- scsi: qla2xxx: Fix warning for missing error code +- scsi: qla2xxx: Fix wrong FDMI data for 64G adapter +- scsi: qla2xxx: Fix scheduling while atomic +- scsi: qla2xxx: Fix stuck session in gpdb +- powerpc: Fix build errors with newer binutils +- powerpc/lib/sstep: Fix build errors with newer binutils +- powerpc/lib/sstep: Fix 'sthcx' instruction +- powerpc/kasan: Fix early region not updated correctly +- KVM: x86/mmu: Check for present SPTE when clearing dirty bit in TDP MMU +- ALSA: hda/realtek: Add alc256-samsung-headphone fixup +- media: atomisp: fix bad usage at error handling logic +- mmc: host: Return an error when ->enable_sdio_irq() ops is missing +- media: hdpvr: initialize dev->worker at hdpvr_register_videodev +- media: Revert "media: em28xx: add missing em28xx_close_extension" +- video: fbdev: sm712fb: Fix crash in smtcfb_write() +- ARM: mmp: Fix failure to remove sram device +- ARM: tegra: tamonten: Fix I2C3 pad setting +- lib/test_lockup: fix kernel pointer check for separate address spaces +- uaccess: fix type mismatch warnings from access_ok() +- media: cx88-mpeg: clear interrupt status register before streaming video +- ASoC: soc-core: skip zero num_dai component in searching dai name +- ARM: dts: bcm2711: Add the missing L1/L2 cache information +- video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit +- video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf() +- video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf() +- arm64: defconfig: build imx-sdma as a module +- ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk +- ARM: ftrace: avoid redundant loads or clobbering IP +- media: atomisp: fix dummy_ptr check to avoid duplicate active_bo +- media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator off on some boards +- ASoC: madera: Add dependencies on MFD +- ARM: dts: bcm2837: Add the missing L1/L2 cache information +- ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960 +- video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit +- video: fbdev: cirrusfb: check pixclock to avoid divide by zero +- video: fbdev: w100fb: Reset global state +- video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow +- media: ir_toy: free before error exiting +- media: staging: media: zoran: fix various V4L2 compliance errors +- media: staging: media: zoran: calculate the right buffer number for zoran_reap_stat_com +- media: staging: media: zoran: move videodev alloc +- ntfs: add sanity check on allocation size +- f2fs: compress: fix to print raw data size in error path of lz4 decompression +- NFSD: Fix nfsd_breaker_owns_lease() return values +- f2fs: fix to do sanity check on curseg->alloc_type +- ext4: don't BUG if someone dirty pages without asking ext4 first +- ext4: fix ext4_mb_mark_bb() with flex_bg with fast_commit +- ext4: correct cluster len and clusters changed accounting in ext4_mb_mark_bb +- locking/lockdep: Iterate lock_classes directly when reading lockdep files +- spi: tegra20: Use of_device_get_match_data() +- nvme-tcp: lockdep: annotate in-kernel sockets +- parisc: Fix handling off probe non-access faults +- PM: core: keep irq flags in device_pm_check_callbacks() +- ACPI/APEI: Limit printable size of BERT table data +- Revert "Revert "block, bfq: honor already-setup queue merges"" +- lib/raid6/test/Makefile: Use $(pound) instead of # for Make 4.3 +- ACPICA: Avoid walking the ACPI Namespace if it is not there +- fs/binfmt_elf: Fix AT_PHDR for unusual ELF files +- irqchip/nvic: Release nvic_base upon failure +- irqchip/qcom-pdc: Fix broken locking +- Fix incorrect type in assignment of ipv6 port for audit +- loop: use sysfs_emit() in the sysfs xxx show() +- selinux: allow FIOCLEX and FIONCLEX with policy capability +- selinux: use correct type for context length +- pinctrl: npcm: Fix broken references to chip->parent_device +- gcc-plugins/stackleak: Exactly match strings instead of prefixes +- regulator: rpi-panel: Handle I2C errors/timing to the Atmel +- LSM: general protection fault in legacy_parse_param +- fs: fix fd table size alignment properly +- lib/test: use after free in register_test_dev_kmod() +- fs: fd tables have to be multiples of BITS_PER_LONG +- net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator +- NFSv4/pNFS: Fix another issue with a list iterator pointing to the head +- qlcnic: dcb: default to returning -EOPNOTSUPP +- selftests: test_vxlan_under_vrf: Fix broken test case +- net: phy: broadcom: Fix brcm_fet_config_init() +- net: enetc: report software timestamping via SO_TIMESTAMPING +- xen: fix is_xen_pmu() +- clk: Initialize orphan req_rate +- clk: qcom: gcc-msm8994: Fix gpll4 width +- kdb: Fix the putarea helper function +- NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error +- netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options +- jfs: fix divide error in dbNextAG +- driver core: dd: fix return value of __setup handler +- firmware: google: Properly state IOMEM dependency +- kgdbts: fix return value of __setup handler +- serial: 8250: fix XOFF/XON sending when DMA is used +- kgdboc: fix return value of __setup handler +- tty: hvc: fix return value of __setup handler +- pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe +- pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe +- pinctrl: mediatek: paris: Skip custom extra pin config dump for virtual GPIOs +- pinctrl: mediatek: paris: Fix pingroup pin config state readback +- pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get() +- pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback +- pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init +- staging: mt7621-dts: fix GB-PC2 devicetree +- staging: mt7621-dts: fix pinctrl properties for ethernet +- staging: mt7621-dts: fix formatting +- staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree +- NFS: remove unneeded check in decode_devicenotify_args() +- clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver +- clk: clps711x: Terminate clk_div_table with sentinel element +- clk: loongson1: Terminate clk_div_table with sentinel element +- clk: actions: Terminate clk_div_table with sentinel element +- nvdimm/region: Fix default alignment for small regions +- remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region +- remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region +- remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region +- dmaengine: hisi_dma: fix MSI allocate fail when reload hisi_dma +- clk: qcom: clk-rcg2: Update the frac table for pixel clock +- clk: qcom: clk-rcg2: Update logic to calculate D value for RCG +- clk: at91: sama7g5: fix parents of PDMCs' GCLK +- clk: imx7d: Remove audio_mclk_root_clk +- dma-debug: fix return value of __setup handlers +- NFS: Return valid errors from nfs2/3_decode_dirent() +- habanalabs: Add check for pci_enable_device +- iio: adc: Add check for devm_request_threaded_irq +- serial: 8250: Fix race condition in RTS-after-send handling +- NFS: Use of mapping_set_error() results in spurious errors +- serial: 8250_lpss: Balance reference count for PCI DMA device +- serial: 8250_mid: Balance reference count for PCI DMA device +- phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure}) +- clk: qcom: ipq8074: Use floor ops for SDCC1 clock +- pinctrl: renesas: checker: Fix miscalculation of number of states +- pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel +- staging:iio:adc:ad7280a: Fix handing of device address bit reversing. +- iio: mma8452: Fix probe failing when an i2c_device_id is used +- clk: qcom: ipq8074: fix PCI-E clock oops +- soundwire: intel: fix wrong register name in intel_shim_wake +- cpufreq: qcom-cpufreq-nvmem: fix reading of PVS Valid fuse +- misc: alcor_pci: Fix an error handling path +- fsi: Aspeed: Fix a potential double free +- fsi: aspeed: convert to devm_platform_ioremap_resource +- pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add() +- mxser: fix xmit_buf leak in activate when LSR == 0xff +- mfd: asic3: Add missing iounmap() on error asic3_mfd_probe +- tipc: fix the timer expires after interval 100ms +- openvswitch: always update flow key after nat +- tcp: ensure PMTU updates are processed during fastopen +- net: bcmgenet: Use stronger register read/writes to assure ordering +- PCI: Avoid broken MSI on SB600 USB devices +- selftests/bpf/test_lirc_mode2.sh: Exit with proper code +- i2c: mux: demux-pinctrl: do not deactivate a master that is not active +- i2c: meson: Fix wrong speed use from probe +- af_netlink: Fix shift out of bounds in group mask calculation +- ipv4: Fix route lookups when handling ICMP redirects and PMTU updates +- Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt +- Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed +- selftests/bpf: Fix error reporting from sock_fields programs +- bareudp: use ipv6_mod_enabled to check if IPv6 enabled +- can: isotp: support MSG_TRUNC flag when reading from socket +- can: isotp: return -EADDRNOTAVAIL when reading from unbound socket +- USB: storage: ums-realtek: fix error code in rts51x_read_mem() +- samples/bpf, xdpsock: Fix race when running for fix duration of time +- RDMA/mlx5: Fix memory leak in error flow for subscribe event routine +- mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init +- MIPS: pgalloc: fix memory leak caused by pgd_free() +- MIPS: RB532: fix return value of __setup handler +- mips: cdmm: Fix refcount leak in mips_cdmm_phys_base +- ath10k: Fix error handling in ath10k_setup_msa_resources +- vxcan: enable local echo for sent CAN frames +- powerpc: 8xx: fix a return value error in mpc8xx_pic_init +- platform/x86: huawei-wmi: check the return value of device_create_file() +- selftests/bpf: Make test_lwt_ip_encap more stable and faster +- libbpf: Unmap rings when umem deleted +- mfd: mc13xxx: Add check for mc13xxx_irq_request +- powerpc/sysdev: fix incorrect use to determine if list is empty +- mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n +- net: axienet: fix RX ring refill allocation failure handling +- IB/hfi1: Allow larger MTU without AIP +- power: supply: wm8350-power: Add missing free in free_charger_irq +- power: supply: wm8350-power: Handle error for wm8350_register_irq +- i2c: xiic: Make bus names unique +- hv_balloon: rate-limit "Unhandled message" warning +- KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor() +- KVM: x86: Fix emulation in writing cr8 +- powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit +- powerpc/mm/numa: skip NUMA_NO_NODE onlining in parse_numa_properties() +- libbpf: Skip forward declaration when counting duplicated type names +- gpu: host1x: Fix a memory leak in 'host1x_remove()' +- bpf, arm64: Feed byte-offset into bpf line info +- bpf, arm64: Call build_prologue() first in first JIT pass +- drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt +- scsi: hisi_sas: Change permission of parameter prot_mask +- power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return +- drm/tegra: Fix reference leak in tegra_dsi_ganged_probe +- ext2: correct max file size computing +- TOMOYO: fix __setup handlers return values +- drm/amd/display: Remove vupdate_int_entry definition +- RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR +- scsi: pm8001: Fix abort all task initialization +- scsi: pm8001: Fix NCQ NON DATA command completion handling +- scsi: pm8001: Fix NCQ NON DATA command task initialization +- scsi: pm8001: Fix le32 values handling in pm80xx_chip_sata_req() +- scsi: pm8001: Fix le32 values handling in pm80xx_chip_ssp_io_req() +- scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update() +- scsi: pm8001: Fix le32 values handling in pm80xx_set_sas_protocol_timer_config() +- scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config() +- scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req() +- scsi: pm8001: Fix command initialization in pm80XX_send_read_log() +- dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS +- drm/msm/dpu: fix dp audio condition +- drm/msm/dpu: add DSPP blocks teardown +- drm/msm/dp: populate connector of struct dp_panel +- iwlwifi: mvm: Fix an error code in iwl_mvm_up() +- iwlwifi: Fix -EIO error code that is never returned +- dax: make sure inodes are flushed before destroy cache +- IB/cma: Allow XRC INI QPs to set their local ACK timeout +- drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug +- drm/amd/pm: enable pm sysfs write for one VF mode +- iommu/ipmmu-vmsa: Check for error num after setting mask +- HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports +- power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init +- drm/bridge: dw-hdmi: use safe format when first in bridge chain +- PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge +- scripts/dtc: Call pkg-config POSIXly correct +- net: dsa: mv88e6xxx: Enable port policy support on 6097 +- mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update +- mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update +- mt76: mt7915: use proper aid value in mt7915_mcu_sta_basic_tlv +- mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta mode +- powerpc/perf: Don't use perf_hw_context for trace IMC PMU +- KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init +- powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switch +- ray_cs: Check ioremap return value +- power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe +- i40e: respect metadata on XSK Rx to skb +- i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb +- KVM: PPC: Fix vmx/vsx mixup in mmio emulation +- RDMA/core: Set MR type in ib_reg_user_mr +- ath9k_htc: fix uninit value bugs +- drm/amd/pm: return -ENOTSUPP if there is no get_dpm_ultimate_freq function +- drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes() +- drm/nouveau/acr: Fix undefined behavior in nvkm_acr_hsfw_load_bl() +- ionic: fix type complaint in ionic_dev_cmd_clean() +- drm/edid: Don't clear formats if using deep color +- mtd: rawnand: gpmi: fix controller timings setting +- mtd: onenand: Check for error irq +- Bluetooth: hci_serdev: call init_rwsem() before p->open() +- udmabuf: validate ubuf->pagecount +- libbpf: Fix possible NULL pointer dereference when destroying skeleton +- drm/panfrost: Check for error num after setting mask +- ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern +- drm: bridge: adv7511: Fix ADV7535 HPD enablement +- drm/bridge: nwl-dsi: Fix PM disable depth imbalance in nwl_dsi_probe +- drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe +- drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev +- drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops +- ARM: configs: multi_v5_defconfig: re-enable CONFIG_V4L_PLATFORM_DRIVERS +- ASoC: codecs: wcd934x: Add missing of_node_put() in wcd934x_codec_parse_data +- ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe +- ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe +- ASoC: atmel: sam9x5_wm8731: use devm_snd_soc_register_card() +- mmc: davinci_mmc: Handle error for clk_enable +- ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe +- ASoC: imx-es8328: Fix error return code in imx_es8328_probe() +- ASoC: fsl_spdif: Disable TX clock when stop +- ASoC: mxs: Fix error handling in mxs_sgtl5000_probe +- ASoC: dmaengine: do not use a NULL prepare_slave_config() callback +- ASoC: SOF: Add missing of_node_put() in imx8m_probe +- ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in rockchip_i2s_probe +- ASoC: rockchip: i2s: Use devm_platform_get_and_ioremap_resource() +- ivtv: fix incorrect device_caps for ivtvfb +- media: saa7134: fix incorrect use to determine if list is empty +- media: saa7134: convert list_for_each to entry variant +- video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of +- ASoC: fsi: Add check for clk_enable +- ASoC: wm8350: Handle error for wm8350_register_irq +- ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe +- media: vidtv: Check for null return of vzalloc +- media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED +- m68k: coldfire/device.c: only build for MCF_EDMA when h/w macros are defined +- arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly +- ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction +- memory: emif: check the pointer temp in get_device_details() +- memory: emif: Add check for setup_interrupts +- ASoC: soc-compress: prevent the potentially use of null pointer +- ASoC: dwc-i2s: Handle errors for clk_enable +- ASoC: atmel_ssc_dai: Handle errors for clk_enable +- ASoC: mxs-saif: Handle errors for clk_enable +- printk: fix return value of printk.devkmsg __setup handler +- arm64: dts: broadcom: Fix sata nodename +- arm64: dts: ns2: Fix spi-cpol and spi-cpha property +- ALSA: spi: Add check for clk_enable() +- ASoC: ti: davinci-i2s: Add check for clk_enable() +- ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp() +- uaccess: fix nios2 and microblaze get_user_8() +- ASoC: codecs: wcd934x: fix return value of wcd934x_rx_hph_mode_put +- media: cedrus: h264: Fix neighbour info buffer size +- media: cedrus: H265: Fix neighbour info buffer size +- media: usb: go7007: s2250-board: fix leak in probe() +- media: em28xx: initialize refcount before kref_get +- media: video/hdmi: handle short reads of hdmi info frame. +- ARM: dts: imx: Add missing LVDS decoder on M53Menlo +- ARM: dts: sun8i: v3s: Move the csi1 block to follow address order +- soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe +- firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL is not defined +- arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc +- arm64: dts: qcom: sdm845: fix microphone bias properties and values +- soc: qcom: aoss: remove spurious IRQF_ONESHOT flags +- soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmem +- soc: qcom: rpmpd: Check for null return of devm_kcalloc +- ARM: dts: qcom: ipq4019: fix sleep clock +- firmware: qcom: scm: Remove reassignment to desc following initializer +- video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name() +- video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe() +- video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe() +- video: fbdev: controlfb: Fix COMPILE_TEST build +- video: fbdev: controlfb: Fix set but not used warnings +- video: fbdev: matroxfb: set maxvram of vbG200eW to the same as vbG200 to avoid black screen +- media: aspeed: Correct value for h-total-pixels +- media: hantro: Fix overfill bottom register field name +- media: meson: vdec: potential dereference of null pointer +- media: coda: Fix missing put_device() call in coda_get_vdoa_data +- ASoC: generic: simple-card-utils: remove useless assignment +- ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting +- media: bttv: fix WARNING regression on tunerless devices +- media: mtk-vcodec: potential dereference of null pointer +- media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls +- media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_size +- kunit: make kunit_test_timeout compatible with comment +- selftests, x86: fix how check_cc.sh is being invoked +- f2fs: fix compressed file start atomic write may cause data corruption +- f2fs: compress: remove unneeded read when rewrite whole cluster +- btrfs: fix unexpected error path when reflinking an inline extent +- f2fs: fix to avoid potential deadlock +- nfsd: more robust allocation failure handling in nfsd_file_cache_init +- f2fs: fix missing free nid in f2fs_handle_failed_inode +- perf/x86/intel/pt: Fix address filter config for 32-bit kernel +- perf/core: Fix address filter parser for multiple filters +- rseq: Optimise rseq_get_rseq_cs() and clear_rseq_cs() +- sched/core: Export pelt_thermal_tp +- sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa +- f2fs: fix to enable ATGC correctly via gc_idle sysfs interface +- watch_queue: Actually free the watch +- watch_queue: Fix NULL dereference in error cleanup +- io_uring: terminate manual loop iterator loop correctly for non-vecs +- clocksource: acpi_pm: fix return value of __setup handler +- hwmon: (pmbus) Add Vin unit off handling +- hwrng: nomadik - Change clk_disable to clk_disable_unprepare +- amba: Make the remove callback return void +- vfio: platform: simplify device removal +- crypto: ccree - Fix use after free in cc_cipher_exit() +- crypto: ccp - ccp_dmaengine_unregister release dma channels +- ACPI: APEI: fix return value of __setup handlers +- clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init() +- clocksource/drivers/timer-microchip-pit64b: Use notrace +- clocksource/drivers/exynos_mct: Handle DTS with higher number of interrupts +- clocksource/drivers/exynos_mct: Refactor resources allocation +- clocksource/drivers/timer-ti-dm: Fix regression from errata i940 fix +- crypto: vmx - add missing dependencies +- crypto: amlogic - call finalize with bh disabled +- crypto: sun8i-ce - call finalize with bh disabled +- crypto: sun8i-ss - call finalize with bh disabled +- hwrng: atmel - disable trng on failure path +- spi: spi-zynqmp-gqspi: Handle error for dma_set_mask +- PM: suspend: fix return value of __setup handler +- PM: hibernate: fix __setup handler error handling +- block: don't delete queue kobject before its children +- nvme: cleanup __nvme_check_ids +- hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING +- hwmon: (pmbus) Add mutex to regulator ops +- spi: pxa2xx-pci: Balance reference count for PCI DMA device +- crypto: ccree - don't attempt 0 len DMA mappings +- EVM: fix the evm= __setup handler return value +- audit: log AUDIT_TIME_* records only from rules +- crypto: rockchip - ECB does not need IV +- selftests/x86: Add validity check and allow field splitting +- arm64/mm: avoid fixmap race condition when create pud mapping +- spi: tegra114: Add missing IRQ check in tegra_spi_probe +- thermal: int340x: Check for NULL after calling kmemdup() +- crypto: mxs-dcp - Fix scatterlist processing +- crypto: authenc - Fix sleep in atomic context in decrypt_tail +- crypto: sun8i-ss - really disable hash on A80 +- hwrng: cavium - HW_RANDOM_CAVIUM should depend on ARCH_THUNDER +- hwrng: cavium - Check health status while reading random data +- selinux: check return value of sel_make_avc_files +- regulator: qcom_smd: fix for_each_child.cocci warnings +- PCI: xgene: Revert "PCI: xgene: Fix IB window setup" +- PCI: pciehp: Clear cmd_busy bit in polling mode +- drm/i915/gem: add missing boundary check in vm_access +- brcmfmac: pcie: Fix crashes due to early IRQs +- brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio +- brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path +- brcmfmac: firmware: Allocate space for default boardrev in nvram +- xtensa: fix xtensa_wsr always writing 0 +- xtensa: fix stop_machine_cpuslocked call in patch_text +- media: davinci: vpif: fix unbalanced runtime PM enable +- media: davinci: vpif: fix unbalanced runtime PM get +- media: gpio-ir-tx: fix transmit with long spaces on Orange Pi PC +- DEC: Limit PMAX memory probing to R3k systems +- crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete() +- crypto: rsa-pkcs1pad - restore signature length check +- crypto: rsa-pkcs1pad - correctly get hash from source scatterlist +- crypto: rsa-pkcs1pad - only allow with rsa +- exec: Force single empty string when argv is empty +- lib/raid6/test: fix multiple definition linking error +- thermal: int340x: Increase bitmap size +- pstore: Don't use semaphores in always-atomic-context code +- carl9170: fix missing bit-wise or operator for tx_params +- mgag200 fix memmapsl configuration in GCTL6 register +- ARM: dts: exynos: add missing HDMI supplies on SMDK5420 +- ARM: dts: exynos: add missing HDMI supplies on SMDK5250 +- ARM: dts: exynos: fix UART3 pins configuration in Exynos5250 +- ARM: dts: at91: sama5d2: Fix PMERRLOC resource size +- video: fbdev: atari: Atari 2 bpp (STe) palette bugfix +- video: fbdev: sm712fb: Fix crash in smtcfb_read() +- drm/edid: check basic audio support on CEA extension block +- block: limit request dispatch loop duration +- mailbox: tegra-hsp: Flush whole channel +- ext4: fix fs corruption when tring to remove a non-empty directory with IO error +- ext4: fix ext4_fc_stats trace point +- coredump: Also dump first pages of non-executable ELF libraries +- ACPI: properties: Consistently return -ENOENT if there are no more references +- arm64: dts: ti: k3-j7200: Fix gic-v3 compatible regs +- arm64: dts: ti: k3-j721e: Fix gic-v3 compatible regs +- arm64: dts: ti: k3-am65: Fix gic-v3 compatible regs +- arm64: signal: nofpsimd: Do not allocate fp/simd context when not available +- udp: call udp_encap_enable for v6 sockets when enabling encap +- powerpc/kvm: Fix kvm_use_magic_page +- can: isotp: sanitize CAN ID checks in isotp_bind() +- drbd: fix potential silent data corruption +- dm integrity: set journal entry unused when shrinking device +- mm/kmemleak: reset tag when compare object pointer +- mm,hwpoison: unmap poisoned page before invalidation +- Revert "mm: madvise: skip unmapped vma holes passed to process_madvise" +- mm: madvise: return correct bytes advised with process_madvise +- mm: madvise: skip unmapped vma holes passed to process_madvise +- ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020 +- ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock +- ALSA: hda: Avoid unsol event during RPM suspending +- ALSA: cs4236: fix an incorrect NULL check on list iterator +- cifs: fix NULL ptr dereference in smb2_ioctl_query_info() +- cifs: prevent bad output lengths in smb2_ioctl_query_info() +- Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" +- riscv: Increase stack size under KASAN +- riscv: Fix fill_callchain return value +- qed: display VF trust config +- scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands +- mempolicy: mbind_range() set_policy() after vma_merge() +- mm: invalidate hwpoison page cache page in fault path +- mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node +- mtd: rawnand: protect access to rawnand devices while in suspend +- spi: mxic: Fix the transmit path +- pinctrl: samsung: drop pin banks references on error paths +- remoteproc: Fix count check in rproc_coredump_write() +- f2fs: fix to do sanity check on .cp_pack_total_block_count +- f2fs: quota: fix loop condition at f2fs_quota_sync() +- f2fs: fix to unlock page correctly in error path of is_alive() +- NFSD: prevent integer overflow on 32 bit systems +- NFSD: prevent underflow in nfssvc_decode_writeargs() +- SUNRPC: avoid race between mod_timer() and del_timer_sync() +- HID: intel-ish-hid: Use dma_alloc_coherent for firmware update +- firmware: stratix10-svc: add missing callback parameter on RSU +- Documentation: update stable tree link +- Documentation: add link to stable release candidate tree +- KEYS: fix length validation in keyctl_pkey_params_get_2() +- clk: uniphier: Fix fixed-rate initialization +- greybus: svc: fix an error handling bug in gb_svc_hello() +- iio: inkern: make a best effort on offset calculation +- iio: inkern: apply consumer scale when no channel scale is available +- iio: inkern: apply consumer scale on IIO_VAL_INT cases +- iio: afe: rescale: use s64 for temporary scale calculations +- coresight: Fix TRCCONFIGR.QE sysfs interface +- mei: avoid iterator usage outside of list_for_each_entry +- mei: me: add Alder Lake N device id. +- xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx() +- xhci: make xhci_handshake timeout for xhci_reset() adjustable +- xhci: fix runtime PM imbalance in USB2 resume +- xhci: fix garbage USBSTS being logged in some cases +- USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c +- virtio-blk: Use blk_validate_block_size() to validate block size +- tpm: fix reference counting for struct tpm_chip +- iommu/iova: Improve 32-bit free space estimate +- locking/lockdep: Avoid potential access of invalid memory in lock_class +- net: dsa: microchip: add spi_device_id tables +- Input: zinitix - do not report shadow fingers +- spi: Fix erroneous sgs value with min_t() +- Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)" +- net:mcf8390: Use platform_get_irq() to get the interrupt +- spi: Fix invalid sgs value +- gpio: Revert regression in sysfs-gpio (gpiolib.c) +- ethernet: sun: Free the coherent when failing in probing +- tools/virtio: fix virtio_test execution +- vdpa/mlx5: should verify CTRL_VQ feature exists for MQ +- virtio_console: break out of buf poll on remove +- ARM: mstar: Select HAVE_ARM_ARCH_TIMER +- xfrm: fix tunnel model fragmentation behavior +- HID: logitech-dj: add new lightspeed receiver id +- hv: utils: add PTP_1588_CLOCK to Kconfig to fix build +- USB: serial: simple: add Nokia phone driver +- USB: serial: pl2303: add IBM device IDs +- NFC: netlink: fix sleep in atomic bug when firmware download timeout +- KVM: x86: avoid calling x86 emulator without a decoded instruction +- net: hns3: fix tm port shapping of fibre port is incorrect after driver initialization +- net: hns3: fix PF rss size initialization bug +- net: hns3: restore tm priority/qset to default settings when tc disabled +- net: hns3: modify the ring param print info +- net: hns3: don't push link state to VF if unalive +- net: hns3: set port base vlan tbl_sta to false before removing old vlan + +* Tue Jun 28 2022 Zheng Zengkai - 5.10.0-100.0.0.52 +- KVM: x86/mmu: do compare-and-exchange of gPTE via the user address +- bpf: Fix KASAN use-after-free Read in compute_effective_progs +- fs, mm: fix race in unlinking swapfile +- ext4: recover csum seed of tmp_inode after migrating to extents +- lockdown: also lock down previous kgdb use +- nds32: fix access_ok() checks in get/put_user +- wcn36xx: Differentiate wcn3660 from wcn3620 +- tpm: use try_get_ops() in tpm-space.c +- mac80211: fix potential double free on mesh join +- rcu: Don't deboost before reporting expedited quiescent state +- Revert "ath: add support for special 0x0 regulatory domain" +- crypto: qat - disable registration of algorithms +- ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU +- ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3 +- ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board +- drivers: net: xgene: Fix regression in CRC stripping +- ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec +- ALSA: cmipci: Restore aux vol on suspend/resume +- ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB +- ALSA: pcm: Add stream lock during PCM reset ioctl operations +- ALSA: pcm: Fix races among concurrent prealloc proc writes +- ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls +- ALSA: pcm: Fix races among concurrent read/write and buffer changes +- ALSA: pcm: Fix races among concurrent hw_params and hw_free calls +- ALSA: hda/realtek: Add quirk for ASUS GA402 +- ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671 +- ALSA: hda/realtek: Add quirk for Clevo NP50PNJ +- ALSA: hda/realtek: Add quirk for Clevo NP70PNJ +- ALSA: usb-audio: add mapping for new Corsair Virtuoso SE +- ALSA: oss: Fix PCM OSS buffer allocation overflow +- ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call +- staging: fbtft: fb_st7789v: reset display before initialization +- tpm: Fix error handling in async work +- cgroup-v1: Correct privileges check in release_agent writes +- exfat: avoid incorrectly releasing for root inode +- net: ipv6: fix skb_over_panic in __ip6_append_data + +* Wed Jun 22 2022 Zheng Zengkai - 5.10.0-99.0.0.51 +- sched/fair: Add document for burstable CFS bandwidth +- sched/fair: Add cfs bandwidth burst statistics +- sched/fair: Introduce the burstable CFS controller +- mm: memcontrol: add the flag_stat file +- eulerfs: fix potential sbi->persisters free error +- fs/ntfs3: Fix invalid free in log_replay +- Revert "nfs: nfs_file_write() should check for writeback errors" +- xfs: Skip repetitive warnings about mount options +- xfs: rename variable mp to parsing_mp +- ext4: convert from atomic_t to refcount_t on ext4_io_end->count +- powerpc/32: Fix overread/overwrite of thread_struct via ptrace +- RDMA/hns: Refactor the alloc_cqc() +- RDMA/hns: Refactor the alloc_srqc() +- RDMA/hns: Clean up the return value check of hns_roce_alloc_cmd_mailbox() +- RDMA/hns: Remove similar code that configures the hardware contexts +- RDMA/hns: Refactor mailbox functions +- RDMA/hns: Fix the wrong type of parameter "op" of the mailbox +- RDMA/hns: Remove redundant parameter "mailbox" in the mailbox +- RDMA/hns: Remove fixed parameter "timeout" in the mailbox +- RDMA/hns: Remove the unused parameter "op_modifier" in mailbox +- tcp: increase source port perturb table to 2^16 +- tcp: change source port randomizarion at connect() time +- ext4: correct the judgment of BUG in ext4_mb_normalize_request +- ext4: fix bug_on ext4_mb_use_inode_pa +- net/ns: put workqueue of cleanup_net sleep for a while when notify. +- bcache: avoid unnecessary soft lockup in kworker update_writeback_rate() +- md: bcache: check the return value of kzalloc() in detached_dev_do_request() +- bcache: memset on stack variables in bch_btree_check() and bch_sectors_dirty_init() +- bcache: avoid journal no-space deadlock by reserving 1 journal bucket +- bcache: remove incremental dirty sector counting for bch_sectors_dirty_init() +- bcache: improve multithreaded bch_sectors_dirty_init() +- bcache: improve multithreaded bch_btree_check() +- bcache: fixup multiple threads crash +- bcache: fixup bcache_dev_sectors_dirty_add() multithreaded CPU false sharing +- bcache: use default_groups in kobj_type +- bcache: fix NULL pointer reference in cached_dev_detach_finish +- bcache: replace snprintf in show functions with sysfs_emit +- bcache: move uapi header bcache.h to bcache code directory +- bcache: move calc_cached_dev_sectors to proper place on backing device detach +- bcache: fix error info in register_bcache() +- md: bcache: Fix spelling of 'acquire' +- bcache: avoid oversized read request in cache missing code path +- bcache: remove bcache device self-defined readahead +- lib: crc64: fix kernel-doc warning +- bcache: fix a regression of code compiling failure in debug.c +- bcache: Use 64-bit arithmetic instead of 32-bit +- md: bcache: Trivial typo fixes in the file journal.c +- md: bcache: avoid -Wempty-body warnings +- bcache: use NULL instead of using plain integer as pointer +- bcache: remove PTR_CACHE +- bcache: reduce redundant code in bch_cached_dev_run() +- bcache: Avoid comma separated statements +- bcache: Fix register_device_aync typo +- bcache: consider the fragmentation when update the writeback rate +- bcache: don't pass BIOSET_NEED_BVECS for the 'bio_set' embedded in 'cache_set' +- bcache: set pdev_set_uuid before scond loop iteration +- md/bcache: convert comma to semicolon +- bcache:remove a superfluous check in register_bcache +- bcache: fix race between setting bdev state to none and new write request direct to backing +- Revert "selftests/bpf: Add test for bpf_timer overwriting crash" +- smsc95xx: Ignore -ENODEV errors when device is unplugged +- net: usb: Correct reset handling of smsc95xx +- net: usb: Correct PHY handling of smsc95xx +- perf symbols: Fix symbol size calculation condition +- Input: aiptek - properly check endpoint type +- scsi: mpt3sas: Page fault in reply q processing +- usb: usbtmc: Fix bug in pipe direction for control transfers +- usb: gadget: Fix use-after-free bug by not setting udc->dev.driver +- usb: gadget: rndis: prevent integer overflow in rndis_set_response() +- net: mscc: ocelot: fix backwards compatibility with single-chain tc-flower offload +- net: bcmgenet: skip invalid partial checksums +- bnx2x: fix built-in kernel driver load failure +- net: phy: mscc: Add MODULE_FIRMWARE macros +- net: dsa: Add missing of_node_put() in dsa_port_parse_of +- net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit() +- drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings +- drm/imx: parallel-display: Remove bus flags check in imx_pd_bridge_atomic_check() +- hv_netvsc: Add check for kvmalloc_array +- atm: eni: Add check for dma_map_single +- net/packet: fix slab-out-of-bounds access in packet_recvmsg() +- net: phy: marvell: Fix invalid comparison in the resume and suspend functions +- esp6: fix check on ipv6_skip_exthdr's return value +- vsock: each transport cycles only on its own sockets +- efi: fix return value of __setup handlers +- mm: swap: get rid of livelock in swapin readahead +- ocfs2: fix crash when initialize filecheck kobj fails +- crypto: qcom-rng - ensure buffer for generate is completely filled + +* Tue Jun 14 2022 Zheng Zengkai - 5.10.0-98.0.0.50 +- jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction() +- NFSv4: fix open failure with O_ACCMODE flag +- Revert "NFSv4: Handle the special Linux file open access mode" +- jbd2: fix a potential race while discarding reserved buffers after an abort +- ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed +- x86: Pin task-stack in __get_wchan() +- x86: Fix __get_wchan() for !STACKTRACE +- x86: Fix get_wchan() to support the ORC unwinder +- netfilter: nf_tables: disallow non-stateful expression in sets earlier +- io_uring: fix using under-expanded iters +- io_uring: don't re-import iovecs from callbacks +- nfc: replace improper check device_is_registered() in netlink related functions +- block: fix NULL pointer dereference in disk_release() +- block, bfq: make bfq_has_work() more accurate +- blk-mq: fix panic during blk_mq_run_work_fn() +- blk-mq: cancel blk-mq dispatch work in both blk_cleanup_queue and disk_release() +- net: hns3: fix incorrect type of argument in declaration of function hclge_comm_get_rss_indir_tbl +- net: hns3: add query vf ring and vector map relation +- net: hns3: add byte order conversion for VF to PF mailbox message +- net: hns3: add byte order conversion for PF to VF mailbox message +- net: hns3: remove the affinity settings of vector0 +- net: hns3: fix access null pointer issue when set tx-buf-size as 0 +- net: hns3: add return value for mailbox handling in PF +- net: hns3: add validity check for message data length +- net: hns3: modify the return code of hclge_get_ring_chain_from_mbx +- net: hns3: fix error log of tx/rx tqps stats +- net: hns3: align the debugfs output to the left +- net: hns3: clear inited state and stop client after failed to register netdev +- net: hns3: Fix spelling mistake "actvie" -> "active" +- net: hns3: remove unnecessary line wrap for hns3_set_tunable +- net: hns3: replace magic value by HCLGE_RING_REG_OFFSET +- net: hns3: fix the wrong words in comments +- net: hns3: update the comment of function hclgevf_get_mbx_resp +- net: hns3: add log for setting tx spare buf size +- net: hns3: add failure logs in hclge_set_vport_mtu +- net: hns3: refine the definition for struct hclge_pf_to_vf_msg +- net: hns3: refactor hns3_set_ringparam() +- net: hns3: add ethtool parameter check for CQE/EQE mode +- net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware +- net: hns3: fix the concurrency between functions reading debugfs +- skbuff: fix coalescing for page_pool fragment recycling +- netfilter: nf_tables: sanitize nft_set_desc_concat_parse() +- crypto: arm64/sm4 - Fix wrong dependency of NEON/CE implementation +- crypto: arm64/sm4 - add ARMv8 Crypto Extensions implementation +- crypto: arm64/sm4 - add ARMv8 NEON implementation +- crypto: arm64/sm4-ce - rename to sm4-ce-cipher +- crypto: sm4 - export sm4 constant arrays +- crypto: sm3,sm4 - move into crypto directory +- io_uring: always use original task when preparing req identity +- kselftest/vm: fix tests build with old libc +- sfc: extend the locking on mcdi->seqno +- tcp: make tcp_read_sock() more robust +- nl80211: Update bss channel on channel switch for P2P_CLIENT +- drm/vrr: Set VRR capable prop only if it is attached to connector +- iwlwifi: don't advertise TWT support +- atm: firestream: check the return value of ioremap() in fs_init() +- can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully ready +- ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE +- MIPS: smp: fill in sibling and core maps earlier +- mac80211: refuse aggregations sessions before authorized +- ARM: dts: rockchip: fix a typo on rk3288 crypto-controller +- ARM: dts: rockchip: reorder rk322x hmdi clocks +- arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg" +- arm64: dts: rockchip: reorder rk3399 hdmi clocks +- arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrity +- xfrm: Fix xfrm migrate issues when address family changes +- xfrm: Check if_id in xfrm_migrate +- Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0" + +* Tue Jun 07 2022 Zheng Zengkai - 5.10.0-97.0.0.49 +- ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE +- proc: Fix a dentry lock race between release_task and lookup +- x86/sgx: Fix race between reclaimer and page fault handler +- x86/sgx: Mark PCMD page as dirty when modifying contents +- x86/sgx: Free backing memory after faulting the enclave page +- memcg: introduce per-memcg reclaim interface for cgroup v1 +- selftests: cgroup: add a selftest for memory.reclaim +- selftests: cgroup: fix alloc_anon_noexit() instantly freeing memory +- selftests: cgroup: return -errno from cg_read()/cg_write() on failure +- memcg: introduce per-memcg reclaim interface +- KVM: SEV: add cache flush to solve SEV cache incoherency issues +- mm/sharepool: Fix sharepool node id invalid when using sp_alloc +- share_pool: Fix ABBA deadlock +- sharepool: fix hisi oom deadlock +- floppy: disable FDRAWCMD by default +- xhci: Fix a logic issue when display Zhaoxin XHCI root hub speed +- sw64: optimize simd version of memcpy and memset +- sw64: fix sendfile system call +- sw64: fix the number of aux entries in ARCH_DLINFO +- sw64: pcie: enable PME and AER support +- sw64: unify 32-bit MEMIO address of host and guest +- hwmon: add support for sw64 temperature sensor +- sw64: pci: align the address of mmio resource to PAGE_SIZE +- sw64: signal: save/restore fpregs with copy user +- sw64: push and pop kernel stack with ldi instruction +- ipmi: add ipmi driver support +- sw64: add pvt device to chip3.dts +- hwmon: add voltage sensor support for sw64 +- sw64: remap PA with |= in early_ioremap +- sw64: vdso: fix CFI directives for fpregs in vrt_sigreturn +- sw64: vdso: fix backtrace of vrt_sigreturn +- sw64: kvm: simplify the code +- sw64: force signal and fault for traps and debugging +- sw64: fix compile error for DISCONTIGMEM=y +- sw64: add old sigprocmask back for compatibility +- sw64: add dynamic turning on/off cores support +- sw64: add dynamic frequency scaling support +- sw64: fix ip checksum calculation +- sw64: remove unnecessary parameter in REG_OFFSET_NAME +- sw64: kvm: fix bad page state setting outside of kvm memory pool +- sw64: fix setup_rt_frame for non SA_SIGINFO +- sw64: do some cleanups for rt_sigframe +- sw64: kvm: handle ldl_u and stl_u when exit mmio +- sw64: fix some compile errors +- sw64: add missing global __constant_c_memset +- sw64: remove unnecessary include headers +- sw64: increase position index in c_next for cpuinfo +- sw64: Kconfig: remove dependence on ARCH_SUPPORTS_ACPI +- sw64: Kconfig: remove dependence on !PREEMPT +- sw64: clean up out-of-date selected options +- sw64: add kbuild defconfig rule +- sw64: ptrace: clean up debug codes +- sw64: add ARCH_HAS_PTE_SPECIAL support +- sw64: kvm: remap pages of guest by vm_insert_page() +- sw64: clean up a.out and ECOFF binary related headers +- sw64: switch to old-style semctl/shmctl syscalls +- sw64: define NR_SYSCALLS as generated __NR_syscalls +- sw64: add SO_RCVTIMEO/ SO_SNDTIMEO socket options +- sw64: dts: rename spi flash partition to fix warning +- sw64: fix ex_table entries from misalignment handlers +- sw64: radeon: add a force flush to delay work when radeon uvd suspend +- sw64: add set time support for hypervisor based rtc +- sw64: add regs and stack access APIs to support kprobe events +- sw64: unify access to LONGTIME for guest and emulator +- sw64: enable more than 32 CPUs for guest +- sw64: fix SPDX license identifier in uapi headers +- sw64: add required include headers to ptrace.h +- sw64: fix the VDSO symbol generation for nm +- sw64: add clone3 syscall support +- sw64: add missing pkey syscall numbers +- sw64: reformat syscall.tbl +- sw64: fix printk method for guest os +- sw64: remove unused a.out.h +- sw64: switch GUP to the generic get_user_pages_fast() implementation +- sw64: kvm: fix bug when open file with the O_DIRECT flag +- sw64: fix compile error for CONFIG_PCI=n +- sw64: rename kvm_mem variables +- sw64: fix coding style problems +- sw64: kvm: remove MAX_VPN +- sw64: clean up useless #if 0 and #if 1 +- sw64: fix coding style problems +- sw64: remove MAX_ASN +- sw64: add support for emulator running mode +- sw64: optimize ip checksum calculation +- sw64: use jump label for running modes +- sw64: mm: mark pci and memmap region as nomap +- sw64: fix the value of QEMU_PRINTF_BUFF_BASE +- sw64: clean up some useless codes +- sw64: numa: switch to arch node_distance +- sw64: fix all compile warnings +- sw64: remove CONFIG_USE_PERCPU_NUMA_NODE_ID=n code +- sw64: simplify cpumask_of_node +- sw64: modify tc_sched_clock debugfs file +- sw64: remove redundant Kconfig source +- sw64: switch to generic pcibios_set_master and pci_common_swizzle +- sw64: print correct initrd address +- sw64: mm: use memblock to find the end of memory +- sw64: mm: warn overlapped memmap and DMA region +- sw64: pci: remove some useless code +- sw64: mm: reorder memblock_init process +- sw64: vdso: fix time calculation +- sw64: vdso: change vdso version +- sw64: vdso: add automatic syscall fallback +- sw64: iommu: fix 32-bit devices dma ops +- sw64: re-implement sw64_dma_direct_ops according upstream +- config: add initial openeuler_defconfig for sw64 +- watch_queue: Fix filter limit check +- ext4: add check to prevent attempting to resize an fs with sparse_super2 +- x86/traps: Mark do_int3() NOKPROBE_SYMBOL +- x86/boot: Add setup_indirect support in early_memremap_is_setup_data() +- x86/boot: Fix memremap of setup_indirect structures +- watch_queue: Make comment about setting ->defunct more accurate +- watch_queue: Fix lack of barrier/sync/lock between post and read +- watch_queue: Free the alloc bitmap when the watch_queue is torn down +- watch_queue: Fix the alloc bitmap size to reflect notes allocated +- watch_queue: Fix to always request a pow-of-2 pipe ring size +- watch_queue: Fix to release page in ->release() +- watch_queue, pipe: Free watchqueue state after clearing pipe ring +- virtio: acknowledge all features before access +- virtio: unexport virtio_finalize_features +- arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0 +- riscv: Fix auipc+jalr relocation range checks +- mmc: meson: Fix usage of meson_mmc_post_req() +- net: macb: Fix lost RX packet wakeup race in NAPI receive +- staging: gdm724x: fix use after free in gdm_lte_rx() +- staging: rtl8723bs: Fix access-point mode deadlock +- selftests/memfd: clean up mapping in mfd_fail_write +- selftest/vm: fix map_fixed_noreplace test failure +- tracing: Ensure trace buffer is at least 4096 bytes large +- ipv6: prevent a possible race condition with lifetimes +- Revert "xen-netback: Check for hotplug-status existence before watching" +- Revert "xen-netback: remove 'hotplug-status' once it has served its purpose" +- gpio: Return EPROBE_DEFER if gc->to_irq is NULL +- hwmon: (pmbus) Clear pmbus fault/warning bits after read +- net-sysfs: add check for netdevice being present to speed_show +- spi: rockchip: terminate dma transmission when slave abort +- spi: rockchip: Fix error in getting num-cs property +- selftests/bpf: Add test for bpf_timer overwriting crash +- net: bcmgenet: Don't claim WOL when its not available +- sctp: fix kernel-infoleak for SCTP sockets +- net: phy: DP83822: clear MISR2 register to disable interrupts +- gianfar: ethtool: Fix refcount leak in gfar_get_ts_info +- gpio: ts4900: Do not set DAT and OE together +- selftests: pmtu.sh: Kill tcpdump processes launched by subshell. +- NFC: port100: fix use-after-free in port100_send_complete +- net/mlx5e: Lag, Only handle events from highest priority multipath entry +- net/mlx5: Fix a race on command flush flow +- net/mlx5: Fix size field in bufferx_reg struct +- net: ethernet: lpc_eth: Handle error for clk_enable +- net: ethernet: ti: cpts: Handle error for clk_enable +- tipc: fix incorrect order of state message data sanity check +- ethernet: Fix error handling in xemaclite_of_probe +- ice: Fix curr_link_speed advertised speed +- ice: Rename a couple of variables +- ice: Remove unnecessary checker loop +- ice: Align macro names to the specification +- ice: stop disabling VFs due to PF error responses +- i40e: stop disabling VFs due to PF error responses +- ARM: dts: aspeed: Fix AST2600 quad spi group +- net: dsa: mt7530: fix incorrect test in mt753x_phylink_validate() +- drm/sun4i: mixer: Fix P010 and P210 format numbers +- qed: return status of qed_iov_get_link +- esp: Fix BEET mode inter address family tunneling on GSO +- net: qlogic: check the return value of dma_alloc_coherent() in qed_vf_hw_prepare() +- isdn: hfcpci: check the return value of dma_set_mask() in setup_hw() +- virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero +- mISDN: Fix memory leak in dsp_pipeline_build() +- mISDN: Remove obsolete PIPELINE_DEBUG debugging information +- tipc: fix kernel panic when enabling bearer +- arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias +- HID: vivaldi: fix sysfs attributes leak +- clk: qcom: gdsc: Add support to update GDSC transition delay +- ARM: boot: dts: bcm2711: Fix HVS register range + +* Tue May 31 2022 Zheng Zengkai - 5.10.0-96.0.0.48 +- net, xdp: Update pkt_type if generic XDP changes unicast MAC +- KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID +- sched/psi: report zeroes for CPU full at the system level +- psi: Fix PSI_MEM_FULL state when tasks are in memstall and doing reclaim +- psi: Fix psi state corruption when schedule() races with cgroup move +- psi: Reduce calls to sched_clock() in psi +- psi: Optimize task switch inside shared cgroups +- psi: Pressure states are unlikely +- psi: Use ONCPU state tracking machinery to detect reclaim +- psi: Add PSI_CPU_FULL state +- block/psi: remove PSI annotations from direct IO +- psi: make kabi compatibility for psi in struct cgroup +- psi, tracepoint: introduce tracepoints for psi_memstall_{enter, leave} +- psi: fix wrong iteration in iterate_groups +- config: change CONFIG_DMATEST from y to m +- perf: Fix sys_perf_event_open() race against self +- blk-mq: fix kabi broken by "blk-mq: Use request queue-wide tags for tagset-wide sbitmap" +- blk-mq: fix use-after-free in blk_mq_exit_sched +- blk-mq: Use request queue-wide tags for tagset-wide sbitmap +- blk-mq: Some tag allocation code refactoring +- arm64: Add memmap reserve range check to avoid conflict +- ext4: add reserved GDT blocks check +- ax25: Fix UAF bugs in ax25 timers +- ax25: fix UAF bug in ax25_send_control() +- ax25: Fix refcount leaks caused by ax25_cb_del() +- ax25: fix UAF bugs of net_device caused by rebinding operation +- ax25: fix reference count leaks of ax25_dev +- ax25: add refcount in ax25_dev to avoid UAF bugs +- selftests: tls: skip cmsg_to_pipe tests with TLS=n +- selftests: tls: add missing AES256-GCM cipher +- selftests: tls: add missing AES-CCM cipher tests +- selftests: tls: test for correct proto_ops +- selftests: tls: test splicing decrypted records +- selftests: tls: test splicing cmsgs +- selftests: tls: add tests for handling of bad records +- selftests: tls: factor out cmsg send/receive +- selftests: tls: add helper for creating sock pairs +- selftests/tls: add SM4 GCM/CCM to tls selftests +- selftests: tls: clean up uninitialized warnings +- selftests/tls: Add {} to avoid static checker warning +- tls: Skip tls_append_frag on zero copy size +- net/tls: fix slab-out-of-bounds bug in decrypt_internal +- tls: splice_read: fix accessing pre-processed records +- net/tls: support SM4 CCM algorithm +- net/tls: support SM4 GCM/CCM algorithm +- net/tls: make sure tls offload sets salt_size +- net/tls: make inline helpers protocol-aware +- driver core: fix deadlock in __driver_attach +- driver core: fix deadlock in __device_attach +- inet: fully convert sk->sk_rx_dst to RCU rules +- Revert "ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE" +- arm64: cpufeature: add HWCAP for FEAT_RPRES +- arm64: cpufeature: add HWCAP for FEAT_AFP +- arm64: Add Cortex-A510 CPU part definition +- arm64: Add Cortex-X2 CPU part definition +- arm64: Add Neoverse-N2, Cortex-A710 CPU part definition +- arm64: cputype: Add CPU implementor & types for the Apple M1 cores + +* Sat May 28 2022 Zheng Zengkai - 5.10.0-95.0.0.47 +- hamradio: fix macro redefine warning +- Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6" +- btrfs: add missing run of delayed items after unlink during log replay +- btrfs: qgroup: fix deadlock between rescan worker and remove qgroup +- btrfs: fix lost prealloc extents beyond eof after full fsync +- tracing: Fix return value of __setup handlers +- tracing/histogram: Fix sorting on old "cpu" value +- HID: add mapping for KEY_ALL_APPLICATIONS +- HID: add mapping for KEY_DICTATE +- Input: samsung-keypad - properly state IOMEM dependency +- Input: elan_i2c - fix regulator enable count imbalance after suspend/resume +- Input: elan_i2c - move regulator_[en|dis]able() out of elan_[en|dis]able_power() +- net: dcb: disable softirqs in dcbnl_flush_dev() +- drm/amdgpu: fix suspend/resume hang regression +- nl80211: Handle nla_memdup failures in handle_nan_filter +- iavf: Refactor iavf state machine tracking +- net: chelsio: cxgb3: check the return value of pci_find_capability() +- ibmvnic: complete init_done on transport events +- ARM: tegra: Move panels to AUX bus +- soc: fsl: qe: Check of ioremap return value +- soc: fsl: guts: Add a missing memory allocation failure check +- soc: fsl: guts: Revert commit 3c0d64e867ed +- ARM: dts: Use 32KiHz oscillator on devkit8000 +- ARM: dts: switch timer config to common devkit8000 devicetree +- s390/extable: fix exception table sorting +- memfd: fix F_SEAL_WRITE after shmem huge page allocated +- ibmvnic: free reset-work-item when flushing +- igc: igc_write_phy_reg_gpy: drop premature return +- pinctrl: sunxi: Use unique lockdep classes for IRQs +- selftests: mlxsw: tc_police_scale: Make test more robust +- ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions +- ARM: Fix kgdb breakpoint for Thumb2 +- igc: igc_read_phy_reg_gpy: drop premature return +- arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output +- can: gs_usb: change active_channels's type from atomic_t to u8 +- ASoC: cs4265: Fix the duplicated control name +- firmware: arm_scmi: Remove space in MODULE_ALIAS name +- efivars: Respect "block" flag in efivar_entry_set_safe() +- ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc() +- net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe() +- ibmvnic: register netdev after init of adapter +- net: sxgbe: fix return value of __setup handler +- iavf: Fix missing check for running netdev +- mac80211: treat some SAE auth steps as final +- net: stmmac: fix return value of __setup handler +- mac80211: fix forwarded mesh frames AC & queue selection +- ice: fix concurrent reset and removal of VFs +- ice: Fix race conditions between virtchnl handling and VF ndo ops +- net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server +- net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client +- net/smc: fix connection leak +- net: dcb: flush lingering app table entries for unregistered devices +- net: ipv6: ensure we call ipv6_mc_down() at most once +- batman-adv: Don't expect inter-netns unique iflink indices +- batman-adv: Request iflink once in batadv_get_real_netdevice +- batman-adv: Request iflink once in batadv-on-batadv check +- netfilter: nf_queue: handle socket prefetch +- netfilter: nf_queue: fix possible use-after-free +- netfilter: nf_queue: don't assume sk is full socket +- net: fix up skbs delta_truesize in UDP GRO frag_list +- e1000e: Correct NVM checksum verification flow +- xfrm: enforce validity of offload input flags +- xfrm: fix the if_id check in changelink +- bpf, sockmap: Do not ignore orig_len parameter +- netfilter: fix use-after-free in __nf_register_net_hook() +- xfrm: fix MTU regression +- mm: Consider __GFP_NOWARN flag for oversized kvmalloc() calls +- ntb: intel: fix port config status offset for SPR +- thermal: core: Fix TZ_GET_TRIP NULL pointer dereference +- xen/netfront: destroy queues before real_num_tx_queues is zeroed +- drm/i915: s/JSP2/ICP2/ PCH +- iommu/amd: Recover from event log overflow +- ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min +- riscv: Fix config KASAN && DEBUG_VIRTUAL +- riscv: Fix config KASAN && SPARSEMEM && !SPARSE_VMEMMAP +- riscv/efi_stub: Fix get_boot_hartid_from_fdt() return value +- ALSA: intel_hdmi: Fix reference to PCM buffer address +- tracing: Add ustring operation to filtering string pointers +- drm/amdgpu: check vm ready by amdgpu_vm->evicting flag +- ata: pata_hpt37x: fix PCI clock detection +- serial: stm32: prevent TDR register overwrite when sending x_char +- tracing: Add test for user space strings when filtering on string pointers +- exfat: fix i_blocks for files truncated over 4 GiB +- exfat: reuse exfat_inode_info variable instead of calling EXFAT_I() +- net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990 +- i2c: qup: allow COMPILE_TEST +- i2c: cadence: allow COMPILE_TEST +- dmaengine: shdma: Fix runtime PM imbalance on error +- selftests/seccomp: Fix seccomp failure by adding missing headers +- cifs: fix double free race when mount fails in cifs_get_root() +- tipc: fix a bit overflow in tipc_crypto_key_rcv() +- KVM: arm64: vgic: Read HW interrupt pending state from the HW +- Input: clear BTN_RIGHT/MIDDLE on buttonpads +- regulator: core: fix false positive in regulator_late_cleanup() +- ASoC: rt5682: do not block workqueue if card is unbound +- ASoC: rt5668: do not block workqueue if card is unbound +- i2c: bcm2835: Avoid clock stretching timeouts +- mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work +- mac80211_hwsim: report NOACK frames in tx_status +- nfsd: Fix null-ptr-deref in nfsd_fill_super() +- arm64: Add non nmi ipi backtrace support +- slub: add back check for free nonslab objects + +* Thu May 26 2022 Zheng Zengkai - 5.10.0-94.0.0.46 +- sched/fair: Update rq clock before unthrottle a qos cfs_rq +- io_uring: fix soft lockup in io_submit_sqes() +- arm64: Fix wrong logic in gic_arch_restore_irqs() +- pkcs7: parser support SM2 and SM3 algorithms combination +- secure_seq: use the 64 bits of the siphash for port offset calculation +- vfio/iommu: Fix uncorrect type parameters which used in bitmap operations +- ipv6: per-netns exclusive flowlabel checks +- memblock: use kfree() to release kmalloced memblock regions +- gpio: tegra186: Fix chip_data type confusion +- tty: n_gsm: fix deadlock in gsmtty_open() +- tty: n_gsm: fix wrong tty control line for flow control +- tty: n_gsm: fix NULL pointer access due to DLCI release +- tty: n_gsm: fix proper link termination after failed open +- tty: n_gsm: fix encoding of control signal octet bit DV +- riscv: fix oops caused by irqsoff latency tracer +- thermal: int340x: fix memory leak in int3400_notify() +- RDMA/cma: Do not change route.addr.src_addr outside state checks +- driver core: Free DMA range map when device is released +- xhci: Prevent futile URB re-submissions due to incorrect return value. +- xhci: re-initialize the HC during resume if HCE was set +- usb: dwc3: gadget: Let the interrupt handler disable bottom halves. +- usb: dwc3: pci: Fix Bay Trail phy GPIO mappings +- usb: dwc2: drd: fix soft connect when gadget is unconfigured +- USB: serial: option: add Telit LE910R1 compositions +- USB: serial: option: add support for DW5829e +- tracefs: Set the group ownership in apply_options() not parse_options() +- usb: gadget: rndis: add spinlock for rndis response list +- Revert "USB: serial: ch341: add new Product ID for CH341A" +- ata: pata_hpt37x: disable primary channel on HPT371 +- sc16is7xx: Fix for incorrect data being transmitted +- iio: Fix error handling for PM +- iio: imu: st_lsm6dsx: wait for settling time in st_lsm6dsx_read_oneshot +- iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits +- iio: adc: men_z188_adc: Fix a resource leak in an error handling path +- tracing: Have traceon and traceoff trigger honor the instance +- RDMA/ib_srp: Fix a deadlock +- RDMA/rtrs-clt: Move free_permit from free_clt to rtrs_clt_close +- RDMA/rtrs-clt: Kill wait_for_inflight_permits +- regmap-irq: Update interrupt clear register for proper reset +- spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op() +- net/mlx5e: kTLS, Use CHECKSUM_UNNECESSARY for device-offloaded packets +- net/mlx5: Fix wrong limitation of metadata match on ecpf +- net/mlx5: Fix possible deadlock on rule deletion +- udp_tunnel: Fix end of loop test in udp_tunnel_nic_unregister() +- surface: surface3_power: Fix battery readings on batteries without a serial number +- net/smc: Use a mutex for locking "struct smc_pnettable" +- netfilter: nf_tables: fix memory leak during stateful obj update +- nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac() +- net: Force inlining of checksum functions in net/checksum.h +- net: ll_temac: check the return value of devm_kmalloc() +- net/sched: act_ct: Fix flow table lookup after ct clear or switching zones +- net/mlx5e: Fix wrong return value on ioctl EEPROM query failure +- drm/edid: Always set RGB444 +- openvswitch: Fix setting ipv6 fields causing hw csum failure +- gso: do not skip outer ip header in case of ipip and net_failover +- tipc: Fix end of loop tests for list_for_each_entry() +- net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends +- io_uring: add a schedule point in io_add_buffers() +- bpf: Add schedule points in batch ops +- selftests: bpf: Check bpf_msg_push_data return value +- bpf: Do not try bpf_msg_push_data with len 0 +- hwmon: Handle failure to register sensor with thermal zone correctly +- bnxt_en: Fix active FEC reporting to ethtool +- bnx2x: fix driver load from initrd +- perf data: Fix double free in perf_session__delete() +- ping: remove pr_err from ping_lookup +- optee: use driver internal tee_context for some rpc +- tee: export teedev_open() and teedev_close_context() +- x86/fpu: Correct pkru/xstate inconsistency +- CDC-NCM: avoid overflow in sanity checking +- USB: zaurus: support another broken Zaurus +- drm/i915: Correctly populate use_sagv_wm for all pipes +- drm/amdgpu: disable MMHUB PG for Picasso +- KVM: x86/mmu: make apf token non-zero to fix bug +- parisc/unaligned: Fix ldw() and stw() unalignment handlers +- parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel +- vhost/vsock: don't check owner in vhost_vsock_stop() while releasing +- clk: jz4725b: fix mmc0 clock gating +- btrfs: tree-checker: check item_size for dev_item +- btrfs: tree-checker: check item_size for inode_item + +* Mon May 23 2022 Zheng Zengkai - 5.10.0-93.0.0.45 +- mm: hwpoison: enable memory error handling on 1GB hugepage optionaly +- ext4: Fix warning in ext4_da_release_space +- perf: hisi: Fix unexpected modifications in hisi_uncore_l3c_pmu.c +- huge tmpfs: remove shrinklist addition from shmem_setattr() +- huge tmpfs: fix split_huge_page() after FALLOC_FL_KEEP_SIZE +- huge tmpfs: fix fallocate(vanilla) advance over huge pages +- nfc: nfcmrvl: main: reorder destructive operations in nfcmrvl_nci_unregister_dev to avoid bugs +- irq-gic-v3-its: It can't be initialized when the GICR had been cut +- irq-gic-v3: Add support to init ts core GICR +- crypto: tcrypt - add asynchronous speed test for SM3 +- crypto: x86/sm3 - add AVX assembly implementation +- crypto: sm3 - make dependent on sm3 library +- crypto: sm2 - make dependent on sm3 library +- crypto: arm64/sm3-ce - make dependent on sm3 library +- crypto: sm3 - create SM3 stand-alone library +- dynamic_hugetlb: fix undefined struct cftype +- file: fix kabi change since add f_ctl_mode +- selftests/bpf: add demo for file read pattern detection +- libbpf: Support detecting writable tracepoint program +- ext4: add trace for the read and release of regular file +- xfs: add trace for read and release of regular file +- fs: add helper fs_file_read_do_trace() +- vfs: add bare tracepoints for vfs read and release +- bpf: Support writable context for bare tracepoint +- trace: bpf: Allow bpf to attach to bare tracepoints +- readahead: introduce FMODE_CTL_WILLNEED to read first 2MB of file +- lockdep: Correct lock_classes index mapping +- i2c: brcmstb: fix support for DSL and CM variants +- copy_process(): Move fd_install() out of sighand->siglock critical section +- i2c: qcom-cci: don't put a device tree node before i2c_add_adapter() +- i2c: qcom-cci: don't delete an unregistered adapter +- dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size +- dmaengine: stm32-dmamux: Fix PM disable depth imbalance in stm32_dmamux_probe +- dmaengine: sh: rcar-dmac: Check for error num after setting mask +- net: sched: limit TC_ACT_REPEAT loops +- EDAC: Fix calculation of returned address and next offset in edac_align_ptr() +- scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop +- kconfig: fix failing to generate auto.conf +- net: macb: Align the dma and coherent dma masks +- net: usb: qmi_wwan: Add support for Dell DW5829e +- tracing: Fix tp_printk option related with tp_printk_stop_on_boot +- drm/rockchip: dw_hdmi: Do not leave clock enabled in error case +- xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create +- soc: aspeed: lpc-ctrl: Block error printing on probe defer cases +- ata: libata-core: Disable TRIM on M88V29 +- kconfig: let 'shell' return enough output for deep path names +- selftests: fixup build warnings in pidfd / clone3 tests +- pidfd: fix test failure due to stack overflow on some arches +- arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610 +- arm64: dts: meson-g12: add ATF BL32 reserved-memory region +- arm64: dts: meson-gx: add ATF BL32 reserved-memory region +- netfilter: conntrack: don't refresh sctp entries in closed state +- irqchip/sifive-plic: Add missing thead,c900-plic match string +- phy: usb: Leave some clocks running during suspend +- ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of +- ARM: OMAP2+: hwmod: Add of_node_put() before break +- NFS: Don't set NFS_INO_INVALID_XATTR if there is no xattr cache +- KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW +- KVM: x86/pmu: Don't truncate the PerfEvtSeln MSR when creating a perf event +- KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id() +- Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj +- mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status +- mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe() +- tty: n_tty: do not look ahead for EOL character past the end of the buffer +- NFS: Do not report writeback errors in nfs_getattr() +- block/wbt: fix negative inflight counter when remove scsi device +- ASoC: tas2770: Insert post reset delay +- KVM: SVM: Never reject emulation due to SMAP errata for !SEV guests +- mtd: rawnand: gpmi: don't leak PM reference in error path +- powerpc/lib/sstep: fix 'ptesync' build error +- ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range() +- ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw() +- ALSA: hda: Fix missing codec probe on Shenker Dock 15 +- ALSA: hda: Fix regression on forced probe mask option +- ALSA: hda/realtek: Fix deadlock by COEF mutex +- ALSA: hda/realtek: Add quirk for Legion Y9000X 2019 +- selftests/exec: Add non-regular to TEST_GEN_PROGS +- perf bpf: Defer freeing string after possible strlen() on it +- dpaa2-eth: Initialize mutex used in one step timestamping path +- libsubcmd: Fix use-after-free for realloc(..., 0) +- bonding: fix data-races around agg_select_timer +- net_sched: add __rcu annotation to netdev->qdisc +- drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit +- ping: fix the dif and sdif check in ping_lookup +- net: ieee802154: ca8210: Fix lifs/sifs periods +- net: dsa: lantiq_gswip: fix use after free in gswip_remove() +- net: dsa: lan9303: fix reset on probe +- netfilter: nft_synproxy: unregister hooks on init error path +- selftests: netfilter: fix exit value for nft_concat_range +- iwlwifi: pcie: gen2: fix locking when "HW not ready" +- iwlwifi: pcie: fix locking when "HW not ready" +- drm/i915/gvt: Make DRM_I915_GVT depend on X86 +- vsock: remove vsock from connected table when connect is interrupted by a signal +- drm/i915/opregion: check port number bounds for SWSCI display power state +- drm/radeon: Fix backlight control on iMac 12,1 +- iwlwifi: fix use-after-free +- kbuild: lto: Merge module sections if and only if CONFIG_LTO_CLANG is enabled +- kbuild: lto: merge module sections +- random: wake up /dev/random writers after zap +- gcc-plugins/stackleak: Use noinstr in favor of notrace +- Revert "module, async: async_synchronize_full() on module init iff async is used" +- x86/Xen: streamline (and fix) PV CPU enumeration +- drm/amdgpu: fix logic inversion in check +- nvme-rdma: fix possible use-after-free in transport error_recovery work +- nvme-tcp: fix possible use-after-free in transport error_recovery work +- nvme: fix a possible use-after-free in controller reset during load +- scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_task +- scsi: pm8001: Fix use-after-free for aborted TMF sas_task +- quota: make dquot_quota_sync return errors from ->sync_fs +- vfs: make freeze_super abort when sync_filesystem returns error +- selftests: skip mincore.check_file_mmap when fs lacks needed support +- selftests: openat2: Skip testcases that fail with EOPNOTSUPP +- selftests: openat2: Add missing dependency in Makefile +- selftests: openat2: Print also errno in failure messages +- selftests/zram: Adapt the situation that /dev/zram0 is being used +- selftests/zram01.sh: Fix compression ratio calculation +- selftests/zram: Skip max_comp_streams interface on newer kernel +- net: ieee802154: at86rf230: Stop leaking skb's +- kselftest: signal all child processes +- selftests: rtc: Increase test timeout so that all tests run +- platform/x86: ISST: Fix possible circular locking dependency detected +- platform/x86: touchscreen_dmi: Add info for the RWC NANOTE P8 AY07J 2-in-1 +- btrfs: send: in case of IO error log it +- parisc: Add ioread64_lo_hi() and iowrite64_lo_hi() +- PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA topology +- mm: don't try to NUMA-migrate COW pages that have other uses +- mmc: block: fix read single on recovery logic +- parisc: Fix sglist access in ccio-dma.c +- parisc: Fix data TLB miss in sba_unmap_sg +- parisc: Drop __init from map_pages declaration +- serial: parisc: GSC: fix build when IOSAPIC is not set +- Revert "svm: Add warning message for AVIC IPI invalid target" +- HID:Add support for UGTABLET WP5540 +- scsi: lpfc: Fix mailbox command failure during driver initialization +- can: isotp: add SF_BROADCAST support for functional addressing +- can: isotp: prevent race between isotp_bind() and isotp_setsockopt() +- fs/proc: task_mmu.c: don't read mapcount for migration entry +- mm: memcg: synchronize objcg lists with a dedicated spinlock +- drm/nouveau/pmu/gm200-: use alternate falcon reset sequence + +* Sat May 21 2022 Zheng Zengkai - 5.10.0-92.0.0.44 +- ext4: fix bug_on in ext4_writepages +- ext4: fix warning in ext4_handle_inode_extension +- ext4: fix use-after-free in ext4_rename_dir_prepare +- ext4: fix warning when submitting superblock in ext4_commit_super() +- ipv6: annotate some data-races around sk->sk_prot +- net/sched: cls_u32: fix netns refcount changes in u32_change() +- arm64: kaslr: support randomized module area with KASAN_VMALLOC +- arm64: Kconfig: support CONFIG_KASAN_VMALLOC +- arm64: kasan: abstract _text and _end to KERNEL_START/END +- arm64: kasan: don't populate vmalloc area for CONFIG_KASAN_VMALLOC +- ext4: fix bug_on in __es_tree_search +- exec: Remove redundant check in do_open_execat/uselib +- floppy: use a statically allocated error counter +- ext4: fix race condition between ext4_write and ext4_convert_inline_data +- arm64: Fix some build errors related to KEXEC +- sched/qos: Add qos_tg_{throttle,unthrottle}_{up,down} +- sched: Throttle offline task at tracehook_notify_resume() +- ubi: ubi_create_volume: Fix use-after-free when volume creation failed +- ubi: fastmap: Don't reserve beb_rsvd_pebs while filling fm pool +- net: ipv6: fix use after free of struct seg6_pernet_data +- net: ipv6: check return value of rhashtable_init +- KVM: arm64: vgic: Drop WARN from vgic_get_irq +- Documentation: arm64: Add limitation for exactmap +- arm64: Fix reserved memory via memmap +- ARM: 9191/1: arm/stacktrace, kasan: Silence KASAN warnings in unwind_frame() +- bpf, sockmap: Add sk_rmem_alloc check for sockmap +- bpf, sockmap: Fix double uncharge the mem of sk_msg +- bpf, sockmap: Fix more uncharged while msg has more_data +- bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full +- bpf, sockmap: Fix memleak in sk_psock_queue_msg +- bpf, sockmap: Zap ingress queues after stopping strparser +- bpf, sockmap: On cleanup we additionally need to remove cached skb +- bpf, sockmap: Fix memleak on ingress msg enqueue +- skmsg: Fix a memory leak in sk_psock_verdict_apply() +- sock_map: Fix a potential use-after-free in sock_map_close() +- skmsg: Avoid lock_sock() in sk_psock_backlog() +- net: Introduce skb_send_sock() for sock_map +- skmsg: Introduce a spinlock to protect ingress_msg +- skmsg: Lock ingress_skb when purging +- perf: hisi: Add support for HiSilicon SoC LPDDRC PMU +- perf: hisi: Add support for HiSilicon SoC L3T PMU +- perf: hisi: Fix read sccl_id and ccl_id error in some platform +- perf: hisi: Make irq shared + +* Thu May 19 2022 Zheng Zengkai - 5.10.0-91.0.0.43 +- io_uring: fix race between timeout flush and removal +- net/x25: Fix null-ptr-deref caused by x25_disconnect +- iommu: Fix potential use-after-free during probe +- perf: Fix list corruption in perf_cgroup_switch() +- arm64: dts: imx8mq: fix lcdif port node +- scsi: lpfc: Reduce log messages seen after firmware download +- scsi: lpfc: Remove NVMe support if kernel has NVME_FC disabled +- can: isotp: fix error path in isotp_sendmsg() to unlock wait queue +- Makefile.extrawarn: Move -Wunaligned-access to W=1 +- hwmon: (dell-smm) Speed up setting of fan speed +- phy: ti: Fix missing sentinel for clk_div_table +- speakup-dectlk: Restore pitch setting +- USB: serial: cp210x: add CPI Bulk Coin Recycler id +- USB: serial: cp210x: add NCR Retail IO box id +- USB: serial: ch341: add support for GW Instek USB2.0-Serial devices +- USB: serial: option: add ZTE MF286D modem +- USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320 +- usb: raw-gadget: fix handling of dual-direction-capable endpoints +- usb: gadget: f_uac2: Define specific wTerminalType +- usb: gadget: udc: renesas_usb3: Fix host to USB_ROLE_NONE transition +- usb: dwc3: gadget: Prevent core from processing stale TRBs +- usb: ulpi: Call of_node_put correctly +- usb: ulpi: Move of_node_put to ulpi_dev_release +- net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup +- Revert "usb: dwc2: drd: fix soft connect when gadget is unconfigured" +- usb: dwc2: drd: fix soft connect when gadget is unconfigured +- eeprom: ee1004: limit i2c reads to I2C_SMBUS_BLOCK_MAX +- n_tty: wake up poll(POLLRDNORM) on receiving data +- vt_ioctl: add array_index_nospec to VT_ACTIVATE +- vt_ioctl: fix array_index_nospec in vt_setactivate +- net: dsa: mv88e6xxx: fix use-after-free in mv88e6xxx_mdios_unregister +- net: mscc: ocelot: fix mutex lock error during ethtool stats read +- ice: fix IPIP and SIT TSO offload +- ice: fix an error code in ice_cfg_phy_fec() +- dpaa2-eth: unregister the netdev before disconnecting from the PHY +- net: amd-xgbe: disable interrupts during pci removal +- tipc: rate limit warning for received illegal binding update +- net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE +- veth: fix races around rq->rx_notify_masked +- net: fix a memleak when uncloning an skb dst and its metadata +- net: do not keep the dst cache when uncloning an skb dst and its metadata +- nfp: flower: fix ida_idx not being released +- ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path +- net: dsa: lantiq_gswip: don't use devres for mdiobus +- net: dsa: felix: don't use devres for mdiobus +- net: dsa: bcm_sf2: don't use devres for mdiobus +- net: dsa: ar9331: register the mdiobus under devres +- net: dsa: mv88e6xxx: don't use devres for mdiobus +- bonding: pair enable_port with slave_arr_updates +- gpio: sifive: use the correct register to read output values +- ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE +- drm/panel: simple: Assign data from panel_dpi_probe() correctly +- ixgbevf: Require large buffers for build_skb on 82599VF +- arm64: dts: meson-g12b-odroid-n2: fix typo 'dio2133' +- netfilter: ctnetlink: disable helper autoassign +- misc: fastrpc: avoid double fput() on failed usercopy +- drm/vc4: hdmi: Allow DBLCLK modes even if horz timing is odd. +- gpio: aggregator: Fix calling into sleeping GPIO controllers +- usb: f_fs: Fix use-after-free for epfile +- ARM: dts: imx7ulp: Fix 'assigned-clocks-parents' typo +- phy: xilinx: zynqmp: Fix bus width setting for SGMII +- ARM: dts: imx6qdl-udoo: Properly describe the SD card detect +- staging: fbtft: Fix error path in fbtft_driver_module_init() +- ARM: dts: meson8b: Fix the UART device-tree schema validation +- ARM: dts: meson8: Fix the UART device-tree schema validation +- ARM: dts: meson: Fix the UART compatible strings +- ARM: dts: Fix timer regression for beagleboard revision c +- drm/rockchip: vop: Correct RK3399 VOP register fields +- PM: s2idle: ACPI: Fix wakeup interrupts handling +- ACPI/IORT: Check node revision for PMCG resources +- nvme-tcp: fix bogus request completion when failing to send AER +- ARM: socfpga: fix missing RESET_CONTROLLER +- ARM: dts: Fix boot regression on Skomer +- ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group +- riscv: fix build with binutils 2.38 +- KVM: VMX: Set vmcs.PENDING_DBG.BS on #DB in STI/MOVSS blocking shadow +- KVM: SVM: Don't kill SEV guest if SMAP erratum triggers in usermode +- KVM: nVMX: Also filter MSR_IA32_VMX_TRUE_PINBASED_CTLS when eVMCS +- KVM: nVMX: eVMCS: Filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER +- KVM: eventfd: Fix false positive RCU usage warning +- net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout() +- nvme-pci: add the IGNORE_DEV_SUBNQN quirk for Intel P4500/P4600 SSDs +- perf: Always wake the parent event +- usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend +- PM: hibernate: Remove register_nosave_region_late() +- scsi: myrs: Fix crash in error case +- scsi: ufs: Treat link loss as fatal error +- scsi: pm8001: Fix bogus FW crash for maxcpus=1 +- scsi: qedf: Fix refcount issue when LOGO is received during TMF +- scsi: qedf: Add stag_work to all the vports +- scsi: ufs: ufshcd-pltfrm: Check the return value of devm_kstrdup() +- scsi: target: iscsi: Make sure the np under each tpg is unique +- powerpc/fixmap: Fix VM debug warning on unmap +- net: sched: Clarify error message when qdisc kind is unknown +- drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer +- x86/perf: Avoid warning for Arch LBR without XSAVE +- NFSv4 handle port presence in fs_location server string +- NFSv4 expose nfs_parse_server_name function +- NFSv4 remove zero number of fs_locations entries error check +- NFSv4.1: Fix uninitialised variable in devicenotify +- nfs: nfs4clinet: check the return value of kstrdup() +- NFSv4 only print the label when its queried +- NFS: change nfs_access_get_cached to only report the mask +- tracing: Propagate is_signed to expression +- drm/amdgpu: Set a suitable dev_info.gart_page_size +- NFSD: Fix offset type in I/O trace points +- NFSD: Clamp WRITE offsets +- NFS: Fix initialisation of nfs_client cl_flags field +- net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs +- net: phy: marvell: Fix RGMII Tx/Rx delays setting in 88e1121-compatible PHYs +- can: isotp: fix potential CAN frame reception race in isotp_rcv() +- mmc: sdhci-of-esdhc: Check for error num after setting mask +- ima: Do not print policy rule with inactive LSM labels +- ima: Allow template selection with ima_template[_fmt]= after ima_hash= +- ima: Remove ima_policy file before directory +- integrity: check the return value of audit_log_start() + +* Tue May 17 2022 Zheng Zengkai - 5.10.0-90.0.0.42 +- crypto: api - Move cryptomgr soft dependency into algapi +- moxart: fix potential use-after-free on remove path +- selftests: nft_concat_range: add test for reload with no element add/del +- cgroup/cpuset: Fix "suspicious RCU usage" lockdep warning +- net: dsa: mt7530: make NET_DSA_MT7530 select MEDIATEK_GE_PHY +- ext4: fix incorrect type issue during replay_del_range +- ext4: fix error handling in ext4_fc_record_modified_inode() +- ext4: fix error handling in ext4_restore_inline_data() +- ext4: modify the logic of ext4_mb_new_blocks_simple +- ext4: prevent used blocks from being allocated during fast commit replay +- EDAC/xgene: Fix deferred probing +- EDAC/altera: Fix deferred probing +- x86/perf: Default set FREEZE_ON_SMI for all +- perf/x86/intel/pt: Fix crash with stop filters in single-range mode +- perf stat: Fix display of grouped aliased events +- fbcon: Add option to enable legacy hardware acceleration +- Revert "fbcon: Disable accelerated scrolling" +- rtc: cmos: Evaluate century appropriate +- tools/resolve_btfids: Do not print any commands when building silently +- selftests: futex: Use variable MAKE instead of make +- selftests/exec: Remove pipe from TEST_GEN_FILES +- bpf: Use VM_MAP instead of VM_ALLOC for ringbuf +- gve: fix the wrong AdminQ buffer queue index check +- nfsd: nfsd4_setclientid_confirm mistakenly expires confirmed client. +- scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe +- pinctrl: bcm2835: Fix a few error paths +- pinctrl: intel: fix unexpected interrupt +- pinctrl: intel: Fix a glitch when updating IRQ flags on a preconfigured line +- ASoC: max9759: fix underflow in speaker_gain_control_put() +- ASoC: cpcap: Check for NULL pointer after calling of_get_child_by_name +- ASoC: xilinx: xlnx_formatter_pcm: Make buffer bytes multiple of period bytes +- ASoC: fsl: Add missing error handling in pcm030_fabric_probe +- drm/i915/overlay: Prevent divide by zero bugs in scaling +- net: stmmac: ensure PTP time register reads are consistent +- net: stmmac: dump gmac4 DMA registers correctly +- net: macsec: Verify that send_sci is on when setting Tx sci explicitly +- net: macsec: Fix offload support for NETDEV_UNREGISTER event +- net: ieee802154: Return meaningful error codes from the netlink helpers +- net: ieee802154: ca8210: Stop leaking skb's +- net: ieee802154: mcr20a: Fix lifs/sifs periods +- net: ieee802154: hwsim: Ensure proper channel selection at probe time +- spi: uniphier: fix reference count leak in uniphier_spi_probe() +- spi: meson-spicc: add IRQ check in meson_spicc_probe +- spi: mediatek: Avoid NULL pointer crash in interrupt +- spi: bcm-qspi: check for valid cs before applying chip select +- iommu/amd: Fix loop timeout issue in iommu_ga_log_enable() +- iommu/vt-d: Fix potential memory leak in intel_setup_irq_remapping() +- RDMA/mlx4: Don't continue event handler after memory allocation failure +- RDMA/siw: Fix broken RDMA Read Fence/Resume logic. +- IB/rdmavt: Validate remote_addr during loopback atomic tests +- RDMA/ucma: Protect mc during concurrent multicast leaves +- RDMA/cma: Use correct address when leaving multicast group +- Revert "ASoC: mediatek: Check for error clk pointer" +- IB/hfi1: Fix AIP early init panic +- dma-buf: heaps: Fix potential spectre v1 gadget +- block: bio-integrity: Advance seed correctly for larger interval sizes +- mm/kmemleak: avoid scanning potential huge holes +- mm/pgtable: define pte_index so that preprocessor could recognize it +- mm/debug_vm_pgtable: remove pte entry from the page table +- nvme-fabrics: fix state check in nvmf_ctlr_matches_baseopts() +- drm/amd/display: Force link_rate as LINK_RATE_RBR2 for 2018 15" Apple Retina panels +- drm/nouveau: fix off by one in BIOS boundary checking +- btrfs: fix deadlock between quota disable and qgroup rescan worker +- ALSA: hda/realtek: Fix silent output on Gigabyte X570 Aorus Xtreme after reboot from Windows +- ALSA: hda/realtek: Fix silent output on Gigabyte X570S Aorus Master (newer chipset) +- ALSA: hda/realtek: Add missing fixup-model entry for Gigabyte X570 ALC1220 quirks +- ALSA: hda/realtek: Add quirk for ASUS GU603 +- ALSA: hda: realtek: Fix race at concurrent COEF updates +- ALSA: hda: Fix UAF of leds class devs at unbinding +- ALSA: usb-audio: Correct quirk for VF0770 +- ASoC: ops: Reject out of bounds values in snd_soc_put_xr_sx() +- ASoC: ops: Reject out of bounds values in snd_soc_put_volsw_sx() +- ASoC: ops: Reject out of bounds values in snd_soc_put_volsw() +- selinux: fix double free of cond_list on error paths +- Revert "drm/vc4: hdmi: Make sure the device is powered with CEC" again +- Revert "drm/vc4: hdmi: Make sure the device is powered with CEC" +- psi: fix failure of create cgroup psi trigger +- mbigen: fix mbigen driver defer probe +- md/raid1: fix missing bitmap update w/o WriteMostly devices +- md/raid1: only allocate write behind bio for WriteMostly device +- raid1: ensure write behind bio has less than BIO_MAX_VECS sectors +- block: fix kabi change since add bd_write_openers and bd_part_write_openers +- kabi: deduplication friendly structs +- block: add info when opening an exclusive opened block device for write +- block: add info when opening a write opend block device exclusively +- arm64: entry: Save some nops when CONFIG_ARM64_PSEUDO_NMI is not set +- bpf: Access bpf_sock's src_ip4 and sorc_port in BPF_CGROUP_INET_SOCK_RELEASE hook +- bpf: Add new bpf helper to get SO_ORIGINAL_DST/REPLY_SRC +- bpf: Add bpf_get_sockops_uid_gid helper function +- net: core: Add a GID field to struct sock. +- crypto: crct10dif-neon - fix use via crypto_shash_digest() +- net: fix information leakage in /proc/net/ptype +- config: enable CONFIG_QOS_SCHED_SMT_EXPELLER by +- sched: Add tracepoint for qos smt expeller +- sched: Add statistics for qos smt expeller +- sched: Implement the function of qos smt expeller +- sched: Introduce qos smt expeller for co-location +- ext4: fix symlink file size not match to file content +- ext4: fix bug_on in start_this_handle during umount filesystem +- ext4: fix use-after-free in ext4_search_dir +- KVM: s390: Return error on SIDA memop on normal guest +- fs-writeback: writeback_sb_inodes:Recalculate 'wrote' according skipped pages +- ubi: fastmap: Fix high cpu usage of ubi_bgt by making sure wl_pool not empty +- perf c2c: Update documentation for display option 'all' +- perf c2c: Sort on all cache hit for load operations +- perf c2c: Refactor node header +- perf c2c: Add dimensions for load miss +- perf c2c: Add dimensions for load hit +- perf c2c: Add dimensions for total load hit +- rcu/nocb: Make rcu_core() callbacks acceleration preempt-safe +- livepatch/arm64: Fix incorrect endian conversion when long jump +- livepatch: Print logs when register failed +- livepatch: Print logs when check calltrace failed +- livepatch: Print logs when patch text failed +- livepatch: Optimize list_del operation in 'arch_klp_unpatch_func' +- livepatch: Use 'old_insns' to replace 'old_insn' +- livepatch: Remove redundant copy for old codes +- livepatch: Reduce duplicate codes and fix issue on patch text +- mm: export collect_procs() +- rcu: Prevent expedited GP from enabling tick on offline CPU + +* Tue May 10 2022 Zheng Zengkai - 5.10.0-88.0.0.41 +- tcp: add missing tcp_skb_can_collapse() test in tcp_shift_skb_data() +- af_packet: fix data-race in packet_setsockopt / packet_setsockopt +- cpuset: Fix the bug that subpart_cpus updated wrongly in update_cpumask() +- rtnetlink: make sure to refresh master_dev/m_ops in __rtnl_newlink() +- fanotify: Fix stale file descriptor in copy_event_to_user() +- net: amd-xgbe: Fix skb data length underflow +- net: amd-xgbe: ensure to reset the tx_timer_active flag +- ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback +- net/mlx5: E-Switch, Fix uninitialized variable modact +- net/mlx5: Use del_timer_sync in fw reset flow of halting poll +- net/mlx5e: Fix handling of wrong devices during bond netevent +- drm/vc4: hdmi: Make sure the device is powered with CEC +- x86/cpu: Add Xeon Icelake-D to list of CPUs that support PPIN +- x86/mce: Add Xeon Sapphire Rapids to list of CPUs that support PPIN +- psi: Fix uaf issue when psi trigger is destroyed while being polled +- KVM: x86: Forcibly leave nested virt when SMM state is toggled +- Revert "drivers: bus: simple-pm-bus: Add support for probing simple bus only devices" +- net: ipa: prevent concurrent replenish +- net: ipa: use a bitmap for endpoint replenish_enabled +- net: ipa: fix atomic update in ipa_endpoint_replenish() +- PCI: pciehp: Fix infinite loop in IRQ handler upon power fault +- mtd: rawnand: mpc5121: Remove unused variable in ads5121_select_chip() +- block: Fix wrong offset in bio_truncate() +- fsnotify: invalidate dcache before IN_DELETE event +- usr/include/Makefile: add linux/nfc.h to the compile-test coverage +- dt-bindings: can: tcan4x5x: fix mram-cfg RX FIFO config +- net: bridge: vlan: fix memory leak in __allowed_ingress +- ipv4: remove sparse error in ip_neigh_gw4() +- ipv4: tcp: send zero IPID in SYNACK messages +- ipv4: raw: lock the socket in raw_bind() +- net: bridge: vlan: fix single net device option dumping +- Revert "ipv6: Honor all IPv6 PIO Valid Lifetime values" +- net: cpsw: Properly initialise struct page_pool_params +- drm/msm/dpu: invalid parameter check in dpu_setup_dspp_pcc +- drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy +- video: hyperv_fb: Fix validation of screen resolution +- ibmvnic: don't spin in tasklet +- ibmvnic: init ->running_cap_crqs early +- ipv4: fix ip option filtering for locally generated fragments +- net: ipv4: Fix the warning for dereference +- net: ipv4: Move ip_options_fragment() out of loop +- powerpc/perf: Fix power_pmu_disable to call clear_pmi_irq_pending only if PMI is pending +- hwmon: (lm90) Mark alert as broken for MAX6654 +- efi/libstub: arm64: Fix image check alignment at entry +- rxrpc: Adjust retransmission backoff +- octeontx2-pf: Forward error codes to VF +- phylib: fix potential use-after-free +- net: phy: broadcom: hook up soft_reset for BCM54616S +- sched/pelt: Relax the sync of util_sum with util_avg +- kernel: delete repeated words in comments +- netfilter: conntrack: don't increment invalid counter on NF_REPEAT +- powerpc64/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06 +- NFS: Ensure the server has an up to date ctime before renaming +- NFS: Ensure the server has an up to date ctime before hardlinking +- ipv6: annotate accesses to fn->fn_sernum +- drm/msm/dsi: invalid parameter check in msm_dsi_phy_enable +- drm/msm/dsi: Fix missing put_device() call in dsi_get_phy +- drm/msm: Fix wrong size calculation +- net-procfs: show net devices bound packet types +- hwmon: (lm90) Reduce maximum conversion rate for G781 +- ipv4: avoid using shared IP generator for connected sockets +- ping: fix the sk_bound_dev_if match in ping_lookup +- hwmon: (lm90) Mark alert as broken for MAX6680 +- hwmon: (lm90) Mark alert as broken for MAX6646/6647/6649 +- ipv6_tunnel: Rate limit warning messages +- scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put() +- rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev +- rpmsg: char: Fix race between the release of rpmsg_ctrldev and cdev +- usb: roles: fix include/linux/usb/role.h compile issue +- i40e: fix unsigned stat widths +- i40e: Fix for failed to init adminq while VF reset +- i40e: Fix queues reservation for XDP +- i40e: Fix issue when maximum queues is exceeded +- i40e: Increase delay to 1 s after global EMP reset +- powerpc/32: Fix boot failure with GCC latent entropy plugin +- powerpc/32s: Fix kasan_init_region() for KASAN +- powerpc/32s: Allocate one 256k IBAT instead of two consecutives 128k IBATs +- x86/MCE/AMD: Allow thresholding interface updates after init +- sched/membarrier: Fix membarrier-rseq fence command missing from query bitmask +- ocfs2: fix a deadlock when commit trans +- jbd2: export jbd2_journal_[grab|put]_journal_head +- ucsi_ccg: Check DEV_INT bit only when starting CCG4 +- usb: typec: tcpm: Do not disconnect while receiving VBUS off +- USB: core: Fix hang in usb_kill_urb by adding memory barriers +- usb: gadget: f_sourcesink: Fix isoc transfer for USB_SPEED_SUPER_PLUS +- usb: common: ulpi: Fix crash in ulpi_match() +- usb: xhci-plat: fix crash when suspend if remote wake enable +- usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge +- tty: Add support for Brainboxes UC cards. +- tty: n_gsm: fix SW flow control encoding/handling +- serial: stm32: fix software flow control transfer +- serial: 8250: of: Fix mapped region size when using reg-offset property +- netfilter: nft_payload: do not update layer 4 checksum when mangling fragments +- arm64: errata: Fix exec handling in erratum 1418040 workaround +- KVM: x86: Update vCPU's runtime CPUID on write to MSR_IA32_XSS +- drm/etnaviv: relax submit size limits +- perf/x86/intel/uncore: Fix CAS_COUNT_WRITE issue for ICX +- Revert "KVM: SVM: avoid infinite loop on NPF from bad address" +- fsnotify: fix fsnotify hooks in pseudo filesystems +- ceph: set pool_ns in new inode layout for async creates +- ceph: properly put ceph_string reference after async create attempt +- tracing: Don't inc err_log entry count if entry allocation fails +- tracing/histogram: Fix a potential memory leak for kstrdup() +- PM: wakeup: simplify the output logic of pm_show_wakelocks() +- efi: runtime: avoid EFIv2 runtime services on Apple x86 machines +- scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices +- bpf: Guard against accessing NULL pt_regs in bpf_get_task_stack() +- s390/hypfs: include z/VM guests with access control group set +- s390/module: fix loading modules with a lot of relocations +- net: stmmac: skip only stmmac_ptp_register when resume from suspend +- net: sfp: ignore disabled SFP node +- media: venus: core: Drop second v4l2 device unregister +- Bluetooth: refactor malicious adv data check +- drm/vmwgfx: Fix stale file descriptors on failed usercopy +- select: Fix indefinitely sleeping task in poll_schedule_timeout() +- KVM: x86/mmu: Fix write-protection of PTs mapped by the TDP MMU +- rcu: Tighten rcu_advance_cbs_nowake() checks +- bnx2x: Invalidate fastpath HSI version for VFs +- bnx2x: Utilize firmware 7.13.21.0 +- drm/i915: Flush TLBs before releasing backing store + +* Fri Apr 29 2022 Zheng Zengkai - 5.10.0-87.0.0.40 +- llc: only change llc->dev when bind() succeeds +- netdevice: add the case if dev is NULL +- llc: fix netdevice reference leaks in llc_ui_bind() +- Revert "clocksource: Reduce clocksource-skew threshold" +- Revert "clocksource: Avoid accidental unstable marking of clocksources" +- Revert "xfrm: rate limit SA mapping change message to user space" +- ipvlan: Modify the value of ipvlan modes +- of: Enable crashkernel=X,high to support kexec option -s +- arm64: kdump: Try not to use NO_BLOCK_MAPPINGS for memory under 4G +- arm64: kdump: Use page-level mapping for the high memory of crashkernel +- arm64: kdump: Don't force page-level mappings for memory above 4G +- arm64: kdump: Update the name of crashk_low_res +- x86: KVM: Fixed the bug that WAITmax cannot be updated in real time +- powerpc: Free fdt on error in elf64_load() +- powerpc: If kexec_build_elf_info() fails return immediately from elf64_load() +- nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION +- ixgbevf: add disable link state +- ixgbe: add improvement for MDD response functionality +- ixgbe: add the ability for the PF to disable VF link state +- can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path +- RDMA/rtrs-clt: Fix possible double free in error case +- arm64: fix clang warning about TRAMP_VALIAS +- arm64: kvm: Fix copy-and-paste error in bhb templates for v5.10 stable +- arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting +- arm64: Use the clearbhb instruction in mitigations +- KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated +- arm64: Mitigate spectre style branch history side channels +- KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3A +- arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2 +- arm64: Add percpu vectors for EL1 +- arm64: entry: Add macro for reading symbol addresses from the trampoline +- arm64: entry: Add vectors that have the bhb mitigation sequences +- arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations +- arm64: entry: Allow the trampoline text to occupy multiple pages +- arm64: entry: Make the kpti trampoline's kpti sequence optional +- arm64: entry: Move trampoline macros out of ifdef'd section +- arm64: entry: Don't assume tramp_vectors is the start of the vectors +- arm64: entry: Allow tramp_alias to access symbols after the 4K boundary +- arm64: entry: Move the trampoline data page before the text page +- arm64: entry: Free up another register on kpti's tramp_exit path +- arm64: entry: Make the trampoline cleanup optional +- arm64: spectre: Rename spectre_v4_patch_fw_mitigation_conduit +- arm64: entry.S: Add ventry overflow sanity checks +- ARM: Spectre-BHB: provide empty stub for non-config +- ARM: Do not use NOCROSSREFS directive with ld.lld +- ARM: include unprivileged BPF status in Spectre V2 reporting +- ARM: Spectre-BHB workaround +- ARM: use LOADADDR() to get load address of sections +- ARM: early traps initialisation +- ARM: report Spectre v2 status through sysfs +- arm64: add ID_AA64ISAR2_EL1 sys register +- x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT +- x86/speculation: Warn about Spectre v2 LFENCE mitigation +- x86/speculation: Update link to AMD speculation whitepaper +- x86/speculation: Use generic retpoline by default on AMD +- x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting +- Documentation/hw-vuln: Update spectre doc +- x86/speculation: Add eIBRS + Retpoline options +- x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE +- x86,bugs: Unconditionally allow spectre_v2=retpoline,amd +- can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path +- scripts: sphinx-pre-install: Fix ctex support on Debian +- scripts: sphinx-pre-install: add required ctex dependency +- ath10k: Fix the MTU size on QCA9377 SDIO +- mtd: nand: bbt: Fix corner case in bad block table handling +- lib/test_meminit: destroy cache in kmem_cache_alloc_bulk() test +- mm/hmm.c: allow VM_MIXEDMAP to work with hmm_range_fault +- lib82596: Fix IRQ check in sni_82596_probe +- scripts/dtc: dtx_diff: remove broken example from help text +- dt-bindings: watchdog: Require samsung,syscon-phandle for Exynos7 +- dt-bindings: display: meson-vpu: Add missing amlogic,canvas property +- dt-bindings: display: meson-dw-hdmi: add missing sound-name-prefix property +- net: mscc: ocelot: fix using match before it is set +- net: sfp: fix high power modules without diagnostic monitoring +- net: ethernet: mtk_eth_soc: fix error checking in mtk_mac_config() +- bcmgenet: add WOL IRQ check +- net_sched: restore "mpu xxx" handling +- net: bonding: fix bond_xmit_broadcast return value error bug +- arm64: dts: qcom: msm8996: drop not documented adreno properties +- devlink: Remove misleading internal_flags from health reporter dump +- perf probe: Fix ppc64 'perf probe add events failed' case +- dmaengine: at_xdmac: Fix at_xdmac_lld struct definition +- dmaengine: at_xdmac: Fix lld view setting +- dmaengine: at_xdmac: Fix concurrency over xfers_list +- dmaengine: at_xdmac: Print debug message after realeasing the lock +- dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending +- dmaengine: at_xdmac: Don't start transactions at tx_submit level +- perf script: Fix hex dump character output +- libcxgb: Don't accidentally set RTO_ONLINK in cxgb_find_route() +- gre: Don't accidentally set RTO_ONLINK in gre_fill_metadata_dst() +- xfrm: Don't accidentally set RTO_ONLINK in decode_session4() +- netns: add schedule point in ops_exit_list() +- inet: frags: annotate races around fqdir->dead and fqdir->high_thresh +- taskstats: Cleanup the use of task->exit_code +- virtio_ring: mark ring unused on error +- vdpa/mlx5: Fix wrong configuration of virtio_version_1_0 +- rtc: pxa: fix null pointer dereference +- HID: vivaldi: fix handling devices not using numbered reports +- net: axienet: increase default TX ring size to 128 +- net: axienet: fix for TX busy handling +- net: axienet: fix number of TX ring slots for available check +- net: axienet: Fix TX ring slot available check +- net: axienet: limit minimum TX ring size +- net: axienet: add missing memory barriers +- net: axienet: reset core on initialization prior to MDIO access +- net: axienet: Wait for PhyRstCmplt after core reset +- net: axienet: increase reset timeout +- net/smc: Fix hung_task when removing SMC-R devices +- clk: si5341: Fix clock HW provider cleanup +- clk: Emit a stern warning with writable debugfs enabled +- af_unix: annote lockless accesses to unix_tot_inflight & gc_in_progress +- f2fs: fix to reserve space for IO align feature +- f2fs: compress: fix potential deadlock of compress file +- parisc: pdc_stable: Fix memory leak in pdcs_register_pathentries +- net/fsl: xgmac_mdio: Fix incorrect iounmap when removing module +- net/fsl: xgmac_mdio: Add workaround for erratum A-009885 +- ipv4: avoid quadratic behavior in netns dismantle +- ipv4: update fib_info_cnt under spinlock protection +- perf evsel: Override attr->sample_period for non-libpfm4 events +- xdp: check prog type before updating BPF link +- bpftool: Remove inclusion of utilities.mak from Makefiles +- powerpc/fsl/dts: Enable WA for erratum A-009885 on fman3l MDIO buses +- powerpc/cell: Fix clang -Wimplicit-fallthrough warning +- Revert "net/mlx5: Add retry mechanism to the command entry index allocation" +- dmaengine: stm32-mdma: fix STM32_MDMA_CTBR_TSEL_MASK +- RDMA/rxe: Fix a typo in opcode name +- dmaengine: uniphier-xdmac: Fix type of address variables +- scsi: core: Show SCMD_LAST in text form +- Bluetooth: hci_sync: Fix not setting adv set duration +- Documentation: fix firewire.rst ABI file path error +- Documentation: refer to config RANDOMIZE_BASE for kernel address-space randomization +- Documentation: ACPI: Fix data node reference documentation +- Documentation: dmaengine: Correctly describe dmatest with channel unset +- media: correct MEDIA_TEST_SUPPORT help text +- drm/vc4: hdmi: Make sure the device is powered with CEC +- media: rcar-csi2: Optimize the selection PHTW register +- can: mcp251xfd: mcp251xfd_tef_obj_read(): fix typo in error message +- firmware: Update Kconfig help text for Google firmware +- of: base: Improve argument length mismatch error +- drm/radeon: fix error handling in radeon_driver_open_kms +- ext4: don't use the orphan list when migrating an inode +- ext4: destroy ext4_fc_dentry_cachep kmemcache on module removal +- ext4: fast commit may miss tracking unwritten range during ftruncate +- ext4: use ext4_ext_remove_space() for fast commit replay delete range +- ext4: set csum seed in tmp inode while migrating to extents +- ext4: fix fast commit may miss tracking range for FALLOC_FL_ZERO_RANGE +- ext4: initialize err_blk before calling __ext4_get_inode_loc +- ext4: fix a possible ABBA deadlock due to busy PA +- ext4: make sure quota gets properly shutdown on error +- ext4: make sure to reset inode lockdep class when quota enabling fails +- btrfs: respect the max size in the header when activating swap file +- btrfs: check the root node for uptodate before returning it +- btrfs: fix deadlock between quota enable and other quota operations +- xfrm: fix policy lookup for ipv6 gre packets +- PCI: pci-bridge-emul: Set PCI_STATUS_CAP_LIST for PCIe device +- PCI: pci-bridge-emul: Correctly set PCIe capabilities +- PCI: pci-bridge-emul: Fix definitions of reserved bits +- PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space +- PCI: pci-bridge-emul: Make expansion ROM Base Address register read-only +- PCI: pciehp: Use down_read/write_nested(reset_lock) to fix lockdep errors +- PCI: xgene: Fix IB window setup +- powerpc/64s/radix: Fix huge vmap false positive +- parisc: Fix lpa and lpa_user defines +- drm/bridge: analogix_dp: Make PSR-exit block less +- drm/nouveau/kms/nv04: use vzalloc for nv04_display +- drm/etnaviv: limit submit sizes +- device property: Fix fwnode_graph_devcon_match() fwnode leak +- s390/mm: fix 2KB pgtable release race +- iwlwifi: mvm: Increase the scan timeout guard to 30 seconds +- tracing/kprobes: 'nmissed' not showed correctly for kretprobe +- cputime, cpuacct: Include guest time in user time in cpuacct.stat +- serial: Fix incorrect rs485 polarity on uart open +- fuse: Pass correct lend value to filemap_write_and_wait_range() +- xen/gntdev: fix unmap notification order +- spi: uniphier: Fix a bug that doesn't point to private data correctly +- tpm: fix NPE on probe for missing device +- ubifs: Error path in ubifs_remount_rw() seems to wrongly free write buffers +- crypto: caam - replace this_cpu_ptr with raw_cpu_ptr +- crypto: stm32/crc32 - Fix kernel BUG triggered in probe() +- crypto: omap-aes - Fix broken pm_runtime_and_get() usage +- rpmsg: core: Clean up resources on announce_create failure. +- phy: mediatek: Fix missing check in mtk_mipi_tx_probe +- ASoC: mediatek: mt8183: fix device_node leak +- ASoC: mediatek: mt8173: fix device_node leak +- scsi: sr: Don't use GFP_DMA +- MIPS: Octeon: Fix build errors using clang +- i2c: designware-pci: Fix to change data types of hcnt and lcnt parameters +- irqchip/gic-v4: Disable redistributors' view of the VPE table at boot time +- MIPS: OCTEON: add put_device() after of_find_device_by_node() +- udf: Fix error handling in udf_new_inode() +- powerpc/fadump: Fix inaccurate CPU state info in vmcore generated with panic +- powerpc: handle kdump appropriately with crash_kexec_post_notifiers option +- selftests/powerpc/spectre_v2: Return skip code when miss_percent is high +- powerpc/40x: Map 32Mbytes of memory at startup +- MIPS: Loongson64: Use three arguments for slti +- ALSA: seq: Set upper limit of processed events +- scsi: lpfc: Trigger SLI4 firmware dump before doing driver cleanup +- dm: fix alloc_dax error handling in alloc_dev +- nvmem: core: set size for sysfs bin file +- w1: Misuse of get_user()/put_user() reported by sparse +- KVM: PPC: Book3S: Suppress failed alloc warning in H_COPY_TOFROM_GUEST +- KVM: PPC: Book3S: Suppress warnings when allocating too big memory slots +- powerpc/powermac: Add missing lockdep_register_key() +- clk: meson: gxbb: Fix the SDM_EN bit for MPLL0 on GXBB +- i2c: mpc: Correct I2C reset procedure +- powerpc/smp: Move setup_profiling_timer() under CONFIG_PROFILING +- i2c: i801: Don't silently correct invalid transfer size +- powerpc/watchdog: Fix missed watchdog reset due to memory ordering race +- powerpc/btext: add missing of_node_put +- powerpc/cell: add missing of_node_put +- powerpc/powernv: add missing of_node_put +- powerpc/6xx: add missing of_node_put +- x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs +- parisc: Avoid calling faulthandler_disabled() twice +- random: do not throw away excess input to crng_fast_load +- serial: core: Keep mctrl register state and cached copy in sync +- serial: pl010: Drop CR register reset on set_termios +- regulator: qcom_smd: Align probe function with rpmh-regulator +- net: gemini: allow any RGMII interface mode +- net: phy: marvell: configure RGMII delays for 88E1118 +- mlxsw: pci: Avoid flow control for EMAD packets +- dm space map common: add bounds check to sm_ll_lookup_bitmap() +- dm btree: add a defensive bounds check to insert_at() +- mac80211: allow non-standard VHT MCS-10/11 +- net: mdio: Demote probed message to debug print +- btrfs: remove BUG_ON(!eie) in find_parent_nodes +- btrfs: remove BUG_ON() in find_parent_nodes() +- ACPI: battery: Add the ThinkPad "Not Charging" quirk +- amdgpu/pm: Make sysfs pm attributes as read-only for VFs +- drm/amdgpu: fixup bad vram size on gmc v8 +- ACPICA: Hardware: Do not flush CPU cache when entering S4 and S5 +- ACPICA: Fix wrong interpretation of PCC address +- ACPICA: Executer: Fix the REFCLASS_REFOF case in acpi_ex_opcode_1A_0T_1R() +- ACPICA: Utilities: Avoid deleting the same object twice in a row +- ACPICA: actypes.h: Expand the ACPI_ACCESS_ definitions +- drm/etnaviv: consider completed fence seqno in hang check +- xfrm: rate limit SA mapping change message to user space +- Bluetooth: vhci: Set HCI_QUIRK_VALID_LE_STATES +- ath11k: Fix napi related hang +- um: registers: Rename function names to avoid conflicts and build problems +- iwlwifi: pcie: make sure prph_info is set when treating wakeup IRQ +- iwlwifi: mvm: Fix calculation of frame length +- iwlwifi: remove module loading failure message +- iwlwifi: fix leaks/bad data after failed firmware load +- PM: AVS: qcom-cpr: Use div64_ul instead of do_div +- rtw88: 8822c: update rx settings to prevent potential hw deadlock +- ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream +- usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0 +- cpufreq: Fix initialization of min and max frequency QoS requests +- PM: runtime: Add safety net to supplier device release +- arm64: tegra: Adjust length of CCPLEX cluster MMIO region +- arm64: dts: ls1028a-qds: move rtc node to the correct i2c bus +- mmc: core: Fixup storing of OCR for MMC_QUIRK_NONSTD_SDIO +- media: saa7146: hexium_gemini: Fix a NULL pointer dereference in hexium_attach() +- media: igorplugusb: receiver overflow should be reported +- HID: quirks: Allow inverting the absolute X/Y values +- bpf: Do not WARN in bpf_warn_invalid_xdp_action() +- net: bonding: debug: avoid printing debug logs when bond is not notifying peers +- x86/mce: Mark mce_read_aux() noinstr +- x86/mce: Mark mce_end() noinstr +- x86/mce: Mark mce_panic() noinstr +- x86/mce: Allow instrumentation during task work queueing +- ath11k: Avoid false DEADLOCK warning reported by lockdep +- selftests/ftrace: make kprobe profile testcase description unique +- gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock +- net: phy: prefer 1000baseT over 1000baseKX +- net-sysfs: update the queue counts in the unregistration path +- ath10k: Fix tx hanging +- ath11k: avoid deadlock by change ieee80211_queue_work for regd_update_work +- iwlwifi: mvm: avoid clearing a just saved session protection id +- iwlwifi: mvm: synchronize with FW after multicast commands +- thunderbolt: Runtime PM activate both ends of the device link +- media: m920x: don't use stack on USB reads +- media: saa7146: hexium_orion: Fix a NULL pointer dereference in hexium_attach() +- media: rcar-vin: Update format alignment constraints +- media: uvcvideo: Increase UVC_CTRL_CONTROL_TIMEOUT to 5 seconds. +- drm: rcar-du: Fix CRTC timings when CMM is used +- x86/mm: Flush global TLB when switching to trampoline page-table +- floppy: Add max size check for user space request +- usb: uhci: add aspeed ast2600 uhci support +- arm64: dts: ti: j7200-main: Fix 'dtbs_check' serdes_ln_ctrl node +- ACPI / x86: Add not-present quirk for the PCI0.SDHB.BRC1 device on the GPD win +- ACPI / x86: Allow specifying acpi_device_override_status() quirks by path +- ACPI: Change acpi_device_always_present() into acpi_device_override_status() +- ACPI / x86: Drop PWM2 device on Lenovo Yoga Book from always present table +- media: venus: avoid calling core_clk_setrate() concurrently during concurrent video sessions +- ath11k: Avoid NULL ptr access during mgmt tx cleanup +- rsi: Fix out-of-bounds read in rsi_read_pkt() +- rsi: Fix use-after-free in rsi_rx_done_handler() +- crypto: jitter - consider 32 LSB for APT +- HSI: core: Fix return freed object in hsi_new_client +- gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use +- tty: serial: imx: disable UCR4_OREN in .stop_rx() instead of .shutdown() +- drm/bridge: megachips: Ensure both bridges are probed before registration +- mlxsw: pci: Add shutdown method in PCI driver +- soc: ti: pruss: fix referenced node in error message +- drm/amdgpu/display: set vblank_disable_immediate for DC +- drm/amd/display: check top_pipe_to_program pointer +- ARM: imx: rename DEBUG_IMX21_IMX27_UART to DEBUG_IMX27_UART +- EDAC/synopsys: Use the quirk for version instead of ddr version +- media: b2c2: Add missing check in flexcop_pci_isr: +- HID: apple: Do not reset quirks when the Fn key is not found +- drm: panel-orientation-quirks: Add quirk for the Lenovo Yoga Book X91F/L +- usb: gadget: f_fs: Use stream_open() for endpoint files +- ath11k: Fix crash caused by uninitialized TX ring +- media: atomisp: handle errors at sh_css_create_isp_params() +- batman-adv: allow netlink usage in unprivileged containers +- ARM: shmobile: rcar-gen2: Add missing of_node_put() +- media: atomisp-ov2680: Fix ov2680_set_fmt() clobbering the exposure +- media: atomisp: set per-device's default mode +- media: atomisp: fix try_fmt logic +- drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR +- drm/bridge: dw-hdmi: handle ELD when DRM_BRIDGE_ATTACH_NO_CONNECTOR +- ar5523: Fix null-ptr-deref with unexpected WDCMSG_TARGET_START reply +- selftests/bpf: Fix bpf_object leak in skb_ctx selftest +- drm/lima: fix warning when CONFIG_DEBUG_SG=y & CONFIG_DMA_API_DEBUG=y +- fs: dlm: filter user dlm messages for kernel locks +- Bluetooth: Fix debugfs entry leak in hci_register_dev() +- ARM: dts: omap3-n900: Fix lp5523 for multi color +- of: base: Fix phandle argument length mismatch error message +- clk: bm1880: remove kfrees on static allocations +- ASoC: fsl_asrc: refine the check of available clock divider +- RDMA/cxgb4: Set queue pair state when being queried +- ASoC: fsl_mqs: fix MODULE_ALIAS +- powerpc/xive: Add missing null check after calling kmalloc +- mips: bcm63xx: add support for clk_set_parent() +- mips: lantiq: add support for clk_set_parent() +- arm64: tegra: Remove non existent Tegra194 reset +- arm64: tegra: Fix Tegra194 HDA {clock,reset}-names ordering +- counter: stm32-lptimer-cnt: remove iio counter abi +- misc: lattice-ecp3-config: Fix task hung when firmware load failed +- ASoC: samsung: idma: Check of ioremap return value +- ASoC: mediatek: Check for error clk pointer +- phy: uniphier-usb3ss: fix unintended writing zeros to PHY register +- ASoC: Intel: catpt: Test dmaengine_submit() result before moving on +- iommu/amd: Restore GA log/tail pointer on host resume +- iommu/amd: Remove iommu_init_ga() +- dmaengine: pxa/mmp: stop referencing config->slave_id +- mips: fix Kconfig reference to PHYS_ADDR_T_64BIT +- mips: add SYS_HAS_CPU_MIPS64_R5 config for MIPS Release 5 support +- clk: stm32: Fix ltdc's clock turn off by clk_disable_unused() after system enter shell +- of: unittest: 64 bit dma address test requires arch support +- of: unittest: fix warning on PowerPC frame size warning +- ASoC: rt5663: Handle device_property_read_u32_array error codes +- RDMA/cma: Let cma_resolve_ib_dev() continue search even after empty entry +- RDMA/core: Let ib_find_gid() continue search even after empty entry +- powerpc/powermac: Add additional missing lockdep_register_key() +- PCI/MSI: Fix pci_irq_vector()/pci_irq_get_affinity() +- RDMA/qedr: Fix reporting max_{send/recv}_wr attrs +- scsi: ufs: Fix race conditions related to driver data +- iommu/io-pgtable-arm: Fix table descriptor paddr formatting +- openrisc: Add clone3 ABI wrapper +- binder: fix handling of error during copy +- char/mwave: Adjust io port register size +- ALSA: usb-audio: Drop superfluous '0' in Presonus Studio 1810c's ID +- ALSA: oss: fix compile error when OSS_DEBUG is enabled +- clocksource: Avoid accidental unstable marking of clocksources +- clocksource: Reduce clocksource-skew threshold +- powerpc/32s: Fix shift-out-of-bounds in KASAN init +- powerpc/perf: Fix PMU callbacks to clear pending PMI before resetting an overflown PMC +- powerpc/irq: Add helper to set regs->softe +- powerpc/perf: move perf irq/nmi handling details into traps.c +- powerpc/perf: MMCR0 control for PMU registers under PMCC=00 +- powerpc/64s: Convert some cpu_setup() and cpu_restore() functions to C +- dt-bindings: thermal: Fix definition of cooling-maps contribution property +- ASoC: uniphier: drop selecting non-existing SND_SOC_UNIPHIER_AIO_DMA +- powerpc/prom_init: Fix improper check of prom_getprop() +- clk: imx8mn: Fix imx8mn_clko1_sels +- scsi: pm80xx: Update WARN_ON check in pm8001_mpi_build_cmd() +- RDMA/bnxt_re: Scan the whole bitmap when checking if "disabling RCFW with pending cmd-bit" +- ALSA: hda: Add missing rwsem around snd_ctl_remove() calls +- ALSA: PCM: Add missing rwsem around snd_ctl_remove() calls +- ALSA: jack: Add missing rwsem around snd_ctl_remove() calls +- ext4: avoid trim error on fs with small groups +- net: mcs7830: handle usb read errors properly +- iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing() +- pcmcia: fix setting of kthread task states +- can: xilinx_can: xcan_probe(): check for error irq +- can: softing: softing_startstop(): fix set but not used variable warning +- tpm_tis: Fix an error handling path in 'tpm_tis_core_init()' +- tpm: add request_locality before write TPM_INT_ENABLE +- can: mcp251xfd: add missing newline to printed strings +- regmap: Call regmap_debugfs_exit() prior to _init() +- netrom: fix api breakage in nr_setsockopt() +- ax25: uninitialized variable in ax25_setsockopt() +- spi: spi-meson-spifc: Add missing pm_runtime_disable() in meson_spifc_probe +- Bluetooth: L2CAP: uninitialized variables in l2cap_sock_setsockopt() +- lib/mpi: Add the return value check of kcalloc() +- net/mlx5: Set command entry semaphore up once got index free +- Revert "net/mlx5e: Block offload of outer header csum for UDP tunnels" +- net/mlx5e: Don't block routes with nexthop objects in SW +- net/mlx5e: Fix page DMA map/unmap attributes +- debugfs: lockdown: Allow reading debugfs files that are not world readable +- HID: hid-uclogic-params: Invalid parameter check in uclogic_params_frame_init_v1_buttonpad +- HID: hid-uclogic-params: Invalid parameter check in uclogic_params_huion_init +- HID: hid-uclogic-params: Invalid parameter check in uclogic_params_get_str_desc +- HID: hid-uclogic-params: Invalid parameter check in uclogic_params_init +- usb: dwc3: qcom: Fix NULL vs IS_ERR checking in dwc3_qcom_probe +- Bluetooth: hci_qca: Fix NULL vs IS_ERR_OR_NULL check in qca_serdev_probe +- Bluetooth: hci_bcm: Check for error irq +- fsl/fman: Check for null pointer after calling devm_ioremap +- staging: greybus: audio: Check null pointer +- rocker: fix a sleeping in atomic bug +- ppp: ensure minimum packet size in ppp_write() +- netfilter: nft_set_pipapo: allocate pcpu scratch maps on clone +- bpf: Fix SO_RCVBUF/SO_SNDBUF handling in _bpf_setsockopt(). +- bpf: Don't promote bogus looking registers after null check. +- netfilter: ipt_CLUSTERIP: fix refcount leak in clusterip_tg_check() +- power: reset: mt6397: Check for null res pointer +- pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region() +- pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region() +- ACPI: scan: Create platform device for BCM4752 and LNV4752 ACPI nodes +- x86/mce/inject: Avoid out-of-bounds write when setting flags +- hwmon: (mr75203) fix wrong power-up delay value +- x86/boot/compressed: Move CLANG_FLAGS to beginning of KBUILD_CFLAGS +- Bluetooth: hci_qca: Stop IBS timer during BT OFF +- software node: fix wrong node passed to find nargs_prop +- backlight: qcom-wled: Respect enabled-strings in set_brightness +- backlight: qcom-wled: Use cpu_to_le16 macro to perform conversion +- backlight: qcom-wled: Override default length with qcom,enabled-strings +- backlight: qcom-wled: Fix off-by-one maximum with default num_strings +- backlight: qcom-wled: Pass number of elements to read to read_u32_array +- backlight: qcom-wled: Validate enabled string indices in DT +- bpftool: Enable line buffering for stdout +- Bluetooth: L2CAP: Fix using wrong mode +- um: virtio_uml: Fix time-travel external time propagation +- um: fix ndelay/udelay defines +- selinux: fix potential memleak in selinux_add_opt() +- mmc: meson-mx-sdio: add IRQ check +- mmc: meson-mx-sdhc: add IRQ check +- iwlwifi: mvm: test roc running status bits before removing the sta +- iwlwifi: mvm: fix 32-bit build in FTM +- ARM: dts: armada-38x: Add generic compatible to UART nodes +- arm64: dts: marvell: cn9130: enable CP0 GPIO controllers +- arm64: dts: marvell: cn9130: add GPIO and SPI aliases +- usb: ftdi-elan: fix memory leak on device disconnect +- ARM: 9159/1: decompressor: Avoid UNPREDICTABLE NOP encoding +- xfrm: state and policy should fail if XFRMA_IF_ID 0 +- xfrm: interface with if_id 0 should return error +- media: hantro: Fix probe func error path +- drm/tegra: vic: Fix DMA API misuse +- drm/bridge: ti-sn65dsi86: Set max register for regmap +- drm/msm/dpu: fix safe status debugfs file +- arm64: dts: qcom: ipq6018: Fix gpio-ranges property +- arm64: dts: qcom: c630: Fix soundcard setup +- ath11k: Fix a NULL pointer dereference in ath11k_mac_op_hw_scan() +- media: coda/imx-vdoa: Handle dma_set_coherent_mask error codes +- media: msi001: fix possible null-ptr-deref in msi001_probe() +- media: dw2102: Fix use after free +- ARM: dts: gemini: NAS4220-B: fis-index-block with 128 KiB sectors +- ath11k: Fix deleting uninitialized kernel timer during fragment cache flush +- crypto: stm32 - Revert broken pm_runtime_resume_and_get changes +- crypto: stm32/cryp - fix bugs and crash in tests +- crypto: stm32/cryp - fix lrw chaining mode +- crypto: stm32/cryp - fix double pm exit +- crypto: stm32/cryp - check early input data +- crypto: stm32/cryp - fix xts and race condition in crypto_engine requests +- crypto: stm32/cryp - fix CTR counter carry +- crypto: stm32 - Fix last sparse warning in stm32_cryp_check_ctr_counter +- selftests: harness: avoid false negatives if test has no ASSERTs +- selftests: clone3: clone3: add case CLONE3_ARGS_NO_TEST +- x86/uaccess: Move variable into switch case statement +- xfrm: fix a small bug in xfrm_sa_len() +- mwifiex: Fix possible ABBA deadlock +- rcu/exp: Mark current CPU as exp-QS in IPI loop second pass +- drm/msm/dp: displayPort driver need algorithm rational +- sched/rt: Try to restart rt period timer when rt runtime exceeded +- Revert "sched/rt: Try to restart rt period timer when rt runtime exceeded" +- wireless: iwlwifi: Fix a double free in iwl_txq_dyn_alloc_dma +- media: si2157: Fix "warm" tuner state detection +- media: saa7146: mxb: Fix a NULL pointer dereference in mxb_attach() +- media: dib8000: Fix a memleak in dib8000_init() +- bpf: Remove config check to enable bpf support for branch records +- bpf: Disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD) +- bpf: Adjust BTF log size limit. +- sched/fair: Fix per-CPU kthread and wakee stacking for asym CPU capacity +- sched/fair: Fix detection of per-CPU kthreads waking a task +- Bluetooth: btmtksdio: fix resume failure +- staging: rtl8192e: rtllib_module: fix error handle case in alloc_rtllib() +- staging: rtl8192e: return error code from rtllib_softmac_init() +- floppy: Fix hang in watchdog when disk is ejected +- serial: amba-pl011: do not request memory region twice +- tty: serial: uartlite: allow 64 bit address +- arm64: dts: ti: k3-j7200: Correct the d-cache-sets info +- arm64: dts: ti: k3-j721e: Fix the L2 cache sets +- arm64: dts: ti: k3-j7200: Fix the L2 cache sets +- drm/radeon/radeon_kms: Fix a NULL pointer dereference in radeon_driver_open_kms() +- drm/amdgpu: Fix a NULL pointer dereference in amdgpu_connector_lcd_native_mode() +- thermal/drivers/imx8mm: Enable ADC when enabling monitor +- ACPI: EC: Rework flushing of EC work while suspended to idle +- cgroup: Trace event cgroup id fields should be u64 +- arm64: dts: qcom: msm8916: fix MMC controller aliases +- netfilter: bridge: add support for pppoe filtering +- thermal/drivers/imx: Implement runtime PM support +- media: venus: core: Fix a resource leak in the error handling path of 'venus_probe()' +- media: venus: core: Fix a potential NULL pointer dereference in an error handling path +- media: venus: core, venc, vdec: Fix probe dependency error +- media: venus: pm_helpers: Control core power domain manually +- media: coda: fix CODA960 JPEG encoder buffer overflow +- media: mtk-vcodec: call v4l2_m2m_ctx_release first when file is released +- media: si470x-i2c: fix possible memory leak in si470x_i2c_probe() +- media: imx-pxp: Initialize the spinlock prior to using it +- media: rcar-csi2: Correct the selection of hsfreqrange +- mfd: atmel-flexcom: Use .resume_noirq +- mfd: atmel-flexcom: Remove #ifdef CONFIG_PM_SLEEP +- tty: serial: atmel: Call dma_async_issue_pending() +- tty: serial: atmel: Check return code of dmaengine_submit() +- arm64: dts: ti: k3-j721e: correct cache-sets info +- ath11k: Use host CE parameters for CE interrupts configuration +- crypto: qat - fix undetected PFVF timeout in ACK loop +- crypto: qat - make pfvf send message direction agnostic +- crypto: qat - remove unnecessary collision prevention step in PFVF +- crypto: qat - fix spelling mistake: "messge" -> "message" +- ARM: dts: stm32: fix dtbs_check warning on ili9341 dts binding on stm32f429 disco +- mtd: hyperbus: rpc-if: fix bug in rpcif_hb_remove +- crypto: qce - fix uaf on qce_skcipher_register_one +- crypto: qce - fix uaf on qce_ahash_register_one +- media: dmxdev: fix UAF when dvb_register_device() fails +- arm64: dts: renesas: cat875: Add rx/tx delays +- drm/vboxvideo: fix a NULL vs IS_ERR() check +- fs: dlm: fix build with CONFIG_IPV6 disabled +- tee: fix put order in teedev_close_context() +- ath11k: reset RSN/WPA present state for open BSS +- ath11k: clear the keys properly via DISABLE_KEY +- ath11k: Fix ETSI regd with weather radar overlap +- Bluetooth: stop proccessing malicious adv data +- memory: renesas-rpc-if: Return error in case devm_ioremap_resource() fails +- fs: dlm: don't call kernel_getpeername() in error_report() +- fs: dlm: use sk->sk_socket instead of con->sock +- arm64: dts: meson-gxbb-wetek: fix missing GPIO binding +- arm64: dts: meson-gxbb-wetek: fix HDMI in early boot +- arm64: dts: amlogic: Fix SPI NOR flash node name for ODROID N2/N2+ +- arm64: dts: amlogic: meson-g12: Fix GPU operating point table node name +- media: aspeed: Update signal status immediately to ensure sane hw state +- media: em28xx: fix memory leak in em28xx_init_dev +- media: aspeed: fix mode-detect always time out at 2nd run +- media: atomisp: fix uninitialized bug in gmin_get_pmic_id_and_addr() +- media: atomisp: fix enum formats logic +- media: atomisp: add NULL check for asd obtained from atomisp_video_pipe +- media: staging: media: atomisp: pci: Balance braces around conditional statements in file atomisp_cmd.c +- media: atomisp: fix ifdefs in sh_css.c +- media: atomisp: fix inverted error check for ia_css_mipi_is_source_port_valid() +- media: atomisp: do not use err var when checking port validity for ISP2400 +- media: atomisp: fix inverted logic in buffers_needed() +- media: atomisp: fix punit_ddr_dvfs_enable() argument for mrfld_power up case +- media: atomisp: add missing media_device_cleanup() in atomisp_unregister_entities() +- media: videobuf2: Fix the size printk format +- mtd: hyperbus: rpc-if: Check return value of rpcif_sw_init() +- ath11k: Send PPDU_STATS_CFG with proper pdev mask to firmware +- wcn36xx: fix RX BD rate mapping for 5GHz legacy rates +- wcn36xx: populate band before determining rate on RX +- wcn36xx: Put DXE block into reset before freeing memory +- wcn36xx: Release DMA channel descriptor allocations +- wcn36xx: Fix DMA channel enable/disable cycle +- wcn36xx: Indicate beacon not connection loss on MISSED_BEACON_IND +- wcn36xx: ensure pairing of init_scan/finish_scan and start_scan/end_scan +- drm/vc4: hdmi: Set a default HSM rate +- clk: bcm-2835: Remove rounding up the dividers +- clk: bcm-2835: Pick the closest clock rate +- Bluetooth: cmtp: fix possible panic when cmtp_init_sockets() fails +- drm/rockchip: dsi: Reconfigure hardware on resume() +- drm/rockchip: dsi: Disable PLL clock on bind error +- drm/rockchip: dsi: Hold pm-runtime across bind/unbind +- drm/rockchip: dsi: Fix unbalanced clock on probe error +- drm/panel: innolux-p079zca: Delete panel on attach() failure +- drm/panel: kingdisplay-kd097d04: Delete panel on attach() failure +- drm: fix null-ptr-deref in drm_dev_init_release() +- drm/bridge: display-connector: fix an uninitialized pointer in probe() +- Bluetooth: L2CAP: Fix not initializing sk_peer_pid +- drm/ttm: Put BO in its memory manager's lru list +- shmem: fix a race between shmem_unused_huge_shrink and shmem_evict_inode +- mm/page_alloc.c: do not warn allocation failure on zone DMA if no managed pages +- dma/pool: create dma atomic pool only if dma zone has managed pages +- mm_zone: add function to check if managed dma zone exists +- PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller +- dma_fence_array: Fix PENDING_ERROR leak in dma_fence_array_signaled() +- gpu: host1x: Add back arm_iommu_detach_device() +- iommu/io-pgtable-arm-v7s: Add error handle for page table allocation failure +- lkdtm: Fix content of section containing lkdtm_rodata_do_nothing() +- iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs +- can: softing_cs: softingcs_probe(): fix memleak on registration failure +- media: cec-pin: fix interrupt en/disable handling +- media: stk1160: fix control-message timeouts +- media: pvrusb2: fix control-message timeouts +- media: redrat3: fix control-message timeouts +- media: dib0700: fix undefined behavior in tuner shutdown +- media: s2255: fix control-message timeouts +- media: cpia2: fix control-message timeouts +- media: em28xx: fix control-message timeouts +- media: mceusb: fix control-message timeouts +- media: flexcop-usb: fix control-message timeouts +- media: v4l2-ioctl.c: readbuffers depends on V4L2_CAP_READWRITE +- rtc: cmos: take rtc_lock while reading from CMOS +- tools/nolibc: fix incorrect truncation of exit code +- tools/nolibc: i386: fix initial stack alignment +- tools/nolibc: x86-64: Fix startup code bug +- x86/gpu: Reserve stolen memory for first integrated Intel GPU +- mtd: rawnand: davinci: Rewrite function description +- mtd: rawnand: davinci: Avoid duplicated page read +- mtd: rawnand: davinci: Don't calculate ECC when reading page +- mtd: Fixed breaking list in __mtd_del_partition. +- mtd: rawnand: gpmi: Remove explicit default gpmi clock setting for i.MX6 +- mtd: rawnand: gpmi: Add ERR007117 protection for nfc_apply_timings +- nfc: llcp: fix NULL error pointer dereference on sendmsg() after failed bind() +- HID: wacom: Avoid using stale array indicies to read contact count +- HID: wacom: Ignore the confidence flag when a touch is removed +- HID: wacom: Reset expected and received contact counts at the same time +- HID: uhid: Fix worker destroying device without any protection +- KVM: VMX: switch blocked_vcpu_on_cpu_lock to raw spinlock + +* Sun Apr 24 2022 Zheng Zengkai - 5.10.0-83.0.0.39 +- hugetlb: Add huge page alloced limit +- kfence: parse param before alloc kfence_pool +- sysctl: Modify sysctl_overload_detect_period minimum to 100ms +- ax25: Fix NULL pointer dereferences in ax25 timers +- ax25: fix NPD bug in ax25_disconnect +- ax25: Fix NULL pointer dereference in ax25_kill_by_device +- ax25: improve the incomplete fix to avoid UAF and NPD bugs +- arm64: clear_page() shouldn't use DC ZVA when DCZID_EL0.DZP == 1 +- mm: gup: fix potential pgmap refcnt leak in __gup_device_huge() +- mtd: phram: Fix error return code in phram_setup() + +* Fri Apr 22 2022 Zheng Zengkai - 5.10.0-82.0.0.38 +- scsi: hisi_sas: Limit users changing debugfs BIST count value +- netfilter: nf_tables: initialize registers in nft_do_chain() +- sched: Fix yet more sched_fork() races +- USB: gadget: validate interface OS descriptor requests +- usb: gadget: don't release an existing dev->buf +- usb: gadget: clear related members when goto fail +- usb: gadget: rndis: check size of RNDIS_MSG_SET command +- locking/csd_lock: Add boot parameter for controlling CSD lock debugging +- mm/mempolicy: fix a race between offset_il_node and mpol_rebind_task +- PCI: fix kabi change in struct pci_dev +- PCI/RCEC: Fix RCiEP device to RCEC association +- PCI/AER: Add RCEC AER error injection support +- PCI/PME: Add pcie_walk_rcec() to RCEC PME handling +- PCI/AER: Add pcie_walk_rcec() to RCEC AER handling +- PCI/ERR: Recover from RCiEP AER errors +- PCI/ERR: Add pcie_link_rcec() to associate RCiEPs +- PCI/ERR: Recover from RCEC AER errors +- PCI/ERR: Clear AER status only when we control AER +- PCI/ERR: Add pci_walk_bridge() to pcie_do_recovery() +- PCI/ERR: Avoid negated conditional for clarity +- PCI/ERR: Use "bridge" for clarity in pcie_do_recovery() +- PCI/ERR: Simplify by computing pci_pcie_type() once +- PCI/ERR: Simplify by using pci_upstream_bridge() +- PCI/ERR: Rename reset_link() to reset_subordinates() +- PCI/ERR: Cache RCEC EA Capability offset in pci_init_capabilities() +- PCI/ERR: Bind RCEC devices to the Root Port driver +- PCI/AER: Write AER Capability only when we control it +- af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register + +* Tue Apr 19 2022 Zheng Zengkai - 5.10.0-81.0.0.37 +- SUNRPC: Ensure we flush any closed sockets before xs_xprt_free() +- scsi: hisi_sas: Use autosuspend for the host controller +- scsi: libsas: Keep host active while processing events +- scsi: hisi_sas: Keep controller active between ISR of phyup and the event being processed +- scsi: libsas: Defer works of new phys during suspend +- scsi: libsas: Refactor sas_queue_deferred_work() +- scsi: libsas: Add flag SAS_HA_RESUMING +- scsi: libsas: Resume host while sending SMP I/Os +- scsi: hisi_sas: Add more logs for runtime suspend/resume +- scsi: libsas: Insert PORTE_BROADCAST_RCVD event for resuming host +- scsi: mvsas: Add spin_lock/unlock() to protect asd_sas_port->phy_list +- scsi: hisi_sas: Fix some issues related to asd_sas_port->phy_list +- scsi: libsas: Add spin_lock/unlock() to protect asd_sas_port->phy_list +- scsi: block: pm: Always set request queue runtime active in blk_post_runtime_resume() +- scsi: Revert "scsi: hisi_sas: Filter out new PHY up events during suspend" +- scsi: libsas: Don't always drain event workqueue for HA resume +- scsi: hisi_sas: Wait for phyup in hisi_sas_control_phy() +- scsi: hisi_sas: Initialise devices in .slave_alloc callback +- can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path +- drivers: hamradio: 6pack: fix UAF bug caused by mod_timer() +- hamradio: remove needs_free_netdev to avoid UAF +- hamradio: defer 6pack kfree after unregister_netdev +- mm: page_counter: mitigate consequences of a page_counter underflow +- nbd: fix possible overflow on 'first_minor' in nbd_dev_add() +- io_uring: don't keep looping for more events if we can't flush overflow +- kfence: Fix wrong memblock_free when enable dynamic +- hugetlbfs: fix a truncation issue in hugepages parameter +- spi: hisi-kunpeng: Fix the debugfs directory name incorrect +- spi: hisi-kunpeng: Add debugfs support +- xen/netfront: react properly to failing gnttab_end_foreign_access_ref() +- xen/gnttab: fix gnttab_end_foreign_access() without page specified +- xen/pvcalls: use alloc/free_pages_exact() +- xen/9p: use alloc/free_pages_exact() +- xen: remove gnttab_query_foreign_access() +- xen/gntalloc: don't use gnttab_query_foreign_access() +- xen/scsifront: don't use gnttab_query_foreign_access() for mapped status +- xen/netfront: don't use gnttab_query_foreign_access() for mapped status +- xen/blkfront: don't use gnttab_query_foreign_access() for mapped status +- xen/grant-table: add gnttab_try_end_foreign_access() +- xen/xenbus: don't let xenbus_grant_ring() remove grants in error case +- net: sched: fix use-after-free in tc_new_tfilter() +- mtd: fixup CFI on ixp4xx +- powerpc/pseries: Get entry and uaccess flush required bits from H_GET_CPU_CHARACTERISTICS +- ALSA: hda/realtek: Re-order quirk entries for Lenovo +- ALSA: hda/realtek: Add quirk for Legion Y9000X 2020 +- ALSA: hda: ALC287: Add Lenovo IdeaPad Slim 9i 14ITL5 speaker quirk +- ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master after reboot from Windows +- ALSA: hda/realtek: Add speaker fixup for some Yoga 15ITL5 devices +- KVM: x86: remove PMU FIXED_CTR3 from msrs_to_save_all +- firmware: qemu_fw_cfg: fix kobject leak in probe error path +- firmware: qemu_fw_cfg: fix NULL-pointer deref on duplicate entries +- firmware: qemu_fw_cfg: fix sysfs information leak +- rtlwifi: rtl8192cu: Fix WARNING when calling local_irq_restore() with interrupts enabled +- media: uvcvideo: fix division by zero at stream start +- video: vga16fb: Only probe for EGA and VGA 16 color graphic cards +- 9p: only copy valid iattrs in 9P2000.L setattr implementation +- KVM: s390: Clarify SIGP orders versus STOP/RESTART +- KVM: x86: Register Processor Trace interrupt hook iff PT enabled in guest +- perf: Protect perf_guest_cbs with RCU +- remoteproc: qcom: pil_info: Don't memcpy_toio more than is provided +- orangefs: Fix the size of a memory allocation in orangefs_bufmap_alloc() +- devtmpfs regression fix: reconfigure on each mount +- kbuild: Add $(KBUILD_HOSTLDFLAGS) to 'has_libelf' test +- staging: greybus: fix stack size warning with UBSAN +- drm/i915: Avoid bitwise vs logical OR warning in snb_wm_latency_quirk() +- staging: wlan-ng: Avoid bitwise vs logical OR warning in hfa384x_usb_throttlefn() +- media: Revert "media: uvcvideo: Set unique vdev name based in type" +- random: fix crash on multiple early calls to add_bootloader_randomness() +- random: fix data race on crng init time +- random: fix data race on crng_node_pool +- can: gs_usb: gs_can_start_xmit(): zero-initialize hf->{flags,reserved} +- can: isotp: convert struct tpcon::{idx,len} to unsigned int +- can: gs_usb: fix use of uninitialized variable, detach device on reception of invalid USB data +- mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe() +- veth: Do not record rx queue hint in veth_xmit +- mmc: sdhci-pci: Add PCI ID for Intel ADL +- ath11k: Fix buffer overflow when scanning with extraie +- USB: Fix "slab-out-of-bounds Write" bug in usb_hcd_poll_rh_status +- USB: core: Fix bug in resuming hub's handling of wakeup requests +- ARM: dts: exynos: Fix BCM4330 Bluetooth reset polarity in I9100 +- Bluetooth: bfusb: fix division by zero in send path +- Bluetooth: btusb: Add support for Foxconn QCA 0xe0d0 +- Bluetooth: btusb: Add support for Foxconn MT7922A +- Bluetooth: btusb: Add two more Bluetooth parts for WCN6855 +- Bluetooth: btusb: fix memory leak in btusb_mtk_submit_wmt_recv_urb() +- workqueue: Fix unbind_workers() VS wq_worker_running() race + +* Wed Apr 13 2022 Zheng Zengkai - 5.10.0-80.0.0.36 +- USB: gadget: validate endpoint index for xilinx udc +- sr9700: sanity check for packet length +- Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE"" +- swiotlb: fix info leak with DMA_FROM_DEVICE + +* Fri Apr 08 2022 Zheng Zengkai - 5.10.0-79.0.0.35 +- sched/fair: Add qos_throttle_list node in struct cfs_rq +- ARM: 9142/1: kasan: work around LPAE build warning +- mm: kfence: fix missing objcg housekeeping for SLAB +- cgroup: Export cgroup.kill from cgroupv2 to cgroupv1 +- cgroup: introduce cgroup.kill +- memcg: Fix inconsistent oom event behavior for OOM_MEMCG_KILL +- memcg: Export memory.events and memory.events.local from cgroupv2 to cgroupv1 +- net: hns3: fix phy can not link up when autoneg off and reset +- net: hns3: add NULL pointer check for hns3_set/get_ringparam() +- net: hns3: add netdev reset check for hns3_set_tunable() +- net: hns3: clean residual vf config after disable sriov +- net: hns3: add max order judgement for tx spare buffer +- net: hns3: fix ethtool tx copybreak buf size indicating not aligned issue +- net: hns3: refine the process when PF set VF VLAN +- net: hns3: add vlan list lock to protect vlan list +- net: hns3: fix port base vlan add fail when concurrent with reset +- net: hns3: fix bug when PF set the duplicate MAC address for VFs +- net: hns3: handle empty unknown interrupt for VF +- net: hns3: fix race condition in debugfs +- arm64: cpu_park: Move into stand-alone file +- arm64: quick_kexec: Move to stand-alone file +- jffs2: fix NULL pointer dereference in jffs2_scan_medium +- rseq, ptrace: Add PTRACE_GET_RSEQ_CONFIGURATION request +- config: enable CONFIG_MEMCG_MEMFS_INFO by default +- mm/memcg_memfs_info: show files that having pages charged in mem_cgroup +- share_pool: don't trace the invalid spa address +- mm: share_pool: adjust sp_alloc behavior when coredump +- mm: share_pool: adjust sp_make_share_k2u behavior when coredump + +* Wed Mar 30 2022 Zheng Zengkai - 5.10.0-78.0.0.34 +- net/spnic: Remove spnic driver. +- SCSI: spfc: remove SPFC driver +- net: snmp: inline snmp_get_cpu_field() +- block-map: add __GFP_ZERO flag for alloc_page in function bio_copy_kern +- esp: Fix possible buffer overflow in ESP transformation +- sock: remove one redundant SKB_FRAG_PAGE_ORDER macro +- kabi: only reserve flags on X86_64 and ARM64 +- mm/dynamic_hugetlb: only compile PG_pool on X86_64 and ARM64 +- kabi: fix kabi broken in struct fuse_args +- fuse: fix pipe buffer lifetime for direct_io +- vfs: fs_context: fix up param length parsing in legacy_parse_param +- NFS: LOOKUP_DIRECTORY is also ok with symlinks +- blk-mq: fix potential uaf for 'queue_hw_ctx' +- blk-mq: add exception handling when srcu->sda alloc failed +- mm/dynamic_hugetlb: initialize subpages before merging +- mm/dynamic_hugetlb: set/clear HPageFreed +- mm/dynamic_hugetlb: only support to merge 2M dynamicly +- mm/dynamic_hugetlb: hold the lock until pages back to hugetlb +- mm/dynamic_hugetlb: use mem_cgroup_force_empty to reclaim pages +- mm/dynamic_hugetlb: check page using check_new_page +- mm/dynamic_hugetlb: use pfn to traverse subpages +- mm/dynamic_hugetlb: improve the initialization of huge pages +- mm/dynamic_hugetlb: check free_pages_prepares when split pages +- irqchip/gic-phytium-2500: Fix issue that interrupts are concentrated in one cpu +- scsi: ses: Fix crash caused by kfree an invalid pointer +- arm64: kexec: Fix missing error code 'ret' warning in load_other_segments() +- ovl: fix incorrect extent info in metacopy case +- perf sched: Cast PTHREAD_STACK_MIN to int as it may turn into sysconf(__SC_THREAD_STACK_MIN_VALUE) +- arm64: remove page granularity limitation from KFENCE +- Revert "arm64: remove page granularity limitation from KFENCE" +- kfence: Fix wrong size of alloc_covered when enable dynamic +- audit: improve audit queue handling when "audit=1" on cmdline +- Revert "audit: bugfix for infinite loop when flush the hold queue" +- arm/arm64: paravirt: Remove GPL from pv_ops export +- ima: bugfix for digest lists importing +- net/hinic: Fix call trace when the rx_buff module parameter is grater than 2 +- net/hinic: Fix null pointer dereference in hinic_physical_port_id +- net/hinic: Fix double free issue +- eulerfs: remove redundant calculations +- scsi: spfc: Remove redundant mask and spinlock +- xfs: order CIL checkpoint start records +- xfs: attach iclog callbacks in xlog_cil_set_ctx_write_state() +- xfs: factor out log write ordering from xlog_cil_push_work() +- xfs: pass a CIL context to xlog_write() +- xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks +- xfs: move xlog_commit_record to xfs_log_cil.c +- xfs: log head and tail aren't reliable during shutdown +- xfs: don't run shutdown callbacks on active iclogs +- xfs: separate out log shutdown callback processing +- xfs: rework xlog_state_do_callback() +- xfs: make forced shutdown processing atomic +- xfs: convert log flags to an operational state field +- xfs: move recovery needed state updates to xfs_log_mount_finish +- xfs: XLOG_STATE_IOERROR must die +- xfs: convert XLOG_FORCED_SHUTDOWN() to xlog_is_shutdown() +- Revert "nfs: ensure correct writeback errors are returned on close()" +- fuse: support SB_NOSEC flag to improve write performance +- fuse: add a flag FUSE_OPEN_KILL_SUIDGID for open() request +- fuse: don't send ATTR_MODE to kill suid/sgid for handle_killpriv_v2 +- fuse: setattr should set FATTR_KILL_SUIDGID +- fuse: set FUSE_WRITE_KILL_SUIDGID in cached write path +- fuse: rename FUSE_WRITE_KILL_PRIV to FUSE_WRITE_KILL_SUIDGID +- fuse: introduce the notion of FUSE_HANDLE_KILLPRIV_V2 +- xfs: remove dead stale buf unpin handling code +- xfs: hold buffer across unpin and potential shutdown processing +- xfs: fix an ABBA deadlock in xfs_rename +- Revert "efi/libstub: arm64: Relax 2M alignment again for relocatable kernels" +- crypto: hisilicon/qm - fix memset during queues clearing +- crypto: hisilicon/qm - modify device status check parameter +- crypto: hisilicon/qm - remove redundant cache writeback +- crypto: hisilicon/qm - disable queue when 'CQ' error +- crypto: hisilicon/qm - reset function if event queue overflows +- crypto: hisilicon/qm - use request_threaded_irq instead +- crypto: hisilicon/qm - modify the handling method after abnormal interruption +- crypto: hisilicon/qm - code movement +- crypto: hisilicon/qm - remove unnecessary device memory reset +- crypto: hisilicon/qm - fix deadlock for remove driver +- crypto: hisilicon/sec - add some comments for soft fallback +- crypto: hisilicon/sec - fix the aead software fallback for engine +- blk-throttle: Set BIO_THROTTLED when bio has been throttled +- bpf, selftests: Add ringbuf memory type confusion test +- bpf/selftests: Test bpf_d_path on rdonly_mem. +- bpf, selftests: Add various ringbuf tests with invalid offset +- selftests/bpf: Add verifier test for PTR_TO_MEM spill +- bpf: Fix ringbuf memory type confusion when passing to helpers +- bpf: Fix out of bounds access for ringbuf helpers +- bpf: Generally fix helper register offset check +- bpf: Mark PTR_TO_FUNC register initially with zero offset +- bpf: Generalize check_ctx_reg for reuse with other types +- bpf/selftests: Test PTR_TO_RDONLY_MEM +- bpf: Add MEM_RDONLY for helper args that are pointers to rdonly mem. +- bpf: Make per_cpu_ptr return rdonly PTR_TO_MEM. +- bpf: Convert PTR_TO_MEM_OR_NULL to composable types. +- bpf: Introduce MEM_RDONLY flag +- bpf: Replace PTR_TO_XXX_OR_NULL with PTR_TO_XXX | PTR_MAYBE_NULL +- bpf: Replace RET_XXX_OR_NULL with RET_XXX | PTR_MAYBE_NULL +- bpf: Replace ARG_XXX_OR_NULL with ARG_XXX | PTR_MAYBE_NULL +- bpf: Introduce composable reg, ret and arg types. +- bpf: Fix out of bounds access from invalid *_or_null type verification +- blk-mq: decrease pending_queues when it expires +- blk-mq: add debugfs to print information for blk_mq_tag_set +- blk-mq: allow hardware queue to get more tag while sharing a tag set +- bfq: fix use-after-free in bfq_dispatch_request +- livepatch/core: Validate function old_name before 'klp_init_object_loaded' +- arm64: config: enable CONFIG_ARM64_UCE_KERNEL_RECOVERY +- arm64: ras: copy_from_user scenario support uce kernel recovery +- efi: Fix efi_find_mirror redefine in x86 +- sched: Fix sleeping in atomic context at cpu_qos_write() +- vfio/iommu_type1: Fix the logic of updating num_non_hwdbm_domains +- iommu: Stop tracking the dirty log status of iommu_domain +- iommu/smmuv3: Remove the S1 mapping restriction of dirty log +- timekeeping: Avoiding false sharing in field access of tk_core +- config: close CONFIG_ARM64_ILP32 +- arm64: replace is_compat_task() with is_ilp32_compat_task() in TASK_SIZE_MAX +- arch_topology: Fix missing clear cluster_cpumask in remove_cpu_topology() +- kabi: fix split error of kABI reference checking tool +- ipv6: blackhole_netdev needs snmp6 counters +- net: avoid quadratic behavior in netdev_wait_allrefs_any() +- net: allow out-of-order netdev unregistration +- net: transition netdev reg state earlier in run_todo +- ipv6: give an IPv6 dev to blackhole_netdev +- configs: disable CONFIG_RODATA_FULL_DEFAULT_ENABLED +- dm rq: don't queue request to blk-mq during DM suspend +- rcu/nocb: Fix missed nocb_timer requeue +- dm: fix mempool NULL pointer race when completing IO +- blk-mq: Improve performance of non-mq IO schedulers with multiple HW queues +- Revert "blk-mq, elevator: Count requests per hctx to improve performance" +- lib/iov_iter: initialize "flags" in new pipe_buffer +- sched: enable CONFIG_QOS_SCHED on arm64 +- sched/qos: Remove dependency CONFIG_x86 +- ubifs: rename_whiteout: correct old_dir size computing +- configs: update the defconfigs to support 9P +- Revert "dm space maps: don't reset space map allocation cursor when committing" +- drivers: hooks: add bonding driver vendor hooks +- etmem: etmem scan module Replace WARN_ONCE() with debug_printk for "nothing read" +- skmsg: Teach sk_psock_verdict_apply() to return errors +- netfilter: nf_tables_offload: incorrect flow offload action array size +- kfence: make test case compatible with run time set sample interval +- kfence: Add a module parameter to adjust kfence objects +- f2fs: fix to do sanity check in is_alive() +- f2fs: fix to avoid panic in is_alive() if metadata is inconsistent +- f2fs: fix to do sanity check on inode type during garbage collection +- iommu/io-pgtable-arm: Fix attach device failed when smmuv3 supports HTTU +- configs: enable CONFIG_INTEL_IDXD +- ext4: convert DIV_ROUND_UP to DIV_ROUND_UP_ULL + +* Wed Feb 23 2022 Zheng Zengkai - 5.10.0-59.0.0.33 +- bonding: force carrier update when releasing slave +- ext4: fix underflow in ext4_max_bitmap_size() +- dm: make sure dm_table is binded before queue request +- tty/amba-pl011: Call acpi_put_table() to fix memory leak +- config: enable MEMORY_RELIABLE by default +- mm: add support for page cache use reliable memory +- shmem: Introduce shmem reliable +- mm: Reserve field in mm_struct for memory reliable +- mm: Introduce reliable flag for user task +- meminfo: Show reliable memory info +- mm: Introduce memory reliable +- efi: Disable mirror feature if kernelcore is not specified +- mm: Demote warning message in vmemmap_verify() to debug level +- mm: Ratelimited mirrored memory related warning messages +- efi: Find mirrored memory ranges for arm64 +- efi: Make efi_find_mirror() public +- arm64: efi: Add fake memory support +- efi: Make efi_print_memmap() public + +* Wed Feb 23 2022 Zheng Zengkai - 5.10.0-58.0.0.32 +- arm64: openeuler_defconfig: Enable config for ultrasoc driver +- drivers/coresight: Add Ultrasoc System Memory Buffer driver +- coresight: etm4x: Modify core-commit to avoid HiSilicon ETM overflow +- RAS: Report ARM processor information to userspace +- configs: enable CONFIG_NTB_INTEL +- udf: Restore i_lenAlloc when inode expansion fails +- udf: Fix NULL ptr deref when converting from inline format +- rcu: Do not report strict GPs for outgoing CPUs +- rcu-tasks: Make ksoftirqd provide RCU Tasks quiescent states +- entry: Explicitly flush pending rcuog wakeup before last rescheduling point +- rcu/nocb: Trigger self-IPI on late deferred wake up before user resume +- irq_work: Cleanup +- powerpc/process, kasan: Silence KASAN warnings in __get_wchan() +- net/spnic: Reduce the timeout of the channel between driver and firmware +- net/spnic: Fix an error when netdev failed to link up +- net/spnic: Fix xor checksum error when sending a non 4B-aligned message to firmware +- net/spnic: Fix ethtool loopback command failure +- net/spnic: Fix array bounds error in ethtool get_link_ksettings +- x86/tsc: Make cur->adjusted values in package#1 to be the same +- ata: Add support for PxSCT.LPM set based on actual LPM capability +- ata: Add support for disabling PhyRdy Change Interrupt based on actual LPM capability +- ahci: Fix some bugs like plugin support and sata link stability when user enable ahci RTD3 +- EHCI: Clear wakeup signal locked in S0 state when device plug in +- XHCI: Fix some device identify fail when enable xHCI runtime suspend +- rtc: Fix set RTC time delay 500ms on some Zhaoxin SOCs + +* Tue Feb 22 2022 Zheng Zengkai - 5.10.0-57.0.0.31 +- yam: fix a memory leak in yam_siocdevprivate() +- Phytium/S2500: kdump: Avoid vmcore saving failure across multi-socket +- irqchip/irq-gic-phytium-2500: Add support for kdump +- ipmi_si: Phytium S2500 workaround for MMIO-based IPMI +- iommu: support phytium ft2000plus and S2500 iommu function +- sw64: vfio: select VFIO_IOMMU_TYPE1 as default +- sw64: tty: add serial driver for sw64 +- sw64: spi: add driver for SPI controller +- sw64: add hypervisor based RTC on SW64 systems +- sw64: kgdb: add support for sw64 +- sw64: LPC: add driver for LPC controller +- sw64: iommu: fix a bug in calling 'alloc_pages_node' +- sw64: iommu: add iommu driver for sw64 +- sw64: gpu/drm: fix kernel crash caused by drm driver +- sw64: radeon: correct low-level mmio memset direct calls +- sw64: gpu/drm: solve driver load cause kernel crash +- amdgpu: enable KFD on SW64 systems +- sw64: megaraid: fix kernel panic caused by accessing an illegal address +- sw64: i2c: add i2c driver based designware for sw64 +- sw64: efi: add SMBIOS/DMI and EFI runtime driver codes +- sw64: gpio: add sunway builtin gpio driver +- sw64: acpi: add initial acpi infrastructure support +- sw64: add perf userspace tool support for sw64 +- tools uapi: fix sw64 support +- sw64: kvm: add definitions for kvm +- sw64: moduleparam: fix sw64 compile failure +- sw64: kdump/kexec: add KEXEC_ARCH_SW_64 definition +- sw64: add AUDIT_ARCH_SW64 definition +- sw64: ftrace: add sw64 support to recordmcount +- sw64: add sw_64 support to buildtar, mkdebian and builddeb +- sw64: add basic support for sw64 +- mm/pin_mem: add invalid check for pinmemory boot parameter +- livepatch/x86: Fix incorrect use of 'strncpy' +- livepatch: Fix issues in klp_mem_{prepare,recycle} +- livepatch: Introduce 'arch_klp_save_old_code' +- livepatch: Reduce duplicated arch_klp_mem_{prepare,recycle} +- livepatch: Move 'klp_func_list' related codes out of 'arch' +- livepatch: Introduce 'struct arch_klp_data' +- livepatch/arm64: Uniform 'old_func' field in struct klp_func_node +- tpm_tis_spi: set default probe function if device id not match +- deconfig: intel ice-lake missing config enable +- selftests/sgx: Fix Q1 and Q2 calculation in sigstruct.c +- selftests/sgx: remove checks for file execute permissions +- selftests/sgx: Refine the test enclave to have storage +- selftests/sgx: Add EXPECT_EEXIT() macro +- selftests/sgx: Dump enclave memory map +- selftests/sgx: Migrate to kselftest harness +- selftests/sgx: Rename 'eenter' and 'sgx_call_vdso' +- x86/sgx: Expose SGX architectural definitions to the kernel +- selftests/sgx: Use getauxval() to simplify test code +- selftests/sgx: Improve error detection and messages +- selftests/sgx: Use a statically generated 3072-bit RSA key +- x86/sgx: Remove unnecessary kmap() from sgx_ioc_enclave_init() +- x86/sgx: Add a basic NUMA allocation scheme to sgx_alloc_epc_page() +- x86/sgx: Replace section->init_laundry_list with sgx_dirty_page_list +- x86/sgx: Maintain encl->refcount for each encl->mm_list entry +- x86/sgx: Drop racy follow_pfn() check +- x86/sgx: Fix the return type of sgx_init() +- x86/sgx: Return -EINVAL on a zero length buffer in sgx_ioc_enclave_add_pages() +- x86/sgx: Fix sgx_ioc_enclave_provision() kernel-doc +- x86/sgx: Return -ERESTARTSYS in sgx_ioc_enclave_add_pages() +- x86/sgx: Clarify 'laundry_list' locking +- x86/sgx: Update MAINTAINERS +- Documentation/x86: Document SGX kernel architecture +- x86/sgx: Add ptrace() support for the SGX driver +- x86/sgx: Add a page reclaimer +- selftests/x86: Add a selftest for SGX +- x86/vdso: Implement a vDSO for Intel SGX enclave call +- x86/traps: Attempt to fixup exceptions in vDSO before signaling +- x86/fault: Add a helper function to sanitize error code +- x86/vdso: Add support for exception fixup in vDSO functions +- x86/sgx: Add SGX_IOC_ENCLAVE_PROVISION +- x86/sgx: Add SGX_IOC_ENCLAVE_INIT +- x86/sgx: Add SGX_IOC_ENCLAVE_ADD_PAGES +- x86/sgx: Add SGX_IOC_ENCLAVE_CREATE +- x86/sgx: Add an SGX misc driver interface +- mm: Add 'mprotect' hook to struct vm_operations_struct +- x86/sgx: Add SGX page allocator functions +- x86/cpu/intel: Add a nosgx kernel parameter +- x86/cpu/intel: Detect SGX support +- x86/sgx: Initialize metadata for Enclave Page Cache (EPC) sections +- x86/{cpufeatures,msr}: Add Intel SGX Launch Control hardware bits +- x86/cpufeatures: Add Intel SGX hardware bits +- x86/sgx: Add wrappers for ENCLS functions +- x86/sgx: Add SGX architectural data structures +- configfs: fix a race in configfs_{,un}register_subsystem() +- fs/dirty_pages: fix wrong lock for inode list in super_block +- ACPI: irq: Prevent unregistering of GIC SGIs +- PM: ACPI: Refresh wakeup device power configuration every time +- ACPICA: Interpreter: fix memory leak by using existing buffer + +* Thu Feb 17 2022 Zheng Zengkai - 5.10.0-56.0.0.30 +- configs: enable CONFIG_INTEGRITY_PLATFORM_KEYRING and CONFIG_LOAD_UEFI_KEYS +- tipc: improve size validations for received domain records +- cgroup-v1: Require capabilities to set release_agent +- NFSv4: nfs_atomic_open() can race when looking up a non-regular file +- NFSv4: Handle case where the lookup of a directory fails +- cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug +- block: update io_ticks when io hang +- livepatch: Fix missing unlock on error in klp_enable_patch() +- livepatch: Fix kobject refcount bug on klp_init_patch_early failure path + +* Fri Feb 11 2022 Zheng Zengkai - 5.10.0-55.0.0.29 +- kabi: cleanup config entries of kabi +- kabi: fix build error when CONFIG_KABI_RESERVE=n +- kabi:crypto: reserve space for RSASSA-PSS style certificates +- mm/page_alloc: use accumulated load when building node fallback list +- mm/page_alloc: print node fallback order +- arm64: openeuler_defconfig: Enable Kunpeng related configs + +* Thu Feb 10 2022 Zheng Zengkai - 5.10.0-54.0.0.28 +- rcu: Make TASKS_TRACE_RCU select IRQ_WORK +- x86/kdump: make crash kernel boot faster +- mm, hwpoison: fix condition in free hugetlb page path +- x509: Detect sm2 keys by their parameters OID +- mm/page_alloc.c: fix 'zone_id' may be used uninitialized in this function warning +- sysctl: returns -EINVAL when a negative value is passed to proc_doulongvec_minmax +- arm64: fix address limit problem with TASK_SIZE_MAX +- arm64: mark __system_matches_cap as __maybe_unused +- arm64: Avoid premature usercopy failure +- arm64: uaccess: remove vestigal UAO support +- arm64: uaccess: remove redundant PAN toggling +- arm64: uaccess: remove addr_limit_user_check() +- arm64: uaccess: remove set_fs() +- arm64: uaccess cleanup macro naming +- arm64: uaccess: split user/kernel routines +- arm64: uaccess: refactor __{get,put}_user +- arm64: uaccess: simplify __copy_user_flushcache() +- arm64: uaccess: rename privileged uaccess routines +- arm64: sdei: explicitly simulate PAN/UAO entry +- arm64: sdei: move uaccess logic to arch/arm64/ +- Revert "arm64: fix current_thread_info()->addr_limit setup" +- Revert "arm64: fix USER_DS definition problem in non-compat mode" +- Revert "arm64: Avoid premature usercopy failure" +- arm64: alternatives: Move length validation in alternative_{insn, endif} +- arm64: alternatives: Split up alternative.h +- arm64: uaccess: move uao_* alternatives to asm-uaccess.h +- Revert "arm64: alternatives: Move length validation in alternative_{insn, endif}" +- arm64: add C wrappers for SET_PSTATE_*() +- arm64: ensure ERET from kthread is illegal + +* Sat Jan 29 2022 Zheng Zengkai - 5.10.0-53.0.0.27 +- livepatch/core: Fix where module get and put in different macro +- livepatch/core: Remove redundant klp_free_objects_mod_limited +- livepatch/core: Fix reference count issues +- arm64/mpam: realign step entry when traversing rmid_transform +- dt-bindings: mpam: refactor device tree node structure +- arm64/mpam: refactor device tree structure to support multiple devices +- arm64/mpam: fix __mpam_device_create() section mismatch error +- block, bfq: don't move oom_bfqq +- fget: clarify and improve __fget_files() implementation +- KABI: add reserve space for thread_info struct +- kabi: Reserve syscall entries for kabi compatibility +- perf tools: Update powerpc's syscall.tbl copy from the kernel sources + +* Sat Mar 19 2022 Liu Yuntao - 5.10.0-52.0.0.26 +- Compress modules to xz format in kernel.spec, which reduces disk consumption. + +* Sat Jan 29 2022 Zheng Zengkai - 5.10.0-52.0.0.25 +- kabi: reserve space for arm64 SME in thread_struct +- KABI: KABI reservation for IMA namespace +- kabi: Reserve space for struct acpi_device_power +- kabi:fuse: reserve space for future expansion +- kabi: net: reserve space for some net subsystems related structure +- KABI: reserve space for struct input_dev +- KABI: reserve space for several i2c structures +- KABI: add reserve space for sched structures +- sched: move CPU field back into thread_info if THREAD_INFO_IN_TASK=y +- powerpc: add CPU field to struct thread_info +- s390: add CPU field to struct thread_info +- x86: add CPU field to struct thread_info +- arm64: add CPU field to struct thread_info +- powerpc: smp: remove hack to obtain offset of task_struct::cpu +- riscv: rely on core code to keep thread_info::cpu updated +- Input: zinitix - make sure the IRQ is allocated before it gets enabled +- ARM: dts: gpio-ranges property is now required +- ipv6: raw: check passed optlen before reading +- drm/amd/display: Added power down for DCN10 +- mISDN: change function names to avoid conflicts +- atlantic: Fix buff_ring OOB in aq_ring_rx_clean +- net: udp: fix alignment problem in udp4_seq_show() +- ip6_vti: initialize __ip6_tnl_parm struct in vti6_siocdevprivate +- scsi: libiscsi: Fix UAF in iscsi_conn_get_param()/iscsi_conn_teardown() +- usb: mtu3: fix interval value for intr and isoc +- ipv6: Do cleanup if attribute validation fails in multipath route +- ipv6: Continue processing multipath route even if gateway attribute is invalid +- power: bq25890: Enable continuous conversion for ADC at charging +- rndis_host: support Hytera digital radios +- power: reset: ltc2952: Fix use of floating point literals +- power: supply: core: Break capacity loop +- net: ena: Fix error handling when calculating max IO queues number +- net: ena: Fix undefined state when tx request id is out of bounds +- sch_qfq: prevent shift-out-of-bounds in qfq_init_qdisc +- batman-adv: mcast: don't send link-local multicast to mcast routers +- lwtunnel: Validate RTA_ENCAP_TYPE attribute length +- ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route +- ipv6: Check attribute length for RTA_GATEWAY in multipath route +- ipv4: Check attribute length for RTA_FLOW in multipath route +- ipv4: Check attribute length for RTA_GATEWAY in multipath route +- ftrace/samples: Add missing prototypes direct functions +- i40e: Fix incorrect netdev's real number of RX/TX queues +- i40e: Fix for displaying message regarding NVM version +- i40e: fix use-after-free in i40e_sync_filters_subtask() +- sfc: The RX page_ring is optional +- mac80211: initialize variable have_higher_than_11mbit +- RDMA/uverbs: Check for null return of kmalloc_array +- netrom: fix copying in user data in nr_setsockopt +- RDMA/core: Don't infoleak GRH fields +- iavf: Fix limit of total number of queues to active queues of VF +- i40e: Fix to not show opcode msg on unsuccessful VF MAC change +- ieee802154: atusb: fix uninit value in atusb_set_extended_addr +- tracing: Tag trace_percpu_buffer as a percpu pointer +- tracing: Fix check for trace_percpu_buffer validity in get_trace_buf() +- selftests: x86: fix [-Wstringop-overread] warn in test_process_vm_readv() +- f2fs: quota: fix potential deadlock +- bpf: Add kconfig knob for disabling unpriv bpf by default +- perf script: Fix CPU filtering of a script's switch events +- net: fix use-after-free in tw_timer_handler +- Input: spaceball - fix parsing of movement data packets +- Input: appletouch - initialize work before device registration +- scsi: vmw_pvscsi: Set residual data length conditionally +- binder: fix async_free_space accounting for empty parcels +- usb: mtu3: set interval of FS intr and isoc endpoint +- usb: mtu3: fix list_head check warning +- usb: mtu3: add memory barrier before set GPD's HWO +- usb: gadget: f_fs: Clear ffs_eventfd in ffs_data_clear. +- xhci: Fresco FL1100 controller should not have BROKEN_MSI quirk set. +- drm/amdgpu: add support for IP discovery gc_info table v2 +- drm/amdgpu: When the VCN(1.0) block is suspended, powergating is explicitly enabled +- uapi: fix linux/nfc.h userspace compilation errors +- nfc: uapi: use kernel size_t to fix user-space builds +- i2c: validate user data in compat ioctl +- fsl/fman: Fix missing put_device() call in fman_port_probe +- net/ncsi: check for error return from call to nla_put_u32 +- selftests/net: udpgso_bench_tx: fix dst ip argument +- net/mlx5e: Fix wrong features assignment in case of error +- ionic: Initialize the 'lif->dbid_inuse' bitmap +- igc: Fix TX timestamp support for non-MSI-X platforms +- net/smc: fix kernel panic caused by race of smc_sock +- net/smc: don't send CDC/LLC message if link not ready +- net/smc: improved fix wait on already cleared link +- NFC: st21nfca: Fix memory leak in device probe and remove +- net: lantiq_xrx200: fix statistics of received bytes +- net: ag71xx: Fix a potential double free in error handling paths +- net: usb: pegasus: Do not drop long Ethernet frames +- net/smc: fix using of uninitialized completions +- sctp: use call_rcu to free endpoint +- selftests: Calculate udpgso segment count without header adjustment +- udp: using datalen to cap ipv6 udp max gso segments +- net/mlx5e: Fix ICOSQ recovery flow for XSK +- net/mlx5e: Wrap the tx reporter dump callback to extract the sq +- net/mlx5: DR, Fix NULL vs IS_ERR checking in dr_domain_init_resources +- scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write() +- selinux: initialize proto variable in selinux_ip_postroute_compat() +- recordmcount.pl: fix typo in s390 mcount regex +- memblock: fix memblock_phys_alloc() section mismatch error +- platform/x86: apple-gmux: use resource_size() with res +- parisc: Clear stale IIR value on instruction access rights trap +- tomoyo: use hwight16() in tomoyo_domain_quota_is_ok() +- tomoyo: Check exceeded quota early in tomoyo_domain_quota_is_ok(). +- Input: i8042 - enable deferred probe quirk for ASUS UM325UA +- Input: i8042 - add deferred probe support +- fs/ntfs3: Add ntfs3 module in openeuler_defconfig +- fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile +- fs/ntfs3: Fix the issue from backport 5.15 to 5.10 +- fs/ntfs3: Add MAINTAINERS +- fs/ntfs3: Check for NULL pointers in ni_try_remove_attr_list +- fs/ntfs3: Refactor ntfs_read_mft +- fs/ntfs3: Refactor ni_parse_reparse +- fs/ntfs3: Refactor ntfs_create_inode +- fs/ntfs3: Refactor ntfs_readlink_hlp +- fs/ntfs3: Rework ntfs_utf16_to_nls +- fs/ntfs3: Fix memory leak if fill_super failed +- fs/ntfs3: Keep prealloc for all types of files +- fs/ntfs3: Remove unnecessary functions +- fs/ntfs3: Forbid FALLOC_FL_PUNCH_HOLE for normal files +- fs/ntfs3: Refactoring of ntfs_set_ea +- fs/ntfs3: Remove locked argument in ntfs_set_ea +- fs/ntfs3: Use available posix_acl_release instead of ntfs_posix_acl_release +- fs/ntfs3: Check for NULL if ATTR_EA_INFO is incorrect +- fs/ntfs3: Refactoring of ntfs_init_from_boot +- fs/ntfs3: Reject mount if boot's cluster size < media sector size +- fs/ntfs3: Refactoring lock in ntfs_init_acl +- fs/ntfs3: Change posix_acl_equiv_mode to posix_acl_update_mode +- fs/ntfs3: Pass flags to ntfs_set_ea in ntfs_set_acl_ex +- fs/ntfs3: Refactor ntfs_get_acl_ex for better readability +- fs/ntfs3: Move ni_lock_dir and ni_unlock into ntfs_create_inode +- fs/ntfs3: Fix logical error in ntfs_create_inode +- fs/ntfs3: Remove deprecated mount options nls +- fs/ntfs3: Remove a useless shadowing variable +- fs/ntfs3: Remove a useless test in 'indx_find()' +- fs/ntfs3: Add sync flag to ntfs_sb_write_run and al_update +- fs/ntfs3: Change max hardlinks limit to 4000 +- fs/ntfs3: Fix insertion of attr in ni_ins_attr_ext +- fs/ntfs3: Fix a memory leak on object opts +- Doc/fs/ntfs3: Fix rst format and make it cleaner +- fs/ntfs3: Initiliaze sb blocksize only in one place + refactor +- fs/ntfs3: Initialize pointer before use place in fill_super +- fs/ntfs3: Remove tmp pointer upcase in fill_super +- fs/ntfs3: Remove tmp pointer bd_inode in fill_super +- fs/ntfs3: Remove tmp var is_ro in ntfs_fill_super +- fs/ntfs3: Use sb instead of sbi->sb in fill_super +- fs/ntfs3: Remove unnecessary variable loading in fill_super +- fs/ntfs3: Return straight without goto in fill_super +- fs/ntfs3: Remove impossible fault condition in fill_super +- fs/ntfs3: Change EINVAL to ENOMEM when d_make_root fails +- fs/ntfs3: Fix wrong error message $Logfile -> $UpCase +- fs/ntfs3: Use min/max macros instated of ternary operators +- fs/ntfs3: Use clamp/max macros instead of comparisons +- fs/ntfs3: Remove always false condition check +- fs/ntfs3: Fix ntfs_look_for_free_space() does only report -ENOSPC +- fs/ntfs3: Remove tabs before spaces from comment +- fs/ntfs3: Remove braces from single statment block +- fs/ntfs3: Place Comparisons constant right side of the test +- fs/ntfs3: Remove '+' before constant in ni_insert_resident() +- fs/ntfs3: Always use binary search with entry search +- fs/ntfs3: Make binary search to search smaller chunks in beginning +- fs/ntfs3: Limit binary search table size +- fs/ntfs3: Remove unneeded header files from c files +- fs/ntfs3: Change right headers to lznt.c +- fs/ntfs3: Change right headers to upcase.c +- fs/ntfs3: Change right headers to bitfunc.c +- fs/ntfs3: Add missing header and guards to lib/ headers +- fs/ntfs3: Add missing headers and forward declarations to ntfs_fs.h +- fs/ntfs3: Add missing header files to ntfs.h +- fs/ntfs3. Add forward declarations for structs to debug.h +- fs/ntfs3: Remove redundant initialization of variable err +- fs/ntfs3: Show uid/gid always in show_options() +- fs/ntfs3: Rename mount option no_acs_rules > (no)acsrules +- fs/ntfs3: Add iocharset= mount option as alias for nls= +- fs/ntfs3: Make mount option nohidden more universal +- fs/ntfs3: Init spi more in init_fs_context than fill_super +- fs/ntfs3: Use new api for mounting +- fs/ntfs3: Convert mount options to pointer in sbi +- fs/ntfs3: Remove unnecesarry remount flag handling +- fs/ntfs3: Remove unnecesarry mount option noatime +- fs/ntfs3: Change how module init/info messages are displayed +- fs/ntfs3: Remove GPL boilerplates from decompress lib files +- fs/ntfs3: Remove unnecessary condition checking from ntfs_file_read_iter +- fs/ntfs3: Fix integer overflow in ni_fiemap with fiemap_prep() +- fs/ntfs3: Restyle comments to better align with kernel-doc +- fs/ntfs3: Rework file operations +- fs/ntfs3: Remove fat ioctl's from ntfs3 driver for now +- fs/ntfs3: Restyle comments to better align with kernel-doc +- fs/ntfs3: Fix error handling in indx_insert_into_root() +- fs/ntfs3: Potential NULL dereference in hdr_find_split() +- fs/ntfs3: Fix error code in indx_add_allocate() +- fs/ntfs3: fix an error code in ntfs_get_acl_ex() +- fs/ntfs3: add checks for allocation failure +- fs/ntfs3: Use kcalloc/kmalloc_array over kzalloc/kmalloc +- fs/ntfs3: Do not use driver own alloc wrappers +- fs/ntfs3: Use kernel ALIGN macros over driver specific +- fs/ntfs3: Restyle comment block in ni_parse_reparse() +- fs/ntfs3: Remove unused including +- fs/ntfs3: Fix fall-through warnings for Clang +- fs/ntfs3: Fix one none utf8 char in source file +- fs/ntfs3: Remove unused variable cnt in ntfs_security_init() +- fs/ntfs3: Fix integer overflow in multiplication +- fs/ntfs3: Add ifndef + define to all header files +- fs/ntfs3: Use linux/log2 is_power_of_2 function +- fs/ntfs3: Fix various spelling mistakes +- fs/ntfs3: Add Kconfig, Makefile and doc +- fs/ntfs3: Add NTFS journal +- fs/ntfs3: Add compression +- fs/ntfs3: Add attrib operations +- fs/ntfs3: Add file operations and implementation +- fs/ntfs3: Add bitmap +- fs/ntfs3: Add initialization of super block +- fs/ntfs3: Add headers and misc files +- openeuler_defconfig: Enable CONFIG_DEBUG_INFO_BTF +- Revert "openeuler_defconfig: Enable CONFIG_DEBUG_INFO_BTF" +- change x86 configs +- change arm64 configs +- mm/damon: hide kernel pointer from tracepoint event +- mm/damon/vaddr: hide kernel pointer from damon_va_three_regions() failure log +- mm/damon/vaddr: use pr_debug() for damon_va_three_regions() failure logging +- mm/damon/dbgfs: remove an unnecessary variable +- mm/damon: move the implementation of damon_insert_region to damon.h +- mm/damon: add access checking for hugetlb pages +- Docs/admin-guide/mm/damon/usage: update for schemes statistics +- mm/damon/dbgfs: support all DAMOS stats +- Docs/admin-guide/mm/damon/reclaim: document statistics parameters +- mm/damon/reclaim: provide reclamation statistics +- mm/damon/schemes: account how many times quota limit has exceeded +- mm/damon/schemes: account scheme actions that successfully applied +- mm/damon: remove a mistakenly added comment for a future feature +- Docs/admin-guide/mm/damon/usage: update for kdamond_pid and (mk|rm)_contexts +- Docs/admin-guide/mm/damon/usage: mention tracepoint at the beginning +- Docs/admin-guide/mm/damon/usage: remove redundant information +- Docs/admin-guide/mm/damon/usage: update for scheme quotas and watermarks +- mm/damon: convert macro functions to static inline functions +- mm/damon: modify damon_rand() macro to static inline function +- mm/damon: move damon_rand() definition into damon.h +- mm/damon/schemes: add the validity judgment of thresholds +- mm/damon/vaddr: remove swap_ranges() and replace it with swap() +- mm/damon: remove some unneeded function definitions in damon.h +- mm/damon/core: use abs() instead of diff_of() +- mm/damon: add 'age' of region tracepoint support +- mm/damon: unified access_check function naming rules +- mm/damon/dbgfs: fix 'struct pid' leaks in 'dbgfs_target_ids_write()' +- mm/damon/dbgfs: protect targets destructions with kdamond_lock +- selftests/damon: split test cases +- selftests/damon: test debugfs file reads/writes with huge count +- selftests/damon: test wrong DAMOS condition ranges input +- selftests/damon: test DAMON enabling with empty target_ids case +- selftests/damon: skip test if DAMON is running +- mm/damon/vaddr-test: remove unnecessary variables +- mm/damon/vaddr-test: split a test function having >1024 bytes frame size +- mm/damon/vaddr: remove an unnecessary warning message +- mm/damon/core: remove unnecessary error messages +- mm/damon/dbgfs: remove an unnecessary error message +- mm/damon/core: use better timer mechanisms selection threshold +- mm/damon/core: fix fake load reports due to uninterruptible sleeps +- timers: implement usleep_idle_range() +- mm/damon/dbgfs: fix missed use of damon_dbgfs_lock +- mm/damon/dbgfs: use '__GFP_NOWARN' for user-specified size buffer allocation +- NFC: add necessary privilege flags in netlink layer +- net: add and use skb_unclone_keeptruesize() helper +- openeuler_defconfig: Enable CONFIG_DEBUG_INFO_BTF +- tools/bpftool: Fix cross-build +- tools/bpftool: Force clean of out-of-tree build +- x86/kdump: add log before booting crash kernel +- selftests/x86: Test signal frame XSTATE header corruption handling +- x86/fpu: Add address range checks to copy_user_to_xstate() +- block, bfq: move bfqq to root_group if parent group is offlined +- ext4: report error to userspace by netlink +- crypto: Add PMULL judgment during initialization to prevent oops +- phonet/pep: refuse to enable an unbound pipe +- hamradio: improve the incomplete fix to avoid NPD +- hamradio: defer ax25 kfree after unregister_netdev +- ax25: NPD bug when detaching AX25 device +- hwmon: (lm90) Do not report 'busy' status bit as alarm +- hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681 +- pinctrl: mediatek: fix global-out-of-bounds issue +- ASoC: rt5682: fix the wrong jack type detected +- ASoC: tas2770: Fix setting of high sample rates +- Input: goodix - add id->model mapping for the "9111" model +- Input: elants_i2c - do not check Remark ID on eKTH3900/eKTH5312 +- mm: mempolicy: fix THP allocations escaping mempolicy restrictions +- KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state +- usb: gadget: u_ether: fix race in setting MAC address in setup phase +- ceph: fix up non-directory creation in SGID directories +- tee: optee: Fix incorrect page free bug +- mac80211: fix locking in ieee80211_start_ap error path +- ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling +- mmc: mmci: stm32: clear DLYB_CR after sending tuning command +- mmc: core: Disable card detect during shutdown +- mmc: meson-mx-sdhc: Set MANUAL_STOP for multi-block SDIO commands +- mmc: sdhci-tegra: Fix switch to HS400ES mode +- gpio: dln2: Fix interrupts when replugging the device +- pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines +- KVM: VMX: Wake vCPU when delivering posted IRQ even if vCPU == this vCPU +- platform/x86: intel_pmc_core: fix memleak on registration failure +- x86/pkey: Fix undefined behaviour with PKRU_WD_BIT +- parisc: Fix mask used to select futex spinlock +- parisc: Correct completer in lws start +- ipmi: fix initialization when workqueue allocation fails +- ipmi: ssif: initialize ssif_info->client early +- ipmi: bail out if init_srcu_struct fails +- Input: atmel_mxt_ts - fix double free in mxt_read_info_block +- ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s +- ALSA: hda/realtek: Fix quirk for Clevo NJ51CU +- ALSA: hda/realtek: Add new alc285-hp-amp-init model +- ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6 +- ALSA: drivers: opl3: Fix incorrect use of vp->state +- ALSA: jack: Check the return value of kstrdup() +- hwmon: (lm90) Drop critical attribute support for MAX6654 +- hwmon: (lm90) Add basic support for TI TMP461 +- hwmon: (lm90) Introduce flag indicating extended temperature support +- hwmon: (lm90) Fix usage of CONFIG2 register in detect function +- pinctrl: bcm2835: Change init order for gpio hogs +- Input: elantech - fix stack out of bound access in elantech_change_report_id() +- sfc: falcon: Check null pointer of rx_queue->page_ring +- sfc: Check null pointer of rx_queue->page_ring +- net: ks8851: Check for error irq +- drivers: net: smc911x: Check for error irq +- fjes: Check for error irq +- bonding: fix ad_actor_system option setting to default +- ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module +- igb: fix deadlock caused by taking RTNL in RPM resume path +- net: skip virtio_net_hdr_set_proto if protocol already set +- net: accept UFOv6 packages in virtio_net_hdr_to_skb +- qlcnic: potential dereference null pointer of rx_queue->page_ring +- net: marvell: prestera: fix incorrect return of port_find +- ARM: dts: imx6qdl-wandboard: Fix Ethernet support +- RDMA/hns: Replace kfree() with kvfree() +- IB/qib: Fix memory leak in qib_user_sdma_queue_pkts() +- ASoC: meson: aiu: fifo: Add missing dma_coerce_mask_and_coherent() +- spi: change clk_disable_unprepare to clk_unprepare +- arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode +- HID: potential dereference of null pointer +- HID: holtek: fix mouse probing +- net: usb: lan78xx: add Allied Telesis AT29M2-AF +- arm64: vdso32: require CROSS_COMPILE_COMPAT for gcc+bfd +- arm64: vdso32: drop -no-integrated-as flag +- mm/shmem.c: fix judgment error in shmem_is_huge() +- drm: fix free illegal pointer when create drm_property_blob failed +- BMA: Fix pointer cast compile warning in arm32 builds +- arm64: openeuler_defconfig: Enable ARM64_PMEM_LEGACY +- arm64: register persistent memory via protected memory +- x86: pmem: move persistent memory(legacy) code into nvdimm +- openeuler_defconfig: enable CONFIG_VENDOR_HOOKS for x86 and arm64 +- vendor_hooks: make android vendor hooks feature generic. +- ANDROID: fixup restricted hooks after tracepont refactoring +- tracepoints: Do not punish non static call users +- tracepoints: Remove unnecessary "data_args" macro parameter +- ANDROID: simplify vendor hooks for non-GKI builds +- ANDROID: vendor_hooks: fix __section macro +- ANDROID: use static_call() for restricted hooks +- ANDROID: fix redefinition error for restricted vendor hooks +- ANDROID: add support for vendor hooks +- mm: add PG_pool in /proc/kpageflags +- ext4: Fix BUG_ON in ext4_bread when write quota data +- ext4: fix null-ptr-deref in '__ext4_journal_ensure_credits' +- bpf, mm: Fix lockdep warning triggered by stack_map_get_build_id_offset() +- mmap_lock: change trace and locking order +- mm: mmap_lock: fix disabling preemption directly +- mm/mmap_lock: remove dead code for !CONFIG_TRACING configurations +- mm: mmap_lock: use local locks instead of disabling preemption +- mm: mmap_lock: add tracepoints around lock acquisition +- ext4: fix an use-after-free issue about data=journal writeback mode +- mm/pin_mem: improve pin mem pages rmap and free method +- mm/pin_mem: add PG_hotreplace to mark pages need hotreplaced +- mm/pin_mem: refactor pin memory mem reserve and pid reserve code +- audit: bugfix for infinite loop when flush the hold queue +- iommu/arm-smmu-v3: Remove arm_smmu_cmdq_issue_sync() to keep consistent with upstream +- ipvlan: disable l2e local xmit +- watchdog: Fix sleeping function called from atomic context +- tcp_comp: Del compressed_data and remaining_data from tcp_comp_context_rx +- tcp_comp: Add dpkt to save decompressed skb +- tcp_comp: Fix ZSTD_decompressStream failed +- tcp_comp: Fix comp_read_size return value +- tcp_comp: Avoiding the null pointer problem of ctx in comp_stream_read +- tcp_comp: open configs for tcp compression +- tcp_comp: implement recvmsg for tcp compression +- tcp_comp: implement sendmsg for tcp compression +- Revert "sched: Introcude config option SCHED_OPTIMIZE_LOAD_TRACKING" +- Revert "sched: Add switch for update_blocked_averages" +- Revert "sched: Add frequency control for load update in scheduler_tick" +- Revert "sched: Access control for sysctl_update_load_latency" +- Revert "sched: Fix branch prediction error in static_key" +- Revert "arm: Optimize ttwu IPI" +- Revert "sched/idle: introduce smart halt polling" +- Revert "sched/idle: Add IAS_SMART_HALT_POLL config for smart halt polling feature" +- Revert "sched: Add menuconfig option for CONFIG_SCHED_OPTIMIZE_LOAD_TRACKING" +- Revert "sysctl: Refactor IAS framework" +- Revert "sched/idle: Optimize the loop time algorithm to reduce multicore disturb" +- Revert "sched/idle: Reported an error when an illegal negative value is passed" +- Revert "sched: Aware multi-core system for optimize loadtracking" +- blk-throttle: enable hierarchical throttle in cgroup v1 +- md: Fix undefined behaviour in is_mddev_idle +- cgroup: fix compile error when CONFIG_MEMCG = n +- xfs: map unwritten blocks in XFS_IOC_{ALLOC,FREE}SP just like fallocate +- fbcon: fix ypos over boundary issue +- mm/zswap: move to use crypto_acomp API for hardware acceleration +- net: fix a data race when get vlan device +- ipvlan: Add handling of NETDEV_UP events +- perf vendor events amd: Add Zen3 events + +* Wed Jan 19 2022 Zheng Zengkai - 5.10.0-42.0.0.24 +- Disable-SATA-disk-phy-for-severe-I_T-nexus reset failure +- Export-sas_phy_enable +- bonding: allow nesting of bonding device +- bonding: avoid adding slave device with IFF_MASTER flag +- bonding: 3ad: Fix the conflict between bond_update_slave_arr and the state machine +- openeuler_defconfig: enable CONFIG_DYNAMIC_HUGETLB for x86 +- mm/dynamic_hugetlb: add Document for dynamic hugetlb feature +- mm/dynamic_hugetlb: disable dynamic hugetlb if hugetlb_vmemmap is enabled +- mm/huge_memory: disable THP when dynamic hugetlb is enabled +- mm/dynamic_hugetlb: add some tracepoints +- mm/dynamic_hugetlb: free huge pages to dhugetlb_pool +- mm/dynamic_hugetlb: alloc huge pages from dhugetlb_pool +- mm/dynamic_hugetlb: collects resv allocated for dhugetlb_pool +- mm/dynamic_hugetlb: add interface to disable normal pages allocation +- mm/dynamic_hugetlb: free pages to dhugetlb_pool +- mm/dynamic_hugetlb: alloc page from dhugetlb_pool +- mm/dynamic_hugetlb: add migration function +- mm/dynamic_hugetlb: add merge page function +- mm/dynamic_hugetlb: add split page function +- mm/dynamic_hugetlb: add interface to configure the count of hugepages +- mm/dynamic_hugetlb: add PG_pool flag to mark pages from dhugetlb_pool +- mm/dynamic_hugetlb: establish the dynamic hugetlb feature framework +- mm/hugetlb: add parameter hugetlbfs_inode_info to several functions +- mm: declare several functions + +* Tue Jan 18 2022 Zheng Zengkai - 5.10.0-41.0.0.23 +- SCSI: spfc: Update lb mode acquired solution +- cpufreq: intel_pstate: Add Icelake servers support in no-HWP mode +- asm-generic: Add missing brackets for io_stop_wc macro +- net: hns3: add ethtool priv-flag for TX push +- net: hns3: add support for TX push mode +- asm-generic: introduce io_stop_wc() and add implementation for ARM64 +- net/spnic:Remove the code about little endian and big endian conversion +- net/spnic:Remove the code of polling mode +- net/spnic:Remove unused clp hardware channels +- net/spnic:Remove unused functions about ceq +- RDMA/hns: Replace get_udp_sport with rdma_get_udp_sport +- RDMA/core: Calculate UDP source port based on flow label or lqpn/rqpn +- RDMA/hns: Modify the hop num of HIP09 EQ to 1 +- RDMA/hns: Remove magic number +- RDMA/hns: Remove macros that are no longer used +- RDMA/hns: Correctly initialize the members of Array[][] +- RDMA/hns: Correct the type of variables participating in the shift operation +- RDMA/hns: Replace tab with space in the right-side comments +- RDMA/hns: Correct the print format to be consistent with the variable type +- RDMA/hns: Correct the hex print format +- RDMA/hns: Validate the pkey index +- RDMA/hns: Modify the value of MAX_LP_MSG_LEN to meet hardware compatibility +- RDMA/hns: Fix initial arm_st of CQ +- RDMA: Constify netdev->dev_addr accesses +- RDMA/hns: Use dma_alloc_coherent() instead of kmalloc/dma_map_single() +- RDMA/hns: Add the check of the CQE size of the user space +- RDMA/hns: Fix the size setting error when copying CQE in clean_cq() +- RDMA/hns: Work around broken constant propagation in gcc 8 +- RDMA/hns: Delete unnecessary blank lines. +- RDMA/hns: Adjust the order in which irq are requested and enabled +- RDMA/hns: Remove dqpn filling when modify qp from Init to Init +- RDMA/hns: Fix query destination qpn +- RDMA/hns: Bugfix for incorrect association between dip_idx and dgid +- RDMA/hns: Bugfix for the missing assignment for dip_idx +- RDMA/hns: Bugfix for data type of dip_idx +- RDMA/hns: Fix incorrect lsn field +- RDMA/hns: Delete unused hns bitmap interface +- RDMA/hns: Use IDA interface to manage srq index +- RDMA/hns: Ownerbit mode add control field +- RDMA/hns: Remove unsupport cmdq mode +- RDMA/hns: Don't overwrite supplied QP attributes +- RDMA/hns: Fix the double unlock problem of poll_sem +- hugetlbfs: fix issue of preallocation of gigantic pages can't work +- hugetlbfs: extend the definition of hugepages parameter to support node allocation +- cpupower: Add cpuid cap flag for MSR_AMD_HWCR support +- cpupower: Remove family arg to decode_pstates() +- cpupower: Condense pstate enabled bit checks in decode_pstates() +- cpupower: Update family checks when decoding HW pstates +- cpupower: Remove unused pscur variable. +- cpupower: Add CPUPOWER_CAP_AMD_HW_PSTATE cpuid caps flag +- cpupower: Correct macro name for CPB caps flag +- cpupower: Update msr_pstate union struct naming +- openeuler_defconfig: Enable CONFIG_ARM64_EPAN for ARM64 +- arm64: Support execute-only permissions with Enhanced PAN +- arm64: head.S: cleanup SCTLR_ELx initialization +- arm64: smccc: Save lr before calling __arm_smccc_sve_check() +- arm64: smccc: Support SMCCC v1.3 SVE register saving hint +- KVM: arm64: Implement the TRNG hypervisor call +- arm64: Add support for SMCCC TRNG entropy source +- firmware: smccc: Introduce SMCCC TRNG framework +- firmware: smccc: Add SMCCC TRNG function call IDs +- arm64: abort counter_read_on_cpu() when irqs_disabled() +- arm64: implement CPPC FFH support using AMUs +- arm64: split counter validation function +- arm64: wrap and generalise counter read functions +- arm64: Add HWCAP for self-synchronising virtual counter +- arm64: Add handling of CNTVCTSS traps +- arm64: Add CNT{P,V}CTSS_EL0 alternatives to cnt{p,v}ct_el0 +- arm64: Add a capability for FEAT_ECV +- clocksource/drivers/arch_arm_timer: Move workaround synchronisation around +- clocksource/drivers/arm_arch_timer: Fix masking for high freq counters +- clocksource/drivers/arm_arch_timer: Drop unnecessary ISB on CVAL programming +- clocksource/drivers/arm_arch_timer: Remove any trace of the TVAL programming interface +- clocksource/drivers/arm_arch_timer: Work around broken CVAL implementations +- clocksource/drivers/arm_arch_timer: Advertise 56bit timer to the core code +- clocksource/drivers/arm_arch_timer: Move MMIO timer programming over to CVAL +- clocksource/drivers/arm_arch_timer: Fix MMIO base address vs callback ordering issue +- clocksource/drivers/arm_arch_timer: Move drop _tval from erratum function names +- clocksource/drivers/arm_arch_timer: Move system register timer programming over to CVAL +- clocksource/drivers/arm_arch_timer: Extend write side of timer register accessors to u64 +- clocksource/drivers/arm_arch_timer: Drop CNT*_TVAL read accessors +- clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses +- can: raw: return -ERANGE when filterset does not fit into user space buffer +- x86: hugepage: use nt copy hugepage to AEP in x86 + +* Fri Jan 14 2022 Zheng Zengkai - 5.10.0-40.0.0.22 +- xen/netback: don't queue unlimited number of packages +- xen/netback: fix rx queue stall detection +- xen/console: harden hvc_xen against event channel storms +- xen/netfront: harden netfront against event channel storms +- xen/blkfront: harden blkfront against event channel storms +- Revert "xsk: Do not sleep in poll() when need_wakeup set" +- bus: ti-sysc: Fix variable set but not used warning for reinit_modules +- rcu: Mark accesses to rcu_state.n_force_qs +- scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select() +- scsi: scsi_debug: Fix type in min_t to avoid stack OOB +- scsi: scsi_debug: Don't call kcalloc() if size arg is zero +- ovl: fix warning in ovl_create_real() +- fuse: annotate lock in fuse_reverse_inval_entry() +- media: mxl111sf: change mutex_init() location +- xsk: Do not sleep in poll() when need_wakeup set +- ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name +- Input: touchscreen - avoid bitwise vs logical OR warning +- drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE +- libata: if T_LENGTH is zero, dma direction should be DMA_NONE +- serial: 8250_fintek: Fix garbled text for console +- iocost: Fix divide-by-zero on donation from low hweight cgroup +- zonefs: add MODULE_ALIAS_FS +- btrfs: fix double free of anon_dev after failure to create subvolume +- btrfs: fix memory leak in __add_inode_ref() +- USB: serial: option: add Telit FN990 compositions +- USB: serial: cp210x: fix CP2105 GPIO registration +- usb: xhci: Extend support for runtime power management for AMD's Yellow carp. +- PCI/MSI: Mask MSI-X vectors only on success +- PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error +- usb: dwc2: fix STM ID/VBUS detection startup delay in dwc2_driver_probe +- USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04) +- tty: n_hdlc: make n_hdlc_tty_wakeup() asynchronous +- KVM: x86: Drop guest CPUID check for host initiated writes to MSR_IA32_PERF_CAPABILITIES +- Revert "usb: early: convert to readl_poll_timeout_atomic()" +- bpf, selftests: Fix racing issue in btf_skc_cls_ingress test +- sit: do not call ipip6_dev_free() from sit_init_net() +- net: systemport: Add global locking for descriptor lifecycle +- net/smc: Prevent smc_release() from long blocking +- net: Fix double 0x prefix print in SKB dump +- sfc_ef100: potential dereference of null pointer +- net/packet: rx_owner_map depends on pg_vec +- ixgbe: set X550 MDIO speed before talking to PHY +- ixgbe: Document how to enable NBASE-T support +- igc: Fix typo in i225 LTR functions +- igbvf: fix double free in `igbvf_probe` +- igb: Fix removal of unicast MAC filters of VFs +- soc/tegra: fuse: Fix bitwise vs. logical OR warning +- mptcp: clear 'kern' flag from fallback sockets +- drm/amd/pm: fix a potential gpu_metrics_table memory leak +- flow_offload: return EOPNOTSUPP for the unsupported mpls action type +- mac80211: fix lookup when adding AddBA extension element +- mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock +- drm/ast: potential dereference of null pointer +- selftest/net/forwarding: declare NETIFS p9 p10 +- net/sched: sch_ets: don't remove idle classes from the round-robin list +- dmaengine: st_fdma: fix MODULE_ALIAS +- selftests: Fix IPv6 address bind tests +- selftests: Fix raw socket bind tests with VRF +- selftests: Add duplicate config only for MD5 VRF tests +- net: hns3: fix use-after-free bug in hclgevf_send_mbx_msg +- inet_diag: fix kernel-infoleak for UDP sockets +- sch_cake: do not call cake_destroy() from cake_init() +- s390/kexec_file: fix error handling when applying relocations +- selftests: net: Correct ping6 expected rc from 2 to 1 +- virtio/vsock: fix the transport to work with VMADDR_CID_ANY +- soc: imx: Register SoC device only on i.MX boards +- clk: Don't parent clks until the parent is fully registered +- ARM: socfpga: dts: fix qspi node compatible +- ceph: initialize pathlen variable in reconnect_caps_cb +- ceph: fix duplicate increment of opened_inodes metric +- tee: amdtee: fix an IS_ERR() vs NULL bug +- mac80211: track only QoS data frames for admission control +- arm64: dts: rockchip: fix audio-supply for Rock Pi 4 +- arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply +- arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply +- arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas-edge +- arm64: dts: imx8mp-evk: Improve the Ethernet PHY description +- arm64: dts: imx8m: correct assigned clocks for FEC +- dm btree remove: fix use after free in rebalance_children() +- recordmcount.pl: look for jgnop instruction as well as bcrl on s390 +- vdpa: check that offsets are within bounds +- virtio_ring: Fix querying of maximum DMA mapping size for virtio device +- bpf, selftests: Add test case trying to taint map value pointer +- bpf: Make 32->64 bounds propagation slightly more robust +- bpf: Fix signed bounds propagation after mov32 +- firmware: arm_scpi: Fix string overflow in SCPI genpd driver +- mac80211: validate extended element ID is present +- mac80211: send ADDBA requests using the tid/queue of the aggregation session +- mac80211: mark TX-during-stop for TX in in_reconfig +- mac80211: fix regression in SSN handling of addba tx +- KVM: downgrade two BUG_ONs to WARN_ON_ONCE +- KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE +- arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM +- arm: extend pfn_valid to take into account freed memory map alignment +- memblock: align freed memory map on pageblock boundaries with SPARSEMEM +- memblock: free_unused_memmap: use pageblock units instead of MAX_ORDER +- perf intel-pt: Fix error timestamp setting on the decoder error path +- perf intel-pt: Fix missing 'instruction' events with 'q' option +- perf intel-pt: Fix next 'err' value, walking trace +- perf intel-pt: Fix state setting when receiving overflow (OVF) packet +- perf intel-pt: Fix intel_pt_fup_event() assumptions about setting state type +- perf intel-pt: Fix sync state when a PSB (synchronization) packet is found +- perf intel-pt: Fix some PGE (packet generation enable/control flow packets) usage +- perf inject: Fix itrace space allowed for new attributes +- ethtool: do not perform operations on net devices being unregistered +- hwmon: (dell-smm) Fix warning on /proc/i8k creation error +- fuse: make sure reclaim doesn't write the inode +- bpf: Fix integer overflow in argument calculation for bpf_map_area_alloc +- staging: most: dim2: use device release method +- KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req +- tracing: Fix a kmemleak false positive in tracing_map +- drm/amd/display: add connector type check for CRC source set +- drm/amd/display: Fix for the no Audio bug with Tiled Displays +- net: netlink: af_netlink: Prevent empty skb by adding a check on len. +- i2c: rk3x: Handle a spurious start completion interrupt flag +- parisc/agp: Annotate parisc agp init functions with __init +- ALSA: hda/hdmi: fix HDA codec entry table order for ADL-P +- ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid +- net/mlx4_en: Update reported link modes for 1/10G +- Revert "tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP" +- s390/test_unwind: use raw opcode instead of invalid instruction +- KVM: arm64: Save PSTATE early on exit +- drm/msm/dsi: set default num_data_lanes +- nfc: fix segfault in nfc_genl_dump_devices_done +- cgroup: Use open-time cgroup namespace for process migration perm checks +- cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv +- cgroup: Use open-time credentials for process migraton perm checks +- cgroup/cgroup.c: replace 'of->kn->priv' with of_cft() +- cgroup: cgroup.{procs,threads} factor out common parts +- netfilter: selftest: conntrack_vrf.sh: fix file permission +- Documentation/Kbuild: Remove references to gcc-plugin.sh +- MAINTAINERS: adjust GCC PLUGINS after gcc-plugin.sh removal +- doc: gcc-plugins: update gcc-plugins.rst +- kbuild: simplify GCC_PLUGINS enablement in dummy-tools/gcc +- bpf: Add selftests to cover packet access corner cases +- misc: fastrpc: fix improper packet size calculation +- irqchip: nvic: Fix offset for Interrupt Priority Offsets +- irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL +- irqchip/armada-370-xp: Fix support for Multi-MSI interrupts +- irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc() +- irqchip/aspeed-scu: Replace update_bits with write_bits. +- csky: fix typo of fpu config macro +- iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove +- iio: ad7768-1: Call iio_trigger_notify_done() on error +- iio: adc: axp20x_adc: fix charging current reporting on AXP22x +- iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda +- iio: at91-sama5d2: Fix incorrect sign extension +- iio: dln2: Check return value of devm_iio_trigger_register() +- iio: dln2-adc: Fix lockdep complaint +- iio: itg3200: Call iio_trigger_notify_done() on error +- iio: kxsd9: Don't return error code in trigger handler +- iio: ltr501: Don't return error code in trigger handler +- iio: mma8452: Fix trigger reference couting +- iio: stk3310: Don't return error code in interrupt handler +- iio: trigger: stm32-timer: fix MODULE_ALIAS +- iio: trigger: Fix reference counting +- iio: gyro: adxrs290: fix data signedness +- xhci: avoid race between disable slot command and host runtime suspend +- usb: core: config: using bit mask instead of individual bits +- xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime suspending +- usb: core: config: fix validation of wMaxPacketValue entries +- USB: gadget: zero allocate endpoint 0 buffers +- selftests/fib_tests: Rework fib_rp_filter_test() +- net/qla3xxx: fix an error code in ql_adapter_up() +- net, neigh: clear whole pneigh_entry at alloc time +- net: fec: only clear interrupt of handling queue in fec_enet_rx_queue() +- net: altera: set a couple error code in probe() +- net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero +- tools build: Remove needless libpython-version feature check that breaks test-all fast path +- dt-bindings: net: Reintroduce PHY no lane swap binding +- Documentation/locking/locktypes: Update migrate_disable() bits. +- perf tools: Fix SMT detection fast read path +- Revert "PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge" +- i40e: Fix NULL pointer dereference in i40e_dbg_dump_desc +- mtd: rawnand: fsmc: Fix timing computation +- mtd: rawnand: fsmc: Take instruction delay into account +- i40e: Fix pre-set max number of queues for VF +- i40e: Fix failed opcode appearing if handling messages from VF +- clk: imx: use module_platform_driver +- RDMA/hns: Do not destroy QP resources in the hw resetting phase +- RDMA/hns: Do not halt commands during reset until later +- ASoC: codecs: wcd934x: return correct value from mixer put +- ASoC: codecs: wcd934x: handle channel mappping list correctly +- ASoC: codecs: wsa881x: fix return values from kcontrol put +- ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer +- ASoC: rt5682: Fix crash due to out of scope stack vars +- PM: runtime: Fix pm_runtime_active() kerneldoc comment +- qede: validate non LSO skb length +- scsi: scsi_debug: Fix buffer size of REPORT ZONES command +- scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc() +- block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2) +- tracefs: Set all files to the same group ownership as the mount option +- net: mvpp2: fix XDP rx queues registering +- aio: fix use-after-free due to missing POLLFREE handling +- aio: keep poll requests on waitqueue until completed +- signalfd: use wake_up_pollfree() +- binder: use wake_up_pollfree() +- wait: add wake_up_pollfree() +- libata: add horkage for ASMedia 1092 +- can: m_can: Disable and ignore ELO interrupt +- can: pch_can: pch_can_rx_normal: fix use after free +- drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence. +- clk: qcom: regmap-mux: fix parent clock lookup +- mmc: renesas_sdhi: initialize variable properly when tuning +- tracefs: Have new files inherit the ownership of their parent +- nfsd: Fix nsfd startup race (again) +- nfsd: fix use-after-free due to delegation race +- md: fix update super 1.0 on rdev size change +- btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling +- btrfs: clear extent buffer uptodate when we fail to write it +- scsi: qla2xxx: Format log strings only if needed +- ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*() +- ALSA: pcm: oss: Limit the period size to 16MB +- ALSA: pcm: oss: Fix negative period/buffer sizes +- ALSA: hda/realtek: Fix quirk for TongFang PHxTxX1 +- ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform +- ALSA: ctl: Fix copy of updated id with element read/write +- mm: bdi: initialize bdi_min_ratio when bdi is unregistered +- KVM: x86: Wait for IPIs to be delivered when handling Hyper-V TLB flush hypercall +- net/sched: fq_pie: prevent dismantle issue +- devlink: fix netns refcount leak in devlink_nl_cmd_reload() +- IB/hfi1: Correct guard on eager buffer deallocation +- iavf: Fix reporting when setting descriptor count +- iavf: restore MSI state on reset +- netfilter: conntrack: annotate data-races around ct->timeout +- udp: using datalen to cap max gso segments +- seg6: fix the iif in the IPv6 socket control block +- nfp: Fix memory leak in nfp_cpp_area_cache_add() +- bonding: make tx_rebalance_counter an atomic +- ice: ignore dropped packets during init +- bpf: Fix the off-by-two error in range markings +- bpf, x86: Fix "no previous prototype" warning +- vrf: don't run conntrack on vrf with !dflt qdisc +- selftests: netfilter: add a vrf+conntrack testcase +- nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done +- drm/amdkfd: fix boot failure when iommu is disabled in Picasso. +- drm/amdgpu: init iommu after amdkfd device init +- drm/amdgpu: move iommu_resume before ip init/resume +- drm/amdgpu: add amdgpu_amdkfd_resume_iommu +- drm/amdkfd: separate kfd_iommu_resume from kfd_resume +- drm/amd/amdkfd: adjust dummy functions' placement +- x86/sme: Explicitly map new EFI memmap table as encrypted +- can: sja1000: fix use after free in ems_pcmcia_add_card() +- can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct stats->{rx,tx}_errors counter +- can: kvaser_usb: get CAN clock frequency from device +- IB/hfi1: Fix leak of rcvhdrtail_dummy_kvaddr +- IB/hfi1: Fix early init panic +- IB/hfi1: Insure use of smp_processor_id() is preempt disabled +- nft_set_pipapo: Fix bucket load in AVX2 lookup routine for six 8-bit groups +- HID: check for valid USB device for many HID drivers +- HID: wacom: fix problems when device is not a valid USB device +- HID: bigbenff: prevent null pointer dereference +- HID: add USB_HID dependancy on some USB HID drivers +- HID: add USB_HID dependancy to hid-chicony +- HID: add USB_HID dependancy to hid-prodikeys +- HID: add hid_is_usb() function to make it simpler for USB detection +- HID: google: add eel USB id +- HID: quirks: Add quirk for the Microsoft Surface 3 type-cover +- gcc-plugins: fix gcc 11 indigestion with plugins... +- gcc-plugins: simplify GCC plugin-dev capability test +- usb: gadget: uvc: fix multiple opens +- tee: handle lookup of shm with reference count 0 +- f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr() +- rds: memory leak in __rds_conn_create() +- ipmi: msghandler: Make symbol 'remove_work_wq' static +- net/tls: Fix authentication failure in CCM mode +- parisc: Mark cr16 CPU clocksource unstable on all SMP machines +- iwlwifi: mvm: retry init flow if failed +- serial: 8250: Fix RTS modem control while in rs485 mode +- serial: 8250_pci: rewrite pericom_do_set_divisor() +- serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array +- serial: core: fix transmit-buffer reset and memleak +- serial: tegra: Change lower tolerance baud rate limit for tegra20 and tegra30 +- serial: pl011: Add ACPI SBSA UART match id +- tty: serial: msm_serial: Deactivate RX DMA for polling support +- x86/64/mm: Map all kernel memory into trampoline_pgd +- x86/tsc: Disable clocksource watchdog for TSC on qualified platorms +- x86/tsc: Add a timer to make sure TSC_adjust is always checked +- usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect +- USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub +- xhci: Fix commad ring abort, write all 64 bits to CRCR register. +- vgacon: Propagate console boot parameters before calling `vc_resize' +- parisc: Fix "make install" on newer debian releases +- parisc: Fix KBUILD_IMAGE for self-extracting kernel +- x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry() +- x86/pv: Switch SWAPGS to ALTERNATIVE +- sched/uclamp: Fix rq->uclamp_max not set on first enqueue +- x86/xen: Add xenpv_restore_regs_and_return_to_usermode() +- x86/entry: Use the correct fence macro after swapgs in kernel CR3 +- x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword +- KVM: VMX: Set failure code in prepare_vmcs02() +- KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register +- atlantic: Remove warn trace message. +- atlantic: Fix statistics logic for production hardware +- Remove Half duplex mode speed capabilities. +- atlantic: Add missing DIDs and fix 115c. +- atlantic: Fix to display FW bundle version instead of FW mac version. +- atlatnic: enable Nbase-t speeds with base-t +- atlantic: Increase delay for fw transactions +- drm/msm: Do hw_init() before capturing GPU state +- drm/msm/a6xx: Allocate enough space for GMU registers +- net/smc: Keep smc_close_final rc during active close +- net/rds: correct socket tunable error in rds_tcp_tune() +- net/smc: fix wrong list_del in smc_lgr_cleanup_early +- ipv4: convert fib_num_tclassid_users to atomic_t +- net: annotate data-races on txq->xmit_lock_owner +- dpaa2-eth: destroy workqueue at the end of remove function +- net: marvell: mvpp2: Fix the computation of shared CPUs +- net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ is available +- ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec +- rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() +- rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle() +- ASoC: tegra: Fix kcontrol put callback in AHUB +- ASoC: tegra: Fix kcontrol put callback in DSPK +- ASoC: tegra: Fix kcontrol put callback in DMIC +- ASoC: tegra: Fix kcontrol put callback in I2S +- ASoC: tegra: Fix kcontrol put callback in ADMAIF +- ASoC: tegra: Fix wrong value type in DSPK +- ASoC: tegra: Fix wrong value type in DMIC +- ASoC: tegra: Fix wrong value type in I2S +- ASoC: tegra: Fix wrong value type in ADMAIF +- mt76: mt7915: fix NULL pointer dereference in mt7915_get_phy_mode +- selftests: net: Correct case name +- net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources() +- arm64: ftrace: add missing BTIs +- siphash: use _unaligned version by default +- net: mpls: Fix notifications when deleting a device +- net: qlogic: qlcnic: Fix a NULL pointer dereference in qlcnic_83xx_add_rings() +- tcp: fix page frag corruption on page fault +- natsemi: xtensa: fix section mismatch warnings +- i2c: cbus-gpio: set atomic transfer callback +- i2c: stm32f7: stop dma transfer in case of NACK +- i2c: stm32f7: recover the bus on access timeout +- i2c: stm32f7: flush TX FIFO upon transfer errors +- wireguard: ratelimiter: use kvcalloc() instead of kvzalloc() +- wireguard: receive: drop handshakes if queue lock is contended +- wireguard: receive: use ring buffer for incoming handshakes +- wireguard: device: reset peer src endpoint when netns exits +- wireguard: selftests: rename DEBUG_PI_LIST to DEBUG_PLIST +- wireguard: selftests: actually test for routing loops +- wireguard: allowedips: add missing __rcu annotation to satisfy sparse +- wireguard: selftests: increase default dmesg log size +- tracing/histograms: String compares should not care about signed values +- KVM: X86: Use vcpu->arch.walk_mmu for kvm_mmu_invlpg() +- KVM: arm64: Avoid setting the upper 32 bits of TCR_EL2 and CPTR_EL2 to 1 +- KVM: x86: Use a stable condition around all VT-d PI paths +- KVM: nVMX: Flush current VPID (L1 vs. L2) for KVM_REQ_TLB_FLUSH_GUEST +- KVM: Disallow user memslot with size that exceeds "unsigned long" +- drm/amd/display: Allow DSC on supported MST branch devices +- ipv6: fix memory leak in fib6_rule_suppress +- sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl +- sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl +- s390/pci: move pseudo-MMIO to prevent MIO overlap +- ipmi: Move remove_work to dedicated workqueue +- rt2x00: do not mark device gone on EPROTO errors during start +- kprobes: Limit max data_size of the kretprobe instances +- vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit +- ACPI: Add stubs for wakeup handler functions +- net/smc: Avoid warning of possible recursive locking +- perf report: Fix memory leaks around perf_tip() +- perf hist: Fix memory leak of a perf_hpp_fmt +- net: ethernet: dec: tulip: de4x5: fix possible array overflows in type3_infoblock() +- net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of bound +- ipv6: check return value of ipv6_skip_exthdr +- ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in hns_dsaf_ge_srst_by_port() +- ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile +- drm/amd/amdgpu: fix potential memleak +- drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again +- scsi: iscsi: Unblock session then wake up error handler +- thermal: core: Reset previous low and high trip during thermal zone init +- btrfs: check-integrity: fix a warning on write caching disabled disk +- s390/setup: avoid using memblock_enforce_memory_limit +- platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep +- platform/x86: thinkpad_acpi: Add support for dual fan control +- net: return correct error code +- net/smc: Transfer remaining wait queue entries during fallback +- mac80211: do not access the IV when it was stripped +- drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY +- powerpc/pseries/ddw: Revert "Extend upper limit for huge DMA window for persistent memory" +- gfs2: Fix length of holes reported at end-of-file +- gfs2: release iopen glock early in evict +- ovl: fix deadlock in splice write +- ovl: simplify file splice +- can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM +- NFSv42: Fix pagecache invalidation after COPY/CLONE +- drm/amdgpu/gfx9: switch to golden tsc registers for renoir+ +- net: stmmac: platform: fix build warning when with !CONFIG_PM_SLEEP +- shm: extend forced shm destroy to support objects from several IPC nses +- s390/mm: validate VMA in PGSTE manipulation functions +- tty: hvc: replace BUG_ON() with negative return value +- xen/netfront: don't trust the backend response data blindly +- xen/netfront: disentangle tx_skb_freelist +- xen/netfront: don't read data from request on the ring page +- xen/netfront: read response from backend only once +- xen/blkfront: don't trust the backend response data blindly +- xen/blkfront: don't take local copy of a request from the ring page +- xen/blkfront: read response from backend only once +- xen: sync include/xen/interface/io/ring.h with Xen's newest version +- tracing: Check pid filtering when creating events +- vhost/vsock: fix incorrect used length reported to the guest +- iommu/amd: Clarify AMD IOMMUv2 initialization messages +- smb3: do not error on fsync when readonly +- ceph: properly handle statfs on multifs setups +- f2fs: set SBI_NEED_FSCK flag when inconsistent node block found +- sched/scs: Reset task stack state in bringup_cpu() +- tcp: correctly handle increased zerocopy args struct size +- net: mscc: ocelot: correctly report the timestamping RX filters in ethtool +- net: mscc: ocelot: don't downgrade timestamping RX filters in SIOCSHWTSTAMP +- net/smc: Don't call clcsock shutdown twice when smc shutdown +- net: vlan: fix underflow for the real_dev refcnt +- net/sched: sch_ets: don't peek at classes beyond 'nbands' +- tls: fix replacing proto_ops +- tls: splice_read: fix record type check +- MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48 +- MIPS: loongson64: fix FTLB configuration +- igb: fix netpoll exit with traffic +- nvmet: use IOCB_NOWAIT only if the filesystem supports it +- net/smc: Fix loop in smc_listen +- net/smc: Fix NULL pointer dereferencing in smc_vlan_by_tcpsk() +- net: phylink: Force retrigger in case of latched link-fail indicator +- net: phylink: Force link down and retrigger resolve on interface change +- lan743x: fix deadlock in lan743x_phy_link_status_change() +- tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows +- drm/amd/display: Set plane update flags for all planes in reset +- PM: hibernate: use correct mode for swsusp_close() +- net/ncsi : Add payload to be 32-bit aligned to fix dropped packets +- nvmet-tcp: fix incomplete data digest send +- net: marvell: mvpp2: increase MTU limit when XDP enabled +- mlxsw: spectrum: Protect driver from buggy firmware +- mlxsw: Verify the accessed index doesn't exceed the array length +- net/smc: Ensure the active closing peer first closes clcsock +- erofs: fix deadlock when shrink erofs slab +- scsi: scsi_debug: Zero clear zones at reset write pointer +- scsi: core: sysfs: Fix setting device state to SDEV_RUNNING +- ice: avoid bpf_prog refcount underflow +- ice: fix vsi->txq_map sizing +- net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group +- net: ipv6: add fib6_nh_release_dsts stub +- net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls +- net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume +- nfp: checking parameter process for rx-usecs/tx-usecs is invalid +- ipv6: fix typos in __ip6_finish_output() +- firmware: smccc: Fix check for ARCH_SOC_ID not implemented +- mptcp: fix delack timer +- ALSA: intel-dsp-config: add quirk for JSL devices based on ES8336 codec +- iavf: Prevent changing static ITR values if adaptive moderation is on +- net: marvell: prestera: fix double free issue on err path +- drm/vc4: fix error code in vc4_create_object() +- scsi: mpt3sas: Fix kernel panic during drive powercycle test +- drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks +- ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE +- NFSv42: Don't fail clone() unless the OP_CLONE operation failed +- firmware: arm_scmi: pm: Propagate return value to caller +- net: ieee802154: handle iftypes as u32 +- ASoC: codecs: wcd934x: return error code correctly from hw_params +- ASoC: topology: Add missing rwsem around snd_ctl_remove() calls +- ASoC: qdsp6: q6asm: fix q6asm_dai_prepare error handling +- ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer +- ARM: dts: bcm2711: Fix PCIe interrupts +- ARM: dts: BCM5301X: Add interrupt properties to GPIO node +- ARM: dts: BCM5301X: Fix I2C controller interrupt +- netfilter: flowtable: fix IPv6 tunnel addr match +- netfilter: ipvs: Fix reuse connection if RS weight is 0 +- netfilter: ctnetlink: do not erase error code with EINVAL +- netfilter: ctnetlink: fix filtering with CTA_TUPLE_REPLY +- proc/vmcore: fix clearing user buffer by properly using clear_user() +- PCI: aardvark: Fix link training +- PCI: aardvark: Simplify initialization of rootcap on virtual bridge +- PCI: aardvark: Implement re-issuing config requests on CRS response +- PCI: aardvark: Update comment about disabling link training +- PCI: aardvark: Deduplicate code in advk_pcie_rd_conf() +- powerpc/32: Fix hardlockup on vmap stack overflow +- mdio: aspeed: Fix "Link is Down" issue +- mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB +- mmc: sdhci-esdhc-imx: disable CMDQ support +- tracing: Fix pid filtering when triggers are attached +- tracing/uprobe: Fix uprobe_perf_open probes iteration +- KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB +- xen: detect uninitialized xenbus in xenbus_init +- xen: don't continue xenstore initialization in case of errors +- fuse: release pipe buf after last use +- staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect() +- staging: greybus: Add missing rwsem around snd_ctl_remove() calls +- staging/fbtft: Fix backlight +- HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts +- Revert "parisc: Fix backtrace to always include init funtion names" +- media: cec: copy sequence field for the reply +- ALSA: hda/realtek: Fix LED on HP ProBook 435 G7 +- ALSA: hda/realtek: Add quirk for ASRock NUC Box 1100 +- ALSA: ctxfi: Fix out-of-range access +- binder: fix test regression due to sender_euid change +- usb: hub: Fix locking issues with address0_mutex +- usb: hub: Fix usb enumeration issue due to address0 race +- usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts +- usb: chipidea: ci_hdrc_imx: fix potential error pointer dereference in probe +- net: nexthop: fix null pointer dereference when IPv6 is not enabled +- usb: dwc3: gadget: Fix null pointer exception +- usb: dwc3: gadget: Check for L1/L2/U3 for Start Transfer +- usb: dwc3: gadget: Ignore NoStream after End Transfer +- usb: dwc2: hcd_queue: Fix use of floating point literal +- usb: dwc2: gadget: Fix ISOC flow for elapsed frames +- USB: serial: option: add Fibocom FM101-GL variants +- USB: serial: option: add Telit LE910S1 0x9200 composition +- ACPI: Get acpi_device's parent from the parent field +- ARM: Add unwinding annotations to __loop.*delay functions +- fcntl: fix potential deadlocks for &fown_struct.lock +- mm: usercopy: Warn vmalloc/module address in check_heap_object() +- powerpc: Fix virt_addr_valid() check +- jffs2: fix memory leak in jffs2_scan_medium +- jffs2: fix memory leak in jffs2_do_mount_fs +- jffs2: fix use-after-free in jffs2_clear_xattr_subsystem +- powerpc/85xx: Fix oops when CONFIG_FSL_PMC=n +- netdevsim: Zero-initialize memory for new map's value in function nsim_bpf_map_alloc +- mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() +- hugetlb: address ref count racing in prep_compound_gigantic_page +- memblock: ensure there is no overflow in memblock_overlaps_region() +- phonet: refcount leak in pep_sock_accep +- Revert "[Backport] ARM: BCM53016: Specify switch ports for Meraki MR32" +- USB: gadget: bRequestType is a bitfield, not a enum +- USB: gadget: detect too-big endpoint 0 requests +- Revert "perf: Rework perf_event_exit_event()" +- ALSA: hda: hdac_stream: fix potential locking issue in snd_hdac_stream_assign() +- ALSA: hda: hdac_ext_stream: fix potential locking issues +- x86/Kconfig: Fix an unused variable error in dell-smm-hwmon +- btrfs: update device path inode time instead of bd_inode +- fs: export an inode_update_time helper +- ice: Delete always true check of PF pointer +- usb: max-3421: Use driver data instead of maintaining a list of bound devices +- ASoC: DAPM: Cover regression by kctl change notification fix +- selinux: fix NULL-pointer dereference when hashtab allocation fails +- RDMA/netlink: Add __maybe_unused to static inline in C file +- scsi: ufs: core: Fix task management completion timeout race +- scsi: ufs: core: Fix task management completion +- drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga and dvi connectors +- drm/i915/dp: Ensure sink rate values are always valid +- drm/udl: fix control-message timeout +- drm/amd/display: Update swizzle mode enums +- cfg80211: call cfg80211_stop_ap when switch from P2P_GO type +- parisc/sticon: fix reverse colors +- btrfs: fix memory ordering between normal and ordered work functions +- net: stmmac: socfpga: add runtime suspend/resume callback for stratix10 platform +- udf: Fix crash after seekdir +- KVM: nVMX: don't use vcpu->arch.efer when checking host state on nested state load +- block: Check ADMIN before NICE for IOPRIO_CLASS_RT +- s390/kexec: fix memory leak of ipl report buffer +- scsi: qla2xxx: Fix mailbox direction flags in qla2xxx_get_adapter_id() +- powerpc/8xx: Fix pinned TLBs with CONFIG_STRICT_KERNEL_RWX +- x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails +- mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag +- ipc: WARN if trying to remove ipc object which is absent +- tipc: check for null after calling kmemdup +- hexagon: clean up timer-regs.h +- hexagon: export raw I/O routines for modules +- tun: fix bonding active backup with arp monitoring +- arm64: vdso32: suppress error message for 'make mrproper' +- net: stmmac: dwmac-rk: Fix ethernet on rk3399 based devices +- s390/kexec: fix return code handling +- perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server +- perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server +- pinctrl: qcom: sdm845: Enable dual edge errata +- KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr() +- e100: fix device suspend/resume +- NFC: add NCI_UNREG flag to eliminate the race +- net: nfc: nci: Change the NCI close sequence +- NFC: reorder the logic in nfc_{un,}register_device +- NFC: reorganize the functions in nci_request +- i40e: Fix display error code in dmesg +- i40e: Fix creation of first queue by omitting it if is not power of two +- i40e: Fix warning message and call stack during rmmod i40e driver +- i40e: Fix ping is lost after configuring ADq on VF +- i40e: Fix changing previously set num_queue_pairs for PFs +- i40e: Fix NULL ptr dereference on VSI filter sync +- i40e: Fix correct max_pkt_size on VF RX queue +- net: virtio_net_hdr_to_skb: count transport header in UFO +- net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove +- net: sched: act_mirred: drop dst for the direction from egress to ingress +- scsi: core: sysfs: Fix hang when device state is set via sysfs +- net/mlx5: E-Switch, return error if encap isn't supported +- net/mlx5: E-Switch, Change mode lock from mutex to rw semaphore +- net/mlx5: Lag, update tracker when state change event received +- net/mlx5e: nullify cq->dbg pointer in mlx5_debug_cq_remove() +- platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()' +- mips: lantiq: add support for clk_get_parent() +- mips: bcm63xx: add support for clk_get_parent() +- MIPS: generic/yamon-dt: fix uninitialized variable error +- iavf: Fix for setting queues to 0 +- iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset +- iavf: validate pointers +- iavf: prevent accidental free of filter structure +- iavf: Fix failure to exit out from last all-multicast mode +- iavf: free q_vectors before queues in iavf_disable_vf +- iavf: check for null in iavf_fix_features +- iavf: Fix return of set the new channel count +- net/smc: Make sure the link_id is unique +- sock: fix /proc/net/sockstat underflow in sk_clone_lock() +- net: reduce indentation level in sk_clone_lock() +- tipc: only accept encrypted MSG_CRYPTO msgs +- bnxt_en: reject indirect blk offload when hw-tc-offload is off +- net: bnx2x: fix variable dereferenced before check +- net: ipa: disable HOLB drop when updating timer +- tracing: Add length protection to histogram string copies +- tcp: Fix uninitialized access in skb frags array for Rx 0cp. +- net-zerocopy: Refactor skb frag fast-forward op. +- net-zerocopy: Copy straggler unaligned data for TCP Rx. zerocopy. +- drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame +- perf tests: Remove bash construct from record+zstd_comp_decomp.sh +- perf bench futex: Fix memory leak of perf_cpu_map__new() +- perf bpf: Avoid memory leak from perf_env__insert_btf() +- tracing/histogram: Do not copy the fixed-size char array field over the field size +- perf/x86/vlbr: Add c->flags to vlbr event constraints +- sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain() +- mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set +- clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk +- clk/ast2600: Fix soc revision for AHB +- clk: ingenic: Fix bugs with divided dividers +- f2fs: fix incorrect return value in f2fs_sanity_check_ckpt() +- f2fs: compress: disallow disabling compress on non-empty compressed file +- sh: define __BIG_ENDIAN for math-emu +- sh: math-emu: drop unused functions +- sh: fix kconfig unmet dependency warning for FRAME_POINTER +- f2fs: fix to use WHINT_MODE +- f2fs: fix up f2fs_lookup tracepoints +- maple: fix wrong return value of maple_bus_init(). +- sh: check return code of request_irq +- powerpc/8xx: Fix Oops with STRICT_KERNEL_RWX without DEBUG_RODATA_TEST +- powerpc/dcr: Use cmplwi instead of 3-argument cmpli +- ALSA: gus: fix null pointer dereference on pointer block +- ARM: dts: qcom: fix memory and mdio nodes naming for RB3011 +- powerpc/5200: dts: fix memory node unit name +- iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr() +- scsi: target: Fix alua_tg_pt_gps_count tracking +- scsi: target: Fix ordered tag handling +- MIPS: sni: Fix the build +- tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc +- ALSA: ISA: not for M68K +- ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash +- ARM: dts: ls1021a: move thermal-zones node out of soc/ +- usb: host: ohci-tmio: check return value after calling platform_get_resource() +- ARM: dts: omap: fix gpmc,mux-add-data type +- firmware_loader: fix pre-allocated buf built-in firmware use +- ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336 codec +- scsi: advansys: Fix kernel pointer leak +- ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect +- clk: imx: imx6ul: Move csi_sel mux to correct base register +- ASoC: SOF: Intel: hda-dai: fix potential locking issue +- arm64: dts: freescale: fix arm,sp805 compatible string +- arm64: dts: qcom: ipq6018: Fix qcom,controlled-remotely property +- arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency +- ARM: BCM53016: Specify switch ports for Meraki MR32 +- staging: rtl8723bs: remove possible deadlock when disconnect (v2) +- ARM: dts: ux500: Skomer regulator fixes +- usb: typec: tipd: Remove WARN_ON in tps6598x_block_read +- usb: musb: tusb6010: check return value after calling platform_get_resource() +- bus: ti-sysc: Use context lost quirk for otg +- bus: ti-sysc: Add quirk handling for reinit on context lost +- RDMA/bnxt_re: Check if the vlan is valid before reporting +- arm64: dts: hisilicon: fix arm,sp805 compatible string +- arm64: dts: rockchip: Disable CDN DP on Pinebook Pro +- scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq() +- ARM: dts: NSP: Fix mpcore, mmc node names +- staging: wfx: ensure IRQ is ready before enabling it +- arm64: dts: allwinner: a100: Fix thermal zone node name +- arm64: dts: allwinner: h5: Fix GPU thermal zone node name +- ARM: dts: sunxi: Fix OPPs node name +- arm64: zynqmp: Fix serial compatible string +- arm64: zynqmp: Do not duplicate flash partition label property +- ubifs: ubifs_releasepage: Remove ubifs_assert(0) to valid this process +- ubifs: ubifs_writepage: Mark page dirty after writing inode failed +- fget: check that the fd still exists after getting a ref to it +- nbd: Fix use-after-free in blk_mq_free_rqs +- xfs: fix up non-directory creation in SGID directories +- pipe: Fix endless sleep problem due to the out-of-order +- blk-cgroup: prevent rcu_sched detected stalls warnings while iterating blkgs +- blk-throttle: don't check whether or not lower limit is valid if CONFIG_BLK_DEV_THROTTLING_LOW is off +- block: Fix fsync always failed if once failed +- kfence: fix memory leak when cat kfence objects +- io_uring: fix soft lockup when call __io_remove_buffers +- io_uring: return back safer resurrect +- io_uring: fix ltout double free on completion race +- ext4: always panic when errors=panic is specified +- scsi: core: Stop using DRIVER_ERROR +- drm/i915/guc: Update to use firmware v49.0.1 + +* Wed Jan 12 2022 Zheng Zengkai - 5.10.0-39.0.0.21 +- Increase-debugfs_dump_index-after-dump +- brd: expose number of allocated pages in debugfs +- net: hns3: create new common cmd code for PF and VF modules +- net: hns3: refactor VF tqp stats APIs with new common tqp stats APIs +- net: hns3: refactor PF tqp stats APIs with new common tqp stats APIs +- net: hns3: create new set of common tqp stats APIs for PF and VF reuse +- net: hns3: refactor VF rss init APIs with new common rss init APIs +- net: hns3: refactor PF rss init APIs with new common rss init APIs +- net: hns3: create new set of common rss init APIs for PF and VF reuse +- net: hns3: refactor VF rss set APIs with new common rss set APIs +- net: hns3: refactor PF rss set APIs with new common rss set APIs +- net: hns3: create new set of common rss set APIs for PF and VF module +- net: hns3: refactor VF rss get APIs with new common rss get APIs +- net: hns3: refactor PF rss get APIs with new common rss get APIs +- net: hns3: create new set of common rss get APIs for PF and VF rss module +- net: hns3: refactor hclge_comm_send function in PF/VF drivers +- net: hns3: create new rss common structure hclge_comm_rss_cfg +- net: hns3: delete the hclge_cmd.c and hclgevf_cmd.c +- net: hns3: refactor VF cmdq init and uninit APIs with new common APIs +- net: hns3: refactor PF cmdq init and uninit APIs with new common APIs +- net: hns3: create common cmdq init and uninit APIs +- net: hns3: refactor VF cmdq resource APIs with new common APIs +- net: hns3: refactor PF cmdq resource APIs with new common APIs +- net: hns3: create common cmdq resource allocate/free/query APIs +- net: hns3: refactor hclgevf_cmd_send with new hclge_comm_cmd_send API +- net: hns3: refactor hclge_cmd_send with new hclge_comm_cmd_send API +- net: hns3: create new set of unified hclge_comm_cmd_send APIs +- net: hns3: use struct hclge_desc to replace hclgevf_desc in VF cmdq module +- net: hns3: create new cmdq hardware description structure hclge_comm_hw +- net: hns3: refactor hns3 makefile to support hns3_common module +- Revert "bcache: add a framework to perform prefetch" +- Revert "bcache: provide a switch to bypass all IO requests" +- Revert "bcache: inflight prefetch requests block overlapped normal requests" +- Revert "bcache: Delay to invalidate cache data in writearound write" +- Revert "bcache: Add a sample of userspace prefetch client" +- Revert "bcache: Rewrite patch to delay to invalidate cache data" +- Revert "bcache: do not collect data insert info created by write_moving" +- Revert "bcache: always record start time of a sample" + +* Mon Jan 10 2022 Zheng Zengkai - 5.10.0-38.0.0.20 +- netfilter: fix regression in looped (broad|multi)cast's MAC handling +- ACPI: CPPC: Fix cppc_cpufreq_init failed in CPU Hotplug situation +- cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink() +- serial: amba-pl011: Fix serial port discard interrupt when interrupt signal line of serial port is connected to mbigen. +- dt-bindings: mpam: add document for arm64 mpam +- arm64/mpam: add device tree support for mpam initialization +- arm64/mpam: remove __init macro to support driver probe +- perf script: Fix printing 'phys_addr' failure issue +- bcache: always record start time of a sample +- bcache: do not collect data insert info created by write_moving +- bcache: Rewrite patch to delay to invalidate cache data +- bcache: Add a sample of userspace prefetch client +- bcache: Delay to invalidate cache data in writearound write +- bcache: inflight prefetch requests block overlapped normal requests +- bcache: provide a switch to bypass all IO requests +- bcache: add a framework to perform prefetch +- tcp: Add some stub info for KABI consistency +- BMA: Fix format string compile warning in arm32 builds + +* Sat Jan 08 2022 Zheng Zengkai - 5.10.0-36.0.0.19 +- hugepage: add sysctl for hugepage alloc and mig +- mm: export node type {pmem|dram} under /sys/bus/node +- acpi/numa: memorize node type from SRAT table +- etmem_scan: add pte_hole callback +- etmem_scan: release CPU after scan walk_step size +- etmem: fix potential UAF when walk ept page table +- etmem: fix concurrent access to export file operations +- etmem scan: fix memleak in vm_idle_read +- etmem_scan: x86: support scan 4 level ept under 5 level host page table +- etmem: x86: support scan hugetlb of vm +- etmem: add ioctl for mm idle scan +- RDMA/hns: Remove support for HIP06 +- RDMA/hns: Remove RST2RST error prints for hw v1 +- RDMA/hns: Support direct wqe of userspace +- RDMA/hns: Modify the mapping attribute of doorbell to device +- RDMA/hns: Encapsulate the qp db as a function +- RDMA/hns: Use the core code to manage the fixed mmap entries +- RDMA/hns: Use IDA interface to manage uar index +- RDMA/hns: Enable the cmd mask of uverbs to create and destroy AH +- RDMA/hns: Fix Direct WQE is not enable +- RDMA/hns: Enable stash feature of HIP09 + +* Fri Jan 07 2022 Zheng Zengkai - 5.10.0-35.0.0.18 +- tcp_comp: add stub proto ops for tcp compression socket +- tcp_comp: allow ignore local tcp connections +- tcp_comp: only enable compression for give server ports +- tcp_comp: add sysctl for enable/disable compression +- tcp_comp: add init and cleanup hook for compression +- tcp_comp: add tcp comp option to SYN and SYN-ACK +- tcp_comp: add Kconfig for tcp payload compression +- xfs: move the CIL workqueue to the CIL +- xfs: CIL work is serialised, not pipelined +- xfs: AIL needs asynchronous CIL forcing +- xfs: reduce ilock acquisitions in xfs_file_fsync +- xfs: refactor xfs_file_fsync +- xfs: throttle inode inactivation queuing on memory reclaim +- xfs: avoid buffer deadlocks when walking fs inodes +- xfs: use background worker pool when transactions can't get free space +- xfs: don't run speculative preallocation gc when fs is frozen +- xfs: flush inode inactivation work when compiling usage statistics +- xfs: inactivate inodes any time we try to free speculative preallocations +- xfs: queue inactivation immediately when free realtime extents are tight +- xfs: queue inactivation immediately when quota is nearing enforcement +- xfs: queue inactivation immediately when free space is tight +- xfs: per-cpu deferred inode inactivation queues +- xfs: detach dquots from inode if we don't need to inactivate it +- xfs: move xfs_inactive call to xfs_inode_mark_reclaimable +- xfs: remove the active vs running quota differentiation +- xfs: remove the flags argument to xfs_qm_dquot_walk +- xfs: remove xfs_dqrele_all_inodes +- xfs: remove support for disabling quota accounting on a mounted file system +- xfs: don't nest transactions when scanning for eofblocks +- xfs: force log and push AIL to clear pinned inodes when aborting mount +- xfs: separate primary inode selection criteria in xfs_iget_cache_hit +- xfs: refactor the inode recycling code +- xfs: add iclog state trace events +- xfs: rename struct xfs_eofblocks to xfs_icwalk +- xfs: change the prefix of XFS_EOF_FLAGS_* to XFS_ICWALK_FLAG_ +- xfs: selectively keep sick inodes in memory +- xfs: drop IDONTCACHE on inodes when we mark them sick +- xfs: refactor per-AG inode tagging functions +- xfs: merge xfs_reclaim_inodes_ag into xfs_inode_walk_ag +- xfs: pass struct xfs_eofblocks to the inode scan callback +- xfs: fix radix tree tag signs +- xfs: make the icwalk processing functions clean up the grab state +- xfs: clean up inode state flag tests in xfs_blockgc_igrab +- xfs: remove indirect calls from xfs_inode_walk{,_ag} +- xfs: remove iter_flags parameter from xfs_inode_walk_* +- xfs: move xfs_inew_wait call into xfs_dqrele_inode +- xfs: separate the dqrele_all inode grab logic from xfs_inode_walk_ag_grab +- xfs: pass the goal of the incore inode walk to xfs_inode_walk() +- xfs: rename xfs_inode_walk functions to xfs_icwalk +- xfs: move the inode walk functions further down +- xfs: detach inode dquots at the end of inactivation +- xfs: move the quotaoff dqrele inode walk into xfs_icache.c +- xfs: don't bounce the iolock between free_{eof,cow}blocks +- xfs: expose the blockgc workqueue knobs publicly +- xfs: rename the blockgc workqueue +- xfs: prevent metadata files from being inactivated +- xfs: parallelize block preallocation garbage collection +- xfs: rename block gc start and stop functions +- xfs: only walk the incore inode tree once per blockgc scan +- xfs: consolidate the eofblocks and cowblocks workers +- xfs: consolidate incore inode radix tree posteof/cowblocks tags +- xfs: remove trivial eof/cowblocks functions +- xfs: hide xfs_icache_free_cowblocks +- xfs: hide xfs_icache_free_eofblocks +- xfs: relocate the eofb/cowb workqueue functions +- xfs: set WQ_SYSFS on all workqueues in debug mode +- xfs: increase the default parallelism levels of pwork clients +- xfs: flush speculative space allocations when we run out of space +- xfs: refactor xfs_icache_free_{eof,cow}blocks call sites +- xfs: add a tracepoint for blockgc scans +- xfs: flush eof/cowblocks if we can't reserve quota for chown +- xfs: flush eof/cowblocks if we can't reserve quota for inode creation +- xfs: flush eof/cowblocks if we can't reserve quota for file blocks +- xfs: try worst case space reservation upfront in xfs_reflink_remap_extent +- xfs: pass flags and return gc errors from xfs_blockgc_free_quota +- xfs: move and rename xfs_inode_free_quota_blocks to avoid conflicts +- xfs: xfs_inode_free_quota_blocks should scan project quota +- xfs: don't stall cowblocks scan if we can't take locks +- xfs: trigger all block gc scans when low on quota space +- xfs: shut down the filesystem if we screw up quota reservation +- xfs: rename code to error in xfs_ioctl_setattr +- xfs: remove xfs_qm_vop_chown_reserve +- xfs: refactor inode ownership change transaction/inode/quota allocation idiom +- xfs: refactor inode creation transaction/inode/quota allocation idiom +- xfs: refactor reflink functions to use xfs_trans_alloc_inode +- xfs: allow reservation of rtblocks with xfs_trans_alloc_inode +- xfs: refactor common transaction/inode/quota allocation idiom +- xfs: reserve data and rt quota at the same time +- xfs: fix up build warnings when quotas are disabled +- xfs: clean up icreate quota reservation calls +- xfs: remove xfs_trans_unreserve_quota_nblks completely +- xfs: create convenience wrappers for incore quota block reservations +- xfs: clean up quota reservation callsites +- xfs: reduce quota reservation when doing a dax unwritten extent conversion +- scsi:spraid: use bsg module to replace with ioctrl +- KVM: vmx/pmu: Fix dummy check if lbr_desc->event is created +- KVM: vmx/pmu: Expose LBR_FMT in the MSR_IA32_PERF_CAPABILITIES +- KVM: vmx/pmu: Release guest LBR event via lazy release mechanism +- KVM: vmx/pmu: Emulate legacy freezing LBRs on virtual PMI +- KVM: vmx/pmu: Reduce the overhead of LBR pass-through or cancellation +- KVM: vmx/pmu: Pass-through LBR msrs when the guest LBR event is ACTIVE +- KVM: vmx/pmu: Create a guest LBR event when vcpu sets DEBUGCTLMSR_LBR +- KVM: vmx/pmu: Add PMU_CAP_LBR_FMT check when guest LBR is enabled +- KVM: vmx/pmu: Add PMU_CAP_LBR_FMT check when guest LBR is enabled +- KVM: x86/pmu: preserve IA32_PERF_CAPABILITIES across CPUID refresh +- KVM: x86/vmx: Make vmx_set_intercept_for_msr() non-static +- KVM: VMX: read/write MSR_IA32_DEBUGCTLMSR from GUEST_IA32_DEBUGCTL +- openeuler_defconfig: Enable sharepool feature in defconfig +- net/spnic:The reset command flags modification. +- net/spnic:Attribute negotiation and optimization. +- net/spnic:RSS initialization process optimization +- arm64: Fix conflict for capability when cpu hotplug +- memcg: Add static key for memcg kswapd +- memcg: make memcg kswapd deal with dirty +- memcg: support memcg sync reclaim work as kswapd +- memcg: Export memcg.high from cgroupv2 to cgroupv1 +- memcg: Export memcg.{min/low} from cgroupv2 to cgroupv1 +- kabi: Add reserved page and gfp flags for future extension +- kabi: reserve space for cgroup_bpf_attach_type and bpf_cgroup_storage_type +- bpf: Migrate cgroup_bpf to internal cgroup_bpf_attach_type enum +- bpf: Split cgroup_bpf_enabled per attach type +- bpf: Try to avoid kzalloc in cgroup/{s,g}etsockopt +- bpf: Allow bpf_{s,g}etsockopt from cgroup bind{4,6} hooks +- KABI: Add KABI_AUX_PTR extenstions to some more base structures +- kabi: Generalize naming of kabi helper macros +- arm64: Request resources for reserved memory via memmap +- arm64: Add support for memmap kernel parameters + +* Fri Jan 07 2022 Zheng Zengkai - 5.10.0-34.0.0.17 +- openeuler_defconfig: Enable CONFIG_KABI_RESERVE for x86 and arm64 +- KABI: Add CONFIG_KABI_RESERVE to control KABI padding reserve +- KABI: Fix allmodconfig build error +- Revert "kabi: reserve space for ptp_clock.h" +- kabi: reserve space for arm64 cpufeature related structure +- UAPI: nfsfh.h: Replace one-element array with flexible-array member +- kabi: Add kabi reservation for storage module +- KABI:reserve space for sched structures +- KABI: reserve space for IMA IPE +- kabi: reserve space for cred and user_namespace +- Increase size of ucounts to atomic_long_t +- kabi: reserve space for fwnode.h +- kabi: reserve space for iommu.h +- kabi: reserve space for ptp_clock.h +- kabi: reserve space for struct ptp_clock_info +- kabi: reserve space for struct ptp_clock +- kabi: reserve space for struct module +- kabi: reserve space for kobject related structures +- kabi: reserve space for io subsystem related structures +- KABI: add KABI padding to x86/paravirt ops structures +- KABI: add KABI padding to cpuidle structures +- kabi: reserve space for struct dma_map_ops +- kabi: reserve space for struct cpu_stop_work +- kabi: reserve space for perf subsystem related structures +- kabi: net: reserve space for net netfilter subsystem related structure +- kabi: net: reserve space for net bpf subsystem related structure +- kabi: net: reserve space for net rdma subsystem related structure +- kabi: net: reserve space for net sunrpc subsystem related structure +- kabi: net: reserve space for net can subsystem related structure +- kabi: net: reserve space for net base subsystem related structure +- kabi: reserve space for cgroup bpf structures +- kabi: reserve space for cpu cgroup and cpuset cgroup related structures +- kabi: reserve space for memcg related structures +- kabi: reserve space for cgroup framework related structures +- kabi: mm: reserve space for memory subsystem related +- msi: Add kabi_reserve in msi.h +- irqdomain: Add kabi_reserve in irqdomain +- irq_desc: Add kabi_reserve in irq_desc +- irq: Add kabi_reserve in irq +- interrupt: Add kabi_reserve in interrupt.h +- bootparam: Add kabi_reserve in bootparam +- kabi: reserve space for hrtimer related structures +- kabi: reserve space for time and workqueue subsystem related structure +- kabi: reserve space for struct worker +- kabi: reserve space for net_namespace +- kabi: reserve space for power management related structure +- kabi: reserve space for pci subsystem related structure +- kabi: reserve space for posix clock related structure +- kabi: add kABI reference checking tool +- kabi: add a tool to generate the kabi reference relationship +- kabi: add script tools to check kabi symbol +- kabi: enables more stringent kabi checks +- kabi: add KABI_SIZE_ALIGN_CHECKS for more stringent kabi checks +- kabi: add kabi helper macros +- pci: do not save 'PCI_BRIDGE_CTL_BUS_RESET' +- PCI: check BIR before mapping MSI-X Table +- PCI: Fail MSI-X mapping if MSI-X Table offset is out of range of BAR space +- PCI/sysfs: Take reference on device to be removed +- pciehp: fix a race between pciehp and removing operations by sysfs +- iommu/arm-smmu-v3: Add suspend and resume support +- cgroup: Fix task_css_check rcu warnings +- psi: using cpuacct_cgrp_id under CONFIG_CGROUP_CPUACCT +- psi: fix unexpected behavior of psi in cgroup v1 during init +- perf inject: Fix ARM SPE handling +- perf tools: Set COMPAT_NEED_REALLOCARRAY for CONFIG_AUXTRACE=1 +- perf arm-spe: Support hardware-based PID tracing +- perf arm-spe: Save context ID in record +- perf arm-spe: Update --switch-events docs in 'perf record' +- perf arm-spe: Track task context switch for cpu-mode events +- perf arm-spe: Print size using consistent format +- perf arm-spe: Implement find_snapshot callback +- perf arm-spe: Snapshot mode test +- perf arm-spe: Add snapshot mode support +- perf arm-spe: Don't wait for PERF_RECORD_EXIT event +- perf arm-spe: Bail out if the trace is later than perf event +- perf arm-spe: Assign kernel time to synthesized event +- perf arm-spe: Convert event kernel time to counter value +- perf arm-spe: Save clock parameters from TIME_CONV event +- perf arm-spe: Remove redundant checking for "full_auxtrace" +- perf arm-spe: Enable timestamp for per-cpu mode +- perf arm-spe: Correct sample flags for dummy event +- perf arm-spe: Correct sample flags for SPE event +- perf arm-spe: Avoid potential buffer overrun +- perf arm-spe: Set sample's data source field +- perf arm-spe: Synthesize memory event +- perf arm-spe: Fill address info for samples +- perf arm-spe: Store operation type in packet +- perf arm-spe: Store memory address in packet +- perf arm-spe: Enable sample type PERF_SAMPLE_DATA_SRC +- perf c2c: Add local variables for output metrics +- perf c2c: Refactor node display +- perf c2c: Fix argument type for percent() +- perf c2c: Refactor display filter +- perf c2c: Refactor hist entry validation +- perf c2c: Rename for shared cache line stats +- perf arm-spe: Add support for ARMv8.3-SPE +- perf arm_spe: Decode memory tagging properties +- perf arm-spe: Add more sub classes for operation packet +- perf arm-spe: Refactor operation packet handling +- perf arm-spe: Add new function arm_spe_pkt_desc_op_type() +- perf arm-spe: Remove size condition checking for events +- perf arm-spe: Refactor event type handling +- perf arm-spe: Add new function arm_spe_pkt_desc_event() +- perf arm-spe: Refactor counter packet handling +- perf arm-spe: Add new function arm_spe_pkt_desc_counter() +- perf arm-spe: Refactor context packet handling +- perf arm_spe: Fixup top byte for data virtual address +- perf arm-spe: Refactor address packet handling +- perf arm-spe: Add new function arm_spe_pkt_desc_addr() +- perf arm-spe: Refactor packet header parsing +- perf arm-spe: Refactor printing string to buffer +- perf arm-spe: Fix packet length handling +- perf arm-spe: Refactor arm_spe_get_events() +- perf arm-spe: Refactor payload size calculation +- perf arm-spe: Fix a typo in comment +- perf arm-spe: Include bitops.h for BIT() macro +- perf mem: Support ARM SPE events +- perf c2c: Support AUX trace +- perf mem: Support AUX trace +- perf auxtrace: Add itrace option '-M' for memory events +- perf mem: Only initialize memory event for recording +- perf c2c: Support memory event PERF_MEM_EVENTS__LOAD_STORE +- perf mem: Support new memory event PERF_MEM_EVENTS__LOAD_STORE +- perf mem: Introduce weak function perf_mem_events__ptr() +- perf mem: Search event name with more flexible path +- share_pool: Use sharepool_no_page to alloc hugepage +- share_pool: Show sp vmflags in /proc/$pid/smaps +- share_pool: charge pages to the memcg of current task +- share_pool: Use node_id from spa when alloc share_pool memory +- share_pool: Don't allow non-sp mmap in sp address range +- share_pool: support fork() and exit() to handle the mm +- share_pool: Implement sp_group_del_task() +- share_pool: Implement sp_group_add_task() +- share_pool: Implement sp_alloc() +- share_pool: Implement sp_unshare_uva() +- share_pool: Implement sp_make_share_k2u() +- share_pool: Implement sp_free() +- share_pool: Implement sp_group_id_by_pid() +- share_pool: Implement sp_unshare_kva +- share_pool: Implement sp_make_share_u2k() +- share_pool: Compact memory when necessary +- share_pool: Add sp-area management code +- share_pool: Implement sp_walk_page_range() +- share_pool: Add VM_SHARE_POOL flag for vm_area_struct +- share_pool: Add proc interfaces to show sp info +- share_pool: Reserve the va space for share_pool +- share_pool: Add Statement for all the exported symbol +- share_pool: Add base framework for share_pool +- shmem: Alloc shared memory on a specified memory node +- memory: introduce do_mm_populate +- vmalloc: Extend for hugepages mapping +- mm/hugetlb: allocate huge page and setup page table +- timekeeping: Really make sure wall_to_monotonic isn't positive +- tracing/osnoise: Fix compile warning in function start_kthread +- configs: Enable osnoise and timerlat +- tracing: Have osnoise_main() add a quiescent state for task rcu +- tracing/osnoise: Make osnoise_instances static +- tracing/osnoise: Remove PREEMPT_RT ifdefs from inside functions +- tracing/osnoise: Remove STACKTRACE ifdefs from inside functions +- tracing/osnoise: Allow multiple instances of the same tracer +- tracing/osnoise: Remove TIMERLAT ifdefs from inside functions +- tracing: Disable "other" permission bits in the tracefs files +- tracing/osnoise: Support a list of trace_array *tr +- tracing/osnoise: Use start/stop_per_cpu_kthreads() on osnoise_cpus_write() +- tracing/osnoise: Split workload start from the tracer start +- tracing/osnoise: Improve comments about barrier need for NMI callbacks +- tracing/osnoise: Do not follow tracing_cpumask +- tracing: Fix missing osnoise tracer on max_latency +- tracing/osnoise: Fix missed cpus_read_unlock() in start_per_cpu_kthreads() +- trace/osnoise: Print a stop tracing message +- trace/osnoise: Make 'noise' variable s64 in run_osnoise() +- tracing: Fix spelling in osnoise tracer "interferences" -> "interference" +- Documentation: Fix a typo on trace/osnoise-tracer +- trace/osnoise: Fix return value on osnoise_init_hotplug_support +- trace/osnoise: Make interval u64 on osnoise_main +- trace/osnoise: Support hotplug operations +- trace/osnoise: Fix 'no previous prototype' warnings +- trace/osnoise: Fix an ifdef comment +- trace/osnoise: Add a header with PREEMPT_RT additional fields +- trace: Add timerlat tracer +- trace: Add osnoise tracer +- tracing: Merge irqflags + preempt counter. +- trace: Add __print_ns_to_secs() and __print_ns_without_secs() helpers +- trace: Add a generic function to read/write u64 values from tracefs +- driver core: auxiliary bus: Fix memory leak when driver_register() fail +- driver core: auxiliary bus: Remove unneeded module bits +- driver core: auxiliary bus: Fix calling stage for auxiliary bus init +- driver core: auxiliary bus: Fix auxiliary bus shutdown null auxdrv ptr +- driver core: auxiliary bus: minor coding style tweaks +- driver core: auxiliary bus: make remove function return void +- driver core: auxiliary bus: move slab.h from include file +- Add auxiliary bus support +- svm: Set CONFIG_HISI_SVM as m by default +- svm: Change svm to modules and remove unused functions +- arm64/ascend: Enable CONFIG_ASCEND_OOM for openeuler_defconfig +- arm64/ascend: Add new enable_oom_killer interface for oom contrl +- x86: Support huge vmalloc mappings +- arm64: Support huge vmalloc mappings +- mm: vmalloc: Let user to control huge vmalloc default behavior +- pid_ns: Make pid_max per namespace +- arm64/mpam: rmid: refine allocation and release process +- arm64/mpam: resctrl: add tips when rmid modification failed +- arm64/mpam: Fix mpam corrupt when cpu online +- vfio/mdev: Add missing error handling to dev_set_name() +- KVM: arm64: Restore PMU configuration on first run +- KVM: arm64: Refuse to run VCPU if PMU is not initialized +- KVM: arm64: Add kvm_vcpu_has_pmu() helper +- KVM: LAPIC: Keep stored TMCCT register value 0 after KVM_SET_LAPIC +- KVM: x86: Properly reset MMU context at vCPU RESET/INIT +- KVM: LAPIC: Write 0 to TMICT should also cancel vmx-preemption timer +- KVM: X86: Fix missing local pCPU when executing wbinvd on all dirty pCPUs +- kvm: SMM: fix losing SMI problem +- arm64: mm: support setting page attributes for debugging +- mm: emit the "free" trace report before freeing memory in kmem_cache_free() +- mm, page_alloc: disable pcplists during memory offline +- mm, page_alloc: move draining pcplists to page isolation users +- mm, page_alloc: cache pageset high and batch in struct zone +- mm, page_alloc: simplify pageset_update() +- mm, page_alloc: remove setup_pageset() +- mm, page_alloc: calculate pageset high and batch once per zone +- mm, page_alloc: clean up pageset high and batch update +- tools arch x86: Sync the msr-index.h copy with the kernel sources +- powercap: RAPL: Add AMD Fam19h RAPL support +- powercap: Add AMD Fam17h RAPL support +- powercap/intel_rapl_msr: Convert rapl_msr_priv into pointer +- x86/msr-index: sort AMD RAPL MSRs by address +- Revert "ima: Introduce ima namespace" +- Revert "ima: Add a list of the installed ima namespaces" +- Revert "ima: Bind ima namespace to the file descriptor" +- Revert "ima: Add ima policy related data to the ima namespace" +- Revert "ima: Add methods for parsing ima policy configuration string" +- Revert "ima: Add ima namespace to the ima subsystem APIs" +- Revert "ima: Extend the APIs in the integrity subsystem" +- Revert "ima: Add integrity inode related data to the ima namespace" +- Revert "ima: Enable per ima namespace policy settings" +- Revert "ima: Add ima namespace id to the measurement list related structures" +- Revert "ima: Keep track of the measurment list per ima namespace" +- Revert "ima: Check ima namespace ID during digest entry lookup" +- Revert "ima: Add a new ima template that includes namespace ID" +- Revert "ima: Add per namespace view of the measurement list" +- Revert "ima: Add a reader counter to the integrity inode data" +- Revert "ima: Extend permissions to the ima securityfs entries" +- Revert "ima: Add the violation counter to the namespace" +- Revert "ima: Change the owning user namespace of the ima namespace if necessary" +- Revert "ima: Configure the new ima namespace from securityfs" +- Revert "ima: Parse per ima namespace policy file" +- Revert "user namespace: Add function that checks if the UID map is defined" +- Revert "ima: Remap IDs of subject based rules if necessary" +- Revert "keys: Add domain tag to the keyring search criteria" +- Revert "keys: Include key domain tag in the iterative search" +- Revert "keys: Allow to set key domain tag separately from the key type" +- Revert "ima: Add key domain to the ima namespace" +- Revert "integrity: Add key domain tag to the search criteria" +- Revert "ima: Load per ima namespace x509 certificate" +- Revert "ima: Add dummy boot aggregate to per ima namespace measurement list" +- Revert "ima: Set ML template per ima namespace" +- Revert "ima: fix a potential crash owing to the compiler optimisation" +- Revert "ima: Introduce ima-ns-sig template" +- Revert "digest list: disable digest lists in non-root ima namespaces" +- Revert "imans: Use initial ima namespace domain tag when IMANS is disabled." +- Revert "imans: Check CAP_SYS_ADMIN in userns associated with IMA NS during configuration." +- config: enable CONFIG_ASCEND_CLEAN_CDM by default +- numa/cdm: Introduce a bootarg to specify the target nodes to move to +- numa: Move the management structures for cdm nodes to ddr +- tick/nohz: Call tick_nohz_task_switch() with interrupts disabled +- tick/nohz: Kick only _queued_ task whose tick dependency is updated +- tick/nohz: Change signal tick dependency to wake up CPUs of member tasks +- tick/nohz: Only wake up a single target cpu when kicking a task +- tick/nohz: Update idle_exittime on actual idle exit +- tick/nohz: Remove superflous check for CONFIG_VIRT_CPU_ACCOUNTING_NATIVE +- tick/nohz: Conditionally restart tick on idle exit +- tick/sched: Release seqcount before invoking calc_load_global() +- tick/sched: Optimize tick_do_update_jiffies64() further +- tick/sched: Reduce seqcount held scope in tick_do_update_jiffies64() +- tick/sched: Use tick_next_period for lockless quick check +- arm64: Revert feature: Add memmap parameter and register pmem +- crypto: hisilicon/zip - enable ssid for sva sgl +- crypto: hisilicon/zip - add new algorithms for uacce device +- PCI: fix the wrong class type for HiSilicon NP 5896 +- PCI: Fix SD5896 NP init failure +- fs: fix a hungtask problem when freeze/unfreeze fs +- PCI: Add support of port isolation for QLogic HBA card 26 +- xfs: fix chown leaking delalloc quota blocks when fssetxattr fails +- xfs: punch out data fork delalloc blocks on COW writeback failure +- xfs: use kmem_cache_free() for kmem_cache objects +- xfs: fix I_DONTCACHE +- xfs: only set IOMAP_F_SHARED when providing a srcmap to a write +- xfs: fix perag structure refcounting error when scrub fails +- xfs: make fsmap backend function key parameters const +- xfs: fix off-by-one error when the last rt extent is in use +- xfs: make xfs_rtalloc_query_range input parameters const +- xfs: replace kmem_alloc_large() with kvmalloc() +- xfs: remove kmem_alloc_io() +- mm: Add kvrealloc() +- xfs: introduce all-mounts list for cpu hotplug notifications +- xfs: introduce CPU hotplug infrastructure +- xfs: prevent spoofing of rtbitmap blocks when recovering buffers +- xfs: Enforce attr3 buffer recovery order +- xfs: logging the on disk inode LSN can make it go backwards +- xfs: avoid unnecessary waits in xfs_log_force_lsn() +- xfs: log forces imply data device cache flushes +- xfs: factor out forced iclog flushes +- xfs: fix ordering violation between cache flushes and tail updates +- xfs: fold __xlog_state_release_iclog into xlog_state_release_iclog +- xfs: external logs need to flush data device +- xfs: flush data dev on external log write +- xfs: fix an integer overflow error in xfs_growfs_rt +- xfs: reset child dir '..' entry when unlinking child +- xfs: don't wait on future iclogs when pushing the CIL +- xfs: Fix a CIL UAF by getting get rid of the iclog callback lock +- xfs: remove callback dequeue loop from xlog_state_do_iclog_callbacks +- xfs: don't nest icloglock inside ic_callback_lock +- xfs: force the log offline when log intent item recovery fails +- xfs: fix log intent recovery ENOSPC shutdowns when inactivating inodes +- xfs: xfs_log_force_lsn isn't passed a LSN +- xfs: Fix CIL throttle hang when CIL space used going backwards +- xfs: journal IO cache flush reductions +- xfs: remove need_start_rec parameter from xlog_write() +- xfs: CIL checkpoint flushes caches unconditionally +- xfs: async blkdev cache flush +- xfs: separate CIL commit record IO +- xfs: Fix 64-bit division on 32-bit in xlog_state_switch_iclogs() +- xfs: log stripe roundoff is a property of the log +- xfs: only reset incore inode health state flags when reclaiming an inode +- xfs: don't take a spinlock unconditionally in the DIO fastpath +- xfs: bunmapi has unnecessary AG lock ordering issues +- xfs: btree format inode forks can have zero extents +- xfs: Fix fall-through warnings for Clang +- xfs: don't reset log idle state on covering checkpoints +- xfs: check free AG space when making per-AG reservations +- xfs: unconditionally read all AGFs on mounts with perag reservation +- xfs: fix deadlock retry tracepoint arguments +- xfs: fix scrub and remount-ro protection when running scrub +- xfs: fix xfs_reflink_unshare usage of filemap_write_and_wait_range +- xfs: count free space btree blocks when scrubbing pre-lazysbcount fses +- xfs: update superblock counters correctly for !lazysbcount +- xfs: don't check agf_btreeblks on pre-lazysbcount filesystems +- xfs: remove obsolete AGF counter debugging +- xfs: drop submit side trans alloc for append ioends +- net: hns3: Fix spelling mistake "faile" -> "failed" +- net: hns3: fix hns3 driver header file not self-contained issue +- net: hns3: replace one tab with space in for statement +- net: hns3: remove rebundant line for hclge_dbg_dump_tm_pg() +- net: hns3: add comments for hclge_dbg_fill_content() +- net: hns3: align return value type of atomic_read() with its output +- net: hns3: modify one argument type of function hclge_ncl_config_data_print +- net: hns3: Align type of some variables with their print type +- net: hns3: add print vport id for failed message of vlan +- net: hns3: refactor function hclge_set_vlan_filter_hw +- net: hns3: optimize function hclge_cfg_common_loopback() +- net: hns3: refactor function hns3_get_vector_ring_chain() +- net: hns3: refactor function hclge_set_channels() +- net: hns3: refactor function hclge_configure() +- net: hns3: split function hclge_update_port_base_vlan_cfg() +- net: hns3: split function hns3_nic_net_xmit() +- net: hns3: split function hclge_get_fd_rule_info() +- net: hns3: split function hclge_init_vlan_config() +- net: hns3: refactor function hns3_fill_skb_desc to simplify code +- net: hns3: extract macro to simplify ring stats update code +- net: hns3: make symbol 'hclge_mac_speed_map_to_fw' static +- net: hns3: split function hns3_set_l2l3l4() +- net: hns3: split function hns3_handle_bdinfo() +- net: hns3: split function hns3_nic_get_stats64() +- net: hns3: refine function hclge_tm_pri_q_qs_cfg() +- net: hns3: add new function hclge_tm_schd_mode_tc_base_cfg() +- net: hns3: refine function hclge_cfg_mac_speed_dup_hw() +- net: hns3: split function hns3_get_tx_timeo_queue_info() +- net: hns3: refactor two hns3 debugfs functions +- net: hns3: refactor hns3_nic_reuse_page() +- net: hns3: refactor reset_prepare_general retry statement +- net: hns3: use macro IANA_VXLAN_GPE_UDP_PORT to replace number 4790 +- net: vxlan: add macro definition for number of IANA VXLAN-GPE port +- net: hns3: fix incorrect components info of ethtool --reset command +- net: hns3: fix one incorrect value of page pool info when queried by debugfs +- net: hns3: add check NULL address for page pool +- net: hns3: fix VF RSS failed problem after PF enable multi-TCs +- net: hns3: add dql info when tx timeout +- net: hns3: debugfs add drop packet statistics of multicast and broadcast for igu +- net: hns3: format the output of the MAC address +- net: hns3: add log for workqueue scheduled late +- net: hns3: remove the way to set tx spare buf via module parameter +- net: hns3: add support to set/get rx buf len via ethtool for hns3 driver +- ethtool: extend ringparam setting/getting API with rx_buf_len +- ethtool: add support to set/get rx buf len via ethtool +- net: hns3: add support to set/get tx copybreak buf size via ethtool for hns3 driver +- ethtool: add support to set/get tx copybreak buf size via ethtool +- vhost_net: avoid tx queue stuck when sendmsg fails +- crypto: x86/sm4 - Fix invalid section entry size +- crypto: sm4 - Do not change section of ck and sbox +- crypto: x86/sm4 - Fix frame pointer stack corruption +- Add the configuration for accelerated of SM4 +- crypto: x86/sm4 - add AES-NI/AVX2/x86_64 implementation +- crypto: x86/sm4 - export reusable AESNI/AVX functions +- crypto: tcrypt - add the asynchronous speed test for SM4 +- crypto: x86/sm4 - add AES-NI/AVX/x86_64 implementation +- crypto: arm64/sm4-ce - Make dependent on sm4 library instead of sm4-generic +- crypto: sm4 - create SM4 library based on sm4 generic code +- crypto: tcrypt - add GCM/CCM mode test for SM4 algorithm +- crypto: testmgr - Add GCM/CCM mode test of SM4 algorithm +- crypto: tcrypt - Fix missing return value check +- ipvlan: limit loop_qlen ranges +- ipvlan: limit loop_delay ranges +- ipvlan: Introduce local xmit queue for l2e mode +- ipvlan: check the value of module parameter ipvlan_default_mode +- ipvlan: Introduce l2e mode +- mpam: update monitor rmid and group configuration +- mpam: Add support for group rmid modify +- mpam: enable rdt_mon_capable for mbw monitor +- iommu/arm-smmu-v3: Add support to enable/disable SMMU user_mpam_en +- iommu/arm-smmu-v3: Add support to get SMMU mpam configuration +- iommu/arm-smmu-v3: Add support to configure mpam in STE/CD context +- iommu: add iommu interface to set/get device configuration +- block/wbt: fix negative inflight counter when remove scsi device +- md/raid1: fix a race between removing rdev and access conf->mirrors[i].rdev +- arm64/ascend: Enable CONFIG_ASCEND_DVPP_MMAP +- arm64/ascend: Enable DvPP mmap features for Ascend Platform +- arm64: openeuler_defconfig: Adjust page size to 4K and VA_BITS to 48 +- openeuler_defconfig: Adjust CONFIG_NODES_SHIFT to 7 +- arm64: openeuler_defconfig: increase CONFIG_NR_CPUS value to 4096 +- audit: ensure userspace is penalized the same as the kernel when under pressure +- audit: improve robustness of the audit queue handling +- arm32: kaslr: Bugfix of initrd size calculation when enabled kaslr +- drm/hisilicon: Features to support reading resolutions from EDID +- drm/hisilicon: Support i2c driver algorithms for bit-shift adapters +- mm: Change tmpfs size base on ddr size. +- SUNRPC: Close a race with transport setup and module put +- sched: Introduce handle priority reversion mechanism +- mm: Check numa node hugepages enough when mmap hugetlb +- block: return errors from blk_execute_rq() +- blk: Fix lock inversion between ioc lock and bfqd lock +- bfq: Remove merged request already in bfq_requests_merged() + +* Fri Dec 24 2021 Zheng Zengkai - 5.10.0-25.0.0.16 +- selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage +- thermal: Fix NULL pointer dereferences in of_thermal_ functions +- perf/core: Avoid put_page() when GUP fails +- scripts/lld-version.sh: Rewrite based on upstream ld-version.sh +- erofs: fix unsafe pagevec reuse of hooked pclusters +- erofs: remove the occupied parameter from z_erofs_pagevec_enqueue() +- PCI: Add MSI masking quirk for Nvidia ION AHCI +- PCI/MSI: Deal with devices lying about their MSI mask capability +- PCI/MSI: Destroy sysfs before freeing entries +- parisc/entry: fix trace test in syscall exit path +- x86/iopl: Fake iopl(3) CLI/STI usage +- net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings +- net: stmmac: fix issue where clk is being unprepared twice +- net: stmmac: fix system hang if change mac address after interface ifdown +- net: stmmac: fix missing unlock on error in stmmac_suspend() +- net: stmmac: platform: fix build error with !CONFIG_PM_SLEEP +- net: stmmac: add clocks management for gmac driver +- bootconfig: init: Fix memblock leak in xbc_make_cmdline() +- loop: Use blk_validate_block_size() to validate block size +- block: Add a helper to validate the block size +- fortify: Explicitly disable Clang support +- soc/tegra: pmc: Fix imbalanced clock disabling in error code path +- x86/sev: Make the #VC exception stacks part of the default stacks storage +- x86/sev: Add an x86 version of cc_platform_has() +- arch/cc: Introduce a function to check for confidential computing features +- selftests/bpf: Fix also no-alu32 strobemeta selftest +- mmc: moxart: Fix null pointer dereference on pointer host +- ath10k: fix invalid dma_addr_t token assignment +- SUNRPC: Partial revert of commit 6f9f17287e78 +- PCI: aardvark: Fix PCIe Max Payload Size setting +- PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros +- drm/sun4i: Fix macros in sun8i_csc.h +- powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n +- powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload +- mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines +- mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines +- mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines +- mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines +- mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines +- mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines +- mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines +- mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines +- s390/cio: make ccw_device_dma_* more robust +- s390/ap: Fix hanging ioctl caused by orphaned replies +- s390/tape: fix timer initialization in tape_std_assign() +- s390/cio: check the subchannel validity for dev_busid +- video: backlight: Drop maximum brightness override for brightness zero +- mfd: dln2: Add cell for initializing DLN2 ADC +- mm, oom: do not trigger out_of_memory from the #PF +- mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks +- powerpc/bpf: Emit stf barrier instruction sequences for BPF_NOSPEC +- powerpc/security: Add a helper to query stf_barrier type +- powerpc/bpf: Validate branch ranges +- powerpc/lib: Add helper to check if offset is within conditional branch range +- memcg: prohibit unconditional exceeding the limit of dying tasks +- 9p/net: fix missing error check in p9_check_errors +- net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE +- f2fs: should use GFP_NOFS for directory inodes +- irqchip/sifive-plic: Fixup EOI failed when masked +- posix-cpu-timers: Clear task::posix_cputimers_work in copy_process() +- x86/mce: Add errata workaround for Skylake SKX37 +- MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL +- parisc: Fix backtrace to always include init funtion names +- ARM: 9156/1: drop cc-option fallbacks for architecture selection +- ARM: 9155/1: fix early early_iounmap() +- selftests/net: udpgso_bench_rx: fix port argument +- cxgb4: fix eeprom len when diagnostics not implemented +- net/smc: fix sk_refcnt underflow on linkdown and fallback +- vsock: prevent unnecessary refcnt inc for nonblocking connect +- net: stmmac: allow a tc-taprio base-time of zero +- net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any +- seq_file: fix passing wrong private data +- gve: Fix off by one in gve_tx_timeout() +- bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding +- bpf, sockmap: Remove unhash handler for BPF sockmap usage +- arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions +- nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails +- llc: fix out-of-bound array index in llc_sk_dev_hash() +- perf bpf: Add missing free to bpf_event__print_bpf_prog_info() +- zram: off by one in read_block_state() +- mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and zs_unregister_migration() +- can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for mcp251xfd_chip_rx_int_enable() +- mfd: core: Add missing of_node_put for loop iteration +- drm/nouveau/svm: Fix refcount leak bug and missing check against null bug +- ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses +- ice: Fix not stopping Tx queues for VFs +- ice: Fix replacing VF hardware MAC to existing MAC filter +- net: vlan: fix a UAF in vlan_dev_real_dev() +- openrisc: fix SMP tlb flush NULL pointer dereference +- ethtool: fix ethtool msg len calculation for pause stats +- net: davinci_emac: Fix interrupt pacing disable +- xen-pciback: Fix return in pm_ctrl_init() +- i2c: xlr: Fix a resource leak in the error handling path of 'xlr_i2c_probe()' +- NFSv4: Fix a regression in nfs_set_open_stateid_locked() +- scsi: qla2xxx: Turn off target reset during issue_lip +- scsi: qla2xxx: Fix gnl list corruption +- scsi: qla2xxx: Relogin during fabric disturbance +- scsi: qla2xxx: Changes to support FCP2 Target +- ar7: fix kernel builds for compiler test +- watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT +- m68k: set a default value for MEMORY_RESERVE +- signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL) +- dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result` +- netfilter: nfnetlink_queue: fix OOB when mac header was cleared +- soc: fsl: dpaa2-console: free buffer before returning from dpaa2_console_read +- auxdisplay: ht16k33: Fix frame buffer device blanking +- auxdisplay: ht16k33: Connect backlight to fbdev +- auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string +- Fix user namespace leak +- NFS: Fix an Oops in pnfs_mark_request_commit() +- NFS: Fix up commit deadlocks +- dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro +- rtc: rv3032: fix error handling in rv3032_clkout_set_rate() +- remoteproc: Fix a memory leak in an error handling path in 'rproc_handle_vdev()' +- mtd: core: don't remove debugfs directory if device is in use +- PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation +- mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare() +- fs: orangefs: fix error return code of orangefs_revalidate_lookup() +- NFS: Fix deadlocks in nfs_scan_commit_list() +- opp: Fix return in _opp_add_static_v2() +- PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge +- PCI: aardvark: Don't spam about PIO Response Status +- drm/plane-helper: fix uninitialized variable reference +- pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds +- NFS: Fix dentry verifier races +- i2c: mediatek: fixing the incorrect register offset +- nfsd: don't alloc under spinlock in rpc_parse_scope_id +- rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined +- apparmor: fix error check +- power: supply: bq27xxx: Fix kernel crash on IRQ handler register error +- mips: cm: Convert to bitfield API to fix out-of-bounds access +- virtio_ring: check desc == NULL when using indirect with packed +- ASoC: cs42l42: Correct configuring of switch inversion from ts-inv +- ASoC: cs42l42: Use device_property API instead of of_property +- ASoC: cs42l42: Disable regulators if probe fails +- powerpc/44x/fsp2: add missing of_node_put +- HID: u2fzero: properly handle timeouts in usb_submit_urb +- HID: u2fzero: clarify error check and length calculations +- clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL +- serial: xilinx_uartps: Fix race condition causing stuck TX +- phy: qcom-snps: Correct the FSEL_MASK +- phy: ti: gmii-sel: check of_get_address() for failure +- phy: qcom-qusb2: Fix a memory leak on probe +- pinctrl: equilibrium: Fix function addition in multiple groups +- soc: qcom: apr: Add of_node_put() before return +- firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available() +- usb: dwc2: drd: reset current session before setting the new one +- usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled +- usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init +- serial: imx: fix detach/attach of serial console +- scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer +- scsi: ufs: Refactor ufshcd_setup_clocks() to remove skip_ref_clk +- iio: adis: do not disabe IRQs in 'adis_init()' +- usb: typec: STUSB160X should select REGMAP_I2C +- soc: qcom: rpmhpd: Make power_on actually enable the domain +- soc: qcom: rpmhpd: Provide some missing struct member descriptions +- ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER +- ASoC: cs42l42: Correct some register default values +- ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 +- ARM: dts: stm32: fix SAI sub nodes register range +- ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz +- pinctrl: renesas: checker: Fix off-by-one bug in drive register check +- staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC +- staging: most: dim2: do not double-register the same device +- usb: musb: select GENERIC_PHY instead of depending on it +- RDMA/mlx4: Return missed an error if device doesn't support steering +- scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn() +- power: supply: max17040: fix null-ptr-deref in max17040_probe() +- power: supply: rt5033_battery: Change voltage values to µV +- usb: gadget: hid: fix error code in do_config() +- serial: 8250_dw: Drop wrong use of ACPI_PTR() +- powerpc: fix unbalanced node refcount in check_kvm_guest() +- powerpc: Fix is_kvm_guest() / kvm_para_available() +- powerpc: Reintroduce is_kvm_guest() as a fast-path check +- powerpc: Rename is_kvm_guest() to check_kvm_guest() +- powerpc: Refactor is_kvm_guest() declaration to new header +- video: fbdev: chipsfb: use memset_io() instead of memset() +- clk: at91: check pmc node status before registering syscore ops +- memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe +- soc/tegra: Fix an error handling path in tegra_powergate_power_up() +- ASoC: SOF: topology: do not power down primary core during topology removal +- arm: dts: omap3-gta04a4: accelerometer irq fix +- driver core: Fix possible memory leak in device_link_add() +- scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp() +- soundwire: debugfs: use controller id and link_id for debugfs +- ALSA: hda: Use position buffer for SKL+ again +- ALSA: hda: Fix hang during shutdown due to link reset +- ALSA: hda: Release controller display power during shutdown/reboot +- ALSA: hda: Reduce udelay() at SKL+ position reporting +- arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000 +- arm64: dts: renesas: beacon: Fix Ethernet PHY mode +- arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock +- JFS: fix memleak in jfs_mount +- MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT +- scsi: dc395: Fix error case unwinding +- ARM: dts: at91: tse850: the emac<->phy interface is rmii +- bus: ti-sysc: Fix timekeeping_suspended warning on resume +- arm64: dts: meson-g12b: Fix the pwm regulator supply properties +- arm64: dts: meson-g12a: Fix the pwm regulator supply properties +- arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe +- arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes +- RDMA/bnxt_re: Fix query SRQ failure +- ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY +- arm64: dts: rockchip: Fix GPU register width for RK3328 +- ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc() +- clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths +- ARM: dts: BCM5301X: Fix memory nodes names +- RDMA/rxe: Fix wrong port_cap_flags +- iio: st_sensors: disable regulators after device unregistration +- iio: st_sensors: Call st_sensors_power_enable() from bus drivers +- of: unittest: fix EXPECT text for gpio hog errors +- bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit. +- bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off. +- cgroup: Fix rootcg cpu.stat guest double counting +- ibmvnic: Process crqs after enabling interrupts +- ibmvnic: don't stop queue in xmit +- udp6: allow SO_MARK ctrl msg to affect routing +- selftests/bpf: Fix fclose/pclose mismatch in test_progs +- crypto: pcrypt - Delay write to padata->info +- net: phylink: avoid mvneta warning when setting pause parameters +- net: amd-xgbe: Toggle PLL settings during rate change +- selftests/bpf: Fix fd cleanup in sk_lookup test +- selftests: bpf: Convert sk_lookup ctx access tests to PROG_TEST_RUN +- drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits +- wcn36xx: Fix discarded frames due to wrong sequence number +- wcn36xx: add proper DMA memory barriers in rx path +- libertas: Fix possible memory leak in probe and disconnect +- libertas_tf: Fix possible memory leak in probe and disconnect +- KVM: s390: Fix handle_sske page fault handling +- samples/kretprobes: Fix return value if register_kretprobe() failed +- spi: spi-rpc-if: Check return value of rpcif_sw_init() +- tcp: don't free a FIN sk_buff in tcp_remove_empty_skb() +- libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED() +- tpm_tis_spi: Add missing SPI ID +- tpm: fix Atmel TPM crash caused by too frequent queries +- irq: mips: avoid nested irq_enter() +- KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm +- KVM: s390: pv: avoid double free of sida page +- s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap() +- libbpf: Fix BTF header parsing checks +- libbpf: Fix overflow in BTF sanity checks +- libbpf: Allow loading empty BTFs +- libbpf: Fix BTF data layout checks and allow empty BTF +- bpftool: Avoid leaking the JSON writer prepared for program metadata +- KVM: selftests: Fix nested SVM tests when built with clang +- KVM: selftests: Add operand to vmsave/vmload/vmrun in svm.c +- smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi +- drm/msm: Fix potential NULL dereference in DPU SSPP +- x86/sev: Fix stack type check in vc_switch_off_ist() +- clocksource/drivers/timer-ti-dm: Select TIMER_OF +- PM: hibernate: fix sparse warnings +- nvme-rdma: fix error code in nvme_rdma_setup_ctrl +- phy: micrel: ksz8041nl: do not use power down mode +- net: enetc: unmap DMA in enetc_send_cmd() +- mwifiex: Send DELBA requests according to spec +- rsi: stop thread firstly in rsi_91x_init() error handling +- mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req() +- mt76: mt7915: fix sta_rec_wtbl tag len +- mt76: mt7915: fix possible infinite loop release semaphore +- mt76: mt76x02: fix endianness warnings in mt76x02_mac.c +- mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi +- platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning +- mmc: mxs-mmc: disable regulator on error and in the remove function +- media: ir_toy: assignment to be16 should be of correct type +- net: stream: don't purge sk_error_queue in sk_stream_kill_queues() +- drm/msm: uninitialized variable in msm_gem_import() +- drm/msm: potential error pointer dereference in init() +- tcp: switch orphan_count to bare per-cpu counters +- kernel/sched: Fix sched_fork() access an invalid sched_task_group +- ath10k: fix max antenna gain unit +- hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff +- hwmon: Fix possible memleak in __hwmon_device_register() +- net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE +- memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() +- memstick: avoid out-of-range warning +- mmc: sdhci-omap: Fix context restore +- mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured +- gve: Recover from queue stall due to missed IRQ +- b43: fix a lower bounds test +- b43legacy: fix a lower bounds test +- hwrng: mtk - Force runtime pm ops for sleep ops +- crypto: qat - disregard spurious PFVF interrupts +- crypto: qat - detect PFVF collision after ACK +- media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable() +- netfilter: nft_dynset: relax superfluous check on set updates +- rcu: Always inline rcu_dynticks_task*_{enter,exit}() +- EDAC/amd64: Handle three rank interleaving mode +- PM: EM: Fix inefficient states detection +- ath9k: Fix potential interrupt storm on queue reset +- media: em28xx: Don't use ops->suspend if it is NULL +- cpuidle: Fix kobject memory leaks in error paths +- crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency +- kprobes: Do not use local variable when creating debugfs file +- media: cx23885: Fix snd_card_free call on null card pointer +- media: tm6000: Avoid card name truncation +- media: si470x: Avoid card name truncation +- media: radio-wl1273: Avoid card name truncation +- media: mtk-vpu: Fix a resource leak in the error handling path of 'mtk_vpu_probe()' +- media: TDA1997x: handle short reads of hdmi info frame. +- media: v4l2-ioctl: S_CTRL output the right value +- media: dvb-usb: fix ununit-value in az6027_rc_query +- media: cxd2880-spi: Fix a null pointer dereference on error handling path +- media: em28xx: add missing em28xx_close_extension +- drm/amdgpu: fix warning for overflow check +- arm64: mm: update max_pfn after memory hotplug +- drm/ttm: stop calling tt_swapin in vm_access +- ath10k: sdio: Add missing BH locking around napi_schdule() +- ath10k: Fix missing frame timestamp for beacon/probe-resp +- ath11k: Fix memory leak in ath11k_qmi_driver_event_work +- ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status +- ath11k: Avoid race during regd updates +- ath11k: fix some sleeping in atomic bugs +- net: dsa: rtl8366rb: Fix off-by-one bug +- rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() +- crypto: caam - disable pkc for non-E SoCs +- Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync +- wilc1000: fix possible memory leak in cfg_scan_result() +- wcn36xx: Fix Antenna Diversity Switching +- cgroup: Make rebind_subsystems() disable v2 controllers all at once +- net: net_namespace: Fix undefined member in key_remove_domain() +- lockdep: Let lock_is_held_type() detect recursive read as read +- virtio-gpu: fix possible memory allocation failure +- drm/v3d: fix wait for TMU write combiner flush +- objtool: Fix static_call list generation +- x86/xen: Mark cpu_bringup_and_idle() as dead_end_function +- objtool: Add xen_start_kernel() to noreturn list +- MIPS: lantiq: dma: fix burst length for DEU +- rcu: Fix existing exp request check in sync_sched_exp_online_cleanup() +- Bluetooth: fix init and cleanup of sco_conn.timeout_work +- selftests/bpf: Fix strobemeta selftest regression +- netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream state +- parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling +- parisc/unwind: fix unwinder when CONFIG_64BIT is enabled +- erofs: don't trigger WARN() when decompression fails +- task_stack: Fix end_of_stack() for architectures with upwards-growing stack +- parisc: fix warning in flush_tlb_all +- selftests/core: fix conflicting types compile error for close_range() +- drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled +- x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted +- wcn36xx: Correct band/freq reporting on RX +- spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe() +- btrfs: do not take the uuid_mutex in btrfs_rm_device +- btrfs: reflink: initialize return value to 0 in btrfs_extent_same() +- ACPI: AC: Quirk GK45 to skip reading _PSR +- net: annotate data-race in neigh_output() +- vrf: run conntrack only in context of lower/physdev for locally generated packets +- ARM: 9136/1: ARMv7-M uses BE-8, not BE-32 +- gfs2: Fix glock_hash_walk bugs +- gfs2: Cancel remote delete work asynchronously +- gre/sit: Don't generate link-local addr if addr_gen_mode is IN6_ADDR_GEN_MODE_NONE +- ARM: clang: Do not rely on lr register for stacktrace +- smackfs: use __GFP_NOFAIL for smk_cipso_doi() +- iwlwifi: mvm: disable RX-diversity in powersave +- selftests/bpf: Fix perf_buffer test on system with offline cpus +- selftests: kvm: fix mismatched fclose() after popen() +- nvme: drop scan_lock and always kick requeue list when removing namespaces +- nvmet-tcp: fix use-after-free when a port is removed +- nvmet-rdma: fix use-after-free when a port is removed +- nvmet: fix use-after-free when a port is removed +- media: allegro: ignore interrupt if mailbox is not initialized +- block: remove inaccurate requeue check +- mwl8k: Fix use-after-free in mwl8k_fw_state_machine() +- mt76: mt7915: fix an off-by-one bound check +- tracing/cfi: Fix cmp_entries_* functions signature mismatch +- workqueue: make sysfs of unbound kworker cpumask more clever +- lib/xz: Validate the value before assigning it to an enum variable +- lib/xz: Avoid overlapping memcpy() with invalid input with in-place decompression +- memstick: r592: Fix a UAF bug when removing the driver +- md: update superblock after changing rdev flags in state_store +- block: bump max plugged deferred size from 16 to 32 +- drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture() +- leaking_addresses: Always print a trailing newline +- net: phy: micrel: make *-skew-ps check more lenient +- drm/amdkfd: fix resume error when iommu disabled in Picasso +- ACPI: battery: Accept charges over the design capacity as full +- iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value +- mmc: moxart: Fix reference count leaks in moxart_probe +- ath: dfs_pattern_detector: Fix possible null-pointer dereference in channel_detector_create() +- tracefs: Have tracefs directories not set OTH permission bits by default +- net-sysfs: try not to restart the syscall if it will fail eventually +- media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte() +- media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info +- media: ipu3-imgu: imgu_fmt: Handle properly try +- ACPICA: Avoid evaluating methods too early during system resume +- fs/proc/uptime.c: Fix idle time reporting in /proc/uptime +- ipmi: Disable some operations during a panic +- media: rcar-csi2: Add checking to rcsi2_start_receiver() +- brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet +- rtw88: fix RX clock gate setting while fifo dump +- ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK +- media: mceusb: return without resubmitting URB in case of -EPROTO error. +- media: imx: set a media_device bus_info string +- media: s5p-mfc: Add checking to s5p_mfc_probe(). +- media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe() +- media: uvcvideo: Set unique vdev name based in type +- media: uvcvideo: Return -EIO for control errors +- media: uvcvideo: Set capability in s_param +- media: stm32: Potential NULL pointer dereference in dcmi_irq_thread() +- media: atomisp: Fix error handling in probe +- media: netup_unidvb: handle interrupt properly according to the firmware +- media: mt9p031: Fix corrupted frame after restarting stream +- ath10k: high latency fixes for beacon buffer +- ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets +- ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED +- ath11k: Avoid reg rules update during firmware recovery +- drm/amdgpu: Fix MMIO access page fault +- fscrypt: allow 256-bit master keys with AES-256-XTS +- mwifiex: Properly initialize private structure on interface type changes +- mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type +- x86: Increase exception stack sizes +- ath11k: Align bss_chan_info structure with firmware +- smackfs: Fix use-after-free in netlbl_catmap_walk() +- rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop +- net: sched: update default qdisc visibility after Tx queue cnt changes +- locking/lockdep: Avoid RCU-induced noinstr fail +- MIPS: lantiq: dma: reset correct number of channel +- MIPS: lantiq: dma: add small delay after reset +- platform/x86: wmi: do not fail if disabling fails +- rcutorture: Avoid problematic critical section nesting on PREEMPT_RT +- drm/panel-orientation-quirks: add Valve Steam Deck +- drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6 +- drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1 +- drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2) +- dma-buf: WARN on dmabuf release with pending attachments +- power: supply: max17042_battery: Clear status bits in interrupt handler +- USB: chipidea: fix interrupt deadlock +- USB: iowarrior: fix control-message timeouts +- most: fix control-message timeouts +- serial: 8250: fix racy uartclk update +- USB: serial: keyspan: fix memleak on probe errors +- iio: ad5770r: make devicetree property reading consistent +- iio: dac: ad5446: Fix ad5622_write() return value +- coresight: cti: Correct the parameter for pm_runtime_put +- pinctrl: core: fix possible memory leak in pinctrl_enable() +- PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge +- PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge +- PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge +- PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated bridge +- PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG +- PCI: aardvark: Fix return value of MSI domain .alloc() method +- PCI: aardvark: Fix configuring Reference clock +- PCI: aardvark: Fix reporting Data Link Layer Link Active +- PCI: aardvark: Do not unmask unused interrupts +- PCI: aardvark: Fix checking for link up via LTSSM state +- PCI: aardvark: Do not clear status bits of masked interrupts +- PCI: cadence: Add cdns_plat_pcie_probe() missing return +- PCI: pci-bridge-emul: Fix emulation of W1C bits +- xen/balloon: add late_initcall_sync() for initial ballooning done +- ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume +- ALSA: mixer: oss: Fix racy access to slots +- ifb: fix building without CONFIG_NET_CLS_ACT +- serial: core: Fix initializing and restoring termios speed +- ring-buffer: Protect ring_buffer_reset() from reentrancy +- powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found +- can: j1939: j1939_can_recv(): ignore messages with invalid source address +- can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport +- KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use +- KVM: arm64: Extract ESR_ELx.EC only +- power: supply: max17042_battery: use VFSOC for capacity when no rsns +- power: supply: max17042_battery: Prevent int underflow in set_soc_threshold +- mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines +- soc: fsl: dpio: use the combined functions to protect critical zone +- soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id +- signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT +- memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode +- signal: Remove the bogus sigkill_pending in ptrace_stop +- RDMA/qedr: Fix NULL deref for query_qp on the GSI QP +- perf/x86/intel/uncore: Fix Intel ICX IIO event constraints +- perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server +- rsi: Fix module dev_oper_mode parameter description +- rsi: fix rate mask set leading to P2P failure +- rsi: fix key enabled check causing unwanted encryption for vap_id > 0 +- rsi: fix occasional initialisation failure with BT coex +- wcn36xx: handle connection loss indication +- libata: fix checking of DMA state +- mwifiex: Try waking the firmware until we get an interrupt +- mwifiex: Read a PCI register after writing the TX ring write pointer +- PM: sleep: Do not let "syscore" devices runtime-suspend during system transitions +- wcn36xx: Fix (QoS) null data frame bitrate/modulation +- wcn36xx: Fix tx_status mechanism +- wcn36xx: Fix HT40 capability for 2Ghz band +- ifb: Depend on netfilter alternatively to tc +- evm: mark evm_fixmode as __ro_after_init +- rtl8187: fix control-message timeouts +- PCI: Mark Atheros QCA6174 to avoid bus reset +- ath10k: fix division by zero in send path +- ath10k: fix control-message timeout +- ath6kl: fix control-message timeout +- ath6kl: fix division by zero in send path +- mwifiex: fix division by zero in fw download path +- EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell +- regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default-dvs-idx property +- regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is disabled +- hwmon: (pmbus/lm25066) Add offset coefficients +- selinux: fix race condition when computing ocontext SIDs +- ia64: kprobes: Fix to pass correct trampoline address to the handler +- KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup +- btrfs: call btrfs_check_rw_degradable only if there is a missing device +- btrfs: fix lost error handling when replaying directory deletes +- btrfs: clear MISSING device status bit in btrfs_close_one_device +- rds: stop using dmapool +- net/smc: Correct spelling mistake to TCPF_SYN_RECV +- net/smc: Fix smc_link->llc_testlink_time overflow +- nfp: bpf: relax prog rejection for mtu check through max_pkt_offset +- vmxnet3: do not stop tx queues after netif_device_detach() +- r8169: Add device 10ec:8162 to driver r8169 +- nvmet-tcp: fix header digest verification +- block: schedule queue restart after BLK_STS_ZONE_RESOURCE +- drm: panel-orientation-quirks: Add quirk for GPD Win3 +- watchdog: Fix OMAP watchdog early handling +- net: multicast: calculate csum of looped-back and forwarded packets +- spi: spl022: fix Microwire full duplex mode +- nvmet-tcp: fix a memory leak when releasing a queue +- xen/netfront: stop tx queues during live migration +- gpio: mlxbf2.c: Add check for bgpio_init failure +- bpf: Prevent increasing bpf_jit_limit above max +- bpf: Define bpf_jit_alloc_exec_limit for arm64 JIT +- fcnal-test: kill hanging ping/nettest binaries on cleanup +- drm: panel-orientation-quirks: Add quirk for Aya Neo 2021 +- mmc: winbond: don't build on M68K +- reset: socfpga: add empty driver allowing consumers to probe +- ARM: dts: sun7i: A20-olinuxino-lime2: Fix ethernet phy-mode +- hyperv/vmbus: include linux/bitops.h +- sfc: Don't use netif_info before net_device setup +- sfc: Export fibre-specific supported link modes +- cavium: Fix return values of the probe function +- mISDN: Fix return values of the probe function +- scsi: qla2xxx: Fix unmap of already freed sgl +- scsi: qla2xxx: Return -ENOMEM if kzalloc() fails +- cavium: Return negative value when pci_alloc_irq_vectors() fails +- ALSA: hda/realtek: Fixes HP Spectre x360 15-eb1xxx speakers +- ASoC: soc-core: fix null-ptr-deref in snd_soc_del_component_unlocked() +- x86/irq: Ensure PI wakeup handler is unregistered before module unload +- x86/cpu: Fix migration safety with X86_BUG_NULL_SEL +- x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c +- fuse: fix page stealing +- ext4: fix lazy initialization next schedule time computation in more granular unit +- ALSA: timer: Unconditionally unlink slave instances, too +- ALSA: synth: missing check for possible NULL after the call to kstrdup +- ALSA: hda: Free card instance properly at probe errors +- ALSA: usb-audio: Add registration quirk for JBL Quantum 400 +- ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk +- ALSA: line6: fix control and interrupt message timeouts +- ALSA: 6fire: fix control and bulk message timeouts +- ALSA: ua101: fix division by zero at probe +- ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED +- ALSA: hda/realtek: Add quirk for ASUS UX550VE +- ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N +- ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ +- ALSA: hda/realtek: Add quirk for Clevo PC70HS +- ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED +- ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14 +- media: v4l2-ioctl: Fix check_ext_ctrls +- media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers +- media: rkvdec: Support dynamic resolution changes +- media: ite-cir: IR receiver stop working after receive overflow +- media: rkvdec: Do not override sizeimage for output format +- crypto: s5p-sss - Add error handling in s5p_aes_probe() +- firmware/psci: fix application of sizeof to pointer +- tpm: Check for integer overflow in tpm2_map_response_body() +- parisc: Fix ptrace check on syscall return +- parisc: Fix set_fixmap() on PA1.x CPUs +- exfat: fix incorrect loading of i_blocks for large files +- mmc: dw_mmc: Dont wait for DRTO on Write RSP error +- mmc: mtk-sd: Add wait dma stop done flow +- scsi: qla2xxx: Fix use after free in eh_abort path +- scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file +- scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd() +- ocfs2: fix data corruption on truncate +- libata: fix read log timeout value +- Input: i8042 - Add quirk for Fujitsu Lifebook T725 +- Input: elantench - fix misreporting trackpoint coordinates +- Input: iforce - fix control-message timeout +- binder: use cred instead of task for getsecid +- binder: use cred instead of task for selinux checks +- binder: use euid from cred instead of using task +- usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform +- xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good delay + +* Mon Dec 06 2021 Zheng Zengkai - 5.10.0-24.0.0.15 +- kprobe : fix out-of-bounds in register_kretprobe when parsing negative data_size +- ima: Fix the pathname to relative path when get absolute path failed +- Revert "init: only move down lockup_detector_init() when +- pci: Enable acs for QLogic HBA cards +- config: enable SVA feature +- vfio/migration: bugfix queue isolation configuration +- acc/migration: bugfix Guest reset scene +- vfio/acc: Modify operation to get queues number +- crypto: hisilicon/qm - modify the uacce mode check +- crypto: hisilicon/zip - Fix spelling mistake "COMSUMED" -> "CONSUMED" +- crypto: hisilicon - Fix sscanf format signedness +- arm64/numa: cdm: Cacheline aligned cdmmask to improve performance +- ntp: Avoid undefined behaviour in second_overflow() +- arm64: kexec: only clear EOI for SDEI in NMI context +- iommu/iova: wait 'fq_timer' handler to finish before destroying 'fq' +- ilp32: fix compile problem when ARM64_ILP32 and UBSAN are both enabled +- acpi/arm64: check the returned logical CPU number of 'acpi_map_cpuid()' +- arm64: fix abi change caused by ILP32 +- arm64: cpufeature: add cmdline option for disable lse +- cache: Workaround HiSilicon Taishan DC CVAU +- signal: Export tracepoint symbol signal_generate +- suspend: export cpu_suspend/cpu_resume/psci_ops +- printk: export log_buf_addr_get/log_buf_len_get +- printk: Export a symbol. +- ACPI / APEI: Notify all ras err to driver +- Export sysboml for bbox to use. +- tty: fix possible deadlock in console_unlock +- printk: move printk_safe macros to printk header +- iommu: set the default iommu-dma mode as non-strict +- iommu/iova: avoid softlockup in fq_flush_timeout +- svm: Enable CONFIG_HISI_SVM by default +- svm: Add svm_get_phys to get phys addr for ts core +- svm: add set l2 cache read count functions +- svm: implement svm pin/unpin pages to forbid page migrtate +- svm: Add ioctl to get meminfo +- svm: implement the process remap features +- svm: implement the svm process load flag +- svm: add support for allocing memory which is within 4G physical address in svm_mmap +- svm: driver probe to read l2buff addr +- svm: Add and export svm_get_pasid +- svm: implement svm bind and unbind +- svm: using a rbtree to manage the svm_process +- svm: add svm bind ioctl and add some functions +- svm: init the children device of svm device +- svm: init the svm device and remove the svm device +- svm: add svm drv framework for ascend +- arm64/crypto: Accelerated CRC T10 DIF computation +- watchdog: Fix check_preemption_disabled() error +- ext4: stop IO for page without buffer_head +- driver: support ts core ras process +- imans: Check CAP_SYS_ADMIN in userns associated with IMA NS during configuration. +- stop_machine: mask pseudo nmi before running the callback +- stop_machine: mask sdei before running the callback +- hugetlb: before freeing hugetlb page set dtor to appropriate value + +* Mon Dec 06 2021 Zheng Zengkai - 5.10.0-23.0.0.14 +- memcg: unify memcg stat flushing +- memcg: flush stats only if updated +- blk-cgroup: blk_cgroup_bio_start() should use irq-safe operations on blkg->iostat_cpu +- memcg: flush lruvec stats in the refault +- mm, memcg: remove unused functions +- memcg: infrastructure to flush memcg stats +- memcg: switch lruvec stats to rstat +- mm: memcontrol: fix blocking rstat function called from atomic cgroup1 thresholding code +- cgroup: rstat: fix A-A deadlock on 32bit around u64_stats_sync +- kselftests: cgroup: update kmem test for new vmstat implementation +- mm: memcontrol: consolidate lruvec stat flushing +- mm: memcontrol: switch to rstat +- cgroup: rstat: punt root-level optimization to individual controllers +- cgroup: rstat: support cgroup1 +- mm: memcontrol: privatize memcg_page_state query functions +- mm: memcontrol: kill mem_cgroup_nodeinfo() +- mm: memcontrol: fix cpuhotplug statistics flushing +- hugetlbfs: flush TLBs correctly after huge_pmd_unshare +- rsi: fix control-message timeout +- media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init +- staging: rtl8192u: fix control-message timeouts +- staging: r8712u: fix control-message timeout +- comedi: vmk80xx: fix bulk and interrupt message timeouts +- comedi: vmk80xx: fix bulk-buffer overflow +- comedi: vmk80xx: fix transfer-buffer overflows +- comedi: ni_usb6501: fix NULL-deref in command paths +- comedi: dt9812: fix DMA buffers on stack +- isofs: Fix out of bound access for corrupted isofs image +- staging: rtl8712: fix use-after-free in rtl8712_dl_fw +- printk/console: Allow to disable console output by using console="" or console=null +- binder: don't detect sender/target during buffer cleanup +- usb-storage: Add compatibility quirk flags for iODD 2531/2541 +- usb: musb: Balance list entry in musb_gadget_queue +- usb: gadget: Mark USB_FSL_QE broken on 64-bit +- usb: ehci: handshake CMD_RUN instead of STS_HALT +- Revert "x86/kvm: fix vcpu-id indexed array sizes" +- KVM: x86: avoid warning with -Wbitwise-instead-of-logical +- ovl: warn about orphan metacopy +- ext4: fix e2fsprogs checksum failure for mounted filesystem +- ima: Fix warning: no previous prototype for function 'ima_add_kexec_buffer' +- kfence: default to dynamic branch instead of static keys mode +- kfence: always use static branches to guard kfence_alloc() +- kfence: shorten critical sections of alloc/free +- kfence: add note to documentation about skipping covered allocations +- kfence: limit currently covered allocations when pool nearly full +- kfence: move saving stack trace of allocations into __kfence_alloc() +- kfence: count unexpectedly skipped allocations +- stacktrace: move filter_irq_stacks() to kernel/stacktrace.c +- powerpc: Don't provide __kernel_map_pages() without ARCH_SUPPORTS_DEBUG_PAGEALLOC +- powerpc/booke: Disable STRICT_KERNEL_RWX, DEBUG_PAGEALLOC and KFENCE +- bpf: Fix toctou on read-only map's constant scalar tracking +- block: avoid quiesce while elevator init +- mwifiex_usb: Fix skb_over_panic in mwifiex_usb_recv +- bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed +- drm/nouveau: clean up all clients on device removal +- drm/nouveau: Add a dedicated mutex for the clients list +- drm/nouveau: use drm_dev_unplug() during device removal +- locks: Fix UBSAN undefined behaviour in flock64_to_posix_lock +- livepatch/arm: fix incorrect stack detection +- sched/rt: Try to restart rt period timer when rt runtime exceeded +- blkcg: Remove extra blkcg_bio_issue_init +- ubifs: read-only if LEB may always be taken in ubifs_garbage_collect +- ubifs: fix double return leb in ubifs_garbage_collect +- ubifs: fix slab-out-of-bounds in ubifs_change_lp + +* Tue Nov 30 2021 Zheng Zengkai - 5.10.0-22.0.0.13 +- printk: enable zap_locks on X86 and ARM64 +- printk: fix potential deadlock in printk() +- printk/panic: prevent spin waiting in printk() +- panic/printk: fix zap_lock +- printk/panic: Avoid deadlock in printk() +- lib/clear_user: ensure loop in __arch_clear_user cache-aligned v2 +- mm/cdm: enable CONFIG_COHERENT_DEVICE in openeuler_defconfig +- mm: Be allowed to alloc CDM node memory for MPOL_BIND +- mm: Add DDR and HBM to nodes by cmdline +- mm: Change mbind(MPOL_BIND) implementation for CDM nodes +- mm: Ignore cpuset enforcement when allocation flag has __GFP_THISNODE +- mm: Ignore madvise(MADV_MERGEABLE) request for VM_CDM marked VMAs +- mm: Exclude CDM marked VMAs from auto NUMA +- mm: Exclude CDM nodes from task->mems_allowed and root cpuset +- mm: Tag VMA with VM_CDM flag explicitly during mbind(MPOL_BIND) and page fault +- mm: Enable Buddy allocation isolation for CDM nodes +- mm: Change generic FALLBACK zonelist creation process +- mm: Define coherent device memory (CDM) node +- fs/dcache.c: avoid softlock since too many negative dentry +- fs/dcache.c: avoid panic while lockref of dentry overflow +- ACPI/MPAM: Use acpi_map_pxm_to_node() to get node id for memory node +- arm64/mpam: Fix use-after-free in mkdir_resctrl_prepare() +- mm/page_cache_limit: add support for droping caches for target node +- mm/page_cache_limit: do shrink_page_cache when adding page to page cache +- mm/page_cache_limit: reconfiguration about page cache limit when memory plug/unplug +- mm/page_cache_limit: shrink page cache +- mm/page_cache_limit: calculate reclaim pages for each node +- mm/page_cache_limit: create kernel thread for page cache limit +- mm/page_cache_limit: add pagecache limit proc interface +- openeuler_defconfig: Enable some Icelake support configs +- timer_list: avoid other cpu soft lockup when printing timer list + +* Fri Nov 26 2021 Zheng Zengkai - 5.10.0-21.0.0.12 +- gpio: gpio-hisi: Add HiSilicon GPIO support +- hugetlbfs: avoid overflow in hugetlbfs_fallocate +- config: Open CONFIG_CORELOCKUP_DETECTOR +- watchdog/corelockup: Depends on the hardlockup detection switch +- watchdog/corelockup: Add interface to control the detection sensitivity. +- watchdog/corelockup: Optimized core lockup detection judgment rules +- corelockup: Add detector enable support by cmdline +- corelockup: Disable wfi/wfe mode for pmu based nmi +- corelockup: Add support of cpu core hang check +- KVM: arm64: vgic-its: Flush pending LPIs when nuking DT +- KVM: arm64: Mark the page dirty only if the fault is handled successfully +- KVM: arm64: Filter out the case of only changing permissions from stage-2 map path +- KVM: arm64: Adjust partial code of hyp stage-1 map and guest stage-2 map +- KVM: arm64: Add support for probing Hisi ncsnp capability +- KVM: arm64: Probe Hisi CPU TYPE from ACPI/DTB +- perf, kvm/arm64: perf-kvm-stat to report VM TRAP +- perf, kvm/arm64: Add stat support on arm64 +- KVM: arm64: Adjust entry/exit and trap related tracepoints +- openeuler_defconfig: Build HiSilicon I2C/SPI/SFC driver as module +- kvm: arm/arm64: add irqsave for lpi_cache_lock +- KVM: arm/arm64: vgic-its: Do not execute invalidate MSI-LPI translation cache on movi command +- KVM: arm/arm64: vgic-its: Introduce multiple LPI translation caches +- net:spnic:Clear the flag of CSUM and TSO when VXLAN is not supported +- net:spnic:Support to configure DMA atrribute thru firmware. +- net:spnic: Add the get_rxfh_indir_size in ethtool_ops structure. +- iscsi: use dynamic single thread workqueue to improve performance +- workqueue: implement NUMA affinity for single thread workqueue +- iscsi: add member for NUMA aware order workqueue +- livepatch: Fix crash when access the global variable in hook +- jump_label: skip resource release if jump label is not relocated +- SCSI: spfc: fix typo of last_cmsn + +* Tue Nov 23 2021 Zheng Zengkai - 5.10.0-20.0.0.11 +- atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait + +* Thu Nov 18 2021 Zheng Zengkai - 5.10.0-19.0.0.10 +- net: hns3: allow configure ETS bandwidth of all TCs +- net: hns3: remove check VF uc mac exist when set by PF +- net: hns3: fix some mac statistics is always 0 in device version V2 +- net: hns3: fix kernel crash when unload VF while it is being reset +- net: hns3: sync rx ring head in echo common pull +- net: hns3: fix pfc packet number incorrect after querying pfc parameters +- net: hns3: fix ROCE base interrupt vector initialization bug +- net: hns3: fix failed to add reuse multicast mac addr to hardware when mc mac table is full +- net: hisilicon: fix hsn3_ethtool kernel-doc warnings +- net: hns3: adjust string spaces of some parameters of tx bd info in debugfs +- net: hns3: expand buffer len for some debugfs command +- net: hns3: add more string spaces for dumping packets number of queue info in debugfs +- net: hns3: fix data endian problem of some functions of debugfs +- net: hns3: ignore reset event before initialization process is done +- net: hns3: change hclge/hclgevf workqueue to WQ_UNBOUND mode +- net: hns3: add error recovery module and type for himac +- net: hns3: add new ras error type for roce +- net: hns3: add update ethtool advertised link modes for FIBRE port when autoneg off +- net: hns3: modify functions of converting speed ability to ethtool link mode +- net: hns3: add support pause/pfc durations for mac statistics +- net: hns3: device specifications add number of mac statistics +- net: hns3: modify mac statistics update process for compatibility +- net: hns3: add debugfs support for interrupt coalesce +- net: hns3: schedule the polling again when allocation fails +- net: hns3: fix for miscalculation of rx unused desc +- net: hns3: Add configuration of TM QCN error event +- net: hns3: use dev_driver_string() instead of pci_dev->driver->name +- net: hns3: debugfs add support dumping page pool info +- net: hns3: disable firmware compatible features when uninstall PF +- net: hns3: PF enable promisc for VF when mac table is overflow +- net: hns3: don't rollback when destroy mqprio fail +- net: hns3: remove tc enable checking +- net: hns3: fix hclge_dbg_dump_tm_pg() stack usage +- net: hns3: PF support get multicast MAC address space assigned by firmware +- net: hns3: PF support get unicast MAC address space assigned by firmware +- mm/damon: remove return value from before_terminate callback +- mm/damon: fix a few spelling mistakes in comments and a pr_debug message +- Docs/admin-guide/mm/pagemap: wordsmith page flags descriptions +- Docs/admin-guide/mm/damon/start: simplify the content +- Docs/admin-guide/mm/damon/start: fix a wrong link +- Docs/admin-guide/mm/damon/start: fix wrong example commands +- mm/damon: simplify stop mechanism +- mm/damon/dbgfs: add adaptive_targets list check before enable monitor_on +- mm/damon: remove unnecessary variable initialization +- Documentation/admin-guide/mm/damon: add a document for DAMON_RECLAIM +- mm/damon: introduce DAMON-based Reclamation (DAMON_RECLAIM) +- selftests/damon: support watermarks +- mm/damon/dbgfs: support watermarks +- mm/damon/schemes: activate schemes based on a watermarks mechanism +- tools/selftests/damon: update for regions prioritization of schemes +- mm/damon/dbgfs: support prioritization weights +- mm/damon/vaddr,paddr: support pageout prioritization +- mm/damon/schemes: prioritize regions within the quotas +- mm/damon/selftests: support schemes quotas +- mm/damon/dbgfs: support quotas of schemes +- mm/damon/schemes: implement time quota +- mm/damon/schemes: skip already charged targets and regions +- mm/damon/schemes: implement size quota for schemes application speed control +- mm/damon/paddr: support the pageout scheme +- mm/damon/dbgfs: remove unnecessary variables +- mm/damon/vaddr: constify static mm_walk_ops +- Docs/DAMON: document physical memory monitoring support +- mm/damon/dbgfs: support physical memory monitoring +- mm/damon: implement primitives for physical address space monitoring +- mm/damon/vaddr: separate commonly usable functions +- Docs/admin-guide/mm/damon: document 'init_regions' feature +- mm/damon/dbgfs-test: add a unit test case for 'init_regions' +- mm/damon/dbgfs: allow users to set initial monitoring target regions +- Docs/admin-guide/mm/damon: document DAMON-based Operation Schemes +- selftests/damon: add 'schemes' debugfs tests +- mm/damon/schemes: implement statistics feature +- mm/damon/dbgfs: support DAMON-based Operation Schemes +- mm/damon/vaddr: support DAMON-based Operation Schemes +- mm/damon/core: implement DAMON-based Operation Schemes (DAMOS) +- mm/damon/core: account age of target regions +- mm/damon/core: nullify pointer ctx->kdamond with a NULL +- mm/damon: needn't hold kdamond_lock to print pid of kdamond +- mm/damon: remove unnecessary do_exit() from kdamond +- mm/damon/core: print kdamond start log in debug mode only +- include/linux/damon.h: fix kernel-doc comments for 'damon_callback' +- docs/vm/damon: remove broken reference +- MAINTAINERS: update SeongJae's email address +- Documentation/vm: move user guides to admin-guide/mm/ +- mm/damon: grammar s/works/work/ +- mm/damon/core-test: fix wrong expectations for 'damon_split_regions_of()' +- mm/damon: don't use strnlen() with known-bogus source length +- sched: Add cluster scheduler level in core and related Kconfig for ARM64 +- topology: Represent clusters of CPUs within a die + +* Tue Nov 16 2021 sdlzx - 5.10.0-19.0.0.9 +- remove unused linux-kernel-test.patch + +* Mon Nov 15 2021 Zheng Zengkai - 5.10.0-18.0.0.8 +- net: phy: fix duplex out of sync problem while changing settings +- ARM: use ldr_l to replace ldr instruction for the symbol jump +- squashfs: provides backing_dev_info in order to disable read-ahead +- nbd_genl_status: null check for nla_nest_start +- Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg() +- Bluetooth: switch to lock_sock in SCO +- ubi: fix slab-out-of-bounds in ubi_eba_get_ldesc+0xfb/0x130 +- bpf, cgroup: Assign cgroup in cgroup_sk_alloc when called from interrupt +- bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode +- scsi: make sure that request queue queiesce and unquiesce balanced +- scsi: avoid to quiesce sdev->request_queue two times +- dm: don't stop request queue after the dm device is suspended +- blk-mq: support concurrent queue quiesce/unquiesce +- nvme: loop: clear NVME_CTRL_ADMIN_Q_STOPPED after admin queue is reallocated +- nvme: paring quiesce/unquiesce +- nvme: prepare for pairing quiescing and unquiescing +- nvme: apply nvme API to quiesce/unquiesce admin queue +- nvme: add APIs for stopping/starting admin queue +- ARM: 9057/1: cache-v7: add missing ISB after cache level selection +- blk-mq: don't free tags if the tag_set is used by other device in queue initialztion +- ALSA: usb-audio: Add Audient iD14 to mixer map quirk table +- ALSA: usb-audio: Add Schiit Hel device to mixer map quirk table +- Revert "wcn36xx: Disable bmps when encryption is disabled" +- ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" +- Revert "drm/ttm: fix memleak in ttm_transfered_destroy" +- mm: khugepaged: skip huge page collapse for special files +- Revert "usb: core: hcd: Add support for deferring roothub registration" +- Revert "xhci: Set HCD flag to defer primary roothub registration" +- net: ethernet: microchip: lan743x: Fix skb allocation failure +- vrf: Revert "Reset skb conntrack connection..." +- sfc: Fix reading non-legacy supported link modes +- Revert "io_uring: reinforce cancel on flush during exit" +- scsi: core: Put LLD module refcnt after SCSI device is released +- iio: buffer: Return error if no callback is given +- iio: core: Allow drivers to specify a label without it coming from of +- regulator: core: Respect off_on_delay at startup +- regulator: core: do not continue if selector match +- ubi: fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl +- Revert "[Backport] arm64: mm: account for hotplug memory when randomizing the linear region" +- ubi: fastmap: Add all fastmap pebs into 'ai->fastmap' when fm->used_blocks>=2 +- ubi: fastmap: Return error code if memory allocation fails in add_aeb() +- ubifs: Fix to add refcount once page is set private +- ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock() +- ubifs: setflags: Make dirtied_ino_d 8 bytes aligned +- ubifs: Rectify space amount budget for mkdir/tmpfile operations +- ubifs: Fix 'ui->dirty' race between do_tmpfile() and writeback work +- ubifs: Rename whiteout atomically +- ubifs: Add missing iput if do_tmpfile() failed in rename whiteout +- ubifs: Fix wrong number of inodes locked by ui_mutex in ubifs_inode comment +- ubifs: Fix deadlock in concurrent rename whiteout and inode writeback +- ubifs: rename_whiteout: Fix double free for whiteout_ui->data +- blk-cgroup: fix missing put device in error path from blkg_conf_pref() +- blk-cgroup: synchronize blkg creation against policy deactivation +- perf script: Check session->header.env.arch before using it +- riscv: Fix asan-stack clang build +- riscv: fix misalgned trap vector base address +- scsi: ufs: ufs-exynos: Correct timeout value setting registers +- KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu +- KVM: s390: clear kicked_mask before sleeping again +- lan743x: fix endianness when accessing descriptors +- phy: phy_ethtool_ksettings_set: Lock the PHY while changing settings +- phy: phy_start_aneg: Add an unlocked version +- phy: phy_ethtool_ksettings_set: Move after phy_start_aneg +- phy: phy_ethtool_ksettings_get: Lock the phy for consistency +- net/tls: Fix flipped sign in async_wait.err assignment +- net: nxp: lpc_eth.c: avoid hang when bringing interface down +- net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent +- net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails +- mlxsw: pci: Recycle received packet upon allocation failure +- nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST +- gpio: xgs-iproc: fix parsing of ngpios property +- RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string +- net: Prevent infinite while loop in skb_tx_hash() +- cfg80211: correct bridge/4addr mode check +- net-sysfs: initialize uid and gid before calling net_ns_get_ownership +- net: batman-adv: fix error handling +- regmap: Fix possible double-free in regcache_rbtree_exit() +- reset: brcmstb-rescal: fix incorrect polarity of status bit +- arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node +- RDMA/mlx5: Set user priority for DCT +- octeontx2-af: Display all enabled PF VF rsrc_alloc entries. +- nvme-tcp: fix possible req->offset corruption +- nvme-tcp: fix data digest pointer calculation +- nvmet-tcp: fix data digest pointer calculation +- IB/hfi1: Fix abba locking issue with sc_disable() +- IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields +- bpf: Fix error usage of map_fd and fdget() in generic_map_update_batch() +- bpf: Fix potential race in tail call compatibility check +- tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function +- riscv, bpf: Fix potential NULL dereference +- drm/ttm: fix memleak in ttm_transfered_destroy +- mm, thp: bail out early in collapse_file for writeback page +- net: lan78xx: fix division by zero in send path +- cfg80211: fix management registrations locking +- cfg80211: scan: fix RCU in cfg80211_add_nontrans_list() +- nvme-tcp: fix H2CData PDU send accounting (again) +- ocfs2: fix race between searching chunks and release journal_head from buffer_head +- mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit +- mmc: sdhci: Map more voltage level to SDHCI_POWER_330 +- mmc: dw_mmc: exynos: fix the finding clock sample value +- mmc: mediatek: Move cqhci init behind ungate clock +- mmc: cqhci: clear HALT state after CQE enable +- mmc: vub300: fix control-message timeouts +- net/tls: Fix flipped sign in tls_err_abort() calls +- Revert "net: mdiobus: Fix memory leak in __mdiobus_register" +- nfc: port100: fix using -ERRNO as command type mask +- tipc: fix size validations for the MSG_CRYPTO type +- ata: sata_mv: Fix the error handling of mv_chip_id() +- pinctrl: amd: disable and mask interrupts on probe +- Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode" +- usbnet: fix error return code in usbnet_probe() +- usbnet: sanity check for maxpacket +- powerpc/bpf: Fix BPF_MOD when imm == 1 +- ARM: 9141/1: only warn about XIP address when not compile testing +- ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype +- ARM: 9138/1: fix link warning with XIP + frame-pointer +- ARM: 9134/1: remove duplicate memcpy() definition +- ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned +- ARM: 9132/1: Fix __get_user_check failure with ARM KASAN images +- ALSA: timer: Fix use-after-free problem +- io_uring: don't take uring_lock during iowq cancel +- io_uring: deduplicate failing task_work_add +- nbd: add sanity check for first_minor +- bpf: Add ambient BPF runtime context stored in current +- net: make free_netdev() more lenient with unregistering devices +- ovl: fix use after free in struct ovl_aio_req +- ext4: if zeroout fails fall back to splitting the extent node +- loop: Select I/O scheduler 'none' from inside add_disk() +- blk-mq: Introduce the BLK_MQ_F_NO_SCHED_BY_DEFAULT flag +- Revert "[Huawei] block: stop wait rcu once we can ensure no io while elevator init" +- ext4: refresh the ext4_ext_path struct after dropping i_data_sem. +- ext4: ensure enough credits in ext4_ext_shift_path_extents +- block, bfq: fix UAF problem in bfqg_stats_init() +- ARM: 9098/1: ftrace: MODULE_PLT: Fix build problem without DYNAMIC_FTRACE +- ARM: 9079/1: ftrace: Add MODULE_PLTS support +- ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link() +- ARM: 9077/1: PLT: Move struct plt_entries definition to header +- sctp: add vtag check in sctp_sf_ootb +- sctp: add vtag check in sctp_sf_do_8_5_1_E_sa +- sctp: add vtag check in sctp_sf_violation +- sctp: fix the processing for COOKIE_ECHO chunk +- sctp: fix the processing for INIT_ACK chunk +- sctp: fix the processing for INIT chunk +- sctp: use init_tag from inithdr for ABORT chunk +- Bluetooth: fix use-after-free error in lock_sock_nested() +- loop: fix loop_validate_block_size() can't make sense +- Fix NULL pointer dereference in handling for passthrough commands +- nbd: Fix use-after-free in pid_show +- PM: hibernate: Get block device exclusively in swsusp_check() +- scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs() +- scsi: scsi_debug: Fix out-of-bound read in resp_readcap16() +- ext4: check magic even the extent block bh is verified +- ext4: avoid recheck extent for EXT4_EX_FORCE_CACHE +- pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume() +- ARM: 9122/1: select HAVE_FUTEX_CMPXCHG +- selftests: bpf: fix backported ASSERT_FALSE +- e1000e: Separate TGP board type from SPT +- tracing: Have all levels of checks prevent recursion +- net: mdiobus: Fix memory leak in __mdiobus_register +- bpf, test, cgroup: Use sk_{alloc,free} for test cases +- s390/pci: fix zpci_zdev_put() on reserve +- can: isotp: isotp_sendmsg(): fix TX buffer concurrent access in isotp_sendmsg() +- scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma() +- sched/scs: Reset the shadow stack when idle_task_exit +- scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els() +- scsi: iscsi: Fix set_param() handling +- Input: snvs_pwrkey - add clk handling +- perf/x86/msr: Add Sapphire Rapids CPU support +- libperf tests: Fix test_stat_cpu +- ALSA: hda: avoid write to STATESTS if controller is in reset +- platform/x86: intel_scu_ipc: Update timeout value in comment +- isdn: mISDN: Fix sleeping function called from invalid context +- ARM: dts: spear3xx: Fix gmac node +- net: stmmac: add support for dwmac 3.40a +- btrfs: deal with errors when checking if a dir entry exists during log replay +- ALSA: hda: intel: Allow repeatedly probing on codec configuration errors +- gcc-plugins/structleak: add makefile var for disabling structleak +- net: hns3: fix the max tx size according to user manual +- drm: mxsfb: Fix NULL pointer dereference crash on unload +- net: bridge: mcast: use multicast_membership_interval for IGMPv3 +- selftests: netfilter: remove stray bash debug line +- netfilter: Kconfig: use 'default y' instead of 'm' for bool config option +- isdn: cpai: check ctr->cnr to avoid array index out of bound +- nfc: nci: fix the UAF of rf_conn_info object +- KVM: nVMX: promptly process interrupts delivered while in guest mode +- mm, slub: fix incorrect memcg slab count for bulk free +- mm, slub: fix potential memoryleak in kmem_cache_open() +- mm, slub: fix mismatch between reconstructed freelist depth and cnt +- powerpc/idle: Don't corrupt back chain when going idle +- KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest +- KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest() +- powerpc64/idle: Fix SP offsets when saving GPRs +- net: dsa: mt7530: correct ds->num_ports +- audit: fix possible null-pointer dereference in audit_filter_rules +- ASoC: DAPM: Fix missing kctl change notifications +- ALSA: hda/realtek: Add quirk for Clevo PC50HS +- ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset +- vfs: check fd has read access in kernel_read_file_from_fd() +- elfcore: correct reference to CONFIG_UML +- userfaultfd: fix a race between writeprotect and exit_mmap() +- ocfs2: mount fails with buffer overflow in strlen +- ocfs2: fix data corruption after conversion from inline format +- ceph: fix handling of "meta" errors +- ceph: skip existing superblocks that are blocklisted or shut down when mounting +- can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes +- can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length +- can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv +- can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer +- can: isotp: isotp_sendmsg(): add result check for wait_event_interruptible() +- can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path +- can: peak_pci: peak_pci_remove(): fix UAF +- can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification +- can: rcar_can: fix suspend/resume +- net: enetc: fix ethtool counter name for PM0_TERR +- drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel +- ice: Add missing E810 device ids +- e1000e: Fix packet loss on Tiger Lake and later +- net: stmmac: Fix E2E delay mechanism +- net: hns3: disable sriov before unload hclge layer +- net: hns3: fix vf reset workqueue cannot exit +- net: hns3: add limit ets dwrr bandwidth cannot be 0 +- net: hns3: reset DWRR of unused tc to zero +- powerpc/smp: do not decrement idle task preempt count in CPU offline +- NIOS2: irqflags: rename a redefined register name +- net: dsa: lantiq_gswip: fix register definition +- ipv6: When forwarding count rx stats on the orig netdev +- tcp: md5: Fix overlap between vrf and non-vrf keys +- lan78xx: select CRC32 +- netfilter: ipvs: make global sysctl readonly in non-init netns +- netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6 +- ice: fix getting UDP tunnel entry +- ASoC: wm8960: Fix clock configuration on slave mode +- dma-debug: fix sg checks in debug_dma_map_sg() +- netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value +- NFSD: Keep existing listeners on portlist error +- xtensa: xtfpga: Try software restart before simulating CPU reset +- xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF +- drm/amdgpu/display: fix dependencies for DRM_AMD_DC_SI +- xen/x86: prevent PVH type from getting clobbered +- block: decode QUEUE_FLAG_HCTX_ACTIVE in debugfs output +- ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default +- arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address +- io_uring: fix splice_fd_in checks backport typo +- xhci: add quirk for host controllers that don't update endpoint DCS +- parisc: math-emu: Fix fall-through warnings +- net: dsa: mv88e6xxx: don't use PHY_DETECT on internal PHY's +- ionic: don't remove netdev->dev_addr when syncing uc list +- net: mscc: ocelot: warn when a PTP IRQ is raised for an unknown skb +- nfp: flow_offload: move flow_indr_dev_register from app init to app start +- r8152: select CRC32 and CRYPTO/CRYPTO_HASH/CRYPTO_SHA256 +- qed: Fix missing error code in qed_slowpath_start() +- mqprio: Correct stats in mqprio_dump_class_stats(). +- platform/x86: intel_scu_ipc: Fix busy loop expiry time +- acpi/arm64: fix next_platform_timer() section mismatch error +- drm/msm/dsi: fix off by one in dsi_bus_clk_enable error handling +- drm/msm/dsi: Fix an error code in msm_dsi_modeset_init() +- drm/msm/a6xx: Track current ctx by seqno +- drm/msm/mdp5: fix cursor-related warnings +- drm/msm: Fix null pointer dereference on pointer edp +- drm/edid: In connector_bad_edid() cap num_of_ext by num_blocks read +- drm/panel: olimex-lcd-olinuxino: select CRC32 +- spi: bcm-qspi: clear MSPI spifie interrupt during probe +- platform/mellanox: mlxreg-io: Fix read access of n-bytes size attributes +- platform/mellanox: mlxreg-io: Fix argument base in kstrtou32() call +- mlxsw: thermal: Fix out-of-bounds memory accesses +- ata: ahci_platform: fix null-ptr-deref in ahci_platform_enable_regulators() +- pata_legacy: fix a couple uninitialized variable bugs +- NFC: digital: fix possible memory leak in digital_in_send_sdd_req() +- NFC: digital: fix possible memory leak in digital_tg_listen_mdaa() +- nfc: fix error handling of nfc_proto_register() +- vhost-vdpa: Fix the wrong input in config_cb +- ethernet: s2io: fix setting mac address during resume +- net: encx24j600: check error in devm_regmap_init_encx24j600 +- net: dsa: microchip: Added the condition for scheduling ksz_mib_read_work +- net: stmmac: fix get_hw_feature() on old hardware +- net/mlx5e: Mutually exclude RX-FCS and RX-port-timestamp +- net/mlx5e: Fix memory leak in mlx5_core_destroy_cq() error path +- net: korina: select CRC32 +- net: arc: select CRC32 +- gpio: pca953x: Improve bias setting +- sctp: account stream padding length for reconf chunk +- nvme-pci: Fix abort command id +- ARM: dts: bcm2711-rpi-4-b: Fix pcie0's unit address formatting +- ARM: dts: bcm2711-rpi-4-b: fix sd_io_1v8_reg regulator states +- ARM: dts: bcm2711: fix MDIO #address- and #size-cells +- ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address +- tee: optee: Fix missing devices unregister during optee_remove +- iio: dac: ti-dac5571: fix an error code in probe() +- iio: ssp_sensors: fix error code in ssp_print_mcu_debug() +- iio: ssp_sensors: add more range checking in ssp_parse_dataframe() +- iio: adc: max1027: Fix the number of max1X31 channels +- iio: light: opt3001: Fixed timeout error when 0 lux +- iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED +- iio: adc: max1027: Fix wrong shift with 12-bit devices +- iio: adc128s052: Fix the error handling path of 'adc128_probe()' +- iio: adc: ad7793: Fix IRQ flag +- iio: adc: ad7780: Fix IRQ flag +- iio: adc: ad7192: Add IRQ flag +- driver core: Reject pointless SYNC_STATE_ONLY device links +- drivers: bus: simple-pm-bus: Add support for probing simple bus only devices +- iio: adc: aspeed: set driver data when adc probe. +- powerpc/xive: Discard disabled interrupts in get_irqchip_state() +- x86/Kconfig: Do not enable AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT automatically +- nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells +- EDAC/armada-xp: Fix output of uncorrectable error counter +- virtio: write back F_VERSION_1 before validate +- misc: fastrpc: Add missing lock before accessing find_vma() +- USB: serial: option: add prod. id for Quectel EG91 +- USB: serial: option: add Telit LE910Cx composition 0x1204 +- USB: serial: option: add Quectel EC200S-CN module support +- USB: serial: qcserial: add EM9191 QDL support +- Input: xpad - add support for another USB ID of Nacon GC-100 +- usb: musb: dsps: Fix the probe error path +- efi/cper: use stack buffer for error record decoding +- cb710: avoid NULL pointer subtraction +- xhci: Enable trust tx length quirk for Fresco FL11 USB controller +- xhci: Fix command ring pointer corruption while aborting a command +- xhci: guard accesses to ep_state in xhci_endpoint_reset() +- USB: xhci: dbc: fix tty registration race +- mei: me: add Ice Lake-N device id. +- x86/resctrl: Free the ctrlval arrays when domain_setup_mon_state() fails +- btrfs: fix abort logic in btrfs_replace_file_extents +- btrfs: update refs for any root except tree log roots +- btrfs: check for error when looking up inode during dir entry replay +- btrfs: deal with errors when adding inode reference during log replay +- btrfs: deal with errors when replaying dir entry during log replay +- btrfs: unlock newly allocated extent buffer after error +- drm/msm: Avoid potential overflow in timeout_to_jiffies() +- arm64/hugetlb: fix CMA gigantic page order for non-4K PAGE_SIZE +- csky: Fixup regs.sr broken in ptrace +- csky: don't let sigreturn play with priveleged bits of status register +- clk: socfpga: agilex: fix duplicate s2f_user0_clk +- s390: fix strrchr() implementation +- nds32/ftrace: Fix Error: invalid operands (*UND* and *UND* sections) for `^' +- ALSA: hda/realtek: Fix the mic type detection issue for ASUS G551JW +- ALSA: hda/realtek: Fix for quirk to enable speaker output on the Lenovo 13s Gen2 +- ALSA: hda/realtek: Add quirk for TongFang PHxTxX1 +- ALSA: hda/realtek - ALC236 headset MIC recording issue +- ALSA: hda/realtek: Add quirk for Clevo X170KM-G +- ALSA: hda/realtek: Complete partial device name to avoid ambiguity +- ALSA: hda - Enable headphone mic on Dell Latitude laptops with ALC3254 +- ALSA: hda/realtek: Enable 4-speaker output for Dell Precision 5560 laptop +- ALSA: seq: Fix a potential UAF by wrong private_free call order +- ALSA: pcm: Workaround for a wrong offset in SYNC_PTR compat ioctl +- ALSA: usb-audio: Add quirk for VF0770 +- hwmon: (pmbus/ibm-cffps) max_power_out swap changes +- sched: Always inline is_percpu_thread() +- perf/core: fix userpage->time_enabled of inactive events +- scsi: virtio_scsi: Fix spelling mistake "Unsupport" -> "Unsupported" +- scsi: ses: Fix unsigned comparison with less than zero +- drm/amdgpu: fix gart.bo pin_count leak +- net: sun: SUNVNET_COMMON should depend on INET +- vboxfs: fix broken legacy mount signature checking +- mac80211: check return value of rhashtable_init +- net: prevent user from passing illegal stab size +- hwmon: (ltc2947) Properly handle errors when looking for the external clock +- m68k: Handle arrivals of multiple signals correctly +- mac80211: Drop frames from invalid MAC address in ad-hoc mode +- netfilter: nf_nat_masquerade: defer conntrack walk to work queue +- netfilter: nf_nat_masquerade: make async masq_inet6_event handling generic +- ASoC: SOF: loader: release_firmware() on load failure to avoid batching +- HID: wacom: Add new Intuos BT (CTL-4100WL/CTL-6100WL) device IDs +- netfilter: ip6_tables: zero-initialize fragment offset +- HID: apple: Fix logical maximum and usage maximum of Magic Keyboard JIS +- ASoC: Intel: sof_sdw: tag SoundWire BEs as non-atomic +- x86/hpet: Use another crystalball to evaluate HPET usability +- x86/entry: Clear X86_FEATURE_SMAP when CONFIG_X86_SMAP=n +- x86/entry: Correct reference to intended CONFIG_64_BIT +- x86/sev: Return an error on a returned non-zero SW_EXITINFO1[31:0] +- x86/Kconfig: Correct reference to MWINCHIP3D +- x86/platform/olpc: Correct ifdef symbol to intended CONFIG_OLPC_XO15_SCI +- pseries/eeh: Fix the kdump kernel crash during eeh_pseries_init +- powerpc/64s: fix program check interrupt emergency stack path +- powerpc/bpf: Fix BPF_SUB when imm == 0x80000000 +- RISC-V: Include clone3() on rv32 +- bpf, s390: Fix potential memory leak about jit_data +- riscv/vdso: make arch_setup_additional_pages wait for mmap_sem for write killable +- i2c: mediatek: Add OFFSET_EXT_CONF setting back +- i2c: acpi: fix resource leak in reconfiguration device addition +- powerpc/iommu: Report the correct most efficient DMA mask for PCI devices +- net: prefer socket bound to interface when not in VRF +- i40e: Fix freeing of uninitialized misc IRQ vector +- i40e: fix endless loop under rtnl +- gve: report 64bit tx_bytes counter from gve_handle_report_stats() +- gve: fix gve_get_stats() +- rtnetlink: fix if_nlmsg_stats_size() under estimation +- gve: Avoid freeing NULL pointer +- gve: Correct available tx qpl check +- drm/nouveau/debugfs: fix file release memory leak +- drm/nouveau/kms/nv50-: fix file release memory leak +- drm/nouveau: avoid a use-after-free when BO init fails +- video: fbdev: gbefb: Only instantiate device when built for IP32 +- drm/sun4i: dw-hdmi: Fix HDMI PHY clock setup +- bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893 +- perf jevents: Tidy error handling +- netlink: annotate data races around nlk->bound +- net: sfp: Fix typo in state machine debug string +- net/sched: sch_taprio: properly cancel timer from taprio_destroy() +- net: bridge: fix under estimation in br_get_linkxstats_size() +- net: bridge: use nla_total_size_64bit() in br_get_linkxstats_size() +- ARM: imx6: disable the GIC CPU interface before calling stby-poweroff sequence +- dt-bindings: drm/bridge: ti-sn65dsi86: Fix reg value +- arm64: dts: ls1028a: add missing CAN nodes +- ptp_pch: Load module automatically if ID matches +- powerpc/fsl/dts: Fix phy-connection-type for fm1mac3 +- net_sched: fix NULL deref in fifo_set_limit() +- phy: mdio: fix memory leak +- net/mlx5: E-Switch, Fix double allocation of acl flow counter +- net/mlx5e: IPSEC RX, enable checksum complete +- soc: ti: omap-prm: Fix external abort for am335x pruss +- bpf, arm: Fix register clobbering in div/mod implementation +- iwlwifi: pcie: add configuration of a Wi-Fi adapter on Dell XPS 15 +- xtensa: call irqchip_init only when CONFIG_USE_OF is selected +- xtensa: use CONFIG_USE_OF instead of CONFIG_OF +- arm64: dts: qcom: pm8150: use qcom,pm8998-pon binding +- ath5k: fix building with LEDS=m +- PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus +- ARM: dts: imx6qdl-pico: Fix Ethernet support +- ARM: dts: imx: Fix USB host power regulator polarity on M53Menlo +- ARM: dts: imx: Add missing pinctrl-names for panel on M53Menlo +- soc: qcom: mdt_loader: Drop PT_LOAD check on hash segment +- ARM: at91: pm: do not panic if ram controllers are not enabled +- ARM: dts: qcom: apq8064: Use 27MHz PXO clock as DSI PLL reference +- soc: qcom: socinfo: Fixed argument passed to platform_set_data() +- bus: ti-sysc: Add break in switch statement in sysc_init_soc() +- riscv: Flush current cpu icache before other cpus +- ARM: dts: qcom: apq8064: use compatible which contains chipid +- ARM: dts: imx6dl-yapp4: Fix lp5562 LED driver probe +- ARM: dts: omap3430-sdp: Fix NAND device node +- xen/balloon: fix cancelled balloon action +- SUNRPC: fix sign error causing rpcsec_gss drops +- nfsd4: Handle the NFSv4 READDIR 'dircount' hint being zero +- nfsd: fix error handling of register_pernet_subsys() in init_nfsd() +- ovl: fix IOCB_DIRECT if underlying fs doesn't support direct IO +- ovl: fix missing negative dentry check in ovl_rename() +- mmc: sdhci-of-at91: replace while loop with read_poll_timeout +- mmc: sdhci-of-at91: wait for calibration done before proceed +- mmc: meson-gx: do not use memcpy_to/fromio for dram-access-quirk +- xen/privcmd: fix error handling in mmap-resource processing +- drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows +- usb: typec: tcpm: handle SRC_STARTUP state if cc changes +- USB: cdc-acm: fix break reporting +- USB: cdc-acm: fix racy tty buffer accesses +- usb: chipidea: ci_hdrc_imx: Also search for 'phys' phandle +- Partially revert "usb: Kconfig: using select for USB_COMMON dependency" +- nbd: fix uaf in nbd_handle_reply() +- nbd: partition nbd_read_stat() into nbd_read_reply() and nbd_handle_reply() +- nbd: clean up return value checking of sock_xmit() +- nbd: don't start request if nbd_queue_rq() failed +- nbd: check sock index in nbd_read_stat() +- nbd: make sure request completion won't concurrent +- nbd: don't handle response without a corresponding request message +- libata: Add ATA_HORKAGE_NO_NCQ_ON_ATI for Samsung 860 and 870 SSD. +- perf/x86: Reset destroy callback on event init failure +- KVM: x86: nSVM: restore int_vector in svm_clear_vintr +- kvm: x86: Add AMD PMU MSRs to msrs_to_save_all[] +- KVM: do not shrink halt_poll_ns below grow_start +- selftests: KVM: Align SMCCC call with the spec in steal_time +- tools/vm/page-types: remove dependency on opt_file for idle page tracking +- smb3: correct smb3 ACL security descriptor +- irqchip/gic: Work around broken Renesas integration +- scsi: ses: Retry failed Send/Receive Diagnostic commands +- thermal/drivers/tsens: Fix wrong check for tzd in irq handlers +- nvme-fc: avoid race between time out and tear down +- nvme-fc: update hardware queues before using them +- selftests:kvm: fix get_warnings_count() ignoring fscanf() return warn +- selftests: be sure to make khdr before other targets +- habanalabs/gaudi: fix LBW RR configuration +- usb: dwc2: check return value after calling platform_get_resource() +- usb: testusb: Fix for showing the connection speed +- scsi: sd: Free scsi_disk device via put_device() +- ext2: fix sleeping in atomic bugs on error +- sparc64: fix pci_iounmap() when CONFIG_PCI is not set +- xen-netback: correct success/error reporting for the SKB-with-fraglist case +- net: mdio: introduce a shutdown method to mdio device drivers +- btrfs: fix mount failure due to past and transient device flush error +- btrfs: replace BUG_ON() in btrfs_csum_one_bio() with proper error handling +- nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN +- platform/x86: touchscreen_dmi: Update info for the Chuwi Hi10 Plus (CWI527) tablet +- platform/x86: touchscreen_dmi: Add info for the Chuwi HiBook (CWI514) tablet +- spi: rockchip: handle zero length transfers without timing out +- netfilter: nf_tables: Fix oversized kvmalloc() calls +- netfilter: conntrack: serialize hash resizes and cleanups +- KVM: x86: Handle SRCU initialization failure during page track init +- HID: usbhid: free raw_report buffers in usbhid_stop +- mm: don't allow oversized kvmalloc() calls +- netfilter: ipset: Fix oversized kvmalloc() calls +- HID: betop: fix slab-out-of-bounds Write in betop_probe +- usb: hso: remove the bailout parameter +- ASoC: dapm: use component prefix when checking widget names +- net: udp: annotate data race around udp_sk(sk)->corkflag +- HID: u2fzero: ignore incomplete packets without data +- ext4: add error checking to ext4_ext_replay_set_iblocks() +- ext4: fix reserved space counter leakage +- ext4: limit the number of blocks in one ADD_RANGE TLV +- ext4: fix loff_t overflow in ext4_max_bitmap_size() +- ipack: ipoctal: fix module reference leak +- ipack: ipoctal: fix missing allocation-failure check +- ipack: ipoctal: fix tty-registration error handling +- ipack: ipoctal: fix tty registration race +- ipack: ipoctal: fix stack information leak +- debugfs: debugfs_create_file_size(): use IS_ERR to check for error +- elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings +- nvme: add command id quirk for apple controllers +- hwmon: (pmbus/mp2975) Add missed POUT attribute for page 1 mp2975 controller +- perf/x86/intel: Update event constraints for ICX +- af_unix: fix races in sk_peer_pid and sk_peer_cred accesses +- net: sched: flower: protect fl_walk() with rcu +- net: phy: bcm7xxx: Fixed indirect MMD operations +- net: hns3: fix always enable rx vlan filter problem after selftest +- net: hns3: fix prototype warning +- net: hns3: fix show wrong state when add existing uc mac address +- net: hns3: fix mixed flag HCLGE_FLAG_MQPRIO_ENABLE and HCLGE_FLAG_DCB_ENABLE +- net: hns3: do not allow call hns3_nic_net_open repeatedly +- ixgbe: Fix NULL pointer dereference in ixgbe_xdp_setup +- scsi: csiostor: Add module softdep on cxgb4 +- Revert "block, bfq: honor already-setup queue merges" +- net: ks8851: fix link error +- selftests, bpf: test_lwt_ip_encap: Really disable rp_filter +- selftests, bpf: Fix makefile dependencies on libbpf +- bpf: Exempt CAP_BPF from checks against bpf_jit_limit +- e100: fix buffer overrun in e100_get_regs +- e100: fix length calculation in e100_get_regs_len +- dsa: mv88e6xxx: Include tagger overhead when setting MTU for DSA and CPU ports +- dsa: mv88e6xxx: Fix MTU definition +- dsa: mv88e6xxx: 6161: Use chip wide MAX MTU +- drm/i915/request: fix early tracepoints +- smsc95xx: fix stalled rx after link change +- net: ipv4: Fix rtnexthop len when RTA_FLOW is present +- net: enetc: fix the incorrect clearing of IF_MODE bits +- hwmon: (tmp421) fix rounding for negative values +- hwmon: (tmp421) report /PVLD condition as fault +- mptcp: don't return sockets in foreign netns +- sctp: break out if skb_header_pointer returns NULL in sctp_rcv_ootb +- mac80211-hwsim: fix late beacon hrtimer handling +- mac80211: mesh: fix potentially unaligned access +- mac80211: limit injected vht mcs/nss in ieee80211_parse_tx_radiotap +- mac80211: Fix ieee80211_amsdu_aggregate frag_tail bug +- hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs +- RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure +- IB/cma: Do not send IGMP leaves for sendonly Multicast groups +- bpf: Handle return value of BPF_PROG_TYPE_STRUCT_OPS prog +- ipvs: check that ip_vs_conn_tab_bits is between 8 and 20 +- drm/amdgpu: correct initial cp_hqd_quantum for gfx9 +- drm/amd/display: Pass PCI deviceid into DC +- RDMA/cma: Do not change route.addr.src_addr.ss_family +- media: ir_toy: prevent device from hanging during transmit +- KVM: rseq: Update rseq when processing NOTIFY_RESUME on xfer to KVM guest +- KVM: nVMX: Filter out all unsupported controls when eVMCS was activated +- KVM: x86: nSVM: don't copy virt_ext from vmcb12 +- KVM: x86: Fix stack-out-of-bounds memory access from ioapic_write_indirect() +- x86/kvmclock: Move this_cpu_pvti into kvmclock.h +- mac80211: fix use-after-free in CCMP/GCMP RX +- scsi: ufs: Fix illegal offset in UPIU event trace +- gpio: pca953x: do not ignore i2c errors +- hwmon: (w83791d) Fix NULL pointer dereference by removing unnecessary structure field +- hwmon: (w83792d) Fix NULL pointer dereference by removing unnecessary structure field +- hwmon: (w83793) Fix NULL pointer dereference by removing unnecessary structure field +- hwmon: (tmp421) handle I2C errors +- fs-verity: fix signed integer overflow with i_size near S64_MAX +- ACPI: NFIT: Use fallback node id when numa info in NFIT table is incorrect +- ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops. +- usb: cdns3: fix race condition before setting doorbell +- cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory +- scsi: qla2xxx: Changes to support kdump kernel for NVMe BFS +- cpufreq: schedutil: Use kobject release() method to free sugov_tunables +- tty: Fix out-of-bound vmalloc access in imageblit +- ubifs: ubifs_dump_node: Dump all branches of the index node +- ubifs: ubifs_dump_sleb: Remove unused function +- ubifs: Pass node length in all node dumping callers +- ubifs: Remove the redundant return in dbg_check_nondata_nodes_order +- Revert "ubifs: Fix out-of-bounds memory access caused by abnormal value of node_len" +- ubifs: Limit dumping length by size of memory which is allocated for the node +- ext4: prevent partial update of the extent blocks +- ext4: check for inconsistent extents between index and leaf block +- ext4: check for out-of-order index extents in ext4_valid_extent_entries() +- quota: correct error number in free_dqentry() +- quota: check block number when reading the block in quota file +- mm: rmap: explicitly reset vma->anon_vma in unlink_anon_vmas() +- cgroup: Fix memory leak caused by missing cgroup_bpf_offline +- qnx4: work around gcc false positive warning bug +- xen/balloon: fix balloon kthread freezing +- USB: serial: cp210x: fix dropped characters with CP2102 +- thermal/drivers/int340x: Do not set a wrong tcc offset on resume +- EDAC/dmc520: Assign the proper type to dimm->edac_mode +- EDAC/synopsys: Fix wrong value type assignment for edac_mode +- spi: Fix tegra20 build with CONFIG_PM=n +- net: 6pack: Fix tx timeout and slot time +- alpha: Declare virt_to_phys and virt_to_bus parameter as pointer to volatile +- arm64: Mark __stack_chk_guard as __ro_after_init +- parisc: Use absolute_pointer() to define PAGE0 +- qnx4: avoid stringop-overread errors +- sparc: avoid stringop-overread errors +- net: i825xx: Use absolute_pointer for memcpy from fixed memory location +- compiler.h: Introduce absolute_pointer macro +- block: flush the integrity workqueue in blk_integrity_unregister +- block: check if a profile is actually registered in blk_integrity_unregister +- amd/display: downgrade validation failure log level +- sparc32: page align size in arch_dma_alloc +- nvme-rdma: destroy cm id before destroy qp to avoid use after free +- nvme-multipath: fix ANA state updates when a namespace is not present +- xen/balloon: use a kernel thread instead a workqueue +- bpf: Add oversize check before call kvcalloc() +- cpufreq: intel_pstate: Override parameters if HWP forced by BIOS +- ipv6: delay fib6_sernum increase in fib6_add +- m68k: Double cast io functions to unsigned long +- blk-mq: avoid to iterate over stale request +- net: stmmac: allow CSR clock of 300MHz +- net: macb: fix use after free on rmmod +- net: phylink: Update SFP selected interface on advertising changes +- io_uring: put provided buffer meta data under memcg accounting +- x86/asm: Fix SETZ size enqcmds() build failure +- x86/asm: Add a missing __iomem annotation in enqcmds() +- md: fix a lock order reversal in md_alloc +- irqchip/gic-v3-its: Fix potential VPE leak on error +- irqchip/goldfish-pic: Select GENERIC_IRQ_CHIP to fix build +- scsi: lpfc: Use correct scnprintf() limit +- scsi: qla2xxx: Restore initiator in dual mode +- cifs: fix a sign extension bug +- thermal/core: Potential buffer overflow in thermal_build_list_of_policies() +- nvme: keep ctrl->namespaces ordered +- treewide: Change list_sort to use const pointers +- nvme-tcp: fix incorrect h2cdata pdu offset accounting +- fpga: machxo2-spi: Fix missing error code in machxo2_write_complete() +- fpga: machxo2-spi: Return an error on failure +- tty: synclink_gt: rename a conflicting function name +- tty: synclink_gt, drop unneeded forward declarations +- scsi: target: Fix the pgr/alua_support_store functions +- scsi: iscsi: Adjust iface sysfs attr detection +- atlantic: Fix issue in the pm resume flow. +- net/mlx4_en: Don't allow aRFS for encapsulated packets +- qed: rdma - don't wait for resources under hw error recovery flow +- gpio: uniphier: Fix void functions to remove return value +- s390/qeth: fix NULL deref in qeth_clear_working_pool_list() +- kselftest/arm64: signal: Skip tests if required features are missing +- kselftest/arm64: signal: Add SVE to the set of features we can check for +- net: dsa: realtek: register the MDIO bus under devres +- net: dsa: don't allocate the slave_mii_bus using devres +- net/smc: fix 'workqueue leaked lock' in smc_conn_abort_work +- net/smc: add missing error check in smc_clc_prfx_set() +- bnxt_en: Fix TX timeout when TX ring size is set to the smallest +- enetc: Fix uninitialized struct dim_sample field usage +- enetc: Fix illegal access when reading affinity_hint +- platform/x86/intel: punit_ipc: Drop wrong use of ACPI_PTR() +- afs: Fix updating of i_blocks on file/dir extension +- afs: Fix incorrect triggering of sillyrename on 3rd-party invalidation +- comedi: Fix memory leak in compat_insnlist() +- net: hso: fix muxed tty registration +- drm/amd/pm: Update intermediate power state for SI +- scsi: sd_zbc: Ensure buffer size is aligned to SECTOR_SIZE +- serial: mvebu-uart: fix driver's tx_empty callback +- serial: 8250: 8250_omap: Fix RX_LVL register offset +- xhci: Set HCD flag to defer primary roothub registration +- btrfs: prevent __btrfs_dump_space_info() to underflow its free space +- erofs: fix up erofs_lookup tracepoint +- mcb: fix error handling in mcb_alloc_bus() +- USB: serial: option: add device id for Foxconn T99W265 +- USB: serial: option: remove duplicate USB device ID +- USB: serial: option: add Telit LN920 compositions +- USB: serial: mos7840: remove duplicated 0xac24 device ID +- usb: core: hcd: Add support for deferring roothub registration +- usb: dwc3: core: balance phy init and exit +- Re-enable UAS for LaCie Rugged USB3-FW with fk quirk +- staging: greybus: uart: fix tty use after free +- binder: make sure fd closes complete +- Revert "USB: bcma: Add a check for devm_gpiod_get" +- USB: cdc-acm: fix minor-number release +- USB: serial: cp210x: add ID for GW Instek GDM-834x Digital Multimeter +- usb-storage: Add quirk for ScanLogic SL11R-IDE older than 2.6c +- xen/x86: fix PV trap handling on secondary processors +- cifs: fix incorrect check for null pointer in header_assemble +- usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned() +- usb: dwc2: gadget: Fix ISOC transfer complete handling for DDMA +- usb: dwc2: gadget: Fix ISOC flow for BDMA and Slave +- usb: gadget: r8a66597: fix a loop in set_feature() +- ocfs2: drop acl cache for directories too +- PCI: aardvark: Increase polling delay to 1.5s while waiting for PIO response +- drm/amdgpu: fix out of bounds write +- sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa() +- arm64: Avoid premature usercopy failure +- livepatch: Check whole stack when CONFIG_PREEMPT is set +- arm64: remove page granularity limitation from KFENCE +- drm/nouveau/nvkm: Replace -ENOSYS with -ENODEV +- sched/idle: Make the idle timer expire in hard interrupt context +- rtc: rx8010: select REGMAP_I2C +- blk-mq: allow 4x BLK_MAX_REQUEST_COUNT at blk_plug for multiple_queues +- pwm: stm32-lp: Don't modify HW state in .remove() callback +- pwm: rockchip: Don't modify HW state in .remove() callback +- pwm: img: Don't modify HW state in .remove() callback +- habanalabs: add validity check for event ID received from F/W +- nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group +- nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group +- nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group +- nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group +- nilfs2: fix NULL pointer in nilfs_##name##_attr_release +- nilfs2: fix memory leak in nilfs_sysfs_create_device_group +- btrfs: fix lockdep warning while mounting sprout fs +- btrfs: update the bdev time directly when closing +- ceph: lockdep annotations for try_nonblocking_invalidate +- ceph: remove the capsnaps when removing caps +- ceph: request Fw caps before updating the mtime in ceph_write_iter +- dmaengine: xilinx_dma: Set DMA mask for coherent APIs +- dmaengine: ioat: depends on !UML +- dmaengine: sprd: Add missing MODULE_DEVICE_TABLE +- dmaengine: idxd: depends on !UML +- iommu/amd: Relocate GAMSup check to early_enable_iommus +- parisc: Move pci_dev_is_behind_card_dino to where it is used +- dma-buf: DMABUF_MOVE_NOTIFY should depend on DMA_SHARED_BUFFER +- drivers: base: cacheinfo: Get rid of DEFINE_SMP_CALL_CACHE_FUNCTION() +- drm/amdgpu: Disable PCIE_DPM on Intel RKL Platform +- thermal/core: Fix thermal_cooling_device_register() prototype +- tools/bootconfig: Fix tracing_on option checking in ftrace2bconf.sh +- Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH +- ceph: cancel delayed work instead of flushing on mdsc teardown +- ceph: allow ceph_put_mds_session to take NULL or ERR_PTR +- platform/chrome: cros_ec_trace: Fix format warnings +- platform/chrome: sensorhub: Add trace events for sample +- dmaengine: idxd: fix wq slot allocation index check +- pwm: mxs: Don't modify HW state in .probe() after the PWM chip was registered +- pwm: lpc32xx: Don't modify HW state in .probe() after the PWM chip was registered +- PM: sleep: core: Avoid setting power.must_resume to false +- profiling: fix shift-out-of-bounds bugs +- nilfs2: use refcount_dec_and_lock() to fix potential UAF +- prctl: allow to setup brk for et_dyn executables +- 9p/trans_virtio: Remove sysfs file on probe failure +- thermal/drivers/exynos: Fix an error code in exynos_tmu_probe() +- perf tools: Allow build-id with trailing zeros +- tools lib: Adopt memchr_inv() from kernel +- perf test: Fix bpf test sample mismatch reporting +- dmaengine: acpi: Avoid comparison GSI with Linux vIRQ +- um: virtio_uml: fix memory leak on init failures +- coredump: fix memleak in dump_vma_snapshot() +- staging: rtl8192u: Fix bitwise vs logical operator in TranslateRxSignalStuff819xUsb() +- Revert "net/mlx5: Register to devlink ingress VLAN filter trap" +- s390/pci_mmio: fully validate the VMA before calling follow_pte() +- console: consume APC, DM, DCS +- PCI: aardvark: Fix reporting CRS value +- PCI: pci-bridge-emul: Add PCIe Root Capabilities Register +- media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt() +- ext4: fix potential infinite loop in ext4_dx_readdir() +- mm: memcontrol: set the correct memcg swappiness restriction +- mm, vmscan: guarantee drop_slab_node() termination +- powerpc/numa: Update cpu_cpu_map on CPU online/offline +- powerpc/powernv/pci: fix a RCU-list lock +- blktrace: Fix uaf in blk_trace access after removing by sysfs +- ext4: drop unnecessary journal handle in delalloc write +- ext4: factor out write end code of inline file +- ext4: correct the error path of ext4_write_inline_data_end() +- ext4: check and update i_disksize properly +- efi: Change down_interruptible() in virt_efi_reset_system() to down_trylock() +- ramfs: fix mount source show for ramfs +- fs: add vfs_parse_fs_param_source() helper +- blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd +- block: fix memory leak for mq shared sbitmap +- ia64: ensure proper NUMA distance and possible map initialization +- sched/topology: Make sched_init_numa() use a set for the deduplicating sort +- sched/topology: fix the issue groups don't span domain->span for NUMA diameter > 2 +- sched/topology: Warn when NUMA diameter > 2 +- nbd: add the check to prevent overflow in __nbd_ioctl() +- block: fix UAF from race of ioc_release_fn() and __ioc_clear_queue() +- blk-throttle: fix UAF by deleteing timer in blk_throtl_exit() +- block: don't call rq_qos_ops->done_bio if the bio isn't tracked +- kabi: Introduce KABI_RESERVE macro for openEuler kernel +- sched/fair: fix sd_llc_alloc_all() compile error + +* Thu Nov 11 2021 Zheng Zengkai - 5.10.0-17.0.0.7 +- net: phy: realtek: net: Fix less than zero comparison of a u16 +- net: phy: realtek: add dt property to enable ALDPS mode +- net: phy: realtek: add dt property to disable CLKOUT clock +- openeuler_defconfig: Build HISI PMU drivers as modules. +- configs: add config BMA to config files +- Huawei BMA: Adding Huawei BMA driver: cdev_veth_drv +- Huawei BMA: Adding Huawei BMA driver: host_kbox_drv +- Huawei BMA: Adding Huawei BMA driver: host_veth_drv +- Huawei BMA: Adding Huawei BMA driver: host_cdev_drv +- Huawei BMA: Adding Huawei BMA driver: host_edma_drv +- page_pool: disable dma mapping support for 32-bit arch with 64-bit DMA +- page_pool: use relaxed atomic for release side accounting +- net: hns3: add option to turn off page pool feature +- net: hns3: support skb's frag page recycling based on page pool +- page_pool: add frag page recycling support in page pool +- page_pool: add interface to manipulate frag count in page pool +- page_pool: keep pp info as long as page pool owns the page +- page_pool: mask the page->signature before the checking +- skbuff: Fix a potential race while recycling page_pool packets +- net: ti: add pp skb recycling support +- mvpp2: prefetch page +- mvpp2: prefetch right address +- mvneta: recycle buffers +- mvpp2: recycle buffers +- page_pool: Allow drivers to hint on SKB recycling +- skbuff: add a parameter to __skb_frag_unref +- mm: add a signature in struct page +- net: page_pool: simplify page recycling condition tests +- skbuff: Call skb_zcopy_clear() before unref'ing fragments +- net: page_pool: Add bulk support for ptr_ring +- MAINTAINERS: update for DAMON +- mm/damon: add user space selftests +- mm/damon: add kunit tests +- Documentation: add documents for DAMON +- mm/damon/dbgfs: support multiple contexts +- mm/damon/dbgfs: export kdamond pid to the user space +- mm/damon: implement a debugfs-based user space interface +- mm/damon: add a tracepoint +- mm/damon: implement primitives for the virtual memory address spaces +- mm/idle_page_tracking: make PG_idle reusable +- mm/damon: adaptively adjust regions +- mm/damon/core: implement region-based sampling +- mm: introduce Data Access MONitor (DAMON) +- sched/fair: fix try_steal compile error +- config: enable CONFIG_SCHED_STEAL by default +- sched/fair: introduce SCHED_STEAL +- disable stealing by default +- sched/fair: Provide idle search schedstats +- sched/fair: disable stealing if too many NUMA nodes +- sched/fair: Steal work from an overloaded CPU when CPU goes idle +- sched/fair: Provide can_migrate_task_llc +- sched/fair: Generalize the detach_task interface +- sched/fair: Hoist idle_stamp up from idle_balance +- sched/fair: Dynamically update cfs_overload_cpus +- sched/topology: Provide cfs_overload_cpus bitmap +- sched/topology: Provide hooks to allocate data shared per LLC +- sched: Provide sparsemask, a reduced contention bitmap +- psi: introduce psi_v1 boot parameter +- psi: support psi under cgroup v1 +- spfc: Fix compile errors when O=xxx is specified + +* Sat Oct 30 2021 Zheng Zengkai - 5.10.0-16.0.0.6 +- openeuler_defconfig: Enable CONFIG_HW_RANDOM_HISI_GM by default +- hwrng: add hisilicon GM auth trng driver +- cgroup/files: support boot parameter to control if disable files cgroup +- files_cgroup: Fix soft lockup when refcnt overflow. +- filescontrol: silence suspicious RCU warning +- mm/memcg: fix NULL pointer dereference in memcg_slab_free_hook() +- mm: memcontrol: move PageMemcgKmem to the scope of CONFIG_MEMCG_KMEM +- mm: memcontrol: inline __memcg_kmem_{un}charge() into obj_cgroup_{un}charge_pages() +- mm: memcontrol: use obj_cgroup APIs to charge kmem pages +- mm: memcontrol: change ug->dummy_page only if memcg changed +- mm: memcontrol: directly access page->memcg_data in mm/page_alloc.c +- mm: memcontrol: introduce obj_cgroup_{un}charge_pages +- mm: Convert page kmemcg type to a page memcg flag +- mm: Introduce page memcg flags +- mm: memcontrol/slab: Use helpers to access slab page's memcg_data +- mm: memcontrol: Use helpers to read page's memcg data +- scsi: spfc: initial commit the spfc module +- mmap: userswap: fix some format issues +- mmap: userswap: fix memory leak in do_mmap +- perf stat: Add --quiet option + +* Tue Oct 26 2021 Zheng Zengkai - 5.10.0-15.0.0.5 +- net: dsa: bcm_sf2: Fix array overrun in bcm_sf2_num_active_ports() +- bnxt_en: Fix error recovery regression +- x86/mce: Avoid infinite loop for copy from user recovery +- net: renesas: sh_eth: Fix freeing wrong tx descriptor +- mfd: lpc_sch: Rename GPIOBASE to prevent build error +- mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000" +- bnxt_en: Fix possible unintended driver initiated error recovery +- bnxt_en: Improve logging of error recovery settings information. +- bnxt_en: Convert to use netif_level() helpers. +- bnxt_en: Consolidate firmware reset event logging. +- bnxt_en: log firmware debug notifications +- bnxt_en: Fix asic.rev in devlink dev info command +- bnxt_en: fix stored FW_PSID version masks +- net: dsa: b53: Fix IMP port setup on BCM5301x +- ip_gre: validate csum_start only on pull +- qlcnic: Remove redundant unlock in qlcnic_pinit_from_rom +- fq_codel: reject silly quantum parameters +- netfilter: socket: icmp6: fix use-after-scope +- net: dsa: b53: Set correct number of ports in the DSA struct +- net: dsa: b53: Fix calculating number of switch ports +- net: hso: add failure handler for add_net_device +- selftests: mptcp: clean tmp files in simult_flows +- net: dsa: tag_rtl4_a: Fix egress tags +- gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak +- gpio: mpc8xxx: Fix a resources leak in the error handling path of 'mpc8xxx_probe()' +- perf bench inject-buildid: Handle writen() errors +- perf unwind: Do not overwrite FEATURE_CHECK_LDFLAGS-libunwind-{x86,aarch64} +- ARC: export clear_user_page() for modules +- mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()' +- PCI: Sync __pci_register_driver() stub for CONFIG_PCI=n +- KVM: arm64: Handle PSCI resets before userspace touches vCPU state +- KVM: arm64: Fix read-side race on updates to vcpu reset state +- tracing/boot: Fix a hist trigger dependency for boot time tracing +- mfd: tqmx86: Clear GPIO IRQ resource when no IRQ is set +- PCI: Fix pci_dev_str_match_path() alloc while atomic bug +- KVM: arm64: Restrict IPA size to maximum 48 bits on 4K and 16K page size +- netfilter: nft_ct: protect nft_ct_pcpu_template_refcnt with mutex +- netfilter: Fix fall-through warnings for Clang +- PCI: iproc: Fix BCMA probe resource handling +- PCI: of: Don't fail devm_pci_alloc_host_bridge() on missing 'ranges' +- backlight: ktd253: Stabilize backlight +- mfd: axp20x: Update AXP288 volatile ranges +- s390/bpf: Fix branch shortening during codegen pass +- s390/bpf: Fix 64-bit subtraction of the -0x80000000 constant +- s390/bpf: Fix optimizing out zero-extensions +- NTB: perf: Fix an error code in perf_setup_inbuf() +- NTB: Fix an error code in ntb_msit_probe() +- ethtool: Fix an error code in cxgb2.c +- PCI: ibmphp: Fix double unmap of io_mem +- block, bfq: honor already-setup queue merges +- net: usb: cdc_mbim: avoid altsetting toggling for Telit LN920 +- Set fc_nlinfo in nh_create_ipv4, nh_create_ipv6 +- octeontx2-af: Add additional register check to rvu_poll_reg() +- watchdog: Start watchdog in watchdog_set_last_hw_keepalive only if appropriate +- PCI: Add ACS quirks for Cavium multi-function devices +- PCI: j721e: Add PCIe support for AM64 +- PCI: j721e: Add PCIe support for J7200 +- PCI: cadence: Add quirk flag to set minimum delay in LTSSM Detect.Quiet state +- PCI: cadence: Use bitfield for *quirk_retrain_flag* instead of bool +- tracing/probes: Reject events which have the same name of existing one +- PCI: rcar: Fix runtime PM imbalance in rcar_pcie_ep_probe() +- mfd: Don't use irq_create_mapping() to resolve a mapping +- PCI: tegra: Fix OF node reference leak +- PCI: tegra194: Fix MSI-X programming +- PCI: tegra194: Fix handling BME_CHGED event +- fuse: fix use after free in fuse_read_interrupt() +- PCI: Add ACS quirks for NXP LX2xx0 and LX2xx2 platforms +- mfd: db8500-prcmu: Adjust map to reality +- dt-bindings: mtd: gpmc: Fix the ECC bytes vs. OOB bytes equation +- mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range() +- bnxt_en: make bnxt_free_skbs() safe to call after bnxt_free_mem() +- KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode changing registers +- ibmvnic: check failover_pending in login response +- dt-bindings: arm: Fix Toradex compatible typo +- udp_tunnel: Fix udp_tunnel_nic work-queue type +- qed: Handle management FW error +- selftest: net: fix typo in altname test +- tcp: fix tp->undo_retrans accounting in tcp_sacktag_one() +- x86/uaccess: Fix 32-bit __get_user_asm_u64() when CC_HAS_ASM_GOTO_OUTPUT=y +- net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup +- net/af_unix: fix a data-race in unix_dgram_poll +- vhost_net: fix OoB on sendmsg() failure. +- gen_compile_commands: fix missing 'sys' package +- net: ipa: initialize all filter table slots +- events: Reuse value read using READ_ONCE instead of re-reading it +- nvme-tcp: fix io_work priority inversion +- net/mlx5: Fix potential sleeping in atomic context +- net/mlx5: FWTrace, cancel work on alloc pd error flow +- perf machine: Initialize srcline string member in add_location struct +- drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused +- tipc: increase timeout in tipc_sk_enqueue() +- r6040: Restore MDIO clock frequency after MAC reset +- net/l2tp: Fix reference count leak in l2tp_udp_recv_core +- dccp: don't duplicate ccid when cloning dccp sock +- ptp: dp83640: don't define PAGE0 +- net-caif: avoid user-triggerable WARN_ON(1) +- net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert +- ethtool: Fix rxnfc copy to user buffer overflow +- tipc: fix an use-after-free issue in tipc_recvmsg +- x86/mm: Fix kern_addr_valid() to cope with existing but not present entries +- x86/pat: Pass valid address to sanitize_phys() +- s390/sclp: fix Secure-IPL facility detection +- drm/etnaviv: add missing MMU context put when reaping MMU mapping +- drm/etnaviv: reference MMU context when setting up hardware state +- drm/etnaviv: fix MMU context leak on GPU reset +- drm/etnaviv: exec and MMU state is lost when resetting the GPU +- drm/etnaviv: keep MMU context across runtime suspend/resume +- drm/etnaviv: stop abusing mmu_context as FE running marker +- drm/etnaviv: put submit prev MMU context when it exists +- drm/etnaviv: return context from etnaviv_iommu_context_get +- drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10 +- PCI: Add AMD GPU multi-function power dependencies +- PM: base: power: don't try to use non-existing RTC for storing data +- arm64/sve: Use correct size when reinitialising SVE state +- bnx2x: Fix enabling network interfaces without VFs +- xen: reset legacy rtc flag for PV domU +- btrfs: fix upper limit for max_inline for page size 64K +- drm/bridge: lt9611: Fix handling of 4k panels +- fanotify: limit number of event merge attempts +- drm/panfrost: Clamp lock region to Bifrost minimum +- drm/panfrost: Use u64 for size in lock_region +- drm/panfrost: Simplify lock_region calculation +- drm/amd/display: Update bounding box states (v2) +- drm/amd/display: Update number of DCN3 clock states +- drm/amdgpu: Fix BUG_ON assert +- drm/panfrost: Make sure MMU context lifetime is not bound to panfrost_priv +- drm/dp_mst: Fix return code on sideband message failure +- drm/msi/mdp4: populate priv->kms in mdp4_kms_init +- drm/mgag200: Select clock in PLL update functions +- net: dsa: lantiq_gswip: fix maximum frame length +- lib/test_stackinit: Fix static initializer test +- platform/chrome: cros_ec_proto: Send command again when timeout occurs +- libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind +- mm,vmscan: fix divide by zero in get_scan_count +- mm/hugetlb: initialize hugetlb_usage in mm_init +- mm/hmm: bypass devmap pte when all pfn requested flags are fulfilled +- hugetlb: fix hugetlb cgroup refcounting during vma split +- s390/pv: fix the forcing of the swiotlb +- cpufreq: powernv: Fix init_chip_info initialization in numa=off +- scsi: qla2xxx: Sync queue idx with queue_pair_map idx +- scsi: qla2xxx: Changes to support kdump kernel +- scsi: BusLogic: Fix missing pr_cont() use +- ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup() +- parisc: fix crash with signals and alloca +- io_uring: remove duplicated io_size from rw +- fs/io_uring Don't use the return value from import_iovec(). +- net: w5100: check return value after calling platform_get_resource() +- fix array-index-out-of-bounds in taprio_change +- net: fix NULL pointer reference in cipso_v4_doi_free +- ath9k: fix sleeping in atomic context +- ath9k: fix OOB read ar9300_eeprom_restore_internal +- wcn36xx: Fix missing frame timestamp for beacon/probe-resp +- selftests/bpf: Fix potential unreleased lock +- parport: remove non-zero check on count +- net/mlx5: DR, Enable QP retransmission +- net/mlx5: DR, fix a potential use-after-free bug +- iwlwifi: mvm: Fix scan channel flags settings +- iwlwifi: fw: correctly limit to monitor dump +- iwlwifi: mvm: fix access to BSS elements +- iwlwifi: mvm: avoid static queue number aliasing +- iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed +- iwlwifi: pcie: free RBs during configure +- nfsd: fix crash on LOCKT on reexported NFSv3 +- drm/amdkfd: Account for SH/SE count when setting up cu masks. +- ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B +- ASoC: rockchip: i2s: Fix regmap_ops hang +- usbip:vhci_hcd USB port can get stuck in the disabled state +- usbip: give back URBs for unsent unlink requests during cleanup +- usb: musb: musb_dsps: request_irq() after initializing musb +- Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set" +- cifs: fix wrong release in sess_alloc_buffer() failed path +- mmc: core: Return correct emmc response in case of ioctl error +- selftests/bpf: Enlarge select() timeout for test_maps +- mmc: rtsx_pci: Fix long reads when clock is prescaled +- mmc: sdhci-of-arasan: Check return value of non-void funtions +- mmc: sdhci-of-arasan: Modified SD default speed to 19MHz for ZynqMP +- of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS +- ASoC: Intel: Skylake: Fix passing loadable flag for module +- ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER +- soundwire: intel: fix potential race condition during power down +- btrfs: tree-log: check btrfs_lookup_data_extent return value +- m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch +- octeontx2-pf: Fix NIX1_RX interface backpressure +- rtw88: wow: fix size access error of probe request +- rtw88: wow: build wow function only if CONFIG_PM is on +- rtw88: use read_poll_timeout instead of fixed sleep +- rtl8xxxu: Fix the handling of TX A-MPDU aggregation +- drm/exynos: Always initialize mapping in exynos_drm_register_dma() +- lockd: lockd server-side shouldn't set fl_ops +- usb: chipidea: host: fix port index underflow and UBSAN complains +- gfs2: Don't call dlm after protocol is unmounted +- kselftest/arm64: pac: Fix skipping of tests on systems without PAC +- kselftest/arm64: mte: Fix misleading output when skipping tests +- net: Fix offloading indirect devices dependency on qdisc order creation +- staging: rts5208: Fix get_ms_information() heap buffer size +- hwmon: (pmbus/ibm-cffps) Fix write bits for LED control +- selftests/bpf: Fix flaky send_signal test +- rpc: fix gss_svc_init cleanup on failure +- tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD +- iomap: pass writeback errors to the mapping +- serial: sh-sci: fix break handling for sysrq +- opp: Don't print an error if required-opps is missing +- Bluetooth: Fix handling of LE Enhanced Connection Complete +- nvme: code command_id with a genctr for use-after-free validation +- nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data +- arm64: dts: ls1046a: fix eeprom entries +- arm64: tegra: Fix compatible string for Tegra132 CPUs +- ARM: tegra: tamonten: Fix UART pad setting +- ARM: tegra: acer-a500: Remove bogus USB VBUS regulators +- mac80211: Fix monitor MTU limit so that A-MSDUs get through +- drm/display: fix possible null-pointer dereference in dcn10_set_clock() +- gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port() +- net/mlx5: Fix variable type to match 64bit +- drm/msm/dp: return correct edid checksum after corrupted edid checksum read +- Bluetooth: avoid circular locks in sco_sock_connect +- Bluetooth: schedule SCO timeouts with delayed_work +- drm/vmwgfx: fix potential UAF in vmwgfx_surface.c +- selftests/bpf: Fix xdp_tx.c prog section name +- drm/amd/display: fix incorrect CM/TF programming sequence in dwb +- drm/amd/display: fix missing writeback disablement if plane is removed +- thunderbolt: Fix port linking by checking all adapters +- drm: xlnx: zynqmp: release reset to DP controller before accessing DP registers +- drm: xlnx: zynqmp_dpsub: Call pm_runtime_get_sync before setting pixel clock +- drm/msm/dsi: Fix DSI and DSI PHY regulator config from SDM660 +- drm/msm: mdp4: drop vblank get/put from prepare/complete_commit +- net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe() +- nvmem: qfprom: Fix up qfprom_disable_fuse_blowing() ordering +- arm64: dts: qcom: sm8250: Fix epss_l3 unit address +- arm64: dts: qcom: msm8996: don't use underscore in node name +- arm64: dts: qcom: msm8994: don't use underscore in node name +- arm64: dts: qcom: sdm630: don't use underscore in node name +- arm64: dts: qcom: ipq6018: drop '0x' from unit address +- arm64: dts: qcom: sdm660: use reg value for memory node +- arm64: dts: qcom: ipq8074: fix pci node reg property +- ARM: dts: imx53-ppd: Fix ACHC entry +- serial: 8250_omap: Handle optional overrun-throttle-ms property +- arm64: dts: qcom: sdm630: Fix TLMM node and pinctrl configuration +- arm64: dts: qcom: sdm630: Rewrite memory map +- gfs2: Fix glock recursion in freeze_go_xmote_bh +- media: tegra-cec: Handle errors of clk_prepare_enable() +- media: TDA1997x: fix tda1997x_query_dv_timings() return value +- media: v4l2-dv-timings.c: fix wrong condition in two for-loops +- media: imx258: Limit the max analogue gain to 480 +- media: imx258: Rectify mismatch of VTS value +- ASoC: Intel: update sof_pcm512x quirks +- ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output +- arm64: tegra: Fix Tegra194 PCIe EP compatible string +- ARM: dts: at91: use the right property for shutdown controller +- bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler() +- ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check +- ARM: dts: stm32: Set {bitclock,frame}-master phandles on ST DKx +- ARM: dts: stm32: Set {bitclock,frame}-master phandles on DHCOM SoM +- workqueue: Fix possible memory leaks in wq_numa_init() +- Bluetooth: skip invalid hci_sync_conn_complete_evt +- ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init() +- libbpf: Fix race when pinning maps in parallel +- samples: bpf: Fix tracex7 error raised on the missing argument +- staging: ks7010: Fix the initialization of the 'sleep_status' structure +- serial: 8250_pci: make setup_port() parameters explicitly unsigned +- hvsi: don't panic on tty_register_driver failure +- xtensa: ISS: don't panic in rs_init +- serial: 8250: Define RX trigger levels for OxSemi 950 devices +- s390: make PCI mio support a machine flag +- s390/jump_label: print real address in a case of a jump label bug +- flow_dissector: Fix out-of-bounds warnings +- ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs() +- video: fbdev: riva: Error out if 'pixclock' equals zero +- video: fbdev: kyro: Error out if 'pixclock' equals zero +- video: fbdev: asiliantfb: Error out if 'pixclock' equals zero +- arm64: dts: allwinner: h6: tanix-tx6: Fix regulator node names +- drm/bridge: nwl-dsi: Avoid potential multiplication overflow on 32-bit +- bpf/tests: Do not PASS tests without actually testing the result +- bpf/tests: Fix copy-and-paste error in double word test +- drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex +- drm/amdgpu: Fix a printing message +- ethtool: improve compat ioctl handling +- nfp: fix return statement in nfp_net_parse_meta() +- media: atomisp: pci: fix error return code in atomisp_pci_probe() +- media: atomisp: Fix runtime PM imbalance in atomisp_pci_probe +- media: platform: stm32: unprepare clocks at handling errors in probe +- media: hantro: vp8: Move noisy WARN_ON to vpu_debug +- drm/amd/display: Fix timer_per_pixel unit error +- selftests: firmware: Fix ignored return val of asprintf() warn +- bus: fsl-mc: fix mmio base address for child DPRCs +- tty: serial: jsm: hold port lock when reporting modem line changes +- staging: board: Fix uninitialized spinlock when attaching genpd +- usb: gadget: composite: Allow bMaxPower=0 if self-powered +- USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable() +- usb: gadget: u_ether: fix a potential null pointer dereference +- usb: host: fotg210: fix the actual_length of an iso packet +- usb: host: fotg210: fix the endpoint's transactional opportunities calculation +- igc: Check if num of q_vectors is smaller than max before array access +- rcu: Fix macro name CONFIG_TASKS_RCU_TRACE +- drm: protect drm_master pointers in drm_lease.c +- drm: serialize drm_file.master with a new spinlock +- drm: avoid blocking in drm_clients_info's rcu section +- Smack: Fix wrong semantics in smk_access_entry() +- netlink: Deal with ESRCH error in nlmsg_notify() +- video: fbdev: kyro: fix a DoS bug by restricting user input +- ARM: dts: qcom: apq8064: correct clock names +- iavf: fix locking of critical sections +- iavf: do not override the adapter state in the watchdog task +- iio: dac: ad5624r: Fix incorrect handling of an optional regulator. +- net: phy: Fix data type in DP83822 dp8382x_disable_wol() +- tipc: keep the skb in rcv queue until the whole data is read +- PCI: Use pci_update_current_state() in pci_enable_device_flags() +- crypto: mxs-dcp - Use sg_mapping_iter to copy data +- x86/hyperv: fix for unwanted manipulation of sched_clock when TSC marked unstable +- libbpf: Fix reuse of pinned map on older kernel +- media: dib8000: rewrite the init prbs logic +- ASoC: atmel: ATMEL drivers don't need HAS_DMA +- drm/amdgpu: Fix amdgpu_ras_eeprom_init() +- drm/vc4: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET +- userfaultfd: prevent concurrent API initialization +- kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y +- MIPS: Malta: fix alignment of the devicetree buffer +- f2fs: should put a page beyond EOF when preparing a write +- f2fs: deallocate compressed pages when error happens +- f2fs: fix to unmap pages from userspace process in punch_hole() +- f2fs: fix unexpected ENOENT comes from f2fs_map_blocks() +- f2fs: fix to account missing .skipped_gc_rwsem +- soc: mediatek: cmdq: add address shift in jump +- KVM: PPC: Fix clearing never mapped TCEs in realmode +- clk: at91: clk-generated: Limit the requested rate to our range +- fscache: Fix cookie key hashing +- RDMA/hns: Fix QP's resp incomplete assignment +- powerpc/smp: Update cpu_core_map on all PowerPc systems +- platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call +- KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs are live +- scsi: ufs: ufs-exynos: Fix static checker warning +- KVM: PPC: Book3S HV: Fix copy_tofrom_guest routines +- clk: imx8m: fix clock tree update of TF-A managed clocks +- HID: i2c-hid: Fix Elan touchpad regression +- iommu/vt-d: Update the virtual command related registers +- powerpc/config: Renable MTD_PHYSMAP_OF +- scsi: qedf: Fix error codes in qedf_alloc_global_queues() +- scsi: qedi: Fix error codes in qedi_alloc_global_queues() +- scsi: smartpqi: Fix an error code in pqi_get_raid_map() +- powerpc/numa: Consider the max NUMA node for migratable LPAR +- pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry() +- scsi: fdomain: Fix error return code in fdomain_probe() +- sunrpc: Fix return value of get_srcport() +- SUNRPC query transport's source port +- SUNRPC/xprtrdma: Fix reconnection locking +- SUNRPC: Fix potential memory corruption +- NFSv4/pnfs: The layout barrier indicate a minimal value for the seqid +- NFSv4/pNFS: Always allow update of a zero valued layout barrier +- NFSv4/pNFS: Fix a layoutget livelock loop +- dma-debug: fix debugfs initialization order +- openrisc: don't printk() unconditionally +- f2fs: reduce the scope of setting fsck tag when de->name_len is zero +- cpuidle: pseries: Mark pseries_idle_proble() as __init +- RDMA/mlx5: Delete not-available udata check +- RDMA/efa: Remove double QP type assignment +- powerpc/stacktrace: Include linux/delay.h +- cpuidle: pseries: Fixup CEDE0 latency only for POWER10 onwards +- scsi: ufs: Fix memory corruption by ufshcd_read_desc_param() +- vfio: Use config not menuconfig for VFIO_NOIOMMU +- pinctrl: samsung: Fix pinctrl bank pin count +- scsi: BusLogic: Use %X for u32 sized integer rather than %lX +- docs: Fix infiniband uverbs minor number +- RDMA/iwcm: Release resources if iw_cm module initialization fails +- IB/hfi1: Adjust pkey entry in index 0 +- clk: rockchip: drop GRF dependency for rk3328/rk3036 pll types +- scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND +- pinctrl: armada-37xx: Correct PWM pins definitions +- pinctrl: remove empty lines in pinctrl subsystem +- f2fs: quota: fix potential deadlock +- HID: input: do not report stylus battery state as "full" +- PCI: aardvark: Fix masking and unmasking legacy INTx interrupts +- PCI: aardvark: Fix checking for PIO status +- PCI: Export pci_pio_to_address() for module use +- PCI: aardvark: Configure PCIe resources from 'ranges' DT property +- PCI: xilinx-nwl: Enable the clock through CCF +- PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure +- PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported +- PCI/portdrv: Enable Bandwidth Notification only if port supports it +- f2fs: fix to do sanity check for sb/cp fields correctly +- ARM: 9105/1: atags_to_fdt: don't warn about stack size +- libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs +- dmaengine: imx-sdma: remove duplicated sdma_load_context +- Revert "dmaengine: imx-sdma: refine to load context only once" +- s390/qdio: cancel the ESTABLISH ccw after timeout +- s390/qdio: fix roll-back after timeout on ESTABLISH ccw +- media: rc-loopback: return number of emitters rather than error +- media: uvc: don't do DMA on stack +- VMCI: fix NULL pointer dereference when unmapping queue pair +- crypto: ccp - shutdown SEV firmware on kexec +- dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc() +- power: supply: max17042: handle fails of reading status register +- block: bfq: fix bfq_set_next_ioprio_data() +- crypto: public_key: fix overflow during implicit conversion +- wcn36xx: Ensure finish scan is not requested before start scan +- iio: ltc2983: fix device probe +- arm64: head: avoid over-mapping in map_memory +- arm64: mm: Fix TLBI vs ASID rollover +- soc: aspeed: p2a-ctrl: Fix boundary check for mmap +- soc: aspeed: lpc-ctrl: Fix boundary check for mmap +- soc: qcom: aoss: Fix the out of bound usage of cooling_devs +- pinctrl: ingenic: Fix incorrect pull up/down info +- pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast +- clk: socfpga: agilex: add the bypass register for s2f_usr0 clock +- clk: socfpga: agilex: fix up s2f_user0_clk representation +- clk: socfpga: agilex: fix the parents of the psi_ref_clk +- tools/thermal/tmon: Add cross compiling support +- selftests/ftrace: Fix requirement check of README file +- ceph: fix dereference of null pointer cf +- 9p/xen: Fix end of loop tests for list_for_each_entry +- xen: fix setting of max_pfn in shared_info +- powerpc/perf/hv-gpci: Fix counter value parsing +- PCI/MSI: Skip masking MSI-X on Xen PV +- blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN +- blk-zoned: allow zone management send operations without CAP_SYS_ADMIN +- btrfs: reset replace target device to allocation state on close +- btrfs: wake up async_delalloc_pages waiters after submit +- io-wq: fix wakeup race when adding new work +- io_uring: fail links of cancelled timeouts +- io_uring: add ->splice_fd_in checks +- io_uring: place fixed tables under memcg limits +- io_uring: limit fixed table size by RLIMIT_NOFILE +- rtc: tps65910: Correct driver module alias +- ext4: flush s_error_work before journal destroy in ext4_fill_super +- crypto: ccp - fix resource leaks in ccp_run_aes_gcm_cmd() +- make OPTIMIZE_INLINING config editable +- bpf: Fix integer overflow in prealloc_elems_and_freelist() +- iommu/vt-d: Fix clearing real DMA device's scalable-mode context entries +- iommu/vt-d: Global devTLB flush when present context entry changed +- mm: slub: fix slub_debug disabling for list of slabs +- mm: vmscan: fix missing psi annotation for node_reclaim() +- ipc: replace costly bailout check in sysvipc_find_ipc() +- bpf, mips: Validate conditional branch offsets +- ARM: Qualify enabling of swiotlb_init() +- arm64: mm: account for hotplug memory when randomizing the linear region +- blk-mq-sched: Fix blk_mq_sched_alloc_tags() error handling +- disable OPTIMIZE_INLINING by default +- Revert "compiler: remove CONFIG_OPTIMIZE_INLINING entirely" +- ARM: Support KFENCE for ARM +- ARM: mm: Provide is_write_fault() +- ARM: mm: Provide set_memory_valid() +- kfence: show cpu and timestamp in alloc/free info +- kfence: test: fail fast if disabled at boot +- slub: force on no_hash_pointers when slub_debug is enabled +- printk: clarify the documentation for plain pointer printing +- lib/vsprintf: do not show no_hash_pointers message multiple times +- kfence: add function to mask address bits +- kfence, x86: only define helpers if !MODULE +- kfence: fix is_kfence_address() for addresses below KFENCE_POOL_SIZE +- kfence: skip all GFP_ZONEMASK allocations +- kfence: move the size check to the beginning of __kfence_alloc() +- kfence: defer kfence_test_init to ensure that kunit debugfs is created +- kfence: unconditionally use unbound work queue +- mm, slub: change run-time assertion in kmalloc_index() to compile-time +- kfence: use TASK_IDLE when awaiting allocation +- arm64: mm: don't use CON and BLK mapping if KFENCE is enabled +- kfence: use power-efficient work queue to run delayed work +- kfence: maximize allocation wait timeout duration +- kfence: await for allocation using wait_event +- kfence: zero guard page after out-of-bounds access +- powerpc: Enable KFENCE for PPC32 +- powerpc/32s: Always map kernel text and rodata with BATs +- kfence, x86: fix preemptible warning on KPTI-enabled systems +- kfence: make compatible with kmemleak +- kfence: fix reports if constant function prefixes exist +- kfence, slab: fix cache_alloc_debugcheck_after() for bulk allocations +- kfence: fix printk format for ptrdiff_t +- kasan: use error_report_end tracepoint +- kfence: use error_report_end tracepoint +- tracing: add error_report_end trace point +- kfence: report sensitive information based on no_hash_pointers +- lib/vsprintf: no_hash_pointers prints all addresses as unhashed +- kselftest: add support for skipped tests +- lib: use KSTM_MODULE_GLOBALS macro in kselftest drivers +- MAINTAINERS: add entry for KFENCE +- kfence: add test suite +- kfence, Documentation: add KFENCE documentation +- kfence, kasan: make KFENCE compatible with KASAN +- mm, kfence: insert KFENCE hooks for SLUB +- mm, kfence: insert KFENCE hooks for SLAB +- kfence: use pt_regs to generate stack trace on faults +- arm64, kfence: enable KFENCE for ARM64 +- x86, kfence: enable KFENCE for x86 +- mm: add Kernel Electric-Fence infrastructure + +* Tue Oct 19 2021 Zheng Zengkai - 5.10.0-14.0.0.4 +- Revert "time: Handle negative seconds correctly in timespec64_to_ns()" +- Revert "posix-cpu-timers: Force next expiration recalc after itimer reset" +- Revert "block: nbd: add sanity check for first_minor" +- Revert "Bluetooth: Move shutdown callback before flushing tx and rx queue" +- clk: kirkwood: Fix a clocking boot regression +- backlight: pwm_bl: Improve bootloader/kernel device handover +- fbmem: don't allow too huge resolutions +- IMA: remove the dependency on CRYPTO_MD5 +- IMA: remove -Wmissing-prototypes warning +- fuse: flush extending writes +- fuse: truncate pagecache on atomic_o_trunc +- ARM: dts: at91: add pinctrl-{names, 0} for all gpios +- KVM: nVMX: Unconditionally clear nested.pi_pending on nested VM-Enter +- KVM: VMX: avoid running vmx_handle_exit_irqoff in case of emulation +- KVM: x86: Update vCPU's hv_clock before back to guest when tsc_offset is adjusted +- KVM: s390: index kvm->arch.idle_mask by vcpu_idx +- Revert "KVM: x86: mmu: Add guest physical address check in translate_gpa()" +- x86/resctrl: Fix a maybe-uninitialized build warning treated as error +- perf/x86/amd/ibs: Extend PERF_PMU_CAP_NO_EXCLUDE to IBS Op +- tty: Fix data race between tiocsti() and flush_to_ldisc() +- bio: fix page leak bio_add_hw_page failure +- io_uring: IORING_OP_WRITE needs hash_reg_file set +- time: Handle negative seconds correctly in timespec64_to_ns() +- f2fs: guarantee to write dirty data when enabling checkpoint back +- iwlwifi Add support for ax201 in Samsung Galaxy Book Flex2 Alpha +- ASoC: rt5682: Remove unused variable in rt5682_i2c_remove() +- ipv4: fix endianness issue in inet_rtm_getroute_build_skb() +- octeontx2-af: Set proper errorcode for IPv4 checksum errors +- octeontx2-af: Fix static code analyzer reported issues +- octeontx2-af: Fix loop in free and unmap counter +- net: qualcomm: fix QCA7000 checksum handling +- net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed +- ipv4: make exception cache less predictible +- ipv6: make exception cache less predictible +- brcmfmac: pcie: fix oops on failure to resume and reprobe +- bcma: Fix memory leak for internally-handled cores +- atlantic: Fix driver resume flow. +- ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point() +- ice: Only lock to update netdev dev_addr +- iwlwifi: skip first element in the WTAS ACPI table +- iwlwifi: follow the new inclusive terminology +- ASoC: wcd9335: Disable irq on slave ports in the remove function +- ASoC: wcd9335: Fix a memory leak in the error handling path of the probe function +- ASoC: wcd9335: Fix a double irq free in the remove function +- tty: serial: fsl_lpuart: fix the wrong mapbase value +- usb: bdc: Fix a resource leak in the error handling path of 'bdc_probe()' +- usb: bdc: Fix an error handling path in 'bdc_probe()' when no suitable DMA config is available +- usb: ehci-orion: Handle errors of clk_prepare_enable() in probe +- i2c: xlp9xx: fix main IRQ check +- i2c: mt65xx: fix IRQ check +- CIFS: Fix a potencially linear read overflow +- bpf: Fix possible out of bound write in narrow load handling +- mmc: moxart: Fix issue with uninitialized dma_slave_config +- mmc: dw_mmc: Fix issue with uninitialized dma_slave_config +- mmc: sdhci: Fix issue with uninitialized dma_slave_config +- ASoC: Intel: Skylake: Fix module resource and format selection +- ASoC: Intel: Skylake: Leave data as is when invoking TLV IPCs +- ASoC: Intel: kbl_da7219_max98927: Fix format selection for max98373 +- rsi: fix an error code in rsi_probe() +- rsi: fix error code in rsi_load_9116_firmware() +- gfs2: init system threads before freeze lock +- i2c: hix5hd2: fix IRQ check +- i2c: fix platform_get_irq.cocci warnings +- i2c: s3c2410: fix IRQ check +- i2c: iop3xx: fix deferred probing +- Bluetooth: add timeout sanity check to hci_inquiry +- lkdtm: replace SCSI_DISPATCH_CMD with SCSI_QUEUE_RQ +- mm/swap: consider max pages in iomap_swapfile_add_extent +- usb: gadget: mv_u3d: request_irq() after initializing UDC +- firmware: raspberrypi: Fix a leak in 'rpi_firmware_get()' +- firmware: raspberrypi: Keep count of all consumers +- i2c: synquacer: fix deferred probing +- clk: staging: correct reference to config IOMEM to config HAS_IOMEM +- arm64: dts: marvell: armada-37xx: Extend PCIe MEM space +- nfsd4: Fix forced-expiry locking +- lockd: Fix invalid lockowner cast after vfs_test_lock +- locking/local_lock: Add missing owner initialization +- locking/lockdep: Mark local_lock_t +- mac80211: Fix insufficient headroom issue for AMSDU +- libbpf: Re-build libbpf.so when libbpf.map changes +- usb: phy: tahvo: add IRQ check +- usb: host: ohci-tmio: add IRQ check +- PM: cpu: Make notifier chain use a raw_spinlock_t +- Bluetooth: Move shutdown callback before flushing tx and rx queue +- samples: pktgen: add missing IPv6 option to pktgen scripts +- devlink: Clear whole devlink_flash_notify struct +- selftests/bpf: Fix test_core_autosize on big-endian machines +- usb: gadget: udc: renesas_usb3: Fix soc_device_match() abuse +- usb: phy: twl6030: add IRQ checks +- usb: phy: fsl-usb: add IRQ check +- usb: gadget: udc: s3c2410: add IRQ check +- usb: gadget: udc: at91: add IRQ check +- usb: dwc3: qcom: add IRQ check +- usb: dwc3: meson-g12a: add IRQ check +- ASoC: rt5682: Properly turn off regulators if wrong device ID +- ASoC: rt5682: Implement remove callback +- net/mlx5: Fix unpublish devlink parameters +- net/mlx5: Register to devlink ingress VLAN filter trap +- drm/msm/dsi: Fix some reference counted resource leaks +- Bluetooth: fix repeated calls to sco_sock_kill +- ASoC: Intel: Fix platform ID matching +- cgroup/cpuset: Fix violation of cpuset locking rule +- cgroup/cpuset: Miscellaneous code cleanup +- counter: 104-quad-8: Return error when invalid mode during ceiling_write +- arm64: dts: exynos: correct GIC CPU interfaces address range on Exynos7 +- drm/msm/dpu: make dpu_hw_ctl_clear_all_blendstages clear necessary LMs +- drm/msm/mdp4: move HW revision detection to earlier phase +- drm/msm/mdp4: refactor HW revision detection into read_mdp_hw_revision +- selftests/bpf: Fix bpf-iter-tcp4 test to print correctly the dest IP +- PM: EM: Increase energy calculation precision +- Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow +- debugfs: Return error during {full/open}_proxy_open() on rmmod +- soc: qcom: smsm: Fix missed interrupts if state changes while masked +- bpf, samples: Add missing mprog-disable to xdp_redirect_cpu's optstring +- PCI: PM: Enable PME if it can be signaled from D3cold +- PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently +- media: venus: venc: Fix potential null pointer dereference on pointer fmt +- media: em28xx-input: fix refcount bug in em28xx_usb_disconnect +- leds: trigger: audio: Add an activate callback to ensure the initial brightness is set +- leds: lt3593: Put fwnode in any case during ->probe() +- i2c: highlander: add IRQ check +- net/mlx5: Fix missing return value in mlx5_devlink_eswitch_inline_mode_set() +- devlink: Break parameter notification sequence to be before/after unload/load driver +- arm64: dts: renesas: hihope-rzg2-ex: Add EtherAVB internal rx delay +- arm64: dts: renesas: rzg2: Convert EtherAVB to explicit delay handling +- Bluetooth: mgmt: Fix wrong opcode in the response for add_adv cmd +- net: cipso: fix warnings in netlbl_cipsov4_add_std +- drm: mxsfb: Clear FIFO_CLEAR bit +- drm: mxsfb: Increase number of outstanding requests on V4 and newer HW +- drm: mxsfb: Enable recovery on underflow +- cgroup/cpuset: Fix a partition bug with hotplug +- net/mlx5e: Block LRO if firmware asks for tunneled LRO +- net/mlx5e: Prohibit inner indir TIRs in IPoIB +- ARM: dts: meson8b: ec100: Fix the pwm regulator supply properties +- ARM: dts: meson8b: mxq: Fix the pwm regulator supply properties +- ARM: dts: meson8b: odroidc1: Fix the pwm regulator supply properties +- ARM: dts: meson8: Use a higher default GPU clock frequency +- tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos +- drm/amdgpu/acp: Make PM domain really work +- 6lowpan: iphc: Fix an off-by-one check of array index +- Bluetooth: sco: prevent information leak in sco_conn_defer_accept() +- media: atomisp: fix the uninitialized use and rename "retvalue" +- media: coda: fix frame_mem_ctrl for YUV420 and YVU420 formats +- media: rockchip/rga: fix error handling in probe +- media: rockchip/rga: use pm_runtime_resume_and_get() +- media: go7007: remove redundant initialization +- media: go7007: fix memory leak in go7007_usb_probe +- media: dvb-usb: Fix error handling in dvb_usb_i2c_init +- media: dvb-usb: fix uninit-value in vp702x_read_mac_addr +- media: dvb-usb: fix uninit-value in dvb_usb_adapter_dvb_init +- ionic: cleanly release devlink instance +- driver core: Fix error return code in really_probe() +- firmware: fix theoretical UAF race with firmware cache and resume +- gfs2: Fix memory leak of object lsi on error return path +- libbpf: Fix removal of inner map in bpf_object__create_map +- soc: qcom: rpmhpd: Use corner in power_off +- i40e: improve locking of mac_filter_hash +- arm64: dts: renesas: r8a77995: draak: Remove bogus adv7511w properties +- ARM: dts: aspeed-g6: Fix HVI3C function-group in pinctrl dtsi +- libbpf: Fix the possible memory leak on error +- gve: fix the wrong AdminQ buffer overflow check +- drm/of: free the iterator object on failure +- bpf: Fix potential memleak and UAF in the verifier. +- bpf: Fix a typo of reuseport map in bpf.h. +- drm/of: free the right object +- media: cxd2880-spi: Fix an error handling path +- soc: rockchip: ROCKCHIP_GRF should not default to y, unconditionally +- leds: is31fl32xx: Fix missing error code in is31fl32xx_parse_dt() +- media: TDA1997x: enable EDID support +- ASoC: mediatek: mt8183: Fix Unbalanced pm_runtime_enable in mt8183_afe_pcm_dev_probe +- drm/gma500: Fix end of loop tests for list_for_each_entry +- drm/panfrost: Fix missing clk_disable_unprepare() on error in panfrost_clk_init() +- EDAC/i10nm: Fix NVDIMM detection +- spi: spi-zynq-qspi: use wait_for_completion_timeout to make zynq_qspi_exec_mem_op not interruptible +- spi: sprd: Fix the wrong WDG_LOAD_VAL +- regulator: vctrl: Avoid lockdep warning in enable/disable ops +- regulator: vctrl: Use locked regulator_get_voltage in probe path +- blk-crypto: fix check for too-large dun_bytes +- spi: davinci: invoke chipselect callback +- x86/mce: Defer processing of early errors +- tpm: ibmvtpm: Avoid error message when process gets signal while waiting +- certs: Trigger creation of RSA module signing key if it's not an RSA key +- crypto: qat - use proper type for vf_mask +- irqchip/gic-v3: Fix priority comparison when non-secure priorities are used +- spi: coldfire-qspi: Use clk_disable_unprepare in the remove function +- block: nbd: add sanity check for first_minor +- clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock source channel +- lib/mpi: use kcalloc in mpi_resize +- irqchip/loongson-pch-pic: Improve edge triggered interrupt support +- genirq/timings: Fix error return code in irq_timings_test_irqs() +- spi: spi-pic32: Fix issue with uninitialized dma_slave_config +- spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config +- block: return ELEVATOR_DISCARD_MERGE if possible +- m68k: Fix invalid RMW_INSNS on CPUs that lack CAS +- rcu: Fix stall-warning deadlock due to non-release of rcu_node ->lock +- rcu: Add lockdep_assert_irqs_disabled() to rcu_sched_clock_irq() and callees +- rcu: Fix to include first blocked task in stall warning +- sched: Fix UCLAMP_FLAG_IDLE setting +- sched/numa: Fix is_core_idle() +- m68k: emu: Fix invalid free in nfeth_cleanup() +- power: supply: cw2015: use dev_err_probe to allow deferred probe +- s390/ap: fix state machine hang after failure to enable irq +- s390/debug: fix debug area life cycle +- s390/debug: keep debug data on resize +- s390/pci: fix misleading rc in clp_set_pci_fn() +- s390/kasan: fix large PMD pages address alignment check +- udf_get_extendedattr() had no boundary checks. +- fcntl: fix potential deadlock for &fasync_struct.fa_lock +- crypto: qat - do not export adf_iov_putmsg() +- crypto: qat - fix naming for init/shutdown VF to PF notifications +- crypto: qat - fix reuse of completion variable +- crypto: qat - handle both source of interrupt in VF ISR +- crypto: qat - do not ignore errors from enable_vf2pf_comms() +- crypto: omap - Fix inconsistent locking of device lists +- libata: fix ata_host_start() +- s390/zcrypt: fix wrong offset index for APKA master key valid state +- s390/cio: add dev_busid sysfs entry for each subchannel +- power: supply: max17042_battery: fix typo in MAx17042_TOFF +- power: supply: smb347-charger: Add missing pin control activation +- nvmet: pass back cntlid on successful completion +- nvme-rdma: don't update queue count when failing to set io queues +- nvme-tcp: don't update queue count when failing to set io queues +- blk-throtl: optimize IOPS throttle for large IO scenarios +- bcache: add proper error unwinding in bcache_device_init +- isofs: joliet: Fix iocharset=utf8 mount option +- udf: Fix iocharset=utf8 mount option +- udf: Check LVID earlier +- hrtimer: Ensure timerfd notification for HIGHRES=n +- hrtimer: Avoid double reprogramming in __hrtimer_start_range_ns() +- posix-cpu-timers: Force next expiration recalc after itimer reset +- EDAC/mce_amd: Do not load edac_mce_amd module on guests +- rcu/tree: Handle VM stoppage in stall detection +- sched/deadline: Fix missing clock update in migrate_task_rq_dl() +- crypto: omap-sham - clear dma flags only after omap_sham_update_dma_stop() +- power: supply: axp288_fuel_gauge: Report register-address on readb / writeb errors +- sched/deadline: Fix reset_on_fork reporting of DL tasks +- crypto: mxs-dcp - Check for DMA mapping errors +- regulator: tps65910: Silence deferred probe error +- regmap: fix the offset of register error log +- locking/mutex: Fix HANDOFF condition +- PCI: Call Max Payload Size-related fixup quirks early +- x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions +- xhci: fix unsafe memory usage in xhci tracing +- xhci: fix even more unsafe memory usage in xhci tracing +- usb: mtu3: fix the wrong HS mult value +- usb: mtu3: use @mult for HS isoc or intr +- usb: mtu3: restore HS function when set SS/SSP +- usb: gadget: tegra-xudc: fix the wrong mult value for HS isoc or intr +- usb: host: xhci-rcar: Don't reload firmware after the completion +- ALSA: usb-audio: Add registration quirk for JBL Quantum 800 +- blk-mq: clearing flush request reference in tags->rqs[] +- netfilter: nftables: clone set element expression template +- netfilter: nf_tables: initialize set before expression setup +- blk-mq: fix is_flush_rq +- blk-mq: fix kernel panic during iterating over flush request +- x86/events/amd/iommu: Fix invalid Perf result due to IOMMU PMC power-gating +- Revert "r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM" +- tty: drop termiox user definitions +- net: linux/skbuff.h: combine SKB_EXTENSIONS + KCOV handling +- serial: 8250: 8250_omap: Fix unused variable warning +- net: kcov: don't select SKB_EXTENSIONS when there is no NET +- net: ll_temac: Remove left-over debug message +- USB: serial: mos7720: improve OOM-handling in read_mos_reg() +- livepatch: Adapt livepatch-sample for stop_machine model +- livepatch: Add klp_{register,unregister}_patch for stop_machine model +- media: stkwebcam: fix memory leak in stk_camera_probe +- fuse: fix illegal access to inode with reused nodeid +- new helper: inode_wrong_type() +- spi: Switch to signed types for *_native_cs SPI controller fields +- ALSA: pcm: fix divide error in snd_pcm_lib_ioctl +- ALSA: hda/realtek: Workaround for conflicting SSID on ASUS ROG Strix G17 +- ALSA: hda/realtek: Quirk for HP Spectre x360 14 amp setup +- cryptoloop: add a deprecation warning +- perf/x86/amd/power: Assign pmu.module +- perf/x86/amd/ibs: Work around erratum #1197 +- ceph: fix possible null-pointer dereference in ceph_mdsmap_decode() +- perf/x86/intel/pt: Fix mask of num_address_ranges +- qede: Fix memset corruption +- net: macb: Add a NULL check on desc_ptp +- qed: Fix the VF msix vectors flow +- reset: reset-zynqmp: Fixed the argument data type +- gpu: ipu-v3: Fix i.MX IPU-v3 offset calculations for (semi)planar U/V formats +- ARM: OMAP1: ams-delta: remove unused function ams_delta_camera_power +- xtensa: fix kconfig unmet dependency warning for HAVE_FUTEX_CMPXCHG +- static_call: Fix unused variable warn w/o MODULE +- Revert "Add a reference to ucounts for each cred" +- Revert "cred: add missing return error code when set_cred_ucounts() failed" +- Revert "ucounts: Increase ucounts reference counter before the security hook" +- ubifs: report correct st_size for encrypted symlinks +- f2fs: report correct st_size for encrypted symlinks +- ext4: report correct st_size for encrypted symlinks +- fscrypt: add fscrypt_symlink_getattr() for computing st_size +- bpf: Fix potentially incorrect results with bpf_get_local_storage() +- audit: move put_tree() to avoid trim_trees refcount underflow and UAF +- net: don't unconditionally copy_from_user a struct ifreq for socket ioctls +- Revert "parisc: Add assembly implementations for memset, strlen, strcpy, strncpy and strcat" +- Revert "floppy: reintroduce O_NDELAY fix" +- arm64: dts: qcom: msm8994-angler: Fix gpio-reserved-ranges 85-88 +- lkdtm: Enable DOUBLE_FAULT on all architectures +- net: dsa: mt7530: fix VLAN traffic leaks again +- usb: typec: ucsi: Clear pending after acking connector change +- usb: typec: ucsi: Work around PPM losing change information +- usb: typec: ucsi: acpi: Always decode connector change information +- tracepoint: Use rcu get state and cond sync for static call updates +- srcu: Provide polling interfaces for Tiny SRCU grace periods +- srcu: Make Tiny SRCU use multi-bit grace-period counter +- srcu: Provide internal interface to start a Tiny SRCU grace period +- srcu: Provide polling interfaces for Tree SRCU grace periods +- srcu: Provide internal interface to start a Tree SRCU grace period +- riscv: Fixup patch_text panic in ftrace +- riscv: Fixup wrong ftrace remove cflag +- Bluetooth: btusb: check conditions before enabling USB ALT 3 for WBS +- tipc: call tipc_wait_for_connect only when dlen is not 0 +- mtd: spinand: Fix incorrect parameters for on-die ECC +- pipe: do FASYNC notifications for every pipe IO, not just state changes +- pipe: avoid unnecessary EPOLLET wakeups under normal loads +- btrfs: fix race between marking inode needs to be logged and log syncing +- net/rds: dma_map_sg is entitled to merge entries +- drm/nouveau/kms/nv50: workaround EFI GOP window channel format differences +- drm/nouveau/disp: power down unused DP links during init +- drm: Copy drm_wait_vblank to user before returning +- blk-mq: don't grab rq's refcount in blk_mq_check_expired() +- drm/amd/pm: change the workload type for some cards +- Revert "drm/amd/pm: fix workload mismatch on vega10" +- qed: Fix null-pointer dereference in qed_rdma_create_qp() +- qed: qed ll2 race condition fixes +- tools/virtio: fix build +- vringh: Use wiov->used to check for read/write desc order +- virtio_vdpa: reject invalid vq indices +- virtio_pci: Support surprise removal of virtio pci device +- virtio: Improve vq->broken access to avoid any compiler optimization +- cpufreq: blocklist Qualcomm sm8150 in cpufreq-dt-platdev +- opp: remove WARN when no valid OPPs remain +- iwlwifi: pnvm: accept multiple HW-type TLVs +- clk: renesas: rcar-usb2-clock-sel: Fix kernel NULL pointer dereference +- perf/x86/intel/uncore: Fix integer overflow on 23 bit left shift of a u32 +- dt-bindings: sifive-l2-cache: Fix 'select' matching +- usb: gadget: u_audio: fix race condition on endpoint stop +- drm/i915: Fix syncmap memory leak +- net: stmmac: fix kernel panic due to NULL pointer dereference of plat->est +- net: stmmac: add mutex lock to protect est parameters +- Revert "mmc: sdhci-iproc: Set SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN on BCM2711" +- rtnetlink: Return correct error on changing device netns +- cxgb4: dont touch blocked freelist bitmap after free +- ipv4: use siphash instead of Jenkins in fnhe_hashfun() +- ipv6: use siphash in rt6_exception_hash() +- net/sched: ets: fix crash when flipping from 'strict' to 'quantum' +- ucounts: Increase ucounts reference counter before the security hook +- net: marvell: fix MVNETA_TX_IN_PRGRS bit number +- xgene-v2: Fix a resource leak in the error handling path of 'xge_probe()' +- ip_gre: add validation for csum_start +- RDMA/efa: Free IRQ vectors on error flow +- e1000e: Do not take care about recovery NVM checksum +- e1000e: Fix the max snoop/no-snoop latency for 10M +- igc: Use num_tx_queues when iterating over tx_ring queue +- igc: fix page fault when thunderbolt is unplugged +- net: usb: pegasus: fixes of set_register(s) return value evaluation; +- ice: do not abort devlink info if board identifier can't be found +- RDMA/bnxt_re: Remove unpaired rtnl unlock in bnxt_re_dev_init() +- IB/hfi1: Fix possible null-pointer dereference in _extend_sdma_tx_descs() +- RDMA/bnxt_re: Add missing spin lock initialization +- scsi: core: Fix hang of freezing queue between blocking and running device +- usb: dwc3: gadget: Stop EP0 transfers during pullup disable +- usb: dwc3: gadget: Fix dwc3_calc_trbs_left() +- usb: renesas-xhci: Prefer firmware loading on unknown ROM state +- USB: serial: option: add new VID/PID to support Fibocom FG150 +- Revert "USB: serial: ch341: fix character loss at high transfer rates" +- drm/amdgpu: Cancel delayed work when GFXOFF is disabled +- Revert "btrfs: compression: don't try to compress if we don't have enough pages" +- riscv: Ensure the value of FP registers in the core dump file is up to date +- ceph: correctly handle releasing an embedded cap flush +- can: usb: esd_usb2: esd_usb2_rx_event(): fix the interchange of the CAN RX and TX error counters +- net: mscc: Fix non-GPL export of regmap APIs +- ovl: fix uninitialized pointer read in ovl_lookup_real_one() +- blk-iocost: fix lockdep warning on blkcg->lock +- netfilter: conntrack: collect all entries in one cycle +- ARC: Fix CONFIG_STACKDEPOT +- ASoC: component: Remove misplaced prefix handling in pin control functions +- ASoC: rt5682: Adjust headset volume button threshold +- bpf: Fix NULL pointer dereference in bpf_get_local_storage() helper +- bpf: Fix ringbuf helper function compatibility +- ARM: spectre-v2: turn off the mitigation via boot cmdline param +- ext4: fix potential uninitialized access to retval in kmmpd +- take LOOKUP_{ROOT,ROOT_GRABBED,JUMPED} out of LOOKUP_... space +- switch file_open_root() to struct path +- kyber: introduce kyber_depth_updated() +- perf annotate: Add itrace options support +- mm: Fix the uninitialized use in overcommit_policy_handler +- memcg: enable accounting for ldt_struct objects +- memcg: enable accounting for posix_timers_cache slab +- memcg: enable accounting for signals +- memcg: enable accounting for new namesapces and struct nsproxy +- memcg: enable accounting for fasync_cache +- memcg: enable accounting for mnt_cache entries +- memcg: charge fs_context and legacy_fs_context +- memcg: enable accounting for pids in nested pid namespaces +- blk-mq: fix divide by zero crash in tg_may_dispatch() +- ext4: prevent getting empty inode buffer +- ext4: move ext4_fill_raw_inode() related functions +- ext4: factor out ext4_fill_raw_inode() +- ext4: make the updating inode data procedure atomic +- ext4: move inode eio simulation behind io completeion +- sched: Aware multi-core system for optimize loadtracking +- livepatch: Fix compile warnning +- md: revert io stats accounting +- sched/idle: Reported an error when an illegal negative value is passed +- sched/idle: Optimize the loop time algorithm to reduce multicore disturb +- serial: 8250: 8250_omap: Fix possible array out of bounds access +- once: Fix panic when module unload +- ext4: wipe ext4_dir_entry2 upon file deletion +- livepatch: move arch_klp_mem_recycle after the return value judgment +- livepatch/x86: only check stack top +- livepatch/ppc64: only check stack top +- livepatch/ppc32: only check stack top +- livepatch/arm: only check stack top +- livepatch/arm64: only check stack top +- livepatch: checks only if the replaced instruction is on the stack +- livepatch: Add state describe for force +- blk-mq: clear active_queues before clearing BLK_MQ_F_TAG_QUEUE_SHARED +- sysctl: Refactor IAS framework +- io_uring: ensure symmetry in handling iter types in loop_rw_iter() +- ext4: fix race writing to an inline_data file while its xattrs are changing +- memcg: enable accounting of ipc resources +- vt_kdsetmode: extend console locking +- net: qrtr: fix another OOB Read in qrtr_endpoint_post +- btrfs: fix NULL pointer dereference when deleting device by invalid id +- acpi: acpica: fix acpi parse and parseext cache leaks +- acpi: acpica: fix acpi operand cache leak in dsutils.c +- sctp: add param size validation for SCTP_PARAM_SET_PRIMARY +- sctp: validate chunk size in __rcv_asconf_lookup +- ARM: footbridge: remove personal server platform +- hfs: fix null-ptr-deref in hfs_find_init() +- io_uring: only assign io_uring_enter() SQPOLL error in actual error case +- io_uring: fix xa_alloc_cycle() error return value check +- fs: warn about impending deprecation of mandatory locks +- mm: memcontrol: fix occasional OOMs due to proportional memory.low reclaim +- ASoC: intel: atom: Fix breakage for PCM buffer address setup +- ALSA: hda/realtek: Limit mic boost on HP ProBook 445 G8 +- PCI: Increase D3 delay for AMD Renoir/Cezanne XHCI +- s390/pci: fix use after free of zpci_dev +- ALSA: hda/via: Apply runtime PM workaround for ASUS B23E +- btrfs: prevent rename2 from exchanging a subvol with a directory from different parents +- mmc: sdhci-iproc: Set SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN on BCM2711 +- mmc: sdhci-iproc: Cap min clock frequency on BCM2711 +- ALSA: hda/realtek: Enable 4-speaker output for Dell XPS 15 9510 laptop +- ipack: tpci200: fix memory leak in the tpci200_register +- ipack: tpci200: fix many double free issues in tpci200_pci_probe +- slimbus: ngd: reset dma setup during runtime pm +- slimbus: messaging: check for valid transaction id +- slimbus: messaging: start transaction ids from 1 instead of zero +- tracing / histogram: Fix NULL pointer dereference on strcmp() on NULL event name +- ALSA: hda - fix the 'Capture Switch' value change notifications +- clk: qcom: gdsc: Ensure regulator init state matches GDSC state +- clk: imx6q: fix uart earlycon unwork +- mmc: sdhci-msm: Update the software timeout value for sdhc +- mmc: mmci: stm32: Check when the voltage switch procedure should be done +- mmc: dw_mmc: Fix hang on data CRC error +- Revert "flow_offload: action should not be NULL when it is referenced" +- iavf: Fix ping is lost after untrusted VF had tried to change MAC +- i40e: Fix ATR queue selection +- r8152: fix writing USB_BP2_EN +- iommu/vt-d: Fix incomplete cache flush in intel_pasid_tear_down_entry() +- iommu/vt-d: Consolidate duplicate cache invaliation code +- ovs: clear skb->tstamp in forwarding path +- net: mdio-mux: Handle -EPROBE_DEFER correctly +- net: mdio-mux: Don't ignore memory allocation errors +- sch_cake: fix srchost/dsthost hashing mode +- ixgbe, xsk: clean up the resources in ixgbe_xsk_pool_enable error path +- net: qlcnic: add missed unlock in qlcnic_83xx_flash_read32 +- virtio-net: use NETIF_F_GRO_HW instead of NETIF_F_LRO +- virtio-net: support XDP when not more queues +- vrf: Reset skb conntrack connection on VRF rcv +- bnxt_en: Add missing DMA memory barriers +- bnxt_en: Disable aRFS if running on 212 firmware +- ptp_pch: Restore dependency on PCI +- net: 6pack: fix slab-out-of-bounds in decode_data +- bnxt: count Tx drops +- bnxt: make sure xmit_more + errors does not miss doorbells +- bnxt: disable napi before canceling DIM +- bnxt: don't lock the tx queue from napi poll +- bpf: Clear zext_dst of dead insns +- drm/mediatek: Add AAL output size configuration +- drm/mediatek: Fix aal size config +- soc / drm: mediatek: Move DDP component defines into mtk-mmsys.h +- vdpa/mlx5: Avoid destroying MR on empty iotlb +- vhost: Fix the calculation in vhost_overflow() +- bus: ti-sysc: Fix error handling for sysc_check_active_timer() +- vhost-vdpa: Fix integer overflow in vhost_vdpa_process_iotlb_update() +- virtio: Protect vqs list access +- dccp: add do-while-0 stubs for dccp_pr_debug macros +- cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant +- iommu: Check if group is NULL before remove device +- arm64: dts: qcom: msm8992-bullhead: Remove PSCI +- arm64: dts: qcom: c630: fix correct powerdown pin for WSA881x +- Bluetooth: hidp: use correct wait queue when removing ctrl_wait +- drm/amd/display: workaround for hard hang on HPD on native DP +- drm/amd/display: Fix Dynamic bpp issue with 8K30 with Navi 1X +- net: usb: lan78xx: don't modify phy_device state concurrently +- net: usb: pegasus: Check the return value of get_geristers() and friends; +- ARM: dts: nomadik: Fix up interrupt controller node names +- qede: fix crash in rmmod qede while automatic debug collection +- drm/amdgpu: fix the doorbell missing when in CGPG issue for renoir. +- scsi: core: Fix capacity set to zero after offlinining device +- scsi: core: Avoid printing an error if target_alloc() returns -ENXIO +- scsi: scsi_dh_rdac: Avoid crash during rdac_bus_attach() +- scsi: megaraid_mm: Fix end of loop tests for list_for_each_entry() +- scsi: pm80xx: Fix TMF task completion race condition +- dmaengine: of-dma: router_xlate to return -EPROBE_DEFER if controller is not yet available +- ARM: dts: am43x-epos-evm: Reduce i2c0 bus speed for tps65218 +- net: xfrm: Fix end of loop tests for list_for_each_entry +- spi: spi-mux: Add module info needed for autoloading +- dmaengine: usb-dmac: Fix PM reference leak in usb_dmac_probe() +- dmaengine: xilinx_dma: Fix read-after-free bug when terminating transfers +- USB: core: Fix incorrect pipe calculation in do_proc_control() +- USB: core: Avoid WARNings for 0-length descriptor requests +- KVM: X86: Fix warning caused by stale emulation context +- KVM: x86: Factor out x86 instruction emulation with decoding +- media: drivers/media/usb: fix memory leak in zr364xx_probe +- media: zr364xx: fix memory leaks in probe() +- media: zr364xx: propagate errors from zr364xx_start_readpipe() +- mtd: cfi_cmdset_0002: fix crash when erasing/writing AMD cards +- ath9k: Postpone key cache entry deletion for TXQ frames reference it +- ath: Modify ath_key_delete() to not need full key entry +- ath: Export ath_hw_keysetmac() +- ath9k: Clear key cache explicitly on disabling hardware +- ath: Use safer key clearing with key cache entries +- net: dsa: microchip: ksz8795: Use software untagging on CPU port +- net: dsa: microchip: ksz8795: Fix VLAN untagged flag change on deletion +- net: dsa: microchip: ksz8795: Reject unsupported VLAN configuration +- net: dsa: microchip: ksz8795: Fix PVID tag insertion +- net: dsa: microchip: Fix probing KSZ87xx switch with DT node for host port +- KVM: nSVM: always intercept VMLOAD/VMSAVE when nested (CVE-2021-3656) +- KVM: nSVM: avoid picking up unsupported bits from L2 in int_ctl (CVE-2021-3653) +- vmlinux.lds.h: Handle clang's module.{c,d}tor sections +- ceph: take snap_empty_lock atomically with snaprealm refcount change +- ceph: clean up locking annotation for ceph_get_snap_realm and __lookup_snap_realm +- ceph: add some lockdep assertions around snaprealm handling +- vboxsf: Add support for the atomic_open directory-inode op +- vboxsf: Add vboxsf_[create|release]_sf_handle() helpers +- KVM: nVMX: Use vmx_need_pf_intercept() when deciding if L0 wants a #PF +- KVM: VMX: Use current VMCS to query WAITPKG support for MSR emulation +- efi/libstub: arm64: Double check image alignment at entry +- powerpc/smp: Fix OOPS in topology_init() +- PCI/MSI: Protect msi_desc::masked for multi-MSI +- PCI/MSI: Use msi_mask_irq() in pci_msi_shutdown() +- PCI/MSI: Correct misleading comments +- PCI/MSI: Do not set invalid bits in MSI mask +- PCI/MSI: Enforce MSI[X] entry updates to be visible +- PCI/MSI: Enforce that MSI-X table entry is masked for update +- PCI/MSI: Mask all unused MSI-X entries +- PCI/MSI: Enable and mask MSI-X early +- genirq/timings: Prevent potential array overflow in __irq_timings_store() +- genirq/msi: Ensure deactivation on teardown +- x86/resctrl: Fix default monitoring groups reporting +- x86/ioapic: Force affinity setup before startup +- x86/msi: Force affinity setup before startup +- genirq: Provide IRQCHIP_AFFINITY_PRE_STARTUP +- x86/tools: Fix objdump version check again +- efi/libstub: arm64: Relax 2M alignment again for relocatable kernels +- efi/libstub: arm64: Force Image reallocation if BSS was not reserved +- arm64: efi: kaslr: Fix occasional random alloc (and boot) failure +- nbd: Aovid double completion of a request +- vsock/virtio: avoid potential deadlock when vsock device remove +- xen/events: Fix race in set_evtchn_to_irq +- drm/i915: Only access SFC_DONE when media domain is not fused off +- net: igmp: increase size of mr_ifc_count +- tcp_bbr: fix u32 wrap bug in round logic if bbr_init() called after 2B packets +- net: linkwatch: fix failure to restore device state across suspend/resume +- net: bridge: fix memleak in br_add_if() +- net: bridge: fix flags interpretation for extern learn fdb entries +- net: bridge: validate the NUD_PERMANENT bit when adding an extern_learn FDB entry +- net: dsa: sja1105: fix broken backpressure in .port_fdb_dump +- net: dsa: lantiq: fix broken backpressure in .port_fdb_dump +- net: dsa: lan9303: fix broken backpressure in .port_fdb_dump +- net: igmp: fix data-race in igmp_ifc_timer_expire() +- net: Fix memory leak in ieee802154_raw_deliver +- net: dsa: microchip: ksz8795: Fix VLAN filtering +- net: dsa: microchip: Fix ksz_read64() +- drm/meson: fix colour distortion from HDR set during vendor u-boot +- net/mlx5: Fix return value from tracer initialization +- net/mlx5: Synchronize correct IRQ when destroying CQ +- bareudp: Fix invalid read beyond skb's linear data +- psample: Add a fwd declaration for skbuff +- iavf: Set RSS LUT and key in reset handle path +- ice: don't remove netdev->dev_addr from uc sync list +- ice: Prevent probing virtual functions +- net: sched: act_mirred: Reset ct info when mirror/redirect skb +- net/smc: fix wait on already cleared link +- ppp: Fix generating ifname when empty IFLA_IFNAME is specified +- net: phy: micrel: Fix link detection on ksz87xx switch" +- bpf: Fix integer overflow involving bucket_size +- libbpf: Fix probe for BPF_PROG_TYPE_CGROUP_SOCKOPT +- platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-lookup tables +- net: mvvp2: fix short frame size on s390 +- net: dsa: mt7530: add the missing RxUnicast MIB counter +- ASoC: cs42l42: Fix LRCLK frame start edge +- pinctrl: tigerlake: Fix GPIO mapping for newer version of software +- netfilter: nf_conntrack_bridge: Fix memory leak when error +- ASoC: cs42l42: Remove duplicate control for WNF filter frequency +- ASoC: cs42l42: Fix inversion of ADC Notch Switch control +- ASoC: SOF: Intel: hda-ipc: fix reply size checking +- ASoC: cs42l42: Don't allow SND_SOC_DAIFMT_LEFT_J +- ASoC: cs42l42: Correct definition of ADC Volume control +- pinctrl: mediatek: Fix fallback behavior for bias_set_combo +- ieee802154: hwsim: fix GPF in hwsim_new_edge_nl +- ieee802154: hwsim: fix GPF in hwsim_set_edge_lqi +- drm/amdgpu: don't enable baco on boco platforms in runpm +- drm/amd/display: use GFP_ATOMIC in amdgpu_dm_irq_schedule_work +- drm/amd/display: Remove invalid assert for ODM + MPC case +- libnvdimm/region: Fix label activation vs errors +- ACPI: NFIT: Fix support for virtual SPA ranges +- ceph: reduce contention in ceph_check_delayed_caps() +- ARC: fp: set FPU_STATUS.FWE to enable FPU_STATUS update on context switch +- net: ethernet: ti: cpsw: fix min eth packet size for non-switch use-cases +- seccomp: Fix setting loaded filter count during TSYNC +- scsi: lpfc: Move initialization of phba->poll_list earlier to avoid crash +- cifs: create sd context must be a multiple of 8 +- i2c: dev: zero out array used for i2c reads from userspace +- ASoC: intel: atom: Fix reference to PCM buffer address +- ASoC: tlv320aic31xx: Fix jack detection after suspend +- ASoC: uniphier: Fix reference to PCM buffer address +- ASoC: xilinx: Fix reference to PCM buffer address +- ASoC: amd: Fix reference to PCM buffer address +- iio: adc: Fix incorrect exit of for-loop +- iio: humidity: hdc100x: Add margin to the conversion time +- iio: adis: set GPIO reset pin direction +- iio: adc: ti-ads7950: Ensure CS is deasserted after reading channels +- net: xilinx_emaclite: Do not print real IOMEM pointer +- ovl: prevent private clone if bind mount is not allowed +- ppp: Fix generating ppp unit id when ifname is not specified +- ALSA: hda: Add quirk for ASUS Flow x13 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 650 G8 Notebook PC +- ALSA: pcm: Fix mmap breakage without explicit buffer setup +- USB:ehci:fix Kunpeng920 ehci hardware problem +- vboxsf: Make vboxsf_dir_create() return the handle for the created file +- vboxsf: Honor excl flag to the dir-inode create op +- arm64: dts: renesas: beacon: Fix USB ref clock references +- arm64: dts: renesas: beacon: Fix USB extal reference +- arm64: dts: renesas: rzg2: Add usb2_clksel to RZ/G2 M/N/H +- mm: make zone_to_nid() and zone_set_nid() available for DISCONTIGMEM +- Revert "selftests/resctrl: Use resctrl/info for feature detection" +- bpf: Add lockdown check for probe_write_user helper +- firmware: tee_bnxt: Release TEE shm, session, and context during kexec +- tee: Correct inappropriate usage of TEE_SHM_DMA_BUF flag +- KVM: SVM: Fix off-by-one indexing when nullifying last used SEV VMCB +- sched: Add menuconfig option for CONFIG_SCHED_OPTIMIZE_LOAD_TRACKING +- sched/rt: Fix double enqueue caused by rt_effective_prio +- Revert "sched/rt: Fix double enqueue caused by rt_effective_prio" +- drm/amdgpu/display: only enable aux backlight control for OLED panels +- smb3: rc uninitialized in one fallocate path +- net/qla3xxx: fix schedule while atomic in ql_wait_for_drvr_lock and ql_adapter_reset +- alpha: Send stop IPI to send to online CPUs +- net: qede: Fix end of loop tests for list_for_each_entry +- virt_wifi: fix error on connect +- reiserfs: check directory items on read from disk +- reiserfs: add check for root_inode in reiserfs_fill_super +- libata: fix ata_pio_sector for CONFIG_HIGHMEM +- drm/i915: avoid uninitialised var in eb_parse() +- sched/rt: Fix double enqueue caused by rt_effective_prio +- perf/x86/amd: Don't touch the AMD64_EVENTSEL_HOSTONLY bit inside the guest +- soc: ixp4xx/qmgr: fix invalid __iomem access +- drm/i915: Correct SFC_DONE register offset +- interconnect: qcom: icc-rpmh: Ensure floor BW is enforced for all nodes +- interconnect: Always call pre_aggregate before aggregate +- interconnect: Zero initial BW after sync-state +- spi: meson-spicc: fix memory leak in meson_spicc_remove +- interconnect: Fix undersized devress_alloc allocation +- soc: ixp4xx: fix printing resources +- arm64: vdso: Avoid ISB after reading from cntvct_el0 +- KVM: x86/mmu: Fix per-cpu counter corruption on 32-bit builds +- KVM: Do not leak memory for duplicate debugfs directories +- KVM: x86: accept userspace interrupt only if no event is injected +- md/raid10: properly indicate failure when ending a failed write request +- ARM: omap2+: hwmod: fix potential NULL pointer access +- Revert "gpio: mpc8xxx: change the gpio interrupt flags." +- bus: ti-sysc: AM3: RNG is GP only +- selinux: correct the return value when loads initial sids +- pcmcia: i82092: fix a null pointer dereference bug +- net/xfrm/compat: Copy xfrm_spdattr_type_t atributes +- xfrm: Fix RCU vs hash_resize_mutex lock inversion +- timers: Move clearing of base::timer_running under base:: Lock +- fpga: dfl: fme: Fix cpu hotplug issue in performance reporting +- serial: 8250_pci: Avoid irq sharing for MSI(-X) interrupts. +- serial: 8250_pci: Enumerate Elkhart Lake UARTs via dedicated driver +- MIPS: Malta: Do not byte-swap accesses to the CBUS UART +- serial: 8250: Mask out floating 16/32-bit bus bits +- serial: 8250_mtk: fix uart corruption issue when rx power off +- serial: tegra: Only print FIFO error message when an error occurs +- ext4: fix potential htree corruption when growing large_dir directories +- pipe: increase minimum default pipe size to 2 pages +- media: rtl28xxu: fix zero-length control request +- drivers core: Fix oops when driver probe fails +- staging: rtl8712: error handling refactoring +- staging: rtl8712: get rid of flush_scheduled_work +- staging: rtl8723bs: Fix a resource leak in sd_int_dpc +- tpm_ftpm_tee: Free and unregister TEE shared memory during kexec +- optee: fix tee out of memory failure seen during kexec reboot +- optee: Refuse to load the driver under the kdump kernel +- optee: Fix memory leak when failing to register shm pages +- tee: add tee_shm_alloc_kernel_buf() +- optee: Clear stale cache entries during initialization +- arm64: stacktrace: avoid tracing arch_stack_walk() +- tracepoint: Fix static call function vs data state mismatch +- tracepoint: static call: Compare data on transition from 2->1 callees +- tracing: Fix NULL pointer dereference in start_creating +- tracing: Reject string operand in the histogram expression +- tracing / histogram: Give calculation hist_fields a size +- scripts/tracing: fix the bug that can't parse raw_trace_func +- clk: fix leak on devm_clk_bulk_get_all() unwind +- usb: otg-fsm: Fix hrtimer list corruption +- usb: typec: tcpm: Keep other events when receiving FRS and Sourcing_vbus events +- usb: host: ohci-at91: suspend/resume ports after/before OHCI accesses +- usb: gadget: f_hid: idle uses the highest byte for duration +- usb: gadget: f_hid: fixed NULL pointer dereference +- usb: gadget: f_hid: added GET_IDLE and SET_IDLE handlers +- usb: cdns3: Fixed incorrect gadget state +- usb: gadget: remove leaked entry from udc driver list +- usb: dwc3: gadget: Avoid runtime resume if disabling pullup +- ALSA: usb-audio: Add registration quirk for JBL Quantum 600 +- ALSA: usb-audio: Fix superfluous autosuspend recovery +- ALSA: hda/realtek: Fix headset mic for Acer SWIFT SF314-56 (ALC256) +- ALSA: hda/realtek: add mic quirk for Acer SF314-42 +- ALSA: pcm - fix mmap capability check for the snd-dummy driver +- drm/amdgpu/display: fix DMUB firmware version info +- firmware_loader: fix use-after-free in firmware_fallback_sysfs +- firmware_loader: use -ETIMEDOUT instead of -EAGAIN in fw_load_sysfs_fallback +- USB: serial: ftdi_sio: add device ID for Auto-M3 OP-COM v2 +- USB: serial: ch341: fix character loss at high transfer rates +- USB: serial: option: add Telit FD980 composition 0x1056 +- USB: usbtmc: Fix RCU stall warning +- Bluetooth: defer cleanup of resources in hci_unregister_dev() +- blk-iolatency: error out if blk_get_queue() failed in iolatency_set_limit() +- net: vxge: fix use-after-free in vxge_device_unregister +- net: fec: fix use-after-free in fec_drv_remove +- net: pegasus: fix uninit-value in get_interrupt_interval +- bnx2x: fix an error code in bnx2x_nic_load() +- mips: Fix non-POSIX regexp +- MIPS: check return value of pgtable_pmd_page_ctor +- net: sched: fix lockdep_set_class() typo error for sch->seqlock +- net: dsa: qca: ar9331: reorder MDIO write sequence +- net: ipv6: fix returned variable type in ip6_skb_dst_mtu +- nfp: update ethtool reporting of pauseframe control +- sctp: move the active_key update after sh_keys is added +- RDMA/mlx5: Delay emptying a cache entry when a new MR is added to it recently +- gpio: tqmx86: really make IRQ optional +- net: natsemi: Fix missing pci_disable_device() in probe and remove +- net: phy: micrel: Fix detection of ksz87xx switch +- net: dsa: sja1105: match FDB entries regardless of inner/outer VLAN tag +- net: dsa: sja1105: be stateless with FDB entries on SJA1105P/Q/R/S/SJA1110 too +- net: dsa: sja1105: invalidate dynamic FDB entries learned concurrently with statically added ones +- net: dsa: sja1105: overwrite dynamic FDB entries with static ones in .port_fdb_add +- net, gro: Set inner transport header offset in tcp/udp GRO hook +- dmaengine: imx-dma: configure the generic DMA type to make it work +- ARM: dts: stm32: Fix touchscreen IRQ line assignment on DHCOM +- ARM: dts: stm32: Disable LAN8710 EDPD on DHCOM +- media: videobuf2-core: dequeue if start_streaming fails +- scsi: sr: Return correct event when media event code is 3 +- spi: imx: mx51-ecspi: Fix low-speed CONFIGREG delay calculation +- spi: imx: mx51-ecspi: Reinstate low-speed CONFIGREG delay +- dmaengine: stm32-dmamux: Fix PM usage counter unbalance in stm32 dmamux ops +- dmaengine: stm32-dma: Fix PM usage counter imbalance in stm32 dma ops +- clk: tegra: Implement disable_unused() of tegra_clk_sdmmc_mux_ops +- dmaengine: uniphier-xdmac: Use readl_poll_timeout_atomic() in atomic state +- omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator +- ARM: dts: am437x-l4: fix typo in can@0 node +- clk: stm32f4: fix post divisor setup for I2S/SAI PLLs +- ALSA: usb-audio: fix incorrect clock source setting +- arm64: dts: armada-3720-turris-mox: remove mrvl,i2c-fast-mode +- arm64: dts: armada-3720-turris-mox: fixed indices for the SDHC controllers +- ARM: dts: imx: Swap M53Menlo pinctrl_power_button/pinctrl_power_out pins +- ARM: imx: fix missing 3rd argument in macro imx_mmdc_perf_init +- ARM: dts: colibri-imx6ull: limit SDIO clock to 25MHz +- arm64: dts: ls1028: sl28: fix networking for variant 2 +- ARM: dts: imx6qdl-sr-som: Increase the PHY reset duration to 10ms +- ARM: imx: add missing clk_disable_unprepare() +- ARM: imx: add missing iounmap() +- arm64: dts: ls1028a: fix node name for the sysclk +- net: xfrm: fix memory leak in xfrm_user_rcv_msg +- bus: ti-sysc: Fix gpt12 system timer issue with reserved status +- ALSA: seq: Fix racy deletion of subscriber +- Revert "ACPICA: Fix memory leak caused by _CID repair function" +- sched/idle: Add IAS_SMART_HALT_POLL config for smart halt polling feature +- sched/idle: introduce smart halt polling +- arm: Optimize ttwu IPI +- kthread: Fix PF_KTHREAD vs to_kthread() race +- mtd: mtdconcat: Check _read,_write callbacks existence before assignment +- mtd: mtdconcat: Judge callback existence based on the master +- lib: use PFN_PHYS() in devmem_is_allowed() +- arm64: fix compat syscall return truncation +- blk: reuse lookup_sem to serialize partition operations +- Revert "[Backport] block: take bd_mutex around delete_partitions in del_gendisk" +- Revert "[Huawei] block: avoid creating invalid symlink file for patitions" +- block: ensure the memory order between bi_private and bi_status +- amba-pl011: Fix no irq issue due to no IRQ domain found +- arm64: seccomp: fix the incorrect name of syscall __NR_compat_exit in secure computing mode +- seqlock: avoid -Wshadow warnings +- asm-generic: fix ffs -Wshadow warning +- spi: mediatek: Fix fifo transfer +- selftest/bpf: Verifier tests for var-off access +- bpf, selftests: Adjust few selftest outcomes wrt unreachable code +- bpf: Update selftests to reflect new error states +- bpf, selftests: Adjust few selftest result_unpriv outcomes +- selftest/bpf: Adjust expected verifier errors +- selftests/bpf: Add a test for ptr_to_map_value on stack for helper access +- Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout" +- firmware: arm_scmi: Add delayed response status check +- firmware: arm_scmi: Ensure drivers provide a probe function +- Revert "Bluetooth: Shutdown controller after workqueues are flushed or cancelled" +- ACPI: fix NULL pointer dereference +- drm/amd/display: Fix max vstartup calculation for modes with borders +- drm/amd/display: Fix comparison error in dcn21 DML +- nvme: fix nvme_setup_command metadata trace event +- efi/mokvar: Reserve the table only if it is in boot services data +- ASoC: ti: j721e-evm: Check for not initialized parent_clk_id +- ASoC: ti: j721e-evm: Fix unbalanced domain activity tracking during startup +- net: Fix zero-copy head len calculation. +- ASoC: rt5682: Fix the issue of garbled recording after powerd_dbus_suspend +- qed: fix possible unpaired spin_{un}lock_bh in _qed_mcp_cmd_and_union() +- r8152: Fix potential PM refcount imbalance +- ASoC: tlv320aic31xx: fix reversed bclk/wclk master bits +- spi: stm32h7: fix full duplex irq handler handling +- regulator: rt5033: Fix n_voltages settings for BUCK and LDO +- regulator: rtmv20: Fix wrong mask for strobe-polarity-high +- btrfs: fix lost inode on log replay after mix of fsync, rename and inode eviction +- btrfs: fix race causing unnecessary inode logging during link and rename +- Revert "drm/i915: Propagate errors on awaiting already signaled fences" +- drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser" +- powerpc/kprobes: Fix kprobe Oops happens in booke +- sched: Fix branch prediction error in static_key +- sched: Access control for sysctl_update_load_latency +- mm,hwpoison: return -EHWPOISON to denote that the page has already been poisoned +- mm/memory-failure: use a mutex to avoid memory_failure() races +- can: j1939: j1939_session_deactivate(): clarify lifetime of session object +- i40e: Add additional info to PHY type error +- Revert "perf map: Fix dso->nsinfo refcounting" +- powerpc/pseries: Fix regression while building external modules +- SMB3: fix readpage for large swap cache +- bpf: Fix pointer arithmetic mask tightening under state pruning +- bpf: verifier: Allocate idmap scratch in verifier env +- bpf: Remove superfluous aux sanitation on subprog rejection +- bpf: Fix leakage due to insufficient speculative store bypass mitigation +- bpf: Introduce BPF nospec instruction for mitigating Spectre v4 +- can: hi311x: fix a signedness bug in hi3110_cmd() +- sis900: Fix missing pci_disable_device() in probe and remove +- tulip: windbond-840: Fix missing pci_disable_device() in probe and remove +- sctp: fix return value check in __sctp_rcv_asconf_lookup +- net/mlx5e: Fix nullptr in mlx5e_hairpin_get_mdev() +- net/mlx5: Fix flow table chaining +- skmsg: Make sk_psock_destroy() static +- drm/msm/dp: Initialize the INTF_CONFIG register +- drm/msm/dpu: Fix sm8250_mdp register length +- net: llc: fix skb_over_panic +- KVM: x86: Check the right feature bit for MSR_KVM_ASYNC_PF_ACK access +- mlx4: Fix missing error code in mlx4_load_one() +- octeontx2-pf: Fix interface down flag on error +- tipc: do not write skb_shinfo frags when doing decrytion +- ionic: count csum_none when offload enabled +- ionic: fix up dim accounting for tx and rx +- ionic: remove intr coalesce update from napi +- net: qrtr: fix memory leaks +- net: Set true network header for ECN decapsulation +- tipc: fix sleeping in tipc accept routine +- tipc: fix implicit-connect for SYN+ +- i40e: Fix log TC creation failure when max num of queues is exceeded +- i40e: Fix queue-to-TC mapping on Tx +- i40e: Fix firmware LLDP agent related warning +- i40e: Fix logic of disabling queues +- netfilter: nft_nat: allow to specify layer 4 protocol NAT only +- netfilter: conntrack: adjust stop timestamp to real expiry value +- mac80211: fix enabling 4-address mode on a sta vif after assoc +- bpf: Fix OOB read when printing XDP link fdinfo +- RDMA/bnxt_re: Fix stats counters +- cfg80211: Fix possible memory leak in function cfg80211_bss_update +- nfc: nfcsim: fix use after free during module unload +- blk-iocost: fix operation ordering in iocg_wake_fn() +- drm/amdgpu: Fix resource leak on probe error path +- drm/amdgpu: Avoid printing of stack contents on firmware load error +- drm/amd/display: ensure dentist display clock update finished in DCN20 +- NIU: fix incorrect error return, missed in previous revert +- HID: wacom: Re-enable touch by default for Cintiq 24HDT / 27QHDT +- alpha: register early reserved memory in memblock +- can: esd_usb2: fix memory leak +- can: ems_usb: fix memory leak +- can: usb_8dev: fix memory leak +- can: mcba_usb_start(): add missing urb->transfer_dma initialization +- can: peak_usb: pcan_usb_handle_bus_evt(): fix reading rxerr/txerr values +- can: raw: raw_setsockopt(): fix raw_rcv panic for sock UAF +- can: j1939: j1939_xtp_rx_dat_one(): fix rxtimer value between consecutive TP.DT to 750ms +- ocfs2: issue zeroout to EOF blocks +- ocfs2: fix zero out valid data +- KVM: add missing compat KVM_CLEAR_DIRTY_LOG +- x86/kvm: fix vcpu-id indexed array sizes +- ACPI: DPTF: Fix reading of attributes +- Revert "ACPI: resources: Add checks for ACPI IRQ override" +- btrfs: mark compressed range uptodate only if all bio succeed +- btrfs: fix rw device counting in __btrfs_free_extra_devids +- pipe: make pipe writes always wake up readers +- x86/asm: Ensure asm/proto.h can be included stand-alone +- io_uring: fix null-ptr-deref in io_sq_offload_start() +- selftest: fix build error in tools/testing/selftests/vm/userfaultfd.c +- ipv6: ip6_finish_output2: set sk into newly allocated nskb +- ARM: dts: versatile: Fix up interrupt controller node names +- iomap: remove the length variable in iomap_seek_hole +- iomap: remove the length variable in iomap_seek_data +- cifs: fix the out of range assignment to bit fields in parse_server_interfaces +- firmware: arm_scmi: Fix range check for the maximum number of pending messages +- firmware: arm_scmi: Fix possible scmi_linux_errmap buffer overflow +- hfs: add lock nesting notation to hfs_find_init +- hfs: fix high memory mapping in hfs_bnode_read +- hfs: add missing clean-up in hfs_fill_super +- drm/ttm: add a check against null pointer dereference +- ipv6: allocate enough headroom in ip6_finish_output2() +- rcu-tasks: Don't delete holdouts within trc_wait_for_one_reader() +- rcu-tasks: Don't delete holdouts within trc_inspect_reader() +- sctp: move 198 addresses from unusable to private scope +- net: annotate data race around sk_ll_usec +- net/802/garp: fix memleak in garp_request_join() +- net/802/mrp: fix memleak in mrp_request_join() +- cgroup1: fix leaked context root causing sporadic NULL deref in LTP +- workqueue: fix UAF in pwq_unbound_release_workfn() +- af_unix: fix garbage collect vs MSG_PEEK +- KVM: x86: determine if an exception has an error code only when injecting it. +- io_uring: fix link timeout refs +- tools: Allow proper CC/CXX/... override with LLVM=1 in Makefile.include +- perf annotate: Add error log in symbol__annotate() +- perf env: Normalize aarch64.* and arm64.* to arm64 in normalize_arch() +- skbuff: Fix build with SKB extensions disabled +- xhci: add xhci_get_virt_ep() helper +- sfc: ensure correct number of XDP queues +- drm/i915/gvt: Clear d3_entered on elsp cmd submission. +- usb: ehci: Prevent missed ehci interrupts with edge-triggered MSI +- perf inject: Close inject.output on exit +- Documentation: Fix intiramfs script name +- skbuff: Release nfct refcount on napi stolen or re-used skbs +- bonding: fix build issue +- PCI: Mark AMD Navi14 GPU ATS as broken +- net: dsa: mv88e6xxx: enable SerDes PCS register dump via ethtool -d on Topaz +- net: dsa: mv88e6xxx: enable SerDes RX stats for Topaz +- drm/amdgpu: update golden setting for sienna_cichlid +- drm: Return -ENOTTY for non-drm ioctls +- driver core: Prevent warning when removing a device link from unregistered consumer +- nds32: fix up stack guard gap +- misc: eeprom: at24: Always append device id even if label property is set. +- rbd: always kick acquire on "acquired" and "released" notifications +- rbd: don't hold lock_rwsem while running_list is being drained +- hugetlbfs: fix mount mode command line processing +- memblock: make for_each_mem_range() traverse MEMBLOCK_HOTPLUG regions +- userfaultfd: do not untag user pointers +- io_uring: remove double poll entry on arm failure +- io_uring: explicitly count entries for poll reqs +- selftest: use mmap instead of posix_memalign to allocate memory +- posix-cpu-timers: Fix rearm racing against process tick +- bus: mhi: core: Validate channel ID when processing command completions +- ixgbe: Fix packet corruption due to missing DMA sync +- media: ngene: Fix out-of-bounds bug in ngene_command_config_free_buf() +- btrfs: check for missing device in btrfs_trim_fs +- tracing: Synthetic event field_pos is an index not a boolean +- tracing: Fix bug in rb_per_cpu_empty() that might cause deadloop. +- tracing/histogram: Rename "cpu" to "common_cpu" +- tracepoints: Update static_call before tp_funcs when adding a tracepoint +- firmware/efi: Tell memblock about EFI iomem reservations +- usb: typec: stusb160x: register role switch before interrupt registration +- usb: dwc2: gadget: Fix sending zero length packet in DDMA mode. +- usb: dwc2: gadget: Fix GOUTNAK flow for Slave mode. +- usb: gadget: Fix Unbalanced pm_runtime_enable in tegra_xudc_probe +- USB: serial: cp210x: add ID for CEL EM3588 USB ZigBee stick +- USB: serial: cp210x: fix comments for GE CS1000 +- USB: serial: option: add support for u-blox LARA-R6 family +- usb: renesas_usbhs: Fix superfluous irqs happen after usb_pkt_pop() +- usb: max-3421: Prevent corruption of freed memory +- USB: usb-storage: Add LaCie Rugged USB3-FW to IGNORE_UAS +- usb: hub: Fix link power management max exit latency (MEL) calculations +- usb: hub: Disable USB 3 device initiated lpm if exit latency is too high +- KVM: PPC: Book3S HV Nested: Sanitise H_ENTER_NESTED TM state +- KVM: PPC: Book3S: Fix H_RTAS rets buffer overflow +- xhci: Fix lost USB 2 remote wake +- usb: xhci: avoid renesas_usb_fw.mem when it's unusable +- Revert "usb: renesas-xhci: Fix handling of unknown ROM state" +- ALSA: pcm: Fix mmap capability check +- ALSA: pcm: Call substream ack() method upon compat mmap commit +- ALSA: hdmi: Expose all pins on MSI MS-7C94 board +- ALSA: hda/realtek: Fix pop noise and 2 Front Mic issues on a machine +- ALSA: sb: Fix potential ABBA deadlock in CSP driver +- ALSA: usb-audio: Add registration quirk for JBL Quantum headsets +- ALSA: usb-audio: Add missing proc text entry for BESPOKEN type +- s390/boot: fix use of expolines in the DMA code +- s390/ftrace: fix ftrace_update_ftrace_func implementation +- mmc: core: Don't allocate IDA for OF aliases +- proc: Avoid mixing integer types in mem_rw() +- cifs: fix fallocate when trying to allocate a hole. +- cifs: only write 64kb at a time when fallocating a small region of a file +- drm/panel: raspberrypi-touchscreen: Prevent double-free +- net: sched: cls_api: Fix the the wrong parameter +- net: dsa: sja1105: make VID 4095 a bridge VLAN too +- tcp: disable TFO blackhole logic by default +- sctp: update active_key for asoc when old key is being replaced +- nvme: set the PRACT bit when using Write Zeroes with T10 PI +- r8169: Avoid duplicate sysfs entry creation error +- afs: Fix tracepoint string placement with built-in AFS +- Revert "USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem" +- nvme-pci: don't WARN_ON in nvme_reset_work if ctrl.state is not RESETTING +- ceph: don't WARN if we're still opening a session to an MDS +- ipv6: fix another slab-out-of-bounds in fib6_nh_flush_exceptions +- net/sched: act_skbmod: Skip non-Ethernet packets +- spi: spi-bcm2835: Fix deadlock +- ALSA: hda: intel-dsp-cfg: add missing ElkhartLake PCI ID +- net/tcp_fastopen: fix data races around tfo_active_disable_stamp +- net: hisilicon: rename CACHE_LINE_MASK to avoid redefinition +- bnxt_en: Check abort error state in bnxt_half_open_nic() +- bnxt_en: Validate vlan protocol ID on RX packets +- bnxt_en: Add missing check for BNXT_STATE_ABORT_ERR in bnxt_fw_rset_task() +- bnxt_en: Refresh RoCE capabilities in bnxt_ulp_probe() +- bnxt_en: don't disable an already disabled PCI device +- ACPI: Kconfig: Fix table override from built-in initrd +- spi: cadence: Correct initialisation of runtime PM again +- scsi: target: Fix protect handling in WRITE SAME(32) +- scsi: iscsi: Fix iface sysfs attr detection +- netrom: Decrease sock refcount when sock timers expire +- sctp: trim optlen when it's a huge value in sctp_setsockopt +- net: sched: fix memory leak in tcindex_partial_destroy_work +- KVM: PPC: Fix kvm_arch_vcpu_ioctl vcpu_load leak +- KVM: PPC: Book3S: Fix CONFIG_TRANSACTIONAL_MEM=n crash +- net: decnet: Fix sleeping inside in af_decnet +- efi/tpm: Differentiate missing and invalid final event log table. +- dma-mapping: handle vmalloc addresses in dma_common_{mmap,get_sgtable} +- usb: hso: fix error handling code of hso_create_net_device +- net: fix uninit-value in caif_seqpkt_sendmsg +- bpftool: Check malloc return value in mount_bpffs_for_pin +- bpf, sockmap, udp: sk_prot needs inuse_idx set for proc stats +- bpf, sockmap, tcp: sk_prot needs inuse_idx set for proc stats +- bpf, sockmap: Fix potential memory leak on unlikely error case +- s390/bpf: Perform r1 range checking before accessing jit->seen_reg[r1] +- liquidio: Fix unintentional sign extension issue on left shift of u16 +- timers: Fix get_next_timer_interrupt() with no timers pending +- xdp, net: Fix use-after-free in bpf_xdp_link_release +- bpf: Fix tail_call_reachable rejection for interpreter when jit failed +- bpf, test: fix NULL pointer dereference on invalid expected_attach_type +- ASoC: rt5631: Fix regcache sync errors on resume +- spi: mediatek: fix fifo rx mode +- regulator: hi6421: Fix getting wrong drvdata +- regulator: hi6421: Use correct variable type for regmap api val argument +- spi: stm32: fixes pm_runtime calls in probe/remove +- spi: imx: add a check for speed_hz before calculating the clock +- ASoC: wm_adsp: Correct wm_coeff_tlv_get handling +- perf sched: Fix record failure when CONFIG_SCHEDSTATS is not set +- perf lzma: Close lzma stream on exit +- perf script: Fix memory 'threads' and 'cpus' leaks on exit +- perf report: Free generated help strings for sort option +- perf env: Fix memory leak of cpu_pmu_caps +- perf test maps__merge_in: Fix memory leak of maps +- perf dso: Fix memory leak in dso__new_map() +- perf test event_update: Fix memory leak of evlist +- perf test session_topology: Delete session->evlist +- perf env: Fix sibling_dies memory leak +- perf probe: Fix dso->nsinfo refcounting +- perf map: Fix dso->nsinfo refcounting +- perf inject: Fix dso->nsinfo refcounting +- KVM: x86/pmu: Clear anythread deprecated bit when 0xa leaf is unsupported on the SVM +- nvme-pci: do not call nvme_dev_remove_admin from nvme_remove +- mptcp: fix warning in __skb_flow_dissect() when do syn cookie for subflow join +- cxgb4: fix IRQ free race during driver unload +- pwm: sprd: Ensure configuring period and duty_cycle isn't wrongly skipped +- selftests: icmp_redirect: IPv6 PMTU info should be cleared after redirect +- selftests: icmp_redirect: remove from checking for IPv6 route get +- stmmac: platform: Fix signedness bug in stmmac_probe_config_dt() +- ipv6: fix 'disable_policy' for fwd packets +- bonding: fix incorrect return value of bond_ipsec_offload_ok() +- bonding: fix suspicious RCU usage in bond_ipsec_offload_ok() +- bonding: Add struct bond_ipesc to manage SA +- bonding: disallow setting nested bonding + ipsec offload +- bonding: fix suspicious RCU usage in bond_ipsec_del_sa() +- ixgbevf: use xso.real_dev instead of xso.dev in callback functions of struct xfrmdev_ops +- bonding: fix null dereference in bond_ipsec_add_sa() +- bonding: fix suspicious RCU usage in bond_ipsec_add_sa() +- net: add kcov handle to skb extensions +- gve: Fix an error handling path in 'gve_probe()' +- igb: Fix position of assignment to *ring +- igb: Check if num of q_vectors is smaller than max before array access +- iavf: Fix an error handling path in 'iavf_probe()' +- e1000e: Fix an error handling path in 'e1000_probe()' +- fm10k: Fix an error handling path in 'fm10k_probe()' +- igb: Fix an error handling path in 'igb_probe()' +- igc: Fix an error handling path in 'igc_probe()' +- ixgbe: Fix an error handling path in 'ixgbe_probe()' +- igc: change default return of igc_read_phy_reg() +- igb: Fix use-after-free error during reset +- igc: Fix use-after-free error during reset +- sched: Add frequency control for load update in scheduler_tick +- sched: Add switch for update_blocked_averages +- sched: Introcude config option SCHED_OPTIMIZE_LOAD_TRACKING +- udp: annotate data races around unix_sk(sk)->gso_size +- drm/panel: nt35510: Do not fail if DSI read fails +- bpf: Track subprog poke descriptors correctly and fix use-after-free +- bpftool: Properly close va_list 'ap' by va_end() on error +- tools: bpf: Fix error in 'make -C tools/ bpf_install' +- tcp: call sk_wmem_schedule before sk_mem_charge in zerocopy path +- ipv6: tcp: drop silly ICMPv6 packet too big messages +- tcp: fix tcp_init_transfer() to not reset icsk_ca_initialized +- tcp: annotate data races around tp->mtu_info +- tcp: consistently disable header prediction for mptcp +- ARM: dts: tacoma: Add phase corrections for eMMC +- ARM: dts: aspeed: Fix AST2600 machines line names +- kbuild: do not suppress Kconfig prompts for silent build +- dma-buf/sync_file: Don't leak fences on merge failure +- net: fddi: fix UAF in fza_probe +- net: dsa: properly check for the bridge_leave methods in dsa_switch_bridge_leave() +- Revert "mm/shmem: fix shmem_swapin() race with swapoff" +- net: validate lwtstate->data before returning from skb_tunnel_info() +- net: send SYNACK packet with accepted fwmark +- net: ti: fix UAF in tlan_remove_one +- net: qcom/emac: fix UAF in emac_remove +- net: moxa: fix UAF in moxart_mac_probe +- net: ip_tunnel: fix mtu calculation for ETHER tunnel devices +- net: bcmgenet: Ensure all TX/RX queues DMAs are disabled +- net: netdevsim: use xso.real_dev instead of xso.dev in callback functions of struct xfrmdev_ops +- net: bridge: sync fdb to new unicast-filtering ports +- net/sched: act_ct: remove and free nf_table callbacks +- vmxnet3: fix cksum offload issues for tunnels with non-default udp ports +- net/sched: act_ct: fix err check for nf_conntrack_confirm +- netfilter: ctnetlink: suspicious RCU usage in ctnetlink_dump_helpinfo +- net: ipv6: fix return value of ip6_skb_dst_mtu +- net: dsa: mv88e6xxx: enable devlink ATU hash param for Topaz +- net: dsa: mv88e6xxx: enable .rmu_disable() on Topaz +- net: dsa: mv88e6xxx: use correct .stats_set_histogram() on Topaz +- net: dsa: mv88e6xxx: enable .port_set_policy() on Topaz +- net: bcmgenet: ensure EXT_ENERGY_DET_MASK is clear +- usb: cdns3: Enable TDL_CHK only for OUT ep +- mm/page_alloc: fix memory map initialization for descending nodes +- mm/userfaultfd: fix uffd-wp special cases for fork() +- mm/thp: simplify copying of huge zero page pmd when fork +- f2fs: Show casefolding support only when supported +- Revert "swap: fix do_swap_page() race with swapoff" +- arm64: dts: marvell: armada-37xx: move firmware node to generic dtsi file +- firmware: turris-mox-rwtm: add marvell,armada-3700-rwtm-firmware compatible string +- cifs: prevent NULL deref in cifs_compose_mount_options() +- s390: introduce proper type handling call_on_stack() macro +- s390/traps: do not test MONITOR CALL without CONFIG_BUG +- thermal/core/thermal_of: Stop zone device before unregistering it +- perf/x86/intel/uncore: Clean up error handling path of iio mapping +- sched/fair: Fix CFS bandwidth hrtimer expiry type +- scsi: qedf: Add check to synchronize abort and flush +- scsi: libfc: Fix array index out of bound exception +- scsi: aic7xxx: Fix unintentional sign extension issue on left shift of u8 +- rtc: max77686: Do not enforce (incorrect) interrupt trigger type +- arch/arm64/boot/dts/marvell: fix NAND partitioning scheme +- kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set +- thermal/drivers/sprd: Add missing of_node_put for loop iteration +- thermal/drivers/imx_sc: Add missing of_node_put for loop iteration +- thermal/drivers/rcar_gen3_thermal: Do not shadow rcar_gen3_ths_tj_1 +- thermal/core: Correct function name thermal_zone_device_unregister() +- arm64: dts: imx8mq: assign PCIe clocks +- arm64: dts: ls208xa: remove bus-num from dspi node +- firmware: tegra: bpmp: Fix Tegra234-only builds +- soc/tegra: fuse: Fix Tegra234-only builds +- ARM: OMAP2+: Block suspend for am3 and am4 if PM is not configured +- ARM: dts: stm32: fix stpmic node for stm32mp1 boards +- ARM: dts: stm32: Rename spi-flash/mx66l51235l@N to flash@N on DHCOM SoM +- ARM: dts: stm32: Drop unused linux,wakeup from touchscreen node on DHCOM SoM +- ARM: dts: stm32: fix the Odyssey SoM eMMC VQMMC supply +- ARM: dts: stm32: move stmmac axi config in ethernet node on stm32mp15 +- ARM: dts: stm32: fix i2c node name on stm32f746 to prevent warnings +- ARM: dts: rockchip: fix supply properties in io-domains nodes +- arm64: dts: juno: Update SCPI nodes as per the YAML schema +- ARM: dts: bcm283x: Fix up GPIO LED node names +- ARM: dts: bcm283x: Fix up MMC node names +- firmware: arm_scmi: Fix the build when CONFIG_MAILBOX is not selected +- firmware: arm_scmi: Add SMCCC discovery dependency in Kconfig +- memory: tegra: Fix compilation warnings on 64bit platforms +- ARM: dts: stm32: fix timer nodes on STM32 MCU to prevent warnings +- ARM: dts: stm32: fix RCC node name on stm32f429 MCU +- ARM: dts: stm32: fix gpio-keys node on STM32 MCU boards +- ARM: dts: stm32: fix stm32mp157c-odyssey card detect pin +- ARM: dts: stm32: Fix touchscreen node on dhcom-pdk2 +- ARM: dts: stm32: Remove extra size-cells on dhcom-pdk2 +- arm64: dts: qcom: sc7180: Move rmtfs memory region +- ARM: tegra: nexus7: Correct 3v3 regulator GPIO of PM269 variant +- ARM: tegra: wm8903: Fix polarity of headphones-detection GPIO in device-trees +- arm64: dts: ti: k3-am654x/j721e/j7200-common-proc-board: Fix MCU_RGMII1_TXC direction +- ARM: dts: OMAP2+: Replace underscores in sub-mailbox node names +- ARM: dts: am335x: fix ti,no-reset-on-init flag for gpios +- ARM: dts: am437x-gp-evm: fix ti,no-reset-on-init flag for gpios +- ARM: dts: am57xx-cl-som-am57x: fix ti,no-reset-on-init flag for gpios +- kbuild: sink stdout from cmd for silent build +- rtc: mxc_v2: add missing MODULE_DEVICE_TABLE +- ARM: dts: imx6dl-riotboard: configure PHY clock and set proper EEE value +- ARM: dts: ux500: Fix orientation of accelerometer +- ARM: dts: ux500: Rename gpio-controller node +- ARM: dts: ux500: Fix interrupt cells +- arm64: dts: rockchip: fix regulator-gpio states array +- ARM: imx: pm-imx5: Fix references to imx5_cpu_suspend_info +- ARM: dts: imx6: phyFLEX: Fix UART hardware flow control +- ARM: dts: Hurricane 2: Fix NAND nodes names +- ARM: dts: BCM63xx: Fix NAND nodes names +- ARM: NSP: dts: fix NAND nodes names +- ARM: Cygnus: dts: fix NAND nodes names +- ARM: brcmstb: dts: fix NAND nodes names +- reset: ti-syscon: fix to_ti_syscon_reset_data macro +- arm64: dts: rockchip: Fix power-controller node names for rk3399 +- arm64: dts: rockchip: Fix power-controller node names for rk3328 +- arm64: dts: rockchip: Fix power-controller node names for px30 +- ARM: dts: rockchip: Fix power-controller node names for rk3288 +- ARM: dts: rockchip: Fix power-controller node names for rk3188 +- ARM: dts: rockchip: Fix power-controller node names for rk3066a +- ARM: dts: rockchip: Fix IOMMU nodes properties on rk322x +- ARM: dts: rockchip: Fix the timer clocks order +- arm64: dts: rockchip: fix pinctrl sleep nodename for rk3399.dtsi +- ARM: dts: rockchip: fix pinctrl sleep nodename for rk3036-kylin and rk3288 +- ARM: dts: rockchip: Fix thermal sensor cells o rk322x +- ARM: dts: gemini: add device_type on pci +- ARM: dts: gemini: rename mdio to the right name +- scsi: scsi_dh_alua: Fix signedness bug in alua_rtpg() +- MIPS: vdso: Invalid GIC access through VDSO +- mips: disable branch profiling in boot/decompress.o +- mips: always link byteswap helpers into decompressor +- static_call: Fix static_call_text_reserved() vs __init +- jump_label: Fix jump_label_text_reserved() vs __init +- sched/uclamp: Ignore max aggregation if rq is idle +- scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe() +- arm64: dts: rockchip: Re-add regulator-always-on for vcc_sdio for rk3399-roc-pc +- arm64: dts: rockchip: Re-add regulator-boot-on, regulator-always-on for vdd_gpu on rk3399-roc-pc +- firmware: turris-mox-rwtm: show message about HWRNG registration +- firmware: turris-mox-rwtm: fail probing when firmware does not support hwrng +- firmware: turris-mox-rwtm: report failures better +- firmware: turris-mox-rwtm: fix reply status decoding function +- thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations +- ARM: dts: imx6q-dhcom: Add gpios pinctrl for i2c bus recovery +- ARM: dts: imx6q-dhcom: Fix ethernet plugin detection problems +- ARM: dts: imx6q-dhcom: Fix ethernet reset time properties +- thermal/drivers/sprd: Add missing MODULE_DEVICE_TABLE +- ARM: dts: am437x: align ti,pindir-d0-out-d1-in property with dt-shema +- ARM: dts: am335x: align ti,pindir-d0-out-d1-in property with dt-shema +- ARM: dts: dra7: Fix duplicate USB4 target module node +- arm64: dts: allwinner: a64-sopine-baseboard: change RGMII mode to TXID +- memory: fsl_ifc: fix leak of private memory on probe failure +- memory: fsl_ifc: fix leak of IO mapping on probe failure +- arm64: dts: ti: k3-j721e-main: Fix external refclk input to SERDES +- arm64: dts: renesas: r8a779a0: Drop power-domains property from GIC node +- reset: bail if try_module_get() fails +- ARM: dts: BCM5301X: Fixup SPI binding +- dt-bindings: i2c: at91: fix example for scl-gpios +- firmware: arm_scmi: Reset Rx buffer to max size during async commands +- firmware: tegra: Fix error return code in tegra210_bpmp_init() +- arm64: dts: qcom: trogdor: Add no-hpd to DSI bridge node +- ARM: dts: stm32: Rework LAN8710Ai PHY reset on DHCOM SoM +- ARM: dts: stm32: Connect PHY IRQ line on DH STM32MP1 SoM +- arm64: dts: renesas: r8a7796[01]: Fix OPP table entry voltages +- arm64: dts: renesas: Add missing opp-suspend properties +- arm64: dts: ti: j7200-main: Enable USB2 PHY RX sensitivity workaround +- ARM: dts: r8a7779, marzen: Fix DU clock names +- arm64: dts: renesas: v3msk: Fix memory size +- rtc: fix snprintf() checking in is_rtc_hctosys() +- ARM: dts: sun8i: h3: orangepi-plus: Fix ethernet phy-mode +- memory: pl353: Fix error return code in pl353_smc_probe() +- reset: brcmstb: Add missing MODULE_DEVICE_TABLE +- memory: atmel-ebi: add missing of_node_put for loop iteration +- memory: stm32-fmc2-ebi: add missing of_node_put for loop iteration +- ARM: dts: exynos: fix PWM LED max brightness on Odroid XU4 +- ARM: dts: exynos: fix PWM LED max brightness on Odroid HC1 +- ARM: dts: exynos: fix PWM LED max brightness on Odroid XU/XU3 +- ARM: exynos: add missing of_node_put for loop iteration +- reset: a10sr: add missing of_match_table reference +- reset: RESET_INTEL_GW should depend on X86 +- reset: RESET_BRCMSTB_RESCAL should depend on ARCH_BRCMSTB +- ARM: dts: gemini-rut1xx: remove duplicate ethernet node +- hexagon: use common DISCARDS macro +- hexagon: handle {,SOFT}IRQENTRY_TEXT in linker script +- NFSv4/pNFS: Don't call _nfs4_pnfs_v3_ds_connect multiple times +- NFSv4/pnfs: Fix layoutget behaviour after invalidation +- NFSv4/pnfs: Fix the layout barrier update +- vdpa/mlx5: Clear vq ready indication upon device reset +- ALSA: isa: Fix error return code in snd_cmi8330_probe() +- nfsd: Reduce contention for the nfsd_file nf_rwsem +- nvme-tcp: can't set sk_user_data without write_lock +- virtio_net: move tx vq operation under tx queue lock +- vdpa/mlx5: Fix possible failure in umem size calculation +- vdpa/mlx5: Fix umem sizes assignments on VQ create +- PCI: tegra194: Fix tegra_pcie_ep_raise_msi_irq() ill-defined shift +- pwm: imx1: Don't disable clocks at device remove time +- PCI: intel-gw: Fix INTx enable +- x86/fpu: Limit xstate copy size in xstateregs_set() +- x86/fpu: Fix copy_xstate_to_kernel() gap handling +- f2fs: fix to avoid adding tab before doc section +- PCI: iproc: Support multi-MSI only on uniprocessor kernel +- PCI: iproc: Fix multi-MSI base vector number allocation +- ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode +- nfs: fix acl memory leak of posix_acl_create() +- SUNRPC: prevent port reuse on transports which don't request it. +- watchdog: jz4740: Fix return value check in jz4740_wdt_probe() +- watchdog: aspeed: fix hardware timeout calculation +- ubifs: journal: Fix error return code in ubifs_jnl_write_inode() +- ubifs: Fix off-by-one error +- um: fix error return code in winch_tramp() +- um: fix error return code in slip_open() +- misc: alcor_pci: fix inverted branch condition +- NFSv4: Fix an Oops in pnfs_mark_request_commit() when doing O_DIRECT +- NFSv4: Initialise connection to the server in nfs4_alloc_client() +- power: supply: rt5033_battery: Fix device tree enumeration +- PCI/sysfs: Fix dsm_label_utf16s_to_utf8s() buffer overrun +- remoteproc: k3-r5: Fix an error message +- f2fs: compress: fix to disallow temp extension +- f2fs: add MODULE_SOFTDEP to ensure crc32 is included in the initramfs +- x86/signal: Detect and prevent an alternate signal stack overflow +- NFSD: Fix TP_printk() format specifier in nfsd_clid_class +- f2fs: atgc: fix to set default age threshold +- virtio_console: Assure used length from device is limited +- virtio_net: Fix error handling in virtnet_restore() +- virtio-blk: Fix memory leak among suspend/resume procedure +- PCI: rockchip: Register IRQ handlers after device and data are ready +- ACPI: video: Add quirk for the Dell Vostro 3350 +- ACPI: AMBA: Fix resource name in /proc/iomem +- pwm: tegra: Don't modify HW state in .remove callback +- pwm: img: Fix PM reference leak in img_pwm_enable() +- drm/amdkfd: fix sysfs kobj leak +- power: supply: ab8500: add missing MODULE_DEVICE_TABLE +- power: supply: charger-manager: add missing MODULE_DEVICE_TABLE +- NFS: nfs_find_open_context() may only select open files +- drm/gma500: Add the missed drm_gem_object_put() in psb_user_framebuffer_create() +- ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty +- orangefs: fix orangefs df output. +- PCI: tegra: Add missing MODULE_DEVICE_TABLE +- remoteproc: core: Fix cdev remove and rproc del +- x86/fpu: Return proper error codes from user access functions +- watchdog: iTCO_wdt: Account for rebooting on second timeout +- watchdog: imx_sc_wdt: fix pretimeout +- watchdog: Fix possible use-after-free by calling del_timer_sync() +- watchdog: sc520_wdt: Fix possible use-after-free in wdt_turnoff() +- watchdog: Fix possible use-after-free in wdt_startup() +- PCI: pciehp: Ignore Link Down/Up caused by DPC +- NFSv4: Fix delegation return in cases where we have to retry +- PCI/P2PDMA: Avoid pci_get_slot(), which may sleep +- ARM: 9087/1: kprobes: test-thumb: fix for LLVM_IAS=1 +- power: reset: gpio-poweroff: add missing MODULE_DEVICE_TABLE +- power: supply: max17042: Do not enforce (incorrect) interrupt trigger type +- PCI: hv: Fix a race condition when removing the device +- power: supply: ab8500: Avoid NULL pointers +- PCI: ftpci100: Rename macro name collision +- pwm: spear: Don't modify HW state in .remove callback +- power: supply: sc2731_charger: Add missing MODULE_DEVICE_TABLE +- power: supply: sc27xx: Add missing MODULE_DEVICE_TABLE +- kcov: add __no_sanitize_coverage to fix noinstr for all architectures +- lib/decompress_unlz4.c: correctly handle zero-padding around initrds. +- phy: intel: Fix for warnings due to EMMC clock 175Mhz change in FIP +- i2c: core: Disable client irq on reboot/shutdown +- intel_th: Wait until port is in reset before programming it +- staging: rtl8723bs: fix macro value for 2.4Ghz only device +- leds: turris-omnia: add missing MODULE_DEVICE_TABLE +- ALSA: firewire-motu: fix detection for S/PDIF source on optical interface in v2 protocol +- ALSA: usb-audio: scarlett2: Fix 6i6 Gen 2 line out descriptions +- ALSA: hda: Add IRQ check for platform_get_irq() +- backlight: lm3630a: Fix return code of .update_status() callback +- ASoC: Intel: kbl_da7219_max98357a: shrink platform_id below 20 characters +- powerpc/boot: Fixup device-tree on little endian +- usb: gadget: hid: fix error return code in hid_bind() +- usb: gadget: f_hid: fix endianness issue with descriptors +- ALSA: usb-audio: scarlett2: Fix scarlett2_*_ctl_put() return values +- ALSA: usb-audio: scarlett2: Fix data_mutex lock +- ALSA: usb-audio: scarlett2: Fix 18i8 Gen 2 PCM Input count +- ALSA: bebob: add support for ToneWeal FW66 +- Input: hideep - fix the uninitialized use in hideep_nvm_unlock() +- s390/mem_detect: fix tprot() program check new psw handling +- s390/mem_detect: fix diag260() program check new psw handling +- s390/ipl_parm: fix program check new psw handling +- s390/processor: always inline stap() and __load_psw_mask() +- habanalabs: remove node from list before freeing the node +- habanalabs/gaudi: set the correct cpu_id on MME2_QM failure +- ASoC: soc-core: Fix the error return code in snd_soc_of_parse_audio_routing() +- powerpc/mm/book3s64: Fix possible build error +- gpio: pca953x: Add support for the On Semi pca9655 +- selftests/powerpc: Fix "no_handler" EBB selftest +- ALSA: ppc: fix error return code in snd_pmac_probe() +- scsi: storvsc: Correctly handle multiple flags in srb_status +- gpio: zynq: Check return value of irq_get_irq_data +- gpio: zynq: Check return value of pm_runtime_get_sync +- ASoC: soc-pcm: fix the return value in dpcm_apply_symmetry() +- iommu/arm-smmu: Fix arm_smmu_device refcount leak in address translation +- iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get fails +- powerpc/ps3: Add dma_mask to ps3_dma_region +- ALSA: sb: Fix potential double-free of CSP mixer elements +- selftests: timers: rtcpie: skip test if default RTC device does not exist +- s390: disable SSP when needed +- s390/sclp_vt220: fix console name to match device +- serial: tty: uartlite: fix console setup +- fsi: Add missing MODULE_DEVICE_TABLE +- ASoC: img: Fix PM reference leak in img_i2s_in_probe() +- mfd: cpcap: Fix cpcap dmamask not set warnings +- mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE +- scsi: qedi: Fix cleanup session block/unblock use +- scsi: qedi: Fix TMF session block/unblock use +- scsi: qedi: Fix race during abort timeouts +- scsi: qedi: Fix null ref during abort handling +- scsi: iscsi: Fix shost->max_id use +- scsi: iscsi: Fix conn use after free during resets +- scsi: iscsi: Add iscsi_cls_conn refcount helpers +- scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs +- scsi: megaraid_sas: Early detection of VD deletion through RaidMap update +- scsi: megaraid_sas: Fix resource leak in case of probe failure +- fs/jfs: Fix missing error code in lmLogInit() +- scsi: scsi_dh_alua: Check for negative result value +- scsi: core: Fixup calling convention for scsi_mode_sense() +- scsi: mpt3sas: Fix deadlock while cancelling the running firmware event +- tty: serial: 8250: serial_cs: Fix a memory leak in error handling path +- ALSA: ac97: fix PM reference leak in ac97_bus_remove() +- scsi: core: Cap scsi_host cmd_per_lun at can_queue +- scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the SGLs +- scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology +- scsi: arcmsr: Fix doorbell status being updated late on ARC-1886 +- w1: ds2438: fixing bug that would always get page0 +- usb: common: usb-conn-gpio: fix NULL pointer dereference of charger +- Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro" +- ALSA: usx2y: Don't call free_pages_exact() with NULL address +- ALSA: usx2y: Avoid camelCase +- iio: magn: bmc150: Balance runtime pm + use pm_runtime_resume_and_get() +- iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get(). +- partitions: msdos: fix one-byte get_unaligned() +- ASoC: intel/boards: add missing MODULE_DEVICE_TABLE +- misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge +- misc/libmasm/module: Fix two use after free in ibmasm_init_one +- serial: fsl_lpuart: disable DMA for console and fix sysrq +- tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero +- rcu: Reject RCU_LOCKDEP_WARN() false positives +- srcu: Fix broken node geometry after early ssp init +- scsi: arcmsr: Fix the wrong CDB payload report to IOP +- dmaengine: fsl-qdma: check dma_set_mask return value +- ASoC: Intel: sof_sdw: add mutual exclusion between PCH DMIC and RT715 +- leds: tlc591xx: fix return value check in tlc591xx_probe() +- net: bridge: multicast: fix MRD advertisement router port marking race +- net: bridge: multicast: fix PIM hello router port marking race +- Revert "drm/ast: Remove reference to struct drm_device.pdev" +- drm/ingenic: Switch IPU plane to type OVERLAY +- drm/ingenic: Fix non-OSD mode +- drm/dp_mst: Add missing drm parameters to recently added call to drm_dbg_kms() +- drm/dp_mst: Avoid to mess up payload table by ports in stale topology +- drm/dp_mst: Do not set proposed vcpi directly +- fbmem: Do not delete the mode that is still in use +- cgroup: verify that source is a string +- drm/i915/gt: Fix -EDEADLK handling regression +- drm/i915/gtt: drop the page table optimisation +- tracing: Do not reference char * as a string in histograms +- scsi: zfcp: Report port fc_security as unknown early during remote cable pull +- scsi: core: Fix bad pointer dereference when ehandler kthread is invalid +- KVM: X86: Disable hardware breakpoints unconditionally before kvm_x86->run() +- KVM: nSVM: Check the value written to MSR_VM_HSAVE_PA +- KVM: x86/mmu: Do not apply HPA (memory encryption) mask to GPAs +- KVM: x86: Use guest MAXPHYADDR from CPUID.0x8000_0008 iff TDP is enabled +- KVM: mmio: Fix use-after-free Read in kvm_vm_ioctl_unregister_coalesced_mmio +- cifs: handle reconnect of tcon when there is no cached dfs referral +- certs: add 'x509_revocation_list' to gitignore +- f2fs: fix to avoid racing on fsync_entry_slab by multi filesystem instances +- smackfs: restrict bytes count in smk_set_cipso() +- jfs: fix GPF in diFree +- drm/ast: Remove reference to struct drm_device.pdev +- pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq() +- dm writecache: write at least 4k when committing +- io_uring: fix clear IORING_SETUP_R_DISABLED in wrong function +- media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K +- media: gspca/sunplus: fix zero-length control requests +- media: gspca/sq905: fix control-request direction +- media: zr364xx: fix memory leak in zr364xx_start_readpipe +- media: dtv5100: fix control-request directions +- media: subdev: disallow ioctl for saa6588/davinci +- PCI: aardvark: Implement workaround for the readback value of VEND_ID +- PCI: aardvark: Fix checking for PIO Non-posted Request +- PCI: Leave Apple Thunderbolt controllers on for s2idle or standby +- dm writecache: flush origin device when writing and cache is full +- dm zoned: check zone capacity +- coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer() +- coresight: Propagate symlink failure +- ipack/carriers/tpci200: Fix a double free in tpci200_pci_probe +- tracing: Resize tgid_map to pid_max, not PID_MAX_DEFAULT +- tracing: Simplify & fix saved_tgids logic +- rq-qos: fix missed wake-ups in rq_qos_throttle try two +- seq_buf: Fix overflow in seq_buf_putmem_hex() +- extcon: intel-mrfld: Sync hardware and software state on init +- selftests/lkdtm: Fix expected text for CR4 pinning +- lkdtm/bugs: XFAIL UNALIGNED_LOAD_STORE_WRITE +- nvmem: core: add a missing of_node_put +- mfd: syscon: Free the allocated name field of struct regmap_config +- power: supply: ab8500: Fix an old bug +- thermal/drivers/int340x/processor_thermal: Fix tcc setting +- ipmi/watchdog: Stop watchdog timer when the current action is 'none' +- qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute +- i40e: fix PTP on 5Gb links +- ASoC: tegra: Set driver_name=tegra for all machine drivers +- fpga: stratix10-soc: Add missing fpga_mgr_free() call +- clocksource/arm_arch_timer: Improve Allwinner A64 timer workaround +- cpu/hotplug: Cure the cpusets trainwreck +- arm64: tlb: fix the TTL value of tlb_get_level +- ata: ahci_sunxi: Disable DIPM +- mmc: core: Allow UHS-I voltage switch for SDSC cards if supported +- mmc: core: clear flags before allowing to retune +- mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode +- mmc: sdhci-acpi: Disable write protect detection on Toshiba Encore 2 WT8-B +- drm/i915/display: Do not zero past infoframes.vsc +- drm/nouveau: Don't set allow_fb_modifiers explicitly +- drm/arm/malidp: Always list modifiers +- drm/msm/mdp4: Fix modifier support enabling +- drm/tegra: Don't set allow_fb_modifiers explicitly +- drm/amd/display: Reject non-zero src_y and src_x for video planes +- pinctrl/amd: Add device HID for new AMD GPIO controller +- drm/amd/display: fix incorrrect valid irq check +- drm/rockchip: dsi: remove extra component_del() call +- drm/dp: Handle zeroed port counts in drm_dp_read_downstream_info() +- drm/vc4: hdmi: Prevent clock unbalance +- drm/vc4: crtc: Skip the TXP +- drm/vc4: txp: Properly set the possible_crtcs mask +- drm/radeon: Call radeon_suspend_kms() in radeon_pci_shutdown() for Loongson64 +- drm/radeon: Add the missed drm_gem_object_put() in radeon_user_framebuffer_create() +- drm/amdgpu: enable sdma0 tmz for Raven/Renoir(V2) +- drm/amdgpu: Update NV SIMD-per-CU to 2 +- powerpc/powernv/vas: Release reference to tgid during window close +- powerpc/barrier: Avoid collision with clang's __lwsync macro +- powerpc/mm: Fix lockup on kernel exec fault +- arm64: dts: rockchip: Enable USB3 for rk3328 Rock64 +- arm64: dts: rockchip: add rk3328 dwc3 usb controller node +- ath11k: unlock on error path in ath11k_mac_op_add_interface() +- MIPS: MT extensions are not available on MIPS32r1 +- selftests/resctrl: Fix incorrect parsing of option "-t" +- MIPS: set mips32r5 for virt extensions +- MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops +- sctp: add size validation when walking chunks +- sctp: validate from_addr_param return +- flow_offload: action should not be NULL when it is referenced +- bpf: Fix false positive kmemleak report in bpf_ringbuf_area_alloc() +- sched/fair: Ensure _sum and _avg values stay consistent +- Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc. +- Bluetooth: mgmt: Fix the command returns garbage parameter value +- Bluetooth: btusb: Add support USB ALT 3 for WBS +- Bluetooth: L2CAP: Fix invalid access on ECRED Connection response +- Bluetooth: L2CAP: Fix invalid access if ECRED Reconfigure fails +- Bluetooth: btusb: Add a new QCA_ROME device (0cf3:e500) +- Bluetooth: Shutdown controller after workqueues are flushed or cancelled +- Bluetooth: Fix alt settings for incoming SCO with transparent coding format +- Bluetooth: Fix the HCI to MGMT status conversion table +- Bluetooth: btusb: Fixed too many in-token issue for Mediatek Chip. +- RDMA/cma: Fix rdma_resolve_route() memory leak +- net: ip: avoid OOM kills with large UDP sends over loopback +- media, bpf: Do not copy more entries than user space requested +- IB/isert: Align target max I/O size to initiator size +- mac80211_hwsim: add concurrent channels scanning support over virtio +- mac80211: consider per-CPU statistics if present +- cfg80211: fix default HE tx bitrate mask in 2G band +- wireless: wext-spy: Fix out-of-bounds warning +- sfc: error code if SRIOV cannot be disabled +- sfc: avoid double pci_remove of VFs +- iwlwifi: pcie: fix context info freeing +- iwlwifi: pcie: free IML DMA memory allocation +- iwlwifi: mvm: fix error print when session protection ends +- iwlwifi: mvm: don't change band on bound PHY contexts +- RDMA/rxe: Don't overwrite errno from ib_umem_get() +- vsock: notify server to shutdown when client has pending signal +- atm: nicstar: register the interrupt handler in the right place +- atm: nicstar: use 'dma_free_coherent' instead of 'kfree' +- net: fec: add ndo_select_queue to fix TX bandwidth fluctuations +- MIPS: add PMD table accounting into MIPS'pmd_alloc_one +- rtl8xxxu: Fix device info for RTL8192EU devices +- mt76: mt7915: fix IEEE80211_HE_PHY_CAP7_MAX_NC for station mode +- drm/amdkfd: Walk through list with dqm lock hold +- drm/amdgpu: fix bad address translation for sienna_cichlid +- io_uring: fix false WARN_ONCE +- net: sched: fix error return code in tcf_del_walker() +- net: ipa: Add missing of_node_put() in ipa_firmware_load() +- net: fix mistake path for netdev_features_strings +- mt76: mt7615: fix fixed-rate tx status reporting +- ice: mark PTYPE 2 as reserved +- ice: fix incorrect payload indicator on PTYPE +- bpf: Fix up register-based shifts in interpreter to silence KUBSAN +- drm/amdkfd: Fix circular lock in nocpsch path +- drm/amdkfd: fix circular locking on get_wave_state +- cw1200: add missing MODULE_DEVICE_TABLE +- wl1251: Fix possible buffer overflow in wl1251_cmd_scan +- wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP +- dm writecache: commit just one block, not a full page +- xfrm: Fix error reporting in xfrm_state_construct. +- drm/amd/display: Verify Gamma & Degamma LUT sizes in amdgpu_dm_atomic_check +- r8169: avoid link-up interrupt issue on RTL8106e if user enables ASPM +- selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC +- fjes: check return value after calling platform_get_resource() +- drm/amdkfd: use allowed domain for vmbo validation +- net: sgi: ioc3-eth: check return value after calling platform_get_resource() +- selftests: Clean forgotten resources as part of cleanup() +- net: phy: realtek: add delay to fix RXC generation issue +- drm/amd/display: Fix off-by-one error in DML +- drm/amd/display: Set DISPCLK_MAX_ERRDET_CYCLES to 7 +- drm/amd/display: Release MST resources on switch from MST to SST +- drm/amd/display: Update scaling settings on modeset +- drm/amd/display: Fix DCN 3.01 DSCCLK validation +- net: moxa: Use devm_platform_get_and_ioremap_resource() +- net: micrel: check return value after calling platform_get_resource() +- net: mvpp2: check return value after calling platform_get_resource() +- net: bcmgenet: check return value after calling platform_get_resource() +- net: mscc: ocelot: check return value after calling platform_get_resource() +- virtio_net: Remove BUG() to avoid machine dead +- ice: fix clang warning regarding deadcode.DeadStores +- ice: set the value of global config lock timeout longer +- pinctrl: mcp23s08: fix race condition in irq handler +- net: bridge: mrp: Update ring transitions. +- dm: Fix dm_accept_partial_bio() relative to zone management commands +- dm writecache: don't split bios when overwriting contiguous cache content +- dm space maps: don't reset space map allocation cursor when committing +- RDMA/cxgb4: Fix missing error code in create_qp() +- net: tcp better handling of reordering then loss cases +- drm/amdgpu: remove unsafe optimization to drop preamble ib +- drm/amd/display: Avoid HDCP over-read and corruption +- MIPS: ingenic: Select CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER +- MIPS: cpu-probe: Fix FPU detection on Ingenic JZ4760(B) +- ipv6: use prandom_u32() for ID generation +- virtio-net: Add validation for used length +- drm: bridge: cdns-mhdp8546: Fix PM reference leak in +- clk: tegra: Ensure that PLLU configuration is applied properly +- clk: tegra: Fix refcounting of gate clocks +- RDMA/rtrs: Change MAX_SESS_QUEUE_DEPTH +- net: stmmac: the XPCS obscures a potential "PHY not found" error +- drm: rockchip: add missing registers for RK3066 +- drm: rockchip: add missing registers for RK3188 +- net/mlx5: Fix lag port remapping logic +- net/mlx5e: IPsec/rep_tc: Fix rep_tc_update_skb drops IPsec packet +- clk: renesas: r8a77995: Add ZA2 clock +- drm/bridge: cdns: Fix PM reference leak in cdns_dsi_transfer() +- igb: fix assignment on big endian machines +- igb: handle vlan types with checker enabled +- e100: handle eeprom as little endian +- drm/vc4: hdmi: Fix PM reference leak in vc4_hdmi_encoder_pre_crtc_co() +- drm/vc4: Fix clock source for VEC PixelValve on BCM2711 +- udf: Fix NULL pointer dereference in udf_symlink function +- drm/sched: Avoid data corruptions +- drm/scheduler: Fix hang when sched_entity released +- pinctrl: equilibrium: Add missing MODULE_DEVICE_TABLE +- net/sched: cls_api: increase max_reclassify_loop +- net: mdio: provide shim implementation of devm_of_mdiobus_register +- drm/virtio: Fix double free on probe failure +- reiserfs: add check for invalid 1st journal block +- drm/bridge: lt9611: Add missing MODULE_DEVICE_TABLE +- net: mdio: ipq8064: add regmap config to disable REGCACHE +- drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init() +- net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT +- atm: nicstar: Fix possible use-after-free in nicstar_cleanup() +- mISDN: fix possible use-after-free in HFC_cleanup() +- atm: iphase: fix possible use-after-free in ia_module_exit() +- hugetlb: clear huge pte during flush function on mips platform +- clk: renesas: rcar-usb2-clock-sel: Fix error handling in .probe() +- drm/amd/display: fix use_max_lb flag for 420 pixel formats +- net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() +- drm/bridge: nwl-dsi: Force a full modeset when crtc_state->active is changed to be true +- drm/vc4: fix argument ordering in vc4_crtc_get_margins() +- drm/amd/amdgpu/sriov disable all ip hw status by default +- drm/amd/display: fix HDCP reset sequence on reinitialize +- drm/ast: Fixed CVE for DP501 +- drm/zte: Don't select DRM_KMS_FB_HELPER +- drm/mxsfb: Don't select DRM_KMS_FB_HELPER +- perf data: Close all files in close_dir() +- perf test bpf: Free obj_buf +- perf probe-file: Delete namelist in del_events() on the error path +- igmp: Add ip_mc_list lock in ip_check_mc_rcu +- ACPI / PPTT: get PPTT table in the first beginning +- Revert "[Huawei] sched: export sched_setscheduler symbol" +- kcsan: Never set up watchpoints on NULL pointers +- ext4: inline jbd2_journal_[un]register_shrinker() +- jbd2: export jbd2_journal_[un]register_shrinker() +- fs: remove bdev_try_to_free_page callback +- ext4: remove bdev_try_to_free_page() callback +- jbd2: simplify journal_clean_one_cp_list() +- jbd2,ext4: add a shrinker to release checkpointed buffers +- jbd2: remove redundant buffer io error checks +- jbd2: don't abort the journal when freeing buffers +- jbd2: ensure abort the journal if detect IO error when writing original buffer back +- jbd2: remove the out label in __jbd2_journal_remove_checkpoint() +- net: spnic: add NIC layer +- net: spnic: initial commit the common module of Ramaxel NIC driver +- spraid: Add CONFIG_RAMAXEL_SPRAID in defconfig of arch arm64 and x86 +- spraid: support Ramaxel raid controller +- powerpc/preempt: Don't touch the idle task's preempt_count during hotplug +- iommu/dma: Fix compile warning in 32-bit builds +- cred: add missing return error code when set_cred_ucounts() failed +- s390: preempt: Fix preempt_count initialization +- crypto: qce - fix error return code in qce_skcipher_async_req_handle() +- scsi: core: Retry I/O for Notify (Enable Spinup) Required error +- media: exynos4-is: remove a now unused integer +- mmc: vub3000: fix control-request direction +- mmc: block: Disable CMDQ on the ioctl path +- io_uring: fix blocking inline submission +- block: return the correct bvec when checking for gaps +- erofs: fix error return code in erofs_read_superblock() +- tpm: Replace WARN_ONCE() with dev_err_once() in tpm_tis_status() +- fscrypt: fix derivation of SipHash keys on big endian CPUs +- fscrypt: don't ignore minor_hash when hash is 0 +- mailbox: qcom-ipcc: Fix IPCC mbox channel exhaustion +- scsi: target: cxgbit: Unmap DMA buffer before calling target_execute_cmd() +- scsi: fc: Correct RHBA attributes length +- exfat: handle wrong stream entry size in exfat_readdir() +- csky: syscache: Fixup duplicate cache flush +- csky: fix syscache.c fallthrough warning +- perf llvm: Return -ENOMEM when asprintf() fails +- selftests/vm/pkeys: refill shadow register after implicit kernel write +- selftests/vm/pkeys: handle negative sys_pkey_alloc() return code +- selftests/vm/pkeys: fix alloc_random_pkey() to make it really, really random +- lib/math/rational.c: fix divide by zero +- mm/z3fold: use release_z3fold_page_locked() to release locked z3fold page +- mm/z3fold: fix potential memory leak in z3fold_destroy_pool() +- include/linux/huge_mm.h: remove extern keyword +- hugetlb: remove prep_compound_huge_page cleanup +- mm/hugetlb: remove redundant check in preparing and destroying gigantic page +- mm/hugetlb: use helper huge_page_order and pages_per_huge_page +- mm/huge_memory.c: don't discard hugepage if other processes are mapping it +- mm/huge_memory.c: add missing read-only THP checking in transparent_hugepage_enabled() +- mm/huge_memory.c: remove dedicated macro HPAGE_CACHE_INDEX_MASK +- mm/pmem: avoid inserting hugepage PTE entry with fsdax if hugepage support is disabled +- vfio/pci: Handle concurrent vma faults +- arm64: dts: marvell: armada-37xx: Fix reg for standard variant of UART +- serial: mvebu-uart: correctly calculate minimal possible baudrate +- serial: mvebu-uart: do not allow changing baudrate when uartclk is not available +- ALSA: firewire-lib: Fix 'amdtp_domain_start()' when no AMDTP_OUT_STREAM stream is found +- powerpc/papr_scm: Make 'perf_stats' invisible if perf-stats unavailable +- powerpc/64s: Fix copy-paste data exposure into newly created tasks +- powerpc/papr_scm: Properly handle UUID types and API +- powerpc: Offline CPU in stop_this_cpu() +- serial: 8250: 8250_omap: Fix possible interrupt storm on K3 SoCs +- serial: 8250: 8250_omap: Disable RX interrupt after DMA enable +- selftests/ftrace: fix event-no-pid on 1-core machine +- leds: ktd2692: Fix an error handling path +- leds: as3645a: Fix error return code in as3645a_parse_node() +- ASoC: fsl_spdif: Fix unexpected interrupt after suspend +- ASoC: Intel: sof_sdw: add SOF_RT715_DAI_ID_FIX for AlderLake +- ASoC: atmel-i2s: Fix usage of capture and playback at the same time +- powerpc/powernv: Fix machine check reporting of async store errors +- extcon: max8997: Add missing modalias string +- extcon: sm5502: Drop invalid register write in sm5502_reg_data +- phy: ti: dm816x: Fix the error handling path in 'dm816x_usb_phy_probe() +- phy: uniphier-pcie: Fix updating phy parameters +- soundwire: stream: Fix test for DP prepare complete +- scsi: mpt3sas: Fix error return value in _scsih_expander_add() +- habanalabs: Fix an error handling path in 'hl_pci_probe()' +- mtd: rawnand: marvell: add missing clk_disable_unprepare() on error in marvell_nfc_resume() +- of: Fix truncation of memory sizes on 32-bit platforms +- ASoC: cs42l42: Correct definition of CS42L42_ADC_PDN_MASK +- iio: prox: isl29501: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: light: vcnl4035: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- serial: 8250: Actually allow UPF_MAGIC_MULTIPLIER baud rates +- staging: mt7621-dts: fix pci address for PCI memory range +- coresight: core: Fix use of uninitialized pointer +- staging: rtl8712: fix memory leak in rtl871x_load_fw_cb +- staging: rtl8712: fix error handling in r871xu_drv_init +- staging: gdm724x: check for overflow in gdm_lte_netif_rx() +- staging: gdm724x: check for buffer overflow in gdm_lte_multi_sdu_pkt() +- ASoC: fsl_spdif: Fix error handler with pm_runtime_enable +- iio: light: vcnl4000: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: magn: rm3100: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() +- iio: adc: ti-ads8688: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() +- iio: adc: mxs-lradc: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: adc: hx711: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: adc: at91-sama5d2: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- thunderbolt: Bond lanes only when dual_link_port != NULL in alloc_dev_default() +- eeprom: idt_89hpesx: Restore printing the unsupported fwnode name +- eeprom: idt_89hpesx: Put fwnode in matching case during ->probe() +- usb: dwc2: Don't reset the core after setting turnaround time +- usb: gadget: f_fs: Fix setting of device and driver data cross-references +- ASoC: mediatek: mtk-btcvsd: Fix an error handling path in 'mtk_btcvsd_snd_probe()' +- ASoC: rt5682-sdw: set regcache_cache_only false before reading RT5682_DEVICE_ID +- ASoC: rt5682: fix getting the wrong device id when the suspend_stress_test +- ASoC: rt715-sdw: use first_hw_init flag on resume +- ASoC: rt711-sdw: use first_hw_init flag on resume +- ASoC: rt700-sdw: use first_hw_init flag on resume +- ASoC: rt5682-sdw: use first_hw_init flag on resume +- ASoC: rt1308-sdw: use first_hw_init flag on resume +- ASoC: max98373-sdw: use first_hw_init flag on resume +- iommu/dma: Fix IOVA reserve dma ranges +- selftests: splice: Adjust for handler fallback removal +- s390: appldata depends on PROC_SYSCTL +- s390: enable HAVE_IOREMAP_PROT +- s390/irq: select HAVE_IRQ_EXIT_ON_IRQ_STACK +- iommu/amd: Fix extended features logging +- visorbus: fix error return code in visorchipset_init() +- fsi/sbefifo: Fix reset timeout +- fsi/sbefifo: Clean up correct FIFO when receiving reset request from SBE +- fsi: occ: Don't accept response from un-initialized OCC +- fsi: scom: Reset the FSI2PIB engine for any error +- fsi: core: Fix return of error values on failures +- mfd: rn5t618: Fix IRQ trigger by changing it to level mode +- mfd: mp2629: Select MFD_CORE to fix build error +- scsi: iscsi: Flush block work before unblock +- scsi: FlashPoint: Rename si_flags field +- leds: lp50xx: Put fwnode in error case during ->probe() +- leds: lm3697: Don't spam logs when probe is deferred +- leds: lm3692x: Put fwnode in any case during ->probe() +- leds: lm36274: Put fwnode in error case during ->probe() +- leds: lm3532: select regmap I2C API +- leds: class: The -ENOTSUPP should never be seen by user space +- tty: nozomi: Fix the error handling path of 'nozomi_card_init()' +- firmware: stratix10-svc: Fix a resource leak in an error handling path +- char: pcmcia: error out if 'num_bytes_read' is greater than 4 in set_protocol() +- staging: mmal-vchiq: Fix incorrect static vchiq_instance. +- mtd: rawnand: arasan: Ensure proper configuration for the asserted target +- mtd: partitions: redboot: seek fis-index-block in the right node +- perf scripting python: Fix tuple_set_u64() +- Input: hil_kbd - fix error return code in hil_dev_connect() +- ASoC: rsnd: tidyup loop on rsnd_adg_clk_query() +- backlight: lm3630a_bl: Put fwnode in error case during ->probe() +- ASoC: hisilicon: fix missing clk_disable_unprepare() on error in hi6210_i2s_startup() +- ASoC: rk3328: fix missing clk_disable_unprepare() on error in rk3328_platform_probe() +- iio: potentiostat: lmp91000: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() +- iio: cros_ec_sensors: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() +- iio: chemical: atlas: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: light: tcs3472: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: light: tcs3414: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: light: isl29125: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: magn: bmc150: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: magn: hmc5843: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: prox: as3935: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: prox: pulsed-light: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: prox: srf08: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: humidity: am2315: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: gyro: bmg160: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: adc: vf610: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: adc: ti-ads1015: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: accel: stk8ba50: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: accel: stk8312: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: accel: mxc4005: Fix overread of data and alignment issue. +- iio: accel: kxcjk-1013: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: accel: hid: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: accel: bma220: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: accel: bma180: Fix buffer alignment in iio_push_to_buffers_with_timestamp() +- iio: adis16475: do not return ints in irq handlers +- iio: adis16400: do not return ints in irq handlers +- iio: adis_buffer: do not return ints in irq handlers +- mwifiex: re-fix for unaligned accesses +- tty: nozomi: Fix a resource leak in an error handling function +- serial: 8250_omap: fix a timeout loop condition +- serial: fsl_lpuart: remove RTSCTS handling from get_mctrl() +- serial: fsl_lpuart: don't modify arbitrary data on lpuart32 +- rcu: Invoke rcu_spawn_core_kthreads() from rcu_spawn_gp_kthread() +- ASoC: rt5682: Disable irq on shutdown +- staging: fbtft: Don't spam logs when probe is deferred +- staging: fbtft: Rectify GPIO handling +- MIPS: Fix PKMAP with 32-bit MIPS huge page support +- RDMA/core: Always release restrack object +- RDMA/mlx5: Don't access NULL-cleared mpi pointer +- net: tipc: fix FB_MTU eat two pages +- net: sched: fix warning in tcindex_alloc_perfect_hash +- net: lwtunnel: handle MTU calculation in forwading +- writeback: fix obtain a reference to a freeing memcg css +- clk: si5341: Update initialization magic +- clk: si5341: Check for input clock presence and PLL lock on startup +- clk: si5341: Avoid divide errors due to bogus register contents +- clk: si5341: Wait for DEVICE_READY on startup +- clk: qcom: clk-alpha-pll: fix CAL_L write in alpha_pll_fabia_prepare +- clk: actions: Fix AHPPREDIV-H-AHB clock chain on Owl S500 SoC +- clk: actions: Fix bisp_factor_table based clocks on Owl S500 SoC +- clk: actions: Fix SD clocks factor table on Owl S500 SoC +- clk: actions: Fix UART clock dividers on Owl S500 SoC +- Bluetooth: Fix handling of HCI_LE_Advertising_Set_Terminated event +- Bluetooth: Fix Set Extended (Scan Response) Data +- Bluetooth: Fix not sending Set Extended Scan Response +- Bluetooth: mgmt: Fix slab-out-of-bounds in tlv_data_is_valid +- Revert "be2net: disable bh with spin_lock in be_process_mcc" +- gve: Fix swapped vars when fetching max queues +- RDMA/cma: Fix incorrect Packet Lifetime calculation +- bpfilter: Specify the log level for the kmsg message +- net: dsa: sja1105: fix NULL pointer dereference in sja1105_reload_cbs() +- e1000e: Check the PCIm state +- ipv6: fix out-of-bound access in ip6_parse_tlv() +- net: atlantic: fix the macsec key length +- net: phy: mscc: fix macsec key length +- net: macsec: fix the length used to copy the key for offloading +- RDMA/cma: Protect RMW with qp_mutex +- ibmvnic: free tx_pool if tso_pool alloc fails +- ibmvnic: set ltb->buff to NULL after freeing +- Revert "ibmvnic: remove duplicate napi_schedule call in open function" +- i40e: Fix missing rtnl locking when setting up pf switch +- i40e: Fix autoneg disabling for non-10GBaseT links +- i40e: Fix error handling in i40e_vsi_open +- bpf: Do not change gso_size during bpf_skb_change_proto() +- can: j1939: j1939_sk_setsockopt(): prevent allocation of j1939 filter for optlen == 0 +- ipv6: exthdrs: do not blindly use init_net +- net: bcmgenet: Fix attaching to PYH failed on RPi 4B +- mac80211: remove iwlwifi specific workaround NDPs of null_response +- drm/msm/dpu: Fix error return code in dpu_mdss_init() +- drm/msm: Fix error return code in msm_drm_init() +- bpf: Fix null ptr deref with mixed tail calls and subprogs +- ieee802154: hwsim: avoid possible crash in hwsim_del_edge_nl() +- ieee802154: hwsim: Fix memory leak in hwsim_add_one +- tc-testing: fix list handling +- net: ti: am65-cpsw-nuss: Fix crash when changing number of TX queues +- net/ipv4: swap flow ports when validating source +- ip6_tunnel: fix GRE6 segmentation +- vxlan: add missing rcu_read_lock() in neigh_reduce() +- rtw88: 8822c: fix lc calibration timing +- iwlwifi: increase PNVM load timeout +- xfrm: Fix xfrm offload fallback fail case +- pkt_sched: sch_qfq: fix qfq_change_class() error path +- netfilter: nf_tables_offload: check FLOW_DISSECTOR_KEY_BASIC in VLAN transfer logic +- tls: prevent oversized sendfile() hangs by ignoring MSG_MORE +- net: sched: add barrier to ensure correct ordering for lockless qdisc +- vrf: do not push non-ND strict packets with a source LLA through packet taps again +- net: ethernet: ezchip: fix error handling +- net: ethernet: ezchip: fix UAF in nps_enet_remove +- net: ethernet: aeroflex: fix UAF in greth_of_remove +- mt76: mt7615: fix NULL pointer dereference in tx_prepare_skb() +- mt76: fix possible NULL pointer dereference in mt76_tx +- samples/bpf: Fix the error return code of xdp_redirect's main() +- samples/bpf: Fix Segmentation fault for xdp_redirect command +- RDMA/rtrs-srv: Set minimal max_send_wr and max_recv_wr +- bpf: Fix libelf endian handling in resolv_btfids +- xsk: Fix broken Tx ring validation +- xsk: Fix missing validation for skb and unaligned mode +- selftests/bpf: Whitelist test_progs.h from .gitignore +- RDMA/rxe: Fix qp reference counting for atomic ops +- netfilter: nft_tproxy: restrict support to TCP and UDP transport protocols +- netfilter: nft_osf: check for TCP packet before further processing +- netfilter: nft_exthdr: check for IPv6 packet before further processing +- RDMA/mlx5: Don't add slave port to unaffiliated list +- netlabel: Fix memory leak in netlbl_mgmt_add_common +- ath11k: send beacon template after vdev_start/restart during csa +- ath10k: Fix an error code in ath10k_add_interface() +- ath11k: Fix an error handling path in ath11k_core_fetch_board_data_api_n() +- cw1200: Revert unnecessary patches that fix unreal use-after-free bugs +- brcmsmac: mac80211_if: Fix a resource leak in an error handling path +- brcmfmac: Fix a double-free in brcmf_sdio_bus_reset +- brcmfmac: correctly report average RSSI in station info +- brcmfmac: fix setting of station info chains bitmask +- ssb: Fix error return code in ssb_bus_scan() +- wcn36xx: Move hal_buf allocation to devm_kmalloc in probe +- clk: imx8mq: remove SYS PLL 1/2 clock gates +- ieee802154: hwsim: Fix possible memory leak in hwsim_subscribe_all_others +- wireless: carl9170: fix LEDS build errors & warnings +- ath10k: add missing error return code in ath10k_pci_probe() +- ath10k: go to path err_unsupported when chip id is not supported +- tools/bpftool: Fix error return code in do_batch() +- drm: qxl: ensure surf.data is ininitialized +- clk: vc5: fix output disabling when enabling a FOD +- drm/vc4: hdmi: Fix error path of hpd-gpios +- drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends +- RDMA/rxe: Fix failure during driver load +- drm/pl111: depend on CONFIG_VEXPRESS_CONFIG +- RDMA/core: Sanitize WQ state received from the userspace +- net/sched: act_vlan: Fix modify to allow 0 +- xfrm: remove the fragment check for ipv6 beet mode +- clk: tegra30: Use 300MHz for video decoder by default +- ehea: fix error return code in ehea_restart_qps() +- RDMA/rtrs-clt: Fix memory leak of not-freed sess->stats and stats->pcpu_stats +- RDMA/rtrs-clt: Check if the queue_depth has changed during a reconnection +- RDMA/rtrs-srv: Fix memory leak when having multiple sessions +- RDMA/rtrs-srv: Fix memory leak of unfreed rtrs_srv_stats object +- RDMA/rtrs: Do not reset hb_missed_max after re-connection +- RDMA/rtrs-clt: Check state of the rtrs_clt_sess before reading its stats +- RDMA/srp: Fix a recently introduced memory leak +- mptcp: generate subflow hmac after mptcp_finish_join() +- mptcp: fix pr_debug in mptcp_token_new_connect +- drm/rockchip: cdn-dp: fix sign extension on an int multiply for a u64 result +- drm/rockchip: lvds: Fix an error handling path +- drm/rockchip: dsi: move all lane config except LCDC mux to bind() +- drm/rockchip: cdn-dp-core: add missing clk_disable_unprepare() on error in cdn_dp_grf_write() +- drm: rockchip: set alpha_en to 0 if it is not used +- net: ftgmac100: add missing error return code in ftgmac100_probe() +- clk: meson: g12a: fix gp0 and hifi ranges +- net: qrtr: ns: Fix error return code in qrtr_ns_init() +- drm/vmwgfx: Fix cpu updates of coherent multisample surfaces +- drm/vmwgfx: Mark a surface gpu-dirty after the SVGA3dCmdDXGenMips command +- pinctrl: renesas: r8a77990: JTAG pins do not have pull-down capabilities +- pinctrl: renesas: r8a7796: Add missing bias for PRESET# pin +- net: pch_gbe: Propagate error from devm_gpio_request_one() +- net: mvpp2: Put fwnode in error case during ->probe() +- video: fbdev: imxfb: Fix an error message +- drm/ast: Fix missing conversions to managed API +- drm/amd/dc: Fix a missing check bug in dm_dp_mst_detect() +- drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() +- drm/bridge/sii8620: fix dependency on extcon +- xfrm: xfrm_state_mtu should return at least 1280 for ipv6 +- mm: memcg/slab: properly set up gfp flags for objcg pointer array +- mm/shmem: fix shmem_swapin() race with swapoff +- swap: fix do_swap_page() race with swapoff +- mm/debug_vm_pgtable: ensure THP availability via has_transparent_hugepage() +- mm/debug_vm_pgtable/basic: iterate over entire protection_map[] +- mm/debug_vm_pgtable/basic: add validation for dirtiness after write protect +- dax: fix ENOMEM handling in grab_mapping_entry() +- ocfs2: fix snprintf() checking +- blk-mq: update hctx->dispatch_busy in case of real scheduler +- cpufreq: Make cpufreq_online() call driver->offline() on errors +- ACPI: bgrt: Fix CFI violation +- ACPI: Use DEVICE_ATTR_ macros +- extcon: extcon-max8997: Fix IRQ freeing at error path +- clocksource/drivers/timer-ti-dm: Save and restore timer TIOCP_CFG +- mark pstore-blk as broken +- ACPI: sysfs: Fix a buffer overrun problem with description_show() +- nvme-pci: look for StorageD3Enable on companion ACPI device instead +- block: avoid double io accounting for flush request +- ACPI: PM / fan: Put fan device IDs into separate header file +- PM / devfreq: Add missing error code in devfreq_add_device() +- media: video-mux: Skip dangling endpoints +- media: v4l2-async: Clean v4l2_async_notifier_add_fwnode_remote_subdev +- psi: Fix race between psi_trigger_create/destroy +- crypto: nx - Fix RCU warning in nx842_OF_upd_status +- spi: spi-sun6i: Fix chipselect/clock bug +- lockdep/selftests: Fix selftests vs PROVE_RAW_LOCK_NESTING +- lockdep: Fix wait-type for empty stack +- sched/uclamp: Fix uclamp_tg_restrict() +- sched/rt: Fix Deadline utilization tracking during policy change +- sched/rt: Fix RT utilization tracking during policy change +- x86/sev: Split up runtime #VC handler for correct state tracking +- x86/sev: Make sure IRQs are disabled while GHCB is active +- btrfs: clear log tree recovering status if starting transaction fails +- regulator: hi655x: Fix pass wrong pointer to config.driver_data +- KVM: arm64: Don't zero the cycle count register when PMCR_EL0.P is set +- perf/arm-cmn: Fix invalid pointer when access dtc object sharing the same IRQ number +- KVM: x86/mmu: Fix return value in tdp_mmu_map_handle_target_level() +- KVM: nVMX: Don't clobber nested MMU's A/D status on EPTP switch +- KVM: nVMX: Ensure 64-bit shift when checking VMFUNC bitmap +- KVM: nVMX: Sync all PGDs on nested transition with shadow paging +- hwmon: (max31790) Fix fan speed reporting for fan7..12 +- hwmon: (max31722) Remove non-standard ACPI device IDs +- hwmon: (lm70) Revert "hwmon: (lm70) Add support for ACPI" +- hwmon: (lm70) Use device_get_match_data() +- media: s5p-g2d: Fix a memory leak on ctx->fh.m2m_ctx +- media: subdev: remove VIDIOC_DQEVENT_TIME32 handling +- arm64/mm: Fix ttbr0 values stored in struct thread_info for software-pan +- arm64: consistently use reserved_pg_dir +- mmc: usdhi6rol0: fix error return code in usdhi6_probe() +- crypto: sm2 - fix a memory leak in sm2 +- crypto: sm2 - remove unnecessary reset operations +- crypto: x86/curve25519 - fix cpu feature checking logic in mod_exit +- crypto: omap-sham - Fix PM reference leak in omap sham ops +- crypto: nitrox - fix unchecked variable in nitrox_register_interrupts +- regulator: fan53880: Fix vsel_mask setting for FAN53880_BUCK +- media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2() +- m68k: atari: Fix ATARI_KBD_CORE kconfig unmet dependency warning +- media: gspca/gl860: fix zero-length control requests +- media: tc358743: Fix error return code in tc358743_probe_of() +- media: au0828: fix a NULL vs IS_ERR() check +- media: exynos4-is: Fix a use after free in isp_video_release +- media: rkvdec: Fix .buf_prepare +- locking/lockdep: Reduce LOCKDEP dependency list +- pata_ep93xx: fix deferred probing +- media: rc: i2c: Fix an error message +- crypto: ccp - Fix a resource leak in an error handling path +- crypto: sa2ul - Fix pm_runtime enable in sa_ul_probe() +- crypto: sa2ul - Fix leaks on failure paths with sa_dma_init() +- x86/elf: Use _BITUL() macro in UAPI headers +- evm: fix writing /evm overflow +- pata_octeon_cf: avoid WARN_ON() in ata_host_activate() +- kbuild: Fix objtool dependency for 'OBJECT_FILES_NON_STANDARD_ := n' +- sched/uclamp: Fix locking around cpu_util_update_eff() +- sched/uclamp: Fix wrong implementation of cpu.uclamp.min +- media: I2C: change 'RST' to "RSET" to fix multiple build errors +- pata_rb532_cf: fix deferred probing +- sata_highbank: fix deferred probing +- crypto: ux500 - Fix error return code in hash_hw_final() +- crypto: ixp4xx - update IV after requests +- crypto: ixp4xx - dma_unmap the correct address +- media: hantro: do a PM resume earlier +- media: s5p_cec: decrement usage count if disabled +- media: venus: Rework error fail recover logic +- spi: Avoid undefined behaviour when counting unused native CSs +- spi: Allow to have all native CSs in use along with GPIOs +- writeback, cgroup: increment isw_nr_in_flight before grabbing an inode +- ia64: mca_drv: fix incorrect array size calculation +- kthread_worker: fix return value when kthread_mod_delayed_work() races with kthread_cancel_delayed_work_sync() +- block: fix discard request merge +- mailbox: qcom: Use PLATFORM_DEVID_AUTO to register platform device +- cifs: fix missing spinlock around update to ses->status +- HID: wacom: Correct base usage for capacitive ExpressKey status bits +- ACPI: tables: Add custom DSDT file as makefile prerequisite +- tpm_tis_spi: add missing SPI device ID entries +- clocksource: Check per-CPU clock synchronization when marked unstable +- clocksource: Retry clock read if long delays detected +- ACPI: EC: trust DSDT GPE for certain HP laptop +- cifs: improve fallocate emulation +- PCI: hv: Add check for hyperv_initialized in init_hv_pci_drv() +- EDAC/Intel: Do not load EDAC driver when running as a guest +- nvmet-fc: do not check for invalid target port in nvmet_fc_handle_fcp_rqst() +- nvme-pci: fix var. type for increasing cq_head +- platform/x86: toshiba_acpi: Fix missing error code in toshiba_acpi_setup_keyboard() +- platform/x86: asus-nb-wmi: Revert "add support for ASUS ROG Zephyrus G14 and G15" +- platform/x86: asus-nb-wmi: Revert "Drop duplicate DMI quirk structures" +- block: fix race between adding/removing rq qos and normal IO +- ACPI: resources: Add checks for ACPI IRQ override +- ACPI: bus: Call kobject_put() in acpi_init() error path +- ACPICA: Fix memory leak caused by _CID repair function +- fs: dlm: fix memory leak when fenced +- drivers: hv: Fix missing error code in vmbus_connect() +- open: don't silently ignore unknown O-flags in openat2() +- random32: Fix implicit truncation warning in prandom_seed_state() +- fs: dlm: cancel work sync othercon +- blk-mq: clear stale request in tags->rq[] before freeing one request pool +- blk-mq: grab rq->refcount before calling ->fn in blk_mq_tagset_busy_iter +- ACPI: EC: Make more Asus laptops use ECDT _GPE +- platform/x86: touchscreen_dmi: Add info for the Goodix GT912 panel of TM800A550L tablets +- platform/x86: touchscreen_dmi: Add an extra entry for the upside down Goodix touchscreen on Teclast X89 tablets +- Input: goodix - platform/x86: touchscreen_dmi - Move upside down quirks to touchscreen_dmi.c +- lib: vsprintf: Fix handling of number field widths in vsscanf +- hv_utils: Fix passing zero to 'PTR_ERR' warning +- ACPI: processor idle: Fix up C-state latency if not ordered +- EDAC/ti: Add missing MODULE_DEVICE_TABLE +- HID: do not use down_interruptible() when unbinding devices +- ACPI: video: use native backlight for GA401/GA502/GA503 +- media: Fix Media Controller API config checks +- regulator: da9052: Ensure enough delay time for .set_voltage_time_sel +- regulator: mt6358: Fix vdram2 .vsel_mask +- KVM: s390: get rid of register asm usage +- lockding/lockdep: Avoid to find wrong lock dep path in check_irq_usage() +- locking/lockdep: Fix the dep path printing for backwards BFS +- btrfs: disable build on platforms having page size 256K +- btrfs: don't clear page extent mapped if we're not invalidating the full page +- btrfs: sysfs: fix format string for some discard stats +- btrfs: abort transaction if we fail to update the delayed inode +- btrfs: fix error handling in __btrfs_update_delayed_inode +- KVM: PPC: Book3S HV: Fix TLB management on SMT8 POWER9 and POWER10 processors +- drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe() +- hwmon: (max31790) Fix pwmX_enable attributes +- hwmon: (max31790) Report correct current pwm duty cycles +- media: imx-csi: Skip first few frames from a BT.656 source +- media: siano: fix device register error path +- media: dvb_net: avoid speculation from net slot +- crypto: shash - avoid comparing pointers to exported functions under CFI +- spi: meson-spicc: fix memory leak in meson_spicc_probe +- spi: meson-spicc: fix a wrong goto jump for avoiding memory leak. +- mmc: via-sdmmc: add a check against NULL pointer dereference +- mmc: sdhci-sprd: use sdhci_sprd_writew +- memstick: rtsx_usb_ms: fix UAF +- media: dvd_usb: memory leak in cinergyt2_fe_attach +- Makefile: fix GDB warning with CONFIG_RELR +- media: st-hva: Fix potential NULL pointer dereferences +- media: bt8xx: Fix a missing check bug in bt878_probe +- media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release +- media: cedrus: Fix .buf_prepare +- media: hantro: Fix .buf_prepare +- media: em28xx: Fix possible memory leak of em28xx struct +- media: bt878: do not schedule tasklet when it is not setup +- media: i2c: ov2659: Use clk_{prepare_enable,disable_unprepare}() to set xvclk on/off +- sched/fair: Fix ascii art by relpacing tabs +- arm64: perf: Convert snprintf to sysfs_emit +- crypto: qce: skcipher: Fix incorrect sg count for dma transfers +- crypto: qat - remove unused macro in FW loader +- crypto: qat - check return code of qat_hal_rd_rel_reg() +- media: imx: imx7_mipi_csis: Fix logging of only error event counters +- media: pvrusb2: fix warning in pvr2_i2c_core_done +- media: hevc: Fix dependent slice segment flags +- media: cobalt: fix race condition in setting HPD +- media: cpia2: fix memory leak in cpia2_usb_probe +- media: sti: fix obj-$(config) targets +- crypto: nx - add missing MODULE_DEVICE_TABLE +- hwrng: exynos - Fix runtime PM imbalance on error +- sched/core: Initialize the idle task with preemption disabled +- regulator: uniphier: Add missing MODULE_DEVICE_TABLE +- spi: omap-100k: Fix the length judgment problem +- spi: spi-topcliff-pch: Fix potential double free in pch_spi_process_messages() +- spi: spi-loopback-test: Fix 'tx_buf' might be 'rx_buf' +- media: exynos-gsc: fix pm_runtime_get_sync() usage count +- media: exynos4-is: fix pm_runtime_get_sync() usage count +- media: sti/bdisp: fix pm_runtime_get_sync() usage count +- media: sunxi: fix pm_runtime_get_sync() usage count +- media: s5p-jpeg: fix pm_runtime_get_sync() usage count +- media: mtk-vcodec: fix PM runtime get logic +- media: sh_vou: fix pm_runtime_get_sync() usage count +- media: am437x: fix pm_runtime_get_sync() usage count +- media: s5p: fix pm_runtime_get_sync() usage count +- media: mdk-mdp: fix pm_runtime_get_sync() usage count +- media: marvel-ccic: fix some issues when getting pm_runtime +- staging: media: rkvdec: fix pm_runtime_get_sync() usage count +- Add a reference to ucounts for each cred +- spi: Make of_register_spi_device also set the fwnode +- thermal/cpufreq_cooling: Update offline CPUs per-cpu thermal_pressure +- fuse: reject internal errno +- fuse: check connected before queueing on fpq->io +- fuse: ignore PG_workingset after stealing +- fuse: Fix infinite loop in sget_fc() +- fuse: Fix crash if superblock of submount gets killed early +- fuse: Fix crash in fuse_dentry_automount() error path +- evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded +- loop: Fix missing discard support when using LOOP_CONFIGURE +- powerpc/stacktrace: Fix spurious "stale" traces in raise_backtrace_ipi() +- seq_buf: Make trace_seq_putmem_hex() support data longer than 8 +- tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing +- tracing/histograms: Fix parsing of "sym-offset" modifier +- rsi: fix AP mode with WPA failure due to encrypted EAPOL +- rsi: Assign beacon rate settings to the correct rate_info descriptor field +- ssb: sdio: Don't overwrite const buffer if block_write fails +- ath9k: Fix kernel NULL pointer dereference during ath_reset_internal() +- serial_cs: remove wrong GLOBETROTTER.cis entry +- serial_cs: Add Option International GSM-Ready 56K/ISDN modem +- serial: sh-sci: Stop dmaengine transfer in sci_stop_tx() +- serial: mvebu-uart: fix calculation of clock divisor +- iio: accel: bma180: Fix BMA25x bandwidth register values +- iio: ltr501: ltr501_read_ps(): add missing endianness conversion +- iio: ltr501: ltr559: fix initialization of LTR501_ALS_CONTR +- iio: ltr501: mark register holding upper 8 bits of ALS_DATA{0,1} and PS_DATA as volatile, too +- iio: light: tcs3472: do not free unallocated IRQ +- iio: frequency: adf4350: disable reg and clk on error in adf4350_probe() +- rtc: stm32: Fix unbalanced clk_disable_unprepare() on probe error path +- clk: agilex/stratix10: fix bypass representation +- clk: agilex/stratix10: remove noc_clk +- clk: agilex/stratix10/n5x: fix how the bypass_reg is handled +- f2fs: Prevent swap file in LFS mode +- s390: mm: Fix secure storage access exception handling +- s390/cio: dont call css_wait_for_slow_path() inside a lock +- KVM: x86/mmu: Use MMU's role to detect CR4.SMEP value in nested NPT walk +- KVM: x86/mmu: Treat NX as used (not reserved) for all !TDP shadow MMUs +- KVM: PPC: Book3S HV: Workaround high stack usage with clang +- KVM: nVMX: Handle split-lock #AC exceptions that happen in L2 +- mm/gup: fix try_grab_compound_head() race with split_huge_page() +- bus: mhi: Wait for M2 state during system resume +- mac80211: remove iwlwifi specific workaround that broke sta NDP tx +- can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in TX path +- can: j1939: j1939_sk_init(): set SOCK_RCU_FREE to call sk_destruct() after RCU is done +- can: isotp: isotp_release(): omit unintended hrtimer restart on socket release +- can: gw: synchronize rcu operations before removing gw job entry +- can: bcm: delay release of struct bcm_op after synchronize_rcu() +- ext4: use ext4_grp_locked_error in mb_find_extent +- ext4: fix avefreec in find_group_orlov +- ext4: remove check for zero nr_to_scan in ext4_es_scan() +- ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit +- ext4: return error code when ext4_fill_flex_info() fails +- ext4: fix overflow in ext4_iomap_alloc() +- ext4: fix kernel infoleak via ext4_extent_header +- btrfs: clear defrag status of a root if starting transaction fails +- btrfs: compression: don't try to compress if we don't have enough pages +- btrfs: send: fix invalid path for unlink operations after parent orphanization +- ARM: dts: at91: sama5d4: fix pinctrl muxing +- ARM: dts: ux500: Fix LED probing +- crypto: ccp - Annotate SEV Firmware file names +- crypto: nx - Fix memcpy() over-reading in nonce +- Input: joydev - prevent use of not validated data in JSIOCSBTNMAP ioctl +- iov_iter_fault_in_readable() should do nothing in xarray case +- copy_page_to_iter(): fix ITER_DISCARD case +- selftests/lkdtm: Avoid needing explicit sub-shell +- ntfs: fix validity check for file name attribute +- gfs2: Fix error handling in init_statfs +- gfs2: Fix underflow in gfs2_page_mkwrite +- xhci: solve a double free problem while doing s4 +- usb: typec: Add the missed altmode_id_remove() in typec_register_altmode() +- usb: dwc3: Fix debugfs creation flow +- USB: cdc-acm: blacklist Heimann USB Appset device +- usb: renesas-xhci: Fix handling of unknown ROM state +- usb: gadget: eem: fix echo command packet response issue +- net: can: ems_usb: fix use-after-free in ems_usb_disconnect() +- Input: usbtouchscreen - fix control-request directions +- media: dvb-usb: fix wrong definition +- ALSA: hda/realtek: fix mute/micmute LEDs for HP EliteBook 830 G8 Notebook PC +- ALSA: hda/realtek: Apply LED fixup for HP Dragonfly G1, too +- ALSA: hda/realtek: Fix bass speaker DAC mapping for Asus UM431D +- ALSA: hda/realtek: Improve fixup for HP Spectre x360 15-df0xxx +- ALSA: hda/realtek: fix mute/micmute LEDs for HP EliteBook x360 830 G8 +- ALSA: hda/realtek: Add another ALC236 variant support +- ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 630 G8 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 445 G8 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 450 G8 +- ALSA: intel8x0: Fix breakage at ac97 clock measurement +- ALSA: usb-audio: scarlett2: Fix wrong resume call +- ALSA: firewire-motu: fix stream format for MOTU 8pre FireWire +- ALSA: usb-audio: Fix OOB access at proc output +- ALSA: usb-audio: fix rate on Ozone Z90 USB headset +- Bluetooth: Remove spurious error message +- Bluetooth: btqca: Don't modify firmware contents in-place +- Bluetooth: hci_qca: fix potential GPF +- Revert "evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded" +- configfs: fix memleak in configfs_release_bin_file +- init: only move down lockup_detector_init() when sdei_watchdog is enabled +- arm64: fix AUDIT_ARCH_AARCH64ILP32 bug on audit subsystem +- ext4: cleanup in-core orphan list if ext4_truncate() failed to get a transaction handle +- ext4: fix WARN_ON_ONCE(!buffer_uptodate) after an error writing the superblock +- tty/serial/imx: Enable TXEN bit in imx_poll_init(). +- xen/events: reset active flag for lateeoi events later +- Hexagon: change jumps to must-extend in futex_atomic_* +- Hexagon: add target builtins to kernel +- Hexagon: fix build errors +- media: uvcvideo: Support devices that report an OT as an entity source +- KVM: PPC: Book3S HV: Save and restore FSCR in the P9 path +- ubifs: Remove ui_mutex in ubifs_xattr_get and change_xattr +- ubifs: Fix races between xattr_{set|get} and listxattr operations +- block: stop wait rcu once we can ensure no io while elevator init +- writeback: don't warn on an unregistered BDI in __mark_inode_dirty +- mm/page_isolation: do not isolate the max order page +- mm/zswap: fix passing zero to 'PTR_ERR' warning +- mm/page_alloc: speed up the iteration of max_order +- mm: hugetlb: fix type of delta parameter and related local variables in gather_surplus_pages() +- mm: vmalloc: prevent use after free in _vm_unmap_aliases +- arm32: kaslr: Fix the bitmap error +- net: make sure devices go through netdev_wait_all_refs +- net: fib_notifier: don't return positive values on fib registration +- netfilter: nftables: avoid potential overflows on 32bit arches +- netfilter: Dissect flow after packet mangling +- net: fix a concurrency bug in l2tp_tunnel_register() +- ext4: fix possible UAF when remounting r/o a mmp-protected file system +- SUNRPC: Should wake up the privileged task firstly. +- SUNRPC: Fix the batch tasks count wraparound. +- Revert "KVM: x86/mmu: Drop kvm_mmu_extended_role.cr4_la57 hack" +- RDMA/mlx5: Block FDB rules when not in switchdev mode +- gpio: AMD8111 and TQMX86 require HAS_IOPORT_MAP +- drm/nouveau: fix dma_address check for CPU/GPU sync +- gpio: mxc: Fix disabled interrupt wake-up support +- scsi: sr: Return appropriate error code when disk is ejected +- arm64: seccomp: fix compilation error with ILP32 support +- scsi: sd: block: Fix regressions in read-only block device handling +- integrity: Load mokx variables into the blacklist keyring +- certs: Add ability to preload revocation certs +- certs: Move load_system_certificate_list to a common function +- certs: Add EFI_CERT_X509_GUID support for dbx entries +- Revert "drm: add a locked version of drm_is_current_master" +- netfs: fix test for whether we can skip read when writing beyond EOF +- swiotlb: manipulate orig_addr when tlb_addr has offset +- KVM: SVM: Call SEV Guest Decommission if ASID binding fails +- mm, futex: fix shared futex pgoff on shmem huge page +- mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() +- mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes +- mm: page_vma_mapped_walk(): get vma_address_end() earlier +- mm: page_vma_mapped_walk(): use goto instead of while (1) +- mm: page_vma_mapped_walk(): add a level of indentation +- mm: page_vma_mapped_walk(): crossing page table boundary +- mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block +- mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd +- mm: page_vma_mapped_walk(): settle PageHuge on entry +- mm: page_vma_mapped_walk(): use page for pvmw->page +- mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split +- mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page() +- mm/thp: fix page_address_in_vma() on file THP tails +- mm/thp: fix vma_address() if virtual address below file offset +- mm/thp: try_to_unmap() use TTU_SYNC for safe splitting +- mm/thp: make is_huge_zero_pmd() safe and quicker +- mm/thp: fix __split_huge_pmd_locked() on shmem migration entry +- mm, thp: use head page in __migration_entry_wait() +- mm/rmap: use page_not_mapped in try_to_unmap() +- mm/rmap: remove unneeded semicolon in page_not_mapped() +- mm: add VM_WARN_ON_ONCE_PAGE() macro +- x86/fpu: Make init_fpstate correct with optimized XSAVE +- x86/fpu: Preserve supervisor states in sanitize_restored_user_xstate() +- kthread: prevent deadlock when kthread_mod_delayed_work() races with kthread_cancel_delayed_work_sync() +- kthread_worker: split code for canceling the delayed work timer +- ceph: must hold snap_rwsem when filling inode for async create +- i2c: robotfuzz-osif: fix control-request directions +- KVM: do not allow mapping valid but non-reference-counted pages +- s390/stack: fix possible register corruption with stack switch helper +- nilfs2: fix memory leak in nilfs_sysfs_delete_device_group +- gpiolib: cdev: zero padding during conversion to gpioline_info_changed +- i2c: i801: Ensure that SMBHSTSTS_INUSE_STS is cleared when leaving i801_access +- pinctrl: stm32: fix the reported number of GPIO lines per bank +- perf/x86: Track pmu in per-CPU cpu_hw_events +- net: ll_temac: Avoid ndo_start_xmit returning NETDEV_TX_BUSY +- net: ll_temac: Add memory-barriers for TX BD access +- PCI: Add AMD RS690 quirk to enable 64-bit DMA +- recordmcount: Correct st_shndx handling +- mac80211: handle various extensible elements correctly +- mac80211: reset profile_periodicity/ema_ap +- net: qed: Fix memcpy() overflow of qed_dcbx_params() +- KVM: selftests: Fix kvm_check_cap() assertion +- r8169: Avoid memcpy() over-reading of ETH_SS_STATS +- sh_eth: Avoid memcpy() over-reading of ETH_SS_STATS +- r8152: Avoid memcpy() over-reading of ETH_SS_STATS +- net/packet: annotate accesses to po->ifindex +- net/packet: annotate accesses to po->bind +- net: caif: fix memory leak in ldisc_open +- riscv32: Use medany C model for modules +- net: phy: dp83867: perform soft reset and retain established link +- net/packet: annotate data race in packet_sendmsg() +- inet: annotate date races around sk->sk_txhash +- net: annotate data race in sock_error() +- ping: Check return value of function 'ping_queue_rcv_skb' +- inet: annotate data race in inet_send_prepare() and inet_dgram_connect() +- net: ethtool: clear heap allocations for ethtool function +- mac80211: drop multicast fragments +- net: ipv4: Remove unneed BUG() function +- dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma +- dmaengine: mediatek: do not issue a new desc if one is still current +- dmaengine: mediatek: free the proper desc in desc_free handler +- dmaengine: rcar-dmac: Fix PM reference leak in rcar_dmac_probe() +- cfg80211: call cfg80211_leave_ocb when switching away from OCB +- mac80211_hwsim: drop pending frames on stop +- mac80211: remove warning in ieee80211_get_sband() +- dmaengine: xilinx: dpdma: Limit descriptor IDs to 16 bits +- dmaengine: xilinx: dpdma: Add missing dependencies to Kconfig +- dmaengine: stm32-mdma: fix PM reference leak in stm32_mdma_alloc_chan_resourc() +- dmaengine: zynqmp_dma: Fix PM reference leak in zynqmp_dma_alloc_chan_resourc() +- perf/x86/intel/lbr: Zero the xstate buffer on allocation +- perf/x86/lbr: Remove cpuc->lbr_xsave allocation from atomic context +- locking/lockdep: Improve noinstr vs errors +- x86/xen: Fix noinstr fail in exc_xen_unknown_trap() +- x86/entry: Fix noinstr fail in __do_fast_syscall_32() +- drm/vc4: hdmi: Make sure the controller is powered in detect +- drm/vc4: hdmi: Move the HSM clock enable to runtime_pm +- Revert "PCI: PM: Do not read power state in pci_enable_device_flags()" +- spi: spi-nxp-fspi: move the register operation after the clock enable +- arm64: Ignore any DMA offsets in the max_zone_phys() calculation +- MIPS: generic: Update node names to avoid unit addresses +- mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk +- ARM: 9081/1: fix gcc-10 thumb2-kernel regression +- drm/amdgpu: wait for moving fence after pinning +- drm/radeon: wait for moving fence after pinning +- drm/nouveau: wait for moving fence after pinning v2 +- drm: add a locked version of drm_is_current_master +- Revert "drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell." +- Revert "drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue." +- module: limit enabling module.sig_enforce + +* Wed Oct 13 2021 Zheng Zengkai - 5.10.0-9.0.0.3 +- scsi: core: Treat device offline as a failure +- blk-wbt: make sure throttle is enabled properly +- blk-wbt: introduce a new disable state to prevent false positive by rwb_enabled() +- arm64: fpsimd: run kernel mode NEON with softirqs disabled +- arm64: assembler: introduce wxN aliases for wN registers +- arm64: assembler: remove conditional NEON yield macros +- crypto: arm64/crc-t10dif - move NEON yield to C code +- crypto: arm64/aes-ce-mac - simplify NEON yield +- crypto: arm64/aes-neonbs - remove NEON yield calls +- crypto: arm64/sha512-ce - simplify NEON yield +- crypto: arm64/sha3-ce - simplify NEON yield +- crypto: arm64/sha2-ce - simplify NEON yield +- crypto: arm64/sha1-ce - simplify NEON yield +- arm64: assembler: add cond_yield macro +- mm: fix page reference leak in soft_offline_page() +- block_dump: remove comments in docs +- block_dump: remove block_dump feature +- block_dump: remove block_dump feature in mark_inode_dirty() +- crypto: sun8i-ce - fix error return code in sun8i_ce_prng_generate() +- crypto: nx - add missing call to of_node_put() +- net: hns3: fix a return value error in hclge_get_reset_status() +- net: hns3: check vlan id before using it +- net: hns3: check queue id range before using +- net: hns3: fix misuse vf id and vport id in some logs +- net: hns3: fix inconsistent vf id print +- net: hns3: fix change RSS 'hfunc' ineffective issue +- net: hns3: fix the timing issue of VF clearing interrupt sources +- net: hns3: fix the exception when query imp info +- net: hns3: disable mac in flr process +- net: hns3: change affinity_mask to numa node range +- net: hns3: pad the short tunnel frame before sending to hardware +- net: hns3: make hclgevf_cmd_caps_bit_map0 and hclge_cmd_caps_bit_map0 static + +* Mon Oct 11 2021 Zheng Zengkai - 5.10.0-8.0.0.2 +- imans: Use initial ima namespace domain tag when IMANS is disabled. + +* Thu Sep 30 2021 Zheng Zengkai - 5.10.0-7.0.0.1 +- IOMMU: SMMUv2: Bypass SMMU in default for some SoCs +- arm64: phytium: using MIDR_PHYTIUM_FT2000PLUS instead of ARM_CPU_IMP_PHYTIUM +- arm64: Add MIDR encoding for PHYTIUM CPUs +- arm64: Add MIDR encoding for HiSilicon Taishan CPUs +- usb: xhci: Add workaround for phytium +- arm64: topology: Support PHYTIUM CPU +- hugetlb: pass head page to remove_hugetlb_page() +- userfaultfd: hugetlbfs: fix new flag usage in error path +- hugetlb: fix uninitialized subpool pointer +- percpu: flush tlb in pcpu_reclaim_populated() +- percpu: implement partial chunk depopulation +- percpu: use pcpu_free_slot instead of pcpu_nr_slots - 1 +- percpu: factor out pcpu_check_block_hint() +- percpu: split __pcpu_balance_workfn() +- percpu: fix a comment about the chunks ordering +- slub: fix kmalloc_pagealloc_invalid_free unit test +- slub: fix unreclaimable slab stat for bulk free +- net: hns3: remove unnecessary spaces +- net: hns3: add some required spaces +- net: hns3: clean up a type mismatch warning +- net: hns3: refine function hns3_set_default_feature() +- net: hns3: uniform parameter name of hclge_ptp_clean_tx_hwts() +- net: hnss3: use max() to simplify code +- net: hns3: modify a print format of hns3_dbg_queue_map() +- net: hns3: refine function hclge_dbg_dump_tm_pri() +- net: hns3: reconstruct function hclge_ets_validate() +- net: hns3: reconstruct function hns3_self_test +- net: hns3: initialize each member of structure array on a separate line +- net: hns3: add required space in comment +- net: hns3: remove unnecessary "static" of local variables in function +- net: hns3: don't config TM DWRR twice when set ETS +- net: hns3: add new function hclge_get_speed_bit() +- net: hns3: refactor function hclgevf_parse_capability() +- net: hns3: refactor function hclge_parse_capability() +- net: hns3: add trace event in hclge_gen_resp_to_vf() +- net: hns3: uniform type of function parameter cmd +- net: hns3: merge some repetitive macros +- net: hns3: package new functions to simplify hclgevf_mbx_handler code +- net: hns3: remove redundant param to simplify code +- net: hns3: use memcpy to simplify code +- net: hns3: remove redundant param mbx_event_pending +- net: hns3: add hns3_state_init() to do state initialization +- net: hns3: add macros for mac speeds of firmware command +- sched: bugfix setscheduler unlock cpuset_rwsem +- ima: fix db size overflow and Kconfig issues +- mm: page_poison: print page info when corruption is caught +- kasan: fix conflict with page poisoning +- mm: fix page_owner initializing issue for arm32 +- net: hns3: add ethtool support for CQE/EQE mode configuration +- net: hns3: add support for EQE/CQE mode configuration +- ethtool: extend coalesce setting uAPI with CQE mode +- ethtool: add two coalesce attributes for CQE mode +- ethtool: add ETHTOOL_COALESCE_ALL_PARAMS define +- net: hns3: fix get wrong pfc_en when query PFC configuration +- net: hns3: fix GRO configuration error after reset +- net: hns3: change the method of getting cmd index in debugfs +- net: hns3: fix duplicate node in VLAN list +- net: hns3: fix speed unknown issue in bond 4 +- net: hns3: add waiting time before cmdq memory is released +- net: hns3: clear hardware resource when loading driver +- net: hns3: make array spec_opcode static const, makes object smaller +- digest list: disable digest lists in non-root ima namespaces +- ima: Introduce ima-ns-sig template +- ima: fix a potential crash owing to the compiler optimisation +- ima: Set ML template per ima namespace +- ima: Add dummy boot aggregate to per ima namespace measurement list +- ima: Load per ima namespace x509 certificate +- integrity: Add key domain tag to the search criteria +- ima: Add key domain to the ima namespace +- keys: Allow to set key domain tag separately from the key type +- keys: Include key domain tag in the iterative search +- keys: Add domain tag to the keyring search criteria +- ima: Remap IDs of subject based rules if necessary +- user namespace: Add function that checks if the UID map is defined +- ima: Parse per ima namespace policy file +- ima: Configure the new ima namespace from securityfs +- ima: Change the owning user namespace of the ima namespace if necessary +- ima: Add the violation counter to the namespace +- ima: Extend permissions to the ima securityfs entries +- ima: Add a reader counter to the integrity inode data +- ima: Add per namespace view of the measurement list +- ima: Add a new ima template that includes namespace ID +- ima: Check ima namespace ID during digest entry lookup +- ima: Keep track of the measurment list per ima namespace +- ima: Add ima namespace id to the measurement list related structures +- ima: Enable per ima namespace policy settings +- ima: Add integrity inode related data to the ima namespace +- ima: Extend the APIs in the integrity subsystem +- ima: Add ima namespace to the ima subsystem APIs +- ima: Add methods for parsing ima policy configuration string +- ima: Add ima policy related data to the ima namespace +- ima: Bind ima namespace to the file descriptor +- ima: Add a list of the installed ima namespaces +- ima: Introduce ima namespace +- mm/page_alloc: further fix __alloc_pages_bulk() return value +- mm/page_alloc: correct return value when failing at preparing +- mm/page_alloc: avoid page allocator recursion with pagesets.lock held +- mm: vmscan: shrink deferred objects proportional to priority +- mm: memcontrol: reparent nr_deferred when memcg offline +- mm: vmscan: don't need allocate shrinker->nr_deferred for memcg aware shrinkers +- mm: vmscan: use per memcg nr_deferred of shrinker +- mm: vmscan: add per memcg shrinker nr_deferred +- mm: vmscan: use a new flag to indicate shrinker is registered +- mm: vmscan: add shrinker_info_protected() helper +- mm: memcontrol: rename shrinker_map to shrinker_info +- mm: vmscan: use kvfree_rcu instead of call_rcu +- mm: vmscan: remove memcg_shrinker_map_size +- mm: vmscan: use shrinker_rwsem to protect shrinker_maps allocation +- mm: vmscan: consolidate shrinker_maps handling code +- mm: vmscan: use nid from shrink_control for tracepoint +- scsi/hifc: Fix memory leakage bug +- crypto: hisilicon/qm - set a qp error flag for userspace +- vfio/hisilicon: add acc live migration driver +- vfio/hisilicon: modify QM for live migration driver +- vfio/pci: provide customized live migration VFIO driver framework +- PCI: Set dma-can-stall for HiSilicon chips +- PCI: Add a quirk to set pasid_no_tlp for HiSilicon chips +- PCI: PASID can be enabled without TLP prefix +- crypto: hisilicon/sec - fix the CTR mode BD configuration +- crypto: hisilicon/sec - fix the max length of AAD for the CCM mode +- crypto: hisilicon/sec - fixup icv checking enabled on Kunpeng 930 +- crypto: hisilicon - check _PS0 and _PR0 method +- crypto: hisilicon - change parameter passing of debugfs function +- crypto: hisilicon - support runtime PM for accelerator device +- crypto: hisilicon - add runtime PM ops +- crypto: hisilicon - using 'debugfs_create_file' instead of 'debugfs_create_regset32' +- crypto: hisilicon/sec - modify the hardware endian configuration +- crypto: hisilicon/sec - fix the abnormal exiting process +- crypto: hisilicon - enable hpre device clock gating +- crypto: hisilicon - enable sec device clock gating +- crypto: hisilicon - enable zip device clock gating +- crypto: hisilicon/sec - fix the process of disabling sva prefetching + +* Wed Sep 15 2021 Zheng Zengkai - 5.10.0-6.0.0.0 +- mm/page_alloc: correct return value of populated elements if bulk array is populated +- mm: fix oom killing for disabled pid +- X86/config: Enable CONFIG_USERSWAP +- eulerfs: change default config file +- eulerfs: add Kconfig and Makefile +- eulerfs: add super_operations and module_init/exit +- eulerfs: add inode_operations for symlink inode +- eulerfs: add file_operations for dir inode +- eulerfs: add inode_operations for dir inode and special inode +- eulerfs: add file operations and inode operations for regular file +- eulerfs: add dax operations +- eulerfs: add inode related interfaces +- eulerfs: add dependency operations +- eulerfs: add nv dict operations +- eulerfs: add filename interfaces +- eulerfs: add interfaces for page wear +- eulerfs: add interfaces for inode lock transfer +- eulerfs: add flush interfaces +- eulerfs: add memory allocation interfaces +- eulerfs: add kmeme_cache definitions and interfaces +- eulerfs: common definitions +- vfio/pci: Fix wrong return value when get iommu attribute DOMAIN_ATTR_NESTING +- net: hns3: remove always exist devlink pointer check +- net: hns3: add support ethtool extended link state +- net: hns3: add header file hns3_ethtoo.h +- ethtool: add two link extended substates of bad signal integrity +- docs: ethtool: Add two link extended substates of bad signal integrity +- net: hns3: add support for triggering reset by ethtool + +* Mon Aug 23 2021 ShiYuan HU - 5.10.0-5.3.0.19 +- check-kabi: check-kabi support python3 and python2 + +* Fri Aug 13 2021 Zheng Zengkai - 5.10.0-5.3.0.18 +- srcu: Take early exit on memory-allocation failure +- iommu: fix build error when CONFIG_IOMMU_API is off +- USB: Fix some clerical mistakes + +* Mon Aug 9 2021 Zheng Zengkai - 5.10.0-5.2.0.17 +- userswap: add a kernel parameter to enable userswap +- userfaultfd: fix BUG_ON() in userfaultfd_release() +- spi: hisi-kunpeng: Fix Woverflow warning on conversion +- spi: Add HiSilicon SPI Controller Driver for Kunpeng SoCs +- scsi: hisi_sas: Speed up error handling when internal abort timeout occurs +- scsi: hisi_sas: Reset controller for internal abort timeout +- scsi: hisi_sas: Include HZ in timer macros +- scsi: hisi_sas: Run I_T nexus resets in parallel for clear nexus reset +- scsi: hisi_sas: Put a limit of link reset retries +- scsi: libsas: Introduce more SAM status code aliases in enum exec_status +- scsi: hisi_sas: Propagate errors in interrupt_init_v1_hw() +- scsi: hisi_sas: Print SATA device SAS address for soft reset failure +- scsi: hisi_sas: Warn in v3 hw channel interrupt handler when status reg cleared +- scsi: hisi_sas: Directly snapshot registers when executing a reset +- scsi: hisi_sas: Call sas_unregister_ha() to roll back if .hw_init() fails +- scsi: hisi_sas: Print SAS address for v3 hw erroneous completion print +- scsi: hisi_sas: Delete some unused callbacks +- scsi: hisi_sas: Add trace FIFO debugfs support +- scsi: hisi_sas: Flush workqueue in hisi_sas_v3_remove() +- scsi: hisi_sas: Enable debugfs support by default +- scsi: hisi_sas: Don't check .nr_hw_queues in hisi_sas_task_prep() +- scsi: hisi_sas: Remove deferred probe check in hisi_sas_v2_probe() +- scsi: libsas: Remove temporarily-added _gfp() API variants +- scsi: mvsas: Switch back to original libsas event notifiers +- scsi: isci: Switch back to original libsas event notifiers +- scsi: libsas: Switch back to original event notifiers API +- scsi: pm80xx: Switch back to original libsas event notifiers +- scsi: aic94xx: Switch back to original libsas event notifiers +- scsi: hisi_sas: Switch back to original libsas event notifiers +- scsi: libsas: Add gfp_t flags parameter to event notifications +- scsi: hisi_sas: Pass gfp_t flags to libsas event notifiers +- scsi: aic94xx: Pass gfp_t flags to libsas event notifiers +- scsi: pm80xx: Pass gfp_t flags to libsas event notifiers +- scsi: libsas: Pass gfp_t flags to event notifiers +- scsi: hisi_sas: Remove auto_affine_msi_experimental module_param +- scsi: hisi_sas: Expose HW queues for v2 hw +- driver core: platform: Add devm_platform_get_irqs_affinity() +- ACPI: Drop acpi_dev_irqresource_disabled() +- resource: Add irqresource_disabled() +- genirq/affinity: Add irq_update_affinity_desc() +- mm: fix some spelling mistakes in comments +- scsi: hisi_sas: Remove preemptible() +- scsi: hisi_sas: Move debugfs code to v3 hw driver +- scsi: hisi_sas: Reduce some indirection in v3 hw driver +- scsi: hisi_sas_v3_hw: Remove extra function calls for runtime pm +- scsi: hisi_sas_v3_hw: Don't use PCI helper functions +- scsi: hisi_sas_v3_hw: Drop PCI Wakeup calls from .resume +- ACPI: APEI: fix synchronous external aborts in user-mode +- Revert "kretprobe: check re-registration of the same kretprobe earlier" +- i2c: add support for HiSilicon I2C controller +- i2c: core: add api to provide frequency mode strings +- i2c: core: add managed function for adding i2c adapters +- fs/buffer.c: add checking buffer head stat before clear +- watchdog: sbsa: Support architecture version 1 +- perf/smmuv3: Don't trample existing events with global filter +- arm_pmu: move to use request_irq by IRQF_NO_AUTOEN flag +- genirq: Add IRQF_NO_AUTOEN for request_irq/nmi() +- drivers/perf: hisi: Fix data source control +- perf/hisi: Use irq_set_affinity() +- perf/arm-smmuv3: Use irq_set_affinity() +- genirq: Export affinity setter for modules +- drivers/perf: hisi: Add support for HiSilicon PA PMU driver +- drivers/perf: hisi: Add support for HiSilicon SLLC PMU driver +- drivers/perf: hisi: Update DDRC PMU for programmable counter +- drivers/perf: hisi: Add new functions for HHA PMU +- drivers/perf: hisi: Add new functions for L3C PMU +- drivers/perf: hisi: Add PMU version for uncore PMU drivers. +- drivers/perf: hisi: Refactor code for more uncore PMUs +- drivers/perf: hisi: Remove unnecessary check of counter index +- driver/perf: Remove ARM_SMMU_V3_PMU dependency on ARM_SMMU_V3 +- drivers/perf: Add support for ARMv8.3-SPE +- perf/smmuv3: Support sysfs identifier file +- drivers/perf: hisi: Add identifier sysfs file +- net: hns3: change the method of obtaining default ptp cycle +- net: hns3: add devlink reload support for VF +- net: hns3: add devlink reload support for PF +- net: hns3: add support for devlink get info for VF +- net: hns3: add support for devlink get info for PF +- net: hns3: add support for registering devlink for VF +- net: hns3: add support for registering devlink for PF +- devlink: add documentation for hns3 driver +- seq_file: disallow extremely large seq buffer allocations + +* Tue Jul 27 2021 Zheng Zengkai - 5.10.0-5.1.0.16 +- config: enable kernel hotupgrade features by default +- pid: add pid reserve method for checkpoint and recover +- mm: add pin memory method for checkpoint add restore +- arm64: Add memmap parameter and register pmem +- arm64: smp: Add support for cpu park +- arm64: Reserve memory for quick kexec +- kexec: Add quick kexec support for kernel +- openeuler_defconfig: Enable CONFIG_SMMU_BYPASS_DEV by default +- iommu: Enable smmu-v3 when 3408iMR/3416iMRraid card exist +- net: hns3: fix rx VLAN offload state inconsistent issue +- net: hns3: disable port VLAN filter when support function level VLAN filter control +- net: hns3: add match_id to check mailbox response from PF to VF +- net: hns3: fix possible mismatches resp of mailbox +- iommu/arm-smmu-v3: Add support for less than one ECMDQ per core +- iommu/arm-smmu-v3: Add arm_smmu_ecmdq_issue_cmdlist() for non-shared ECMDQ +- iommu/arm-smmu-v3: Ensure that a set of associated commands are inserted in the same ECMDQ +- iommu/arm-smmu-v3: Add support for ECMDQ register mode +- iommu/arm-smmu-v3: Extract reusable function __arm_smmu_cmdq_skip_err() +- iommu/arm-smmu-v3: Add and use static helper function arm_smmu_get_cmdq() +- iommu/arm-smmu-v3: Add and use static helper function arm_smmu_cmdq_issue_cmd_with_sync() +- iommu/arm-smmu-v3: Use command queue batching helpers to improve performance +- sched: Add /debug/sched_preempt +- preempt/dynamic: Support dynamic preempt with preempt= boot option +- preempt/dynamic: Provide irqentry_exit_cond_resched() static call +- preempt/dynamic: Provide preempt_schedule[_notrace]() static calls +- preempt/dynamic: Provide cond_resched() and might_resched() static calls +- preempt: Introduce CONFIG_PREEMPT_DYNAMIC +- static_call: Provide DEFINE_STATIC_CALL_RET0() +- static_call/x86: Add __static_call_return0() +- openeuler_defconfig: Enable Phytium FT-2500 support by default +- irqchip/gic-phytium-2500: Add support for GIC of Phytium S2500 +- sched/fair: Merge select_idle_core/cpu() +- sched/fair: Remove select_idle_smt() +- sched/fair: Move avg_scan_cost calculations under SIS_PROP +- sched/fair: Remove SIS_AVG_CPU +- net: hns3: add support for dumping MAC umv counter in debugfs +- net: hns3: add support for FD counter in debugfs +- net: hns3: Fix a memory leak in an error handling path in 'hclge_handle_error_info_log()' +- net: hns3: fix different snprintf() limit +- net: hns3: fix reuse conflict of the rx page +- net: hns3: use bounce buffer when rx page can not be reused +- net: hns3: optimize the rx page reuse handling process +- net: hns3: support dma_map_sg() for multi frags skb +- net: hns3: add support to query tx spare buffer size for pf +- net: hns3: use tx bounce buffer for small packets +- net: hns3: refactor for hns3_fill_desc() function +- net: hns3: minor refactor related to desc_cb handling +- net: hns3: fix a double shift bug +- net: hns3: add debugfs support for ptp info +- net: hns3: add support for PTP +- net: hns3: use list_move_tail instead of list_del/list_add_tail in hclge_main.c +- net: hns3: use list_move_tail instead of list_del/list_add_tail in hclgevf_main.c +- net: hns3: add error handling compatibility during initialization +- net: hns3: update error recovery module and type +- net: hns3: add support for imp-handle ras capability +- net: hns3: add the RAS compatibility adaptation solution +- net: hns3: add support for handling all errors through MSI-X +- net: hns3: remove now redundant logic related to HNAE3_UNKNOWN_RESET +- net: hns3: add scheduling logic for error handling task +- net: hns3: add a separate error handling task +- net: hns3: add debugfs support for vlan configuration +- net: hns3: add support for VF modify VLAN filter state +- net: hns3: add query basic info support for VF +- net: hns3: add support for modify VLAN filter state +- net: hns3: refine function hclge_set_vf_vlan_cfg() +- net: hns3: remove unnecessary updating port based VLAN +- net: hns3: refine for hclge_push_vf_port_base_vlan_info() +- net: hns3: add 'QoS' support for port based VLAN configuration +- net: hns3: switch to dim algorithm for adaptive interrupt moderation +- net: hns3: use HCLGE_VPORT_STATE_PROMISC_CHANGE to replace HCLGE_STATE_PROMISC_CHANGED +- net: hns3: configure promisc mode for VF asynchronously +- net: hns3: Fix return of uninitialized variable ret +- net: hns3: remove the useless debugfs file node cmd +- net: hns3: refactor dump serv info of debugfs +- net: hns3: refactor dump mac tnl status of debugfs +- net: hns3: refactor dump qs shaper of debugfs +- net: hns3: refactor dump qos buf cfg of debugfs +- net: hns3: refactor dump qos pri map of debugfs +- net: hns3: refactor dump qos pause cfg of debugfs +- net: hns3: refactor dump tc of debugfs +- net: hns3: refactor dump tm of debugfs +- net: hns3: refactor dump tm map of debugfs +- net: hns3: refactor dump fd tcam of debugfs +- net: hns3: refactor queue info of debugfs +- net: hns3: refactor queue map of debugfs +- net: hns3: refactor dump reg dcb info of debugfs +- net: hns3: refactor dump reg of debugfs +- net: hns3: fix user's coalesce configuration lost issue +- net: hns3: refactor dump ncl config of debugfs +- net: hns3: refactor dump m7 info of debugfs +- net: hns3: refactor dump reset info of debugfs +- net: hns3: refactor dump intr of debugfs +- net: hns3: refactor dump loopback of debugfs +- net: hns3: refactor dump mng tbl of debugfs +- net: hns3: refactor dump mac list of debugfs +- net: hns3: refactor dump bd info of debugfs +- net: hns3: refactor dev capability and dev spec of debugfs +- net: hns3: refactor the debugfs process +- net: hns3: refactor out RX completion checksum +- net: hns3: support RXD advanced layout +- net: hns3: clear unnecessary reset request in hclge_reset_rebuild +- net: hns3: change the value of the SEPARATOR_VALUE macro in hclgevf_main.c +- net: hns3: cleanup inappropriate spaces in struct hlcgevf_tqp_stats +- net: hns3: remove a duplicate pf reset counting +- net: hns3: VF not request link status when PF support push link status feature +- net: hns3: PF add support for pushing link status to VFs +- net: hns3: Fix potential null pointer defererence of null ae_dev +- net: hns3: Trivial spell fix in hns3 driver +- net: hns3: add suspend and resume pm_ops +- net: hns3: change flr_prepare/flr_done function names +- net: hns3: Remove un-necessary 'else-if' in the hclge_reset_event() +- net: hns3: Remove the left over redundant check & assignment +- net: hns3: add stats logging when skb padding fails +- net: hns3: expand the tc config command +- net: hns3: add tx send size handling for tso skb +- net: hns3: optimize the process of queue reset +- net: hns3: remove the rss_size limitation by vector num +- net: hns3: fix use-after-free issue for hclge_add_fd_entry_common() +- net: hns3: fix missing rule state assignment +- net: hns3: no return statement in hclge_clear_arfs_rules +- net: hns3: split out hclge_tm_vport_tc_info_update() +- net: hns3: split function hclge_reset_rebuild() +- net: hns3: fix some typos in hclge_main.c +- net: hns3: fix prototype warning +- net: hns3: remove unused parameter from hclge_dbg_dump_loopback() +- net: hns3: remove unused parameter from hclge_set_vf_vlan_common() +- net: hns3: remove redundant query in hclge_config_tm_hw_err_int() +- net: hns3: remove redundant blank lines +- net: hns3: remove unused code of vmdq +- net: hns3: add support for user-def data of flow director +- net: hns3: refine for hns3_del_all_fd_entries() +- net: hns3: refactor flow director configuration +- net: hns3: add support for traffic class tuple support for flow director by ethtool +- net: hns3: refactor for function hclge_fd_convert_tuple +- net: hns3: refactor out hclge_fd_get_tuple() +- net: hns3: refactor out hclge_add_fd_entry() +- net: hns3: add phy loopback support for imp-controlled PHYs +- net: hns3: add ioctl support for imp-controlled PHYs +- net: hns3: add get/set pause parameters support for imp-controlled PHYs +- net: hns3: add support for imp-controlled PHYs +- net: hns3: use pause capability queried from firmware +- net: hns3: use FEC capability queried from firmware +- net: hns3: refactor out hclge_rm_vport_all_mac_table() +- net: hns3: refactor out hclgevf_set_rss_tuple() +- net: hns3: refactor out hclge_set_rss_tuple() +- net: hns3: split out hclgevf_cmd_send() +- net: hns3: split out hclge_cmd_send() +- net: hns3: split out hclge_dbg_dump_qos_buf_cfg() +- net: hns3: refactor out hclgevf_get_rss_tuple() +- net: hns3: refactor out hclge_get_rss_tuple() +- net: hns3: refactor out hclge_set_vf_vlan_common() +- net: hns3: use ipv6_addr_any() helper +- net: hns3: clean up hns3_dbg_cmd_write() +- net: hns3: refactor out hclgevf_cmd_convert_err_code() +- net: hns3: refactor out hclge_cmd_convert_err_code() +- net: hns3: fix return of random stack value +- net: hns3: cleanup for endian issue for VF RSS +- net: hns3: remove unused macro definition +- net: hns3: remove an unused parameter in hclge_vf_rate_param_check() +- net: hns3: remove redundant return value of hns3_uninit_all_ring() +- net: hns3: change hclge_query_bd_num() param type +- net: hns3: change hclge_parse_speed() param type +- net: hns3: modify some unmacthed types print parameter +- net: hns3: clean up unnecessary parentheses in macro definitions +- net: hns3: remove the shaper param magic number +- net: hns3: remove redundant client_setup_tc handle +- net: hns3: clean up some incorrect variable types in hclge_dbg_dump_tm_map() +- net: hns3: replace macro of max qset number with specification +- net: hns3: debugfs add max tm rate specification print +- net: hns3: add support for obtaining the maximum frame size +- net: hns3: optimize the code when update the tc info +- net: hns3: RSS indirection table use device specification +- net: hns3: add api capability bits for firmware +- net: hns3: remove redundant null check of an array +- net: hns3: add debugfs support for tm nodes, priority and qset info +- net: hns3: add interfaces to query information of tm priority/qset +- x86/perf: Add uncore performance monitor support for Zhaoxin CPUs +- iommu/vt-d:Add support for detecting ACPI device, in RMRR +- USB:Fix kernel NULL pointer when unbind UHCI form vfio-pci +- xhci: fix issue with resume from system Sx state +- xhci: Adjust the UHCI Controllers bit value +- ALSA: hda: Add support of Zhaoxin NB HDAC codec +- ALSA: hda: Add support of Zhaoxin NB HDAC +- ALSA: hda: Add Zhaoxin SB HDAC non snoop +- xhci: Show Zhaoxin XHCI root hub speed correctly +- xhci: fix issue of cross page boundary in TRB prefetch +- xhci: Add Zhaoxin xHCI LPM U1/U2 feature support +- ata: sata_zhaoxin: Add support for Zhaoxin Serial ATA +- crypto: x86/crc32c-intel - Don't match some Zhaoxin CPUs +- Add MCA supprot for X86_VENDOR_CENTAUR CPUs +- Add support for extended topology detection +- Get locgical processors numbers bits per package +- ima: fix CONFIG_IMA_DIGEST_DB_MEGABYTES in openeuler_defconfig +- usb: gadget: rndis: Fix info leak of rndis +- crypto: hisilicon/qm - implement for querying hardware tasks status. +- crypto: hisilicon/sec - Fix spelling mistake "fallbcak" -> "fallback" +- crypto: hisilicon/zip - adds the max shaper type rate +- crypto: hisilicon/hpre - adds the max shaper type rate +- crypto: hisilicon/sec - adds the max shaper type rate +- crypto: hisilicon/qm - supports to inquiry each function's QoS +- crypto: hisilicon/qm - add pf ping single vf function +- crypto: hisilicon/qm - merges the work initialization process into a single function +- crypto: hisilicon/qm - add the "alg_qos" file node +- crypto: hisilicon/qm - supports writing QoS int the host +- uacce: add print information if not enable sva +- crypto: hisilicon/sec - modify the SEC request structure +- crypto: hisilicon/sec - add hardware integrity check value process +- crypto: hisilicon/sec - add fallback tfm supporting for aeads +- crypto: hisilicon/sec - add new algorithm mode for AEAD +- crypto: hisilicon/qm - update reset flow +- crypto: hisilicon/qm - add callback to support communication +- crypto: hisilicon/qm - enable PF and VFs communication +- crypto: hisilicon/qm - adjust reset interface +- crypto: hisilicon/hpre - register ecdh NIST P384 +- crypto: hisilicon/hpre - add check before gx modulo p +- crypto: hisilicon/hpre - fix ecdh self test issue +- crypto: hisilicon/sec - fixup 3des minimum key size declaration +- crypto: hisilicon/sec - add fallback tfm supporting for XTS mode +- crypto: hisilicon/sec - add new skcipher mode for SEC +- crypto: hisilicon/sec - driver adapt to new SQE +- crypto: hisilicon/sec - add new type of SQE +- crypto: hisilicon - switch to memdup_user_nul() +- crypto: ecdh - add test suite for NIST P384 +- crypto: ecdh - register NIST P384 tfm +- crypto: ecdh - fix 'ecdh_init' +- crypto: ecdh - fix ecdh-nist-p192's entry in testmgr +- crypto: hisilicon/qm - support address prefetching +- crypto: hisilicon/qm - add MSI detection steps on Kunpeng930 +- crypto: hisilicon/qm - fix the process of VF's list adding +- crypto: hisilicon/qm - add dfx log if not use hardware crypto algs +- crypto: hisilicon/qm - enable to close master ooo when NFE occurs +- crypto: hisilicon/qm - adjust order of device error configuration +- crypto: hisilicon/qm - modify 'QM_RESETTING' clearing error +- crypto: hisilicon/qm - initialize the device before doing tasks +- crypto: hisilicon/hpre - add 'default' for switch statement +- crypto: hisilicon/hpre - delete rudundant macro definition +- crypto: hisilicon/hpre - use 'GENMASK' to generate mask value +- crypto: hisilicon/hpre - delete rudundant initialization +- crypto: hisilicon/hpre - remove the macro of 'HPRE_DEV' +- crypto: hisilicon/hpre - replace macro with inline function +- crypto: hisilicon/hpre - init a structure member each line +- crypto: hisilicon/hpre - the macro 'HPRE_ADDR' expands +- crypto: hisilicon/hpre - fix unmapping invalid dma address +- crypto: hisilicon/hpre - extend 'cra_driver_name' with curve name +- crypto: ecdh - extend 'cra_driver_name' with curve name +- crypto: testmgr - fix initialization of 'secret_size' +- crypto: hisilicon - enable new error types for QM +- crypto: hisilicon - add new error type for SEC +- crypto: hisilicon - support new error types for ZIP +- crypto: hisilicon - dynamic configuration 'err_info' +- crypto: hisilicon/hpre - delete redundant log and return in advance +- crypto: hisilicon/hpre - add debug log +- crypto: hisilicon/hpre - use the correct variable type +- crypto: hisilicon/hpre - delete the rudundant space after return +- crypto: hisilicon/sgl - fix the sg buf unmap +- crypto: hisilicon/sgl - fix the soft sg map to hardware sg +- crypto: hisilicon/sgl - add some dfx logs +- crypto: hisilicon/sgl - delete unneeded variable initialization +- crypto: hisilicon/sgl - add a comment for block size initialization +- crypto: hisilicon/sec - use the correct print format +- crypto: hisilicon/trng - add version to adapt new algorithm +- crypto: hisilicon/qm - add stop queue by hardware +- crypto: ecc - delete a useless function declaration +- crypto: hisilicon/qm - delete redundant code +- crypto: hisilicon/sec - fixup checking the 3DES weak key +- crypto: hisilicon/hpre - fix a typo in hpre_crypto.c +- crypto: hisilicon/sec - Fix a module parameter error +- crypto: hisilicon/sec - Fixes AES algorithm mode parameter problem +- crypto: hisilicon/hpre - Add processing of src_data in 'CURVE25519' +- crypto: hisilicon/hpre - delete redundant '\n' +- crypto: hisilicon/hpre - fix a typo and delete redundant blank line +- crypto: hisilicon/hpre - fix PASID setting on kunpeng 920 +- crypto: hisilicon/zip - support new 'sqe' type in Kunpeng930 +- crypto: hisilicon/zip - initialize operations about 'sqe' in 'acomp_alg.init' +- crypto: hisilicon/zip - add comments for 'hisi_zip_sqe' +- crypto: hisilicon/zip - adjust functions location +- uacce: delete unneeded variable initialization +- crypto: hisilicon - use the correct HiSilicon copyright +- crypto: hisilicon/qm - add queue isolation support for Kunpeng930 +- crypto: hisilicon/qm - set the number of queues for function +- crypto: hisilicon/qm - move 'CURRENT_QM' code to qm.c +- crypto: hisilicon/qm - set the total number of queues +- crypto: hisilicon/hpre - fix Kconfig +- crypto: hisilicon/hpre - fix "hpre_ctx_init" resource leak +- crypto: hisilicon - fix the check on dma address +- crypto: hisilicon/hpre - optimise 'hpre_algs_register' error path +- crypto: hisilicon/hpre - delete wrap of 'CONFIG_CRYPTO_DH' +- crypto: ecc - Correct an error in the comments +- crypto: hisilicon/sec - Supply missing description for 'sec_queue_empty()'s 'queue' param +- crypto: ecdsa - Register NIST P384 and extend test suite +- crypto: ecc - Add math to support fast NIST P384 +- crypto: ecc - Add NIST P384 curve parameters +- crypto: ecdsa - Add support for ECDSA signature verification +- oid_registry: Add OIDs for ECDSA with SHA224/256/384/512 +- crypto: hisilicon/sec - fixes some driver coding style +- crypto: hisilicon/sec - fixes some coding style +- crypto: hisilicon/hpre - add 'CURVE25519' algorithm +- crypto: hisilicon/hpre - add 'ECDH' algorithm +- crypto: ecc - add curve25519 params and expose them +- crypto: ecc - expose ecc curves +- crypto: ecdh - move curve_id of ECDH from the key to algorithm name +- crypto: hisilicon/hpre - add algorithm type +- crypto: hisilicon/hpre - add version adapt to new algorithms +- crypto: hisilicon/qm - fix printing format issue +- crypto: hisilicon/qm - do not reset hardware when CE happens +- crypto: hisilicon/qm - update irqflag +- crypto: hisilicon/qm - fix the value of 'QM_SQC_VFT_BASE_MASK_V2' +- crypto: hisilicon/qm - fix request missing error +- crypto: hisilicon/qm - removing driver after reset +- crypto: hisilicon/hpre - enable Elliptic curve cryptography +- crypto: hisilicon - PASID fixed on Kunpeng 930 +- crypto: hisilicon/qm - fix use of 'dma_map_single' +- crypto: hisilicon/hpre - tiny fix +- crypto: hisilicon/hpre - adapt the number of clusters +- crypto: hisilicon/hpre - add ecc algorithm inqury for uacce device +- crypto: hisilicon/hpre - add two RAS correctable errors processing +- crypto: hisilicon/hpre - delete ECC 1bit error reported threshold +- crypto: hisilicon/sec - register SEC device to uacce +- crypto: hisilicon/hpre - register HPRE device to uacce +- crypto: hisilicon - add ZIP device using mode parameter +- crypto: hisilicon/qm - SVA bugfixed on Kunpeng920 +- crypto: hisilicon/trng - replace atomic_add_return() +- crypto: hisilicon/trng - add support for PRNG +- crypto: hisilicon/trng - add HiSilicon TRNG driver support +- hwrng: hisi - remove HiSilicon TRNG driver +- crypto: hisilicon/zip - add a work_queue for zip irq +- crypto: sha - split sha.h into sha1.h and sha2.h +- uacce: modify the module author information. +- uacce: delete some redundant code. +- crypto: hisilicon/sec2 - Fix aead authentication setting key error +- crypto: hisilicon/qm - split 'hisi_qm_init' into smaller pieces +- crypto: hisilicon/qm - split 'qm_eq_ctx_cfg' into smaller pieces +- crypto: hisilicon/qm - split 'qm_qp_ctx_cfg' into smaller pieces +- crypto: hisilicon/qm - replace 'sprintf' with 'scnprintf' +- crypto: hisilicon/qm - modify return type of 'qm_set_sqctype' +- crypto: hisilicon/qm - modify the return type of debugfs interface +- crypto: hisilicon/qm - modify the return type of function +- crypto: hisilicon/qm - numbers are replaced by macros +- crypto: hisilicon - fixes some coding style +- crypto: hisilicon - delete unused structure member variables +- crypto: hisilicon - Fix doc warnings in sgl.c and qm.c +- RDMA/hns: Add window selection field of congestion control +- RDMA/hns: Fix incorrect vlan enable bit in QPC +- RDMA/hns: Add vendor_err info to error WC +- RDMA/hns: Fix spelling mistakes of original +- RDMA/hns: Simplify the judgment in hns_roce_v2_post_send() +- RDMA/hns: Encapsulate flushing CQE as a function +- RDMA/hns: Modify function return value type +- RDMA/hns: Clean definitions of EQC structure +- RDMA/hns: Delete unnecessary branch of hns_roce_v2_query_qp +- RDMA/hns: Add member assignments for qp_init_attr +- RDMA/hns: Fix some print issues +- RDMA/hns: Fix uninitialized variable +- RDMA/hns: Force rewrite inline flag of WQE +- RDMA/hns: Use IDA interface to manage xrcd index +- RDMA/hns: Use IDA interface to manage pd index +- RDMA/hns: Use IDA interface to manage mtpt index +- RDMA/hns: Remove unused RR mechanism +- RDMA/hns: Remove the unused hns_roce_bitmap_free_range function +- RDMA/hns: Remove the unused hns_roce_bitmap_alloc_range function +- RDMA/hns: Clean SRQC structure definition +- RDMA/hns: Use new interface to write DB related fields +- RDMA/hns: Use new interface to write FRMR fields +- RDMA/hns: Use new interface to get CQE fields +- RDMA/hns: Use new interface to modify QP context +- RDMA/hns: Use new interface to write CQ context. +- RDMA/hns: Add hr_reg_write_bool() +- RDMA/hns: Add a check to ensure integer mtu is positive +- RDMA/hns: Do not use !! for values that are already bool when calling hr_reg_write() +- RDMA/hns: Clear extended doorbell info before using +- RDMA/hns: Support getting max QP number from firmware +- RDMA/hns: Use refcount_t instead of atomic_t for QP reference counting +- RDMA/hns: Use refcount_t instead of atomic_t for SRQ reference counting +- RDMA/hns: Use refcount_t instead of atomic_t for CQ reference counting +- RDMA/hns: Refactor capability configuration flow of VF +- RDMA/hns: Clean the hardware related code for HEM +- RDMA/hns: Use refcount_t APIs for HEM +- RDMA/hns: Fix wrong timer context buffer page size +- RDMA/hns: Refactor root BT allocation for MTR +- RDMA/hns: Remove unused CMDQ member +- RDMA/hns: Remove Receive Queue of CMDQ +- RDMA/hns: Rename CMDQ head/tail pointer to PI/CI +- RDMA/hns: Refactor extend link table allocation +- RDMA/hns: Remove unused parameter udata +- RDMA/hns: Remove the condition of light load for posting DWQE +- RDMA/hns: Remove duplicated hem page size config code +- RDMA/hns: Enable RoCE on virtual functions +- RDMA/hns: Set parameters of all the functions belong to a PF +- RDMA/hns: Reserve the resource for the VFs +- RDMA/hns: Query the number of functions supported by the PF +- RDMA/hns: Simplify function's resource related command +- RDMA/hns: Remove unnecessary flush operation for workqueue +- RDMA/hns: Prevent le32 from being implicitly converted to u32 +- RDMA/hns: Simplify the function config_eqc() +- RDMA/hns: Add XRC subtype in QPC and XRC type in SRQC +- RDMA/hns: Remove unsupported QP types +- RDMA/hns: Delete unused members in the structure hns_roce_hw +- RDMA/hns: Delete redundant abnormal interrupt status +- RDMA/hns: Delete redundant condition judgment related to eq +- RDMA/hns: Fix missing assignment of max_inline_data +- RDMA/hns: Avoid enabling RQ inline on UD +- RDMA/hns: Modify prints for mailbox and command queue +- RDMA/hns: Support more return types of command queue +- RDMA/hns: Enable all CMDQ context +- RDMA/hns: Use GFP_ATOMIC under spin lock +- RDMA/hns: Reorganize doorbell update interfaces for all queues +- RDMA/hns: Support configuring doorbell mode of RQ and CQ +- RDMA/hns: Simplify command fields for HEM base address configuration +- RDMA/hns: Reorganize process of setting HEM +- RDMA/hns: Refactor reset state checking flow +- RDMA/hns: Reorganize hns_roce_create_cq() +- RDMA/hns: Refactor hns_roce_v2_poll_one() +- RDMA/hns: Support congestion control type selection according to the FW +- RDMA/hns: Support query information of functions from FW +- RDMA/hns: Fix a spelling mistake in hns_roce_hw_v1.c +- RDMA/hns: Support to query firmware version +- RDMA/hns: Fix memory corruption when allocating XRCDN +- RDMA/hns: Fix bug during CMDQ initialization +- RDMA/hns: Add support for XRC on HIP09 +- RDMA/hns: Use new SQ doorbell register for HIP09 +- RDMA/hns: Adjust definition of FRMR fields +- RDMA/hns: Refactor process of posting CMDQ +- RDMA/hns: Adjust fields and variables about CMDQ tail/head +- RDMA/hns: Remove redundant operations on CMDQ +- RDMA/hns: Remove unused member and variable of CMDQ +- RDMA/hns: Delete redundant judgment when preparing descriptors +- RDMA/hns: Remove unnecessary wrap around for EQ's consumer index +- RDMA/hns: Avoid unnecessary memset on WQEs in post_send +- RDMA/hns: Remove some magic numbers +- RDMA/hns: Move HIP06 related definitions into hns_roce_hw_v1.h +- RDMA/hns: Replace wmb&__raw_writeq with writeq +- RDMA/hns: Skip qp_flow_control_init() for HIP09 +- RDMA/hns: Add mapped page count checking for MTR +- RDMA/hns: Avoid filling sgid index when modifying QP to RTR +- RDMA/hns: Add support of direct wqe +- RDMA/hns: Add verification of QP type when post_recv +- RDMA/hns: Refactor hns_roce_v2_post_srq_recv() +- RDMA/hns: Clear remaining unused sges when post_recv +- RDMA/hns: Refactor post recv flow +- RDMA/hns: Use new interfaces to write SRQC +- RDMA/hns: Refactor code about SRQ Context +- RDMA/hns: Refactor hns_roce_create_srq() +- RDMA/hns: Remove the reserved WQE of SRQ +- RDMA/hns: Force srq_limit to 0 when creating SRQ +- RDMA/hns: Bugfix for checking whether the srq is full when post wr +- RDMA/hns: Allocate one more recv SGE for HIP08 +- RDMA/hns: Use new interface to set MPT related fields +- RDMA/hns: Optimize the MR registration process +- RDMA/hns: Refactor the MTR creation flow +- RDMA/hw/hns/hns_roce_mr: Add missing description for 'hr_dev' param +- RDMA/hw/hns/hns_roce_hw_v1: Fix doc-rot issue relating to 'rereset' +- RDMA/hns: Use mutex instead of spinlock for ida allocation +- RDMA/hns: Create CQ with selected CQN for bank load balance +- RDMA/hns: remove h from printk format specifier +- RDMA/hns: Simplify AEQE process for different types of queue +- RDMA/hns: Fix inaccurate prints +- RDMA/hns: Fix incorrect symbol types +- RDMA/hns: Clear redundant variable initialization +- RDMA/hns: Fix coding style issues +- RDMA/hns: Remove unnecessary access right set during INIT2INIT +- RDMA/hns: WARN_ON if get a reserved sl from users +- RDMA/hns: Move capability flags of QP and CQ to hns-abi.h +- RDMA/hns: Refactor process of setting extended sge +- RDMA/hns: Add support for QP stash +- RDMA/hns: Add support for CQ stash +- RDMA/hns: Create QP with selected QPN for bank load balance +- RDMA/hns: Add UD support for HIP09 +- RDMA/hns: Simplify process of filling UD SQ WQE +- RDMA/hns: Remove the portn field in UD SQ WQE +- RDMA/hns: Refactor the hns_roce_buf allocation flow +- RDMA/hns: Add new PCI device ID matching for HIP09 +- RDMA/hns: Support owner mode doorbell +- RDMA/hns: Fix double free of the pointer to TSQ/TPQ +- RDMA/hns: Add support for filling GMV table +- RDMA/hns: Add support for configuring GMV table +- iommu/arm-smmu-v3: Remove the redundant shift operation of 'size' +- iommu/arm-smmu-v3: Standardize granule size when support RIL +- iommu/arm-smmu-v3: Align invalid range with leaf page size upwards when support RIL +- iommu/arm-smmu-v3: Change the TLBI CMD in arm_smmu_cache_invalidate() +- iommu/io-pgtable-arm: Remove the limitation on the page table format of sync/clear_dirty_log() +- iommu/io-pgtable-arm: Make data access permissions of stage1/2 compatible +- iommu/arm-smmu-v3: Using HTTU with SMMU STE and stage 2 TTD +- vfio/pci: Inject page response upon response region fill +- vfio/pci: Register a DMA fault response region +- vfio: Document nested stage control +- vfio/pci: Register and allow DMA FAULT IRQ signaling +- vfio: Add new IRQ for DMA fault reporting +- vfio/pci: Add framework for custom interrupt indices +- vfio: Use capability chains to handle device specific irq +- vfio/pci: Allow to mmap the fault queue +- vfio/pci: Register an iommu fault handler +- vfio/pci: Add VFIO_REGION_TYPE_NESTED region type +- vfio: VFIO_IOMMU_SET_MSI_BINDING +- vfio: VFIO_IOMMU_CACHE_INVALIDATE +- vfio: VFIO_IOMMU_SET_PASID_TABLE +- iommu/smmuv3: report additional recoverable faults +- iommu/smmuv3: Implement bind/unbind_guest_msi +- iommu/smmuv3: Enforce incompatibility between nested mode and HW MSI regions +- iommu/smmuv3: Nested mode single MSI doorbell per domain enforcement +- dma-iommu: Implement NESTED_MSI cookie +- iommu/smmuv3: Implement cache_invalidate +- iommu/smmuv3: Allow stage 1 invalidation with unmanaged ASIDs +- iommu/smmuv3: Implement attach/detach_pasid_table +- iommu/smmuv3: Get prepared for nested stage support +- iommu/smmuv3: Allow s1 and s2 configs to coexist +- iommu: Introduce bind/unbind_guest_msi +- iommu: Introduce attach/detach_pasid_table API +- config: Enable CONFIG_USERSWAP +- userswap: support userswap via userfaultfd +- userswap: add a new flag 'MAP_REPLACE' for mmap() +- ima: don't allow control characters in policy path +- ima: Add max size for IMA digest database +- net: hns3: replace skb->csum_not_inet with skb_csum_is_sctp +- net: ixgbevf: use skb_csum_is_sctp instead of protocol check +- net: ixgbe: use skb_csum_is_sctp instead of protocol check +- net: igc: use skb_csum_is_sctp instead of protocol check +- net: igbvf: use skb_csum_is_sctp instead of protocol check +- net: igb: use skb_csum_is_sctp instead of protocol check +- net: add inline function skb_csum_is_sctp +- net: hns3: fix expression that is currently always true +- net: hns3: adjust rss tc mode configure command +- net: hns3: adjust rss indirection table configure command +- net: hns3: add support for max 512 rss size +- net: hns3: add support for hw tc offload of tc flower +- net: hns3: add support for forwarding packet to queues of specified TC when flow director rule hit +- net: hns3: add support for tc mqprio offload +- net: hns3: refine the struct hane3_tc_info +- hisilicon/hns3: convert comma to semicolon +- net: use the new dev_page_is_reusable() instead of private versions +- net: introduce common dev_page_is_reusable() +- skbuff: constify skb_propagate_pfmemalloc() "page" argument +- mm: constify page_is_pfmemalloc() argument +- net: hns3: refine the VLAN tag handle for port based VLAN +- net: hns3: add priv flags support to switch limit promisc mode +- net: hns3: add support for extended promiscuous command +- KVM: arm64: GICv4.1: Give a chance to save VLPI state +- KVM: arm64: GICv4.1: Restore VLPI pending state to physical side +- KVM: arm64: GICv4.1: Try to save VLPI state in save_pending_tables +- KVM: arm64: GICv4.1: Add function to get VLPI state +- irqchip/gic-v3-its: Drop the setting of PTZ altogether +- irqchip/gic-v3-its: Add a cache invalidation right after vPE unmapping +- net: hns3: keep MAC pause mode when multiple TCs are enabled +- net: hns3: add a check for devcie's verion in hns3_tunnel_csum_bug() +- net: hns3: add more info to hns3_dbg_bd_info() +- net: hns3: add udp tunnel checksum segmentation support +- net: hns3: remove unsupported NETIF_F_GSO_UDP_TUNNEL_CSUM +- net: hns3: add support for TX hardware checksum offload +- net: hns3: add support for RX completion checksum +- vfio/iommu_type1: Add support for manual dirty log clear +- vfio/iommu_type1: Optimize dirty bitmap population based on iommu HWDBM +- vfio/iommu_type1: Add HWDBM status maintenance +- iommu/arm-smmu-v3: Realize support_dirty_log iommu ops +- iommu/arm-smmu-v3: Realize clear_dirty_log iommu ops +- iommu/arm-smmu-v3: Realize sync_dirty_log iommu ops +- iommu/arm-smmu-v3: Realize switch_dirty_log iommu ops +- iommu/arm-smmu-v3: Add feature detection for BBML +- iommu/arm-smmu-v3: Enable HTTU for stage1 with io-pgtable mapping +- iommu/io-pgtable-arm: Add and realize clear_dirty_log ops +- iommu/io-pgtable-arm: Add and realize sync_dirty_log ops +- iommu/io-pgtable-arm: Add and realize merge_page ops +- iommu/io-pgtable-arm: Add and realize split_block ops +- iommu/io-pgtable-arm: Add quirk ARM_HD and ARM_BBMLx +- iommu: Introduce dirty log tracking framework +- vfio/iommu_type1: Mantain a counter for non_pinned_groups +- fs/filescontrol.c: fix warning:large integer implicitly truncated to unsigned type +- irqchip/gic-v4.1: Reduce the delay when polling GICR_VPENDBASER.Dirty +- KVM: arm64: Delay the polling of the GICR_VPENDBASER.Dirty bit +- KVM: arm64: Make use of TWED feature +- arm64: cpufeature: TWED support detection +- move ETMEM feature CONFIG to mm/Kconfig and add architecture dependency +- x86/config: Set CONFIG_TXGBE=m by default +- net: txgbe: Add support for Netswift 10G NIC +- net: hns3: fix spelling mistake "memroy" -> "memory" +- net: hns3: adds debugfs to dump more info of shaping parameters +- net: hns3: add support to utilize the firmware calculated shaping parameters +- net: hns3: add support for pf querying new interrupt resources +- net: hns3: add support for mapping device memory +- net: hns3: add support for 1280 queues +- net: hns3: rename gl_adapt_enable in struct hns3_enet_coalesce +- net: hns3: add support for 1us unit GL configuration +- net: hns3: add support for querying maximum value of GL +- net: hns3: add support for configuring interrupt quantity limiting +- net: hns3: Remove duplicated include +- locking/qspinlock: Disable CNA by default +- locking/qspinlock: Add CNA support for ARM64 +- KVM: arm64: Rename 'struct pv_sched_ops' +- locking/qspinlock: Introduce the shuffle reduction optimization into CNA +- locking/qspinlock: Avoid moving certain threads between waiting queues in CNA +- locking/qspinlock: Introduce starvation avoidance into CNA +- locking/qspinlock: Introduce CNA into the slow path of qspinlock +- locking/qspinlock: Refactor the qspinlock slow path +- locking/qspinlock: Rename mcs lock/unlock macros and make them more generic +- mm/page_alloc: do bulk array bounds check after checking populated elements +- mm/page_alloc: __alloc_pages_bulk(): do bounds check before accessing array +- net: page_pool: use alloc_pages_bulk in refill code path +- net: page_pool: refactor dma_map into own function page_pool_dma_map +- SUNRPC: refresh rq_pages using a bulk page allocator +- SUNRPC: set rq_page_end differently +- mm/page_alloc: inline __rmqueue_pcplist +- mm/page_alloc: optimize code layout for __alloc_pages_bulk +- mm/page_alloc: add an array-based interface to the bulk page allocator +- mm/page_alloc: add a bulk page allocator +- mm/page_alloc: rename alloced to allocated +- mm/mempolicy: fix mpol_misplaced kernel-doc +- mm/mempolicy: rewrite alloc_pages_vma documentation +- mm/mempolicy: rewrite alloc_pages documentation +- mm/mempolicy: rename alloc_pages_current to alloc_pages +- mm/page_alloc: combine __alloc_pages and __alloc_pages_nodemask +- mm/page_alloc: rename gfp_mask to gfp +- mm/page_alloc: rename alloc_mask to alloc_gfp +- mm/filemap: fix infinite loop in generic_file_buffered_read() +- mm/filemap.c: generic_file_buffered_read() now uses find_get_pages_contig +- mm/filemap/c: break generic_file_buffered_read up into multiple functions +- powerpc/mm: enable HAVE_MOVE_PMD support +- powerpc/book3s64/mm: update flush_tlb_range to flush page walk cache +- mm/mremap: allow arch runtime override +- powerpc/64s/radix: refactor TLB flush type selection +- mm/mremap: hold the rmap lock in write mode when moving page table entries. +- mm/mremap: use pmd/pud_poplulate to update page table entries +- mm/mremap: don't enable optimized PUD move if page table levels is 2 +- mm/mremap: convert huge PUD move to separate helper +- selftest/mremap_test: avoid crash with static build +- selftest/mremap_test: update the test to handle pagesize other than 4K +- mm: rename p4d_page_vaddr to p4d_pgtable and make it return pud_t * +- mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t * +- mm/mremap.c: fix extent calculation +- arm64: mremap speedup - enable HAVE_MOVE_PUD +- x86: mremap speedup - Enable HAVE_MOVE_PUD +- mm: speedup mremap on 1GB or larger regions +- kselftests: vm: add mremap tests +- sched: Limit the amount of NUMA imbalance that can exist at fork time +- sched/numa: Allow a floating imbalance between NUMA nodes +- sched: Avoid unnecessary calculation of load imbalance at clone time +- sched/numa: Rename nr_running and break out the magic number +- mm/vmstat.c: erase latency in vmstat_shepherd +- mm, slub: splice cpu and page freelists in deactivate_slab() +- mm: memcontrol: optimize per-lruvec stats counter memory usage +- vsprintf: dump full information of page flags in pGp +- mm, slub: don't combine pr_err with INFO +- mm, slub: use pGp to print page flags +- RDMA/umem: batch page unpin in __ib_umem_release() +- mm/gup: add a range variant of unpin_user_pages_dirty_lock() +- mm/gup: decrement head page once for group of subpages +- mm/gup: add compound page list iterator +- mm, slab, slub: stop taking cpu hotplug lock +- mm, slab, slub: stop taking memory hotplug lock +- mm, slub: stop freeing kmem_cache_node structures on node offline +- sched: Unthrottle qos cfs rq when free a task group +- sched: Fix offline task can't be killed in a timely +- sched: Unthrottle the throttled cfs rq when offline rq +- sched: Enable qos scheduler config +- sched: Throttle qos cfs_rq when current cpu is running online task +- sched: Introduce qos scheduler for co-location +- smp: Inline on_each_cpu_cond() and on_each_cpu() +- x86/mm/tlb: Remove unnecessary uses of the inline keyword +- cpumask: Mark functions as pure +- x86/mm/tlb: Do not make is_lazy dirty for no reason +- x86/mm/tlb: Privatize cpu_tlbstate +- x86/mm/tlb: Flush remote and local TLBs concurrently +- x86/mm/tlb: Open-code on_each_cpu_cond_mask() for tlb_is_not_lazy() +- x86/mm/tlb: Unify flush_tlb_func_local() and flush_tlb_func_remote() +- smp: Run functions concurrently in smp_call_function_many_cond() +- smp: Cleanup smp_call_function*() +- mm: migrate: fix missing update page_private to hugetlb_page_subpool +- arm64: mm: hugetlb: add support for free vmemmap pages of HugeTLB +- mm: hugetlb: introduce CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON +- mm: sparsemem: use huge PMD mapping for vmemmap pages +- mm: sparsemem: split the huge PMD mapping of vmemmap pages +- mm: hugetlb: introduce nr_free_vmemmap_pages in the struct hstate +- mm: hugetlb: add a kernel parameter hugetlb_free_vmemmap +- mm: hugetlb: alloc the vmemmap pages associated with each HugeTLB page +- mm: hugetlb: defer freeing of HugeTLB pages +- mm: hugetlb: free the vmemmap pages associated with each HugeTLB page +- mm: hugetlb: gather discrete indexes of tail page +- mm: hugetlb: introduce a new config HUGETLB_PAGE_FREE_VMEMMAP +- mm: memory_hotplug: factor out bootmem core functions to bootmem_info.c +- hugetlb: add lockdep_assert_held() calls for hugetlb_lock +- hugetlb: make free_huge_page irq safe +- hugetlb: change free_pool_huge_page to remove_pool_huge_page +- hugetlb: call update_and_free_page without hugetlb_lock +- hugetlb: create remove_hugetlb_page() to separate functionality +- hugetlb: add per-hstate mutex to synchronize user adjustments +- hugetlb: no need to drop hugetlb_lock to call cma_release +- mm/cma: change cma mutex to irq safe spinlock +- hugetlb: convert PageHugeFreed to HPageFreed flag +- hugetlb: convert PageHugeTemporary() to HPageTemporary flag +- hugetlb: convert page_huge_active() HPageMigratable flag +- hugetlb: use page.private for hugetlb specific page flags +- powerpc: Fix reverse map real-mode address lookup with huge vmalloc +- mm/vmalloc: unbreak kasan vmalloc support +- KVM: s390: prepare for hugepage vmalloc +- mm/vmalloc: add vmalloc_no_huge +- mm/ioremap: fix iomap_max_page_shift +- mm/vmalloc: improve allocation failure error messages +- mm/vmalloc: use free_vm_area() if an allocation fails +- powerpc/64s/radix: Enable huge vmalloc mappings +- mm/vmalloc: hugepage vmalloc mappings +- mm/vmalloc: add vmap_range_noflush variant +- mm: move vmap_range from mm/ioremap.c to mm/vmalloc.c +- mm/vmalloc: provide fallback arch huge vmap support functions +- x86: inline huge vmap supported functions +- arm64: inline huge vmap supported functions +- powerpc: inline huge vmap supported functions +- mm: HUGE_VMAP arch support cleanup +- mm/ioremap: rename ioremap_*_range to vmap_*_range +- mm/vmalloc: rename vmap_*_range vmap_pages_*_range +- mm: apply_to_pte_range warn and fail if a large pte is encountered +- mm/vmalloc: fix HUGE_VMAP regression by enabling huge pages in vmalloc_to_page +- ARM: mm: add missing pud_page define to 2-level page tables +- mm/vmalloc.c:__vmalloc_area_node(): avoid 32-bit overflow +- mm/lru: revise the comments of lru_lock +- mm/lru: introduce relock_page_lruvec() +- mm/lru: replace pgdat lru_lock with lruvec lock +- mm/swap.c: serialize memcg changes in pagevec_lru_move_fn +- mm/compaction: do page isolation first in compaction +- mm/lru: introduce TestClearPageLRU() +- mm/mlock: remove __munlock_isolate_lru_page() +- mm/mlock: remove lru_lock on TestClearPageMlocked +- mm/vmscan: remove lruvec reget in move_pages_to_lru +- mm/lru: move lock into lru_note_cost +- mm/swap.c: fold vm event PGROTATED into pagevec_move_tail_fn +- mm/memcg: add debug checking in lock_page_memcg +- mm: page_idle_get_page() does not need lru_lock +- mm/rmap: stop store reordering issue on page->mapping +- mm/vmscan: remove unnecessary lruvec adding +- mm/thp: narrow lru locking +- mm/thp: simplify lru_add_page_tail() +- mm/thp: use head for head page in lru_add_page_tail() +- mm/thp: move lru_add_page_tail() to huge_memory.c +- mm/swap: remove unused local variable nr_shadows +- mm: remove nrexceptional from inode: remove BUG_ON +- mm: remove nrexceptional from inode +- dax: account DAX entries as nrpages +- mm: stop accounting shadow entries +- mm: introduce and use mapping_empty() +- mm/filemap: fix find_lock_entries hang on 32-bit THP +- mm/filemap: fix mapping_seek_hole_data on THP & 32-bit +- mm/highmem.c: fix zero_user_segments() with start > end +- mm: remove pagevec_lookup_entries +- mm: pass pvec directly to find_get_entries +- mm: remove nr_entries parameter from pagevec_lookup_entries +- mm: add an 'end' parameter to pagevec_lookup_entries +- mm: add an 'end' parameter to find_get_entries +- mm: add and use find_lock_entries +- iomap: use mapping_seek_hole_data +- mm/filemap: add mapping_seek_hole_data +- mm/filemap: add helper for finding pages +- mm/filemap: rename find_get_entry to mapping_get_entry +- mm: add FGP_ENTRY +- mm/swap: optimise get_shadow_from_swap_cache +- mm/shmem: use pagevec_lookup in shmem_unlock_mapping +- mm: make pagecache tagged lookups return only head pages +- mm: support THPs in zero_user_segments +- mm: vmstat: add cma statistics +- memcg: enable memcg oom-kill for __GFP_NOFAIL +- mm/page_alloc: count CMA pages per zone and print them in /proc/zoneinfo +- mm/page_owner: record the timestamp of all pages during free +- mm/page_owner: record timestamp and pid +- mm/vmalloc: rework the drain logic +- arm64: clear_page: Add new implementation of clear_page() by STNP +- memcg: update the child's qos_level synchronously in memcg_qos_write() +- memcg: Add static key for memcg priority +- memcg: enable CONFIG_MEMCG_QOS by default +- memcg: support priority for oom + +* Wed Jul 14 2021 Cheng Jian - 5.10.0-5.0.0.15 +- add buildrequire: openssl for kernel build +- add buildrequire: perl-devel for perf binary + +* Wed Jul 7 2021 Zheng Zengkai - 5.10.0-5.0.0.14 +- arm64: errata: enable HISILICON_ERRATUM_HIP08_RU_PREFETCH +- arm64: errata: add option to disable cache readunique prefetch on HIP08 +- config: disable config ARM64_BOOTPARAM_HOTPLUG_CPU0 by default +- arm64: Add config switch and kernel parameter for CPU0 hotplug +- iommu/vt-d: Check for allocation failure in aux_detach_device() +- iommu/vt-d: Fix ineffective devTLB invalidation for subdevices +- iommu/vt-d: Fix general protection fault in aux_detach_device() +- NFSv4: Refactor to use user namespaces for nfs4idmap +- NFS: NFSv2/NFSv3: Use cred from fs_context during mount +- seccomp: Remove bogus __user annotations +- seccomp/cache: Report cache data through /proc/pid/seccomp_cache +- xtensa: Enable seccomp architecture tracking +- sh: Enable seccomp architecture tracking +- s390: Enable seccomp architecture tracking +- riscv: Enable seccomp architecture tracking +- powerpc: Enable seccomp architecture tracking +- parisc: Enable seccomp architecture tracking +- csky: Enable seccomp architecture tracking +- arm: Enable seccomp architecture tracking +- arm64: Enable seccomp architecture tracking +- selftests/seccomp: Compare bitmap vs filter overhead +- x86: Enable seccomp architecture tracking +- seccomp/cache: Add "emulator" to check if filter is constant allow +- seccomp/cache: Lookup syscall allowlist bitmap for fast path +- usb: dwc3: core: fix kernel panic when do reboot +- usb: dwc3: debugfs: Add and remove endpoint dirs dynamically +- perf beauty: Update copy of linux/socket.h with the kernel sources +- tools headers UAPI: Sync linux/in.h copy with the kernel sources +- net: fec_ptp: add clock rate zero check +- net: stmmac: disable clocks in stmmac_remove_config_dt() +- mm/slub.c: include swab.h +- mm/slub: actually fix freelist pointer vs redzoning +- mm/slub: fix redzoning for small allocations +- mm/slub: clarify verification reporting +- mm/swap: fix pte_same_as_swp() not removing uffd-wp bit when compare +- net: bridge: fix vlan tunnel dst refcnt when egressing +- net: bridge: fix vlan tunnel dst null pointer dereference +- net: ll_temac: Fix TX BD buffer overwrite +- net: ll_temac: Make sure to free skb when it is completely used +- drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue. +- drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell. +- cfg80211: avoid double free of PMSR request +- cfg80211: make certificate generation more robust +- mac80211: Fix NULL ptr deref for injected rate info +- dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc +- crash_core, vmcoreinfo: append 'SECTION_SIZE_BITS' to vmcoreinfo +- x86/fpu: Reset state for all signal restore failures +- x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer +- x86/fpu: Prevent state corruption in __fpu__restore_sig() +- x86/pkru: Write hardware init value to PKRU when xstate is init +- x86/ioremap: Map EFI-reserved memory as encrypted for SEV +- x86/process: Check PF_KTHREAD and not current->mm for kernel threads +- x86/mm: Avoid truncating memblocks for SGX memory +- ARCv2: save ABI registers across signal handling +- s390/ap: Fix hanging ioctl caused by wrong msg counter +- s390/mcck: fix calculation of SIE critical section size +- KVM: X86: Fix x86_emulator slab cache leak +- KVM: x86/mmu: Calculate and check "full" mmu_role for nested MMU +- KVM: x86: Immediately reset the MMU context when the SMM flag is cleared +- PCI: Work around Huawei Intelligent NIC VF FLR erratum +- PCI: Add ACS quirk for Broadcom BCM57414 NIC +- PCI: aardvark: Fix kernel panic during PIO transfer +- PCI: Mark some NVIDIA GPUs to avoid bus reset +- PCI: Mark TI C667X to avoid bus reset +- tracing: Do no increment trace_clock_global() by one +- tracing: Do not stop recording comms if the trace file is being read +- tracing: Do not stop recording cmdlines when tracing is off +- usb: chipidea: imx: Fix Battery Charger 1.2 CDP detection +- usb: core: hub: Disable autosuspend for Cypress CY7C65632 +- can: mcba_usb: fix memory leak in mcba_usb +- can: j1939: fix Use-after-Free, hold skb ref while in use +- can: bcm/raw/isotp: use per module netdevice notifier +- can: bcm: fix infoleak in struct bcm_msg_head +- bpf: Do not mark insn as seen under speculative path verification +- bpf: Inherit expanded/patched seen count from old aux data +- irqchip/gic-v3: Workaround inconsistent PMR setting on NMI entry +- mm: relocate 'write_protect_seq' in struct mm_struct +- hwmon: (scpi-hwmon) shows the negative temperature properly +- radeon: use memcpy_to/fromio for UVD fw upload +- ASoC: qcom: lpass-cpu: Fix pop noise during audio capture begin +- drm/sun4i: dw-hdmi: Make HDMI PHY into a platform device +- pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled +- ASoC: rt5682: Fix the fast discharge for headset unplugging in soundwire mode +- regulator: rt4801: Fix NULL pointer dereference if priv->enable_gpios is NULL +- spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd() +- ASoC: tas2562: Fix TDM_CFG0_SAMPRATE values +- sched/pelt: Ensure that *_sum is always synced with *_avg +- spi: spi-zynq-qspi: Fix some wrong goto jumps & missing error code +- regulator: rtmv20: Fix to make regcache value first reading back from HW +- ASoC: fsl-asoc-card: Set .owner attribute when registering card. +- phy: phy-mtk-tphy: Fix some resource leaks in mtk_phy_init() +- ASoC: rt5659: Fix the lost powers for the HDA header +- platform/x86: thinkpad_acpi: Add X1 Carbon Gen 9 second fan support +- regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting +- regulator: cros-ec: Fix error code in dev_err message +- net: ethernet: fix potential use-after-free in ec_bhf_remove +- icmp: don't send out ICMP messages with a source address of 0.0.0.0 +- bnxt_en: Call bnxt_ethtool_free() in bnxt_init_one() error path +- bnxt_en: Fix TQM fastpath ring backing store computation +- bnxt_en: Rediscover PHY capabilities after firmware reset +- cxgb4: fix wrong shift. +- net: cdc_eem: fix tx fixup skb leak +- net: hamradio: fix memory leak in mkiss_close +- be2net: Fix an error handling path in 'be_probe()' +- net/mlx5: Reset mkey index on creation +- net/mlx5: E-Switch, Allow setting GUID for host PF vport +- net/mlx5: E-Switch, Read PF mac address +- net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock +- net: ipv4: fix memory leak in ip_mc_add1_src +- net: fec_ptp: fix issue caused by refactor the fec_devtype +- net: usb: fix possible use-after-free in smsc75xx_bind +- lantiq: net: fix duplicated skb in rx descriptor ring +- net: cdc_ncm: switch to eth%d interface naming +- ptp: improve max_adj check against unreasonable values +- bpf: Fix leakage under speculation on mispredicted branches +- net: qrtr: fix OOB Read in qrtr_endpoint_post +- ipv4: Fix device used for dst_alloc with local routes +- cxgb4: fix wrong ethtool n-tuple rule lookup +- netxen_nic: Fix an error handling path in 'netxen_nic_probe()' +- qlcnic: Fix an error handling path in 'qlcnic_probe()' +- ethtool: strset: fix message length calculation +- net: qualcomm: rmnet: don't over-count statistics +- net: qualcomm: rmnet: Update rmnet device MTU based on real device +- net: make get_net_ns return error if NET_NS is disabled +- net: stmmac: dwmac1000: Fix extended MAC address registers definition +- cxgb4: halt chip before flashing PHY firmware image +- cxgb4: fix sleep in atomic when flashing PHY firmware +- cxgb4: fix endianness when flashing boot image +- alx: Fix an error handling path in 'alx_probe()' +- selftests: mptcp: enable syncookie only in absence of reorders +- mptcp: do not warn on bad input from the network +- mptcp: try harder to borrow memory from subflow under pressure +- sch_cake: Fix out of bounds when parsing TCP options and header +- mptcp: Fix out of bounds when parsing TCP options +- netfilter: synproxy: Fix out of bounds when parsing TCP options +- net/mlx5e: Block offload of outer header csum for UDP tunnels +- net/mlx5: DR, Don't use SW steering when RoCE is not supported +- net/mlx5: DR, Allow SW steering for sw_owner_v2 devices +- net/mlx5: Consider RoCE cap before init RDMA resources +- net/mlx5e: Fix page reclaim for dead peer hairpin +- net/mlx5e: Remove dependency in IPsec initialization flows +- net/sched: act_ct: handle DNAT tuple collision +- rtnetlink: Fix regression in bridge VLAN configuration +- udp: fix race between close() and udp_abort() +- ice: parameterize functions responsible for Tx ring management +- ice: add ndo_bpf callback for safe mode netdev ops +- netfilter: nft_fib_ipv6: skip ipv6 packets from any to link-local +- net: lantiq: disable interrupt before sheduling NAPI +- net: dsa: felix: re-enable TX flow control in ocelot_port_flush() +- net: rds: fix memory leak in rds_recvmsg +- vrf: fix maximum MTU +- net: ipv4: fix memory leak in netlbl_cipsov4_add_std +- libbpf: Fixes incorrect rx_ring_setup_done +- mlxsw: core: Set thermal zone polling delay argument to real value at init +- mlxsw: reg: Spectrum-3: Enforce lowest max-shaper burst size of 11 +- mac80211: fix skb length check in ieee80211_scan_rx() +- batman-adv: Avoid WARN_ON timing related checks +- kvm: LAPIC: Restore guard to prevent illegal APIC register access +- afs: Fix an IS_ERR() vs NULL check +- dmaengine: stedma40: add missing iounmap() on error in d40_probe() +- dmaengine: SF_PDMA depends on HAS_IOMEM +- dmaengine: QCOM_HIDMA_MGMT depends on HAS_IOMEM +- dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM +- dmaengine: xilinx: dpdma: initialize registers before request_irq +- dmaengine: fsl-dpaa2-qdma: Fix error return code in two functions +- dmaengine: idxd: add missing dsa driver unregister +- ext4: fix memory leak in ext4_fill_super +- Revert "Revert "scsi: megaraid_sas: Added support for shared host tagset for cpuhotplug"" +- Revert "block: Fix a lockdep complaint triggered by request queue flushing" +- nvme-loop: use blk_mq_hctx_set_fq_lock_class to set loop's lock class +- blk-mq: add new API of blk_mq_hctx_set_fq_lock_class +- block: check disk exist before trying to add partition +- block: avoid creating invalid symlink file for patitions +- block: take bd_mutex around delete_partitions in del_gendisk +- scsi: remove unused kobj map for sd devie to avoid memleak +- scsi: libsas: Add LUN number check in .slave_alloc callback +- dm btree remove: assign new_root only when removal succeeds +- scsi: libiscsi: Reset max/exp cmdsn during recovery +- scsi: iscsi_tcp: Fix shost can_queue initialization +- scsi: libiscsi: Add helper to calculate max SCSI cmds per session +- scsi: libiscsi: Fix iSCSI host workq destruction +- scsi: libiscsi: Fix iscsi_task use after free() +- scsi: libiscsi: Drop taskqueuelock +- ext4: stop return ENOSPC from ext4_issue_zeroout +- scsi: sd: Call sd_revalidate_disk() for ioctl(BLKRRPART) +- powerpc/fsl_booke/kaslr: rename kaslr-booke32.rst to kaslr-booke.rst and add 64bit part +- powerpc/fsl_booke/64: clear the original kernel if randomized +- powerpc/fsl_booke/64: do not clear the BSS for the second pass +- powerpc/fsl_booke/64: implement KASLR for fsl_booke64 +- powerpc/fsl_booke/64: introduce reloc_kernel_entry() helper +- powerpc/fsl_booke/kaslr: refactor kaslr_legal_offset() and kaslr_early_init() +- arm64: Force NO_BLOCK_MAPPINGS if crashkernel reservation is required +- exec: Move unshare_files to fix posix file locking during exec +- exec: Don't open code get_close_on_exec +- ARM: mm: Fix PXN process with LPAE feature +- ARM: mm: Provide die_kernel_fault() helper +- ARM: mm: Kill page table base print in show_pte() +- ARM: mm: Cleanup access_error() +- ARM: mm: Kill task_struct argument for __do_page_fault() +- ARM: mm: Rafactor the __do_page_fault() +- fanotify: fix copy_event_to_user() fid error clean up +- block: fix inflight statistics of part0 +- debugfs: fix security_locked_down() call for SELinux +- vti6: fix ipv4 pmtu check to honor ip header df +- vti: fix ipv4 pmtu check to honor ip header df +- alinux: random: speed up the initialization of module +- mm: set the sleep_mapped to true for zbud and z3fold +- mm/zswap: add the flag can_sleep_mapped +- kasan: fix null pointer dereference in kasan_record_aux_stack +- bpf: Fix NULL pointer dereference in bpf_get_local_storage() helper +- fib: Return the correct errno code +- net: Return the correct errno code +- net/x25: Return the correct errno code +- rtnetlink: Fix missing error code in rtnl_bridge_notify() +- drm/amd/amdgpu:save psp ring wptr to avoid attack +- drm/amd/display: Fix potential memory leak in DMUB hw_init +- drm/amdgpu: refine amdgpu_fru_get_product_info +- drm/amd/display: Allow bandwidth validation for 0 streams. +- net: ipconfig: Don't override command-line hostnames or domains +- nvme-loop: do not warn for deleted controllers during reset +- nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue() +- nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue() fails +- nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues() +- scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V +- Bluetooth: Add a new USB ID for RTL8822CE +- scsi: qedf: Do not put host in qedf_vport_create() unconditionally +- ethernet: myri10ge: Fix missing error code in myri10ge_probe() +- scsi: target: core: Fix warning on realtime kernels +- gfs2: Fix use-after-free in gfs2_glock_shrink_scan +- riscv: Use -mno-relax when using lld linker +- HID: gt683r: add missing MODULE_DEVICE_TABLE +- gfs2: fix a deadlock on withdraw-during-mount +- gfs2: Prevent direct-I/O write fallback errors from getting lost +- ARM: OMAP2+: Fix build warning when mmc_omap is not built +- ARM: OMAP1: Fix use of possibly uninitialized irq variable +- drm/tegra: sor: Fully initialize SOR before registration +- gpu: host1x: Split up client initalization and registration +- drm/tegra: sor: Do not leak runtime PM reference +- HID: usbhid: fix info leak in hid_submit_ctrl +- HID: Add BUS_VIRTUAL to hid_connect logging +- HID: multitouch: set Stylus suffix for Stylus-application devices, too +- HID: quirks: Add quirk for Lenovo optical mouse +- HID: hid-sensor-hub: Return error for hid_set_field() failure +- HID: hid-input: add mapping for emoji picker key +- HID: a4tech: use A4_2WHEEL_MOUSE_HACK_B8 for A4TECH NB-95 +- HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65 +- net: ieee802154: fix null deref in parse dev addr +- livepatch: fix unload hook could not be excuted +- mm/memory-failure: make sure wait for page writeback in memory_failure +- iommu: sva: Fix compile error in iommu_sva_bind_group +- proc: only require mm_struct for writing +- tracing: Correct the length check which causes memory corruption +- scsi: core: Only put parent device if host state differs from SHOST_CREATED +- scsi: core: Put .shost_dev in failure path if host state changes to RUNNING +- scsi: core: Fix failure handling of scsi_add_host_with_dma() +- scsi: core: Fix error handling of scsi_host_alloc() +- NFSv4: nfs4_proc_set_acl needs to restore NFS_CAP_UIDGID_NOMAP on error. +- NFSv4: Fix second deadlock in nfs4_evict_inode() +- NFS: Fix use-after-free in nfs4_init_client() +- kvm: fix previous commit for 32-bit builds +- perf session: Correct buffer copying when peeking events +- NFSv4: Fix deadlock between nfs4_evict_inode() and nfs4_opendata_get_inode() +- NFS: Fix a potential NULL dereference in nfs_get_client() +- IB/mlx5: Fix initializing CQ fragments buffer +- KVM: x86: Ensure liveliness of nested VM-Enter fail tracepoint message +- x86/nmi_watchdog: Fix old-style NMI watchdog regression on old Intel CPUs +- sched/fair: Fix util_est UTIL_AVG_UNCHANGED handling +- sched/fair: Make sure to update tg contrib for blocked load +- sched/fair: Keep load_avg and load_sum synced +- perf: Fix data race between pin_count increment/decrement +- gpio: wcd934x: Fix shift-out-of-bounds error +- phy: ti: Fix an error code in wiz_probe() +- ASoC: meson: gx-card: fix sound-dai dt schema +- ASoC: core: Fix Null-point-dereference in fmt_single_name() +- phy: cadence: Sierra: Fix error return code in cdns_sierra_phy_probe() +- tools/bootconfig: Fix error return code in apply_xbc() +- vmlinux.lds.h: Avoid orphan section with !SMP +- ARM: cpuidle: Avoid orphan section warning +- RDMA/mlx4: Do not map the core_clock page to user space unless enabled +- RDMA/ipoib: Fix warning caused by destroying non-initial netns +- drm/msm/a6xx: avoid shadow NULL reference in failure path +- drm/msm/a6xx: update/fix CP_PROTECT initialization +- drm/msm/a6xx: fix incorrectly set uavflagprd_inv field for A650 +- drm/mcde: Fix off by 10^3 in calculation +- usb: typec: mux: Fix copy-paste mistake in typec_mux_match +- usb: dwc3: gadget: Disable gadget IRQ during pullup disable +- phy: usb: Fix misuse of IS_ENABLED +- regulator: rtmv20: Fix .set_current_limit/.get_current_limit callbacks +- regulator: bd71828: Fix .n_voltages settings +- regulator: fan53880: Fix missing n_voltages setting +- regulator: bd718x7: Fix the BUCK7 voltage setting on BD71837 +- regulator: max77620: Use device_set_of_node_from_dev() +- regulator: core: resolve supply for boot-on/always-on regulators +- usb: typec: tcpm: cancel frs hrtimer when unregister tcpm port +- usb: typec: tcpm: cancel vdm and state machine hrtimer when unregister tcpm port +- usb: fix various gadget panics on 10gbps cabling +- usb: fix various gadgets null ptr deref on 10gbps cabling. +- usb: gadget: eem: fix wrong eem header operation +- USB: serial: cp210x: fix alternate function for CP2102N QFN20 +- USB: serial: quatech2: fix control-request directions +- USB: serial: omninet: add device id for Zyxel Omni 56K Plus +- USB: serial: ftdi_sio: add NovaTech OrionMX product ID +- usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind +- usb: typec: intel_pmc_mux: Add missed error check for devm_ioremap_resource() +- usb: typec: intel_pmc_mux: Put fwnode in error case during ->probe() +- usb: typec: ucsi: Clear PPM capability data in ucsi_init() error path +- usb: typec: wcove: Use LE to CPU conversion when accessing msg->header +- usb: musb: fix MUSB_QUIRK_B_DISCONNECT_99 handling +- usb: dwc3: ep0: fix NULL pointer exception +- usb: dwc3: gadget: Bail from dwc3_gadget_exit() if dwc->gadget is NULL +- usb: dwc3: meson-g12a: Disable the regulator in the error handling path of the probe +- usb: dwc3-meson-g12a: fix usb2 PHY glue init when phy0 is disabled +- usb: pd: Set PD_T_SINK_WAIT_CAP to 310ms +- usb: f_ncm: only first packet of aggregate needs to start timer +- USB: f_ncm: ncm_bitrate (speed) is unsigned +- mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+ +- mmc: renesas_sdhi: abort tuning when timeout detected +- ftrace: Do not blindly read the ip address in ftrace_bug() +- cgroup1: don't allow '\n' in renaming +- btrfs: promote debugging asserts to full-fledged checks in validate_super +- btrfs: return value from btrfs_mark_extent_written() in case of error +- async_xor: check src_offs is not NULL before updating it +- staging: rtl8723bs: Fix uninitialized variables +- kvm: avoid speculation-based attacks from out-of-range memslot accesses +- KVM: X86: MMU: Use the correct inherited permissions to get shadow page +- perf/x86/intel/uncore: Fix M2M event umask for Ice Lake server +- drm: Lock pointer access in drm_master_release() +- drm: Fix use-after-free read in drm_getunique() +- Revert "ACPI: sleep: Put the FACS table after using it" +- spi: bcm2835: Fix out-of-bounds access with more than 4 slaves +- ALSA: hda/realtek: fix mute/micmute LEDs for HP ZBook Power G8 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP EliteBook 840 Aero G8 +- ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP EliteBook x360 1040 G8 +- ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Elite Dragonfly G2 +- ALSA: hda/realtek: headphone and mic don't work on an Acer laptop +- ALSA: firewire-lib: fix the context to call snd_pcm_stop_xrun() +- ALSA: seq: Fix race of snd_seq_timer_open() +- i2c: mpc: implement erratum A-004447 workaround +- i2c: mpc: Make use of i2c_recover_bus() +- spi: Cleanup on failure of initial setup +- spi: Don't have controller clean up spi device before driver unbind +- powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P1010 i2c controllers +- powerpc/fsl: set fsl,i2c-erratum-a004447 flag for P2041 i2c controllers +- nvmet: fix false keep-alive timeout when a controller is torn down +- nvme-tcp: remove incorrect Kconfig dep in BLK_DEV_NVME +- bnx2x: Fix missing error code in bnx2x_iov_init_one() +- dm verity: fix require_signatures module_param permissions +- MIPS: Fix kernel hang under FUNCTION_GRAPH_TRACER and PREEMPT_TRACER +- nvme-fabrics: decode host pathing error for connect +- net: dsa: microchip: enable phy errata workaround on 9567 +- net: appletalk: cops: Fix data race in cops_probe1 +- net: macb: ensure the device is available before accessing GEMGXL control registers +- scsi: target: qla2xxx: Wait for stop_phase1 at WWN removal +- scsi: hisi_sas: Drop free_irq() of devm_request_irq() allocated irq +- scsi: vmw_pvscsi: Set correct residual data length +- scsi: bnx2fc: Return failure if io_req is already in ABTS processing +- net:sfc: fix non-freed irq in legacy irq mode +- RDS tcp loopback connection can hang +- net/qla3xxx: fix schedule while atomic in ql_sem_spinlock +- wq: handle VM suspension in stall detection +- cgroup: disable controllers at parse time +- net: mdiobus: get rid of a BUG_ON() +- netlink: disable IRQs for netlink_lock_table() +- bonding: init notify_work earlier to avoid uninitialized use +- isdn: mISDN: netjet: Fix crash in nj_probe: +- usb: chipidea: udc: assign interrupt number to USB gadget structure +- spi: sprd: Add missing MODULE_DEVICE_TABLE +- ASoC: sti-sas: add missing MODULE_DEVICE_TABLE +- vfio-ccw: Serialize FSM IDLE state with I/O completion +- vfio-ccw: Reset FSM state to IDLE inside FSM +- ASoC: Intel: bytcr_rt5640: Add quirk for the Lenovo Miix 3-830 tablet +- ASoC: Intel: bytcr_rt5640: Add quirk for the Glavey TM800A550L tablet +- usb: cdns3: Fix runtime PM imbalance on error +- net/nfc/rawsock.c: fix a permission check bug +- bpf: Forbid trampoline attach for functions with variable arguments +- spi: spi-zynq-qspi: Fix stack violation bug +- spi: Fix spi device unregister flow +- ASoC: amd: fix for pcm_read() error +- ASoC: max98088: fix ni clock divider calculation +- proc: Track /proc/$pid/attr/ opener mm_struct +- mtd: mtd_blkdevs: Initialize rq.limits.discard_granularity +- block, bfq: set next_rq to waker_bfqq->next_rq in waker injection +- bdev: Do not return EBUSY if bdev discard races with write +- powerpc/perf: Invoke per-CPU variable access with disabled interrupts +- perf annotate: Fix jump parsing for C++ code. +- perf tools: Fix arm64 build error with gcc-11 +- perf record: Fix memory leak in vDSO found using ASAN +- perf parse-events: Check if the software events array slots are populated +- perf symbol-elf: Fix memory leak by freeing sdt_note.args +- perf env: Fix memory leak of bpf_prog_info_linear member +- scsi: iscsi: Fix iSCSI cls conn state +- scsi: iscsi: Fix race condition between login and sync thread +- Revert "perf kmem: Do not pass additional arguments +- neighbour: allow NUD_NOARP entries to be forced GCed +- xen-netback: take a reference to the RX task thread +- netfilter: nf_tables: missing error reporting for not selected expressions +- i2c: qcom-geni: Suspend and resume the bus during SYSTEM_SLEEP_PM ops +- lib/lz4: explicitly support in-place decompression +- x86/kvm: Disable all PV features on crash +- x86/kvm: Disable kvmclock on all CPUs on shutdown +- x86/kvm: Teardown PV features on boot CPU as well +- KVM: arm64: Fix debug register indexing +- KVM: SVM: Truncate GPR value for DR and CR accesses in !64-bit mode +- btrfs: fix unmountable seed device after fstrim +- drm/msm/dpu: always use mdp device to scale bandwidth +- mm, hugetlb: fix simple resv_huge_pages underflow on UFFDIO_COPY +- btrfs: fix deadlock when cloning inline extents and low on available space +- btrfs: abort in rename_exchange if we fail to insert the second ref +- btrfs: fixup error handling in fixup_inode_link_counts +- btrfs: return errors from btrfs_del_csums in cleanup_ref_head +- btrfs: fix error handling in btrfs_del_csums +- btrfs: mark ordered extent and inode with error if we fail to finish +- powerpc/kprobes: Fix validation of prefixed instructions across page boundary +- x86/apic: Mark _all_ legacy interrupts when IO/APIC is missing +- drm/amdgpu: make sure we unpin the UVD BO +- drm/amdgpu: Don't query CE and UE errors +- nfc: fix NULL ptr dereference in llcp_sock_getname() after failed connect +- x86/sev: Check SME/SEV support in CPUID first +- x86/cpufeatures: Force disable X86_FEATURE_ENQCMD and remove update_pasid() +- mm/page_alloc: fix counting of free pages after take off from buddy +- mm/debug_vm_pgtable: fix alignment for pmd/pud_advanced_tests() +- ocfs2: fix data corruption by fallocate +- pid: take a reference when initializing `cad_pid` +- usb: dwc2: Fix build in periphal-only mode +- ext4: fix accessing uninit percpu counter variable with fast_commit +- ext4: fix memory leak in ext4_mb_init_backend on error path. +- ext4: fix fast commit alignment issues +- ext4: fix memory leak in ext4_fill_super +- ARM: dts: imx6q-dhcom: Add PU,VDD1P1,VDD2P5 regulators +- ARM: dts: imx6dl-yapp4: Fix RGMII connection to QCA8334 switch +- ALSA: hda: update the power_state during the direct-complete +- ALSA: hda: Fix for mute key LED for HP Pavilion 15-CK0xx +- ALSA: timer: Fix master timer notification +- gfs2: fix scheduling while atomic bug in glocks +- HID: multitouch: require Finger field to mark Win8 reports as MT +- HID: magicmouse: fix NULL-deref on disconnect +- HID: i2c-hid: Skip ELAN power-on command after reset +- net: caif: fix memory leak in cfusbl_device_notify +- net: caif: fix memory leak in caif_device_notify +- net: caif: add proper error handling +- net: caif: added cfserl_release function +- wireguard: allowedips: free empty intermediate nodes when removing single node +- wireguard: allowedips: allocate nodes in kmem_cache +- wireguard: allowedips: remove nodes in O(1) +- wireguard: allowedips: initialize list head in selftest +- wireguard: selftests: make sure rp_filter is disabled on vethc +- wireguard: selftests: remove old conntrack kconfig value +- wireguard: use synchronize_net rather than synchronize_rcu +- wireguard: peer: allocate in kmem_cache +- wireguard: do not use -O3 +- Bluetooth: use correct lock to prevent UAF of hdev object +- Bluetooth: fix the erroneous flush_work() order +- drm/amdgpu/jpeg3: add cancel_delayed_work_sync before power gate +- drm/amdgpu/jpeg2.5: add cancel_delayed_work_sync before power gate +- drm/amdgpu/vcn3: add cancel_delayed_work_sync before power gate +- io_uring: use better types for cflags +- io_uring: fix link timeout refs +- riscv: vdso: fix and clean-up Makefile +- serial: stm32: fix threaded interrupt handling +- tipc: fix unique bearer names sanity check +- tipc: add extack messages for bearer/media failure +- bus: ti-sysc: Fix flakey idling of uarts and stop using swsup_sidle_act +- ARM: dts: imx: emcon-avari: Fix nxp,pca8574 #gpio-cells +- ARM: dts: imx7d-pico: Fix the 'tuning-step' property +- ARM: dts: imx7d-meerkat96: Fix the 'tuning-step' property +- arm64: dts: freescale: sl28: var4: fix RGMII clock and voltage +- arm64: dts: zii-ultra: fix 12V_MAIN voltage +- arm64: dts: ls1028a: fix memory node +- bus: ti-sysc: Fix am335x resume hang for usb otg module +- optee: use export_uuid() to copy client UUID +- arm64: dts: ti: j7200-main: Mark Main NAVSS as dma-coherent +- ixgbe: add correct exception tracing for XDP +- ixgbe: optimize for XDP_REDIRECT in xsk path +- ice: add correct exception tracing for XDP +- ice: optimize for XDP_REDIRECT in xsk path +- ice: simplify ice_run_xdp +- i40e: add correct exception tracing for XDP +- i40e: optimize for XDP_REDIRECT in xsk path +- cxgb4: avoid link re-train during TC-MQPRIO configuration +- i2c: qcom-geni: Add shutdown callback for i2c +- ice: Allow all LLDP packets from PF to Tx +- ice: report supported and advertised autoneg using PHY capabilities +- ice: handle the VF VSI rebuild failure +- ice: Fix VFR issues for AVF drivers that expect ATQLEN cleared +- ice: Fix allowing VF to request more/less queues via virtchnl +- ipv6: Fix KASAN: slab-out-of-bounds Read in fib6_nh_flush_exceptions +- cxgb4: fix regression with HASH tc prio value update +- ixgbevf: add correct exception tracing for XDP +- igb: add correct exception tracing for XDP +- ieee802154: fix error return code in ieee802154_llsec_getparams() +- ieee802154: fix error return code in ieee802154_add_iface() +- bpf, lockdown, audit: Fix buggy SELinux lockdown permission checks +- bpf: Simplify cases in bpf_base_func_proto +- drm/i915/selftests: Fix return value check in live_breadcrumbs_smoketest() +- netfilter: nfnetlink_cthelper: hit EBUSY on updates if size mismatches +- netfilter: nft_ct: skip expectations for confirmed conntrack +- nvmet: fix freeing unallocated p2pmem +- net/mlx5: DR, Create multi-destination flow table with level less than 64 +- net/mlx5e: Check for needed capability for cvlan matching +- net/mlx5: Check firmware sync reset requested is set before trying to abort it +- net/mlx5e: Fix incompatible casting +- net/tls: Fix use-after-free after the TLS device goes down and up +- net/tls: Replace TLS_RX_SYNC_RUNNING with RCU +- net: sock: fix in-kernel mark setting +- net: dsa: tag_8021q: fix the VLAN IDs used for encoding sub-VLANs +- perf probe: Fix NULL pointer dereference in convert_variable_location() +- ACPICA: Clean up context mutex during object deletion +- nvme-rdma: fix in-casule data send for chained sgls +- mptcp: always parse mptcp options for MPC reqsk +- net/sched: act_ct: Fix ct template allocation for zone 0 +- net/sched: act_ct: Offload connections with commit action +- devlink: Correct VIRTUAL port to not have phys_port attributes +- HID: i2c-hid: fix format string mismatch +- HID: pidff: fix error return code in hid_pidff_init() +- HID: logitech-hidpp: initialize level variable +- ipvs: ignore IP_VS_SVC_F_HASHED flag when adding service +- vfio/platform: fix module_put call in error flow +- samples: vfio-mdev: fix error handing in mdpy_fb_probe() +- vfio/pci: zap_vma_ptes() needs MMU +- vfio/pci: Fix error return code in vfio_ecap_init() +- efi: cper: fix snprintf() use in cper_dimm_err_location() +- efi/libstub: prevent read overflow in find_file_option() +- efi: Allow EFI_MEMORY_XP and EFI_MEMORY_RO both to be cleared +- efi/fdt: fix panic when no valid fdt found +- netfilter: conntrack: unregister ipv4 sockopts on error unwind +- hwmon: (pmbus/isl68137) remove READ_TEMPERATURE_3 for RAA228228 +- hwmon: (dell-smm-hwmon) Fix index values +- net: usb: cdc_ncm: don't spew notifications +- btrfs: tree-checker: do not error out if extent ref hash doesn't match +- ext4: fix bug on in ext4_es_cache_extent as ext4_split_extent_at failed +- usb: core: reduce power-on-good delay time of root hub +- neighbour: Prevent Race condition in neighbour subsytem +- scripts/clang-tools: switch explicitly to Python 3 +- net: hso: bail out on interrupt URB allocation failure +- Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference"" +- SUNRPC: More fixes for backlog congestion +- bpftool: Add sock_release help info for cgroup attach/prog load command +- net: hns3: check the return of skb_checksum_help() +- samples/bpf: Consider frame size in tx_only of xdpsock sample +- i915: fix build warning in intel_dp_get_link_status() +- net: mvpp2: add buffer header handling in RX +- net: zero-initialize tc skb extension on allocation +- MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c +- MIPS: alchemy: xxs1500: add gpio-au1000.h header file +- net: hsr: fix mac_len checks +- sch_dsmark: fix a NULL deref in qdisc_reset() +- net: ethernet: mtk_eth_soc: Fix packet statistics support for MT7628/88 +- ALSA: usb-audio: scarlett2: snd_scarlett_gen2_controls_create() can be static +- ipv6: record frag_max_size in atomic fragments in input path +- net: lantiq: fix memory corruption in RX ring +- scsi: libsas: Use _safe() loop in sas_resume_port() +- ASoC: qcom: lpass-cpu: Use optional clk APIs +- ixgbe: fix large MTU request from VF +- bpf: Set mac_len in bpf_skb_change_head +- bpf, offload: Reorder offload callback 'prepare' in verifier +- ASoC: cs35l33: fix an error code in probe() +- staging: emxx_udc: fix loop in _nbu2ss_nuke() +- cxgb4: avoid accessing registers when clearing filters +- iommu/vt-d: Use user privilege for RID2PASID translation +- net: hns3: put off calling register_netdev() until client initialize complete +- net: hns3: fix incorrect resp_msg issue +- iommu/virtio: Add missing MODULE_DEVICE_TABLE +- gve: Correct SKB queue index validation. +- gve: Upgrade memory barrier in poll routine +- gve: Add NULL pointer checks when freeing irqs. +- gve: Update mgmt_msix_idx if num_ntfy changes +- gve: Check TX QPL was actually assigned +- net/smc: remove device from smcd_dev_list after failed device_add() +- mld: fix panic in mld_newpack() +- bnxt_en: Fix context memory setup for 64K page size. +- bnxt_en: Include new P5 HV definition in VF check. +- net: bnx2: Fix error return code in bnx2_init_board() +- net: hso: check for allocation failure in hso_create_bulk_serial_device() +- net: sched: fix tx action reschedule issue with stopped queue +- net: sched: fix tx action rescheduling issue during deactivation +- net: sched: fix packet stuck problem for lockless qdisc +- tls splice: check SPLICE_F_NONBLOCK instead of MSG_DONTWAIT +- openvswitch: meter: fix race when getting now_ms. +- cxgb4/ch_ktls: Clear resources when pf4 device is removed +- net: mdio: octeon: Fix some double free issues +- net: mdio: thunder: Fix a double free issue in the .remove function +- chelsio/chtls: unlock on error in chtls_pt_recvmsg() +- net: fec: fix the potential memory leak in fec_enet_init() +- net: packetmmap: fix only tx timestamp on request +- net: really orphan skbs tied to closing sk +- spi: Assume GPIO CS active high in ACPI case +- vfio-ccw: Check initialized flag in cp_init() +- net: ipa: memory region array is variable size +- net: stmmac: Fix MAC WoL not working if PHY does not support WoL +- ASoC: cs42l42: Regmap must use_single_read/write +- interconnect: qcom: Add missing MODULE_DEVICE_TABLE +- interconnect: qcom: bcm-voter: add a missing of_node_put() +- net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count +- net: netcp: Fix an error message +- linux/bits.h: fix compilation error with GENMASK +- block: fix a race between del_gendisk and BLKRRPART +- platform/x86: touchscreen_dmi: Add info for the Chuwi Hi10 Pro (CWI529) tablet +- drm/amdgpu: stop touching sched.ready in the backend +- drm/amd/amdgpu: fix a potential deadlock in gpu reset +- drm/amdgpu: Fix a use-after-free +- drm/amd/amdgpu: fix refcount leak +- drm/amd/display: Disconnect non-DP with no EDID +- SMB3: incorrect file id in requests compounded with open +- platform/x86: touchscreen_dmi: Add info for the Mediacom Winpad 7.0 W700 tablet +- platform/x86: intel_punit_ipc: Append MODULE_DEVICE_TABLE for ACPI +- platform/x86: hp-wireless: add AMD's hardware id to the supported list +- btrfs: do not BUG_ON in link_to_fixup_dir +- btrfs: release path before starting transaction when cloning inline extent +- scsi: pm80xx: Fix drives missing during rmmod/insmod loop +- openrisc: Define memory barrier mb +- scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic +- scsi: ufs: ufs-mediatek: Fix power down spec violation +- btrfs: return whole extents in fiemap +- brcmfmac: properly check for bus register errors +- Revert "brcmfmac: add a check for the status of usb_register" +- net: liquidio: Add missing null pointer checks +- Revert "net: liquidio: fix a NULL pointer dereference" +- media: gspca: properly check for errors in po1030_probe() +- Revert "media: gspca: Check the return value of write_bridge for timeout" +- media: gspca: mt9m111: Check write_bridge for timeout +- Revert "media: gspca: mt9m111: Check write_bridge for timeout" +- media: dvb: Add check on sp8870_readreg return +- Revert "media: dvb: Add check on sp8870_readreg" +- ASoC: cs43130: handle errors in cs43130_probe() properly +- Revert "ASoC: cs43130: fix a NULL pointer dereference" +- libertas: register sysfs groups properly +- Revert "libertas: add checks for the return value of sysfs_create_group" +- dmaengine: qcom_hidma: comment platform_driver_register call +- Revert "dmaengine: qcom_hidma: Check for driver register failure" +- isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info +- Revert "isdn: mISDN: Fix potential NULL pointer dereference of kzalloc" +- ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd() +- Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()" +- isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io +- Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference" +- Revert "ALSA: usx2y: Fix potential NULL pointer dereference" +- Revert "ALSA: gus: add a check of the status of snd_ctl_add" +- char: hpet: add checks after calling ioremap +- Revert "char: hpet: fix a missing check of ioremap" +- net: caif: remove BUG_ON(dev == NULL) in caif_xmit +- Revert "net: caif: replace BUG_ON with recovery code" +- net/smc: properly handle workqueue allocation failure +- Revert "net/smc: fix a NULL pointer dereference" +- net: fujitsu: fix potential null-ptr-deref +- Revert "net: fujitsu: fix a potential NULL pointer dereference" +- serial: max310x: unregister uart driver in case of failure and abort +- Revert "serial: max310x: pass return value of spi_register_driver" +- Revert "ALSA: sb: fix a missing check of snd_ctl_add" +- Revert "media: usb: gspca: add a missed check for goto_low_power" +- Revert "crypto: cavium/nitrox - add an error message to explain the failure of pci_request_mem_regions" +- gpio: cadence: Add missing MODULE_DEVICE_TABLE +- platform/x86: hp_accel: Avoid invoking _INI to speed up resume +- mptcp: fix data stream corruption +- mptcp: drop unconditional pr_warn on bad opt +- mptcp: avoid error message on infinite mapping +- nvmet-tcp: fix inline data size comparison in nvmet_tcp_queue_response +- perf jevents: Fix getting maximum number of fds +- afs: Fix the nlink handling of dir-over-dir rename +- i2c: sh_mobile: Use new clock calculation formulas for RZ/G2E +- i2c: i801: Don't generate an interrupt on bus reset +- i2c: mediatek: Disable i2c start_en and clear intr_stat brfore reset +- i2c: s3c2410: fix possible NULL pointer deref on read message after write +- net: dsa: sja1105: fix VL lookup command packing for P/Q/R/S +- net: dsa: sja1105: call dsa_unregister_switch when allocating memory fails +- net: dsa: sja1105: add error handling in sja1105_setup() +- net: dsa: sja1105: error out on unsupported PHY mode +- net: dsa: sja1105: use 4095 as the private VLAN for untagged traffic +- net: dsa: sja1105: update existing VLANs from the bridge VLAN list +- net: dsa: fix a crash if ->get_sset_count() fails +- net: dsa: mt7530: fix VLAN traffic leaks +- netfilter: flowtable: Remove redundant hw refresh bit +- spi: spi-fsl-dspi: Fix a resource leak in an error handling path +- tipc: skb_linearize the head skb when reassembling msgs +- tipc: wait and exit until all work queues are done +- Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv" +- SUNRPC in case of backlog, hand free slots directly to waiting task +- net/mlx5: Set term table as an unmanaged flow table +- net/mlx4: Fix EEPROM dump support +- net/mlx5e: Fix null deref accessing lag dev +- net/mlx5: Set reformat action when needed for termination rules +- net/mlx5e: Fix nullptr in add_vlan_push_action() +- {net,vdpa}/mlx5: Configure interface MAC into mpfs L2 table +- net/mlx5e: Fix error path of updating netdev queues +- net/mlx5e: Fix multipath lag activation +- net/mlx5e: reset XPS on error flow if netdev isn't registered yet +- drm/meson: fix shutdown crash when component not probed +- NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config +- NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce() +- NFS: Fix an Oopsable condition in __nfs_pageio_add_request() +- NFS: fix an incorrect limit in filelayout_decode_layout() +- fs/nfs: Use fatal_signal_pending instead of signal_pending +- Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails +- net: usb: fix memory leak in smsc75xx_bind +- usb: typec: mux: Fix matching with typec_altmode_desc +- usb: gadget: udc: renesas_usb3: Fix a race in usb3_start_pipen() +- usb: dwc3: gadget: Properly track pending and queued SG +- thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID +- USB: serial: pl2303: add device id for ADLINK ND-6530 GC +- USB: serial: ftdi_sio: add IDs for IDS GmbH Products +- USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011 +- USB: serial: ti_usb_3410_5052: add startech.com device id +- serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait' +- serial: sh-sci: Fix off-by-one error in FIFO threshold register setting +- serial: tegra: Fix a mask operation that is always true +- drivers: base: Fix device link removal +- USB: usbfs: Don't WARN about excessively large memory allocations +- Revert "irqbypass: do not start cons/prod when failed connect" +- USB: trancevibrator: fix control-request direction +- serial: 8250_pci: handle FL_NOIRQ board flag +- serial: 8250_pci: Add support for new HPE serial device +- serial: 8250_dw: Add device HID for new AMD UART controller +- serial: 8250: Add UART_BUG_TXRACE workaround for Aspeed VUART +- iio: adc: ad7192: handle regulator voltage error first +- iio: adc: ad7192: Avoid disabling a clock that was never enabled. +- iio: adc: ad7793: Add missing error code in ad7793_setup() +- iio: adc: ad7923: Fix undersized rx buffer. +- iio: adc: ad7124: Fix potential overflow due to non sequential channel numbers +- iio: adc: ad7124: Fix missbalanced regulator enable / disable on error. +- iio: adc: ad7768-1: Fix too small buffer passed to iio_push_to_buffers_with_timestamp() +- iio: dac: ad5770r: Put fwnode in error case during ->probe() +- iio: gyro: fxas21002c: balance runtime power in error path +- staging: iio: cdc: ad7746: avoid overwrite of num_channels +- mei: request autosuspend after sending rx flow control +- KVM: arm64: Prevent mixed-width VM creation +- KVM: X86: Fix vCPU preempted state from guest's point of view +- thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue +- thunderbolt: usb4: Fix NVM read buffer bounds and offset issue +- misc/uss720: fix memory leak in uss720_probe +- serial: core: fix suspicious security_locked_down() call +- seccomp: Refactor notification handler to prepare for new semantics +- Documentation: seccomp: Fix user notification documentation +- kgdb: fix gcc-11 warnings harder +- selftests/gpio: Fix build when source tree is read only +- selftests/gpio: Move include of lib.mk up +- selftests/gpio: Use TEST_GEN_PROGS_EXTENDED +- drm/amdgpu/jpeg2.0: add cancel_delayed_work_sync before power gate +- drm/amdgpu/vcn2.5: add cancel_delayed_work_sync before power gate +- drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate +- drm/amdkfd: correct sienna_cichlid SDMA RLC register offset error +- drm/amdgpu/vcn1: add cancel_delayed_work_sync before power gate +- drm/amd/pm: correct MGpuFanBoost setting +- dm snapshot: properly fix a crash when an origin has no snapshots +- ath11k: Clear the fragment cache during key install +- ath10k: Validate first subframe of A-MSDU before processing the list +- ath10k: Fix TKIP Michael MIC verification for PCIe +- ath10k: drop MPDU which has discard flag set by firmware for SDIO +- ath10k: drop fragments with multicast DA for SDIO +- ath10k: drop fragments with multicast DA for PCIe +- ath10k: add CCMP PN replay protection for fragmented frames for PCIe +- mac80211: extend protection against mixed key and fragment cache attacks +- mac80211: do not accept/forward invalid EAPOL frames +- mac80211: prevent attacks on TKIP/WEP as well +- mac80211: check defrag PN against current frame +- mac80211: add fragment cache to sta_info +- mac80211: drop A-MSDUs on old ciphers +- cfg80211: mitigate A-MSDU aggregation attacks +- mac80211: properly handle A-MSDUs that start with an RFC 1042 header +- mac80211: prevent mixed key and fragment cache attacks +- mac80211: assure all fragments are encrypted +- netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version +- net/sched: fq_pie: fix OOB access in the traffic path +- net/sched: fq_pie: re-factor fix for fq_pie endless loop +- net: hso: fix control-request directions +- proc: Check /proc/$pid/attr/ writes against file opener +- perf scripts python: exported-sql-viewer.py: Fix warning display +- perf scripts python: exported-sql-viewer.py: Fix Array TypeError +- perf scripts python: exported-sql-viewer.py: Fix copy to clipboard from Top Calls by elapsed Time report +- perf intel-pt: Fix transaction abort handling +- perf intel-pt: Fix sample instruction bytes +- iommu/vt-d: Fix sysfs leak in alloc_iommu() +- NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return() +- cifs: set server->cipher_type to AES-128-CCM for SMB3.0 +- ALSA: usb-audio: scarlett2: Improve driver startup messages +- ALSA: usb-audio: scarlett2: Fix device hang with ehci-pci +- ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook Fury 17 G8 +- ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook Fury 15 G8 +- ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook G8 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP 855 G8 +- ALSA: hda/realtek: Chain in pop reduction fixup for ThinkStation P340 +- ALSA: hda/realtek: Headphone volume is controlled by Front mixer +- ALSA: hda/realtek: the bass speaker can't output sound on Yoga 9i +- sched: export sched_setscheduler symbol +- arm32: kaslr: Bugfix of BSS size calculation when enabled kaslr +- mm: Move HOLES_IN_ZONE into mm +- mm,hwpoison: return -EBUSY when migration fails +- livepatch: put memory alloc and free out stop machine +- livepatch/core: Support function force patched/unpatched +- livepatch/ppc64: Enable livepatch without ftrace +- livepatch/ppc64: Sample testcase fix ppc64 +- livepatch/ppc64: Ignore the first frame when checking stack +- livepatch/ppc64: Make sure caller function in stack +- livepatch/ppc64: Use module_alloc to alloc func_node +- livepatch/ppc64: Implement per func_node livepatch trampoline +- livepatch/ppc64: Check active func in consistency stack checking +- livepatch/ppc64: Support use func_descr for new_func +- livepatch/ppc64: Implement livepatch without ftrace for ppc64be +- livepatch/ppc32: Ignore the first frame when checking stack +- livepatch/ppc32: Check active func in consistency stack checking +- livepatch/ppc32: Fix current backtracking in klp_check_calltrace +- livepatch/ppc32: Fix func size less than limit +- livepatch/ppc32: Add support for longjump +- livepatch/ppc32: Support livepatch without ftrace +- livepatch/x86: check active func in consistency stack checking +- livepatch/x86: support livepatch without ftrace +- livepatch/core: Revert module_enable_ro and module_disable_ro +- livepatch/arm: Check active func in consistency stack checking +- livepatch/arm: Add support for livepatch plt +- livepatch/arm: Fix current backtracking in klp_check_calltrace +- livepatch/arm: Support livepatch without ftrace +- livepatch/core: Add support for arm for klp relocation +- arm/module: Use plt section indices for relocations +- livepatch/core: Add livepatch consistency depends +- livepatch/arm64: check active func in consistency stack checking +- livepatch/arm64: Fix current backtracking in klp_check_calltrace +- livepatch/arm64: Fix func size less than limit +- livepatch/arm64: Support livepatch without ftrace +- livepatch/core: Support jump_label +- livepatch/core: Supprt load and unload hooks +- livepatch/core: Split livepatch consistency +- livepatch/core: Restrict livepatch patched/unpatched when plant kprobe +- livepatch/core: Allow implementation without ftrace +- DEBUG: iommu: Sanity-check of page requests +- DEBUG: iommu/arm-smmu-v3: Add SVA trace events +- TESTING: vfio: Add support for Shared Virtual Addressing +- iommu: Add group variant for SVA bind/unbind +- mm: export symbol mmput_async +- mm: export symbol find_get_task_by_vpid +- mm: export symbol mm_access +- iommu/arm-smmu-v3: Support auxiliary domains +- iommu: Use device fault trace event +- trace/iommu: Add sva trace events +- iommu: handle page response timeout +- iommu: Add a timeout parameter for PRQ response +- iommu: Introduce attach/detach_pasid_table API +- Documentation: Generalize the "pci=noats" boot parameter +- PCI: Support ats-supported device-tree property +- arm64: dts: fast models: Enable PCIe ATS for Base RevC FVP +- dt-bindings: PCI: generic: Add ats-supported property +- iommu/arm-smmu-v3: Ratelimit event dump +- iommu/arm-smmu-v3: Add support for Hardware Translation Table Update +- iommu/arm-smmu-v3: Enable broadcast TLB maintenance +- iommu/arm-smmu-v3: Add support for PRI +- PCI/ATS: Export PRI functions +- PCI/ATS: Add PRI stubs +- mm: notify remote TLBs when dirtying a PTE +- iommu/arm-smmu-v3: Add stall support for platform devices +- ACPI/IORT: Enable stall support for platform devices +- dt-bindings: document stall property for IOMMU masters +- NFC: nci: fix memory leak in nci_allocate_device +- perf unwind: Set userdata for all __report_module() paths +- perf unwind: Fix separate debug info files when using elfutils' libdw's unwinder +- KVM: x86: Defer vtime accounting 'til after IRQ handling +- context_tracking: Move guest exit vtime accounting to separate helpers +- context_tracking: Move guest exit context tracking to separate helpers +- bpf: No need to simulate speculative domain for immediates +- bpf: Fix mask direction swap upon off reg sign change +- bpf: Wrap aux data inside bpf_sanitize_info container +- mm/page_alloc: fix counting of managed_pages +- mm: page_alloc: refactor setup_per_zone_lowmem_reserve() +- dm verity: allow only one error handling mode +- Bluetooth: SMP: Fail if remote and local public keys are identical +- video: hgafb: correctly handle card detect failure during probe +- nvmet: use new ana_log_size instead the old one +- x86/boot/compressed/64: Check SEV encryption in the 32-bit boot-path +- rtc: pcf85063: fallback to parent of_node +- nvme-multipath: fix double initialization of ANA state +- x86/Xen: swap NX determination and GDT setup on BSP +- openrisc: mm/init.c: remove unused memblock_region variable in map_ram() +- drm/i915/gt: Disable HiZ Raw Stall Optimization on broken gen7 +- tty: vt: always invoke vc->vc_sw->con_resize callback +- vt: Fix character height handling with VT_RESIZEX +- vt_ioctl: Revert VT_RESIZEX parameter handling removal +- vgacon: Record video mode changes with VT_RESIZEX +- video: hgafb: fix potential NULL pointer dereference +- qlcnic: Add null check after calling netdev_alloc_skb +- leds: lp5523: check return value of lp5xx_read and jump to cleanup code +- ics932s401: fix broken handling of errors when word reading fails +- net: rtlwifi: properly check for alloc_workqueue() failure +- scsi: ufs: handle cleanup correctly on devm_reset_control_get error +- net: stmicro: handle clk_prepare() failure during init +- ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read() +- Revert "niu: fix missing checks of niu_pci_eeprom_read" +- Revert "qlcnic: Avoid potential NULL pointer dereference" +- Revert "rtlwifi: fix a potential NULL pointer dereference" +- Revert "media: rcar_drif: fix a memory disclosure" +- cdrom: gdrom: initialize global variable at init time +- cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom +- Revert "gdrom: fix a memory leak bug" +- Revert "scsi: ufs: fix a missing check of devm_reset_control_get" +- Revert "ecryptfs: replace BUG_ON with error handling code" +- Revert "video: imsttfb: fix potential NULL pointer dereferences" +- Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe" +- Revert "leds: lp5523: fix a missing check of return value of lp55xx_read" +- Revert "net: stmicro: fix a missing check of clk_prepare" +- Revert "video: hgafb: fix potential NULL pointer dereference" +- kcsan: Fix debugfs initcall return type +- dm snapshot: fix crash with transient storage and zero chunk size +- ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiry +- xen-pciback: reconfigure also from backend watch handler +- xen-pciback: redo VF placement in the virtual topology +- mmc: sdhci-pci-gli: increase 1.8V regulator wait +- powerpc/64s/syscall: Fix ptrace syscall info with scv syscalls +- powerpc/64s/syscall: Use pt_regs.trap to distinguish syscall ABI difference between sc and scv syscalls +- drm/amdgpu: update sdma golden setting for Navi12 +- drm/amdgpu: update gc golden setting for Navi12 +- drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang +- drm/amdgpu: Fix GPU TLB update error when PAGE_SIZE > AMDGPU_PAGE_SIZE +- x86/sev-es: Forward page-faults which happen during emulation +- x86/sev-es: Use __put_user()/__get_user() for data accesses +- x86/sev-es: Don't return NULL from sev_es_get_ghcb() +- x86/sev-es: Invalidate the GHCB after completing VMGEXIT +- x86/sev-es: Move sev_es_put_ghcb() in prep for follow on patch +- nvme-tcp: fix possible use-after-completion +- Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer dereference" +- rapidio: handle create_workqueue() failure +- Revert "rapidio: fix a NULL pointer dereference when create_workqueue() fails" +- uio_hv_generic: Fix a memory leak in error handling paths +- ALSA: hda/realtek: Add fixup for HP Spectre x360 15-df0xxx +- ALSA: hda/realtek: Add fixup for HP OMEN laptop +- ALSA: hda/realtek: Fix silent headphone output on ASUS UX430UA +- ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293 +- ALSA: hda/realtek: reset eapd coeff to default value for alc287 +- ALSA: firewire-lib: fix check for the size of isochronous packet payload +- Revert "ALSA: sb8: add a check for request_region" +- ALSA: hda: fixup headset for ASUS GU502 laptop +- ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro +- ALSA: usb-audio: Validate MS endpoint descriptors +- ALSA: firewire-lib: fix calculation for size of IR context payload +- ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26 +- ALSA: line6: Fix racy initialization of LINE6 MIDI +- ALSA: firewire-lib: fix amdtp_packet tracepoints event for packet_index field +- ALSA: intel8x0: Don't update period unless prepared +- ALSA: dice: fix stream format for TC Electronic Konnekt Live at high sampling transfer frequency +- misc: eeprom: at24: check suspend status before disable regulator +- cifs: fix memory leak in smb2_copychunk_range +- btrfs: avoid RCU stalls while running delayed iputs +- powerpc: Fix early setup to make early_ioremap() work +- locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal +- locking/lockdep: Correct calling tracepoints +- perf/x86: Avoid touching LBR_TOS MSR for Arch LBR +- nvmet: seset ns->file when open fails +- ptrace: make ptrace() fail if the tracee changed its pid unexpectedly +- powerpc/pseries: Fix hcall tracing recursion in pv queued spinlocks +- tools/testing/selftests/exec: fix link error +- RDMA/uverbs: Fix a NULL vs IS_ERR() bug +- RDMA/mlx5: Fix query DCT via DEVX +- platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios +- platform/x86: intel_int0002_vgpio: Only call enable_irq_wake() when using s2idle +- platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue +- nvme-fc: clear q_live at beginning of association teardown +- nvme-tcp: rerun io_work if req_list is not empty +- nvme-loop: fix memory leak in nvme_loop_create_ctrl() +- nvmet: fix memory leak in nvmet_alloc_ctrl() +- nvmet: remove unused ctrl->cqs +- RDMA/core: Don't access cm_id after its destruction +- RDMA/mlx5: Recover from fatal event in dual port mode +- scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword() +- scsi: qedf: Add pointer checks in qedf_update_link_speed() +- scsi: ufs: core: Increase the usable queue depth +- RDMA/rxe: Clear all QP fields if creation failed +- RDMA/core: Prevent divide-by-zero error triggered by the user +- RDMA/siw: Release xarray entry +- RDMA/siw: Properly check send and receive CQ pointers +- tee: amdtee: unload TA only when its refcount becomes 0 +- openrisc: Fix a memory leak +- firmware: arm_scpi: Prevent the ternary sign expansion bug +- scripts: switch explicitly to Python 3 +- tweewide: Fix most Shebang lines +- ipv6: remove extra dev_hold() for fallback tunnels +- ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods +- sit: proper dev_{hold|put} in ndo_[un]init methods +- ip6_gre: proper dev_{hold|put} in ndo_[un]init methods +- net: stmmac: Do not enable RX FIFO overflow interrupts +- lib: stackdepot: turn depot_lock spinlock to raw_spinlock +- block: reexpand iov_iter after read/write +- ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP +- net:CXGB4: fix leak if sk_buff is not used +- gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055 +- drm/amd/display: Fix two cursor duplication when using overlay +- nvmet: remove unsupported command noise +- net: hsr: check skb can contain struct hsr_ethhdr in fill_frame_info +- bridge: Fix possible races between assigning rx_handler_data and setting IFF_BRIDGE_PORT bit +- amdgpu/pm: Prevent force of DCEFCLK on NAVI10 and SIENNA_CICHLID +- scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found +- ceph: don't allow access to MDS-private inodes +- ceph: don't clobber i_snap_caps on non-I_NEW inode +- ceph: fix fscache invalidation +- scsi: lpfc: Fix illegal memory access on Abort IOCBs +- riscv: Workaround mcount name prior to clang-13 +- scripts/recordmcount.pl: Fix RISC-V regex for clang +- riscv: Use $(LD) instead of $(CC) to link vDSO +- platform/chrome: cros_ec_typec: Add DP mode check +- ARM: 9075/1: kernel: Fix interrupted SMC calls +- um: Disable CONFIG_GCOV with MODULES +- um: Mark all kernel symbols as local +- NFS: NFS_INO_REVAL_PAGECACHE should mark the change attribute invalid +- Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state +- Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated devices +- PCI: tegra: Fix runtime PM imbalance in pex_ep_event_pex_rst_deassert() +- ACPI / hotplug / PCI: Fix reference count leak in enable_slot() +- ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend() +- dmaengine: dw-edma: Fix crash on loading/unloading driver +- PCI: thunder: Fix compile testing +- virtio_net: Do not pull payload in skb->head +- isdn: capi: fix mismatched prototypes +- cxgb4: Fix the -Wmisleading-indentation warning +- usb: sl811-hcd: improve misleading indentation +- kgdb: fix gcc-11 warning on indentation +- airo: work around stack usage warning +- drm/i915/display: fix compiler warning about array overrun +- x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes +- ASoC: rsnd: check all BUSIF status when error +- nvme: do not try to reconfigure APST when the controller is not live +- ext4: fix debug format string warning +- debugfs: Make debugfs_allow RO after init +- dt-bindings: serial: 8250: Remove duplicated compatible strings +- dt-bindings: media: renesas,vin: Make resets optional on R-Car Gen1 +- i2c: mediatek: Fix send master code at more than 1MHz +- media: rkvdec: Remove of_match_ptr() +- clk: exynos7: Mark aclk_fsys1_200 as critical +- drm/i915: Fix crash in auto_retire +- drm/i915/overlay: Fix active retire callback alignment +- drm/i915: Read C0DRB3/C1DRB3 as 16 bits again +- drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp +- kobject_uevent: remove warning in init_uevent_argv() +- usb: typec: tcpm: Fix error while calculating PPS out values +- clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940 +- clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue +- MIPS: Avoid handcoded DIVU in `__div64_32' altogether +- MIPS: Avoid DIVU in `__div64_32' is result would be zero +- MIPS: Reinstate platform `__div64_32' handler +- mm: fix struct page layout on 32-bit systems +- iommu/vt-d: Remove WO permissions on second-level paging entries +- iommu/vt-d: Preset Access/Dirty bits for IOVA over FL +- Revert "iommu/vt-d: Preset Access/Dirty bits for IOVA over FL" +- Revert "iommu/vt-d: Remove WO permissions on second-level paging entries" +- KVM: VMX: Disable preemption when probing user return MSRs +- KVM: VMX: Do not advertise RDPID if ENABLE_RDTSCP control is unsupported +- KVM: nVMX: Always make an attempt to map eVMCS after migration +- KVM: x86: Move RDPID emulation intercept to its own enum +- KVM: x86: Emulate RDPID only if RDTSCP is supported +- xen/gntdev: fix gntdev_mmap() error exit path +- cdc-wdm: untangle a circular dependency between callback and softint +- iio: tsl2583: Fix division by a zero lux_val +- iio: gyro: mpu3050: Fix reported temperature value +- xhci: Add reset resume quirk for AMD xhci controller. +- xhci: Do not use GFP_KERNEL in (potentially) atomic context +- xhci-pci: Allow host runtime PM as default for Intel Alder Lake xHCI +- usb: typec: ucsi: Put fwnode in any case during ->probe() +- usb: typec: ucsi: Retrieve all the PDOs instead of just the first 4 +- usb: dwc3: gadget: Return success always for kick transfer in ep queue +- usb: dwc3: gadget: Enable suspend events +- usb: core: hub: fix race condition about TRSMRCY of resume +- usb: dwc2: Fix gadget DMA unmap direction +- usb: xhci: Increase timeout for HC halt +- usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield +- usb: dwc3: omap: improve extcon initialization +- blk-mq: Swap two calls in blk_mq_exit_queue() +- blk-mq: plug request for shared sbitmap +- nbd: Fix NULL pointer in flush_workqueue +- f2fs: compress: fix to assign cc.cluster_idx correctly +- f2fs: compress: fix race condition of overwrite vs truncate +- f2fs: compress: fix to free compress page correctly +- nvmet-rdma: Fix NULL deref when SEND is completed with error +- nvmet: fix inline bio check for bdev-ns +- nvmet: add lba to sect conversion helpers +- kyber: fix out of bounds access when preempted +- ACPI: scan: Fix a memory leak in an error handling path +- usb: musb: Fix an error message +- hwmon: (occ) Fix poll rate limiting +- usb: fotg210-hcd: Fix an error message +- iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER +- iio: proximity: pulsedlight: Fix rumtime PM imbalance on error +- iio: light: gp2ap002: Fix rumtime PM imbalance on error +- usb: dwc3: gadget: Free gadget structure only after freeing endpoints +- perf tools: Fix dynamic libbpf link +- xen/unpopulated-alloc: fix error return code in fill_list() +- xen/unpopulated-alloc: consolidate pgmap manipulation +- dax: Wake up all waiters after invalidating dax entry +- dax: Add a wakeup mode parameter to put_unlocked_entry() +- dax: Add an enum for specifying dax wakup mode +- KVM: x86: Prevent deadlock against tk_core.seq +- KVM: x86: Cancel pvclock_gtod_work on module removal +- drm/msm/dp: initialize audio_comp when audio starts +- KVM: LAPIC: Accurately guarantee busy wait for timer to expire when using hv_timer +- kvm: exit halt polling on need_resched() as well +- drm/i915: Avoid div-by-zero on gen2 +- drm/amd/display: Initialize attribute for hdcp_srm sysfs file +- drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected +- btrfs: fix race leading to unpersisted data and metadata on fsync +- arm64: Fix race condition on PG_dcache_clean in __sync_icache_dcache() +- arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup +- blk-iocost: fix weight updates of inner active iocgs +- mm/hugetlb: fix F_SEAL_FUTURE_WRITE +- kasan: fix unit tests with CONFIG_UBSAN_LOCAL_BOUNDS enabled +- userfaultfd: release page in error path to avoid BUG_ON +- squashfs: fix divide error in calculate_skip() +- hfsplus: prevent corruption in shrinking truncate +- powerpc/64s: Fix crashes when toggling entry flush barrier +- powerpc/64s: Fix crashes when toggling stf barrier +- ARC: mm: Use max_high_pfn as a HIGHMEM zone border +- ARC: mm: PAE: use 40-bit physical page mask +- ARC: entry: fix off-by-one error in syscall number validation +- f2fs: avoid unneeded data copy in f2fs_ioc_move_range() +- mptcp: fix splat when closing unaccepted socket +- i40e: Fix PHY type identifiers for 2.5G and 5G adapters +- i40e: fix the restart auto-negotiation after FEC modified +- i40e: Fix use-after-free in i40e_client_subtask() +- i40e: fix broken XDP support +- netfilter: nftables: avoid overflows in nft_hash_buckets() +- kernel/resource: make walk_mem_res() find all busy IORESOURCE_MEM resources +- kernel/resource: make walk_system_ram_res() find all busy IORESOURCE_SYSTEM_RAM resources +- kernel: kexec_file: fix error return code of kexec_calculate_store_digests() +- fs/proc/generic.c: fix incorrect pde_is_permanent check +- sched/fair: Fix unfairness caused by missing load decay +- sched: Fix out-of-bound access in uclamp +- can: m_can: m_can_tx_work_queue(): fix tx_skb race condition +- can: mcp251x: fix resume from sleep before interface was brought up +- can: mcp251xfd: mcp251xfd_probe(): add missing can_rx_offload_del() in error path +- netfilter: nftables: Fix a memleak from userdata error path in new objects +- netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check +- smc: disallow TCP_ULP in smc_setsockopt() +- net: fix nla_strcmp to handle more then one trailing null character +- ethtool: fix missing NLM_F_MULTI flag when dumping +- mm/gup: check for isolation errors +- mm/gup: return an error on migration failure +- mm/gup: check every subpage of a compound page during isolation +- ksm: fix potential missing rmap_item for stable_node +- mm/migrate.c: fix potential indeterminate pte entry in migrate_vma_insert_page() +- mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts() +- khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate() +- arm64: entry: always set GIC_PRIO_PSR_I_SET during entry +- arm64: entry: factor irq triage logic into macros +- drm/radeon: Avoid power table parsing memory leaks +- drm/radeon: Fix off-by-one power_state index heap overwrite +- net: stmmac: Clear receive all(RA) bit when promiscuous mode is off +- xsk: Fix for xp_aligned_validate_desc() when len == chunk_size +- netfilter: xt_SECMARK: add new revision to fix structure layout +- sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b +- ethernet:enic: Fix a use after free bug in enic_hard_start_xmit +- block/rnbd-clt: Check the return value of the function rtrs_clt_query +- block/rnbd-clt: Change queue_depth type in rnbd_clt_session to size_t +- libbpf: Fix signed overflow in ringbuf_process_ring +- sunrpc: Fix misplaced barrier in call_decode +- RISC-V: Fix error code returned by riscv_hartid_to_cpuid() +- sctp: do asoc update earlier in sctp_sf_do_dupcook_a +- net: hns3: disable phy loopback setting in hclge_mac_start_phy +- net: hns3: use netif_tx_disable to stop the transmit queue +- net: hns3: fix for vxlan gpe tx checksum bug +- net: hns3: add check for HNS3_NIC_STATE_INITED in hns3_reset_notify_up_enet() +- net: hns3: initialize the message content in hclge_get_link_mode() +- net: hns3: fix incorrect configuration for igu_egu_hw_err +- rtc: ds1307: Fix wday settings for rx8130 +- scsi: ufs: core: Narrow down fast path in system suspend path +- scsi: ufs: core: Cancel rpm_dev_flush_recheck_work during system suspend +- scsi: ufs: core: Do not put UFS power into LPM if link is broken +- scsi: qla2xxx: Prevent PRLI in target mode +- ceph: fix inode leak on getattr error in __fh_to_dentry +- swiotlb: Fix the type of index +- xprtrdma: rpcrdma_mr_pop() already does list_del_init() +- xprtrdma: Fix cwnd update ordering +- xprtrdma: Avoid Receive Queue wrapping +- pwm: atmel: Fix duty cycle calculation in .get_state() +- SUNRPC: fix ternary sign expansion bug in tracing +- dmaengine: idxd: fix cdev setup and free device lifetime issues +- dmaengine: idxd: fix dma device lifetime +- dmaengine: idxd: Fix potential null dereference on pointer status +- rtc: fsl-ftm-alarm: add MODULE_TABLE() +- nfsd: ensure new clients break delegations +- NFSv4.x: Don't return NFS4ERR_NOMATCHING_LAYOUT if we're unmounting +- thermal/drivers/tsens: Fix missing put_device error +- SUNRPC: Handle major timeout in xprt_adjust_timeout() +- SUNRPC: Remove trace_xprt_transmit_queued +- SUNRPC: Move fault injection call sites +- NFSv4.2 fix handling of sr_eof in SEEK's reply +- pNFS/flexfiles: fix incorrect size check in decode_nfs_fh() +- PCI: endpoint: Fix missing destroy_workqueue() +- NFS: Deal correctly with attribute generation counter overflow +- NFSv4.2: Always flush out writes in nfs42_proc_fallocate() +- NFS: Fix attribute bitmask in _nfs42_proc_fallocate() +- NFS: nfs4_bitmask_adjust() must not change the server global bitmasks +- rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data() +- f2fs: fix to avoid accessing invalid fio in f2fs_allocate_data_block() +- f2fs: Fix a hungtask problem in atomic write +- f2fs: fix to cover __allocate_new_section() with curseg_lock +- f2fs: fix to avoid touching checkpointed data in get_victim() +- PCI: endpoint: Fix NULL pointer dereference for ->get_features() +- PCI: endpoint: Make *_free_bar() to return error codes on failure +- PCI: endpoint: Add helper API to get the 'next' unreserved BAR +- PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR +- f2fs: fix to update last i_size if fallocate partially succeeds +- f2fs: fix to align to section for fallocate() on pinned file +- PCI: Release OF node in pci_scan_device()'s error path +- PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc() +- remoteproc: qcom_q6v5_mss: Validate p_filesz in ELF loader +- remoteproc: qcom_q6v5_mss: Replace ioremap with memremap +- f2fs: fix a redundant call to f2fs_balance_fs if an error occurs +- f2fs: fix panic during f2fs_resize_fs() +- f2fs: fix to allow migrating fully valid segment +- f2fs: fix compat F2FS_IOC_{MOVE,GARBAGE_COLLECT}_RANGE +- f2fs: move ioctl interface definitions to separated file +- thermal: thermal_of: Fix error return code of thermal_of_populate_bind_params() +- ASoC: rt286: Make RT286_SET_GPIO_* readable and writable +- watchdog: fix barriers when printing backtraces from all CPUs +- watchdog/softlockup: remove logic that tried to prevent repeated reports +- watchdog: explicitly update timestamp when reporting softlockup +- watchdog: rename __touch_watchdog() to a better descriptive name +- ia64: module: fix symbolizer crash on fdescr +- bnxt_en: Add PCI IDs for Hyper-V VF devices. +- kbuild: generate Module.symvers only when vmlinux exists +- selftests: mlxsw: Fix mausezahn invocation in ERSPAN scale test +- selftests: mlxsw: Increase the tolerance of backlog buildup +- net: ethernet: mtk_eth_soc: fix RX VLAN offload +- iavf: remove duplicate free resources calls +- powerpc/iommu: Annotate nested lock for lockdep +- qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth +- wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join +- wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt +- crypto: ccp: Free SEV device if SEV init fails +- mt76: mt7615: fix entering driver-own state on mt7663 +- drm/amdgpu: Add mem sync flag for IB allocated by SA +- drm/amd/display: add handling for hdcp2 rx id list validation +- drm/amd/display: fixed divide by zero kernel crash during dsc enablement +- powerpc/pseries: Stop calling printk in rtas_stop_self() +- samples/bpf: Fix broken tracex1 due to kprobe argument change +- net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule +- ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user() +- ASoC: rt286: Generalize support for ALC3263 codec +- powerpc/smp: Set numa node before updating mask +- flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target() +- sctp: Fix out-of-bounds warning in sctp_process_asconf_param() +- ALSA: hda/hdmi: fix race in handling acomp ELD notification at resume +- ASoC: Intel: sof_sdw: add quirk for new ADL-P Rvp +- ALSA: hda/realtek: Add quirk for Lenovo Ideapad S740 +- kconfig: nconf: stop endless search loops +- selftests: Set CC to clang in lib.mk if LLVM is set +- drm/amd/display: Force vsync flip when reconfiguring MPCC +- iommu/amd: Remove performance counter pre-initialization test +- Revert "iommu/amd: Fix performance counter initialization" +- ASoC: rsnd: call rsnd_ssi_master_clk_start() from rsnd_ssi_init() +- powerpc/mm: Add cond_resched() while removing hpte mappings +- iwlwifi: pcie: make cfg vs. trans_cfg more robust +- cuse: prevent clone +- virtiofs: fix userns +- fuse: invalidate attrs when page writeback completes +- mt76: mt7915: fix txpower init for TSSI off chips +- mt76: mt76x0: disable GTK offloading +- mt76: mt7615: support loading EEPROM for MT7613BE +- rtw88: 8822c: add LC calibration for RTL8822C +- pinctrl: samsung: use 'int' for register masks in Exynos +- mac80211: clear the beacon's CRC after channel switch +- IB/hfi1: Correct oversized ring allocation +- coresight: Do not scan for graph if none is present +- MIPS: Loongson64: Use _CACHE_UNCACHED instead of _CACHE_UNCACHED_ACCELERATED +- i2c: Add I2C_AQ_NO_REP_START adapter quirk +- ASoC: rt5670: Add a quirk for the Dell Venue 10 Pro 5055 +- Bluetooth: btusb: Enable quirk boolean flag for Mediatek Chip. +- ice: handle increasing Tx or Rx ring sizes +- ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet +- ip6_vti: proper dev_{hold|put} in ndo_[un]init methods +- net: hns3: add handling for xmit skb with recursive fraglist +- net: hns3: remediate a potential overflow risk of bd_num_list +- powerpc/32: Statically initialise first emergency context +- selftests/powerpc: Fix L1D flushing tests for Power10 +- Bluetooth: check for zapped sk before connecting +- net: bridge: when suppression is enabled exclude RARP packets +- net/sched: cls_flower: use ntohs for struct flow_dissector_key_ports +- Bluetooth: initialize skb_queue_head at l2cap_chan_create() +- Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default +- ALSA: bebob: enable to deliver MIDI messages for multiple ports +- ALSA: rme9652: don't disable if not enabled +- ALSA: hdspm: don't disable if not enabled +- ALSA: hdsp: don't disable if not enabled +- i2c: bail out early when RDWR parameters are wrong +- Bluetooth: Fix incorrect status handling in LE PHY UPDATE event +- ASoC: rsnd: core: Check convert rate in rsnd_hw_params +- net: stmmac: Set FIFO sizes for ipq806x +- net/mlx5e: Use net_prefetchw instead of prefetchw in MPWQE TX datapath +- ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF +- tipc: convert dest node's address to network order +- fs: dlm: flush swork on shutdown +- fs: dlm: check on minimum msglen size +- fs: dlm: add errno handling to check callback +- fs: dlm: fix debugfs dump +- ath11k: fix thermal temperature read +- kvm: Cap halt polling at kvm->max_halt_poll_ns +- cpufreq: intel_pstate: Use HWP if enabled by platform firmware +- PM: runtime: Fix unpaired parent child_count for force_resume +- ACPI: PM: Add ACPI ID of Alder Lake Fan +- KVM/VMX: Invoke NMI non-IST entry instead of IST entry +- KVM: x86/mmu: Remove the defunct update_pte() paging hook +- tpm, tpm_tis: Reserve locality in tpm_tis_resume() +- tpm, tpm_tis: Extend locality handling to TPM2 in tpm_tis_gen_interrupt() +- tpm: fix error return code in tpm2_get_cc_attrs_tbl() +- KEYS: trusted: Fix memory leak on object td +- sctp: delay auto_asconf init until binding the first addr +- Revert "net/sctp: fix race condition in sctp_destroy_sock" +- smp: Fix smp_call_function_single_async prototype +- net: Only allow init netns to set default tcp cong to a restricted algo +- bpf: Prevent writable memory-mapping of read-only ringbuf pages +- bpf, ringbuf: Deny reserve of buffers larger than ringbuf +- bpf: Fix alu32 const subreg bound tracking on bitwise operations +- afs: Fix speculative status fetches +- mm/memory-failure: unnecessary amount of unmapping +- mm/sparse: add the missing sparse_buffer_fini() in error branch +- mm: memcontrol: slab: fix obtain a reference to a freeing memcg +- mm/sl?b.c: remove ctor argument from kmem_cache_flags +- kfifo: fix ternary sign extension bugs +- ia64: fix EFI_DEBUG build +- perf session: Add swap operation for event TIME_CONV +- perf jit: Let convert_timestamp() to be backwards-compatible +- perf tools: Change fields type in perf_record_time_conv +- net:nfc:digital: Fix a double free in digital_tg_recv_dep_req +- net: bridge: mcast: fix broken length + header check for MRDv6 Adv. +- RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res +- RDMA/siw: Fix a use after free in siw_alloc_mr +- bpf: Fix propagation of 32 bit unsigned bounds from 64 bit bounds +- selftests/bpf: Fix core_reloc test runner +- selftests/bpf: Fix field existence CO-RE reloc tests +- selftests/bpf: Fix BPF_CORE_READ_BITFIELD() macro +- net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send +- KVM: VMX: Intercept FS/GS_BASE MSR accesses for 32-bit KVM +- bnxt_en: Fix RX consumer index logic in the error path. +- selftests: mlxsw: Remove a redundant if statement in tc_flower_scale test +- selftests: net: mirror_gre_vlan_bridge_1q: Make an FDB entry static +- net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb +- arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E +- ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E +- bnxt_en: fix ternary sign extension bug in bnxt_show_temp() +- net: enetc: fix link error again +- net: phy: marvell: fix m88e1111_set_downshift +- net: phy: marvell: fix m88e1011_set_downshift +- powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add') +- powerpc/perf: Fix the threshold event selection for memory events in power10 +- wlcore: Fix buffer overrun by snprintf due to incorrect buffer size +- ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock +- ath10k: Fix a use after free in ath10k_htc_send_bundle +- ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices +- powerpc/64: Fix the definition of the fixmap area +- RDMA/core: Add CM to restrack after successful attachment to a device +- RDMA/rxe: Fix a bug in rxe_fill_ip_info() +- net: phy: intel-xway: enable integrated led functions +- net: renesas: ravb: Fix a stuck issue when a lot of frames are received +- net: stmmac: fix TSO and TBS feature enabling during driver open +- nfp: devlink: initialize the devlink port attribute "lanes" +- crypto: ccp: Detect and reject "invalid" addresses destined for PSP +- mt76: mt7615: fix memleak when mt7615_unregister_device() +- net: davinci_emac: Fix incorrect masking of tx and rx error channel +- net: marvell: prestera: fix port event handling on init +- vsock/virtio: free queued packets when closing socket +- sfc: ef10: fix TX queue lookup in TX event handling +- ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails +- RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails +- RDMA/cxgb4: add missing qpid increment +- gro: fix napi_gro_frags() Fast GRO breakage due to IP alignment check +- net: ethernet: ixp4xx: Set the DMA masks explicitly +- libbpf: Initialize the bpf_seq_printf parameters array field by field +- vsock/vmci: log once the failed queue pair allocation +- netfilter: nftables_offload: special ethertype handling for VLAN +- netfilter: nftables_offload: VLAN id needs host byteorder in flow dissector +- netfilter: nft_payload: fix C-VLAN offload support +- mwl8k: Fix a double Free in mwl8k_probe_hw +- i2c: mediatek: Fix wrong dma sync flag +- i2c: sh7760: fix IRQ error path +- wlcore: fix overlapping snprintf arguments in debugfs +- rtlwifi: 8821ae: upgrade PHY and RF parameters +- KVM: x86: dump_vmcs should not assume GUEST_IA32_EFER is valid +- powerpc/smp: Reintroduce cpu_core_mask +- powerpc/pseries: extract host bridge from pci_bus prior to bus removal +- MIPS: pci-legacy: stop using of_pci_range_to_resource +- drm/amd/pm: fix error code in smu_set_power_limit() +- perf beauty: Fix fsconfig generator +- iommu/amd: Put newline after closing bracket in warning +- drm/i915/gvt: Fix error code in intel_gvt_init_device() +- net/packet: remove data races in fanout operations +- net/packet: make packet_fanout.arr size configurable up to 64K +- net/mlx5: Fix bit-wise and with zero +- ASoC: ak5558: correct reset polarity +- powerpc/xive: Fix xmon command "dxi" +- powerpc/xive: Drop check on irq_data in xive_core_debug_show() +- i2c: sh7760: add IRQ check +- i2c: rcar: add IRQ check +- i2c: rcar: protect against supurious interrupts on V3U +- i2c: rcar: make sure irq is not threaded on Gen2 and earlier +- i2c: mlxbf: add IRQ check +- i2c: jz4780: add IRQ check +- i2c: emev2: add IRQ check +- i2c: cadence: add IRQ check +- i2c: xiic: fix reference leak when pm_runtime_get_sync fails +- i2c: stm32f7: fix reference leak when pm_runtime_get_sync fails +- i2c: sprd: fix reference leak when pm_runtime_get_sync fails +- i2c: omap: fix reference leak when pm_runtime_get_sync fails +- i2c: imx: fix reference leak when pm_runtime_get_sync fails +- i2c: imx-lpi2c: fix reference leak when pm_runtime_get_sync fails +- i2c: img-scb: fix reference leak when pm_runtime_get_sync fails +- i2c: cadence: fix reference leak when pm_runtime_get_sync fails +- RDMA/rtrs-clt: destroy sysfs after removing session from active list +- RDMA/srpt: Fix error return code in srpt_cm_req_recv() +- net: thunderx: Fix unintentional sign extension issue +- cxgb4: Fix unintentional sign extension issues +- RDMA/bnxt_re: Fix error return code in bnxt_qplib_cq_process_terminal() +- IB/hfi1: Fix error return code in parse_platform_config() +- RDMA/qedr: Fix error return code in qedr_iw_connect() +- ovl: invalidate readdir cache on changes to dir with origin +- KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit +- mt76: mt7663s: fix the possible device hang in high traffic +- mt76: mt7663s: make all of packets 4-bytes aligned in sdio tx aggregation +- mt76: mt7915: fix mib stats counter reporting to mac80211 +- mt76: mt7615: fix mib stats counter reporting to mac80211 +- mt76: mt7915: fix aggr len debugfs node +- mt76: mt7915: fix tx skb dma unmap +- mt76: mt7615: fix tx skb dma unmap +- mt7601u: fix always true expression +- rtw88: Fix an error code in rtw_debugfs_set_rsvd_page() +- xfs: fix return of uninitialized value in variable error +- perf vendor events amd: Fix broken L2 Cache Hits from L2 HWPF metric +- mac80211: bail out if cipher schemes are invalid +- powerpc: iommu: fix build when neither PCI or IBMVIO is set +- powerpc/perf: Fix PMU constraint check for EBB events +- powerpc/64s: Fix pte update for kernel memory on radix +- IB/hfi1: Use kzalloc() for mmu_rb_handler allocation +- liquidio: Fix unintented sign extension of a left shift of a u16 +- ASoC: simple-card: fix possible uninitialized single_cpu local variable +- KVM: arm64: Initialize VCPU mdcr_el2 before loading it +- HID: lenovo: Map mic-mute button to KEY_F20 instead of KEY_MICMUTE +- HID: lenovo: Check hid_get_drvdata() returns non NULL in lenovo_event() +- HID: lenovo: Fix lenovo_led_set_tp10ubkbd() error handling +- HID: lenovo: Use brightness_set_blocking callback for setting LEDs brightness +- ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls +- iommu/vt-d: Invalidate PASID cache when root/context entry changed +- iommu/vt-d: Remove WO permissions on second-level paging entries +- iommu/vt-d: Preset Access/Dirty bits for IOVA over FL +- iommu/vt-d: Report the right page fault address +- iommu/vt-d: Report right snoop capability when using FL for IOVA +- iommu: Fix a boundary issue to avoid performance drop +- iommu/vt-d: Don't set then clear private data in prq_event_thread() +- mips: bmips: fix syscon-reboot nodes +- net: hns3: Limiting the scope of vector_ring_chain variable +- nfc: pn533: prevent potential memory corruption +- RDMA/core: Fix corrupted SL on passive side +- bug: Remove redundant condition check in report_bug +- net/tipc: fix missing destroy_workqueue() on error in tipc_crypto_start() +- powerpc/pseries: Only register vio drivers if vio bus exists +- udp: never accept GSO_FRAGLIST packets +- net: phy: lan87xx: fix access to wrong register of LAN87xx +- ALSA: core: remove redundant spin_lock pair in snd_card_disconnect +- gpio: guard gpiochip_irqchip_add_domain() with GPIOLIB_IRQCHIP +- MIPS/bpf: Enable bpf_probe_read{, str}() on MIPS again +- powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration +- IB/isert: Fix a use after free in isert_connect_request +- RDMA/mlx5: Fix drop packet rule in egress table +- iommu/arm-smmu-v3: add bit field SFM into GERROR_ERR_MASK +- ASoC: wm8960: Remove bitclk relax condition in wm8960_configure_sysclk +- MIPS: loongson64: fix bug when PAGE_SIZE > 16KB +- pinctrl: pinctrl-single: fix pcs_pin_dbg_show() when bits_per_mux is not zero +- pinctrl: pinctrl-single: remove unused parameter +- inet: use bigger hash table for IP ID generation +- ima: Fix the error code for restoring the PCR value +- MIPS: fix local_irq_{disable,enable} in asmmacro.h +- powerpc/prom: Mark identical_pvr_fixup as __init +- powerpc/fadump: Mark fadump_calculate_reserve_size as __init +- libbpf: Add explicit padding to btf_dump_emit_type_decl_opts +- selftests/bpf: Re-generate vmlinux.h and BPF skeletons if bpftool changed +- iommu/vt-d: Reject unsupported page request modes +- iommu: Check dev->iommu in iommu_dev_xxx functions +- bpftool: Fix maybe-uninitialized warnings +- libbpf: Add explicit padding to bpf_xdp_set_link_opts +- net: lapbether: Prevent racing when checking whether the netif is running +- Bluetooth: avoid deadlock between hci_dev->lock and socket lock +- KVM: x86/mmu: Retry page faults that hit an invalid memslot +- wilc1000: write value to WILC_INTR2_ENABLE register +- RDMA/mlx5: Fix mlx5 rates to IB rates map +- ASoC: Intel: Skylake: Compile when any configuration is selected +- ASoC: Intel: boards: sof-wm8804: add check for PLL setting +- perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars +- HID: plantronics: Workaround for double volume key presses +- xsk: Respect device's headroom and tailroom on generic xmit path +- drivers/block/null_blk/main: Fix a double free in null_init. +- sched/debug: Fix cgroup_path[] serialization +- io_uring: fix overflows checks in provide buffers +- perf/amd/uncore: Fix sysfs type mismatch +- x86/events/amd/iommu: Fix sysfs type mismatch +- HSI: core: fix resource leaks in hsi_add_client_from_dt() +- media: cedrus: Fix H265 status definitions +- nvme-pci: don't simple map sgl when sgls are disabled +- nvmet-tcp: fix a segmentation fault during io parsing error +- mfd: stm32-timers: Avoid clearing auto reload register +- mailbox: sprd: Introduce refcnt when clients requests/free channels +- scsi: ibmvfc: Fix invalid state machine BUG_ON() +- scsi: sni_53c710: Add IRQ check +- scsi: sun3x_esp: Add IRQ check +- scsi: jazz_esp: Add IRQ check +- scsi: hisi_sas: Fix IRQ checks +- scsi: ufs: ufshcd-pltfrm: Fix deferred probing +- scsi: pm80xx: Fix potential infinite loop +- scsi: pm80xx: Increase timeout for pm80xx mpi_uninit_check() +- clk: uniphier: Fix potential infinite loop +- drm/radeon: Fix a missing check bug in radeon_dp_mst_detect() +- drm/amd/display: use GFP_ATOMIC in dcn20_resource_construct +- clk: qcom: apss-ipq-pll: Add missing MODULE_DEVICE_TABLE +- clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE +- drm: xlnx: zynqmp: fix a memset in zynqmp_dp_train() +- clk: zynqmp: pll: add set_pll_mode to check condition in zynqmp_pll_enable +- clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback +- vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer +- vfio/pci: Re-order vfio_pci_probe() +- vfio/pci: Move VGA and VF initialization to functions +- vfio/fsl-mc: Re-order vfio_fsl_mc_probe() +- media: v4l2-ctrls.c: fix race condition in hdl->requests list +- media: i2c: imx219: Balance runtime PM use-count +- media: i2c: imx219: Move out locking/unlocking of vflip and hflip controls from imx219_set_stream +- nvme: retrigger ANA log update if group descriptor isn't found +- power: supply: bq25980: Move props from battery node +- clk: imx: Fix reparenting of UARTs not associated with stdout +- nvmet-tcp: fix incorrect locking in state_change sk callback +- nvme-tcp: block BH in sk state_change sk callback +- seccomp: Fix CONFIG tests for Seccomp_filters +- ata: libahci_platform: fix IRQ check +- sata_mv: add IRQ checks +- pata_ipx4xx_cf: fix IRQ check +- pata_arasan_cf: fix IRQ check +- selftests: fix prepending $(OUTPUT) to $(TEST_PROGS) +- x86/kprobes: Fix to check non boostable prefixes correctly +- of: overlay: fix for_each_child.cocci warnings +- drm/amdkfd: fix build error with AMD_IOMMU_V2=m +- media: atomisp: Fix use after free in atomisp_alloc_css_stat_bufs() +- media: m88rs6000t: avoid potential out-of-bounds reads on arrays +- media: atomisp: Fixed error handling path +- media: [next] staging: media: atomisp: fix memory leak of object flash +- media: docs: Fix data organization of MEDIA_BUS_FMT_RGB101010_1X30 +- media: m88ds3103: fix return value check in m88ds3103_probe() +- media: platform: sunxi: sun6i-csi: fix error return code of sun6i_video_start_streaming() +- media: venus: core: Fix some resource leaks in the error path of 'venus_probe()' +- drm/probe-helper: Check epoch counter in output_poll_execute() +- media: aspeed: fix clock handling logic +- media: rkisp1: rsz: crash fix when setting src format +- media: omap4iss: return error code when omap4iss_get() failed +- media: saa7146: use sg_dma_len when building pgtable +- media: saa7134: use sg_dma_len when building pgtable +- media: vivid: fix assignment of dev->fbuf_out_flags +- rcu: Remove spurious instrumentation_end() in rcu_nmi_enter() +- afs: Fix updating of i_mode due to 3rd party change +- sched/fair: Fix shift-out-of-bounds in load_balance() +- drm/mcde/panel: Inverse misunderstood flag +- drm/amd/display: Fix off by one in hdmi_14_process_transaction() +- drm/stm: Fix bus_flags handling +- drm/tilcdc: send vblank event when disabling crtc +- soc: aspeed: fix a ternary sign expansion bug +- xen-blkback: fix compatibility bug with single page rings +- serial: omap: fix rs485 half-duplex filtering +- serial: omap: don't disable rs485 if rts gpio is missing +- ttyprintk: Add TTY hangup callback. +- usb: dwc2: Fix hibernation between host and device modes. +- usb: dwc2: Fix host mode hibernation exit with remote wakeup flow. +- PM: hibernate: x86: Use crc32 instead of md5 for hibernation e820 integrity check +- Drivers: hv: vmbus: Increase wait time for VMbus unload +- hwmon: (pmbus/pxe1610) don't bail out when not all pages are active +- x86/platform/uv: Fix !KEXEC build failure +- spi: spi-zynqmp-gqspi: return -ENOMEM if dma_map_single fails +- spi: spi-zynqmp-gqspi: fix use-after-free in zynqmp_qspi_exec_op +- spi: spi-zynqmp-gqspi: fix hang issue when suspend/resume +- spi: spi-zynqmp-gqspi: fix clk_enable/disable imbalance issue +- Drivers: hv: vmbus: Use after free in __vmbus_open() +- ARM: dts: aspeed: Rainier: Fix humidity sensor bus address +- platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with critclk_systems DMI table +- security: keys: trusted: fix TPM2 authorizations +- memory: samsung: exynos5422-dmc: handle clk_set_parent() failure +- memory: renesas-rpc-if: fix possible NULL pointer dereference of resource +- spi: spi-zynqmp-gqspi: Fix missing unlock on error in zynqmp_qspi_exec_op() +- m68k: Add missing mmap_read_lock() to sys_cacheflush() +- usbip: vudc: fix missing unlock on error in usbip_sockfd_store() +- crypto: chelsio - Read rxchannel-id from firmware +- node: fix device cleanups in error handling code +- firmware: qcom-scm: Fix QCOM_SCM configuration +- serial: core: return early on unsupported ioctls +- tty: fix return value for unsupported termiox ioctls +- tty: Remove dead termiox code +- tty: fix return value for unsupported ioctls +- tty: actually undefine superseded ASYNC flags +- USB: cdc-acm: fix TIOCGSERIAL implementation +- USB: cdc-acm: fix unprivileged TIOCCSERIAL +- usb: gadget: r8a66597: Add missing null check on return from platform_get_resource +- spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware() +- spi: spi-zynqmp-gqspi: fix incorrect operating mode in zynqmp_qspi_read_op +- spi: spi-zynqmp-gqspi: transmit dummy circles by using the controller's internal functionality +- spi: spi-zynqmp-gqspi: add mutex locking for exec_op +- spi: spi-zynqmp-gqspi: use wait_for_completion_timeout to make zynqmp_qspi_exec_op not interruptible +- cpufreq: armada-37xx: Fix determining base CPU frequency +- cpufreq: armada-37xx: Fix driver cleanup when registration failed +- clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0 +- clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz +- cpufreq: armada-37xx: Fix the AVS value for load L1 +- clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock +- cpufreq: armada-37xx: Fix setting TBG parent for load levels +- crypto: qat - Fix a double free in adf_create_ring +- crypto: sa2ul - Fix memory leak of rxd +- crypto: sun8i-ss - Fix memory leak of pad +- crypto: allwinner - add missing CRYPTO_ prefix +- ACPI: CPPC: Replace cppc_attr with kobj_attribute +- cpuidle: Fix ARM_QCOM_SPM_CPUIDLE configuration +- PM: runtime: Replace inline function pm_runtime_callbacks_present() +- soc: qcom: mdt_loader: Detect truncated read of segments +- soc: qcom: mdt_loader: Validate that p_filesz < p_memsz +- spi: fsl: add missing iounmap() on error in of_fsl_spi_probe() +- spi: Fix use-after-free with devm_spi_alloc_* +- clocksource/drivers/ingenic_ost: Fix return value check in ingenic_ost_probe() +- clocksource/drivers/timer-ti-dm: Add missing set_state_oneshot_stopped +- clocksource/drivers/timer-ti-dm: Fix posted mode status check order +- PM / devfreq: Use more accurate returned new_freq as resume_freq +- soc: qcom: pdr: Fix error return code in pdr_register_listener +- staging: greybus: uart: fix unprivileged TIOCCSERIAL +- staging: fwserial: fix TIOCGSERIAL implementation +- staging: fwserial: fix TIOCSSERIAL implementation +- staging: rtl8192u: Fix potential infinite loop +- staging: comedi: tests: ni_routes_test: Fix compilation error +- irqchip/gic-v3: Fix OF_BAD_ADDR error handling +- mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init +- iio: adc: Kconfig: make AD9467 depend on ADI_AXI_ADC symbol +- firmware: qcom_scm: Workaround lack of "is available" call on SC7180 +- firmware: qcom_scm: Reduce locking section for __get_convention() +- firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool +- m68k: mvme147,mvme16x: Don't wipe PCC timer config bits +- soundwire: stream: fix memory leak in stream config error path +- memory: pl353: fix mask of ECC page_size config register +- driver core: platform: Declare early_platform_cleanup() prototype +- drivers: nvmem: Fix voltage settings for QTI qfprom-efuse +- USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR() +- usb: gadget: aspeed: fix dma map failure +- crypto: qat - fix error path in adf_isr_resource_alloc() +- crypto: poly1305 - fix poly1305_core_setkey() declaration +- NFSv4.2: fix copy stateid copying for the async copy +- NFSD: Fix sparse warning in nfs4proc.c +- arm64: dts: mediatek: fix reset GPIO level on pumpkin +- phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally +- phy: ti: j721e-wiz: Delete "clk_div_sel" clk provider during cleanup +- soundwire: bus: Fix device found flag correctly +- bus: qcom: Put child node before return +- arm64: dts: renesas: r8a779a0: Fix PMU interrupt +- mtd: require write permissions for locking and badblock ioctls +- dt-bindings: serial: stm32: Use 'type: object' instead of false for 'additionalProperties' +- usb: gadget: s3c: Fix the error handling path in 's3c2410_udc_probe()' +- usb: gadget: s3c: Fix incorrect resources releasing +- fotg210-udc: Complete OUT requests on short packets +- fotg210-udc: Don't DMA more than the buffer can take +- fotg210-udc: Mask GRP2 interrupts we don't handle +- fotg210-udc: Remove a dubious condition leading to fotg210_done +- fotg210-udc: Fix EP0 IN requests bigger than two packets +- fotg210-udc: Fix DMA on EP0 for length > max packet size +- crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init +- crypto: qat - don't release uninitialized resources +- crypto: ccp - fix command queuing to TEE ring buffer +- usb: gadget: pch_udc: Provide a GPIO line used on Intel Minnowboard (v1) +- usb: gadget: pch_udc: Initialize device pointer before use +- usb: gadget: pch_udc: Check for DMA mapping error +- usb: gadget: pch_udc: Check if driver is present before calling ->setup() +- usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits() +- devtmpfs: fix placement of complete() call +- x86/microcode: Check for offline CPUs before requesting new microcode +- spi: stm32: Fix use-after-free on unbind +- arm64: dts: renesas: r8a77980: Fix vin4-7 endpoint binding +- regulator: bd9576: Fix return from bd957x_probe() +- spi: stm32: drop devres version of spi_register_master +- crypto: sun8i-ss - Fix memory leak of object d when dma_iv fails to map +- arm64: dts: qcom: db845c: fix correct powerdown pin for WSA881x +- arm64: dts: qcom: sm8250: fix number of pins in 'gpio-ranges' +- arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges' +- arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges' +- arm64: dts: qcom: sm8250: Fix timer interrupt to specify EL2 physical timer +- arm64: dts: qcom: sm8250: Fix level triggered PMU interrupt polarity +- ARM: dts: stm32: fix usart 2 & 3 pinconf to wake up with flow control +- mtd: maps: fix error return code of physmap_flash_remove() +- mtd: don't lock when recursively deleting partitions +- mtd: rawnand: qcom: Return actual error code instead of -ENODEV +- mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions() +- mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC +- mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe() +- spi: rockchip: avoid objtool warning +- regmap: set debugfs_name to NULL after it is freed +- usb: typec: stusb160x: fix return value check in stusb160x_probe() +- usb: typec: tps6598x: Fix return value check in tps6598x_probe() +- usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS +- serial: stm32: fix tx_empty condition +- serial: stm32: add FIFO flush when port is closed +- serial: stm32: fix FIFO flush in startup and set_termios +- serial: stm32: call stm32_transmit_chars locked +- serial: stm32: fix tx dma completion, release channel +- serial: stm32: fix a deadlock in set_termios +- serial: stm32: fix wake-up flag handling +- serial: stm32: fix a deadlock condition with wakeup event +- serial: stm32: fix TX and RX FIFO thresholds +- serial: stm32: fix incorrect characters on console +- serial: stm32: fix startup by enabling usart for reception +- serial: stm32: Use of_device_get_match_data() +- serial: stm32: fix probe and remove order for dma +- serial: stm32: add "_usart" prefix in functions name +- serial: stm32: fix code cleaning warnings and checks +- x86/platform/uv: Set section block size for hubless architectures +- arm64: dts: renesas: Add mmc aliases into board dts files +- ARM: dts: renesas: Add mmc aliases into R-Car Gen2 board dts files +- ARM: dts: s5pv210: correct fuel gauge interrupt trigger level on Fascinate family +- ARM: dts: exynos: correct PMIC interrupt trigger level on Snow +- ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250 +- ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family +- ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family +- ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family +- ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family +- ARM: dts: exynos: correct fuel gauge interrupt trigger level on GT-I9100 +- memory: gpmc: fix out of bounds read and dereference on gpmc_cs[] +- crypto: sun8i-ss - fix result memory leak on error path +- fpga: fpga-mgr: xilinx-spi: fix error messages on -EPROBE_DEFER +- firmware: xilinx: Remove zynqmp_pm_get_eemi_ops() in IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE) +- firmware: xilinx: Add a blank line after function declaration +- firmware: xilinx: Fix dereferencing freed memory +- Revert "tools/power turbostat: adjust for temperature offset" +- usb: gadget: pch_udc: Revert d3cb25a12138 completely +- Revert "drm/qxl: do not run release if qxl failed to init" +- ovl: fix missing revert_creds() on error path +- Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register" +- Revert "drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit" +- KVM: arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION read +- KVM: arm64: Fully zero the vcpu state on reset +- KVM: Stop looking for coalesced MMIO zones if the bus is destroyed +- KVM: Destroy I/O bus devices on unregister failure _after_ sync'ing SRCU +- KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read +- KVM: nVMX: Truncate base/index GPR value on address calc in !64-bit +- KVM: nVMX: Truncate bits 63:32 of VMCS field on nested check in !64-bit +- KVM: nVMX: Defer the MMU reload to the normal path on an EPTP switch +- KVM: SVM: Inject #GP on guest MSR_TSC_AUX accesses if RDTSCP unsupported +- KVM: SVM: Do not allow SEV/SEV-ES initialization after vCPUs are created +- KVM: SVM: Don't strip the C-bit from CR2 on #PF interception +- KVM: nSVM: Set the shadow root level to the TDP level for nested NPT +- KVM: x86: Remove emulator's broken checks on CR0/CR3/CR4 loads +- KVM: x86/mmu: Alloc page for PDPTEs when shadowing 32-bit NPT with 64-bit +- KVM: s390: extend kvm_s390_shadow_fault to return entry pointer +- KVM: s390: split kvm_s390_real_to_abs +- KVM: s390: VSIE: fix MVPG handling for prefixing and MSO +- s390: fix detection of vector enhancements facility 1 vs. vector packed decimal facility +- KVM: s390: fix guarded storage control register handling +- KVM: s390: split kvm_s390_logical_to_effective +- KVM: s390: VSIE: correctly handle MVPG when in VSIE +- ALSA: hda/realtek: Fix speaker amp on HP Envy AiO 32 +- ALSA: hda/realtek: ALC285 Thinkpad jack pin quirk is unreachable +- ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices +- ALSA: hda/realtek: Re-order ALC662 quirk table entries +- ALSA: hda/realtek: Re-order remaining ALC269 quirk table entries +- ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries +- ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries +- ALSA: hda/realtek: Re-order ALC269 ASUS quirk table entries +- ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries +- ALSA: hda/realtek: Re-order ALC269 Acer quirk table entries +- ALSA: hda/realtek: Re-order ALC269 HP quirk table entries +- ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries +- ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries +- ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries +- drm/amdgpu: fix concurrent VM flushes on Vega/Navi v2 +- drm/amd/display: Reject non-zero src_y and src_x for video planes +- drm: bridge/panel: Cleanup connector on bridge detach +- drm/dp_mst: Set CLEAR_PAYLOAD_ID_TABLE as broadcast +- drm/dp_mst: Revise broadcast msg lct & lcr +- drm/radeon: fix copy of uninitialized variable back to userspace +- drm/panfrost: Don't try to map pages that are already mapped +- drm/panfrost: Clear MMU irqs before handling the fault +- drm/qxl: use ttm bo priorities +- drm/i915/gvt: Fix vfio_edid issue for BXT/APL +- drm/i915/gvt: Fix virtual display setup for BXT/APL +- FDDI: defxx: Make MMIO the configuration default except for EISA +- mt76: fix potential DMA mapping leak +- rtw88: Fix array overrun in rtw_get_tx_power_params() +- cfg80211: scan: drop entry from hidden_list on overflow +- ipw2x00: potential buffer overflow in libipw_wx_set_encodeext() +- mt76: mt7615: use ieee80211_free_txskb() in mt7615_tx_token_put() +- md: Fix missing unused status line of /proc/mdstat +- md: md_open returns -EBUSY when entering racing area +- md: factor out a mddev_find_locked helper from mddev_find +- md: split mddev_find +- md-cluster: fix use-after-free issue when removing rdev +- md/bitmap: wait for external bitmap writes to complete during tear down +- async_xor: increase src_offs when dropping destination page +- x86, sched: Treat Intel SNC topology as default, COD as exception +- selinux: add proper NULL termination to the secclass_map permissions +- misc: vmw_vmci: explicitly initialize vmci_datagram payload +- misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct +- phy: ti: j721e-wiz: Invoke wiz_init() before of_platform_device_create() +- misc: lis3lv02d: Fix false-positive WARN on various HP models +- phy: cadence: Sierra: Fix PHY power_on sequence +- sc16is7xx: Defer probe if device read fails +- iio:adc:ad7476: Fix remove handling +- iio:accel:adis16201: Fix wrong axis assignment that prevents loading +- iio: inv_mpu6050: Fully validate gyro and accel scale writes +- soc/tegra: regulators: Fix locking up when voltage-spread is out of range +- PM / devfreq: Unlock mutex and free devfreq struct in error path +- PCI: keystone: Let AM65 use the pci_ops defined in pcie-designware-host.c +- PCI: xgene: Fix cfg resource mapping +- KVM: x86: Defer the MMU unload to the normal path on an global INVPCID +- PCI: Allow VPD access for QLogic ISP2722 +- FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR +- MIPS: pci-rt2880: fix slot 0 configuration +- MIPS: pci-mt7620: fix PLL lock check +- ASoC: tlv320aic32x4: Increase maximum register in regmap +- ASoC: tlv320aic32x4: Register clocks before registering component +- ASoC: Intel: kbl_da7219_max98927: Fix kabylake_ssp_fixup function +- ASoC: samsung: tm2_wm5110: check of of_parse return value +- usb: xhci-mtk: improve bandwidth scheduling with TT +- usb: xhci-mtk: remove or operator for setting schedule parameters +- usb: typec: tcpm: update power supply once partner accepts +- usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply +- usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply +- drm: bridge: fix LONTIUM use of mipi_dsi_() functions +- staging: fwserial: fix TIOCSSERIAL permission check +- tty: moxa: fix TIOCSSERIAL permission check +- staging: fwserial: fix TIOCSSERIAL jiffies conversions +- USB: serial: ti_usb_3410_5052: fix TIOCSSERIAL permission check +- staging: greybus: uart: fix TIOCSSERIAL jiffies conversions +- USB: serial: usb_wwan: fix TIOCSSERIAL jiffies conversions +- tty: amiserial: fix TIOCSSERIAL permission check +- tty: moxa: fix TIOCSSERIAL jiffies conversions +- usb: roles: Call try_module_get() from usb_role_switch_find_by_fwnode() +- Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL" +- io_uring: truncate lengths larger than MAX_RW_COUNT on provide buffers +- net/nfc: fix use-after-free llcp_sock_bind/connect +- bluetooth: eliminate the potential race condition when removing the HCI controller +- Bluetooth: verify AMP hci_chan before amp_destroy +- thermal/core/fair share: Lock the thermal zone while looping over instances +- thermal/drivers/cpufreq_cooling: Fix slab OOB issue +- lib/vsprintf.c: remove leftover 'f' and 'F' cases from bstr_printf() +- dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails +- dm integrity: fix missing goto in bitmap_flush_interval error handling +- dm space map common: fix division bug in sm_ll_find_free_block() +- dm persistent data: packed struct should have an aligned() attribute too +- tracing: Restructure trace_clock_global() to never block +- tracing: Map all PIDs to command lines +- tools/power turbostat: Fix offset overflow issue in index converting +- rsi: Use resume_noirq for SDIO +- tty: fix memory leak in vc_deallocate +- usb: dwc2: Fix session request interrupt handler +- usb: dwc3: core: Do core softreset when switch mode +- usb: dwc3: gadget: Fix START_TRANSFER link state check +- usb: dwc3: gadget: Remove FS bInterval_m1 limitation +- usb: gadget/function/f_fs string table fix for multiple languages +- usb: gadget: Fix double free of device descriptor pointers +- usb: gadget: dummy_hcd: fix gpf in gadget_setup +- media: venus: hfi_parser: Don't initialize parser on v1 +- media: v4l2-ctrls: fix reference to freed memory +- media: staging/intel-ipu3: Fix race condition during set_fmt +- media: staging/intel-ipu3: Fix set_fmt error handling +- media: staging/intel-ipu3: Fix memory leak in imu_fmt +- media: dvb-usb: Fix memory leak at error in dvb_usb_device_init() +- media: dvb-usb: Fix use-after-free access +- media: dvbdev: Fix memory leak in dvb_media_device_free() +- ext4: Fix occasional generic/418 failure +- ext4: allow the dax flag to be set and cleared on inline directories +- ext4: fix error return code in ext4_fc_perform_commit() +- ext4: fix ext4_error_err save negative errno into superblock +- ext4: fix error code in ext4_commit_super +- ext4: annotate data race in jbd2_journal_dirty_metadata() +- ext4: annotate data race in start_this_handle() +- kbuild: update config_data.gz only when the content of .config is changed +- x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported +- futex: Do not apply time namespace adjustment on FUTEX_LOCK_PI +- Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op") +- smb3: do not attempt multichannel to server which does not support it +- smb3: when mounting with multichannel include it in requested capabilities +- Fix misc new gcc warnings +- security: commoncap: fix -Wstringop-overread warning +- sfc: farch: fix TX queue lookup in TX event handling +- sfc: farch: fix TX queue lookup in TX flush done handling +- exfat: fix erroneous discard when clear cluster bit +- fuse: fix write deadlock +- dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences +- md/raid1: properly indicate failure when ending a failed write request +- crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS +- crypto: arm/curve25519 - Move '.fpu' after '.arch' +- tpm: vtpm_proxy: Avoid reading host log when using a virtual device +- tpm: efi: Use local variable for calculating final log size +- intel_th: pci: Add Alder Lake-M support +- powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h +- powerpc/32: Fix boot failure with CONFIG_STACKPROTECTOR +- powerpc/kexec_file: Use current CPU info while setting up FDT +- powerpc/eeh: Fix EEH handling for hugepages in ioremap space. +- powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors +- jffs2: Hook up splice_write callback +- jffs2: Fix kasan slab-out-of-bounds problem +- Input: ili210x - add missing negation for touch indication on ili210x +- NFSv4: Don't discard segments marked for return in _pnfs_return_layout() +- NFS: Don't discard pNFS layout segments that are marked for return +- NFS: fs_context: validate UDP retrans to prevent shift out-of-bounds +- ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure +- openvswitch: fix stack OOB read while fragmenting IPv4 packets +- mlxsw: spectrum_mr: Update egress RIF list before route's action +- f2fs: fix to avoid out-of-bounds memory access +- f2fs: fix error handling in f2fs_end_enable_verity() +- ubifs: Only check replay with inode type to judge if inode linked +- kcsan, debugfs: Move debugfs file creation out of early init +- virtiofs: fix memory leak in virtio_fs_probe() +- fs: fix reporting supported extra file attributes for statx() +- Makefile: Move -Wno-unused-but-set-variable out of GCC only block +- arm64/vdso: Discard .note.gnu.property sections in vDSO +- btrfs: fix race when picking most recent mod log operation for an old root +- tools/power/turbostat: Fix turbostat for AMD Zen CPUs +- ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx +- ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops +- ALSA: hda/realtek - Headset Mic issue on HP platform +- ALSA: hda/realtek: fix mic boost on Intel NUC 8 +- ALSA: hda/realtek: GA503 use same quirks as GA401 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 445 G7 +- ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8 +- ALSA: usb-audio: Explicitly set up the clock selector +- ALSA: sb: Fix two use after free in snd_sb_qsound_build +- ALSA: hda/conexant: Re-order CX5066 quirk table entries +- ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer +- power: supply: cpcap-battery: fix invalid usage of list cursor +- sched,psi: Handle potential task count underflow bugs more gracefully +- s390/archrandom: add parameter check for s390_arch_random_generate +- block/rnbd-clt: Fix missing a memory free when unloading the module +- sched,fair: Alternative sched_slice() +- perf: Rework perf_event_exit_event() +- scsi: libfc: Fix a format specifier +- mfd: arizona: Fix rumtime PM imbalance on error +- mfd: da9063: Support SMBus and I2C mode +- mfd: intel-m10-bmc: Fix the register access range +- scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic +- scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode +- scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response +- drm/amdgpu: fix NULL pointer dereference +- drm/amd/display: Try YCbCr420 color when YCbCr444 fails +- amdgpu: avoid incorrect %hu format string +- drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug +- drm/amd/display: Fix UBSAN: shift-out-of-bounds warning +- drm/amd/display: Fix debugfs link_settings entry +- drm/radeon/ttm: Fix memory leak userptr pages +- drm/amdgpu/ttm: Fix memory leak userptr pages +- drm/msm/mdp5: Do not multiply vclk line count by 100 +- drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal +- sched/fair: Ignore percpu threads for imbalance pulls +- media: gscpa/stv06xx: fix memory leak +- media: dvb-usb: fix memory leak in dvb_usb_adapter_init +- media: sun8i-di: Fix runtime PM imbalance in deinterlace_start_streaming +- media: platform: sti: Fix runtime PM imbalance in regs_show +- media: i2c: adv7842: fix possible use-after-free in adv7842_remove() +- media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove() +- media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove() +- media: adv7604: fix possible use-after-free in adv76xx_remove() +- media: tc358743: fix possible use-after-free in tc358743_remove() +- power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove() +- power: supply: generic-adc-battery: fix possible use-after-free in gab_remove() +- clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return +- drm/msm/dp: Fix incorrect NULL check kbot warnings in DP driver +- media: vivid: update EDID +- media: em28xx: fix memory leak +- scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg() +- scsi: smartpqi: Add new PCI IDs +- scsi: smartpqi: Correct request leakage during reset operations +- scsi: smartpqi: Use host-wide tag space +- power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce +- selftests/resctrl: Fix checking for < 0 for unsigned values +- selftests/resctrl: Fix incorrect parsing of iMC counters +- selftests/resctrl: Use resctrl/info for feature detection +- selftests/resctrl: Fix missing options "-n" and "-p" +- selftests/resctrl: Clean up resctrl features check +- selftests/resctrl: Fix compilation issues for other global variables +- selftests/resctrl: Fix compilation issues for global variables +- selftests/resctrl: Enable gcc checks to detect buffer overflows +- nvmet: return proper error code from discovery ctrl +- drm/komeda: Fix bit check to import to value of proper type +- ata: ahci: Disable SXS for Hisilicon Kunpeng920 +- mmc: sdhci-brcmstb: Remove CQE quirk +- mmc: sdhci-pci: Add PCI IDs for Intel LKF +- mmc: sdhci-esdhc-imx: validate pinctrl before use it +- scsi: qla2xxx: Fix use after free in bsg +- drm/vkms: fix misuse of WARN_ON +- scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats() +- drm/amd/display: fix dml prefetch validation +- drm/amd/display: DCHUB underflow counter increasing in some scenarios +- drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool' +- drm/amd/pm: fix workload mismatch on vega10 +- drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f +- drm/amdkfd: Fix UBSAN shift-out-of-bounds warning +- drm/amdgpu: mask the xgmi number of hops reported from psp to kfd +- backlight: qcom-wled: Fix FSC update issue for WLED5 +- backlight: qcom-wled: Use sink_addr for sync toggle +- power: supply: Use IRQF_ONESHOT +- media: gspca/sq905.c: fix uninitialized variable +- media: media/saa7164: fix saa7164_encoder_register() memory leak bugs +- extcon: arizona: Fix various races on driver unbind +- extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged +- power: supply: bq27xxx: fix power_avg for newer ICs +- atomisp: don't let it go past pipes array +- media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt() +- media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB +- media: ite-cir: check for receive overflow +- scsi: target: pscsi: Fix warning in pscsi_complete_cmd() +- kvfree_rcu: Use same set of GFP flags as does single-argument +- sched/pelt: Fix task util_est update filtering +- drm/amdgpu: Fix some unload driver issues +- scsi: lpfc: Fix pt2pt connection does not recover after LOGO +- scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe +- drm/amd/display/dc/dce/dce_aux: Remove duplicate line causing 'field overwritten' issue +- drm/amdgpu/display: buffer INTERRUPT_LOW_IRQ_CONTEXT interrupt work +- drm/amd/display: Don't optimize bandwidth before disabling planes +- drm/amd/display: Check for DSC support instead of ASIC revision +- drm/ast: fix memory leak when unload the driver +- drm/amd/display: changing sr exit latency +- drm/ast: Fix invalid usage of AST_MAX_HWC_WIDTH in cursor atomic_check +- drm/qxl: release shadow on shutdown +- drm/qxl: do not run release if qxl failed to init +- drm: Added orientation quirk for OneGX1 Pro +- btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s +- btrfs: do proper error handling in btrfs_update_reloc_root +- btrfs: do proper error handling in create_reloc_root +- spi: sync up initial chipselect state +- platform/x86: intel_pmc_core: Don't use global pmcdev in quirks +- crypto: omap-aes - Fix PM reference leak on omap-aes.c +- crypto: sa2ul - Fix PM reference leak in sa_ul_probe() +- crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c +- crypto: stm32/hash - Fix PM reference leak on stm32-hash.c +- crypto: sun8i-ce - Fix PM reference leak in sun8i_ce_probe() +- crypto: sun8i-ss - Fix PM reference leak when pm_runtime_get_sync() fails +- phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove() +- intel_th: Consistency and off-by-one fix +- tty: n_gsm: check error while registering tty devices +- usb: dwc3: gadget: Check for disabled LPM quirk +- usb: core: hub: Fix PM reference leak in usb_port_resume() +- usb: musb: fix PM reference leak in musb_irq_work() +- usb: gadget: tegra-xudc: Fix possible use-after-free in tegra_xudc_remove() +- spi: qup: fix PM reference leak in spi_qup_remove() +- spi: omap-100k: Fix reference leak to master +- spi: dln2: Fix reference leak to master +- platform/x86: ISST: Account for increased timeout in some cases +- tools/power/x86/intel-speed-select: Increase string size +- ARM: dts: at91: change the key code of the gpio key +- bus: mhi: core: Clear context for stopped channels from remove() +- xhci: fix potential array out of bounds with several interrupters +- xhci: check control context is valid before dereferencing it. +- xhci: check port array allocation was successful before dereferencing it +- fpga: dfl: pci: add DID for D5005 PAC cards +- usb: xhci-mtk: support quirk to disable usb2 lpm +- random: initialize ChaCha20 constants with correct endianness +- perf/arm_pmu_platform: Fix error handling +- perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors +- soundwire: cadence: only prepare attached devices on clock stop +- tee: optee: do not check memref size on return from Secure World +- arm64: dts: imx8mq-librem5-r3: Mark buck3 as always on +- soc/tegra: pmc: Fix completion of power-gate toggling +- efi/libstub: Add $(CLANG_FLAGS) to x86 flags +- x86/boot: Add $(CLANG_FLAGS) to compressed KBUILD_CFLAGS +- x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS) +- ARM: dts: ux500: Fix up TVK R3 sensors +- ARM: dts: BCM5301X: fix "reg" formatting in /memory node +- kselftest/arm64: mte: Fix MTE feature detection +- PCI: PM: Do not read power state in pci_enable_device_flags() +- ARM: tegra: acer-a500: Rename avdd to vdda of touchscreen node +- kselftest/arm64: mte: Fix compilation with native compiler +- usb: xhci: Fix port minor revision +- usb: dwc3: gadget: Ignore EP queue requests during bus reset +- usb: gadget: f_uac1: validate input parameters +- usb: gadget: f_uac2: validate input parameters +- genirq/matrix: Prevent allocation counter corruption +- crypto: hisilicon/sec - fixes a printing error +- x86/sev: Do not require Hypervisor CPUID bit for SEV guests +- usb: webcam: Invalid size of Processing Unit Descriptor +- usb: gadget: uvc: add bInterval checking for HS mode +- crypto: qat - fix unmap invalid dma address +- crypto: api - check for ERR pointers in crypto_destroy_tfm() +- bus: mhi: core: Destroy SBL devices when moving to mission mode +- spi: ath79: remove spi-master setup and cleanup assignment +- spi: ath79: always call chipselect function +- staging: wimax/i2400m: fix byte-order issue +- bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first +- cpuidle: tegra: Fix C7 idling state on Tegra114 +- fbdev: zero-fill colormap in fbcmap.c +- btrfs: fix race between transaction aborts and fsyncs leading to use-after-free +- intel_th: pci: Add Rocket Lake CPU support +- btrfs: fix metadata extent leak after failure to create subvolume +- x86/build: Disable HIGHMEM64G selection for M486SX +- btrfs: handle remount to no compress during compression +- smb2: fix use-after-free in smb2_ioctl_query_info() +- cifs: detect dead connections only when echoes are enabled. +- cifs: fix out-of-bound memory access when calling smb3_notify() at mount point +- cifs: Return correct error code from smb2_get_enc_key +- irqchip/gic-v3: Do not enable irqs when handling spurious interrups +- mmc: core: Fix hanging on I/O during system suspend for removable cards +- mmc: core: Set read only for SD cards with permanent write protect bit +- mmc: core: Do a power cycle when the CMD11 fails +- mmc: block: Issue a cache flush only when it's enabled +- mmc: block: Update ext_csd.cache_ctrl if it was written +- mmc: sdhci-tegra: Add required callbacks to set/clear CQE_EN bit +- mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers +- mmc: sdhci: Check for reset prior to DMA address unmap +- mmc: uniphier-sd: Fix a resource leak in the remove function +- mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe() +- scsi: mpt3sas: Block PCI config access from userspace during reset +- scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand() +- spi: spi-ti-qspi: Free DMA resources +- spi: stm32-qspi: fix pm_runtime usage_count counter +- erofs: add unsupported inode i_format check +- mtd: physmap: physmap-bt1-rom: Fix unintentional stack access +- mtd: rawnand: atmel: Update ecc_stats.corrected counter +- mtd: spinand: core: add missing MODULE_DEVICE_TABLE() +- Revert "mtd: spi-nor: macronix: Add support for mx25l51245g" +- mtd: spi-nor: core: Fix an issue of releasing resources during read/write +- fs/epoll: restore waking from ep_done_scan() +- ecryptfs: fix kernel panic with null dev_name +- arm64: dts: mt8173: fix property typo of 'phys' in dsi node +- arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node +- ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld +- ftrace: Handle commands when closing set_ftrace_filter file +- ACPI: custom_method: fix a possible memory leak +- ACPI: custom_method: fix potential use-after-free issue +- tpm: acpi: Check eventlog signature before using it +- vhost-vdpa: fix vm_flags for virtqueue doorbell mapping +- s390/zcrypt: fix zcard and zqueue hot-unplug memleak +- s390/disassembler: increase ebpf disasm buffer size +- dyndbg: fix parsing file query without a line-range suffix +- nitro_enclaves: Fix stale file descriptors on failed usercopy +- bus: mhi: core: Sanity check values from remote device before use +- bus: mhi: core: Clear configuration from channel context during reset +- bus: mhi: core: Fix check for syserr at power_up +- vfio: Depend on MMU +- perf/core: Fix unconditional security_locked_down() call +- platform/x86: thinkpad_acpi: Correct thermal sensor allocation +- USB: Add reset-resume quirk for WD19's Realtek Hub +- USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet +- ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX +- ovl: allow upperdir inside lowerdir +- ovl: fix leaked dentry +- nvme-pci: set min_align_mask +- swiotlb: respect min_align_mask +- swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single +- swiotlb: refactor swiotlb_tbl_map_single +- swiotlb: clean up swiotlb_tbl_unmap_single +- swiotlb: factor out a nr_slots helper +- swiotlb: factor out an io_tlb_offset helper +- swiotlb: add a IO_TLB_SIZE define +- driver core: add a min_align_mask field to struct device_dma_parameters +- tools/cgroup/slabinfo.py: updated to work on current kernel +- perf ftrace: Fix access to pid in array when setting a pid filter +- capabilities: require CAP_SETFCAP to map uid 0 +- perf data: Fix error return code in perf_data__create_dir() +- net: qrtr: Avoid potential use after free in MHI send +- bpf: Fix leakage of uninitialized bpf stack under speculation +- bpf: Fix masking negation logic upon negative dst register +- igb: Enable RSS for Intel I211 Ethernet Controller +- net: usb: ax88179_178a: initialize local variables before use +- netfilter: conntrack: Make global sysctls readonly in non-init netns +- mips: Do not include hi and lo in clobber list for R6 +- mei: me: add Alder Lake P device id. +- iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd() +- ext4: fix check to prevent false positive report of incorrect used inodes +- iommu/arm-smmu-v3: Maintain a SID->device structure +- iommu: Add a page fault handler +- uacce: Enable IOMMU_DEV_FEAT_IOPF +- iommu/vt-d: Support IOMMU_DEV_FEAT_IOPF +- iommu: Separate IOMMU_DEV_FEAT_IOPF from IOMMU_DEV_FEAT_SVA +- iommu/arm-smmu-v3: Use device properties for pasid-num-bits +- iommu: Fix comment for struct iommu_fwspec +- iommu: Switch gather->end to the inclusive end +- iommu: Add iova and size as parameters in iotlb_sync_map +- iommu/arm-smmu-v3: Add support for VHE +- iommu/arm-smmu-v3: Make BTM optional for SVA +- iommu/arm-smmu-v3: Split arm_smmu_tlb_inv_range() +- iommu/io-pgtable: Remove tlb_flush_leaf +- iommu/arm-smmu-v3: Remove the page 1 fixup +- iommu/arm-smmu-v3: Use DEFINE_RES_MEM() to simplify code +- iommu/arm-smmu-v3: Assign boolean values to a bool variable +- iommu/arm-smmu-v3: Hook up ATC invalidation to mm ops +- iommu/arm-smmu-v3: Implement iommu_sva_bind/unbind() +- iommu/sva: Add PASID helpers +- iommu/ioasid: Add ioasid references +- ext4: do not set SB_ACTIVE in ext4_orphan_cleanup() +- arm64: Remove arm64_dma32_phys_limit and its uses +- USB: CDC-ACM: fix poison/unpoison imbalance +- net: hso: fix NULL-deref on disconnect regression +- x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access +- ia64: tools: remove duplicate definition of ia64_mf() on ia64 +- ia64: fix discontig.c section mismatches +- csky: change a Kconfig symbol name to fix e1000 build error +- kasan: fix hwasan build for gcc +- cavium/liquidio: Fix duplicate argument +- xen-netback: Check for hotplug-status existence before watching +- arm64: kprobes: Restore local irqflag if kprobes is cancelled +- s390/entry: save the caller of psw_idle +- dmaengine: tegra20: Fix runtime PM imbalance on error +- net: geneve: check skb is large enough for IPv4/IPv6 header +- ARM: dts: Fix swapped mmc order for omap3 +- dmaengine: xilinx: dpdma: Fix race condition in done IRQ +- dmaengine: xilinx: dpdma: Fix descriptor issuing on video group +- soc: qcom: geni: shield geni_icc_get() for ACPI boot +- HID: wacom: Assign boolean values to a bool variable +- HID cp2112: fix support for multiple gpiochips +- HID: alps: fix error return code in alps_input_configured() +- HID: google: add don USB id +- perf map: Fix error return code in maps__clone() +- perf auxtrace: Fix potential NULL pointer dereference +- perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[] +- perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3 +- locking/qrwlock: Fix ordering in queued_write_lock_slowpath() +- bpf: Tighten speculative pointer arithmetic mask +- bpf: Refactor and streamline bounds check into helper +- bpf: Allow variable-offset stack access +- bpf: Permits pointers on stack for helper calls +- arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS +- pinctrl: core: Show pin numbers for the controllers with base = 0 +- block: return -EBUSY when there are open partitions in blkdev_reread_part +- pinctrl: lewisburg: Update number of pins in community +- vdpa/mlx5: Set err = -ENOMEM in case dma_map_sg_attrs fails +- KEYS: trusted: Fix TPM reservation for seal/unseal +- gpio: omap: Save and restore sysconfig +- vhost-vdpa: protect concurrent access to vhost device iotlb +- arm32: kaslr: Bugfix of fiq when enabled kaslr +- perf kmem: Do not pass additional arguments to 'perf record' +- arm_pmu: Fix write counter error in ARMv7 big-endian mode +- kdump: replace memblock_phys_alloc_range() with memblock_find_in_range() + memblock_reserve() +- openeuler_defconfig: Enable hifc driver as module +- scsi/hifc: add FC service module of hifc driver +- scsi/hifc: add scsi module of hifc driver +- scsi/hifc: add io module of hifc driver +- scsi/hifc: add port resource module of hifc driver +- scsi/hifc: add port manager module of hifc driver +- scsi/hifc: add chip resource module of hifc driver +- net: phy: marvell: fix detection of PHY on Topaz switches +- bpf: Move sanitize_val_alu out of op switch +- bpf: Improve verifier error messages for users +- bpf: Rework ptr_limit into alu_limit and add common error path +- arm64: mte: Ensure TIF_MTE_ASYNC_FAULT is set atomically +- ARM: 9071/1: uprobes: Don't hook on thumb instructions +- bpf: Move off_reg into sanitize_ptr_alu +- bpf: Ensure off_reg has no mixed signed bounds for all types +- r8169: don't advertise pause in jumbo mode +- r8169: tweak max read request size for newer chips also in jumbo mtu mode +- KVM: VMX: Don't use vcpu->run->internal.ndata as an array index +- KVM: VMX: Convert vcpu_vmx.exit_reason to a union +- bpf: Use correct permission flag for mixed signed bounds arithmetic +- arm64: dts: allwinner: h6: beelink-gs1: Remove ext. 32 kHz osc reference +- arm64: dts: allwinner: Fix SD card CD GPIO for SOPine systems +- ARM: OMAP2+: Fix uninitialized sr_inst +- ARM: footbridge: fix PCI interrupt mapping +- ARM: 9069/1: NOMMU: Fix conversion for_each_membock() to for_each_mem_range() +- ARM: OMAP2+: Fix warning for omap_init_time_of() +- gro: ensure frag0 meets IP header alignment +- ch_ktls: do not send snd_una update to TCB in middle +- ch_ktls: tcb close causes tls connection failure +- ch_ktls: fix device connection close +- ch_ktls: Fix kernel panic +- ibmvnic: remove duplicate napi_schedule call in open function +- ibmvnic: remove duplicate napi_schedule call in do_reset function +- ibmvnic: avoid calling napi_disable() twice +- ia64: tools: remove inclusion of ia64-specific version of errno.h header +- ia64: remove duplicate entries in generic_defconfig +- ethtool: pause: make sure we init driver stats +- i40e: fix the panic when running bpf in xdpdrv mode +- net: Make tcp_allowed_congestion_control readonly in non-init netns +- mm: ptdump: fix build failure +- net: ip6_tunnel: Unregister catch-all devices +- net: sit: Unregister catch-all devices +- net: davicom: Fix regulator not turned off on failed probe +- net/mlx5e: Fix setting of RS FEC mode +- netfilter: nft_limit: avoid possible divide error in nft_limit_init +- net/mlx5e: fix ingress_ifindex check in mlx5e_flower_parse_meta +- net: macb: fix the restore of cmp registers +- libbpf: Fix potential NULL pointer dereference +- netfilter: arp_tables: add pre_exit hook for table unregister +- netfilter: bridge: add pre_exit hooks for ebtable unregistration +- libnvdimm/region: Fix nvdimm_has_flush() to handle ND_REGION_ASYNC +- ice: Fix potential infinite loop when using u8 loop counter +- netfilter: conntrack: do not print icmpv6 as unknown via /proc +- netfilter: flowtable: fix NAT IPv6 offload mangling +- ixgbe: fix unbalanced device enable/disable in suspend/resume +- scsi: libsas: Reset num_scatter if libata marks qc as NODATA +- riscv: Fix spelling mistake "SPARSEMEM" to "SPARSMEM" +- vfio/pci: Add missing range check in vfio_pci_mmap +- arm64: alternatives: Move length validation in alternative_{insn, endif} +- arm64: fix inline asm in load_unaligned_zeropad() +- readdir: make sure to verify directory entry for legacy interfaces too +- dm verity fec: fix misaligned RS roots IO +- HID: wacom: set EV_KEY and EV_ABS only for non-HID_GENERIC type of devices +- Input: i8042 - fix Pegatron C15B ID entry +- Input: s6sy761 - fix coordinate read bit shift +- lib: fix kconfig dependency on ARCH_WANT_FRAME_POINTERS +- virt_wifi: Return micros for BSS TSF values +- mac80211: clear sta->fast_rx when STA removed from 4-addr VLAN +- pcnet32: Use pci_resource_len to validate PCI resource +- net: ieee802154: forbid monitor for add llsec seclevel +- net: ieee802154: stop dump llsec seclevels for monitors +- net: ieee802154: forbid monitor for del llsec devkey +- net: ieee802154: forbid monitor for add llsec devkey +- net: ieee802154: stop dump llsec devkeys for monitors +- net: ieee802154: forbid monitor for del llsec dev +- net: ieee802154: forbid monitor for add llsec dev +- net: ieee802154: stop dump llsec devs for monitors +- net: ieee802154: forbid monitor for del llsec key +- net: ieee802154: forbid monitor for add llsec key +- net: ieee802154: stop dump llsec keys for monitors +- iwlwifi: add support for Qu with AX201 device +- scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state +- ASoC: fsl_esai: Fix TDM slot setup for I2S mode +- drm/msm: Fix a5xx/a6xx timestamps +- ARM: omap1: fix building with clang IAS +- ARM: keystone: fix integer overflow warning +- neighbour: Disregard DEAD dst in neigh_update +- gpu/xen: Fix a use after free in xen_drm_drv_init +- ASoC: max98373: Added 30ms turn on/off time delay +- ASoC: max98373: Changed amp shutdown register as volatile +- xfrm: BEET mode doesn't support fragments for inner packets +- iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd() +- arc: kernel: Return -EFAULT if copy_to_user() fails +- lockdep: Add a missing initialization hint to the "INFO: Trying to register non-static key" message +- ARM: dts: Fix moving mmc devices with aliases for omap4 & 5 +- ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race +- ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade() +- dmaengine: idxd: fix wq cleanup of WQCFG registers +- dmaengine: plx_dma: add a missing put_device() on error path +- dmaengine: Fix a double free in dma_async_device_register +- dmaengine: dw: Make it dependent to HAS_IOMEM +- dmaengine: idxd: fix wq size store permission state +- dmaengine: idxd: fix opcap sysfs attribute output +- dmaengine: idxd: fix delta_rec and crc size field for completion record +- dmaengine: idxd: Fix clobbering of SWERR overflow bit on writeback +- gpio: sysfs: Obey valid_mask +- Input: nspire-keypad - enable interrupts only when opened +- mtd: rawnand: mtk: Fix WAITRDY break condition and timeout +- net/sctp: fix race condition in sctp_destroy_sock +- xen/events: fix setting irq affinity +- net: sfp: cope with SFPs that set both LOS normal and LOS inverted +- net: sfp: relax bitrate-derived mode check +- perf map: Tighten snprintf() string precision to pass gcc check on some 32-bit arches +- netfilter: x_tables: fix compat match/target pad out-of-bound write +- block: don't ignore REQ_NOWAIT for direct IO +- riscv,entry: fix misaligned base for excp_vect_table +- io_uring: don't mark S_ISBLK async work as unbounded +- null_blk: fix command timeout completion handling +- idr test suite: Create anchor before launching throbber +- idr test suite: Take RCU read lock in idr_find_test_1 +- radix tree test suite: Register the main thread with the RCU library +- block: only update parent bi_status when bio fail +- XArray: Fix splitting to non-zero orders +- gpu: host1x: Use different lock classes for each client +- drm/tegra: dc: Don't set PLL clock to 0Hz +- tools/kvm_stat: Add restart delay +- ftrace: Check if pages were allocated before calling free_pages() +- gfs2: report "already frozen/thawed" errors +- drm/imx: imx-ldb: fix out of bounds array access warning +- KVM: arm64: Disable guest access to trace filter controls +- KVM: arm64: Hide system instruction access to Trace registers +- gfs2: Flag a withdraw if init_threads() fails +- interconnect: core: fix error return code of icc_link_destroy() +- Revert "net: sched: bump refcount for new action in ACT replace mode" +- net: ieee802154: stop dump llsec params for monitors +- net: ieee802154: forbid monitor for del llsec seclevel +- net: ieee802154: forbid monitor for set llsec params +- net: ieee802154: fix nl802154 del llsec devkey +- net: ieee802154: fix nl802154 add llsec key +- net: ieee802154: fix nl802154 del llsec dev +- net: ieee802154: fix nl802154 del llsec key +- net: ieee802154: nl-mac: fix check on panid +- net: mac802154: Fix general protection fault +- drivers: net: fix memory leak in peak_usb_create_dev +- drivers: net: fix memory leak in atusb_probe +- net: tun: set tun->dev->addr_len during TUNSETLINK processing +- cfg80211: remove WARN_ON() in cfg80211_sme_connect +- gpiolib: Read "gpio-line-names" from a firmware node +- net: sched: bump refcount for new action in ACT replace mode +- dt-bindings: net: ethernet-controller: fix typo in NVMEM +- lockdep: Address clang -Wformat warning printing for %hd +- clk: socfpga: fix iomem pointer cast on 64-bit +- RAS/CEC: Correct ce_add_elem()'s returned values +- vdpa/mlx5: Fix wrong use of bit numbers +- vdpa/mlx5: should exclude header length and fcs from mtu +- RDMA/addr: Be strict with gid size +- i40e: Fix parameters in aq_get_phy_register() +- drm/vc4: crtc: Reduce PV fifo threshold on hvs4 +- RDMA/qedr: Fix kernel panic when trying to access recv_cq +- perf report: Fix wrong LBR block sorting +- RDMA/cxgb4: check for ipv6 address properly while destroying listener +- net/mlx5: Fix PBMC register mapping +- net/mlx5: Fix PPLM register mapping +- net/mlx5: Fix placement of log_max_flow_counter +- net: hns3: clear VF down state bit before request link status +- tipc: increment the tmp aead refcnt before attaching it +- can: mcp251x: fix support for half duplex SPI host controllers +- iwlwifi: fix 11ax disabled bit in the regulatory capability flags +- i2c: designware: Adjust bus_freq_hz when refuse high speed mode set +- openvswitch: fix send of uninitialized stack memory in ct limit reply +- net: openvswitch: conntrack: simplify the return expression of ovs_ct_limit_get_default_limit() +- perf inject: Fix repipe usage +- s390/cpcmd: fix inline assembly register clobbering +- workqueue: Move the position of debug_work_activate() in __queue_work() +- clk: fix invalid usage of list cursor in unregister +- clk: fix invalid usage of list cursor in register +- net: macb: restore cmp registers on resume path +- net: cls_api: Fix uninitialised struct field bo->unlocked_driver_cb +- scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs +- scsi: ufs: core: Fix task management request completion timeout +- mptcp: forbit mcast-related sockopt on MPTCP sockets +- net: udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...); +- drm/msm: Set drvdata to NULL when msm_drm_init() fails +- RDMA/rtrs-clt: Close rtrs client conn before destroying rtrs clt session files +- i40e: Fix display statistics for veb_tc +- soc/fsl: qbman: fix conflicting alignment attributes +- xdp: fix xdp_return_frame() kernel BUG throw for page_pool memory model +- net/rds: Fix a use after free in rds_message_map_pages +- net/mlx5: Don't request more than supported EQs +- net/mlx5e: Fix ethtool indication of connector type +- net/mlx5e: Fix mapping of ct_label zero +- ASoC: sunxi: sun4i-codec: fill ASoC card owner +- I2C: JZ4780: Fix bug for Ingenic X1000. +- net: phy: broadcom: Only advertise EEE for supported modes +- nfp: flower: ignore duplicate merge hints from FW +- net: qrtr: Fix memory leak on qrtr_tx_wait failure +- net/ncsi: Avoid channel_monitor hrtimer deadlock +- ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces +- net:tipc: Fix a double free in tipc_sk_mcast_rcv +- cxgb4: avoid collecting SGE_QBASE regs during traffic +- net: dsa: Fix type was not set for devlink port +- gianfar: Handle error code at MAC address change +- ethernet: myri10ge: Fix a use after free in myri10ge_sw_tso +- mlxsw: spectrum: Fix ECN marking in tunnel decapsulation +- can: isotp: fix msg_namelen values depending on CAN_REQUIRED_SIZE +- can: bcm/raw: fix msg_namelen values depending on CAN_REQUIRED_SIZE +- xfrm: Provide private skb extensions for segmented and hw offloaded ESP packets +- arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0 +- drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit +- sch_red: fix off-by-one checks in red_check_params() +- geneve: do not modify the shared tunnel info when PMTU triggers an ICMP reply +- vxlan: do not modify the shared tunnel info when PMTU triggers an ICMP reply +- amd-xgbe: Update DMA coherency values +- hostfs: fix memory handling in follow_link() +- i40e: Fix kernel oops when i40e driver removes VF's +- i40e: Added Asym_Pause to supported link modes +- virtchnl: Fix layout of RSS structures +- xfrm: Fix NULL pointer dereference on policy lookup +- ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips +- ASoC: SOF: Intel: HDA: fix core status verification +- esp: delete NETIF_F_SCTP_CRC bit from features for esp offload +- net: xfrm: Localize sequence counter per network namespace +- ARM: OMAP4: PM: update ROM return address for OSWR and OFF +- ARM: OMAP4: Fix PMIC voltage domains for bionic +- regulator: bd9571mwv: Fix AVS and DVFS voltage range +- remoteproc: qcom: pil_info: avoid 64-bit division +- xfrm: Use actual socket sk instead of skb socket for xfrm_output_resume +- xfrm: interface: fix ipv4 pmtu check to honor ip header df +- ice: Recognize 860 as iSCSI port in CEE mode +- ice: Refactor DCB related variables out of the ice_port_info struct +- net: sched: fix err handler in tcf_action_init() +- KVM: x86/mmu: preserve pending TLB flush across calls to kvm_tdp_mmu_zap_sp +- KVM: x86/mmu: Don't allow TDP MMU to yield when recovering NX pages +- KVM: x86/mmu: Ensure TLBs are flushed for TDP MMU during NX zapping +- KVM: x86/mmu: Ensure TLBs are flushed when yielding during GFN range zap +- KVM: x86/mmu: Yield in TDU MMU iter even if no SPTES changed +- KVM: x86/mmu: Ensure forward progress when yielding in TDP MMU iter +- KVM: x86/mmu: Rename goal_gfn to next_last_level_gfn +- KVM: x86/mmu: Merge flush and non-flush tdp_mmu_iter_cond_resched +- KVM: x86/mmu: change TDP MMU yield function returns to match cond_resched +- i2c: turn recovery error on init to debug +- percpu: make pcpu_nr_empty_pop_pages per chunk type +- scsi: target: iscsi: Fix zero tag inside a trace event +- scsi: pm80xx: Fix chip initialization failure +- driver core: Fix locking bug in deferred_probe_timeout_work_func() +- usbip: synchronize event handler with sysfs code paths +- usbip: vudc synchronize sysfs code paths +- usbip: stub-dev synchronize sysfs code paths +- usbip: add sysfs_lock to synchronize sysfs code paths +- thunderbolt: Fix off by one in tb_port_find_retimer() +- thunderbolt: Fix a leak in tb_retimer_add() +- net: let skb_orphan_partial wake-up waiters. +- net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind() +- net: hsr: Reset MAC header for Tx path +- mac80211: fix TXQ AC confusion +- mac80211: fix time-is-after bug in mlme +- cfg80211: check S1G beacon compat element length +- nl80211: fix potential leak of ACL params +- nl80211: fix beacon head validation +- net: sched: fix action overwrite reference counting +- net: sched: sch_teql: fix null-pointer dereference +- vdpa/mlx5: Fix suspend/resume index restoration +- i40e: Fix sparse errors in i40e_txrx.c +- i40e: Fix sparse error: uninitialized symbol 'ring' +- i40e: Fix sparse error: 'vsi->netdev' could be null +- i40e: Fix sparse warning: missing error code 'err' +- net: ensure mac header is set in virtio_net_hdr_to_skb() +- bpf, sockmap: Fix incorrect fwd_alloc accounting +- bpf, sockmap: Fix sk->prot unhash op reset +- bpf: Refcount task stack in bpf_get_task_stack +- libbpf: Only create rx and tx XDP rings when necessary +- libbpf: Restore umem state after socket create failure +- libbpf: Ensure umem pointer is non-NULL before dereferencing +- ethernet/netronome/nfp: Fix a use after free in nfp_bpf_ctrl_msg_rx +- bpf: link: Refuse non-O_RDWR flags in BPF_OBJ_GET +- bpf: Enforce that struct_ops programs be GPL-only +- libbpf: Fix bail out from 'ringbuf_process_ring()' on error +- net: hso: fix null-ptr-deref during tty device unregistration +- ice: fix memory leak of aRFS after resuming from suspend +- iwlwifi: pcie: properly set LTR workarounds on 22000 devices +- ice: Cleanup fltr list in case of allocation issues +- ice: Use port number instead of PF ID for WoL +- ice: Fix for dereference of NULL pointer +- ice: remove DCBNL_DEVRESET bit from PF state +- ice: fix memory allocation call +- ice: prevent ice_open and ice_stop during reset +- ice: Increase control queue timeout +- ice: Continue probe on link/PHY errors +- batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field +- ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin +- parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers +- parisc: parisc-agp requires SBA IOMMU driver +- of: property: fw_devlink: do not link ".*,nr-gpios" +- ethtool: fix incorrect datatype in set_eee ops +- fs: direct-io: fix missing sdio->boundary +- ocfs2: fix deadlock between setattr and dio_end_io_write +- nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff +- ia64: fix user_stack_pointer() for ptrace() +- gcov: re-fix clang-11+ support +- LOOKUP_MOUNTPOINT: we are cleaning "jumped" flag too late +- IB/hfi1: Fix probe time panic when AIP is enabled with a buggy BIOS +- ACPI: processor: Fix build when CONFIG_ACPI_PROCESSOR=m +- drm/i915: Fix invalid access to ACPI _DSM objects +- net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits +- net: dsa: lantiq_gswip: Don't use PHY auto polling +- net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock +- net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh +- xen/evtchn: Change irq_info lock to raw_spinlock_t +- selinux: fix race between old and new sidtab +- selinux: fix cond_list corruption when changing booleans +- selinux: make nslot handling in avtab more robust +- nfc: Avoid endless loops caused by repeated llcp_sock_connect() +- nfc: fix memory leak in llcp_sock_connect() +- nfc: fix refcount leak in llcp_sock_connect() +- nfc: fix refcount leak in llcp_sock_bind() +- ASoC: intel: atom: Stop advertising non working S24LE support +- ALSA: hda/conexant: Apply quirk for another HP ZBook G5 model +- ALSA: hda/realtek: Fix speaker amp setup on Acer Aspire E1 +- ALSA: aloop: Fix initialization of controls +- xfrm/compat: Cleanup WARN()s that can be user-triggered +- arm64: fix USER_DS definition problem in non-compat mode +- init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM +- init/Kconfig: make COMPILE_TEST depend on !S390 +- bpf, x86: Validate computation of branch displacements for x86-32 +- bpf, x86: Validate computation of branch displacements for x86-64 +- tools/resolve_btfids: Add /libbpf to .gitignore +- kbuild: Do not clean resolve_btfids if the output does not exist +- kbuild: Add resolve_btfids clean to root clean target +- tools/resolve_btfids: Set srctree variable unconditionally +- tools/resolve_btfids: Check objects before removing +- tools/resolve_btfids: Build libbpf and libsubcmd in separate directories +- math: Export mul_u64_u64_div_u64 +- io_uring: fix timeout cancel return code +- cifs: Silently ignore unknown oplock break handle +- cifs: revalidate mapping when we open files for SMB1 POSIX +- ia64: fix format strings for err_inject +- ia64: mca: allocate early mca with GFP_ATOMIC +- selftests/vm: fix out-of-tree build +- scsi: target: pscsi: Clean up after failure in pscsi_map_sg() +- ptp_qoriq: fix overflow in ptp_qoriq_adjfine() u64 calcalation +- platform/x86: intel_pmc_core: Ignore GBE LTR on Tiger Lake platforms +- block: clear GD_NEED_PART_SCAN later in bdev_disk_changed +- x86/build: Turn off -fcf-protection for realmode targets +- drm/msm/disp/dpu1: icc path needs to be set before dpu runtime resume +- kselftest/arm64: sve: Do not use non-canonical FFR register value +- platform/x86: thinkpad_acpi: Allow the FnLock LED to change state +- net: ipa: fix init header command validation +- netfilter: nftables: skip hook overlap logic if flowtable is stale +- netfilter: conntrack: Fix gre tunneling over ipv6 +- drm/msm: Ratelimit invalid-fence message +- drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs +- drm/msm/dsi_pll_7nm: Fix variable usage for pll_lockdet_rate +- mac80211: choose first enabled channel for monitor +- mac80211: Check crypto_aead_encrypt for errors +- mISDN: fix crash in fritzpci +- kunit: tool: Fix a python tuple typing error +- net: pxa168_eth: Fix a potential data race in pxa168_eth_remove +- net/mlx5e: Enforce minimum value check for ICOSQ size +- bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp +- platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2 +- bus: ti-sysc: Fix warning on unbind if reset is not deasserted +- ARM: dts: am33xx: add aliases for mmc interfaces +- bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG +- Revert "kernel: freezer should treat PF_IO_WORKER like PF_KTHREAD for freezing" +- riscv: evaluate put_user() arg before enabling user access +- drivers: video: fbcon: fix NULL dereference in fbcon_cursor() +- driver core: clear deferred probe reason on probe retry +- staging: rtl8192e: Change state information from u16 to u8 +- staging: rtl8192e: Fix incorrect source in memcpy() +- soc: qcom-geni-se: Cleanup the code to remove proxy votes +- usb: dwc3: gadget: Clear DEP flags after stop transfers in ep disable +- usb: dwc3: qcom: skip interconnect init for ACPI probe +- usb: dwc2: Prevent core suspend when port connection flag is 0 +- usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board. +- usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference +- USB: cdc-acm: fix use-after-free after probe failure +- USB: cdc-acm: fix double free on probe failure +- USB: cdc-acm: downgrade message to debug +- USB: cdc-acm: untangle a circular dependency between callback and softint +- cdc-acm: fix BREAK rx code path adding necessary calls +- usb: xhci-mtk: fix broken streams issue on 0.96 xHCI +- usb: musb: Fix suspend with devices connected for a64 +- USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem +- usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control() +- firewire: nosy: Fix a use-after-free bug in nosy_ioctl() +- video: hyperv_fb: Fix a double free in hvfb_probe +- usb: dwc3: pci: Enable dis_uX_susphy_quirk for Intel Merrifield +- firmware: stratix10-svc: reset COMMAND_RECONFIG_FLAG_PARTIAL to 0 +- extcon: Fix error handling in extcon_dev_register +- extcon: Add stubs for extcon_register_notifier_all() functions +- pinctrl: rockchip: fix restore error in resume +- vfio/nvlink: Add missing SPAPR_TCE_IOMMU depends +- drm/tegra: sor: Grab runtime PM reference across reset +- drm/tegra: dc: Restore coupling of display controllers +- drm/imx: fix memory leak when fails to init +- reiserfs: update reiserfs_xattrs_initialized() condition +- drm/amdgpu: check alignment on CPU page for bo map +- drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings() +- drm/amdkfd: dqm fence memory corruption +- mm: fix race by making init_zero_pfn() early_initcall +- s390/vdso: fix tod_steering_delta type +- s390/vdso: copy tod_steering_delta value to vdso_data page +- tracing: Fix stack trace event size +- PM: runtime: Fix ordering in pm_runtime_get_suppliers() +- PM: runtime: Fix race getting/putting suppliers at probe +- KVM: SVM: ensure that EFER.SVME is set when running nested guest or on nested vmexit +- KVM: SVM: load control fields from VMCB12 before checking them +- xtensa: move coprocessor_flush to the .text section +- xtensa: fix uaccess-related livelock in do_page_fault +- ALSA: hda/realtek: fix mute/micmute LEDs for HP 640 G8 +- ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook +- ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO +- ALSA: hda: Add missing sanity checks in PM prepare/complete callbacks +- ALSA: hda: Re-add dropped snd_poewr_change_state() calls +- ALSA: usb-audio: Apply sample rate quirk to Logitech Connect +- ACPI: processor: Fix CPU0 wakeup in acpi_idle_play_dead() +- ACPI: tables: x86: Reserve memory occupied by ACPI tables +- bpf: Remove MTU check in __bpf_skb_max_len +- net: 9p: advance iov on empty read +- net: wan/lmc: unregister device when no matching device is found +- net: ipa: fix register write command validation +- net: ipa: remove two unused register definitions +- appletalk: Fix skb allocation size in loopback case +- net: ethernet: aquantia: Handle error cleanup of start on open +- ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr() +- iwlwifi: pcie: don't disable interrupts for reg_lock +- netdevsim: dev: Initialize FIB module after debugfs +- rtw88: coex: 8821c: correct antenna switch function +- ath11k: add ieee80211_unregister_hw to avoid kernel crash caused by NULL pointer +- brcmfmac: clear EAP/association status bits on linkdown events +- can: tcan4x5x: fix max register value +- net: introduce CAN specific pointer in the struct net_device +- can: dev: move driver related infrastructure into separate subdir +- flow_dissector: fix TTL and TOS dissection on IPv4 fragments +- net: mvpp2: fix interrupt mask/unmask skip condition +- io_uring: call req_set_fail_links() on short send[msg]()/recv[msg]() with MSG_WAITALL +- ext4: do not iput inode under running transaction in ext4_rename() +- static_call: Align static_call_is_init() patching condition +- io_uring: imply MSG_NOSIGNAL for send[msg]()/recv[msg]() calls +- nvmet-tcp: fix kmap leak when data digest in use +- locking/ww_mutex: Fix acquire/release imbalance in ww_acquire_init()/ww_acquire_fini() +- locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling +- thermal/core: Add NULL pointer check before using cooling device stats +- ASoC: rt711: add snd_soc_component remove callback +- ASoC: rt5659: Update MCLK rate in set_sysclk() +- staging: comedi: cb_pcidas64: fix request_irq() warn +- staging: comedi: cb_pcidas: fix request_irq() warn +- scsi: qla2xxx: Fix broken #endif placement +- scsi: st: Fix a use after free in st_open() +- io_uring: fix ->flags races by linked timeouts +- vhost: Fix vhost_vq_reset() +- kernel: freezer should treat PF_IO_WORKER like PF_KTHREAD for freezing +- NFSD: fix error handling in NFSv4.0 callbacks +- ASoC: cs42l42: Always wait at least 3ms after reset +- ASoC: cs42l42: Fix mixer volume control +- ASoC: cs42l42: Fix channel width support +- ASoC: cs42l42: Fix Bitclock polarity inversion +- ASoC: soc-core: Prevent warning if no DMI table is present +- ASoC: es8316: Simplify adc_pga_gain_tlv table +- ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe +- ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10 +- ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10 +- ASoC: rt1015: fix i2c communication error +- iomap: Fix negative assignment to unsigned sis->pages in iomap_swapfile_activate +- rpc: fix NULL dereference on kmalloc failure +- fs: nfsd: fix kconfig dependency warning for NFSD_V4 +- ext4: fix bh ref count on error paths +- ext4: shrink race window in ext4_should_retry_alloc() +- virtiofs: Fail dax mount if device does not support it +- bpf: Fix fexit trampoline. +- arm64: mm: correct the inside linear map range during hotplug check +- io_uring: convert io_buffer_idr to XArray +- io_uring: Convert personality_idr to XArray +- io_uring: simplify io_remove_personalities() +- posix-timers: Preserve return value in clock_adjtime32() +- arm64: fix current_thread_info()->addr_limit setup +- xen-blkback: don't leak persistent grants from xen_blkbk_map() +- can: peak_usb: Revert "can: peak_usb: add forgotten supported devices" +- nvme: fix the nsid value to print in nvme_validate_or_alloc_ns +- Revert "net: bonding: fix error return code of bond_neigh_init()" +- Revert "xen: fix p2m size in dom0 for disabled memory hotplug case" +- fs/ext4: fix integer overflow in s_log_groups_per_flex +- ext4: add reclaim checks to xattr code +- mac80211: fix double free in ibss_leave +- net: dsa: b53: VLAN filtering is global to all users +- r8169: fix DMA being used after buffer free if WoL is enabled +- can: dev: Move device back to init netns on owning netns delete +- ch_ktls: fix enum-conversion warning +- fs/cachefiles: Remove wait_bit_key layout dependency +- mm/memcg: fix 5.10 backport of splitting page memcg +- x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc() +- locking/mutex: Fix non debug version of mutex_lock_io_nested() +- cifs: Adjust key sizes and key generation routines for AES256 encryption +- smb3: fix cached file size problems in duplicate extents (reflink) +- scsi: mpt3sas: Fix error return code of mpt3sas_base_attach() +- scsi: qedi: Fix error return code of qedi_alloc_global_queues() +- scsi: Revert "qla2xxx: Make sure that aborted commands are freed" +- block: recalculate segment count for multi-segment discards correctly +- io_uring: fix provide_buffers sign extension +- perf synthetic events: Avoid write of uninitialized memory when generating PERF_RECORD_MMAP* records +- perf auxtrace: Fix auxtrace queue conflict +- ACPI: scan: Use unique number for instance_no +- ACPI: scan: Rearrange memory allocation in acpi_device_add() +- Revert "netfilter: x_tables: Update remaining dereference to RCU" +- mm/mmu_notifiers: ensure range_end() is paired with range_start() +- dm table: Fix zoned model check and zone sectors check +- netfilter: x_tables: Use correct memory barriers. +- Revert "netfilter: x_tables: Switch synchronization to RCU" +- net: phy: broadcom: Fix RGMII delays for BCM50160 and BCM50610M +- net: phy: broadcom: Set proper 1000BaseX/SGMII interface mode for BCM54616S +- net: phy: broadcom: Avoid forward for bcm54xx_config_clock_delay() +- net: phy: introduce phydev->port +- net: axienet: Fix probe error cleanup +- net: axienet: Properly handle PCS/PMA PHY for 1000BaseX mode +- igb: avoid premature Rx buffer reuse +- net, bpf: Fix ip6ip6 crash with collect_md populated skbs +- net: Consolidate common blackhole dst ops +- bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs +- RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server +- xen/x86: make XEN_BALLOON_MEMORY_HOTPLUG_LIMIT depend on MEMORY_HOTPLUG +- octeontx2-af: Fix memory leak of object buf +- net: bridge: don't notify switchdev for local FDB addresses +- PM: EM: postpone creating the debugfs dir till fs_initcall +- net/mlx5e: Fix error path for ethtool set-priv-flag +- net/mlx5e: Offload tuple rewrite for non-CT flows +- net/mlx5e: Allow to match on MPLS parameters only for MPLS over UDP +- net/mlx5: Add back multicast stats for uplink representor +- PM: runtime: Defer suspending suppliers +- arm64: kdump: update ppos when reading elfcorehdr +- drm/msm: Fix suspend/resume on i.MX5 +- drm/msm: fix shutdown hook in case GPU components failed to bind +- can: isotp: tx-path: zero initialize outgoing CAN frames +- bpf: Fix umd memory leak in copy_process() +- libbpf: Fix BTF dump of pointer-to-array-of-struct +- selftests: forwarding: vxlan_bridge_1d: Fix vxlan ecn decapsulate value +- selinux: vsock: Set SID for socket returned by accept() +- net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes +- r8152: limit the RX buffer size of RTL8153A for USB 2.0 +- igb: check timestamp validity +- net: cdc-phonet: fix data-interface release on probe failure +- net: check all name nodes in __dev_alloc_name +- octeontx2-af: fix infinite loop in unmapping NPC counter +- octeontx2-pf: Clear RSS enable flag on interace down +- octeontx2-af: Fix irq free in rvu teardown +- octeontx2-af: Remove TOS field from MKEX TX +- octeontx2-af: Modify default KEX profile to extract TX packet fields +- octeontx2-af: Formatting debugfs entry rsrc_alloc. +- ipv6: weaken the v4mapped source check +- ARM: dts: imx6ull: fix ubi filesystem mount failed +- libbpf: Use SOCK_CLOEXEC when opening the netlink socket +- libbpf: Fix error path in bpf_object__elf_init() +- netfilter: flowtable: Make sure GC works periodically in idle system +- netfilter: nftables: allow to update flowtable flags +- netfilter: nftables: report EOPNOTSUPP on unsupported flowtable flags +- net/sched: cls_flower: fix only mask bit check in the validate_ct_state +- ionic: linearize tso skb with too many frags +- drm/msm/dsi: fix check-before-set in the 7nm dsi_pll code +- ftrace: Fix modify_ftrace_direct. +- nfp: flower: fix pre_tun mask id allocation +- nfp: flower: add ipv6 bit to pre_tunnel control message +- nfp: flower: fix unsupported pre_tunnel flows +- selftests/net: fix warnings on reuseaddr_ports_exhausted +- mac80211: Allow HE operation to be longer than expected. +- mac80211: fix rate mask reset +- can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors +- can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning +- can: c_can: move runtime PM enable/disable to c_can_platform +- can: c_can_pci: c_can_pci_remove(): fix use-after-free +- can: kvaser_pciefd: Always disable bus load reporting +- can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate +- can: peak_usb: add forgotten supported devices +- can: isotp: TX-path: ensure that CAN frame flags are initialized +- can: isotp: isotp_setsockopt(): only allow to set low level TX flags for CAN-FD +- tcp: relookup sock for RST+ACK packets handled by obsolete req sock +- tipc: better validate user input in tipc_nl_retrieve_key() +- net: phylink: Fix phylink_err() function name error in phylink_major_config +- net: hdlc_x25: Prevent racing between "x25_close" and "x25_xmit"/"x25_rx" +- netfilter: ctnetlink: fix dump of the expect mask attribute +- selftests/bpf: Set gopt opt_class to 0 if get tunnel opt failed +- flow_dissector: fix byteorder of dissected ICMP ID +- net: qrtr: fix a kernel-infoleak in qrtr_recvmsg() +- net: ipa: terminate message handler arrays +- clk: qcom: gcc-sc7180: Use floor ops for the correct sdcc1 clk +- ftgmac100: Restart MAC HW once +- net: phy: broadcom: Add power down exit reset state delay +- net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template +- e1000e: Fix error handling in e1000_set_d0_lplu_state_82571 +- e1000e: add rtnl_lock() to e1000_reset_task +- igc: Fix igc_ptp_rx_pktstamp() +- igc: Fix Supported Pause Frame Link Setting +- igc: Fix Pause Frame Advertising +- igc: reinit_locked() should be called with rtnl_lock +- net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port +- net: sched: validate stab values +- macvlan: macvlan_count_rx() needs to be aware of preemption +- drop_monitor: Perform cleanup upon probe registration failure +- ipv6: fix suspecious RCU usage warning +- net/mlx5e: Don't match on Geneve options in case option masks are all zero +- net/mlx5e: When changing XDP program without reset, take refs for XSK RQs +- net/mlx5e: RX, Mind the MPWQE gaps when calculating offsets +- libbpf: Fix INSTALL flag order +- bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF +- veth: Store queue_mapping independently of XDP prog presence +- soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva +- ARM: OMAP2+: Fix smartreflex init regression after dropping legacy data +- bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD +- dm ioctl: fix out of bounds array access when no devices +- dm verity: fix DM_VERITY_OPTS_MAX value +- drm/i915: Fix the GT fence revocation runtime PM logic +- drm/amdgpu: Add additional Sienna Cichlid PCI ID +- drm/amdgpu/display: restore AUX_DPHY_TX_CONTROL for DCN2.x +- drm/amd/pm: workaround for audio noise issue +- drm/etnaviv: Use FOLL_FORCE for userptr +- integrity: double check iint_cache was initialized +- ARM: dts: at91-sama5d27_som1: fix phy address to 7 +- ARM: dts: at91: sam9x60: fix mux-mask to match product's datasheet +- ARM: dts: at91: sam9x60: fix mux-mask for PA7 so it can be set to A, B and C +- arm64: dts: ls1043a: mark crypto engine dma coherent +- arm64: dts: ls1012a: mark crypto engine dma coherent +- arm64: dts: ls1046a: mark crypto engine dma coherent +- arm64: stacktrace: don't trace arch_stack_walk() +- ACPICA: Always create namespace nodes using acpi_ns_create_node() +- ACPI: video: Add missing callback back for Sony VPCEH3U1E +- gcov: fix clang-11+ support +- kasan: fix per-page tags for non-page_alloc pages +- hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappings +- squashfs: fix xattr id and id lookup sanity checks +- squashfs: fix inode lookup sanity checks +- z3fold: prevent reclaim/free race for headless pages +- psample: Fix user API breakage +- platform/x86: intel-vbtn: Stop reporting SW_DOCK events +- netsec: restore phy power state after controller reset +- selinux: fix variable scope issue in live sidtab conversion +- selinux: don't log MAC_POLICY_LOAD record on failed policy load +- btrfs: fix sleep while in non-sleep context during qgroup removal +- KVM: x86: Protect userspace MSR filter with SRCU, and set atomically-ish +- static_call: Fix static_call_set_init() +- static_call: Fix the module key fixup +- static_call: Allow module use without exposing static_call_key +- static_call: Pull some static_call declarations to the type headers +- ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign +- ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls +- mm/fork: clear PASID for new mm +- block: Suppress uevent for hidden device when removed +- nfs: we don't support removing system.nfs4_acl +- nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a +- nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done +- nvme-core: check ctrl css before setting up zns +- nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted +- nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange() +- nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request() +- nvme: simplify error logic in nvme_validate_ns() +- drm/radeon: fix AGP dependency +- drm/amdgpu: fb BO should be ttm_bo_type_device +- drm/amd/display: Revert dram_clock_change_latency for DCN2.1 +- block: Fix REQ_OP_ZONE_RESET_ALL handling +- regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck +- kselftest: arm64: Fix exit code of sve-ptrace +- u64_stats,lockdep: Fix u64_stats_init() vs lockdep +- staging: rtl8192e: fix kconfig dependency on CRYPTO +- habanalabs: Call put_pid() when releasing control device +- sparc64: Fix opcode filtering in handling of no fault loads +- umem: fix error return code in mm_pci_probe() +- kbuild: dummy-tools: fix inverted tests for gcc +- kbuild: add image_name to no-sync-config-targets +- irqchip/ingenic: Add support for the JZ4760 +- cifs: change noisy error message to FYI +- atm: idt77252: fix null-ptr-dereference +- atm: uPD98402: fix incorrect allocation +- net: enetc: set MAC RX FIFO to recommended value +- net: davicom: Use platform_get_irq_optional() +- net: wan: fix error return code of uhdlc_init() +- net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch() +- NFS: Correct size calculation for create reply length +- nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default +- gpiolib: acpi: Add missing IRQF_ONESHOT +- cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev +- gfs2: fix use-after-free in trans_drain +- cifs: ask for more credit on async read/write code paths +- gianfar: fix jumbo packets+napi+rx overrun crash +- sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count +- net: intel: iavf: fix error return code of iavf_init_get_resources() +- net: tehuti: fix error return code in bdx_probe() +- blk-cgroup: Fix the recursive blkg rwstat +- scsi: ufs: ufs-qcom: Disable interrupt in reset path +- ixgbe: Fix memleak in ixgbe_configure_clsu32 +- ALSA: hda: ignore invalid NHLT table +- Revert "r8152: adjust the settings about MAC clock speed down for RTL8153" +- atm: lanai: dont run lanai_dev_close if not open +- atm: eni: dont release is never initialized +- powerpc/4xx: Fix build errors from mfdcr() +- net: fec: ptp: avoid register access when ipg clock is disabled +- net: stmmac: fix dma physical address of descriptor when display ring +- mt76: fix tx skb error handling in mt76_dma_tx_queue_skb +- mm/memcg: set memcg when splitting page +- mm/memcg: rename mem_cgroup_split_huge_fixup to split_page_memcg and add nr_pages argument +- kvm: debugfs: add EXIT_REASON_PREEMPTION_TIMER to vcpu_stat +- kvm: debugfs: add fastpath msr_wr exits to debugfs statistics +- arm64/mpam: fix a possible deadlock in mpam_enable +- RDMA/hns: Optimize the base address table config for MTR +- fs: fix files.usage bug when move tasks +- files_cgroup: fix error pointer when kvm_vm_worker_thread +- fs/filescontrol: add a switch to enable / disable accounting of open fds +- cgroup/files: use task_get_css() to get a valid css during dup_fd() +- cgroups: Resource controller for open files +- openeuler_defconfig: enable CONFIG_CGROUP_FILES by default +- x86: config: disable CONFIG_BOOTPARAM_HOTPLUG_CPU0 by default +- ima: fix a memory leak in ima_del_digest_data_entry +- config: add digest list options for arm64 and x86 +- evm: Propagate choice of HMAC algorithm in evm_crypto.c +- evm: Extend evm= with x509. allow_metadata_writes and complete values +- ima: Execute parser to upload digest lists not recognizable by the kernel +- ima: Add parser keyword to the policy +- ima: Allow direct upload of digest lists to securityfs +- ima: Search key in the built-in keyrings +- certs: Introduce search_trusted_key() +- KEYS: Introduce load_pgp_public_keyring() +- KEYS: Provide a function to load keys from a PGP keyring blob +- KEYS: Provide PGP key description autogeneration +- KEYS: PGP data parser +- PGPLIB: Basic packet parser +- PGPLIB: PGP definitions (RFC 4880) +- rsa: add parser of raw format +- mpi: introduce mpi_key_length() +- evm: Reset status even when security.evm is modified +- ima: Add Documentation/security/IMA-digest-lists.txt +- ima: Introduce appraise_exec_immutable policy +- ima: Introduce appraise_exec_tcb policy +- ima: Introduce exec_tcb policy +- ima: Add meta_immutable appraisal type +- evm: Add support for digest lists of metadata +- ima: Add support for appraisal with digest lists +- ima: Add support for measurement with digest lists +- ima: Load all digest lists from a directory at boot time +- ima: Introduce new hook DIGEST_LIST_CHECK +- ima: Introduce new securityfs files +- ima: Prevent usage of digest lists not measured or appraised +- ima: Add parser of compact digest list +- ima: Use ima_show_htable_value to show violations and hash table data +- ima: Generalize policy file operations +- ima: Generalize ima_write_policy() and raise uploaded data size limit +- ima: Generalize ima_read_policy() +- ima: Allow choice of file hash algorithm for measurement and audit +- ima: Add enforce-evm and log-evm modes to strictly check EVM status +- init: Add kernel option to force usage of tmpfs for rootfs +- gen_init_cpio: add support for file metadata +- initramfs: read metadata from special file METADATA!!! +- initramfs: add file metadata +- ima: Don't remove security.ima if file must not be appraised +- ima: Introduce template field evmsig and write to field sig as fallback +- ima: Allow imasig requirement to be satisfied by EVM portable signatures +- evm: Allow setxattr() and setattr() for unmodified metadata +- evm: Allow xattr/attr operations for portable signatures +- evm: Ignore INTEGRITY_NOLABEL/INTEGRITY_NOXATTRS if conditions are safe +- evm: Introduce evm_status_revalidate() +- ima: Move ima_reset_appraise_flags() call to post hooks +- evm: Refuse EVM_ALLOW_METADATA_WRITES only if an HMAC key is loaded +- evm: Load EVM key in ima_load_x509() to avoid appraisal +- evm: Execute evm_inode_init_security() only when an HMAC key is loaded +- cgroup: disable kernel memory accounting for all memory cgroups by default +- etmem: Modify the memig feature name to etmem +- memig: fix compile error when CONFIG_NUMA is turned off +- memig: add memig-swap feature to openEuler +- memig: add memig-scan feature to openEuler +- arm64: fix compile error when CONFIG_ACPI is not enabled +- arm64: ipi_nmi: fix compile error when CONFIG_KGDB is disabled +- arm64: kgdb: Roundup cpus using IPI as NMI +- kgdb: Expose default CPUs roundup fallback mechanism +- arm64: ipi_nmi: Add support for NMI backtrace +- nmi: backtrace: Allow runtime arch specific override +- arm64: smp: Assign and setup an IPI as NMI +- irqchip/gic-v3: Enable support for SGIs to act as NMIs +- arm64: Add framework to turn IPI as NMI +- openeuler_defconfig: Enable NMI watchdog +- arm64: watchdog: add switch to select sdei_watchdog/pmu_watchdog +- arm64: add new config CONFIG_PMU_WATCHDOG +- arm64: Add support for hard lockup by using pmu counter +- config: enable CONFIG_CPU_IDLE_GOV_HALTPOLL and CONFIG_HALTPOLL_CPUIDLE for arm +- ARM: cpuidle: Add support for cpuidle-haltpoll driver for ARM +- cpuidle: haltpoll: Only check boot_option_idle_override in x86 +- arm64: Add some definitions of kvm_para* +- cpuidle-haltpoll: Use arch_cpu_idle() to replace default_idle() +- arm64: Optimize ttwu IPI +- kvm: arm64: add KVM_CAP_ARM_CPU_FEATURE extension +- kvm: arm64: make ID_AA64PFR0_EL1 configurable +- kvm: arm64: make ID registers configurable +- kvm: arm64: emulate the ID registers +- arm64: add a helper function to traverse arm64_ftr_regs +- KVM: arm64: Add tracepoints for PV qspinlock +- KVM: arm64: Enable PV qspinlock +- KVM: arm64: Add interface to support PV qspinlock +- KVM: arm64: Implement PV_SCHED_KICK_CPU call +- KVM: arm64: Add SMCCC PV-sched to kick cpu +- KVM: arm64: Support the vCPU preemption check +- KVM: arm64: Add interface to support vCPU preempted check +- KVM: arm64: Support pvsched preempted via shared structure +- KVM: arm64: Implement PV_SCHED_FEATURES call +- KVM: arm64: Document PV-sched interface +- arm64: fix the compile error when CONFIG_NUMA is disabled +- arm64: Add CPU hotplug support +- arm64: mark all the GICC nodes in MADT as possible cpu +- loop: fix I/O error on fsync() in detached loop devices +- sysrq: avoid concurrently info printing by 'sysrq-trigger' +- jffs2: check the validity of dstlen in jffs2_zlib_compress() +- cifs: Fix preauth hash corruption +- x86/apic/of: Fix CPU devicetree-node lookups +- genirq: Disable interrupts for force threaded handlers +- firmware/efi: Fix a use after bug in efi_mem_reserve_persistent +- efi: use 32-bit alignment for efi_guid_t literals +- static_call: Fix static_call_update() sanity check +- MAINTAINERS: move the staging subsystem to lists.linux.dev +- MAINTAINERS: move some real subsystems off of the staging mailing list +- ext4: fix rename whiteout with fast commit +- ext4: fix potential error in ext4_do_update_inode +- ext4: do not try to set xattr into ea_inode if value is empty +- ext4: stop inode update before return +- ext4: fix error handling in ext4_end_enable_verity() +- efivars: respect EFI_UNSUPPORTED return from firmware +- x86: Introduce TS_COMPAT_RESTART to fix get_nr_restart_syscall() +- x86: Move TS_COMPAT back to asm/thread_info.h +- kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data() +- x86/ioapic: Ignore IRQ2 again +- perf/x86/intel: Fix unchecked MSR access error caused by VLBR_EVENT +- perf/x86/intel: Fix a crash caused by zero PEBS status +- PCI: rpadlpar: Fix potential drc_name corruption in store functions +- counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register +- counter: stm32-timer-cnt: fix ceiling write max value +- iio: hid-sensor-temperature: Fix issues of timestamp channel +- iio: hid-sensor-prox: Fix scale not correct issue +- iio: hid-sensor-humidity: Fix alignment issue of timestamp channel +- iio: adc: adi-axi-adc: add proper Kconfig dependencies +- iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask +- iio: adc: ab8500-gpadc: Fix off by 10 to 3 +- iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler +- iio: adis16400: Fix an error code in adis16400_initial_setup() +- iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel +- iio:adc:stm32-adc: Add HAS_IOMEM dependency +- thunderbolt: Increase runtime PM reference count on DP tunnel discovery +- thunderbolt: Initialize HopID IDAs in tb_switch_alloc() +- usb: dwc3: gadget: Prevent EP queuing while stopping transfers +- usb: dwc3: gadget: Allow runtime suspend if UDC unbinded +- usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy- +- usb: typec: Remove vdo[3] part of tps6598x_rx_identity_reg struct +- usb: gadget: configfs: Fix KASAN use-after-free +- usbip: Fix incorrect double assignment to udc->ud.tcp_rx +- usb-storage: Add quirk to defeat Kindle's automatic unload +- powerpc: Force inlining of cpu_has_feature() to avoid build failure +- gfs2: bypass signal_our_withdraw if no journal +- gfs2: move freeze glock outside the make_fs_rw and _ro functions +- gfs2: Add common helper for holding and releasing the freeze glock +- regulator: pca9450: Clear PRESET_EN bit to fix BUCK1/2/3 voltage setting +- regulator: pca9450: Enable system reset on WDOG_B assertion +- regulator: pca9450: Add SD_VSEL GPIO for LDO5 +- net: bonding: fix error return code of bond_neigh_init() +- io_uring: clear IOCB_WAITQ for non -EIOCBQUEUED return +- io_uring: don't attempt IO reissue from the ring exit path +- drm/amd/pm: fulfill the Polaris implementation for get_clock_by_type_with_latency() +- s390/qeth: schedule TX NAPI on QAOB completion +- ibmvnic: remove excessive irqsave +- media: cedrus: h264: Support profile controls +- io_uring: fix inconsistent lock state +- iwlwifi: Add a new card for MA family +- drm/amd/display: turn DPMS off on connector unplug +- MIPS: compressed: fix build with enabled UBSAN +- net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ8081 +- i40e: Fix endianness conversions +- powerpc/sstep: Fix darn emulation +- powerpc/sstep: Fix load-store and update emulation +- RDMA/mlx5: Allow creating all QPs even when non RDMA profile is used +- scsi: isci: Pass gfp_t flags in isci_port_bc_change_received() +- scsi: isci: Pass gfp_t flags in isci_port_link_up() +- scsi: isci: Pass gfp_t flags in isci_port_link_down() +- scsi: mvsas: Pass gfp_t flags to libsas event notifiers +- scsi: libsas: Introduce a _gfp() variant of event notifiers +- scsi: libsas: Remove notifier indirection +- scsi: pm8001: Neaten debug logging macros and uses +- scsi: pm80xx: Fix pm8001_mpi_get_nvmd_resp() race condition +- scsi: pm80xx: Make running_req atomic +- scsi: pm80xx: Make mpi_build_cmd locking consistent +- module: harden ELF info handling +- module: avoid *goto*s in module_sig_check() +- module: merge repetitive strings in module_sig_check() +- RDMA/rtrs: Fix KASAN: stack-out-of-bounds bug +- RDMA/rtrs: Introduce rtrs_post_send +- RDMA/rtrs-srv: Jump to dereg_mr label if allocate iu fails +- RDMA/rtrs: Remove unnecessary argument dir of rtrs_iu_free +- bpf: Declare __bpf_free_used_maps() unconditionally +- serial: stm32: fix DMA initialization error handling +- tty: serial: stm32-usart: Remove set but unused 'cookie' variables +- ibmvnic: serialize access to work queue on remove +- ibmvnic: add some debugs +- nvme-rdma: fix possible hang when failing to set io queues +- gpiolib: Assign fwnode to parent's if no primary one provided +- counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED +- RISC-V: correct enum sbi_ext_rfence_fid +- scsi: ufs: ufs-mediatek: Correct operator & -> && +- scsi: myrs: Fix a double free in myrs_cleanup() +- scsi: lpfc: Fix some error codes in debugfs +- riscv: Correct SPARSEMEM configuration +- cifs: fix allocation size on newly created files +- kbuild: Fix for empty SUBLEVEL or PATCHLEVEL again +- net/qrtr: fix __netdev_alloc_skb call +- io_uring: ensure that SQPOLL thread is started for exit +- pstore: Fix warning in pstore_kill_sb() +- i915/perf: Start hrtimer only if sampling the OA buffer +- sunrpc: fix refcount leak for rpc auth modules +- vhost_vdpa: fix the missing irq_bypass_unregister_producer() invocation +- vfio: IOMMU_API should be selected +- svcrdma: disable timeouts on rdma backchannel +- NFSD: fix dest to src mount in inter-server COPY +- NFSD: Repair misuse of sv_lock in 5.10.16-rt30. +- nfsd: don't abort copies early +- nfsd: Don't keep looking up unhashed files in the nfsd file cache +- nvmet: don't check iosqes,iocqes for discovery controllers +- nvme-tcp: fix a NULL deref when receiving a 0-length r2t PDU +- nvme-tcp: fix possible hang when failing to set io queues +- nvme-tcp: fix misuse of __smp_processor_id with preemption enabled +- nvme: fix Write Zeroes limitations +- ALSA: usb-audio: Fix unintentional sign extension issue +- afs: Stop listxattr() from listing "afs.*" attributes +- afs: Fix accessing YFS xattrs on a non-YFS server +- ASoC: simple-card-utils: Do not handle device clock +- ASoC: qcom: lpass-cpu: Fix lpass dai ids parse +- ASoC: codecs: wcd934x: add a sanity check in set channel map +- ASoC: qcom: sdm845: Fix array out of range on rx slim channels +- ASoC: qcom: sdm845: Fix array out of bounds access +- ASoC: SOF: intel: fix wrong poll bits in dsp power down +- ASoC: SOF: Intel: unregister DMIC device on probe error +- ASoC: Intel: bytcr_rt5640: Fix HP Pavilion x2 10-p0XX OVCD current threshold +- ASoC: fsl_ssi: Fix TDM slot setup for I2S mode +- drm/amd/display: Correct algorithm for reversed gamma +- vhost-vdpa: set v->config_ctx to NULL if eventfd_ctx_fdget() fails +- vhost-vdpa: fix use-after-free of v->config_ctx +- btrfs: fix slab cache flags for free space tree bitmap +- btrfs: fix race when cloning extent buffer during rewind of an old root +- zonefs: fix to update .i_wr_refcnt correctly in zonefs_open_zone() +- zonefs: prevent use of seq files as swap file +- zonefs: Fix O_APPEND async write handling +- s390/pci: fix leak of PCI device structure +- s390/pci: remove superfluous zdev->zbus check +- s390/pci: refactor zpci_create_device() +- s390/vtime: fix increased steal time accounting +- Revert "PM: runtime: Update device status before letting suppliers suspend" +- ALSA: hda/realtek: fix mute/micmute LEDs for HP 850 G8 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8 +- ALSA: hda/realtek: fix mute/micmute LEDs for HP 840 G8 +- ALSA: hda/realtek: Apply headset-mic quirks for Xiaomi Redmibook Air +- ALSA: hda: generic: Fix the micmute led init state +- ALSA: hda/realtek: apply pin quirk for XiaomiNotebook Pro +- ALSA: dice: fix null pointer dereference when node is disconnected +- spi: cadence: set cqspi to the driver_data field of struct device +- ASoC: ak5558: Add MODULE_DEVICE_TABLE +- ASoC: ak4458: Add MODULE_DEVICE_TABLE +- sdei_watchdog: Fix compile error when PPC_WATCHDOG is disable on PowerPC +- net: dsa: b53: Support setting learning on port +- ALSA: usb-audio: Don't avoid stopping the stream at disconnection +- Revert "nfsd4: a client's own opens needn't prevent delegations" +- Revert "nfsd4: remove check_conflicting_opens warning" +- fuse: fix live lock in fuse_iget() +- RDMA/srp: Fix support for unpopulated and unbalanced NUMA nodes +- bpf, selftests: Fix up some test_verifier cases for unprivileged +- bpf: Add sanity check for upper ptr_limit +- bpf: Simplify alu_limit masking for pointer arithmetic +- bpf: Fix off-by-one for area size in creating mask to left +- bpf: Prohibit alu ops for pointer types not defining ptr_limit +- crypto: x86/aes-ni-xts - use direct calls to and 4-way stride +- crypto: aesni - Use TEST %reg,%reg instead of CMP $0,%reg +- arm32: kaslr: Fix clock_gettime and gettimeofday performance degradation when configure CONFIG_RANDOMIZE_BASE +- arm32: kaslr: Print the real kaslr offset when kernel panic +- arm32: kaslr: Fix the bug of symbols relocation +- arm32: kaslr: Adapt dts files of multiple memory nodes +- arm32: kaslr: Fix the bug of hidden symbols when decompressing code is compiled +- arm32: kaslr: Fix the bug of module install failure +- arm32: kaslr: Add missing sections about relocatable +- arm64: Enable passing IMA log to next kernel on kexec +- powerpc: Delete unused function delete_fdt_mem_rsv() +- kexec: Use fdt_appendprop_addrrange() to add ima buffer to FDT +- powerpc: Move arch independent ima kexec functions to drivers/of/kexec.c +- powerpc: Enable passing IMA log to next kernel on kexec +- powerpc: Move ima buffer fields to struct kimage +- powerpc: Use common of_kexec_alloc_and_setup_fdt() +- arm64: Use common of_kexec_alloc_and_setup_fdt() +- of: Add a common kexec FDT setup function +- x86: Use ELF fields defined in 'struct kimage' +- powerpc: Use ELF fields defined in 'struct kimage' +- arm64: Use ELF fields defined in 'struct kimage' +- kexec: Move ELF fields to struct kimage +- ext4: fix timer use-after-free on failed mount +- ext4: drop ext4_handle_dirty_super() +- ext4: use sbi instead of EXT4_SB(sb) in ext4_update_super() +- ext4: save error info to sb through journal if available +- ext4: protect superblock modifications with a buffer lock +- ext4: drop sync argument of ext4_commit_super() +- ext4: combine ext4_handle_error() and save_error_info() +- ext4: defer saving error info from atomic context +- ext4: simplify ext4 error translation +- ext4: move functions in super.c +- ext4: make ext4_abort() use __ext4_error() +- ext4: standardize error message in ext4_protect_reserved_inode() +- ext4: remove redundant sb checksum recomputation +- RDMA/umem: Use ib_dma_max_seg_size instead of dma_get_max_seg_size +- KVM: arm64: Fix nVHE hyp panic host context restore +- xen/events: avoid handling the same event on two cpus at the same time +- xen/events: don't unmask an event channel when an eoi is pending +- mm/page_alloc.c: refactor initialization of struct page for holes in memory layout +- KVM: arm64: Ensure I-cache isolation between vcpus of a same VM +- mm/madvise: replace ptrace attach requirement for process_madvise +- mm/userfaultfd: fix memory corruption due to writeprotect +- KVM: arm64: Fix exclusive limit for IPA size +- KVM: arm64: Reject VM creation when the default IPA size is unsupported +- KVM: arm64: nvhe: Save the SPE context early +- KVM: arm64: Avoid corrupting vCPU context register in guest exit +- KVM: arm64: Fix range alignment when walking page tables +- KVM: kvmclock: Fix vCPUs > 64 can't be online/hotpluged +- KVM: x86: Ensure deadline timer has truly expired before posting its IRQ +- x86/entry: Fix entry/exit mismatch on failed fast 32-bit syscalls +- x86/sev-es: Use __copy_from_user_inatomic() +- x86/sev-es: Correctly track IRQ states in runtime #VC handler +- x86/entry: Move nmi entry/exit into common code +- x86/sev-es: Check regs->sp is trusted before adjusting #VC IST stack +- x86/sev-es: Introduce ip_within_syscall_gap() helper +- x86/unwind/orc: Disable KASAN checking in the ORC unwinder, part 2 +- binfmt_misc: fix possible deadlock in bm_register_write +- powerpc: Fix missing declaration of [en/dis]able_kernel_vsx() +- powerpc: Fix inverted SET_FULL_REGS bitop +- powerpc/64s: Fix instruction encoding for lis in ppc_function_entry() +- efi: stub: omit SetVirtualAddressMap() if marked unsupported in RT_PROP table +- sched/membarrier: fix missing local execution of ipi_sync_rq_state() +- linux/compiler-clang.h: define HAVE_BUILTIN_BSWAP* +- zram: fix return value on writeback_store +- include/linux/sched/mm.h: use rcu_dereference in in_vfork() +- stop_machine: mark helpers __always_inline +- seqlock,lockdep: Fix seqcount_latch_init() +- powerpc/64s/exception: Clean up a missed SRR specifier +- hrtimer: Update softirq_expires_next correctly after __hrtimer_get_next_event() +- perf/x86/intel: Set PERF_ATTACH_SCHED_CB for large PEBS and LBR +- perf/core: Flush PMU internal buffers for per-CPU events +- arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds +- configfs: fix a use-after-free in __configfs_open_file +- nvme-fc: fix racing controller reset and create association +- block: rsxx: fix error return code of rsxx_pci_probe() +- NFSv4.2: fix return value of _nfs4_get_security_label() +- NFS: Don't gratuitously clear the inode cache when lookup failed +- NFS: Don't revalidate the directory permissions on a lookup failure +- SUNRPC: Set memalloc_nofs_save() for sync tasks +- arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory +- cpufreq: qcom-hw: Fix return value check in qcom_cpufreq_hw_cpu_init() +- cpufreq: qcom-hw: fix dereferencing freed memory 'data' +- sh_eth: fix TRSCER mask for R7S72100 +- staging: comedi: pcl818: Fix endian problem for AI command data +- staging: comedi: pcl711: Fix endian problem for AI command data +- staging: comedi: me4000: Fix endian problem for AI command data +- staging: comedi: dmm32at: Fix endian problem for AI command data +- staging: comedi: das800: Fix endian problem for AI command data +- staging: comedi: das6402: Fix endian problem for AI command data +- staging: comedi: adv_pci1710: Fix endian problem for AI command data +- staging: comedi: addi_apci_1500: Fix endian problem for command sample +- staging: comedi: addi_apci_1032: Fix endian problem for COS sample +- staging: rtl8192e: Fix possible buffer overflow in _rtl92e_wx_set_scan +- staging: rtl8712: Fix possible buffer overflow in r8712_sitesurvey_cmd +- staging: ks7010: prevent buffer overflow in ks_wlan_set_scan() +- staging: rtl8188eu: fix potential memory corruption in rtw_check_beacon_data() +- staging: rtl8712: unterminated string leads to read overflow +- staging: rtl8188eu: prevent ->ssid overflow in rtw_wx_set_scan() +- staging: rtl8192u: fix ->ssid overflow in r8192_wx_set_scan() +- misc: fastrpc: restrict user apps from sending kernel RPC messages +- misc/pvpanic: Export module FDT device table +- Revert "serial: max310x: rework RX interrupt handling" +- usbip: fix vudc usbip_sockfd_store races leading to gpf +- usbip: fix vhci_hcd attach_store() races leading to gpf +- usbip: fix stub_dev usbip_sockfd_store() races leading to gpf +- usbip: fix vudc to check for stream socket +- usbip: fix vhci_hcd to check for stream socket +- usbip: fix stub_dev to check for stream socket +- USB: serial: cp210x: add some more GE USB IDs +- USB: serial: cp210x: add ID for Acuity Brands nLight Air Adapter +- USB: serial: ch341: add new Product ID +- USB: serial: io_edgeport: fix memory leak in edge_startup +- xhci: Fix repeated xhci wake after suspend due to uncleared internal wake state +- usb: xhci: Fix ASMedia ASM1042A and ASM3242 DMA addressing +- xhci: Improve detection of device initiated wake signal. +- usb: xhci: do not perform Soft Retry for some xHCI hosts +- usb: renesas_usbhs: Clear PIPECFG for re-enabling pipe with other EPNUM +- USB: usblp: fix a hang in poll() if disconnected +- usb: dwc3: qcom: Honor wakeup enabled/disabled state +- usb: dwc3: qcom: add ACPI device id for sc8180x +- usb: dwc3: qcom: add URS Host support for sdm845 ACPI boot +- usb: dwc3: qcom: Add missing DWC3 OF node refcount decrement +- usb: gadget: f_uac1: stop playback on function disable +- usb: gadget: f_uac2: always increase endpoint max_packet_size by one audio slot +- USB: gadget: u_ether: Fix a configfs return code +- USB: gadget: udc: s3c2410_udc: fix return value check in s3c2410_udc_probe() +- Goodix Fingerprint device is not a modem +- cifs: do not send close in compound create+close requests +- mmc: cqhci: Fix random crash when remove mmc module/card +- mmc: core: Fix partition switch time for eMMC +- mmc: mmci: Add MMC_CAP_NEED_RSP_BUSY for the stm32 variants +- xen/events: reset affinity of 2-level event when tearing it down +- software node: Fix node registration +- s390/dasd: fix hanging IO request during DASD driver unbind +- s390/dasd: fix hanging DASD driver unbind +- arm64: perf: Fix 64-bit event counter read truncation +- arm64: mte: Map hotplugged memory as Normal Tagged +- arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL +- block: Try to handle busy underlying device on discard +- block: Discard page cache of zone reset target range +- Revert 95ebabde382c ("capabilities: Don't allow writing ambiguous v3 file capabilities") +- ALSA: usb-audio: fix use after free in usb_audio_disconnect +- ALSA: usb-audio: fix NULL ptr dereference in usb_audio_probe +- ALSA: usb-audio: Disable USB autosuspend properly in setup_disable_autosuspend() +- ALSA: usb-audio: Apply the control quirk to Plantronics headsets +- ALSA: usb-audio: Fix "cannot get freq eq" errors on Dell AE515 sound bar +- ALSA: hda: Avoid spurious unsol event handling during S3/S4 +- ALSA: hda: Flush pending unsolicited events before suspend +- ALSA: hda: Drop the BATCH workaround for AMD controllers +- ALSA: hda/ca0132: Add Sound BlasterX AE-5 Plus support +- ALSA: hda/conexant: Add quirk for mute LED control on HP ZBook G5 +- ALSA: hda/hdmi: Cancel pending works before suspend +- ALSA: usb: Add Plantronics C320-M USB ctrl msg delay quirk +- ARM: 9029/1: Make iwmmxt.S support Clang's integrated assembler +- mmc: sdhci: Update firmware interface API +- clk: qcom: gpucc-msm8998: Add resets, cxc, fix flags on gpu_gx_gdsc +- scsi: target: core: Prevent underflow for service actions +- scsi: target: core: Add cmd length set before cmd complete +- scsi: libiscsi: Fix iscsi_prep_scsi_cmd_pdu() error handling +- sysctl.c: fix underflow value setting risk in vm_table +- drivers/base/memory: don't store phys_device in memory blocks +- s390/smp: __smp_rescan_cpus() - move cpumask away from stack +- kasan: fix memory corruption in kasan_bitops_tags test +- i40e: Fix memory leak in i40e_probe +- PCI: Fix pci_register_io_range() memory leak +- kbuild: clamp SUBLEVEL to 255 +- ext4: don't try to processed freed blocks until mballoc is initialized +- PCI/LINK: Remove bandwidth notification +- drivers/base: build kunit tests without structleak plugin +- PCI: mediatek: Add missing of_node_put() to fix reference leak +- PCI: xgene-msi: Fix race in installing chained irq handler +- Input: applespi - don't wait for responses to commands indefinitely. +- sparc64: Use arch_validate_flags() to validate ADI flag +- sparc32: Limit memblock allocation to low memory +- clk: qcom: gdsc: Implement NO_RET_PERIPH flag +- iommu/amd: Fix performance counter initialization +- powerpc/64: Fix stack trace not displaying final frame +- HID: logitech-dj: add support for the new lightspeed connection iteration +- powerpc/perf: Record counter overflow always if SAMPLE_IP is unset +- powerpc: improve handling of unrecoverable system reset +- spi: stm32: make spurious and overrun interrupts visible +- powerpc/pci: Add ppc_md.discover_phbs() +- Platform: OLPC: Fix probe error handling +- mmc: sdhci-iproc: Add ACPI bindings for the RPi +- mmc: mediatek: fix race condition between msdc_request_timeout and irq +- mmc: mxs-mmc: Fix a resource leak in an error handling path in 'mxs_mmc_probe()' +- iommu/vt-d: Clear PRQ overflow only when PRQ is empty +- udf: fix silent AED tagLocation corruption +- scsi: ufs: WB is only available on LUN #0 to #7 +- i2c: rcar: optimize cacheline to minimize HW race condition +- i2c: rcar: faster irq code to minimize HW race condition +- ath11k: fix AP mode for QCA6390 +- ath11k: start vdev if a bss peer is already created +- ath11k: peer delete synchronization with firmware +- net: enetc: initialize RFS/RSS memories for unused ports too +- enetc: Fix unused var build warning for CONFIG_OF +- net: dsa: tag_mtk: fix 802.1ad VLAN egress +- net: dsa: tag_ar9331: let DSA core deal with TX reallocation +- net: dsa: tag_gswip: let DSA core deal with TX reallocation +- net: dsa: tag_dsa: let DSA core deal with TX reallocation +- net: dsa: tag_brcm: let DSA core deal with TX reallocation +- net: dsa: tag_edsa: let DSA core deal with TX reallocation +- net: dsa: tag_lan9303: let DSA core deal with TX reallocation +- net: dsa: tag_mtk: let DSA core deal with TX reallocation +- net: dsa: tag_ocelot: let DSA core deal with TX reallocation +- net: dsa: tag_qca: let DSA core deal with TX reallocation +- net: dsa: trailer: don't allocate additional memory for padding/tagging +- net: dsa: tag_ksz: don't allocate additional memory for padding/tagging +- net: dsa: implement a central TX reallocation procedure +- s390/qeth: fix notification for pending buffers during teardown +- s390/qeth: improve completion of pending TX buffers +- s390/qeth: remove QETH_QDIO_BUF_HANDLED_DELAYED state +- s390/qeth: don't replace a fully completed async TX buffer +- net: hns3: fix error mask definition of flow director +- cifs: fix credit accounting for extra channel +- media: rc: compile rc-cec.c into rc-core +- media: v4l: vsp1: Fix bru null pointer access +- media: v4l: vsp1: Fix uif null pointer access +- media: rkisp1: params: fix wrong bits settings +- media: usbtv: Fix deadlock on suspend +- sh_eth: fix TRSCER mask for R7S9210 +- qxl: Fix uninitialised struct field head.surface_id +- s390/crypto: return -EFAULT if copy_to_user() fails +- s390/cio: return -EFAULT if copy_to_user() fails +- drm/i915: Wedge the GPU if command parser setup fails +- drm/shmem-helpers: vunmap: Don't put pages for dma-buf +- drm: meson_drv add shutdown function +- drm: Use USB controller's DMA mask when importing dmabufs +- drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff +- drm/shmem-helper: Check for purged buffers in fault handler +- drm/amdgpu/display: handle aux backlight in backlight_get_brightness +- drm/amdgpu/display: don't assert in set backlight function +- drm/amdgpu/display: simplify backlight setting +- drm/amd/pm: bug fix for pcie dpm +- drm/amd/display: Fix nested FPU context in dcn21_validate_bandwidth() +- drm/amdgpu/display: use GFP_ATOMIC in dcn21_validate_bandwidth_fp() +- drm/amd/display: Add a backlight module option +- drm/compat: Clear bounce structures +- gpio: fix gpio-device list corruption +- gpio: pca953x: Set IRQ type when handle Intel Galileo Gen 2 +- gpiolib: acpi: Allow to find GpioInt() resource by name and index +- gpiolib: acpi: Add ACPI_GPIO_QUIRK_ABSOLUTE_NUMBER quirk +- bnxt_en: reliably allocate IRQ table on reset to avoid crash +- s390/cio: return -EFAULT if copy_to_user() fails again +- net: hns3: fix bug when calculating the TCAM table info +- net: hns3: fix query vlan mask value error for flow director +- perf report: Fix -F for branch & mem modes +- perf traceevent: Ensure read cmdlines are null terminated. +- mlxsw: spectrum_ethtool: Add an external speed to PTYS register +- selftests: forwarding: Fix race condition in mirror installation +- net: phy: make mdio_bus_phy_suspend/resume as __maybe_unused +- ethtool: fix the check logic of at least one channel for RX/TX +- net: stmmac: fix wrongly set buffer2 valid when sph unsupport +- net: stmmac: fix watchdog timeout during suspend/resume stress test +- net: stmmac: stop each tx channel independently +- perf build: Fix ccache usage in $(CC) when generating arch errno table +- tools/resolve_btfids: Fix build error with older host toolchains +- ixgbe: fail to create xfrm offload of IPsec tunnel mode SA +- r8169: fix r8168fp_adjust_ocp_cmd function +- s390/qeth: fix memory leak after failed TX Buffer allocation +- net: qrtr: fix error return code of qrtr_sendmsg() +- net: enetc: allow hardware timestamping on TX queues with tc-etf enabled +- net: davicom: Fix regulator not turned off on driver removal +- net: davicom: Fix regulator not turned off on failed probe +- net: lapbether: Remove netif_start_queue / netif_stop_queue +- stmmac: intel: Fixes clock registration error seen for multiple interfaces +- net: stmmac: Fix VLAN filter delete timeout issue in Intel mGBE SGMII +- cipso,calipso: resolve a number of problems with the DOI refcounts +- netdevsim: init u64 stats for 32bit hardware +- net: usb: qmi_wwan: allow qmimux add/del with master up +- net: dsa: sja1105: fix SGMII PCS being forced to SPEED_UNKNOWN instead of SPEED_10 +- net: mscc: ocelot: properly reject destination IP keys in VCAP IS1 +- net: sched: avoid duplicates in classes dump +- nexthop: Do not flush blackhole nexthops when loopback goes down +- net: stmmac: fix incorrect DMA channel intr enable setting of EQoS v4.10 +- net/mlx4_en: update moderation when config reset +- net: ethernet: mtk-star-emac: fix wrong unmap in RX handling +- net: enetc: keep RX ring consumer index in sync with hardware +- net: enetc: remove bogus write to SIRXIDR from enetc_setup_rxbdr +- net: enetc: force the RGMII speed and duplex instead of operating in inband mode +- net: enetc: don't disable VLAN filtering in IFF_PROMISC mode +- net: enetc: fix incorrect TPID when receiving 802.1ad tagged packets +- net: enetc: take the MDIO lock only once per NAPI poll cycle +- net: enetc: don't overwrite the RSS indirection table when initializing +- sh_eth: fix TRSCER mask for SH771x +- net: dsa: tag_rtl4_a: fix egress tags +- docs: networking: drop special stable handling +- Revert "mm, slub: consider rest of partial list if acquire_slab() fails" +- cifs: return proper error code in statfs(2) +- mount: fix mounting of detached mounts onto targets that reside on shared mounts +- powerpc/603: Fix protection of user pages mapped with PROT_NONE +- mt76: dma: do not report truncated frames to mac80211 +- ibmvnic: always store valid MAC address +- ibmvnic: Fix possibly uninitialized old_num_tx_queues variable warning. +- libbpf: Clear map_info before each bpf_obj_get_info_by_fd +- samples, bpf: Add missing munmap in xdpsock +- selftests/bpf: Mask bpf_csum_diff() return value to 16 bits in test_verifier +- selftests/bpf: No need to drop the packet when there is no geneve opt +- selftests/bpf: Use the last page in test_snprintf_btf on s390 +- net: phy: fix save wrong speed and duplex problem if autoneg is on +- net: always use icmp{,v6}_ndo_send from ndo_start_xmit +- netfilter: x_tables: gpf inside xt_find_revision() +- netfilter: nf_nat: undo erroneous tcp edemux lookup +- tcp: add sanity tests to TCP_QUEUE_SEQ +- tcp: Fix sign comparison bug in getsockopt(TCP_ZEROCOPY_RECEIVE) +- can: tcan4x5x: tcan4x5x_init(): fix initialization - clear MRAM before entering Normal Mode +- can: flexcan: invoke flexcan_chip_freeze() to enter freeze mode +- can: flexcan: enable RX FIFO after FRZ/HALT valid +- can: flexcan: assert FRZ bit in flexcan_chip_freeze() +- can: skb: can_skb_set_owner(): fix ref counting if socket was closed before setting skb ownership +- net: l2tp: reduce log level of messages in receive path, add counter instead +- net: avoid infinite loop in mpls_gso_segment when mpls_hlen == 0 +- net: check if protocol extracted by virtio_net_hdr_set_proto is correct +- net: Fix gro aggregation for udp encaps with zero csum +- ath9k: fix transmitting to stations in dynamic SMPS mode +- crypto: mips/poly1305 - enable for all MIPS processors +- ethernet: alx: fix order of calls on resume +- powerpc/pseries: Don't enforce MSI affinity with kdump +- powerpc/perf: Fix handling of privilege level checks in perf interrupt context +- uapi: nfnetlink_cthelper.h: fix userspace compilation error +- arm64/mpam: fix a memleak in add_schema +- cacheinfo: workaround cacheinfo's info_list uninitialized error +- openeuler_defconfig: Enable MPAM by default +- arm64/mpam: Sort domains when cpu online +- arm64/mpam: resctrl: Refresh cpu mask for handling cpuhp +- arm64/mpam: resctrl: Allow setting register MPAMCFG_MBW_MIN to 0 +- arm64/mpam: resctrl: Use resctrl_group_init_alloc() for default group +- arm64/mpam: resctrl: Add proper error handling to resctrl_mount() +- arm64/mpam: Use fs_context to parse mount options +- arm64/mpam: Supplement additional useful ctrl features for mount options +- arm64/mpam: Set per-cpu's closid to none zero for cdp +- arm64/mpam: Simplify mpamid cdp mapping process +- arm64/mpam: Filter schema control type with ctrl features +- arm64/mpam: resctrl: Add rmid file in resctrl sysfs +- arm64/mpam: Split header files into suitable location +- arm64/mpam: resctrl: Export resource's properties to info directory +- arm64/mpam: Add resctrl_ctrl_feature structure to manage ctrl features +- arm64/mpam: Add wait queue for monitor alloc and free +- arm64/mpam: Remap reqpartid,pmg to rmid and intpartid to closid +- arm64/mpam: Separate internal and downstream priority event +- arm64/mpam: Enabling registering and logging error interrupts +- arm64/mpam: Fix MPAM_ESR intPARTID_range error +- arm64/mpam: Integrate monitor data for Memory Bandwidth if cdp enabled +- arm64/mpam: Add hook-events id for ctrl features +- arm64/mpam: Re-plan intpartid narrowing process +- arm64/mpam: Restore extend ctrls' max width for checking schemata input +- arm64/mpam: Squash default priority from mpam device to class +- arm64/mpam: Store intpri and dspri for mpam device reset +- arm64/mpam: resctrl: Support priority and hardlimit(Memory bandwidth) configuration +- arm64/mpam: resctrl: Support cpus' monitoring for mon group +- arm64/mpam: resctrl: collect child mon group's monitor data +- arm64/mpam: Using software-defined id for rdtgroup instead of 32-bit integer +- arm64/mpam: Implement intpartid narrowing process +- arm64/mpam: resctrl: Remove unnecessary CONFIG_ARM64 +- arm64/mpam: resctrl: Remove ctrlmon sysfile +- arm64/mpam: Clean up header files and rearrange declarations +- arm64/mpam: resctrl: Support cdp on monitoring data +- arm64/mpam: Support cdp on allocating monitors +- arm64/mpam: resctrl: Move ctrlmon sysfile write/read function to mpam_ctrlmon.c +- arm64/mpam: resctrl: Update closid alloc and free process with bitmap +- arm64/mpam: resctrl: Update resources reset process +- arm64/mpam: Support cdp in mpam_sched_in() +- arm64/mpam: resctrl: Write and read schemata by schema_list +- arm64/mpam: resctrl: Use resctrl_group_init_alloc() to init schema list +- arm64/mpam: resctrl: Add helpers for init and destroy schemata list +- arm64/mpam: resctrl: Supplement cdpl2,cdpl3 for mount options +- arm64/mpam: resctrl: Append schemata CDP definitions +- arm64/mpam: resctrl: Rebuild configuration and monitoring pipeline +- arm64/mpam: Probe partid,pmg and feature capabilities' ranges from classes +- arm64/mpam: Add helper for getting MSCs' configuration +- arm64/mpam: Migrate old MSCs' discovery process to new branch +- drivers: base: cacheinfo: Add helper to search cacheinfo by of_node +- arm64/mpam: Implement helpers for handling configuration and monitoring +- arm64/mpam: resctrl: Handle cpuhp and resctrl_dom allocation +- arm64/mpam: resctrl: Re-synchronise resctrl's view of online CPUs +- arm64/mpam: Init resctrl resources' info from resctrl_res selected +- arm64/mpam: Pick MPAM resources and events for resctrl_res exported +- arm64/mpam: Allocate mpam component configuration arrays +- arm64/mpam: Summarize feature support during mpam_enable() +- arm64/mpam: Reset controls when CPUs come online +- arm64/mpam: Add helper for getting mpam sysprops +- arm64/mpam: Probe the features resctrl supports +- arm64/mpam: Supplement MPAM MSC register layout definitions +- arm64/mpam: Probe supported partid/pmg ranges from devices +- arm64/mpam: Add mpam driver discovery phase and kbuild boiler plate +- arm64/mpam: Preparing for MPAM refactoring +- arm64/mpam: Supplement err tips in info/last_cmd_status +- arm64/mpam: Fix unreset resources when mkdir ctrl group or umount resctrl +- MPAM / ACPI: Refactoring MPAM init process and set MPAM ACPI as entrance +- ACPI 6.x: Add definitions for MPAM table +- ACPI / PPTT: cacheinfo: Label caches based on fw_token +- ACPI / PPTT: Filthy hack to find _a_ backwards reference in the PPTT [ROTTEN] +- ACPI / PPTT: Add helper to validate cache nodes from an offset [dead] +- ACPI / processor: Add helper to convert acpi_id to a phys_cpuid +- arm64/mpam: cleanup the source file's licence +- mpam : fix monitor's disorder from +- mpam : fix missing fill MSMON_CFG_MON_SEL register +- arm64/mpam: use snprintf instead of sprintf +- arm64/mpam: cleanup debuging code +- arm64/mpam: fix a missing unlock in error branch +- arm64/mpam: remove unnecessary debug message and dead code +- arm64/mpam: correct num of partid/pmg +- arm64/mpam: get num_partids from system regs instead of hard code +- arm64/mpam: update group flags only when enable sucsses +- arm64/mpam: remove unsupported resource +- arm64/mpam: only add new domain node to domain list +- arm64/mpam: unmap all previous address when failed +- arm64/mpam: destroy domain list when failed to init +- arm64/mpam: fix hard code address map for 1620 2P +- mpam: fix potential resource leak in mpam_domains_init +- mpam: Code security rectification +- cmetrics: remove dead code in mpam_ctrlmon.c and resctrlfs.c +- arm64/mpam: fix compile warning +- arm64/mpam: add cmdline option: mpam +- resctrlfs: fix up RESCTRL dependency +- arm64/mpam: hard code mpam resource for Hi1620 2P +- arm64/mpam: support L3TALL, HHALL +- arm64/mpam: debug: remove debug pr_info at schemata +- arm64/mpam: use 5% as min memory bandwidth +- arm64/mpam: don't allowd create mon_groups when out of mon/pmg +- arm64/mpam: fix HHA MAX SET/GET operation +- arm64/mpam: monitor pmg as a property of partid +- arm64/mpam: enable alloc/mon capable when MPAM enabled +- arm64/mpam: add L3TALL & HHALL +- arm64/mpam: alloc/mon capable/enabled debug +- arm64/mpam: get alloc/mon capable/enabled from h/w +- arm64/mpam: don't reserve mon 0, we can use it as nomarl +- arm64/mpam: get num_mon & num_pmg from hardware +- arm64/mpam: add num_monitors in info dir +- arm64/mpam: mon: add WARN_ON for debug free_pmg +- arm64/mpam: free mon when remove momgroups +- arm64/mpam: operation not permitted when remove a ctrl group with a mondata +- arm64/mpam: support monitor +- arm64/mpam: disable MPAM_SYS_REG_DEBUG +- arm64/mpam: print mpam caps info when booting +- arm64/mpam: add mpam extension runtime detection +- arm64/mpam: support num_partids/num_pmgs +- arm64/mpam: support monitor +- arm64/mpam: support monitor read +- arm64/mpam: pass rdtgroup when create mon_data dir +- arm64/mpam: add group partid/pmg to tasks show +- arm64/mpam: debug: print debug info when create mon_data +- arm64/mpam: debug: print more useful info for mon_data +- resctrlfs: mpam: Build basic framework for mpam +- resctrlfs: init support resctrlfs +- nvme-pci: add quirks for Lexar 256GB SSD +- nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST. +- KVM: SVM: Clear the CR4 register on reset +- scsi: ufs: Fix a duplicate dev quirk number +- ASoC: Intel: sof_sdw: add quirk for HP Spectre x360 convertible +- ASoC: Intel: sof_sdw: reorganize quirks by generation +- PCI: cadence: Retrain Link to work around Gen2 training defect +- ALSA: usb-audio: add mixer quirks for Pioneer DJM-900NXS2 +- ALSA: usb-audio: Add DJM750 to Pioneer mixer quirk +- HID: i2c-hid: Add I2C_HID_QUIRK_NO_IRQ_AFTER_RESET for ITE8568 EC on Voyo Winpad A15 +- mmc: sdhci-of-dwcmshc: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN +- drm/msm/a5xx: Remove overwriting A5XX_PC_DBG_ECO_CNTL register +- scsi: ufs: ufs-exynos: Use UFSHCD_QUIRK_ALIGN_SG_WITH_PAGE_SIZE +- scsi: ufs: ufs-exynos: Apply vendor-specific values for three timeouts +- scsi: ufs: Introduce a quirk to allow only page-aligned sg entries +- misc: eeprom_93xx46: Add quirk to support Microchip 93LC46B eeprom +- scsi: ufs: Add a quirk to permit overriding UniPro defaults +- scsi: ufs-mediatek: Enable UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL +- ASoC: Intel: sof_sdw: add missing TGL_HDMI quirk for Dell SKU 0A32 +- KVM: x86: Supplement __cr4_reserved_bits() with X86_FEATURE_PCID check +- PCI: Add function 1 DMA alias quirk for Marvell 9215 SATA controller +- usb: cdns3: fix NULL pointer dereference on no platform data +- usb: cdns3: add quirk for enable runtime pm by default +- usb: cdns3: host: add xhci_plat_priv quirk XHCI_SKIP_PHY_INIT +- usb: cdns3: host: add .suspend_quirk for xhci-plat.c +- ASoC: Intel: bytcr_rt5640: Add quirk for ARCHOS Cesium 140 +- ACPI: video: Add DMI quirk for GIGABYTE GB-BXBT-2807 +- media: cx23885: add more quirks for reset DMA on some AMD IOMMU +- HID: mf: add support for 0079:1846 Mayflash/Dragonrise USB Gamecube Adapter +- platform/x86: acer-wmi: Add ACER_CAP_KBD_DOCK quirk for the Aspire Switch 10E SW3-016 +- platform/x86: acer-wmi: Add support for SW_TABLET_MODE on Switch devices +- platform/x86: acer-wmi: Add ACER_CAP_SET_FUNCTION_MODE capability flag +- platform/x86: acer-wmi: Add new force_caps module parameter +- platform/x86: acer-wmi: Cleanup accelerometer device handling +- platform/x86: acer-wmi: Cleanup ACER_CAP_FOO defines +- bus: ti-sysc: Implement GPMC debug quirk to drop platform data +- ASoC: Intel: sof_sdw: add quirk for new TigerLake-SDCA device +- mwifiex: pcie: skip cancel_work_sync() on reset failure path +- Bluetooth: btqca: Add valid le states quirk +- iommu/amd: Fix sleeping in atomic in increase_address_space() +- btrfs: don't flush from btrfs_delayed_inode_reserve_metadata +- btrfs: export and rename qgroup_reserve_meta +- arm64: Make CPU_BIG_ENDIAN depend on ld.bfd or ld.lld 13.0.0+ +- parisc: Enable -mlong-calls gcc option with CONFIG_COMPILE_TEST +- nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state +- ASoC: SOF: Intel: broadwell: fix mutual exclusion with catpt driver +- ACPICA: Fix race in generic_serial_bus (I2C) and GPIO op_region parameter handling +- r8169: fix resuming from suspend on RTL8105e if machine runs on battery +- tomoyo: recognize kernel threads correctly +- Revert "arm64: dts: amlogic: add missing ethernet reset ID" +- iommu/vt-d: Fix status code for Allocate/Free PASID command +- rsxx: Return -EFAULT if copy_to_user() fails +- ftrace: Have recordmcount use w8 to read relp->r_info in arm64_is_fake_mcount +- ALSA: hda: intel-nhlt: verify config type +- IB/mlx5: Add missing error code +- RDMA/rxe: Fix missing kconfig dependency on CRYPTO +- RDMA/cm: Fix IRQ restore in ib_send_cm_sidr_rep +- ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits +- drm/amdgpu: fix parameter error of RREG32_PCIE() in amdgpu_regs_pcie +- drm/amdgpu:disable VCN for Navi12 SKU +- dm verity: fix FEC for RS roots unaligned to block size +- dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size +- io_uring: ignore double poll add on the same waitqueue head +- ring-buffer: Force before_stamp and write_stamp to be different on discard +- PM: runtime: Update device status before letting suppliers suspend +- btrfs: fix warning when creating a directory with smack enabled +- btrfs: unlock extents in btrfs_zero_range in case of quota reservation errors +- btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata +- btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl +- btrfs: fix race between extent freeing/allocation when using bitmaps +- btrfs: fix stale data exposure after cloning a hole with NO_HOLES enabled +- btrfs: fix race between swap file activation and snapshot creation +- btrfs: fix race between writes to swap files and scrub +- btrfs: fix raid6 qstripe kmap +- btrfs: avoid double put of block group when emptying cluster +- tpm, tpm_tis: Decorate tpm_get_timeouts() with request_locality() +- tpm, tpm_tis: Decorate tpm_tis_gen_interrupt() with request_locality() +- ALSA: usb-audio: Drop bogus dB range in too low level +- ALSA: usb-audio: use Corsair Virtuoso mapping for Corsair Virtuoso SE +- ALSA: hda/realtek: Enable headset mic of Acer SWIFT with ALC256 +- powerpc: Do not compile any dts if CONFIG_OF_ALL_DTBS=y +- ext4: find old entry again if failed to rename whiteout +- net: sfp: add workaround for Realtek RTL8672 and RTL9601C chips +- net: sfp: VSOL V2801F / CarlitoxxPro CPGOS03-0490 v2.0 workaround +- ALSA: hda/realtek: Apply dual codec quirks for MSI Godlike X570 board +- ALSA: hda/realtek: Add quirk for Intel NUC 10 +- ALSA: hda/realtek: Add quirk for Clevo NH55RZQ +- media: v4l: ioctl: Fix memory leak in video_usercopy +- tty: teach the n_tty ICANON case about the new "cookie continuations" too +- tty: teach n_tty line discipline about the new "cookie continuations" +- tty: clean up legacy leftovers from n_tty line discipline +- tty: fix up hung_up_tty_read() conversion +- tty: fix up iterate_tty_read() EOVERFLOW handling +- powerpc/sstep: Fix incorrect return from analyze_instr() +- powerpc/sstep: Check instruction validity against ISA version before emulation +- swap: fix swapfile read/write offset +- remoteproc/mediatek: Fix kernel test robot warning +- zsmalloc: account the number of compacted pages correctly +- xen: fix p2m size in dom0 for disabled memory hotplug case +- xen-netback: respect gnttab_map_refs()'s return value +- Xen/gnttab: handle p2m update errors on a per-slot basis +- scsi: iscsi: Verify lengths on passthrough PDUs +- scsi: iscsi: Ensure sysfs attributes are limited to PAGE_SIZE +- scsi: iscsi: Restrict sessions and handles to admin capabilities +- ASoC: Intel: bytcr_rt5640: Add quirk for the Acer One S1002 tablet +- ASoC: Intel: bytcr_rt5651: Add quirk for the Jumper EZpad 7 tablet +- ASoC: Intel: bytcr_rt5640: Add quirk for the Voyo Winpad A15 tablet +- ASoC: Intel: bytcr_rt5640: Add quirk for the Estar Beauty HD MID 7316R tablet +- sched/features: Fix hrtick reprogramming +- parisc: Bump 64-bit IRQ stack size to 64 KB +- ASoC: Intel: sof_sdw: detect DMIC number based on mach params +- ASoC: Intel: sof-sdw: indent and add quirks consistently +- perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[] +- btrfs: fix error handling in commit_fs_roots +- ASoC: Intel: Add DMI quirk table to soc_intel_is_byt_cr() +- nvme-tcp: add clean action for failed reconnection +- nvme-rdma: add clean action for failed reconnection +- nvme-core: add cancel tagset helpers +- f2fs: fix to set/clear I_LINKABLE under i_lock +- f2fs: handle unallocated section and zone on pinned/atgc +- media: uvcvideo: Allow entities with no pads +- drm/amd/amdgpu: add error handling to amdgpu_virt_read_pf2vf_data +- drm/amd/display: Guard against NULL pointer deref when get_i2c_info fails +- ASoC: Intel: bytcr_rt5640: Add new BYT_RT5640_NO_SPEAKERS quirk-flag +- PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse +- drm/amdgpu: Add check to prevent IH overflow +- fs: make unlazy_walk() error handling consistent +- crypto: tcrypt - avoid signed overflow in byte count +- drm/hisilicon: Fix use-after-free +- brcmfmac: Add DMI nvram filename quirk for Voyo winpad A15 tablet +- brcmfmac: Add DMI nvram filename quirk for Predia Basic tablet +- staging: bcm2835-audio: Replace unsafe strcpy() with strscpy() +- staging: most: sound: add sanity check for function argument +- Bluetooth: Fix null pointer dereference in amp_read_loc_assoc_final_data +- Bluetooth: Add new HCI_QUIRK_NO_SUSPEND_NOTIFIER quirk +- net: sfp: add mode quirk for GPON module Ubiquiti U-Fiber Instant +- ath10k: fix wmi mgmt tx queue full due to race condition +- pktgen: fix misuse of BUG_ON() in pktgen_thread_worker() +- mt76: mt7615: reset token when mac_reset happens +- Bluetooth: btusb: fix memory leak on suspend and resume +- Bluetooth: hci_h5: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for btrtl +- wlcore: Fix command execute failure 19 for wl12xx +- vt/consolemap: do font sum unsigned +- x86/reboot: Add Zotac ZBOX CI327 nano PCI reboot quirk +- staging: fwserial: Fix error handling in fwserial_create +- EDAC/amd64: Do not load on family 0x15, model 0x13 +- rsi: Move card interrupt handling to RX thread +- rsi: Fix TX EAPOL packet handling against iwlwifi AP +- ASoC: qcom: Remove useless debug print +- dt-bindings: net: btusb: DT fix s/interrupt-name/interrupt-names/ +- dt-bindings: ethernet-controller: fix fixed-link specification +- net: fix dev_ifsioc_locked() race condition +- net: psample: Fix netlink skb length with tunnel info +- net: hsr: add support for EntryForgetTime +- net: ag71xx: remove unnecessary MTU reservation +- net: dsa: tag_rtl4_a: Support also egress tags +- net/sched: cls_flower: Reject invalid ct_state flags rules +- net: bridge: use switchdev for port flags set through sysfs too +- mptcp: do not wakeup listener for MPJ subflows +- tcp: fix tcp_rmem documentation +- RDMA/rtrs-srv: Do not signal REG_MR +- RDMA/rtrs-clt: Use bitmask to check sess->flags +- RDMA/rtrs: Do not signal for heatbeat +- mm/hugetlb.c: fix unnecessary address expansion of pmd sharing +- nbd: handle device refs for DESTROY_ON_DISCONNECT properly +- riscv: Get rid of MAX_EARLY_MAPPING_SIZE +- net: fix up truesize of cloned skb in skb_prepare_for_shift() +- tomoyo: ignore data race while checking quota +- smackfs: restrict bytes count in smackfs write functions +- net/af_iucv: remove WARN_ONCE on malformed RX packets +- xfs: Fix assert failure in xfs_setattr_size() +- media: v4l2-ctrls.c: fix shift-out-of-bounds in std_validate +- erofs: fix shift-out-of-bounds of blkszbits +- media: mceusb: sanity check for prescaler value +- udlfb: Fix memory leak in dlfb_usb_probe +- sched/core: Allow try_invoke_on_locked_down_task() with irqs disabled +- JFS: more checks for invalid superblock +- x86/build: Treat R_386_PLT32 relocation as R_386_PC32 +- drm/virtio: use kvmalloc for large allocations +- Input: elan_i2c - add new trackpoint report type 0x5F +- Input: elantech - fix protocol errors for some trackpoints in SMBus mode +- net: usb: qmi_wwan: support ZTE P685M modem +- ARM: dts: aspeed: Add LCLK to lpc-snoop +- net_sched: fix RTNL deadlock again caused by request_module() +- net: qrtr: Fix memory leak in qrtr_tun_open +- net: sched: fix police ext initialization +- wireguard: queueing: get rid of per-peer ring buffers +- wireguard: selftests: test multiple parallel streams +- net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending +- ipv6: silence compilation warning for non-IPV6 builds +- kgdb: fix to kill breakpoints on initmem after boot +- drm/i915: Reject 446-480MHz HDMI clock on GLK +- dm era: only resize metadata in preresume +- dm era: Reinitialize bitset cache before digesting a new writeset +- dm era: Use correct value size in equality function of writeset tree +- dm era: Fix bitset memory leaks +- dm era: Verify the data block size hasn't changed +- dm era: Update in-core bitset after committing the metadata +- dm era: Recover committed writeset after crash +- dm writecache: fix writing beyond end of underlying device when shrinking +- dm writecache: return the exact table values that were set +- dm writecache: fix performance degradation in ssd mode +- dm table: fix zoned iterate_devices based device capability checks +- dm table: fix DAX iterate_devices based device capability checks +- dm table: fix iterate_devices based device capability checks +- dm: fix deadlock when swapping to encrypted device +- gfs2: Recursive gfs2_quota_hold in gfs2_iomap_end +- gfs2: Lock imbalance on error path in gfs2_recover_one +- gfs2: Don't skip dlm unlock if glock has an lvb +- gfs2: fix glock confusion in function signal_our_withdraw +- spi: spi-synquacer: fix set_cs handling +- spi: fsl: invert spisel_boot signal on MPC8309 +- sparc32: fix a user-triggerable oops in clear_user() +- f2fs: flush data when enabling checkpoint back +- f2fs: enforce the immutable flag on open files +- f2fs: fix out-of-repair __setattr_copy() +- irqchip/loongson-pch-msi: Use bitmap_zalloc() to allocate bitmap +- um: defer killing userspace on page table update failures +- um: mm: check more comprehensively for stub changes +- virtio/s390: implement virtio-ccw revision 2 correctly +- s390/vtime: fix inline assembly clobber list +- proc: don't allow async path resolution of /proc/thread-self components +- cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if available +- cpufreq: intel_pstate: Change intel_pstate_get_hwp_max() argument +- cpufreq: qcom-hw: drop devm_xxx() calls from init/exit hooks +- thermal: cpufreq_cooling: freq_qos_update_request() returns < 0 on error +- kcmp: Support selection of SYS_kcmp without CHECKPOINT_RESTORE +- zonefs: Fix file size of zones in full condition +- exfat: fix shift-out-of-bounds in exfat_fill_super() +- printk: fix deadlock when kernel panic +- mfd: gateworks-gsc: Fix interrupt type +- gpio: pcf857x: Fix missing first interrupt +- mei: me: add adler lake point LP DID +- mei: me: add adler lake point S DID +- mei: me: emmitsburg workstation DID +- mei: fix transfer over dma with extended header +- spmi: spmi-pmic-arb: Fix hw_irq overflow +- powerpc/32s: Add missing call to kuep_lock on syscall entry +- powerpc/kexec_file: fix FDT size estimation for kdump kernel +- powerpc/32: Preserve cr1 in exception prolog stack check to fix build error +- mmc: sdhci-pci-o2micro: Bug fix for SDR104 HW tuning failure +- mmc: sdhci-esdhc-imx: fix kernel panic when remove module +- module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols +- nvmem: qcom-spmi-sdam: Fix uninitialized pdev pointer +- KVM: nSVM: fix running nested guests when npt=0 +- mm, compaction: make fast_isolate_freepages() stay within zone +- mm/vmscan: restore zone_reclaim_mode ABI +- hugetlb: fix copy_huge_page_from_user contig page struct assumption +- hugetlb: fix update_and_free_page contig page struct assumption +- mm: memcontrol: fix get_active_memcg return value +- mm: memcontrol: fix swap undercounting in cgroup2 +- x86: fix seq_file iteration for pat/memtype.c +- seq_file: document how per-entry resources are managed. +- fs/affs: release old buffer head on error path +- mtd: spi-nor: hisi-sfc: Put child node np on error path +- mtd: spi-nor: core: Add erase size check for erase command initialization +- mtd: spi-nor: core: Fix erase type discovery for overlaid region +- mtd: spi-nor: sfdp: Fix wrong erase type bitmask for overlaid region +- mtd: spi-nor: sfdp: Fix last erase region marking +- coresight: etm4x: Handle accesses to TRCSTALLCTLR +- watchdog: mei_wdt: request stop on unregister +- watchdog: qcom: Remove incorrect usage of QCOM_WDT_ENABLE_IRQ +- riscv: Disable KSAN_SANITIZE for vDSO +- arm64: spectre: Prevent lockdep splat on v4 mitigation enable path +- arm64 module: set plt* section addresses to 0x0 +- arm64: uprobe: Return EOPNOTSUPP for AARCH32 instruction probing +- arm64: kexec_file: fix memory leakage in create_dtb() when fdt_open_into() fails +- iommu/arm-smmu-qcom: Fix mask extraction for bootloader programmed SMRs +- arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55 +- kprobes: Fix to delay the kprobes jump optimization +- rcu/nocb: Perform deferred wake up before last idle's need_resched() check +- rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers +- powerpc/prom: Fix "ibm,arch-vec-5-platform-support" scan +- x86/entry: Fix instrumentation annotation +- x86/fault: Fix AMD erratum #91 errata fixup for user code +- x86/reboot: Force all cpus to exit VMX root if VMX is supported +- x86/virt: Eat faults on VMXOFF in reboot flows +- media: smipcie: fix interrupt handling and IR timeout +- media: marvell-ccic: power up the device on mclk enable +- media: ipu3-cio2: Fix mbus_code processing in cio2_subdev_set_fmt() +- media: ir_toy: add another IR Droid device +- media: i2c: max9286: fix access to unallocated memory +- floppy: reintroduce O_NDELAY fix +- staging: rtl8188eu: Add Edimax EW-7811UN V2 to device table +- staging: gdm724x: Fix DMA from stack +- staging/mt7621-dma: mtk-hsdma.c->hsdma-mt7621.c +- arm64: dts: agilex: fix phy interface bit shift for gmac1 and gmac2 +- dts64: mt7622: fix slow sd card access +- pstore: Fix typo in compression option name +- drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue +- misc: rtsx: init of rts522a add OCP power off when no card is present +- arm64: ptrace: Fix seccomp of traced syscall -1 (NO_SYSCALL) +- seccomp: Add missing return in non-void function +- soc: samsung: exynos-asv: handle reading revision register error +- soc: samsung: exynos-asv: don't defer early on not-supported SoCs +- crypto: sun4i-ss - initialize need_fallback +- crypto: sun4i-ss - handle BigEndian for cipher +- crypto: sun4i-ss - IV register does not work on A10 and A13 +- crypto: sun4i-ss - checking sg length is not sufficient +- crypto: michael_mic - fix broken misalignment handling +- crypto: aesni - prevent misaligned buffers on the stack +- crypto: arm64/sha - add missing module aliases +- drm/i915/gt: Correct surface base address for renderclear +- drm/i915/gt: Flush before changing register state +- btrfs: fix extent buffer leak on failure to copy root +- btrfs: account for new extents being deleted in total_bytes_pinned +- btrfs: handle space_info::total_bytes_pinned inside the delayed ref itself +- btrfs: splice remaining dirty_bg's onto the transaction dirty bg list +- btrfs: fix reloc root leak with 0 ref reloc roots on recovery +- btrfs: abort the transaction if we fail to inc ref in btrfs_copy_root +- btrfs: add asserts for deleting backref cache nodes +- btrfs: do not warn if we can't find the reloc root when looking up backref +- btrfs: do not cleanup upper nodes in btrfs_backref_cleanup_node +- KEYS: trusted: Reserve TPM for seal and unseal operations +- KEYS: trusted: Fix migratable=1 failing +- KEYS: trusted: Fix incorrect handling of tpm_get_random() +- tpm_tis: Clean up locality release +- tpm_tis: Fix check_locality for correct locality acquisition +- erofs: initialized fields can only be observed after bit is set +- selinux: fix inconsistency between inode_getxattr and inode_listsecurity +- ASoC: siu: Fix build error by a wrong const prefix +- drm/rockchip: Require the YTR modifier for AFBC +- drm/panel: kd35t133: allow using non-continuous dsi clock +- drm/sched: Cancel and flush all outstanding jobs before finish. +- drm/modes: Switch to 64bit maths to avoid integer overflow +- drm/nouveau/kms: handle mDP connectors +- drm/amdgpu: Set reference clock to 100Mhz on Renoir (v2) +- drm/amdkfd: Fix recursive lock warnings +- drm/amd/display: Add vupdate_no_lock interrupts for DCN2.1 +- drm/amd/display: Remove Assert from dcn10_get_dig_frontend +- drm/amd/display: Add FPU wrappers to dcn21_validate_bandwidth() +- Revert "drm/amd/display: Update NV1x SR latency values" +- bcache: Move journal work to new flush wq +- bcache: Give btree_io_wq correct semantics again +- Revert "bcache: Kill btree_io_wq" +- Revert "MIPS: Octeon: Remove special handling of CONFIG_MIPS_ELF_APPENDED_DTB=y" +- MIPS: VDSO: Use CLANG_FLAGS instead of filtering out '--target=' +- MIPS: Support binutils configured with --enable-mips-fix-loongson3-llsc=yes +- MIPS: Ingenic: Disable HPTLB for D0 XBurst CPUs too +- ALSA: hda/realtek: Quirk for HP Spectre x360 14 amp setup +- ALSA: hda/realtek: modify EAPD in the ALC886 +- ALSA: hda/hdmi: Drop bogus check at closing a stream +- ALSA: hda: Add another CometLake-H PCI ID +- ALSA: fireface: fix to parse sync status register of latter protocol +- phy: lantiq: rcu-usb2: wait after clock enable +- USB: serial: mos7720: fix error code in mos7720_write() +- USB: serial: mos7840: fix error code in mos7840_write() +- USB: serial: pl2303: fix line-speed handling on newer chips +- USB: serial: ftdi_sio: fix FTX sub-integer prescaler +- usb: dwc3: gadget: Fix dep->interval for fullspeed interrupt +- usb: dwc3: gadget: Fix setting of DEPCFG.bInterval_m1 +- usb: musb: Fix runtime PM race in musb_queue_resume_work +- USB: serial: option: update interface mapping for ZTE P685M +- media: mceusb: Fix potential out-of-bounds shift +- Input: i8042 - add ASUS Zenbook Flip to noselftest list +- Input: joydev - prevent potential read overflow in ioctl +- Input: xpad - add support for PowerA Enhanced Wired Controller for Xbox Series X|S +- Input: raydium_ts_i2c - do not send zero length +- HID: wacom: Ignore attempts to overwrite the touch_max value from HID +- HID: logitech-dj: add support for keyboard events in eQUAD step 4 Gaming +- cpufreq: ACPI: Set cpuinfo.max_freq directly if max boost is known +- ACPI: configfs: add missing check after configfs_register_default_group() +- ACPI: property: Fix fwnode string properties matching +- soundwire: intel: fix possible crash when no device is detected +- blk-settings: align max_sectors on "logical_block_size" boundary +- scsi: sd: Fix Opal support +- ide/falconide: Fix module unload +- block: reopen the device in blkdev_reread_part +- scsi: sd: sd_zbc: Don't pass GFP_NOIO to kvcalloc +- scsi: bnx2fc: Fix Kconfig warning & CNIC build errors +- csky: Fix a size determination in gpr_get() +- proc: use kvzalloc for our kernel buffer +- mm/rmap: fix potential pte_unmap on an not mapped pte +- mm: fix memory_failure() handling of dax-namespace metadata +- mm,thp,shmem: make khugepaged obey tmpfs mount flags +- i2c: exynos5: Preserve high speed master code +- i2c: brcmstb: Fix brcmstd_send_i2c_cmd condition +- arm64: Add missing ISB after invalidating TLB in __primary_switch +- KVM: x86/mmu: Expand collapsible SPTE zap for TDP MMU to ZONE_DEVICE and HugeTLB pages +- KVM: SVM: Intercept INVPCID when it's disabled to inject #UD +- NFSv4: Fixes for nfs4_bitmask_adjust() +- r8169: fix jumbo packet handling on RTL8168e +- mm/compaction: fix misbehaviors of fast_find_migrateblock() +- mm/hugetlb: suppress wrong warning info when alloc gigantic page +- mm/hugetlb: fix potential double free in hugetlb_register_node() error path +- mm/memory.c: fix potential pte_unmap_unlock pte error +- mm: memcontrol: fix slub memory accounting +- mm: memcontrol: fix NR_ANON_THPS accounting in charge moving +- ocfs2: fix a use after free on error +- wireguard: kconfig: use arm chacha even with no neon +- wireguard: device: do not generate ICMP for non-IP packets +- vxlan: move debug check after netdev unregister +- PCI: rockchip: Make 'ep-gpios' DT property optional +- net/mlx4_core: Add missed mlx4_free_cmd_mailbox() +- net: stmmac: fix CBS idleslope and sendslope calculation +- ice: update the number of available RSS queues +- ice: Fix state bits on LLDP mode switch +- ice: Account for port VLAN in VF max packet size calculation +- ice: report correct max number of TCs +- vfio/type1: Use follow_pte() +- pwm: iqs620a: Fix overflow and optimize calculations +- octeontx2-af: Fix an off by one in rvu_dbg_qsize_write() +- i40e: Fix add TC filter for IPv6 +- nios2: fixed broken sys_clone syscall +- Take mmap lock in cacheflush syscall +- i40e: Fix VFs not created +- i40e: Fix addition of RX filters after enabling FW LLDP agent +- i40e: Fix overwriting flow control settings during driver loading +- i40e: Add zero-initialization of AQ command structures +- i40e: Fix flow for IPv6 next header (extension header) +- PCI: cadence: Fix DMA range mapping early return error +- PCI: pci-bridge-emul: Fix array overruns, improve safety +- device-dax: Fix default return code of range_parse() +- mailbox: sprd: correct definition of SPRD_OUTBOX_FIFO_FULL +- ext: EXT4_KUNIT_TESTS should depend on EXT4_FS instead of selecting it +- regmap: sdw: use _no_pm functions in regmap_read/write +- remoteproc/mediatek: acknowledge watchdog IRQ after handled +- misc: fastrpc: fix incorrect usage of dma_map_sgtable +- soundwire: bus: fix confusion on device used by pm_runtime +- soundwire: export sdw_write/read_no_pm functions +- soundwire: bus: use sdw_write_no_pm when setting the bus scale registers +- soundwire: bus: use sdw_update_no_pm when initializing a device +- nvmem: core: skip child nodes not matching binding +- nvmem: core: Fix a resource leak on error in nvmem_add_cells_from_of() +- coresight: etm4x: Skip accessing TRCPDCR in save/restore +- phy: USB_LGM_PHY should depend on X86 +- ext4: fix potential htree index checksum corruption +- vfio-pci/zdev: fix possible segmentation fault issue +- vfio/iommu_type1: Fix some sanity checks in detach group +- vfio/iommu_type1: Populate full dirty when detach non-pinned group +- drm/msm/dp: trigger unplug event in msm_dp_display_disable +- drm/msm: Fix races managing the OOB state for timestamp vs timestamps. +- drm/msm: Fix race of GPU init vs timestamp power management. +- drm/msm/mdp5: Fix wait-for-commit for cmd panels +- drm/msm/dsi: Correct io_start for MSM8994 (20nm PHY) +- drm/msm: Fix MSM_INFO_GET_IOVA with carveout +- mei: hbm: call mei_set_devstate() on hbm stop response +- PCI: Align checking of syscall user config accessors +- VMCI: Use set_page_dirty_lock() when unregistering guest memory +- PCI: xilinx-cpm: Fix reference count leak on error path +- pwm: rockchip: Eliminate potential race condition when probing +- pwm: rockchip: rockchip_pwm_probe(): Remove superfluous clk_unprepare() +- pwm: rockchip: Enable APB clock during register access while probing +- soundwire: cadence: fix ACK/NAK handling +- PCI: rcar: Always allocate MSI addresses in 32bit space +- misc: eeprom_93xx46: Add module alias to avoid breaking support for non device tree users +- phy: cadence-torrent: Fix error code in cdns_torrent_phy_probe() +- phy: rockchip-emmc: emmc_phy_init() always return 0 +- misc: eeprom_93xx46: Fix module alias to enable module autoprobe +- ARM: 9065/1: OABI compat: fix build when EPOLL is not enabled +- Input: zinitix - fix return type of zinitix_init_touch() +- sparc: fix led.c driver when PROC_FS is not enabled +- sparc64: only select COMPAT_BINFMT_ELF if BINFMT_ELF is set +- Input: elo - fix an error code in elo_connect() +- perf test: Fix unaligned access in sample parsing test +- perf intel-pt: Fix IPC with CYC threshold +- perf intel-pt: Fix premature IPC +- perf intel-pt: Fix missing CYC processing in PSB +- perf record: Fix continue profiling after draining the buffer +- Input: sur40 - fix an error code in sur40_probe() +- RDMA/rtrs-srv: Do not pass a valid pointer to PTR_ERR() +- RDMA/rtrs-srv-sysfs: fix missing put_device +- RDMA/rtrs-srv: fix memory leak by missing kobject free +- RDMA/rtrs: Only allow addition of path to an already established session +- RDMA/rtrs-srv: Fix stack-out-of-bounds +- RDMA/ucma: Fix use-after-free bug in ucma_create_uevent +- RDMA/hns: Fixes missing error code of CMDQ +- ceph: fix flush_snap logic after putting caps +- svcrdma: Hold private mutex while invoking rdma_accept() +- nfsd: register pernet ops last, unregister first +- perf symbols: Fix return value when loading PE DSO +- printk: avoid prb_first_valid_seq() where possible +- spi: Skip zero-length transfers in spi_transfer_one_message() +- spi: dw: Avoid stack content exposure +- regulator: bd718x7, bd71828, Fix dvs voltage levels +- perf symbols: Use (long) for iterator for bfd symbols +- selftests/ftrace: Update synthetic event syntax errors +- clk: aspeed: Fix APLL calculate formula from ast2600-A2 +- regulator: qcom-rpmh: fix pm8009 ldo7 +- powerpc/kuap: Restore AMR after replaying soft interrupts +- powerpc/uaccess: Avoid might_fault() when user access is enabled +- spi: pxa2xx: Fix the controller numbering for Wildcat Point +- clk: divider: fix initialization with parent_hw +- RDMA/hns: Disable RQ inline by default +- RDMA/hns: Fix type of sq_signal_bits +- RDMA/siw: Fix calculation of tx_valid_cpus size +- RDMA/hns: Fixed wrong judgments in the goto branch +- kselftests: dmabuf-heaps: Fix Makefile's inclusion of the kernel's usr/include dir +- kunit: tool: fix unit test cleanup handling +- clk: qcom: gcc-msm8998: Fix Alpha PLL type for all GPLLs +- powerpc/8xx: Fix software emulation interrupt +- powerpc/pseries/dlpar: handle ibm, configure-connector delay status +- mfd: wm831x-auxadc: Prevent use after free in wm831x_auxadc_read_irq() +- mfd: altera-sysmgr: Fix physical address storing more +- spi: stm32: properly handle 0 byte transfer +- RDMA/rxe: Correct skb on loopback path +- RDMA/rxe: Fix coding error in rxe_rcv_mcast_pkt +- RDMA/rxe: Fix coding error in rxe_recv.c +- perf vendor events arm64: Fix Ampere eMag event typo +- perf tools: Fix DSO filtering when not finding a map for a sampled address +- rtc: zynqmp: depend on HAS_IOMEM +- tracepoint: Do not fail unregistering a probe due to memory failure +- IB/cm: Avoid a loop when device has 255 ports +- IB/mlx5: Return appropriate error code instead of ENOMEM +- iommu: Properly pass gfp_t in _iommu_map() to avoid atomic sleeping +- iommu: Move iotlb_sync_map out from __iommu_map +- amba: Fix resource leak for drivers without .remove +- i2c: qcom-geni: Store DMA mapping data in geni_i2c_dev struct +- ARM: 9046/1: decompressor: Do not clear SCTLR.nTLSMD for ARMv7+ cores +- mmc: renesas_sdhi_internal_dmac: Fix DMA buffer alignment from 8 to 128-bytes +- mmc: usdhi6rol0: Fix a resource leak in the error handling path of the probe +- mmc: sdhci-sprd: Fix some resource leaks in the remove function +- mmc: owl-mmc: Fix a resource leak in an error handling path and in the remove function +- powerpc/time: Enable sched clock for irqtime +- powerpc/47x: Disable 256k page size +- KVM: PPC: Make the VMX instruction emulation routines static +- IB/umad: Return EPOLLERR in case of when device disassociated +- IB/umad: Return EIO in case of when device disassociated +- iommu: Switch gather->end to the inclusive end +- scsi: lpfc: Fix ancient double free +- objtool: Fix ".cold" section suffix check for newer versions of GCC +- objtool: Fix retpoline detection in asm code +- objtool: Fix error handling for STD/CLD warnings +- auxdisplay: ht16k33: Fix refresh rate handling +- watchdog: intel-mid_wdt: Postpone IRQ handler registration till SCU is ready +- isofs: release buffer head before return +- regulator: core: Avoid debugfs: Directory ... already present! error +- power: supply: smb347-charger: Fix interrupt usage if interrupt is unavailable +- power: supply: axp20x_usb_power: Init work before enabling IRQs +- regulator: s5m8767: Drop regulators OF node reference +- spi: atmel: Put allocated master before return +- regulator: s5m8767: Fix reference count leak +- certs: Fix blacklist flag type confusion +- watch_queue: Drop references to /dev/watch_queue +- regulator: axp20x: Fix reference cout leak +- platform/chrome: cros_ec_proto: Add LID and BATTERY to default mask +- platform/chrome: cros_ec_proto: Use EC_HOST_EVENT_MASK not BIT +- clk: sunxi-ng: h6: Fix clock divider range on some clocks +- IB/mlx5: Add mutex destroy call to cap_mask_mutex mutex +- RDMA/mlx5: Use the correct obj_id upon DEVX TIR creation +- spi: imx: Don't print error on -EPROBEDEFER +- clocksource/drivers/mxs_timer: Add missing semicolon when DEBUG is defined +- clocksource/drivers/ixp4xx: Select TIMER_OF when needed +- power: supply: fix sbs-charger build, needs REGMAP_I2C +- dmaengine: idxd: set DMA channel to be private +- rtc: s5m: select REGMAP_I2C +- power: reset: at91-sama5d2_shdwc: fix wkupdbc mask +- RDMA/rtrs-srv: Init wr_cnt as 1 +- RDMA/rtrs-clt: Refactor the failure cases in alloc_clt +- RDMA/rtrs-srv: Fix missing wr_cqe +- RDMA/rtrs: Call kobject_put in the failure path +- RDMA/rtrs-clt: Set mininum limit when create QP +- RDMA/rtrs-srv: Use sysfs_remove_file_self for disconnect +- RDMA/rtrs-srv: Release lock before call into close_sess +- RDMA/rtrs: Extend ibtrs_cq_qp_create +- of/fdt: Make sure no-map does not remove already reserved regions +- fdt: Properly handle "no-map" field in the memory region +- power: supply: cpcap-charger: Fix power_supply_put on null battery pointer +- power: supply: cpcap-battery: Fix missing power_supply_put() +- power: supply: cpcap-charger: Fix missing power_supply_put() +- mfd: bd9571mwv: Use devm_mfd_add_devices() +- dmaengine: hsu: disable spurious interrupt +- dmaengine: owl-dma: Fix a resource leak in the remove function +- dmaengine: fsldma: Fix a resource leak in an error handling path of the probe function +- dmaengine: fsldma: Fix a resource leak in the remove function +- RDMA/siw: Fix handling of zero-sized Read and Receive Queues. +- HID: core: detect and skip invalid inputs to snto32() +- clk: renesas: r8a779a0: Fix parent of CBFUSA clock +- clk: renesas: r8a779a0: Remove non-existent S2 clock +- clk: sunxi-ng: h6: Fix CEC clock +- spi: cadence-quadspi: Abort read if dummy cycles required are too many +- i2c: iproc: handle master read request +- i2c: iproc: update slave isr mask (ISR_MASK_SLAVE) +- i2c: iproc: handle only slave interrupts which are enabled +- quota: Fix memory leak when handling corrupted quota file +- arm64: dts: qcom: qrb5165-rb5: fix pm8009 regulators +- regulator: qcom-rpmh-regulator: add pm8009-1 chip revision +- selftests/powerpc: Make the test check in eeh-basic.sh posix compliant +- clk: meson: clk-pll: propagate the error from meson_clk_pll_set_rate() +- clk: meson: clk-pll: make "ret" a signed integer +- clk: meson: clk-pll: fix initializing the old rate (fallback) for a PLL +- power: supply: cpcap: Add missing IRQF_ONESHOT to fix regression +- HSI: Fix PM usage counter unbalance in ssi_hw_init +- capabilities: Don't allow writing ambiguous v3 file capabilities +- drm/amdgpu/display: remove hdcp_srm sysfs on device removal +- smp: Process pending softirqs in flush_smp_call_function_from_idle() +- irqchip/imx: IMX_INTMUX should not default to y, unconditionally +- ubifs: Fix error return code in alloc_wbufs() +- ubifs: replay: Fix high stack usage, again +- ubifs: Fix memleak in ubifs_init_authentication +- jffs2: fix use after free in jffs2_sum_write_data() +- fs/jfs: fix potential integer overflow on shift of a int +- ASoC: simple-card-utils: Fix device module clock +- ima: Free IMA measurement buffer after kexec syscall +- ima: Free IMA measurement buffer on error +- ASoC: SOF: sof-pci-dev: add missing Up-Extreme quirk +- nvmet: set status to 0 in case for invalid nsid +- nvmet: remove extra variable in identify ns +- nvme-multipath: set nr_zones for zoned namespaces +- nvmet-tcp: fix potential race of tcp socket closing accept_work +- nvmet-tcp: fix receive data digest calculation for multiple h2cdata PDUs +- io_uring: fix possible deadlock in io_uring_poll +- crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key() +- hwrng: timeriomem - Fix cooldown period calculation +- drm/dp_mst: Don't cache EDIDs for physical ports +- drm/lima: fix reference leak in lima_pm_busy +- drm/vc4: hdmi: Update the CEC clock divider on HSM rate change +- drm/vc4: hdmi: Compute the CEC clock divider from the clock rate +- drm/vc4: hdmi: Restore cec physical address on reconnect +- drm/vc4: hdmi: Fix up CEC registers +- drm/vc4: hdmi: Fix register offset with longer CEC messages +- drm/vc4: hdmi: Move hdmi reset to bind +- s390/zcrypt: return EIO when msg retry limit reached +- KVM: x86: Restore all 64 bits of DR6 and DR7 during RSM on x86-64 +- btrfs: fix double accounting of ordered extent for subpage case in btrfs_invalidapge +- btrfs: clarify error returns values in __load_free_space_cache +- ASoC: SOF: debug: Fix a potential issue on string buffer termination +- ASoC: rt5682: Fix panic in rt5682_jack_detect_handler happening during system shutdown +- ASoC: qcom: lpass: Fix i2s ctl register bit map +- locking/lockdep: Avoid unmatched unlock +- ASoC: Intel: sof_sdw: add missing TGL_HDMI quirk for Dell SKU 0A3E +- ASoC: Intel: sof_sdw: add missing TGL_HDMI quirk for Dell SKU 0A5E +- Drivers: hv: vmbus: Avoid use-after-free in vmbus_onoffer_rescind() +- drm/mediatek: Check if fb is null +- KVM: nSVM: Don't strip host's C-bit from guest's CR3 when reading PDPTRs +- ASoC: qcom: Fix typo error in HDMI regmap config callbacks +- f2fs: fix a wrong condition in __submit_bio +- drm/amdgpu: Prevent shift wrapping in amdgpu_read_mask() +- f2fs: fix to avoid inconsistent quota data +- mtd: parsers: afs: Fix freeing the part name memory in failure +- ASoC: codecs: add missing max_register in regmap config +- ASoC: cpcap: fix microphone timeslot mask +- ata: ahci_brcm: Add back regulators management +- mm: proc: Invalidate TLB after clearing soft-dirty page state +- drm/nouveau: bail out of nouveau_channel_new if channel init fails +- crypto: talitos - Fix ctr(aes) on SEC1 +- crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error) +- mtd: parser: imagetag: fix error codes in bcm963xx_parse_imagetag_partitions() +- perf/arm-cmn: Move IRQs when migrating context +- perf/arm-cmn: Fix PMU instance naming +- ASoC: SOF: Intel: hda: cancel D0i3 work during runtime suspend +- ASoC: qcom: lpass-cpu: Remove bit clock state check +- f2fs: compress: fix potential deadlock +- sched/eas: Don't update misfit status if the task is pinned +- media: uvcvideo: Accept invalid bFormatIndex and bFrameIndex values +- media: pxa_camera: declare variable when DEBUG is defined +- media: mtk-vcodec: fix argument used when DEBUG is defined +- media: cx25821: Fix a bug when reallocating some dma memory +- media: qm1d1c0042: fix error return code in qm1d1c0042_init() +- media: atomisp: Fix a buffer overflow in debug code +- media: vidtv: psi: fix missing crc for PMT +- media: lmedm04: Fix misuse of comma +- media: software_node: Fix refcounts in software_node_get_next_child() +- drm/amd/display: Fix HDMI deep color output for DCE 6-11. +- drm/amd/display: Fix 10/12 bpc setup in DCE output bit depth reduction. +- macintosh/adb-iop: Use big-endian autopoll mask +- bsg: free the request before return error code +- drm/amdgpu: toggle on DF Cstate after finishing xgmi injection +- drm/tegra: Fix reference leak when pm_runtime_get_sync() fails +- MIPS: Compare __SYNC_loongson3_war against 0 +- MIPS: properly stop .eh_frame generation +- media: ti-vpe: cal: fix write to unallocated memory +- media: imx7: csi: Fix pad link validation +- media: imx7: csi: Fix regression for parallel cameras on i.MX6UL +- drm/sun4i: tcon: fix inverted DCLK polarity +- sched/fair: Avoid stale CPU util_est value for schedutil in task dequeue +- crypto: bcm - Rename struct device_private to bcm_device_private +- evm: Fix memleak in init_desc +- ASoC: qcom: qdsp6: Move frontend AIFs to q6asm-dai +- ASoC: cs42l56: fix up error handling in probe +- media: aspeed: fix error return code in aspeed_video_setup_video() +- media: tm6000: Fix memleak in tm6000_start_stream +- media: media/pci: Fix memleak in empress_init +- media: em28xx: Fix use-after-free in em28xx_alloc_urbs +- media: vsp1: Fix an error handling path in the probe function +- media: camss: missing error code in msm_video_register() +- media: mtk-vcodec: fix error return code in vdec_vp9_decode() +- media: imx: Fix csc/scaler unregister +- media: imx: Unregister csc/scaler only if registered +- media: i2c: ov5670: Fix PIXEL_RATE minimum value +- media: ipu3-cio2: Build only for x86 +- drm/fourcc: fix Amlogic format modifier masks +- drm/virtio: make sure context is created in gem open +- MIPS: lantiq: Explicitly compare LTQ_EBU_PCC_ISTAT against 0 +- MIPS: c-r4k: Fix section mismatch for loongson2_sc_init +- drm/amdgpu: Fix macro name _AMDGPU_TRACE_H_ in preprocessor if condition +- drm: rcar-du: Fix the return check of of_parse_phandle and of_find_device_by_node +- drm: rcar-du: Fix crash when using LVDS1 clock for CRTC +- drm: rcar-du: Fix PM reference leak in rcar_cmm_enable() +- kcsan: Rewrite kcsan_prandom_u32_max() without prandom_u32_state() +- media: allegro: Fix use after free on error +- hwrng: ingenic - Fix a resource leak in an error handling path +- crypto: arm64/aes-ce - really hide slower algos when faster ones are enabled +- crypto: sun4i-ss - fix kmap usage +- crypto: sun4i-ss - linearize buffers content must be kept +- drm/vc4: hdmi: Take into account the clock doubling flag in atomic_check +- drm/panel: mantix: Tweak init sequence +- drm/fb-helper: Add missed unlocks in setcmap_legacy() +- gma500: clean up error handling in init +- drm/gma500: Fix error return code in psb_driver_load() +- fbdev: aty: SPARC64 requires FB_ATY_CT +- tty: implement read_iter +- tty: convert tty_ldisc_ops 'read()' function to take a kernel pointer +- net: enetc: fix destroyed phylink dereference during unbind +- net: mvneta: Remove per-cpu queue mapping for Armada 3700 +- net: amd-xgbe: Fix network fluctuations when using 1G BELFUSE SFP +- net: amd-xgbe: Reset link when the link never comes back +- net: amd-xgbe: Fix NETDEV WATCHDOG transmit queue timeout warning +- net: amd-xgbe: Reset the PHY rx data path when mailbox command timeout +- net: phy: mscc: adding LCPLL reset to VSC8514 +- net: dsa: felix: don't deinitialize unused ports +- net: dsa: felix: perform teardown in reverse order of setup +- ibmvnic: skip send_request_unmap for timeout reset +- ibmvnic: add memory barrier to protect long term buffer +- bpf: Clear subreg_def for global function return values +- b43: N-PHY: Fix the update of coef for the PHY revision >= 3case +- cxgb4/chtls/cxgbit: Keeping the max ofld immediate data size same in cxgb4 and ulds +- net: axienet: Handle deferred probe on clock properly +- tcp: fix SO_RCVLOWAT related hangs under mem pressure +- selftests: mptcp: fix ACKRX debug message +- bpf: Fix bpf_fib_lookup helper MTU check for SKB ctx +- bpf, devmap: Use GFP_KERNEL for xdp bulk queue allocation +- bpf: Fix an unitialized value in bpf_iter +- libbpf: Ignore non function pointer member in struct_ops +- mac80211: fix potential overflow when multiplying to u32 integers +- net/mlx5e: Check tunnel offload is required before setting SWP +- net/mlx5e: CT: manage the lifetime of the ct entry object +- net/mlx5: Disable devlink reload for lag devices +- net/mlx5: Disallow RoCE on lag device +- net/mlx5: Disallow RoCE on multi port slave device +- net/mlx5: Disable devlink reload for multi port slave device +- net/mlx5e: kTLS, Use refcounts to free kTLS RX priv context +- net/mlx5e: Replace synchronize_rcu with synchronize_net +- net/mlx5: Fix health error state handling +- net/mlx5e: Change interrupt moderation channel params also when channels are closed +- net/mlx5e: Don't change interrupt moderation params when DIM is enabled +- net: phy: consider that suspend2ram may cut off PHY power +- dpaa2-eth: fix memory leak in XDP_REDIRECT +- xen/netback: fix spurious event detection for common event case +- bnxt_en: Fix devlink info's stored fw.psid version format. +- bnxt_en: reverse order of TX disable and carrier off +- ibmvnic: Set to CLOSED state even on error +- selftests/bpf: Convert test_xdp_redirect.sh to bash +- ath9k: fix data bus crash when setting nf_override via debugfs +- iwlwifi: pnvm: increment the pointer before checking the TLV +- iwlwifi: pnvm: set the PNVM again if it was already loaded +- bpf_lru_list: Read double-checked variable once without lock +- iwlwifi: mvm: don't check if CSA event is running before removing +- iwlwifi: mvm: assign SAR table revision to the command later +- iwlwifi: mvm: send stored PPAG command instead of local +- iwlwifi: mvm: store PPAG enabled/disabled flag properly +- iwlwifi: mvm: fix the type we use in the PPAG table validity checks +- soc: aspeed: snoop: Add clock control logic +- ath11k: fix a locking bug in ath11k_mac_op_start() +- ath10k: Fix lockdep assertion warning in ath10k_sta_statistics +- ath10k: Fix suspicious RCU usage warning in ath10k_wmi_tlv_parse_peer_stats_info() +- ARM: at91: use proper asm syntax in pm_suspend +- staging: wfx: fix possible panic with re-queued frames +- optee: simplify i2c access +- ARM: s3c: fix fiq for clang IAS +- iwlwifi: mvm: set enabled in the PPAG command properly +- arm64: dts: meson: fix broken wifi node for Khadas VIM3L +- arm64: dts: msm8916: Fix reserved and rfsa nodes unit address +- soc: qcom: ocmem: don't return NULL in of_get_ocmem +- Bluetooth: btusb: Fix memory leak in btusb_mtk_wmt_recv +- opp: Correct debug message in _opp_add_static_v2() +- arm64: dts: armada-3720-turris-mox: rename u-boot mtd partition to a53-firmware +- ARM: dts: armada388-helios4: assign pinctrl to each fan +- ARM: dts: armada388-helios4: assign pinctrl to LEDs +- can: mcp251xfd: mcp251xfd_probe(): fix errata reference +- arm64: dts: renesas: beacon: Fix EEPROM compatible value +- x86/MSR: Filter MSR writes through X86_IOC_WRMSR_REGS ioctl too +- staging: rtl8723bs: wifi_regd.c: Fix incorrect number of regulatory rules +- usb: dwc2: Make "trimming xfer length" a debug message +- usb: dwc2: Abort transaction after errors with unknown reason +- usb: dwc2: Do not update data length if it is 0 on inbound transfers +- ARM: dts: Configure missing thermal interrupt for 4430 +- memory: ti-aemif: Drop child node when jumping out loop +- Bluetooth: Put HCI device if inquiry procedure interrupts +- Bluetooth: drop HCI device reference before return +- staging: media: atomisp: Fix size_t format specifier in hmm_alloc() debug statemenet +- soc: ti: pm33xx: Fix some resource leak in the error handling paths of the probe function +- soc: qcom: socinfo: Fix an off by one in qcom_show_pmic_model() +- arm64: dts: qcom: sdm845-db845c: Fix reset-pin of ov8856 node +- usb: gadget: u_audio: Free requests only after callback +- ACPICA: Fix exception code class checks +- arm64: dts: rockchip: rk3328: Add clock_in_out property to gmac2phy node +- cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove() +- cpufreq: brcmstb-avs-cpufreq: Free resources in error path +- arm64: dts: qcom: msm8916-samsung-a2015: Fix sensors +- arm64: dts: allwinner: A64: Limit MMC2 bus frequency to 150 MHz +- arm64: dts: allwinner: H6: Allow up to 150 MHz MMC bus frequency +- arm64: dts: allwinner: Drop non-removable from SoPine/LTS SD card +- arm64: dts: allwinner: H6: properly connect USB PHY to port 0 +- arm64: dts: allwinner: A64: properly connect USB PHY to port 0 +- firmware: arm_scmi: Fix call site of scmi_notification_exit +- bpf: Avoid warning when re-casting __bpf_call_base into __bpf_call_base_args +- bpf: Add bpf_patch_call_args prototype to include/linux/bpf.h +- net: stmmac: dwmac-meson8b: fix enabling the timing-adjustment clock +- arm64: dts: qcom: msm8916-samsung-a5u: Fix iris compatible +- staging: vchiq: Fix bulk transfers on 64-bit builds +- staging: vchiq: Fix bulk userdata handling +- Bluetooth: hci_qca: Fix memleak in qca_controller_memdump +- memory: mtk-smi: Fix PM usage counter unbalance in mtk_smi ops +- arm64: dts: exynos: correct PMIC interrupt trigger level on Espresso +- arm64: dts: exynos: correct PMIC interrupt trigger level on TM2 +- ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid XU3 family +- ARM: dts: exynos: correct PMIC interrupt trigger level on Arndale Octa +- ARM: dts: exynos: correct PMIC interrupt trigger level on Spring +- ARM: dts: exynos: correct PMIC interrupt trigger level on Rinato +- ARM: dts: exynos: correct PMIC interrupt trigger level on Monk +- ARM: dts: exynos: correct PMIC interrupt trigger level on Artik 5 +- arm64: dts: renesas: beacon: Fix audio-1.8V pin enable +- arm64: dts: renesas: beacon kit: Fix choppy Bluetooth Audio +- Bluetooth: Fix initializing response id after clearing struct +- Bluetooth: hci_uart: Fix a race for write_work scheduling +- Bluetooth: btqcomsmd: Fix a resource leak in error handling paths in the probe function +- ath10k: Fix error handling in case of CE pipe init failure +- drm/i915/gt: One more flush for Baytrail clear residuals +- ALSA: pcm: Don't call sync_stop if it hasn't been stopped +- ALSA: pcm: Assure sync with the pending stop operation at suspend +- ALSA: pcm: Call sync_stop at disconnection +- random: fix the RNDRESEEDCRNG ioctl +- vmlinux.lds.h: Define SANTIZER_DISCARDS with CONFIG_GCOV_KERNEL=y +- MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section +- ALSA: usb-audio: Fix PCM buffer allocation in non-vmalloc mode +- bfq: Avoid false bfq queue merging +- virt: vbox: Do not use wait_event_interruptible when called from kernel context +- PCI: Decline to resize resources if boot config must be preserved +- PCI: qcom: Use PHY_REFCLK_USE_PAD only for ipq8064 +- w1: w1_therm: Fix conversion result for negative temperatures +- kdb: Make memory allocations more robust +- scsi: qla2xxx: Fix mailbox Ch erroneous error +- scsi: libsas: docs: Remove notify_ha_event() +- debugfs: do not attempt to create a new file before the filesystem is initalized +- debugfs: be more robust at handling improper input in debugfs_lookup() +- vdpa/mlx5: fix param validation in mlx5_vdpa_get_config() +- vmlinux.lds.h: add DWARF v5 sections +- scripts/recordmcount.pl: support big endian for ARCH sh +- kbuild: fix CONFIG_TRIM_UNUSED_KSYMS build for ppc64 +- cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath. +- cxgb4: Add new T6 PCI device id 0x6092 +- NET: usb: qmi_wwan: Adding support for Cinterion MV31 +- drm/xlnx: fix kmemleak by sending vblank_event in atomic_disable +- KVM: Use kvm_pfn_t for local PFN variable in hva_to_pfn_remapped() +- mm: provide a saner PTE walking API for modules +- KVM: do not assume PTE is writable after follow_pfn +- mm: simplify follow_pte{,pmd} +- mm: unexport follow_pte_pmd +- KVM: x86: Zap the oldest MMU pages, not the newest +- hwmon: (dell-smm) Add XPS 15 L502X to fan control blacklist +- arm64: tegra: Add power-domain for Tegra210 HDA +- Bluetooth: btusb: Some Qualcomm Bluetooth adapters stop working +- ntfs: check for valid standard information attribute +- ceph: downgrade warning from mdsmap decode to debug +- usb: quirks: add quirk to start video capture on ELMO L-12F document camera reliable +- USB: quirks: sort quirk entries +- nvme-rdma: Use ibdev_to_node instead of dereferencing ->dma_device +- RDMA: Lift ibdev_to_node from rds to common code +- HID: make arrays usage and value to be the same +- bpf: Fix truncation handling for mod32 dst reg wrt zero +- of: unittest: Fix build on architectures without CONFIG_OF_ADDRESS +- mm: Remove examples from enum zone_type comment +- arm64: mm: Set ZONE_DMA size based on early IORT scan +- arm64: mm: Set ZONE_DMA size based on devicetree's dma-ranges +- of: unittest: Add test for of_dma_get_max_cpu_address() +- of/address: Introduce of_dma_get_max_cpu_address() +- arm64: mm: Move zone_dma_bits initialization into zone_sizes_init() +- arm64: mm: Move reserve_crashkernel() into mem_init() +- rockchip: Make cdn_dp_resume depend on CONFIG_PM_SLEEP +- crypto - shash: reduce minimum alignment of shash_desc structure +- arm32: kaslr: print kaslr offset when kernel panic +- arm32: kaslr: pop visibility when compile decompress boot code as we need relocate BSS by GOT. +- arm32: kaslr: When boot with vxboot, we must adjust dtb address before kaslr_early_init, and store dtb address after init. +- arm: kaslr: Fix memtop calculate, when there is no memory top info, we can't use zero instead it. +- arm32: kaslr: Add missing sections about relocatable +- No idea why this broke ... +- ARM: decompressor: add KASLR support +- ARM: decompressor: explicitly map decompressor binary cacheable +- ARM: kernel: implement randomization of the kernel load address +- arm: vectors: use local symbol names for vector entry points +- ARM: kernel: refer to swapper_pg_dir via its symbol +- ARM: mm: export default vmalloc base address +- ARM: kernel: use PC relative symbol references in suspend/resume code +- ARM: kernel: use PC-relative symbol references in MMU switch code +- ARM: kernel: make vmlinux buildable as a PIE executable +- ARM: kernel: switch to relative exception tables +- arm-soc: various: replace open coded VA->PA calculation of pen_release +- arm-soc: mvebu: replace open coded VA->PA conversion +- arm-soc: exynos: replace open coded VA->PA conversions +- asm-generic: add .data.rel.ro sections to __ro_after_init +- Revert "[Huawei] Microchip Polarfire SoC Clock Driver" +- Revert "[Huawei] RISC-V: Add Microchip PolarFire kconfig option" +- sdei_watchdog: avoid possible false hardlockup +- kprobes/arm64: Blacklist sdei watchdog callback functions +- sdei_watchdog: set secure timer period base on 'watchdog_thresh' +- sdei_watchdog: clear EOI of the secure timer before kdump +- sdei_watchdog: refresh 'last_timestamp' when enabling nmi_watchdog +- watchdog: add nmi_watchdog support for arm64 based on SDEI +- lockup_detector: init lockup detector after all the init_calls +- firmware: arm_sdei: make 'sdei_api_event_disable/enable' public +- firmware: arm_sdei: add interrupt binding api +- watchdog: make hardlockup detect code public +- ARM: hw_breakpoint: Do not directly check the event's overflow_handler hook +- net/hinic: Remove the initialization of the global variable g_uld_info +- media: pwc: Use correct device for DMA +- btrfs: fix crash after non-aligned direct IO write with O_DSYNC +- btrfs: fix backport of 2175bf57dc952 in 5.10.13 +- Bluetooth: btusb: Always fallback to alt 1 for WBS +- tty: protect tty_write from odd low-level tty disciplines +- xen-blkback: fix error handling in xen_blkbk_map() +- xen-scsiback: don't "handle" error by BUG() +- xen-netback: don't "handle" error by BUG() +- xen-blkback: don't "handle" error by BUG() +- xen/arm: don't ignore return errors from set_phys_to_machine +- Xen/gntdev: correct error checking in gntdev_map_grant_pages() +- Xen/gntdev: correct dev_bus_addr handling in gntdev_map_grant_pages() +- Xen/x86: also check kernel mapping in set_foreign_p2m_mapping() +- Xen/x86: don't bail early from clear_foreign_p2m_mapping() +- net: fix proc_fs init handling in af_packet and tls +- net: bridge: Fix a warning when del bridge sysfs +- net: openvswitch: fix TTL decrement exception action execution +- net: sched: incorrect Kconfig dependencies on Netfilter modules +- mt76: mt7615: fix rdd mcu cmd endianness +- mt76: mt7915: fix endian issues +- net/sched: fix miss init the mru in qdisc_skb_cb +- mptcp: skip to next candidate if subflow has unacked data +- net: qrtr: Fix port ID for control messages +- IB/isert: add module param to set sg_tablesize for IO cmd +- vdpa_sim: add get_config callback in vdpasim_dev_attr +- vdpa_sim: make 'config' generic and usable for any device type +- vdpa_sim: store parsed MAC address in a buffer +- vdpa_sim: add struct vdpasim_dev_attr for device attributes +- vdpa_sim: remove hard-coded virtq count +- kcov, usb: only collect coverage from __usb_hcd_giveback_urb in softirq +- ovl: expand warning in ovl_d_real() +- net/qrtr: restrict user-controlled length in qrtr_tun_write_iter() +- net/rds: restrict iovecs length for RDS_CMSG_RDMA_ARGS +- vsock: fix locking in vsock_shutdown() +- vsock/virtio: update credit only if socket is not closed +- switchdev: mrp: Remove SWITCHDEV_ATTR_ID_MRP_PORT_STAT +- bridge: mrp: Fix the usage of br_mrp_port_switchdev_set_state +- net: watchdog: hold device global xmit lock during tx disable +- net/vmw_vsock: improve locking in vsock_connect_timeout() +- net/vmw_vsock: fix NULL pointer dereference +- net: fix iteration for sctp transport seq_files +- net: gro: do not keep too many GRO packets in napi->rx_list +- cpufreq: ACPI: Update arch scale-invariance max perf ratio if CPPC is not there +- cpufreq: ACPI: Extend frequency tables to cover boost frequencies +- net: dsa: call teardown method on probe failure +- udp: fix skb_copy_and_csum_datagram with odd segment sizes +- rxrpc: Fix clearance of Tx/Rx ring when releasing a call +- arm64: mte: Allow PTRACE_PEEKMTETAGS access to the zero page +- x86/pci: Create PCI/MSI irqdomain after x86_init.pci.arch_init() +- scripts: set proper OpenSSL include dir also for sign-file +- h8300: fix PREEMPTION build, TI_PRE_COUNT undefined +- i2c: stm32f7: fix configuration of the digital filter +- clk: sunxi-ng: mp: fix parent rate change flag check +- drm/sun4i: dw-hdmi: Fix max. frequency for H6 +- drm/sun4i: Fix H6 HDMI PHY configuration +- drm/sun4i: dw-hdmi: always set clock rate +- drm/sun4i: tcon: set sync polarity for tcon1 channel +- firmware_loader: align .builtin_fw to 8 +- net: hns3: add a check for index in hclge_get_rss_key() +- net: hns3: add a check for tqp_index in hclge_get_ring_chain_from_mbx() +- net: hns3: add a check for queue_id in hclge_reset_vf_queue() +- net: dsa: felix: implement port flushing on .phylink_mac_link_down +- x86/build: Disable CET instrumentation in the kernel for 32-bit too +- scsi: scsi_debug: Fix a memory leak +- netfilter: conntrack: skip identical origin tuple in same zone only +- ibmvnic: Clear failover_pending if unable to schedule +- net: stmmac: set TxQ mode back to DCB after disabling CBS +- selftests: txtimestamp: fix compilation issue +- net: enetc: initialize the RFS and RSS memories +- hv_netvsc: Reset the RSC count if NVSP_STAT_FAIL in netvsc_receive() +- net: ipa: set error code in gsi_channel_setup() +- net: hdlc_x25: Return meaningful error code in x25_open +- xen/netback: avoid race in xenvif_rx_ring_slots_available() +- netfilter: flowtable: fix tcp and udp header checksum update +- netfilter: nftables: fix possible UAF over chains from packet path in netns +- selftests: netfilter: fix current year +- netfilter: xt_recent: Fix attempt to update deleted entry +- bpf: Check for integer overflow when using roundup_pow_of_two() +- bpf: Unbreak BPF_PROG_TYPE_KPROBE when kprobe is called via do_int3 +- dmaengine: idxd: check device state before issue command +- drm/vc4: hvs: Fix buffer overflow with the dlist handling +- mt76: dma: fix a possible memory leak in mt76_add_fragment() +- ath9k: fix build error with LEDS_CLASS=m +- dmaengine: idxd: fix misc interrupt completion +- cgroup-v1: add disabled controller check in cgroup1_parse_param() +- KVM: x86: cleanup CR3 reserved bits checks +- lkdtm: don't move ctors to .rodata +- x86/efi: Remove EFI PGD build time checks +- Revert "lib: Restrict cpumask_local_spread to houskeeping CPUs" +- ubsan: implement __ubsan_handle_alignment_assumption +- ARM: kexec: fix oops after TLB are invalidated +- ARM: ensure the signal page contains defined contents +- kallsyms: fix nonconverging kallsyms table with lld +- ARM: dts: lpc32xx: Revert set default clock rate of HCLK PLL +- bfq-iosched: Revert "bfq: Fix computation of shallow depth" +- riscv: virt_addr_valid must check the address belongs to linear mapping +- drm/amd/display: Decrement refcount of dc_sink before reassignment +- drm/amd/display: Free atomic state after drm_atomic_commit +- drm/amd/display: Fix dc_sink kref count in emulated_link_detect +- drm/amd/display: Release DSC before acquiring +- drm/amd/display: Add more Clock Sources to DCN2.1 +- drm/amd/display: Fix DPCD translation for LTTPR AUX_RD_INTERVAL +- nvme-pci: ignore the subsysem NQN on Phison E16 +- x86/split_lock: Enable the split lock feature on another Alder Lake CPU +- scsi: lpfc: Fix EEH encountering oops with NVMe traffic +- ovl: skip getxattr of security labels +- cap: fix conversions on getxattr +- ovl: perform vfs_getxattr() with mounter creds +- arm64: dts: rockchip: Disable display for NanoPi R2S +- platform/x86: hp-wmi: Disable tablet-mode reporting by default +- arm64: dts: rockchip: remove interrupt-names property from rk3399 vdec node +- ARM: OMAP2+: Fix suspcious RCU usage splats for omap_enter_idle_coupled +- arm64: dts: qcom: sdm845: Reserve LPASS clocks in gcc +- arm64: dts: rockchip: Fix PCIe DT properties on rk3399 +- soc: ti: omap-prm: Fix boot time errors for rst_map_012 bits 0 and 1 +- tmpfs: disallow CONFIG_TMPFS_INODE64 on alpha +- tmpfs: disallow CONFIG_TMPFS_INODE64 on s390 +- dmaengine: move channel device_node deletion to driver +- drm/dp_mst: Don't report ports connected if nothing is attached to them +- drm/i915/tgl+: Make sure TypeC FIA is powered up when initializing it +- Revert "drm/amd/display: Update NV1x SR latency values" +- cgroup: fix psi monitor for root cgroup +- arm/xen: Don't probe xenbus as part of an early initcall +- drm/i915: Fix overlay frontbuffer tracking +- tracing: Check length before giving out the filter buffer +- tracing: Do not count ftrace events in top level enable output +- gpio: ep93xx: Fix single irqchip with multi gpiochips +- gpio: ep93xx: fix BUG_ON port F usage +- gpio: mxs: GPIO_MXS should not default to y unconditionally +- Revert "dts: phy: add GPIO number and active state used for phy reset" +- objtool: Fix seg fault with Clang non-section symbols +- squashfs: add more sanity checks in xattr id lookup +- squashfs: add more sanity checks in inode lookup +- squashfs: add more sanity checks in id lookup +- squashfs: avoid out of bounds writes in decompressors +- Revert "mm: memcontrol: avoid workload stalls when lowering memory.high" +- nilfs2: make splice write available again +- drm/i915: Skip vswing programming for TBT +- drm/i915: Fix ICL MG PHY vswing handling +- bpf: Fix verifier jsgt branch analysis on max bound +- bpf: Fix 32 bit src register truncation on div/mod +- bpf: Fix verifier jmp32 pruning decision logic +- regulator: Fix lockdep warning resolving supplies +- blk-cgroup: Use cond_resched() when destroy blkgs +- i2c: mediatek: Move suspend and resume handling to NOIRQ phase +- SUNRPC: Handle 0 length opaque XDR object data properly +- SUNRPC: Move simple_get_bytes and simple_get_netobj into private header +- iwlwifi: queue: bail out on invalid freeing +- iwlwifi: mvm: guard against device removal in reprobe +- iwlwifi: pcie: add rules to match Qu with Hr2 +- iwlwifi: mvm: invalidate IDs of internal stations at mvm start +- iwlwifi: pcie: fix context info memory leak +- iwlwifi: pcie: add a NULL check in iwl_pcie_txq_unmap +- iwlwifi: mvm: take mutex for calling iwl_mvm_get_sync_time() +- iwlwifi: mvm: skip power command when unbinding vif during CSA +- ASoC: Intel: sof_sdw: set proper flags for Dell TGL-H SKU 0A5E +- ASoC: ak4458: correct reset polarity +- ALSA: hda: intel-dsp-config: add PCI id for TGL-H +- pNFS/NFSv4: Improve rejection of out-of-order layouts +- pNFS/NFSv4: Try to return invalid layout in pnfs_layout_process() +- chtls: Fix potential resource leak +- ASoC: Intel: Skylake: Zero snd_ctl_elem_value +- mac80211: 160MHz with extended NSS BW in CSA +- drm/nouveau/nvif: fix method count when pushing an array +- ASoC: wm_adsp: Fix control name parsing for multi-fw +- regulator: core: avoid regulator_resolve_supply() race condition +- af_key: relax availability checks for skb size calculation +- powerpc/64/signal: Fix regression in __kernel_sigtramp_rt64() semantics +- gpiolib: cdev: clear debounce period if line set to output +- io_uring: drop mm/files between task_work_submit +- io_uring: reinforce cancel on flush during exit +- io_uring: fix sqo ownership false positive warning +- io_uring: fix list corruption for splice file_get +- io_uring: fix flush cqring overflow list while TASK_INTERRUPTIBLE +- io_uring: fix cancellation taking mutex while TASK_UNINTERRUPTIBLE +- io_uring: replace inflight_wait with tctx->wait +- io_uring: fix __io_uring_files_cancel() with TASK_UNINTERRUPTIBLE +- io_uring: if we see flush on exit, cancel related tasks +- io_uring: account io_uring internal files as REQ_F_INFLIGHT +- io_uring: fix files cancellation +- io_uring: always batch cancel in *cancel_files() +- io_uring: pass files into kill timeouts/poll +- io_uring: don't iterate io_uring_cancel_files() +- io_uring: add a {task,files} pair matching helper +- io_uring: simplify io_task_match() +- net: sched: replaced invalid qdisc tree flush helper in qdisc_replace +- net: dsa: mv88e6xxx: override existent unicast portvec in port_fdb_add +- udp: ipv4: manipulate network header of NATed UDP GRO fraglist +- net: ip_tunnel: fix mtu calculation +- neighbour: Prevent a dead entry from updating gc_list +- igc: Report speed and duplex as unknown when device is runtime suspended +- md: Set prev_flush_start and flush_bio in an atomic way +- Input: ili210x - implement pressure reporting for ILI251x +- Input: xpad - sync supported devices with fork on GitHub +- Input: goodix - add support for Goodix GT9286 chip +- x86/apic: Add extra serialization for non-serializing MSRs +- x86/debug: Prevent data breakpoints on cpu_dr7 +- x86/debug: Prevent data breakpoints on __per_cpu_offset +- x86/debug: Fix DR6 handling +- x86/build: Disable CET instrumentation in the kernel +- mm/filemap: add missing mem_cgroup_uncharge() to __add_to_page_cache_locked() +- mm: thp: fix MADV_REMOVE deadlock on shmem THP +- mm/vmalloc: separate put pages and flush VM flags +- mm, compaction: move high_pfn to the for loop scope +- mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active +- mm: hugetlb: fix a race between isolating and freeing page +- mm: hugetlb: fix a race between freeing and dissolving the page +- mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page +- ARM: 9043/1: tegra: Fix misplaced tegra_uart_config in decompressor +- ARM: footbridge: fix dc21285 PCI configuration accessors +- ARM: dts; gta04: SPI panel chip select is active low +- DTS: ARM: gta04: remove legacy spi-cs-high to make display work again +- KVM: x86: Set so called 'reserved CR3 bits in LM mask' at vCPU reset +- KVM: x86: Update emulator context mode if SYSENTER xfers to 64-bit mode +- KVM: x86: fix CPUID entries returned by KVM_GET_CPUID2 ioctl +- KVM: x86: Allow guests to see MSR_IA32_TSX_CTRL even if tsx=off +- KVM: x86/mmu: Fix TDP MMU zap collapsible SPTEs +- KVM: SVM: Treat SVM as unsupported when running as an SEV guest +- nvme-pci: avoid the deepest sleep state on Kingston A2000 SSDs +- io_uring: don't modify identity's files uncess identity is cowed +- drm/amd/display: Revert "Fix EDID parsing after resume from suspend" +- drm/i915: Power up combo PHY lanes for for HDMI as well +- drm/i915: Extract intel_ddi_power_up_lanes() +- drm/i915/display: Prevent double YUV range correction on HDR planes +- drm/i915/gt: Close race between enable_breadcrumbs and cancel_breadcrumbs +- drm/i915/gem: Drop lru bumping on display unpinning +- drm/i915: Fix the MST PBN divider calculation +- drm/dp/mst: Export drm_dp_get_vc_payload_bw() +- Fix unsynchronized access to sev members through svm_register_enc_region +- mmc: core: Limit retries when analyse of SDIO tuples fails +- mmc: sdhci-pltfm: Fix linking err for sdhci-brcmstb +- smb3: fix crediting for compounding when only one request in flight +- smb3: Fix out-of-bounds bug in SMB2_negotiate() +- iommu: Check dev->iommu in dev_iommu_priv_get() before dereferencing it +- cifs: report error instead of invalid when revalidating a dentry fails +- RISC-V: Define MAXPHYSMEM_1GB only for RV32 +- xhci: fix bounce buffer usage for non-sg list case +- scripts: use pkg-config to locate libcrypto +- genirq/msi: Activate Multi-MSI early when MSI_FLAG_ACTIVATE_EARLY is set +- genirq: Prevent [devm_]irq_alloc_desc from returning irq 0 +- libnvdimm/dimm: Avoid race between probe and available_slots_show() +- libnvdimm/namespace: Fix visibility of namespace resource attribute +- tracepoint: Fix race between tracing and removing tracepoint +- tracing: Use pause-on-trace with the latency tracers +- kretprobe: Avoid re-registration of the same kretprobe earlier +- tracing/kprobe: Fix to support kretprobe events on unloaded modules +- fgraph: Initialize tracing_graph_pause at task creation +- gpiolib: free device name on error path to fix kmemleak +- mac80211: fix station rate table updates on assoc +- ovl: implement volatile-specific fsync error behaviour +- ovl: avoid deadlock on directory ioctl +- ovl: fix dentry leak in ovl_get_redirect +- thunderbolt: Fix possible NULL pointer dereference in tb_acpi_add_link() +- kbuild: fix duplicated flags in DEBUG_CFLAGS +- memblock: do not start bottom-up allocations with kernel_end +- vdpa/mlx5: Restore the hardware used index after change map +- nvmet-tcp: fix out-of-bounds access when receiving multiple h2cdata PDUs +- ARM: dts: sun7i: a20: bananapro: Fix ethernet phy-mode +- net: ipa: pass correct dma_handle to dma_free_coherent() +- r8169: fix WoL on shutdown if CONFIG_DEBUG_SHIRQ is set +- net: mvpp2: TCAM entry enable should be written after SRAM data +- net: lapb: Copy the skb before sending a packet +- net/mlx5e: Release skb in case of failure in tc update skb +- net/mlx5e: Update max_opened_tc also when channels are closed +- net/mlx5: Fix leak upon failure of rule creation +- net/mlx5: Fix function calculation for page trees +- ibmvnic: device remove has higher precedence over reset +- i40e: Revert "i40e: don't report link up for a VF who hasn't enabled queues" +- igc: check return value of ret_val in igc_config_fc_after_link_up +- igc: set the default return value to -IGC_ERR_NVM in igc_write_nvm_srwr +- SUNRPC: Fix NFS READs that start at non-page-aligned offsets +- arm64: dts: ls1046a: fix dcfg address range +- rxrpc: Fix deadlock around release of dst cached on udp tunnel +- r8169: work around RTL8125 UDP hw bug +- arm64: dts: meson: switch TFLASH_VDD_EN pin to open drain on Odroid-C4 +- bpf, preload: Fix build when $(O) points to a relative path +- um: virtio: free vu_dev only with the contained struct device +- bpf, inode_storage: Put file handler if no storage was found +- bpf, cgroup: Fix problematic bounds check +- bpf, cgroup: Fix optlen WARN_ON_ONCE toctou +- vdpa/mlx5: Fix memory key MTT population +- ARM: dts: stm32: Fix GPIO hog flags on DHCOM DRC02 +- ARM: dts: stm32: Disable optional TSC2004 on DRC02 board +- ARM: dts: stm32: Disable WP on DHCOM uSD slot +- ARM: dts: stm32: Connect card-detect signal on DHCOM +- ARM: dts: stm32: Fix polarity of the DH DRC02 uSD card detect +- arm64: dts: rockchip: Use only supported PCIe link speed on Pinebook Pro +- arm64: dts: rockchip: fix vopl iommu irq on px30 +- arm64: dts: amlogic: meson-g12: Set FL-adj property value +- Input: i8042 - unbreak Pegatron C15B +- arm64: dts: qcom: c630: keep both touchpad devices enabled +- ARM: OMAP1: OSK: fix ohci-omap breakage +- usb: xhci-mtk: break loop when find the endpoint to drop +- usb: xhci-mtk: skip dropping bandwidth of unchecked endpoints +- usb: xhci-mtk: fix unreleased bandwidth data +- usb: dwc3: fix clock issue during resume in OTG mode +- usb: dwc2: Fix endpoint direction check in ep_from_windex +- usb: renesas_usbhs: Clear pipe running flag in usbhs_pkt_pop() +- USB: usblp: don't call usb_set_interface if there's a single alt +- usb: gadget: aspeed: add missing of_node_put +- USB: gadget: legacy: fix an error code in eth_bind() +- usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720 +- USB: serial: option: Adding support for Cinterion MV31 +- USB: serial: cp210x: add new VID/PID for supporting Teraoka AD2000 +- USB: serial: cp210x: add pid/vid for WSDA-200-USB + +* Fri Feb 19 2021 Xie XiuQi - 5.10.0-4.0.0.13 +- net/hinic: Add NIC Layer +- net/hinic: Update Hardware Abstract Layer +- workqueue: Restrict affinity change to rescuer +- kthread: Extract KTHREAD_IS_PER_CPU +- x86/cpu: Add another Alder Lake CPU to the Intel family +- objtool: Don't fail the kernel build on fatal errors +- habanalabs: disable FW events on device removal +- habanalabs: fix backward compatibility of idle check +- habanalabs: zero pci counters packet before submit to FW +- drm/amd/display: Fixed corruptions on HPDRX link loss restore +- drm/amd/display: Use hardware sequencer functions for PG control +- drm/amd/display: Change function decide_dp_link_settings to avoid infinite looping +- drm/amd/display: Allow PSTATE chnage when no displays are enabled +- drm/amd/display: Update dram_clock_change_latency for DCN2.1 +- selftests/powerpc: Only test lwm/stmw on big endian +- platform/x86: thinkpad_acpi: Add P53/73 firmware to fan_quirk_table for dual fan control +- nvmet: set right status on error in id-ns handler +- nvme-pci: allow use of cmb on v1.4 controllers +- nvme-tcp: avoid request double completion for concurrent nvme_tcp_timeout +- nvme-rdma: avoid request double completion for concurrent nvme_rdma_timeout +- nvme: check the PRINFO bit before deciding the host buffer length +- udf: fix the problem that the disc content is not displayed +- i2c: tegra: Create i2c_writesl_vi() to use with VI I2C for filling TX FIFO +- ALSA: hda: Add Cometlake-R PCI ID +- scsi: ibmvfc: Set default timeout to avoid crash during migration +- mac80211: fix encryption key selection for 802.3 xmit +- mac80211: fix fast-rx encryption check +- mac80211: fix incorrect strlen of .write in debugfs +- objtool: Don't add empty symbols to the rbtree +- ALSA: hda: Add AlderLake-P PCI ID and HDMI codec vid +- ASoC: SOF: Intel: hda: Resume codec to do jack detection +- scsi: fnic: Fix memleak in vnic_dev_init_devcmd2 +- scsi: libfc: Avoid invoking response handler twice if ep is already completed +- scsi: scsi_transport_srp: Don't block target in failfast state +- x86: __always_inline __{rd,wr}msr() +- locking/lockdep: Avoid noinstr warning for DEBUG_LOCKDEP +- habanalabs: fix dma_addr passed to dma_mmap_coherent +- platform/x86: intel-vbtn: Support for tablet mode on Dell Inspiron 7352 +- platform/x86: touchscreen_dmi: Add swap-x-y quirk for Goodix touchscreen on Estar Beauty HD tablet +- tools/power/x86/intel-speed-select: Set higher of cpuinfo_max_freq or base_frequency +- tools/power/x86/intel-speed-select: Set scaling_max_freq to base_frequency +- phy: cpcap-usb: Fix warning for missing regulator_disable +- iommu/vt-d: Do not use flush-queue when caching-mode is on +- ARM: 9025/1: Kconfig: CPU_BIG_ENDIAN depends on !LD_IS_LLD +- Revert "x86/setup: don't remove E820_TYPE_RAM for pfn 0" +- arm64: Do not pass tagged addresses to __is_lm_address() +- arm64: Fix kernel address detection of __is_lm_address() +- arm64: dts: meson: Describe G12b GPU as coherent +- drm/panfrost: Support cache-coherent integrations +- iommu/io-pgtable-arm: Support coherency for Mali LPAE +- ibmvnic: Ensure that CRQ entry read are correctly ordered +- net: switchdev: don't set port_obj_info->handled true when -EOPNOTSUPP +- net: dsa: bcm_sf2: put device node before return +- mlxsw: spectrum_span: Do not overwrite policer configuration +- stmmac: intel: Configure EHL PSE0 GbE and PSE1 GbE to 32 bits DMA addressing +- net: octeontx2: Make sure the buffer is 128 byte aligned +- net: fec: put child node on error path +- net: stmmac: dwmac-intel-plat: remove config data on error +- net: dsa: microchip: Adjust reset release timing to match reference reset circuit +- vsock: fix the race conditions in multi-transport support +- tcp: fix TLP timer not set when CA_STATE changes from DISORDER to OPEN +- tcp: make TCP_USER_TIMEOUT accurate for zero window probes +- team: protect features update by RCU to avoid deadlock +- scsi: qla2xxx: Fix description for parameter ql2xenforce_iocb_limit +- ASoC: topology: Fix memory corruption in soc_tplg_denum_create_values() +- ASoC: topology: Properly unregister DAI on removal +- ASoC: mediatek: mt8183-mt6358: ignore TDM DAI link by default +- ASoC: mediatek: mt8183-da7219: ignore TDM DAI link by default +- NFC: fix possible resource leak +- NFC: fix resource leak when target index is invalid +- rxrpc: Fix memory leak in rxrpc_lookup_local +- selftests: forwarding: Specify interface when invoking mausezahn +- nvme-multipath: Early exit if no path is available +- iommu/vt-d: Correctly check addr alignment in qi_flush_dev_iotlb_pasid() +- iommu/amd: Use IVHD EFR for early initialization of IOMMU features +- of/device: Update dma_range_map only when dev has valid dma-ranges +- ACPI/IORT: Do not blindly trust DMA masks from firmware +- can: dev: prevent potential information leak in can_fill_info() +- net/mlx5: CT: Fix incorrect removal of tuple_nat_node from nat rhashtable +- net/mlx5e: Revert parameters on errors when changing MTU and LRO state without reset +- net/mlx5e: Revert parameters on errors when changing trust state without reset +- net/mlx5e: Correctly handle changing the number of queues when the interface is down +- net/mlx5e: Fix CT rule + encap slow path offload and deletion +- net/mlx5e: Disable hw-tc-offload when MLX5_CLS_ACT config is disabled +- net/mlx5: Maintain separate page trees for ECPF and PF functions +- net/mlx5e: Reduce tc unsupported key print level +- net/mlx5e: free page before return +- net/mlx5e: E-switch, Fix rate calculation for overflow +- net/mlx5: Fix memory leak on flow table creation error flow +- igc: fix link speed advertising +- i40e: acquire VSI pointer only after VF is initialized +- ice: Fix MSI-X vector fallback logic +- ice: Don't allow more channels than LAN MSI-X available +- ice: update dev_addr in ice_set_mac_address even if HW filter exists +- ice: Implement flow for IPv6 next header (extension header) +- ice: fix FDir IPv6 flexbyte +- mac80211: pause TX while changing interface type +- iwlwifi: pcie: reschedule in long-running memory reads +- iwlwifi: pcie: use jiffies for memory read spin time limit +- iwlwifi: pcie: set LTR on more devices +- iwlwifi: pnvm: don't try to load after failures +- iwlwifi: pnvm: don't skip everything when not reloading +- iwlwifi: pcie: avoid potential PNVM leaks +- ASoC: qcom: lpass: Fix out-of-bounds DAI ID lookup +- ASoC: SOF: Intel: soundwire: fix select/depend unmet dependencies +- pNFS/NFSv4: Update the layout barrier when we schedule a layoutreturn +- pNFS/NFSv4: Fix a layout segment leak in pnfs_layout_process() +- powerpc/64s: prevent recursive replay_soft_interrupts causing superfluous interrupt +- ASoC: Intel: Skylake: skl-topology: Fix OOPs ib skl_tplg_complete +- spi: altera: Fix memory leak on error path +- ASoC: qcom: lpass-ipq806x: fix bitwidth regmap field +- ASoC: qcom: Fix broken support to MI2S TERTIARY and QUATERNARY +- ASoC: qcom: Fix incorrect volatile registers +- ASoC: dt-bindings: lpass: Fix and common up lpass dai ids +- RDMA/cxgb4: Fix the reported max_recv_sge value +- firmware: imx: select SOC_BUS to fix firmware build +- arm64: dts: imx8mp: Correct the gpio ranges of gpio3 +- ARM: dts: imx6qdl-sr-som: fix some cubox-i platforms +- ARM: dts: imx6qdl-kontron-samx6i: fix i2c_lcd/cam default status +- ARM: imx: fix imx8m dependencies +- arm64: dts: ls1028a: fix the offset of the reset register +- xfrm: Fix wraparound in xfrm_policy_addr_delta() +- selftests: xfrm: fix test return value override issue in xfrm_policy.sh +- xfrm: fix disable_xfrm sysctl when used on xfrm interfaces +- xfrm: Fix oops in xfrm_replay_advance_bmp +- Revert "block: simplify set_init_blocksize" to regain lost performance +- Revert "RDMA/mlx5: Fix devlink deadlock on net namespace deletion" +- netfilter: nft_dynset: add timeout extension to template +- ARM: zImage: atags_to_fdt: Fix node names on added root nodes +- ARM: imx: build suspend-imx6.S with arm instruction set +- clk: qcom: gcc-sm250: Use floor ops for sdcc clks +- clk: mmp2: fix build without CONFIG_PM +- clk: imx: fix Kconfig warning for i.MX SCU clk +- blk-mq: test QUEUE_FLAG_HCTX_ACTIVE for sbitmap_shared in hctx_may_queue +- xen-blkfront: allow discard-* nodes to be optional +- tee: optee: replace might_sleep with cond_resched +- KVM: Documentation: Fix spec for KVM_CAP_ENABLE_CAP_VM +- uapi: fix big endian definition of ipv6_rpl_sr_hdr +- drm/i915/selftest: Fix potential memory leak +- drm/i915: Check for all subplatform bits +- drm/nouveau/dispnv50: Restore pushing of all data. +- drm/vc4: Correct POS1_SCL for hvs5 +- drm/vc4: Correct lbm size and calculation +- drm/nouveau/svm: fail NOUVEAU_SVM_INIT ioctl on unsupported devices +- ARM: dts: imx6qdl-kontron-samx6i: fix pwms for lcd-backlight +- net/mlx5e: Fix IPSEC stats +- drm/i915/pmu: Don't grab wakeref when enabling events +- drm/i915/gt: Clear CACHE_MODE prior to clearing residuals +- iwlwifi: Fix IWL_SUBDEVICE_NO_160 macro to use the correct bit. +- mt7601u: fix rx buffer refcounting +- mt76: mt7663s: fix rx buffer refcounting +- mt7601u: fix kernel crash unplugging the device +- arm64: dts: broadcom: Fix USB DMA address translation for Stingray +- leds: trigger: fix potential deadlock with libata +- xen: Fix XenStore initialisation for XS_LOCAL +- io_uring: fix wqe->lock/completion_lock deadlock +- KVM: Forbid the use of tagged userspace addresses for memslots +- KVM: x86: get smi pending status correctly +- KVM: nVMX: Sync unsync'd vmcs02 state to vmcs12 on migration +- KVM: x86: allow KVM_REQ_GET_NESTED_STATE_PAGES outside guest mode for VMX +- KVM: nSVM: cancel KVM_REQ_GET_NESTED_STATE_PAGES on nested vmexit +- KVM: arm64: Filter out v8.1+ events on v8.0 HW +- KVM: x86/pmu: Fix UBSAN shift-out-of-bounds warning in intel_pmu_refresh() +- KVM: x86/pmu: Fix HW_REF_CPU_CYCLES event pseudo-encoding in intel_arch_events[] +- btrfs: fix possible free space tree corruption with online conversion +- btrfs: fix lockdep warning due to seqcount_mutex on 32bit arch +- drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[] +- drivers: soc: atmel: Avoid calling at91_soc_init on non AT91 SoCs +- crypto: marvel/cesa - Fix tdma descriptor on 64-bit +- efi/apple-properties: Reinstate support for boolean properties +- x86/entry: Emit a symbol for register restoring thunk +- PM: hibernate: flush swap writer after marking +- s390/vfio-ap: No need to disable IRQ after queue reset +- s390: uv: Fix sysfs max number of VCPUs reporting +- net: usb: qmi_wwan: added support for Thales Cinterion PLSx3 modem family +- bcache: only check feature sets when sb->version >= BCACHE_SB_VERSION_CDEV_WITH_FEATURES +- drivers/nouveau/kms/nv50-: Reject format modifiers for cursor planes +- drm/i915/gt: Always try to reserve GGTT address 0x0 +- drm/i915: Always flush the active worker before returning from the wait +- drm/nouveau/kms/gk104-gp1xx: Fix > 64x64 cursors +- Revert "drm/amdgpu/swsmu: drop set_fan_speed_percent (v2)" +- ASoC: AMD Renoir - refine DMI entries for some Lenovo products +- x86/xen: avoid warning in Xen pv guest with CONFIG_AMD_MEM_ENCRYPT enabled +- wext: fix NULL-ptr-dereference with cfg80211's lack of commit() +- ARM: dts: imx6qdl-gw52xx: fix duplicate regulator naming +- ARM: dts: ux500: Reserve memory carveouts +- ARM: dts: tbs2910: rename MMC node aliases +- media: rc: ensure that uevent can be read directly after rc device register +- media: rc: ite-cir: fix min_timeout calculation +- media: rc: fix timeout handling after switch to microsecond durations +- media: hantro: Fix reset_raw_fmt initialization +- media: cedrus: Fix H264 decoding +- media: cec: add stm32 driver +- parisc: Enable -mlong-calls gcc option by default when !CONFIG_MODULES +- ALSA: hda/via: Apply the workaround generically for Clevo machines +- ALSA: hda/realtek: Enable headset of ASUS B1400CEPE with ALC256 +- kernel: kexec: remove the lock operation of system_transition_mutex +- ACPI: thermal: Do not call acpi_thermal_check() directly +- ACPI: sysfs: Prefer "compatible" modalias +- tty: avoid using vfs_iocb_iter_write() for redirected console writes +- nbd: freeze the queue while we're adding connections +- iwlwifi: provide gso_type to GSO packets + +* Mon Feb 08 2021 Xie XiuQi - 5.10.0-3.0.0.12 +- kdump: update Documentation about crashkernel +- arm64: kdump: add memory for devices by DT property linux,usable-memory-range +- x86, arm64: Add ARCH_WANT_RESERVE_CRASH_KERNEL config +- arm64: kdump: reimplement crashkernel=X +- arm64: kdump: introduce some macroes for crash kernel reservation +- x86/elf: Move vmcore_elf_check_arch_cross to arch/x86/include/asm/elf.h +- x86: kdump: move reserve_crashkernel[_low]() into crash_core.c +- x86: kdump: move xen_pv_domain() check and insert_resource() to setup_arch() +- x86: kdump: use macro CRASH_ADDR_LOW_MAX in functions reserve_crashkernel() +- x86: kdump: make the lower bound of crash kernel reservation consistent +- x86: kdump: replace the hard-coded alignment with macro CRASH_ALIGN +- ARM: kdump: Add LPAE support +- ARM: kdump: fix timer interrupts panic, could not boot capture_kernel +- driver: input: fix UBSAN warning in input_defuzz_abs_event +- vdso: do cntvct workaround in the VDSO +- arm64: arch_timer: Disable CNTVCT_EL0 trap if workaround is enabled +- cgroup: Return ERSCH when add Z process into task +- ARM: 9027/1: head.S: explicitly map DT even if it lives in the first physical section +- ARM: 9028/1: disable KASAN in call stack capturing routines +- ARM: 9022/1: Change arch/arm/lib/mem*.S to use WEAK instead of .weak +- ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual address +- ARM: 9017/2: Enable KASan for ARM +- ARM: 9016/2: Initialize the mapping of KASan shadow memory +- ARM: 9015/2: Define the virtual space of KASan's shadow region +- ARM: 9014/2: Replace string mem* functions for KASan +- ARM: 9013/2: Disable KASan instrumentation for some code +- ARM: 9012/1: move device tree mapping out of linear region +- ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address +- drm/radeon: check the alloc_workqueue return value +- printk: fix string termination for record_print_text() +- printk: fix buffer overflow potential for print_text() +- tools: Factor HOSTCC, HOSTLD, HOSTAR definitions +- mm: fix a race on nr_swap_pages +- mm/page_alloc: add a missing mm_page_alloc_zone_locked() tracepoint +- objtool: Don't fail on missing symbol table +- io_uring: fix sleeping under spin in __io_clean_op +- io_uring: dont kill fasync under completion_lock +- io_uring: fix skipping disabling sqo on exec +- io_uring: fix uring_flush in exit_files() warning +- io_uring: fix false positive sqo warning on flush +- io_uring: do sqo disable on install_fd error +- io_uring: fix null-deref in io_disable_sqo_submit +- io_uring: stop SQPOLL submit on creator's death +- io_uring: add warn_once for io_uring_flush() +- io_uring: inline io_uring_attempt_task_drop() +- kernel/io_uring: cancel io_uring before task works +- iwlwifi: dbg: Don't touch the tlv data +- RDMA/vmw_pvrdma: Fix network_hdr_type reported in WC +- media: v4l2-subdev.h: BIT() is not available in userspace +- media: Revert "media: videobuf2: Fix length check for single plane dmabuf queueing" +- HID: multitouch: Apply MT_QUIRK_CONFIDENCE quirk for multi-input devices +- HID: wacom: Correct NULL dereference on AES pen proximity +- futex: Handle faults correctly for PI futexes +- futex: Simplify fixup_pi_state_owner() +- futex: Use pi_state_update_owner() in put_pi_state() +- rtmutex: Remove unused argument from rt_mutex_proxy_unlock() +- futex: Provide and use pi_state_update_owner() +- futex: Replace pointless printk in fixup_owner() +- futex: Ensure the correct return value from futex_lock_pi() +- Revert "mm/slub: fix a memory leak in sysfs_slab_add()" +- gpio: mvebu: fix pwm .get_state period calculation +- PCI/AER: increments pci bus reference count in aer-inject process +- PCI: add a member in 'struct pci_bus' to record the original 'pci_ops' +- sched, rt: fix isolated CPUs leaving task_group indefinitely throttled +- cgroup: wait for cgroup destruction to complete when umount +- cgroup: check if cgroup root is alive in cgroupstats_show() +- mtd:avoid blktrans_open/release race and avoid insmod ftl.ko deadlock +- jffs2: move jffs2_init_inode_info() just after allocating inode +- jffs2: protect no-raw-node-ref check of inocache by erase_completion_lock +- jffs2: handle INO_STATE_CLEARING in jffs2_do_read_inode() +- jffs2: reset pino_nlink to 0 when inode creation failed +- jffs2: GC deadlock reading a page that is used in jffs2_write_begin() +- jffs2: make the overwritten xattr invisible after remount +- Revert "mm: fix initialization of struct page for holes in memory layout" +- mm: fix initialization of struct page for holes in memory layout +- Commit 9bb48c82aced ("tty: implement write_iter") converted the tty layer to use write_iter. +- fs/pipe: allow sendfile() to pipe again +- interconnect: imx8mq: Use icc_sync_state +- kernfs: wire up ->splice_read and ->splice_write +- kernfs: implement ->write_iter +- kernfs: implement ->read_iter +- bpf: Local storage helpers should check nullness of owner ptr passed +- drm/i915/hdcp: Get conn while content_type changed +- ASoC: SOF: Intel: hda: Avoid checking jack on system suspend +- tcp: Fix potential use-after-free due to double kfree() +- x86/sev-es: Handle string port IO to kernel memory properly +- net: systemport: free dev before on error path +- tty: fix up hung_up_tty_write() conversion +- tty: implement write_iter +- x86/sev: Fix nonistr violation +- pinctrl: qcom: Don't clear pending interrupts when enabling +- pinctrl: qcom: Properly clear "intr_ack_high" interrupts when unmasking +- pinctrl: qcom: No need to read-modify-write the interrupt status +- pinctrl: qcom: Allow SoCs to specify a GPIO function that's not 0 +- net: core: devlink: use right genl user_ptr when handling port param get/set +- net: mscc: ocelot: Fix multicast to the CPU port +- tcp: fix TCP_USER_TIMEOUT with zero window +- tcp: do not mess with cloned skbs in tcp_add_backlog() +- net: dsa: b53: fix an off by one in checking "vlan->vid" +- net: Disable NETIF_F_HW_TLS_RX when RXCSUM is disabled +- net: mscc: ocelot: allow offloading of bridge on top of LAG +- ipv6: set multicast flag on the multicast route +- net_sched: reject silly cell_log in qdisc_get_rtab() +- net_sched: avoid shift-out-of-bounds in tcindex_set_parms() +- ipv6: create multicast route with RTPROT_KERNEL +- udp: mask TOS bits in udp_v4_early_demux() +- net_sched: gen_estimator: support large ewma log +- tcp: fix TCP socket rehash stats mis-accounting +- kasan: fix incorrect arguments passing in kasan_add_zero_shadow +- kasan: fix unaligned address is unhandled in kasan_remove_zero_shadow +- skbuff: back tiny skbs with kmalloc() in __netdev_alloc_skb() too +- lightnvm: fix memory leak when submit fails +- cachefiles: Drop superfluous readpages aops NULL check +- nvme-pci: fix error unwind in nvme_map_data +- nvme-pci: refactor nvme_unmap_data +- sh_eth: Fix power down vs. is_opened flag ordering +- selftests/powerpc: Fix exit status of pkey tests +- net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext +- octeontx2-af: Fix missing check bugs in rvu_cgx.c +- ASoC: SOF: Intel: fix page fault at probe if i915 init fails +- locking/lockdep: Cure noinstr fail +- sh: Remove unused HAVE_COPY_THREAD_TLS macro +- sh: dma: fix kconfig dependency for G2_DMA +- drm/i915/hdcp: Update CP property in update_pipe +- tools: gpio: fix %llu warning in gpio-watch.c +- tools: gpio: fix %llu warning in gpio-event-mon.c +- netfilter: rpfilter: mask ecn bits before fib lookup +- cls_flower: call nla_ok() before nla_next() +- x86/cpu/amd: Set __max_die_per_package on AMD +- x86/entry: Fix noinstr fail +- drm/i915: Only enable DFP 4:4:4->4:2:0 conversion when outputting YCbCr 4:4:4 +- drm/i915: s/intel_dp_sink_dpms/intel_dp_set_power/ +- driver core: Extend device_is_dependent() +- driver core: Fix device link device name collision +- drivers core: Free dma_range_map when driver probe failed +- xhci: tegra: Delay for disabling LFPS detector +- xhci: make sure TRB is fully written before giving it to the controller +- usb: cdns3: imx: fix can't create core device the second time issue +- usb: cdns3: imx: fix writing read-only memory issue +- usb: bdc: Make bdc pci driver depend on BROKEN +- usb: udc: core: Use lock when write to soft_connect +- USB: gadget: dummy-hcd: Fix errors in port-reset handling +- usb: gadget: aspeed: fix stop dma register setting. +- USB: ehci: fix an interrupt calltrace error +- ehci: fix EHCI host controller initialization sequence +- serial: mvebu-uart: fix tx lost characters at power off +- stm class: Fix module init return on allocation failure +- intel_th: pci: Add Alder Lake-P support +- io_uring: fix short read retries for non-reg files +- io_uring: fix SQPOLL IORING_OP_CLOSE cancelation state +- io_uring: iopoll requests should also wake task ->in_idle state +- mm: fix numa stats for thp migration +- mm: memcg: fix memcg file_dirty numa stat +- mm: memcg/slab: optimize objcg stock draining +- proc_sysctl: fix oops caused by incorrect command parameters +- x86/setup: don't remove E820_TYPE_RAM for pfn 0 +- x86/mmx: Use KFPU_387 for MMX string operations +- x86/topology: Make __max_die_per_package available unconditionally +- x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state +- irqchip/mips-cpu: Set IPI domain parent chip +- cifs: do not fail __smb_send_rqst if non-fatal signals are pending +- powerpc/64s: fix scv entry fallback flush vs interrupt +- counter:ti-eqep: remove floor +- iio: adc: ti_am335x_adc: remove omitted iio_kfifo_free() +- drivers: iio: temperature: Add delay after the addressed reset command in mlx90632.c +- iio: ad5504: Fix setting power-down state +- iio: common: st_sensors: fix possible infinite loop in st_sensors_irq_thread +- i2c: sprd: depend on COMMON_CLK to fix compile tests +- perf evlist: Fix id index for heterogeneous systems +- can: peak_usb: fix use after free bugs +- can: vxcan: vxcan_xmit: fix use after free bug +- can: dev: can_restart: fix use after free bug +- selftests: net: fib_tests: remove duplicate log test +- xsk: Clear pool even for inactive queues +- ALSA: hda: Balance runtime/system PM if direct-complete is disabled +- gpio: sifive: select IRQ_DOMAIN_HIERARCHY rather than depend on it +- platform/x86: hp-wmi: Don't log a warning on HPWMI_RET_UNKNOWN_COMMAND errors +- platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-list +- drm/vc4: Unify PCM card's driver_name +- i2c: octeon: check correct size of maximum RECV_LEN packet +- iov_iter: fix the uaccess area in copy_compat_iovec_from_user +- printk: fix kmsg_dump_get_buffer length calulations +- printk: ringbuffer: fix line counting +- RDMA/cma: Fix error flow in default_roce_mode_store +- RDMA/umem: Avoid undefined behavior of rounddown_pow_of_two() +- drm/amdkfd: Fix out-of-bounds read in kdf_create_vcrat_image_cpu() +- bpf: Reject too big ctx_size_in for raw_tp test run +- arm64: entry: remove redundant IRQ flag tracing +- powerpc: Fix alignment bug within the init sections +- powerpc: Use the common INIT_DATA_SECTION macro in vmlinux.lds.S +- bpf: Prevent double bpf_prog_put call from bpf_tracing_prog_attach +- crypto: omap-sham - Fix link error without crypto-engine +- scsi: ufs: Fix tm request when non-fatal error happens +- scsi: ufs: ufshcd-pltfrm depends on HAS_IOMEM +- scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression +- btrfs: print the actual offset in btrfs_root_name +- RDMA/ucma: Do not miss ctx destruction steps in some cases +- pinctrl: mediatek: Fix fallback call path +- pinctrl: aspeed: g6: Fix PWMG0 pinctrl setting +- gpiolib: cdev: fix frame size warning in gpio_ioctl() +- nfsd: Don't set eof on a truncated READ_PLUS +- nfsd: Fixes for nfsd4_encode_read_plus_data() +- x86/xen: fix 'nopvspin' build error +- RISC-V: Fix maximum allowed phsyical memory for RV32 +- RISC-V: Set current memblock limit +- libperf tests: Fail when failing to get a tracepoint id +- libperf tests: If a test fails return non-zero +- io_uring: flush timeouts that should already have expired +- drm/nouveau/kms/nv50-: fix case where notifier buffer is at offset 0 +- drm/nouveau/mmu: fix vram heap sizing +- drm/nouveau/i2c/gm200: increase width of aux semaphore owner fields +- drm/nouveau/privring: ack interrupts the same way as RM +- drm/nouveau/bios: fix issue shadowing expansion ROMs +- drm/amd/display: Fix to be able to stop crc calculation +- HID: logitech-hidpp: Add product ID for MX Ergo in Bluetooth mode +- drm/amd/display: disable dcn10 pipe split by default +- drm/amdgpu/psp: fix psp gfx ctrl cmds +- riscv: defconfig: enable gpio support for HiFive Unleashed +- dts: phy: add GPIO number and active state used for phy reset +- dts: phy: fix missing mdio device and probe failure of vsc8541-01 device +- x86/xen: Fix xen_hvm_smp_init() when vector callback not available +- x86/xen: Add xen_no_vector_callback option to test PCI INTX delivery +- xen: Fix event channel callback via INTX/GSI +- arm64: make atomic helpers __always_inline +- riscv: cacheinfo: Fix using smp_processor_id() in preemptible +- ALSA: hda/tegra: fix tegra-hda on tegra30 soc +- clk: tegra30: Add hda clock default rates to clock driver +- HID: Ignore battery for Elan touchscreen on ASUS UX550 +- HID: logitech-dj: add the G602 receiver +- riscv: Enable interrupts during syscalls with M-Mode +- riscv: Fix sifive serial driver +- riscv: Fix kernel time_init() +- scsi: sd: Suppress spurious errors when WRITE SAME is being disabled +- scsi: scsi_debug: Fix memleak in scsi_debug_init() +- scsi: qedi: Correct max length of CHAP secret +- scsi: ufs: Correct the LUN used in eh_device_reset_handler() callback +- scsi: ufs: Relax the condition of UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL +- x86/hyperv: Fix kexec panic/hang issues +- dm integrity: select CRYPTO_SKCIPHER +- HID: sony: select CONFIG_CRC32 +- HID: multitouch: Enable multi-input for Synaptics pointstick/touchpad device +- SUNRPC: Handle TCP socket sends with kernel_sendpage() again +- ASoC: rt711: mutex between calibration and power state changes +- ASoC: Intel: haswell: Add missing pm_ops +- drm/i915: Check for rq->hwsp validity after acquiring RCU lock +- drm/i915/gt: Prevent use of engine->wa_ctx after error +- drm/amd/display: DCN2X Find Secondary Pipe properly in MPO + ODM Case +- drm/amdgpu: remove gpu info firmware of green sardine +- drm/syncobj: Fix use-after-free +- drm/atomic: put state on error path +- dm integrity: conditionally disable "recalculate" feature +- dm integrity: fix a crash if "recalculate" used without "internal_hash" +- dm: avoid filesystem lookup in dm_get_dev_t() +- mmc: sdhci-brcmstb: Fix mmc timeout errors on S5 suspend +- mmc: sdhci-xenon: fix 1.8v regulator stabilization +- mmc: sdhci-of-dwcmshc: fix rpmb access +- mmc: core: don't initialize block size from ext_csd if not present +- pinctrl: ingenic: Fix JZ4760 support +- fs: fix lazytime expiration handling in __writeback_single_inode() +- btrfs: send: fix invalid clone operations when cloning from the same file and root +- btrfs: don't clear ret in btrfs_start_dirty_block_groups +- btrfs: fix lockdep splat in btrfs_recover_relocation +- btrfs: do not double free backref nodes on error +- btrfs: don't get an EINTR during drop_snapshot for reloc +- ACPI: scan: Make acpi_bus_get_device() clear return pointer on error +- dm crypt: fix copy and paste bug in crypt_alloc_req_aead +- crypto: xor - Fix divide error in do_xor_speed() +- ALSA: hda/via: Add minimum mute flag +- ALSA: hda/realtek - Limit int mic boost on Acer Aspire E5-575T +- ALSA: seq: oss: Fix missing error check in snd_seq_oss_synth_make_info() +- platform/x86: ideapad-laptop: Disable touchpad_switch for ELAN0634 +- platform/x86: i2c-multi-instantiate: Don't create platform device for INT3515 ACPI nodes +- i2c: bpmp-tegra: Ignore unknown I2C_M flags +- i2c: tegra: Wait for config load atomically while in ISR +- mtd: rawnand: nandsim: Fix the logic when selecting Hamming soft ECC engine +- mtd: rawnand: gpmi: fix dst bit offset when extracting raw payload +- scsi: target: tcmu: Fix use-after-free of se_cmd->priv +- mtd: phram: use div_u64_rem to stop overwrite len in phram_setup +- mtd: phram: Allow the user to set the erase page size. + +* Mon Feb 01 2021 Xie XiuQi - 5.10.0-2.0.0.11 +- config: add initial openeuler_defconfig for x86 +- config: add initial openeuler_defconfig for arm64 +- spi: cadence: cache reference clock rate during probe +- spi: fsl: Fix driver breakage when SPI_CS_HIGH is not set in spi->mode +- cxgb4/chtls: Fix tid stuck due to wrong update of qid +- net: dsa: unbind all switches from tree when DSA master unbinds +- mac80211: check if atf has been disabled in __ieee80211_schedule_txq +- mac80211: do not drop tx nulldata packets on encrypted links +- drm/panel: otm8009a: allow using non-continuous dsi clock +- can: mcp251xfd: mcp251xfd_handle_rxif_one(): fix wrong NULL pointer check +- net: stmmac: use __napi_schedule() for PREEMPT_RT +- rxrpc: Fix handling of an unsupported token type in rxrpc_read() +- net: dsa: clear devlink port type before unregistering slave netdevs +- net: phy: smsc: fix clk error handling +- dt-bindings: net: renesas,etheravb: RZ/G2H needs tx-internal-delay-ps +- net: avoid 32 x truesize under-estimation for tiny skbs +- net: stmmac: fix taprio configuration when base_time is in the past +- net: stmmac: fix taprio schedule configuration +- net: sit: unregister_netdevice on newlink's error path +- net: stmmac: Fixed mtu channged by cache aligned +- i40e: fix potential NULL pointer dereferencing +- rxrpc: Call state should be read with READ_ONCE() under some circumstances +- net: dcb: Accept RTM_GETDCB messages carrying set-like DCB commands +- net: dcb: Validate netlink message in DCB handler +- esp: avoid unneeded kmap_atomic call +- rndis_host: set proper input size for OID_GEN_PHYSICAL_MEDIUM request +- net: mvpp2: Remove Pause and Asym_Pause support +- mlxsw: core: Increase critical threshold for ASIC thermal zone +- mlxsw: core: Add validation of transceiver temperature thresholds +- tipc: fix NULL deref in tipc_link_xmit() +- net: ipv6: Validate GSO SKB before finish IPv6 processing +- netxen_nic: fix MSI/MSI-x interrupts +- udp: Prevent reuseport_select_sock from reading uninitialized socks +- net: fix use-after-free when UDP GRO with shared fraglist +- net: ipa: modem: add missing SET_NETDEV_DEV() for proper sysfs links +- bpf: Fix helper bpf_map_peek_elem_proto pointing to wrong callback +- bpf: Support PTR_TO_MEM{,_OR_NULL} register spilling +- bpf: Don't leak memory in bpf getsockopt when optlen == 0 +- nfsd4: readdirplus shouldn't return parent of export +- X.509: Fix crash caused by NULL pointer +- bpf: Fix signed_{sub,add32}_overflows type handling +- drm/amdgpu/display: drop DCN support for aarch64 +- x86/hyperv: Initialize clockevents after LAPIC is initialized +- bpf: Fix selftest compilation on clang 11 +- Revert "kconfig: remove 'kvmconfig' and 'xenconfig' shorthands" +- kretprobe: check re-registration of the same kretprobe earlier +- perf tools: set the default length of HW_BREAKPOINT_X as 4 for non X86_64 +- ARM: LPAE: Use phys_addr_t instead of unsigned long in outercache hooks +- aio: add timeout validity check for io_[p]getevents +- ARM: kprobes: fix gcc-7 build warning +- proc: fix ubsan warning in mem_lseek +- netfilter: nf_nat: Fix memleak in nf_nat_init +- netfilter: conntrack: fix reading nf_conntrack_buckets +- ALSA: firewire-tascam: Fix integer overflow in midi_port_work() +- ALSA: fireface: Fix integer overflow in transmit_midi_msg() +- dm: eliminate potential source of excessive kernel log noise +- selftests: netfilter: Pass family parameter "-f" to conntrack tool +- net: sunrpc: interpret the return value of kstrtou32 correctly +- iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev() +- riscv: Trace irq on only interrupt is enabled +- mm, slub: consider rest of partial list if acquire_slab() fails +- drm/i915/gt: Restore clear-residual mitigations for Ivybridge, Baytrail +- drm/i915/icl: Fix initing the DSI DSC power refcount during HW readout +- drm/i915/dsi: Use unconditional msleep for the panel_on_delay when there is no reset-deassert MIPI-sequence +- dm zoned: select CONFIG_CRC32 +- umount(2): move the flag validity checks first +- IB/mlx5: Fix error unwinding when set_has_smi_cap fails +- RDMA/mlx5: Fix wrong free of blue flame register on error +- bnxt_en: Improve stats context resource accounting with RDMA driver loaded. +- RDMA/usnic: Fix memleak in find_free_vf_and_create_qp_grp +- RDMA/restrack: Don't treat as an error allocation ID wrapping +- ext4: fix superblock checksum failure when setting password salt +- scsi: ufs: Fix possible power drain during system suspend +- NFS: nfs_igrab_and_active must first reference the superblock +- NFS: nfs_delegation_find_inode_server must first reference the superblock +- NFS/pNFS: Fix a leak of the layout 'plh_outstanding' counter +- NFS/pNFS: Don't leak DS commits in pnfs_generic_retry_commit() +- NFS/pNFS: Don't call pnfs_free_bucket_lseg() before removing the request +- NFS: Adjust fs_context error logging +- pNFS: Stricter ordering of layoutget and layoutreturn +- pNFS: Mark layout for return if return-on-close was not sent +- pNFS: We want return-on-close to complete when evicting the inode +- NFS4: Fix use-after-free in trace_event_raw_event_nfs4_set_lock +- nvme-tcp: Fix warning with CONFIG_DEBUG_PREEMPT +- nvme-tcp: fix possible data corruption with bio merges +- nvme: don't intialize hwmon for discovery controllers +- nvmet-rdma: Fix NULL deref when setting pi_enable and traddr INADDR_ANY +- ASoC: Intel: fix error code cnl_set_dsp_D0() +- ASoC: meson: axg-tdmin: fix axg skew offset +- ASoC: meson: axg-tdm-interface: fix loopback +- dump_common_audit_data(): fix racy accesses to ->d_name +- perf intel-pt: Fix 'CPU too large' error +- mm: don't put pinned pages into the swap cache +- mm: don't play games with pinned pages in clear_page_refs +- mm: fix clear_refs_write locking +- blk-mq-debugfs: Add decode for BLK_MQ_F_TAG_HCTX_SHARED +- net/mlx5: E-Switch, fix changing vf VLANID +- net/mlx5: Fix passing zero to 'PTR_ERR' +- net/mlx5e: CT: Use per flow counter when CT flow accounting is enabled +- iommu/vt-d: Update domain geometry in iommu_ops.at(de)tach_dev +- nvme-fc: avoid calling _nvme_fc_abort_outstanding_ios from interrupt context +- cfg80211: select CONFIG_CRC32 +- x86/sev-es: Fix SEV-ES OUT/IN immediate opcode vc handling +- bpf: Save correct stopping point in file seq iteration +- bpf: Simplify task_file_seq_get_next() +- rcu-tasks: Move RCU-tasks initialization to before early_initcall() +- poll: fix performance regression due to out-of-line __put_user() +- ARM: picoxcell: fix missing interrupt-parent properties +- drm/msm: Call msm_init_vram before binding the gpu +- ACPI: scan: add stub acpi_create_platform_device() for !CONFIG_ACPI +- iommu/vt-d: Fix lockdep splat in sva bind()/unbind() +- usb: typec: Fix copy paste error for NVIDIA alt-mode description +- drm/amdgpu: fix potential memory leak during navi12 deinitialization +- drm/amd/pm: fix the failure when change power profile for renoir +- drm/amdgpu: fix a GPU hang issue when remove device +- drm/amd/display: fix sysfs amdgpu_current_backlight_pwm NULL pointer issue +- nvmet-rdma: Fix list_del corruption on queue establishment failure +- nvme: avoid possible double fetch in handling CQE +- nvme-pci: mark Samsung PM1725a as IGNORE_DEV_SUBNQN +- selftests: fix the return value for UDP GRO test +- net: ethernet: fs_enet: Add missing MODULE_LICENSE +- misdn: dsp: select CONFIG_BITREVERSE +- arch/arc: add copy_user_page() to to fix build error on ARC +- bfq: Fix computation of shallow depth +- io_uring: drop file refs after task cancel +- spi: fix the divide by 0 error when calculating xfer waiting time +- kconfig: remove 'kvmconfig' and 'xenconfig' shorthands +- lib/raid6: Let $(UNROLL) rules work with macOS userland +- hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values +- habanalabs: Fix memleak in hl_device_reset +- spi: altera: fix return value for altera_spi_txrx() +- staging: spmi: hisi-spmi-controller: Fix some error handling paths +- habanalabs: register to pci shutdown callback +- habanalabs/gaudi: retry loading TPC f/w on -EINTR +- habanalabs: adjust pci controller init to new firmware +- ARM: dts: ux500/golden: Set display max brightness +- ethernet: ucc_geth: fix definition and size of ucc_geth_tx_global_pram +- regulator: bd718x7: Add enable times +- btrfs: fix transaction leak and crash after RO remount caused by qgroup rescan +- btrfs: merge critical sections of discard lock in workfn +- btrfs: fix async discard stall +- ath11k: qmi: try to allocate a big block of DMA memory first +- netfilter: ipset: fixes possible oops in mtype_resize +- ath11k: fix crash caused by NULL rx_channel +- ARM: omap2: pmic-cpcap: fix maximum voltage to be consistent with defaults on xt875 +- ARC: build: move symlink creation to arch/arc/Makefile to avoid race +- ARC: build: add boot_targets to PHONY +- ARC: build: add uImage.lzma to the top-level target +- ARC: build: remove non-existing bootpImage from KBUILD_IMAGE +- io_uring: drop mm and files after task_work_run +- io_uring: don't take files/mm for a dead task +- ext4: don't leak old mountpoint samples +- btrfs: tree-checker: check if chunk item end overflows +- r8152: Add Lenovo Powered USB-C Travel Hub +- stmmac: intel: change all EHL/TGL to auto detect phy addr +- dm crypt: defer decryption to a tasklet if interrupts disabled +- dm crypt: do not call bio_endio() from the dm-crypt tasklet +- dm crypt: do not wait for backlogged crypto request completion in softirq +- dm crypt: use GFP_ATOMIC when allocating crypto requests from softirq +- dm integrity: fix the maximum number of arguments +- dm integrity: fix flush with external metadata device +- dm snapshot: flush merged data before committing metadata +- dm raid: fix discard limits for raid1 +- mm/process_vm_access.c: include compat.h +- mm/hugetlb: fix potential missing huge page size info +- mm/vmalloc.c: fix potential memory leak +- compiler.h: Raise minimum version of GCC to 5.1 for arm64 +- xen/privcmd: allow fetching resource sizes +- ACPI: scan: Harden acpi_device_add() against device ID overflows +- RDMA/ocrdma: Fix use after free in ocrdma_dealloc_ucontext_pd() +- MIPS: relocatable: fix possible boot hangup with KASLR enabled +- MIPS: Fix malformed NT_FILE and NT_SIGINFO in 32bit coredumps +- MIPS: boot: Fix unaligned access with CONFIG_MIPS_RAW_APPENDED_DTB +- mips: lib: uncached: fix non-standard usage of variable 'sp' +- mips: fix Section mismatch in reference +- riscv: Fix KASAN memory mapping. +- riscv: Fixup CONFIG_GENERIC_TIME_VSYSCALL +- riscv: return -ENOSYS for syscall -1 +- riscv: Drop a duplicated PAGE_KERNEL_EXEC +- cifs: fix interrupted close commands +- cifs: check pointer before freeing +- ext4: fix wrong list_splice in ext4_fc_cleanup +- ext4: use IS_ERR instead of IS_ERR_OR_NULL and set inode null when IS_ERR +- tools/bootconfig: Add tracing_on support to helper scripts +- tracing/kprobes: Do the notrace functions check without kprobes on ftrace +- drm/bridge: sii902x: Enable I/O and core VCC supplies if present +- dt-bindings: display: sii902x: Add supply bindings +- drm/bridge: sii902x: Refactor init code into separate function +- drm/i915/backlight: fix CPU mode backlight takeover on LPT +- drm/i915/gt: Limit VFE threads based on GT +- drm/i915: Allow the sysadmin to override security mitigations +- drm/amdgpu: add new device id for Renior +- Revert "drm/amd/display: Fixed Intermittent blue screen on OLED panel" +- drm/amdgpu: fix DRM_INFO flood if display core is not supported (bug 210921) +- drm/amdgpu: add green_sardine device id (v2) +- x86/hyperv: check cpu mask after interrupt has been disabled +- ASoC: dapm: remove widget from dirty list on free +- ASoC: AMD Renoir - add DMI entry for Lenovo ThinkPad X395 +- ALSA: doc: Fix reference to mixart.rst +- ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machines +- btrfs: prevent NULL pointer dereference in extent_io_tree_panic +- btrfs: reloc: fix wrong file extent type check to avoid false ENOENT +- sched/rt.c: pick and check task if double_lock_balance() unlock the rq +- sched/deadline.c: pick and check task if double_lock_balance() unlock the rq +- tools headers UAPI: Sync linux/fscrypt.h with the kernel sources +- drm/panfrost: Remove unused variables in panfrost_job_close() +- regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init() +- net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed packet +- block: fix use-after-free in disk_part_iter_next +- can: isotp: isotp_getname(): fix kernel information leak +- block/rnbd-clt: avoid module unload race with close confirmation +- xsk: Rollback reservation at NETDEV_TX_BUSY +- xsk: Fix race in SKB mode transmit with shared cq +- KVM: arm64: Don't access PMCR_EL0 when no PMU is available +- selftests: fib_nexthops: Fix wrong mausezahn invocation +- net: mvneta: fix error message when MTU too large for XDP +- drm/i915/dp: Track pm_qos per connector +- net: mvpp2: disable force link UP during port init procedure +- regulator: qcom-rpmh-regulator: correct hfsmps515 definition +- arm64: cpufeature: remove non-exist CONFIG_KVM_ARM_HOST +- wan: ds26522: select CONFIG_BITREVERSE +- regmap: debugfs: Fix a memory leak when calling regmap_attach_dev +- net/mlx5e: Fix two double free cases +- net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups +- nvme-tcp: Fix possible race of io_work and direct send +- bpftool: Fix compilation failure for net.o with older glibc +- iommu/intel: Fix memleak in intel_irq_remapping_alloc +- iommu/vt-d: Fix misuse of ALIGN in qi_flush_piotlb() +- zonefs: select CONFIG_CRC32 +- lightnvm: select CONFIG_CRC32 +- block: rsxx: select CONFIG_CRC32 +- wil6210: select CONFIG_CRC32 +- phy: dp83640: select CONFIG_CRC32 +- qed: select CONFIG_CRC32 +- arm64: mm: Fix ARCH_LOW_ADDRESS_LIMIT when !CONFIG_ZONE_DMA +- dmaengine: xilinx_dma: fix mixed_enum_type coverity warning +- dmaengine: xilinx_dma: fix incompatible param warning in _child_probe() +- dmaengine: xilinx_dma: check dma_async_device_register return value +- dmaengine: milbeaut-xdmac: Fix a resource leak in the error handling path of the probe function +- dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling path of the probe function +- interconnect: qcom: fix rpmh link failures +- interconnect: imx: Add a missing of_node_put after of_device_is_available +- bcache: set bcache device into read-only mode for BCH_FEATURE_INCOMPAT_OBSO_LARGE_BUCKET +- i2c: mediatek: Fix apdma and i2c hand-shake timeout +- i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated +- spi: stm32: FIFO threshold level - fix align packet size +- spi: spi-geni-qcom: Fix geni_spi_isr() NULL dereference in timeout case +- cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get() +- spi: spi-geni-qcom: Fail new xfers if xfer/cancel/abort pending +- can: kvaser_pciefd: select CONFIG_CRC32 +- can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop() +- can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver +- selftests/bpf: Clarify build error if no vmlinux +- dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk() +- i2c: sprd: use a specific timeout to avoid system hang up issue +- ARM: OMAP2+: omap_device: fix idling of devices during probe +- fanotify: Fix sys_fanotify_mark() on native x86-32 +- HID: wacom: Fix memory leakage caused by kfifo_alloc +- ionic: start queues before announcing link up +- scsi: lpfc: Fix variable 'vport' set but not used in lpfc_sli4_abts_err_handler() +- net/mlx5: Check if lag is supported before creating one +- net/mlx5e: In skb build skip setting mark in switchdev mode +- net/mlx5e: ethtool, Fix restriction of autoneg with 56G +- net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address +- net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE +- s390/qeth: fix L2 header access in qeth_l3_osa_features_check() +- s390/qeth: fix locking for discipline setup / removal +- s390/qeth: fix deadlock during recovery +- nexthop: Bounce NHA_GATEWAY in FDB nexthop groups +- nexthop: Unlink nexthop group entry in error path +- nexthop: Fix off-by-one error in error path +- octeontx2-af: fix memory leak of lmac and lmac->name +- chtls: Fix chtls resources release sequence +- chtls: Added a check to avoid NULL pointer dereference +- chtls: Replace skb_dequeue with skb_peek +- chtls: Avoid unnecessary freeing of oreq pointer +- chtls: Fix panic when route to peer not configured +- chtls: Remove invalid set_tcb call +- chtls: Fix hardware tid leak +- net: ip: always refragment ip defragmented packets +- net: fix pmtu check in nopmtudisc mode +- tools: selftests: add test for changing routes with PTMU exceptions +- net: ipv6: fib: flush exceptions when purging route +- ptp: ptp_ines: prevent build when HAS_IOMEM is not set +- net: bareudp: add missing error handling for bareudp_link_config() +- net/sonic: Fix some resource leaks in error handling paths +- net: vlan: avoid leaks on register_vlan_dev() failures +- net: stmmac: dwmac-sun8i: Balance syscon (de)initialization +- net: stmmac: dwmac-sun8i: Balance internal PHY power +- net: stmmac: dwmac-sun8i: Balance internal PHY resource references +- net: stmmac: dwmac-sun8i: Fix probe error handling +- net: hns3: fix a phy loopback fail issue +- net: hns3: fix the number of queues actually used by ARQ +- net: hns3: fix incorrect handling of sctp6 rss tuple +- net: cdc_ncm: correct overhead in delayed_ndp_size +- btrfs: shrink delalloc pages instead of full inodes +- btrfs: fix deadlock when cloning inline extent and low on free metadata space +- btrfs: skip unnecessary searches for xattrs when logging an inode +- scsi: ufs: Fix -Wsometimes-uninitialized warning +- io_uring: Fix return value from alloc_fixed_file_ref_node +- drm/panfrost: Don't corrupt the queue mutex on open/close +- iommu/arm-smmu-qcom: Initialize SCTLR of the bypass context +- RDMA/hns: Avoid filling sl in high 3 bits of vlan_id +- io_uring: patch up IOPOLL overflow_flush sync +- io_uring: limit {io|sq}poll submit locking scope +- io_uring: synchronise IOPOLL on task_submit fail +- powerpc/32s: Fix RTAS machine check with VMAP stack +- ARM: 9031/1: hyp-stub: remove unused .L__boot_cpu_mode_offset symbol +- ARM: kvm: replace open coded VA->PA calculations with adr_l call +- ARM: head.S: use PC relative insn sequence to calculate PHYS_OFFSET +- ARM: sleep.S: use PC-relative insn sequence for sleep_save_sp/mpidr_hash +- ARM: head: use PC-relative insn sequence for __smp_alt +- ARM: kernel: use relative references for UP/SMP alternatives +- ARM: head.S: use PC-relative insn sequence for secondary_data +- ARM: head-common.S: use PC-relative insn sequence for idmap creation +- ARM: head-common.S: use PC-relative insn sequence for __proc_info +- ARM: efistub: replace adrl pseudo-op with adr_l macro invocation +- ARM: p2v: reduce p2v alignment requirement to 2 MiB +- ARM: p2v: switch to MOVW for Thumb2 and ARM/LPAE +- ARM: p2v: simplify __fixup_pv_table() +- ARM: p2v: use relative references in patch site arrays +- ARM: p2v: drop redundant 'type' argument from __pv_stub +- ARM: p2v: factor out BE8 handling +- ARM: p2v: factor out shared loop processing +- ARM: p2v: move patching code to separate assembler source file +- ARM: module: add support for place relative relocations +- ARM: assembler: introduce adr_l, ldr_l and str_l macros +- scsi: target: Fix XCOPY NAA identifier lookup +- rtlwifi: rise completion at the last step of firmware callback +- xsk: Fix memory leak for failed bind +- KVM: x86: fix shift out of bounds reported by UBSAN +- x86/mtrr: Correct the range check before performing MTRR type lookups +- dmaengine: idxd: off by one in cleanup code +- netfilter: nft_dynset: report EOPNOTSUPP on missing set feature +- netfilter: xt_RATEEST: reject non-null terminated string from userspace +- netfilter: ipset: fix shift-out-of-bounds in htable_bits() +- netfilter: x_tables: Update remaining dereference to RCU +- ARM: dts: OMAP3: disable AES on N950/N9 +- net/mlx5e: Fix SWP offsets when vlan inserted by driver +- bcache: introduce BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE for large bucket +- bcache: check unsupported feature sets for bcache register +- bcache: fix typo from SUUP to SUPP in features.h +- drm/i915: clear the gpu reloc batch +- drm/i915: clear the shadow batch +- arm64: link with -z norelro for LLD or aarch64-elf +- dmabuf: fix use-after-free of dmabuf's file->f_inode +- Revert "device property: Keep secondary firmware node secondary by type" +- btrfs: send: fix wrong file path when there is an inode with a pending rmdir +- btrfs: qgroup: don't try to wait flushing if we're already holding a transaction +- iommu/vt-d: Move intel_iommu info from struct intel_svm to struct intel_svm_dev +- ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256. +- ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7 +- ALSA: hda/realtek: Add mute LED quirk for more HP laptops +- ALSA: hda/realtek - Fix speaker volume control on Lenovo C940 +- ALSA: hda/conexant: add a new hda codec CX11970 +- ALSA: hda/via: Fix runtime PM for Clevo W35xSS +- blk-iocost: fix NULL iocg deref from racing against initialization +- x86/resctrl: Don't move a task to the same resource group +- x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR +- KVM: x86/mmu: Ensure TDP MMU roots are freed after yield +- kvm: check tlbs_dirty directly +- KVM: x86/mmu: Get root level from walkers when retrieving MMIO SPTE +- KVM: x86/mmu: Use -1 to flag an undefined spte in get_mmio_spte() +- x86/mm: Fix leak of pmd ptlock +- mm: make wait_on_page_writeback() wait for multiple pending writebacks +- hwmon: (amd_energy) fix allocation of hwmon_channel_info config +- USB: serial: keyspan_pda: remove unused variable +- usb: gadget: configfs: Fix use-after-free issue with udc_name +- usb: gadget: configfs: Preserve function ordering after bind failure +- usb: gadget: Fix spinlock lockup on usb_function_deactivate +- USB: gadget: legacy: fix return error code in acm_ms_bind() +- usb: gadget: u_ether: Fix MTU size mismatch with RX packet size +- usb: gadget: function: printer: Fix a memory leak for interface descriptor +- usb: gadget: f_uac2: reset wMaxPacketSize +- USB: Gadget: dummy-hcd: Fix shift-out-of-bounds bug +- usb: gadget: select CONFIG_CRC32 +- ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks +- USB: usblp: fix DMA to stack +- USB: yurex: fix control-URB timeout handling +- USB: serial: option: add Quectel EM160R-GL +- USB: serial: option: add LongSung M5710 module support +- USB: serial: iuu_phoenix: fix DMA from stack +- usb: uas: Add PNY USB Portable SSD to unusual_uas +- usb: usbip: vhci_hcd: protect shift size +- USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set +- usb: chipidea: ci_hdrc_imx: add missing put_device() call in usbmisc_get_init_data() +- usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression +- usb: dwc3: ulpi: Replace CPU-based busyloop with Protocol-based one +- usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion +- usb: dwc3: gadget: Clear wait flag on dequeue +- usb: dwc3: gadget: Restart DWC3 gadget when enabling pullup +- usb: dwc3: meson-g12a: disable clk on error handling path in probe +- usb: typec: intel_pmc_mux: Configure HPD first for HPD+IRQ request +- USB: cdc-wdm: Fix use after free in service_outstanding_interrupt(). +- USB: cdc-acm: blacklist another IR Droid device +- usb: gadget: enable super speed plus +- staging: mt7621-dma: Fix a resource leak in an error handling path +- Staging: comedi: Return -EFAULT if copy_to_user() fails +- powerpc: Handle .text.{hot,unlikely}.* in linker script +- crypto: asym_tpm: correct zero out potential secrets +- crypto: ecdh - avoid buffer overflow in ecdh_set_secret() +- scsi: block: Do not accept any requests while suspended +- scsi: block: Remove RQF_PREEMPT and BLK_MQ_REQ_PREEMPT +- Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close +- kbuild: don't hardcode depmod path +- scsi: ufs: Clear UAC for FFU and RPMB LUNs +- depmod: handle the case of /sbin/depmod without /sbin in PATH +- lib/genalloc: fix the overflow when size is too big +- local64.h: make mandatory +- scsi: core: Only process PM requests if rpm_status != RPM_ACTIVE +- scsi: scsi_transport_spi: Set RQF_PM for domain validation commands +- scsi: ide: Mark power management requests with RQF_PM instead of RQF_PREEMPT +- scsi: ide: Do not set the RQF_PREEMPT flag for sense requests +- scsi: block: Introduce BLK_MQ_REQ_PM +- scsi: ufs-pci: Enable UFSHCD_CAP_RPM_AUTOSUSPEND for Intel controllers +- scsi: ufs-pci: Fix recovery from hibernate exit errors for Intel controllers +- scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk ->poweroff() +- scsi: ufs-pci: Fix restore from S4 for Intel controllers +- scsi: ufs: Fix wrong print message in dev_err() +- workqueue: Kick a worker based on the actual activation of delayed works +- block: add debugfs stanza for QUEUE_FLAG_NOWAIT +- selftests/vm: fix building protection keys test +- stmmac: intel: Add PCI IDs for TGL-H platform +- selftests: mlxsw: Set headroom size of correct port +- net: usb: qmi_wwan: add Quectel EM160R-GL +- ibmvnic: fix: NULL pointer dereference. +- CDC-NCM: remove "connected" log message +- net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access +- net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs +- r8169: work around power-saving bug on some chip versions +- vhost_net: fix ubuf refcount incorrectly when sendmsg fails +- bareudp: Fix use of incorrect min_headroom size +- bareudp: set NETIF_F_LLTX flag +- net: hdlc_ppp: Fix issues when mod_timer is called while timer is running +- erspan: fix version 1 check in gre_parse_header() +- net: hns: fix return value check in __lb_other_process() +- net: sched: prevent invalid Scell_log shift count +- ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst() +- bnxt_en: Fix AER recovery. +- net: mvpp2: fix pkt coalescing int-threshold configuration +- bnxt_en: Check TQM rings for maximum supported value. +- e1000e: Export S0ix flags to ethtool +- Revert "e1000e: disable s0ix entry and exit flows for ME systems" +- e1000e: bump up timeout to wait when ME un-configures ULP mode +- e1000e: Only run S0ix flows if shutdown succeeded +- tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS +- net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered +- net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc +- net-sysfs: take the rtnl lock when storing xps_rxqs +- net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc +- net-sysfs: take the rtnl lock when storing xps_cpus +- net: ethernet: Fix memleak in ethoc_probe +- net/ncsi: Use real net-device for response handler +- virtio_net: Fix recursive call to cpus_read_lock() +- qede: fix offload for IPIP tunnel packets +- net: ethernet: mvneta: Fix error handling in mvneta_probe +- ibmvnic: continue fatal error reset after passive init +- ibmvnic: fix login buffer memory leak +- net: stmmac: dwmac-meson8b: ignore the second clock input +- net: mvpp2: Fix GoP port 3 Networking Complex Control configurations +- atm: idt77252: call pci_disable_device() on error path +- ionic: account for vlan tag len in rx buffer len +- ethernet: ucc_geth: set dev->max_mtu to 1518 +- ethernet: ucc_geth: fix use-after-free in ucc_geth_remove() +- net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE +- net: mvpp2: prs: fix PPPoE with ipv6 packet parse +- net: mvpp2: Add TCAM entry to drop flow control pause frames +- net/sched: sch_taprio: ensure to reset/destroy all child qdiscs +- iavf: fix double-release of rtnl_lock +- i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs +- mwifiex: Fix possible buffer overflows in mwifiex_cmd_802_11_ad_hoc_start +- exec: Transform exec_update_mutex into a rw_semaphore +- rwsem: Implement down_read_interruptible +- rwsem: Implement down_read_killable_nested +- perf: Break deadlock involving exec_update_mutex +- fuse: fix bad inode +- RDMA/siw,rxe: Make emulated devices virtual in the device tree +- RDMA/core: remove use of dma_virt_ops +- scsi: ufs: Re-enable WriteBooster after device reset +- scsi: ufs: Allow an error return value from ->device_reset() +- drm/i915/tgl: Fix Combo PHY DPLL fractional divider for 38.4MHz ref clock +- ALSA: hda/hdmi: Fix incorrect mutex unlock in silent_stream_disable() +- ALSA: hda/realtek - Modify Dell platform name +- Bluetooth: Fix attempting to set RPA timeout when unsupported +- kdev_t: always inline major/minor helper functions +- dt-bindings: rtc: add reset-source property +- rtc: pcf2127: only use watchdog when explicitly available +- rtc: pcf2127: move watchdog initialisation to a separate function +- Revert "mtd: spinand: Fix OOB read" +- Revert "drm/amd/display: Fix memory leaks in S3 resume" +- ext4: fix bug for rename with RENAME_WHITEOUT +- device-dax: Fix range release +- ext4: avoid s_mb_prefetch to be zero in individual scenarios +- dm verity: skip verity work if I/O error when system is shutting down +- ALSA: pcm: Clear the full allocated memory at hw_params +- io_uring: remove racy overflow list fast checks +- s390: always clear kernel stack backchain before calling functions +- tick/sched: Remove bogus boot "safety" check +- drm/amd/display: updated wm table for Renoir +- ceph: fix inode refcount leak when ceph_fill_inode on non-I_NEW inode fails +- NFSv4.2: Don't error when exiting early on a READ_PLUS buffer overflow +- um: ubd: Submit all data segments atomically +- um: random: Register random as hwrng-core device +- watchdog: rti-wdt: fix reference leak in rti_wdt_probe +- fs/namespace.c: WARN if mnt_count has become negative +- powerpc/64: irq replay remove decrementer overflow check +- module: delay kobject uevent until after module init call +- f2fs: fix race of pending_pages in decompression +- f2fs: avoid race condition for shrinker count +- NFSv4: Fix a pNFS layout related use-after-free race when freeing the inode +- i3c master: fix missing destroy_workqueue() on error in i3c_master_register +- powerpc: sysdev: add missing iounmap() on error in mpic_msgr_probe() +- rtc: pl031: fix resource leak in pl031_probe +- quota: Don't overflow quota file offsets +- module: set MODULE_STATE_GOING state when a module fails to load +- rtc: sun6i: Fix memleak in sun6i_rtc_clk_init +- io_uring: check kthread stopped flag when sq thread is unparked +- fcntl: Fix potential deadlock in send_sig{io, urg}() +- ext4: check for invalid block size early when mounting a file system +- bfs: don't use WARNING: string when it's just info. +- ALSA: rawmidi: Access runtime->avail always in spinlock +- ALSA: seq: Use bool for snd_seq_queue internal flags +- f2fs: fix shift-out-of-bounds in sanity_check_raw_super() +- media: gp8psk: initialize stats at power control logic +- misc: vmw_vmci: fix kernel info-leak by initializing dbells in vmci_ctx_get_chkpt_doorbells() +- reiserfs: add check for an invalid ih_entry_count +- fbcon: Disable accelerated scrolling +- Bluetooth: hci_h5: close serdev device and free hu in h5_close +- scsi: cxgb4i: Fix TLS dependency +- zlib: move EXPORT_SYMBOL() and MODULE_LICENSE() out of dfltcc_syms.c +- cgroup: Fix memory leak when parsing multiple source parameters +- tools headers UAPI: Sync linux/const.h with the kernel headers +- uapi: move constants from to +- io_uring: fix io_sqe_files_unregister() hangs +- io_uring: add a helper for setting a ref node +- io_uring: use bottom half safe lock for fixed file data +- io_uring: don't assume mm is constant across submits +- lib/zlib: fix inflating zlib streams on s390 +- mm: memmap defer init doesn't work as expected +- mm/hugetlb: fix deadlock in hugetlb_cow error path +- scsi: block: Fix a race in the runtime power management code +- opp: Call the missing clk_put() on error +- opp: fix memory leak in _allocate_opp_table +- spi: dw-bt1: Fix undefined devm_mux_control_get symbol +- jffs2: Fix NULL pointer dereference in rp_size fs option parsing +- jffs2: Allow setting rp_size to zero during remounting +- io_uring: close a small race gap for files cancel +- drm/amd/display: Add get_dig_frontend implementation for DCEx +- md/raid10: initialize r10_bio->read_slot before use. +- ethtool: fix string set id check +- ethtool: fix error paths in ethnl_set_channels() +- mptcp: fix security context on server socket +- net/sched: sch_taprio: reset child qdiscs before freeing them + +* Fri Jan 29 2021 Yuan Zhichang - 5.10.0-1.0.0.10 +- Add the option of "with_perf" +- Output jvmti plug-in as part of perf building + +* Tue Jan 26 2021 Chunsheng Luo - 5.10.0-1.0.0.9 +- split from kernel-devel to kernel-headers and kernel-devel + +* Tue Jan 12 2021 Xie XiuQi - 5.10.0-1.0.0.8 +- kvm: debugfs: Export x86 kvm exits to vcpu_stat +- kvm: debugfs: aarch64 export cpu time related items to debugfs +- kvm: debugfs: export remaining aarch64 kvm exit reasons to debugfs +- kvm: debugfs: Export vcpu stat via debugfs +- RISCV: KVM: fix bug in migration +- RISC-V: Enable KVM for RV64 and RV32 +- RISC-V: KVM: Add MAINTAINERS entry +- RISC-V: KVM: Document RISC-V specific parts of KVM API +- RISC-V: KVM: Add SBI v0.1 support +- RISC-V: KVM: Implement ONE REG interface for FP registers +- RISC-V: KVM: FP lazy save/restore +- RISC-V: KVM: Add timer functionality +- RISC-V: KVM: Implement MMU notifiers +- RISC-V: KVM: Implement stage2 page table programming +- RISC-V: KVM: Implement VMID allocator +- RISC-V: KVM: Handle WFI exits for VCPU +- RISC-V: KVM: Handle MMIO exits for VCPU +- RISC-V: KVM: Implement VCPU world-switch +- RISC-V: KVM: Implement KVM_GET_ONE_REG/KVM_SET_ONE_REG ioctls +- RISC-V: KVM: Implement VCPU interrupts and requests handling +- RISC-V: KVM: Implement VCPU create, init and destroy functions +- RISC-V: Add initial skeletal KVM support +- RISC-V: Add hypervisor extension related CSR defines +- RISC-V: Enable drivers for Microchip PolarFire ICICLE board +- RISC-V: Initial DTS for Microchip ICICLE board +- RISC-V: Add Microchip PolarFire kconfig option +- Microchip Polarfire SoC Clock Driver +- RISC-V: Enable CPU Hotplug in defconfigs +- Revert "riscv: Use latest system call ABI" +- RISC-V: Add fragmented config for debug options +- x86/CPU/AMD: Save AMD NodeId as cpu_die_id +- drm/edid: fix objtool warning in drm_cvt_modes() +- null_blk: Fail zone append to conventional zones +- null_blk: Fix zone size initialization +- Revert: "ring-buffer: Remove HAVE_64BIT_ALIGNED_ACCESS" +- rtc: ep93xx: Fix NULL pointer dereference in ep93xx_rtc_read_time +- thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has changed +- remoteproc: sysmon: Ensure remote notification ordering +- regulator: axp20x: Fix DLDO2 voltage control register mask for AXP22x +- PCI: Fix pci_slot_release() NULL pointer dereference +- of: fix linker-section match-table corruption +- mt76: add back the SUPPORTS_REORDERING_BUFFER flag +- tracing: Disable ftrace selftests when any tracer is running +- platform/x86: intel-vbtn: Allow switch events on Acer Switch Alpha 12 +- libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels +- memory: renesas-rpc-if: Fix unbalanced pm_runtime_enable in rpcif_{enable,disable}_rpm +- memory: renesas-rpc-if: Return correct value to the caller of rpcif_manual_xfer() +- memory: renesas-rpc-if: Fix a node reference leak in rpcif_probe() +- memory: jz4780_nemc: Fix an error pointer vs NULL check in probe() +- xenbus/xenbus_backend: Disallow pending watch messages +- xen/xenbus: Count pending messages for each watch +- xen/xenbus/xen_bus_type: Support will_handle watch callback +- xen/xenbus: Add 'will_handle' callback support in xenbus_watch_path() +- xen/xenbus: Allow watches discard events before queueing +- xen-blkback: set ring->xenblkd to NULL after kthread_stop() +- driver: core: Fix list corruption after device_del() +- dma-buf/dma-resv: Respect num_fences when initializing the shared fence list. +- device-dax/core: Fix memory leak when rmmod dax.ko +- counter: microchip-tcb-capture: Fix CMR value check +- clk: tegra: Do not return 0 on failure +- clk: mvebu: a3700: fix the XTAL MODE pin to MPP1_9 +- clk: ingenic: Fix divider calculation with div tables +- pinctrl: sunxi: Always call chained_irq_{enter, exit} in sunxi_pinctrl_irq_handler +- md/cluster: fix deadlock when node is doing resync job +- md/cluster: block reshape with remote resync job +- iio:adc:ti-ads124s08: Fix alignment and data leak issues. +- iio:adc:ti-ads124s08: Fix buffer being too long. +- iio:imu:bmi160: Fix alignment and data leak issues +- iio:imu:bmi160: Fix too large a buffer. +- iio:pressure:mpl3115: Force alignment of buffer +- iio:magnetometer:mag3110: Fix alignment and data leak issues. +- iio:light:st_uvis25: Fix timestamp alignment and prevent data leak. +- iio:light:rpr0521: Fix timestamp alignment and prevent data leak. +- iio: imu: st_lsm6dsx: fix edge-trigger interrupts +- iio: adc: rockchip_saradc: fix missing clk_disable_unprepare() on error in rockchip_saradc_resume +- iio: buffer: Fix demux update +- openat2: reject RESOLVE_BENEATH|RESOLVE_IN_ROOT +- scsi: lpfc: Re-fix use after free in lpfc_rq_buf_free() +- scsi: lpfc: Fix scheduling call while in softirq context in lpfc_unreg_rpi +- scsi: lpfc: Fix invalid sleeping context in lpfc_sli4_nvmet_alloc() +- scsi: qla2xxx: Fix crash during driver load on big endian machines +- mtd: rawnand: meson: fix meson_nfc_dma_buffer_release() arguments +- mtd: rawnand: qcom: Fix DMA sync on FLASH_STATUS register read +- mtd: core: Fix refcounting for unpartitioned MTDs +- mtd: parser: cmdline: Fix parsing of part-names with colons +- mtd: spinand: Fix OOB read +- soc: qcom: smp2p: Safely acquire spinlock without IRQs +- spi: atmel-quadspi: Fix AHB memory accesses +- spi: atmel-quadspi: Disable clock in probe error path +- spi: mt7621: Don't leak SPI master in probe error path +- spi: mt7621: Disable clock in probe error path +- spi: synquacer: Disable clock in probe error path +- spi: st-ssc4: Fix unbalanced pm_runtime_disable() in probe error path +- spi: spi-qcom-qspi: Fix use-after-free on unbind +- spi: spi-geni-qcom: Fix use-after-free on unbind +- spi: sc18is602: Don't leak SPI master in probe error path +- spi: rpc-if: Fix use-after-free on unbind +- spi: rb4xx: Don't leak SPI master in probe error path +- spi: pic32: Don't leak DMA channels in probe error path +- spi: npcm-fiu: Disable clock in probe error path +- spi: mxic: Don't leak SPI master in probe error path +- spi: gpio: Don't leak SPI master in probe error path +- spi: fsl: fix use of spisel_boot signal on MPC8309 +- spi: davinci: Fix use-after-free on unbind +- spi: ar934x: Don't leak SPI master in probe error path +- spi: spi-mtk-nor: Don't leak SPI master in probe error path +- spi: atmel-quadspi: Fix use-after-free on unbind +- spi: spi-sh: Fix use-after-free on unbind +- spi: pxa2xx: Fix use-after-free on unbind +- iio: ad_sigma_delta: Don't put SPI transfer buffer on the stack +- drm/i915: Fix mismatch between misplaced vma check and vma insert +- drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor() +- drm/amd/display: Fix memory leaks in S3 resume +- drm/amdgpu: only set DP subconnector type on DP and eDP connectors +- platform/x86: mlx-platform: remove an unused variable +- drm/panfrost: Move the GPU reset bits outside the timeout handler +- drm/panfrost: Fix job timeout handling +- jfs: Fix array index bounds check in dbAdjTree +- fsnotify: fix events reported to watching parent and child +- inotify: convert to handle_inode_event() interface +- fsnotify: generalize handle_inode_event() +- jffs2: Fix ignoring mounting options problem during remounting +- jffs2: Fix GC exit abnormally +- ubifs: wbuf: Don't leak kernel memory to flash +- SMB3.1.1: do not log warning message if server doesn't populate salt +- SMB3.1.1: remove confusing mount warning when no SPNEGO info on negprot rsp +- SMB3: avoid confusing warning message on mount to Azure +- ceph: fix race in concurrent __ceph_remove_cap invocations +- um: Fix time-travel mode +- um: Remove use of asprinf in umid.c +- ima: Don't modify file descriptor mode on the fly +- ovl: make ioctl() safe +- powerpc/powernv/memtrace: Fix crashing the kernel when enabling concurrently +- powerpc/powernv/memtrace: Don't leak kernel memory to user space +- powerpc/powernv/npu: Do not attempt NPU2 setup on POWER8NVL NPU +- powerpc/mm: Fix verification of MMU_FTR_TYPE_44x +- powerpc/8xx: Fix early debug when SMC1 is relocated +- powerpc/xmon: Change printk() to pr_cont() +- powerpc/feature: Add CPU_FTR_NOEXECUTE to G2_LE +- powerpc/bitops: Fix possible undefined behaviour with fls() and fls64() +- powerpc/rtas: Fix typo of ibm,open-errinjct in RTAS filter +- powerpc: Fix incorrect stw{, ux, u, x} instructions in __set_pte_at +- powerpc/32: Fix vmap stack - Properly set r1 before activating MMU on syscall too +- xprtrdma: Fix XDRBUF_SPARSE_PAGES support +- ARM: tegra: Populate OPP table for Tegra20 Ventana +- ARM: dts: at91: sama5d2: fix CAN message ram offset and size +- ARM: dts: pandaboard: fix pinmux for gpio user button of Pandaboard ES +- iommu/arm-smmu-qcom: Implement S2CR quirk +- iommu/arm-smmu-qcom: Read back stream mappings +- iommu/arm-smmu: Allow implementation specific write_s2cr +- KVM: SVM: Remove the call to sev_platform_status() during setup +- KVM: x86: reinstate vendor-agnostic check on SPEC_CTRL cpuid bits +- KVM: arm64: Introduce handling of AArch32 TTBCR2 traps +- arm64: dts: marvell: keep SMMU disabled by default for Armada 7040 and 8040 +- arm64: dts: ti: k3-am65: mark dss as dma-coherent +- RISC-V: Fix usage of memblock_enforce_memory_limit +- ext4: don't remount read-only with errors=continue on reboot +- ext4: fix deadlock with fs freezing and EA inodes +- ext4: fix a memory leak of ext4_free_data +- ext4: fix an IS_ERR() vs NULL check +- btrfs: fix race when defragmenting leads to unnecessary IO +- btrfs: update last_byte_to_unpin in switch_commit_roots +- btrfs: do not shorten unpin len for caching block groups +- USB: serial: keyspan_pda: fix write unthrottling +- USB: serial: keyspan_pda: fix tx-unthrottle use-after-free +- USB: serial: keyspan_pda: fix write-wakeup use-after-free +- USB: serial: keyspan_pda: fix stalled writes +- USB: serial: keyspan_pda: fix write deadlock +- USB: serial: keyspan_pda: fix dropped unthrottle interrupts +- USB: serial: digi_acceleport: fix write-wakeup deadlocks +- USB: serial: mos7720: fix parallel-port state restore +- dyndbg: fix use before null check +- cpuset: fix race between hotplug work and later CPU offline +- EDAC/amd64: Fix PCI component registration +- EDAC/i10nm: Use readl() to access MMIO registers +- Documentation: seqlock: s/LOCKTYPE/LOCKNAME/g +- m68k: Fix WARNING splat in pmac_zilog driver +- crypto: arm/aes-ce - work around Cortex-A57/A72 silion errata +- crypto: ecdh - avoid unaligned accesses in ecdh_set_secret() +- cpufreq: intel_pstate: Use most recent guaranteed performance values +- powerpc/perf: Exclude kernel samples while counting events in user space. +- perf/x86/intel/lbr: Fix the return type of get_lbr_cycles() +- perf/x86/intel: Fix rtm_abort_event encoding on Ice Lake +- perf/x86/intel: Add event constraint for CYCLE_ACTIVITY.STALLS_MEM_ANY +- z3fold: stricter locking and more careful reclaim +- z3fold: simplify freeing slots +- staging: comedi: mf6x4: Fix AI end-of-conversion detection +- ASoC: AMD Raven/Renoir - fix the PCI probe (PCI revision) +- ASoC: AMD Renoir - add DMI table to avoid the ACP mic probe (broken BIOS) +- ASoC: cx2072x: Fix doubly definitions of Playback and Capture streams +- binder: add flag to clear buffer on txn complete +- s390/dasd: fix list corruption of lcu list +- s390/dasd: fix list corruption of pavgroup group list +- s390/dasd: prevent inconsistent LCU device data +- s390/dasd: fix hanging device offline processing +- s390/idle: fix accounting with machine checks +- s390/idle: add missing mt_cycles calculation +- s390/kexec_file: fix diag308 subcode when loading crash kernel +- s390/smp: perform initial CPU reset also for SMT siblings +- ALSA: core: memalloc: add page alignment for iram +- ALSA: usb-audio: Add alias entry for ASUS PRIME TRX40 PRO-S +- ALSA: usb-audio: Disable sample read check if firmware doesn't give back +- ALSA: usb-audio: Add VID to support native DSD reproduction on FiiO devices +- ALSA: hda/realtek - Supported Dell fixed type headset +- ALSA: hda/realtek: Remove dummy lineout on Acer TravelMate P648/P658 +- ALSA: hda/realtek: Apply jack fixup for Quanta NL3 +- ALSA: hda/realtek: Add quirk for MSI-GP73 +- ALSA/hda: apply jack fixup for the Acer Veriton N4640G/N6640G/N2510G +- ALSA: pcm: oss: Fix a few more UBSAN fixes +- ALSA: hda/realtek - Add supported for more Lenovo ALC285 Headset Button +- ALSA: hda/realtek - Enable headset mic of ASUS Q524UQK with ALC255 +- ALSA: hda/realtek - Enable headset mic of ASUS X430UN with ALC256 +- ALSA: hda/realtek: make bass spk volume adjustable on a yoga laptop +- ALSA: hda/ca0132 - Fix AE-5 rear headphone pincfg. +- ALSA: hda: Fix regressions on clear and reconfig sysfs +- ACPI: PNP: compare the string length in the matching_id() +- Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks" +- PM: ACPI: PCI: Drop acpi_pm_set_bridge_wakeup() +- ACPI: NFIT: Fix input validation of bus-family +- ALSA: hda/ca0132 - Change Input Source enum strings. +- Input: cyapa_gen6 - fix out-of-bounds stack access +- media: ipu3-cio2: Make the field on subdev format V4L2_FIELD_NONE +- media: ipu3-cio2: Validate mbus format in setting subdev format +- media: ipu3-cio2: Serialise access to pad format +- media: ipu3-cio2: Return actual subdev format +- media: ipu3-cio2: Remove traces of returned buffers +- media: netup_unidvb: Don't leak SPI master in probe error path +- media: sunxi-cir: ensure IR is handled when it is continuous +- io_uring: make ctx cancel on exit targeted to actual ctx +- io_uring: fix double io_uring free +- io_uring: fix ignoring xa_store errors +- io_uring: hold uring_lock while completing failed polled io in io_wq_submit_work() +- io_uring: fix 0-iov read buffer select +- io_uring: fix io_wqe->work_list corruption +- media: gspca: Fix memory leak in probe +- vfio/pci/nvlink2: Do not attempt NPU2 setup on POWER8NVL NPU +- vfio/pci: Move dummy_resources_list init in vfio_pci_probe() +- io_uring: always let io_iopoll_complete() complete polled io +- io_uring: fix racy IOPOLL completions +- io_uring: fix io_cqring_events()'s noflush +- proc mountinfo: make splice available again +- Smack: Handle io_uring kernel thread privileges +- io_uring: cancel reqs shouldn't kill overflow list +- io_uring: fix racy IOPOLL flush overflow +- perf probe: Fix memory leak when synthesizing SDT probes +- ARM: 9036/1: uncompress: Fix dbgadtb size parameter name +- ARM: 9044/1: vfp: use undef hook for VFP support detection +- powerpc/smp: Add __init to init_big_cores() +- powerpc/boot: Fix build of dts/fsl +- kconfig: fix return value of do_error_if() +- clk: vc5: Use "idt,voltage-microvolt" instead of "idt,voltage-microvolts" +- clk: sunxi-ng: Make sure divider tables have sentinel +- clk: s2mps11: Fix a resource leak in error handling paths in the probe function +- clk: at91: sam9x60: remove atmel,osc-bypass support +- clk: at91: sama7g5: fix compilation error +- clk: bcm: dvp: Add MODULE_DEVICE_TABLE() +- epoll: check for events when removing a timed out thread from the wait queue +- vhost scsi: fix error return code in vhost_scsi_set_endpoint() +- virtio_ring: Fix two use after free bugs +- virtio_net: Fix error code in probe() +- virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed() +- vdpa/mlx5: Use write memory barrier after updating CQ index +- nfp: move indirect block cleanup to flower app stop callback +- qlcnic: Fix error code in probe +- perf record: Fix memory leak when using '--user-regs=?' to list registers +- tools build: Add missing libcap to test-all.bin target +- io_uring: cancel only requests of current task +- pwm: sun4i: Remove erroneous else branch +- pwm: imx27: Fix overflow for bigger periods +- pwm: lp3943: Dynamically allocate PWM chip base +- pwm: zx: Add missing cleanup in error path +- clk: ti: Fix memleak in ti_fapll_synth_setup +- watchdog: coh901327: add COMMON_CLK dependency +- watchdog: qcom: Avoid context switch in restart handler +- powerpc/32s: Fix cleanup_cpu_mmu_context() compile bug +- libnvdimm/label: Return -ENXIO for no slot in __blk_label_update +- devlink: use _BITUL() macro instead of BIT() in the UAPI header +- net: korina: fix return value +- NFS/pNFS: Fix a typo in ff_layout_resend_pnfs_read() +- block/rnbd-clt: Fix possible memleak +- block/rnbd-clt: Get rid of warning regarding size argument in strlcpy +- net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function +- net: mscc: ocelot: Fix a resource leak in the error handling path of the probe function +- net: bcmgenet: Fix a resource leak in an error handling path in the probe functin +- dpaa2-eth: fix the size of the mapped SGT buffer +- net: dsa: qca: ar9331: fix sleeping function called from invalid context bug +- i40e, xsk: clear the status bits for the next_to_use descriptor +- ice, xsk: clear the status bits for the next_to_use descriptor +- lan743x: fix rx_napi_poll/interrupt ping-pong +- s390/test_unwind: fix CALL_ON_STACK tests +- checkpatch: fix unescaped left brace +- proc: fix lookup in /proc/net subdirectories after setns(2) +- mm: don't wake kswapd prematurely when watermark boosting is disabled +- hugetlb: fix an error code in hugetlb_reserve_pages() +- mm,memory_failure: always pin the page in madvise_inject_error +- mm/vmalloc.c: fix kasan shadow poisoning size +- mm/vmalloc: Fix unlock order in s_stop() +- sparc: fix handling of page table constructor failure +- mm/rmap: always do TTU_IGNORE_ACCESS +- mm: memcg/slab: fix use after free in obj_cgroup_charge +- mm: memcg/slab: fix return of child memcg objcg for root memcg +- mm/gup: combine put_compound_head() and unpin_user_page() +- mm/gup: prevent gup_fast from racing with COW during fork +- mm/gup: reorganize internal_get_user_pages_fast() +- drm/amdgpu: fix regression in vbios reservation handling on headless +- perf test: Fix metric parsing test +- powerpc/ps3: use dma_mapping_error() +- powerpc/perf: Fix Threshold Event Counter Multiplier width for P10 +- drm: mxsfb: Silence -EPROBE_DEFER while waiting for bridge +- nfc: s3fwrn5: Release the nfc firmware +- RDMA/cma: Don't overwrite sgid_attr after device is released +- RDMA/mlx5: Fix MR cache memory leak +- sunrpc: fix xs_read_xdr_buf for partial pages receive +- um: chan_xterm: Fix fd leak +- um: tty: Fix handling of close in tty lines +- um: Monitor error events in IRQ controller +- ubifs: Fix error return code in ubifs_init_authentication() +- watchdog: Fix potential dereferencing of null pointer +- watchdog: sprd: check busy bit before new loading rather than after that +- watchdog: sprd: remove watchdog disable from resume fail path +- watchdog: sirfsoc: Add missing dependency on HAS_IOMEM +- watchdog: armada_37xx: Add missing dependency on HAS_IOMEM +- irqchip/qcom-pdc: Fix phantom irq when changing between rising/falling +- ath11k: Fix incorrect tlvs in scan start command +- gpiolib: irq hooks: fix recursion in gpiochip_irq_unmask +- RDMA/hns: Do shift on traffic class when using RoCEv2 +- RDMA/hns: Normalization the judgment of some features +- RDMA/hns: Limit the length of data copied between kernel and userspace +- dmaengine: ti: k3-udma: Correct normal channel offset when uchan_cnt is not 0 +- irqchip/ti-sci-intr: Fix freeing of irqs +- irqchip/ti-sci-inta: Fix printing of inta id on probe success +- irqchip/alpine-msi: Fix freeing of interrupts on allocation error path +- ASoC: wm_adsp: remove "ctl" from list on error in wm_adsp_create_control() +- mac80211: fix a mistake check for rx_stats update +- mac80211: don't set set TDLS STA bandwidth wider than possible +- crypto: atmel-i2c - select CONFIG_BITREVERSE +- extcon: max77693: Fix modalias string +- fs: Handle I_DONTCACHE in iput_final() instead of generic_drop_inode() +- samples/bpf: Fix possible hang in xdpsock with multiple threads +- mtd: rawnand: gpmi: Fix the random DMA timeout issue +- mtd: rawnand: meson: Fix a resource leak in init +- mtd: rawnand: gpmi: fix reference count leak in gpmi ops +- clk: tegra: Fix duplicated SE clock entry +- clk: qcom: gcc-sc7180: Use floor ops for sdcc clks +- remoteproc/mediatek: unprepare clk if scp_before_load fails +- remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio() +- remoteproc: k3-dsp: Fix return value check in k3_dsp_rproc_of_get_memories() +- remoteproc: qcom: pas: fix error handling in adsp_pds_enable +- remoteproc: qcom: fix reference leak in adsp_start +- remoteproc: q6v5-mss: fix error handling in q6v5_pds_enable +- remoteproc/mtk_scp: surround DT device IDs with CONFIG_OF +- remoteproc/mediatek: change MT8192 CFG register base +- RDMA/uverbs: Fix incorrect variable type +- RDMA/core: Do not indicate device ready when device enablement fails +- ALSA: hda/hdmi: fix silent stream for first playback to DP +- slimbus: qcom: fix potential NULL dereference in qcom_slim_prg_slew() +- powerpc/sstep: Cover new VSX instructions under CONFIG_VSX +- powerpc/sstep: Emulate prefixed instructions only when CPU_FTR_ARCH_31 is set +- can: m_can: m_can_config_endisable(): remove double clearing of clock stop request bit +- clk: renesas: r8a779a0: Fix R and OSC clocks +- erofs: avoid using generic_block_bmap +- iwlwifi: mvm: hook up missing RX handlers +- iwlwifi: dbg-tlv: fix old length in is_trig_data_contained() +- s390/cio: fix use-after-free in ccw_device_destroy_console +- fsi: Aspeed: Add mutex to protect HW access +- bus: fsl-mc: fix error return code in fsl_mc_object_allocate() +- bus: fsl-mc: add back accidentally dropped error check +- misc: pci_endpoint_test: fix return value of error branch +- platform/chrome: cros_ec_spi: Don't overwrite spi::mode +- scsi: qla2xxx: Fix N2N and NVMe connect retry failure +- scsi: qla2xxx: Fix FW initialization error on big endian machines +- x86/kprobes: Restore BTF if the single-stepping is cancelled +- nfs_common: need lock during iterate through the list +- NFSD: Fix 5 seconds delay when doing inter server copy +- nfsd: Fix message level for normal termination +- speakup: fix uninitialized flush_lock +- usb: oxu210hp-hcd: Fix memory leak in oxu_create +- usb: ehci-omap: Fix PM disable depth umbalance in ehci_hcd_omap_probe +- powerpc/mm: sanity_check_fault() should work for all, not only BOOK3S +- ASoC: max98390: Fix error codes in max98390_dsm_init() +- coresight: remove broken __exit annotations +- ASoC: amd: change clk_get() to devm_clk_get() and add missed checks +- drm/mediatek: avoid dereferencing a null hdmi_phy on an error message +- powerpc/powermac: Fix low_sleep_handler with CONFIG_VMAP_STACK +- powerpc/pseries/hibernation: remove redundant cacheinfo update +- powerpc/pseries/hibernation: drop pseries_suspend_begin() from suspend ops +- ARM: 9030/1: entry: omit FP emulation for UND exceptions taken in kernel mode +- platform/x86: mlx-platform: Fix item counter assignment for MSN2700/ComEx system +- platform/x86: mlx-platform: Fix item counter assignment for MSN2700, MSN24xx systems +- scsi: fnic: Fix error return code in fnic_probe() +- seq_buf: Avoid type mismatch for seq_buf_init +- scsi: iscsi: Fix inappropriate use of put_device() +- scsi: pm80xx: Fix error return in pm8001_pci_probe() +- scsi: qedi: Fix missing destroy_workqueue() on error in __qedi_probe +- clk: fsl-sai: fix memory leak +- arm64: dts: meson: g12b: w400: fix PHY deassert timing requirements +- arm64: dts: meson: g12a: x96-max: fix PHY deassert timing requirements +- ARM: dts: meson: fix PHY deassert timing requirements +- arm64: dts: meson: fix PHY deassert timing requirements +- arm64: dts: meson: g12b: odroid-n2: fix PHY deassert timing requirements +- mtd: spi-nor: atmel: fix unlock_all() for AT25FS010/040 +- mtd: spi-nor: atmel: remove global protection flag +- mtd: spi-nor: ignore errors in spi_nor_unlock_all() +- mtd: spi-nor: sst: fix BPn bits for the SST25VF064C +- adm8211: fix error return code in adm8211_probe() +- platform/x86: intel-vbtn: Fix SW_TABLET_MODE always reporting 1 on some HP x360 models +- Bluetooth: btusb: Fix detection of some fake CSR controllers with a bcdDevice val of 0x0134 +- block/rnbd: fix a null pointer dereference on dev->blk_symlink_name +- block/rnbd-clt: Dynamically alloc buffer for pathname & blk_symlink_name +- Bluetooth: sco: Fix crash when using BT_SNDMTU/BT_RCVMTU option +- Bluetooth: btmtksdio: Add the missed release_firmware() in mtk_setup_firmware() +- Bluetooth: btusb: Add the missed release_firmware() in btusb_mtk_setup_firmware() +- spi: dw: Fix error return code in dw_spi_bt1_probe() +- staging: greybus: audio: Fix possible leak free widgets in gbaudio_dapm_free_controls +- staging: bcm2835: fix vchiq_mmal dependencies +- macintosh/adb-iop: Send correct poll command +- macintosh/adb-iop: Always wait for reply message from IOP +- cpufreq: imx: fix NVMEM_IMX_OCOTP dependency +- cpufreq: vexpress-spc: Add missing MODULE_ALIAS +- cpufreq: scpi: Add missing MODULE_ALIAS +- cpufreq: loongson1: Add missing MODULE_ALIAS +- cpufreq: sun50i: Add missing MODULE_DEVICE_TABLE +- cpufreq: st: Add missing MODULE_DEVICE_TABLE +- cpufreq: qcom: Add missing MODULE_DEVICE_TABLE +- cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE +- cpufreq: highbank: Add missing MODULE_DEVICE_TABLE +- cpufreq: ap806: Add missing MODULE_DEVICE_TABLE +- clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI +- clocksource/drivers/arm_arch_timer: Use stable count reader in erratum sne +- drm/msm: add IOMMU_SUPPORT dependency +- drm/msm: a5xx: Make preemption reset case reentrant +- memory: jz4780_nemc: Fix potential NULL dereference in jz4780_nemc_probe() +- memory: ti-emif-sram: only build for ARMv7 +- phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure +- phy: mediatek: allow compile-testing the hdmi phy +- ASoC: qcom: fix QDSP6 dependencies, attempt #3 +- ASoC: atmel: mchp-spdifrx needs COMMON_CLK +- ASoC: cros_ec_codec: fix uninitialized memory read +- dm ioctl: fix error return code in target_message +- ASoC: q6afe-clocks: Add missing parent clock rate +- ASoC: jz4740-i2s: add missed checks for clk_get() +- mt76: fix tkip configuration for mt7615/7663 devices +- mt76: fix memory leak if device probing fails +- net/mlx5: Properly convey driver version to firmware +- mt76: dma: fix possible deadlock running mt76_dma_cleanup +- mt76: set fops_tx_stats.owner to THIS_MODULE +- mt76: mt7915: set fops_sta_stats.owner to THIS_MODULE +- mt76: mt7663s: fix a possible ple quota underflow +- MIPS: Don't round up kernel sections size for memblock_add() +- memstick: r592: Fix error return in r592_probe() +- arm64: dts: rockchip: Fix UART pull-ups on rk3328 +- soc: rockchip: io-domain: Fix error return code in rockchip_iodomain_probe() +- pinctrl: falcon: add missing put_device() call in pinctrl_falcon_probe() +- selftests/bpf: Fix invalid use of strncat in test_sockmap +- bpf: Fix bpf_put_raw_tracepoint()'s use of __module_address() +- scripts: kernel-doc: fix parsing function-like typedefs +- ARM: dts: at91: sama5d2: map securam as device +- ARM: dts: at91: sam9x60ek: remove bypass property +- libbpf: Sanitise map names before pinning +- iio: hrtimer-trigger: Mark hrtimer to expire in hard interrupt context +- arm64: mte: fix prctl(PR_GET_TAGGED_ADDR_CTRL) if TCF0=NONE +- clocksource/drivers/riscv: Make RISCV_TIMER depends on RISCV_SBI +- clocksource/drivers/ingenic: Fix section mismatch +- clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent() +- clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path +- powerpc/perf: Fix the PMU group constraints for threshold events in power10 +- powerpc/perf: Update the PMU group constraints for l2l3 events in power10 +- powerpc/perf: Fix to update radix_scope_qual in power10 +- powerpc/xmon: Fix build failure for 8xx +- powerpc/64: Fix an EMIT_BUG_ENTRY in head_64.S +- powerpc/perf: Fix crash with is_sier_available when pmu is not set +- media: saa7146: fix array overflow in vidioc_s_audio() +- media: tvp5150: Fix wrong return value of tvp5150_parse_dt() +- f2fs: fix double free of unicode map +- hwmon: (ina3221) Fix PM usage counter unbalance in ina3221_write_enable +- vfio-pci: Use io_remap_pfn_range() for PCI IO memory +- selftests/seccomp: Update kernel config +- NFS: switch nfsiod to be an UNBOUND workqueue. +- lockd: don't use interval-based rebinding over TCP +- net: sunrpc: Fix 'snprintf' return value check in 'do_xprt_debugfs' +- NFSv4: Fix the alignment of page data in the getdeviceinfo reply +- SUNRPC: xprt_load_transport() needs to support the netid "rdma6" +- NFSv4.2: condition READDIR's mask for security label based on LSM state +- SUNRPC: rpc_wake_up() should wake up tasks in the correct order +- ath10k: Release some resources in an error handling path +- ath10k: Fix an error handling path +- ath10k: Fix the parsing error in service available event +- ath11k: Fix an error handling path +- ath11k: Reset ath11k_skb_cb before setting new flags +- ath11k: Don't cast ath11k_skb_cb to ieee80211_tx_info.control +- media: i2c: imx219: Selection compliance fixes +- media: rdacm20: Enable GPIO1 explicitly +- media: max9271: Fix GPIO enable/disable +- ASoC: Intel: Boards: tgl_max98373: update TDM slot_width +- platform/x86: dell-smbios-base: Fix error return code in dell_smbios_init +- soundwire: master: use pm_runtime_set_active() on add +- mailbox: arm_mhu_db: Fix mhu_db_shutdown by replacing kfree with devm_kfree +- RDMA/hns: Bugfix for calculation of extended sge +- RDMA/hns: Fix 0-length sge calculation error +- ARM: dts: at91: at91sam9rl: fix ADC triggers +- spi: spi-fsl-dspi: Use max_native_cs instead of num_chipselect to set SPI_MCR +- scsi: pm80xx: Do not sleep in atomic context +- scsi: hisi_sas: Fix up probe error handling for v3 hw +- soc: amlogic: canvas: add missing put_device() call in meson_canvas_get() +- arm64: dts: meson-sm1: fix typo in opp table +- arm64: dts: meson: fix spi-max-frequency on Khadas VIM2 +- PCI: iproc: Invalidate correct PAXB inbound windows +- PCI: iproc: Fix out-of-bound array accesses +- PCI: Fix overflow in command-line resource alignment requests +- PCI: Bounds-check command-line resource alignment requests +- arm64: dts: qcom: c630: Fix pinctrl pins properties +- arm64: dts: qcom: c630: Polish i2c-hid devices +- phy: tegra: xusb: Fix usb_phy device driver field +- arm64: dts: freescale: sl28: combine SPI MTD partitions +- arm64: dts: ls1028a: fix FlexSPI clock input +- arm64: dts: ls1028a: fix ENETC PTP clock input +- genirq/irqdomain: Don't try to free an interrupt that has no mapping +- power: supply: bq24190_charger: fix reference leak +- power: supply: axp288_charger: Fix HP Pavilion x2 10 DMI matching +- power: supply: max17042_battery: Fix current_{avg,now} hiding with no current sense +- arm64: dts: rockchip: Set dr_mode to "host" for OTG on rk3328-roc-cc +- power: supply: bq25890: Use the correct range for IILIM register +- arm64: dts: armada-3720-turris-mox: update ethernet-phy handle name +- ARM: dts: Remove non-existent i2c1 from 98dx3236 +- HSI: omap_ssi: Don't jump to free ID in ssi_add_controller() +- drm/mediatek: Use correct aliases name for ovl +- RDMA/core: Track device memory MRs +- slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI +- media: max2175: fix max2175_set_csm_mode() error code +- mips: cdmm: fix use-after-free in mips_cdmm_bus_discover +- media: imx214: Fix stop streaming +- samples: bpf: Fix lwt_len_hist reusing previous BPF map +- serial: 8250-mtk: Fix reference leak in mtk8250_probe +- RDMA/hns: Avoid setting loopback indicator when smac is same as dmac +- RDMA/hns: Fix missing fields in address vector +- RDMA/hns: Only record vlan info for HIP08 +- arm64: dts: qcom: sc7180: limit IPA iommu streams +- platform/x86: mlx-platform: Remove PSU EEPROM from MSN274x platform configuration +- platform/x86: mlx-platform: Remove PSU EEPROM from default platform configuration +- media: siano: fix memory leak of debugfs members in smsdvb_hotplug +- drm/imx/dcss: fix rotations for Vivante tiled formats +- soundwire: qcom: Fix build failure when slimbus is module +- RDMA/cma: Fix deadlock on &lock in rdma_cma_listen_on_all() error unwind +- arm64: tegra: Fix DT binding for IO High Voltage entry +- leds: turris-omnia: check for LED_COLOR_ID_RGB instead LED_COLOR_ID_MULTI +- leds: lp50xx: Fix an error handling path in 'lp50xx_probe_dt()' +- leds: netxbig: add missing put_device() call in netxbig_leds_get_of_pdata() +- arm64: dts: qcom: sdm845: Limit ipa iommu streams +- dmaengine: mv_xor_v2: Fix error return code in mv_xor_v2_probe() +- cw1200: fix missing destroy_workqueue() on error in cw1200_init_common +- rsi: fix error return code in rsi_reset_card() +- qtnfmac: fix error return code in qtnf_pcie_probe() +- orinoco: Move context allocation after processing the skb +- brcmfmac: fix error return code in brcmf_cfg80211_connect() +- mmc: pxamci: Fix error return code in pxamci_probe +- ARM: dts: at91: sama5d3_xplained: add pincontrol for USB Host +- ARM: dts: at91: sama5d4_xplained: add pincontrol for USB Host +- ARM: dts: at91: sam9x60: add pincontrol for USB Host +- memstick: fix a double-free bug in memstick_check +- pinctrl: sunxi: fix irq bank map for the Allwinner A100 pin controller +- soundwire: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute +- RDMA/cxgb4: Validate the number of CQEs +- ath11k: Fix the rx_filter flag setting for peer rssi stats +- staging: mfd: hi6421-spmi-pmic: fix error return code in hi6421_spmi_pmic_probe() +- clk: meson: Kconfig: fix dependency for G12A +- Input: omap4-keypad - fix runtime PM error handling +- arm64: dts: qcom: msm8916-samsung-a2015: Disable muic i2c pin bias +- arm64: dts: qcom: sm8250: correct compatible for sm8250-mtp +- soc: qcom: initialize local variable +- drivers: soc: ti: knav_qmss_queue: Fix error return code in knav_queue_probe +- soc: ti: Fix reference imbalance in knav_dma_probe +- soc: ti: knav_qmss: fix reference leak in knav_queue_probe +- PCI: brcmstb: Initialize "tmp" before use +- PCI: Disable MSI for Pericom PCIe-USB adapter +- drm/meson: dw-hdmi: Enable the iahb clock early enough +- drm/meson: dw-hdmi: Disable clocks on driver teardown +- spi: fix resource leak for drivers without .remove callback +- crypto: sun8i-ce - fix two error path's memory leak +- crypto: omap-aes - Fix PM disable depth imbalance in omap_aes_probe +- crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd +- rcu/tree: Defer kvfree_rcu() allocation to a clean context +- rcu,ftrace: Fix ftrace recursion +- rcu: Allow rcu_irq_enter_check_tick() from NMI +- scsi: ufs: Fix clkgating on/off +- scsi: ufs: Avoid to call REQ_CLKS_OFF to CLKS_OFF +- EDAC/mce_amd: Use struct cpuinfo_x86.cpu_die_id for AMD NodeId +- mfd: cpcap: Fix interrupt regression with regmap clear_ack +- mfd: stmfx: Fix dev_err_probe() call in stmfx_chip_init() +- mfd: MFD_SL28CPLD should depend on ARCH_LAYERSCAPE +- mfd: htc-i2cpld: Add the missed i2c_put_adapter() in htcpld_register_chip_i2c() +- powerpc/powernv/sriov: fix unsigned int win compared to less than zero +- Revert "powerpc/pseries/hotplug-cpu: Remove double free in error path" +- ARM: dts: tacoma: Fix node vs reg mismatch for flash memory +- powerpc/feature: Fix CPU_FTRS_ALWAYS by removing CPU_FTRS_GENERIC_32 +- powerpc: Avoid broken GCC __attribute__((optimize)) +- selftests/bpf: Fix broken riscv build +- spi: mxs: fix reference leak in mxs_spi_probe +- usb/max3421: fix return error code in max3421_probe() +- bus: mhi: core: Fix null pointer access when parsing MHI configuration +- bus: mhi: core: Remove double locking from mhi_driver_remove() +- Input: ads7846 - fix unaligned access on 7845 +- Input: ads7846 - fix integer overflow on Rt calculation +- Input: ads7846 - fix race that causes missing releases +- iommu/vt-d: include conditionally on CONFIG_INTEL_IOMMU_SVM +- ASoC: intel: SND_SOC_INTEL_KEEMBAY should depend on ARCH_KEEMBAY +- drm/meson: dw-hdmi: Ensure that clocks are enabled before touching the TOP registers +- drm/meson: dw-hdmi: Register a callback to disable the regulator +- drm/meson: Unbind all connectors on module removal +- drm/meson: Free RDMA resources after tearing down DRM +- drm/omap: dmm_tiler: fix return error code in omap_dmm_probe() +- mmc: sdhci: tegra: fix wrong unit with busy_timeout +- video: fbdev: atmel_lcdfb: fix return error code in atmel_lcdfb_of_init() +- media: solo6x10: fix missing snd_card_free in error handling case +- media: venus: put dummy vote on video-mem path after last session release +- scsi: core: Fix VPD LUN ID designator priorities +- spi: dw: fix build error by selecting MULTIPLEXER +- ASoC: meson: fix COMPILE_TEST error +- RDMA/cma: Add missing error handling of listen_id +- media: venus: core: vote with average bandwidth and peak bandwidth as zero +- media: venus: core: vote for video-mem path +- media: venus: core: change clk enable and disable order in resume and suspend +- media: platform: add missing put_device() call in mtk_jpeg_probe() and mtk_jpeg_remove() +- media: cedrus: fix reference leak in cedrus_start_streaming +- media: staging: rkisp1: cap: fix runtime PM imbalance on error +- media: ov5640: fix support of BT656 bus mode +- media: v4l2-fwnode: v4l2_fwnode_endpoint_parse caller must init vep argument +- media: v4l2-fwnode: Return -EINVAL for invalid bus-type +- media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_enc_pm() +- media: mtk-vcodec: add missing put_device() call in mtk_vcodec_release_dec_pm() +- media: mtk-vcodec: add missing put_device() call in mtk_vcodec_init_dec_pm() +- media: platform: add missing put_device() call in mtk_jpeg_clk_init() +- media: tm6000: Fix sizeof() mismatches +- ionic: change set_rx_mode from_ndo to can_sleep +- ionic: flatten calls to ionic_lif_rx_mode +- ionic: use mc sync for multicast filters +- drm/amdkfd: Put ACPI table after using it +- scripts: kernel-doc: Restore anonymous enum parsing +- staging: gasket: interrupt: fix the missed eventfd_ctx_put() in gasket_interrupt.c +- staging: greybus: codecs: Fix reference counter leak in error handling +- drm/udl: Fix missing error code in udl_handle_damage() +- firmware: arm_scmi: Fix missing destroy_workqueue() +- crypto: qat - fix status check in qat_hal_put_rel_rd_xfer() +- crypto: Kconfig - CRYPTO_MANAGER_EXTRA_TESTS requires the manager +- soc: ti: omap-prm: Do not check rstst bit on deassert if already deasserted +- drm/amdgpu: fix compute queue priority if num_kcq is less than 4 +- MIPS: BCM47XX: fix kconfig dependency bug for BCM47XX_BCMA +- arm64: dts: ti: k3-am65*/j721e*: Fix unit address format error for dss node +- ASoC: SOF: Intel: fix Kconfig dependency for SND_INTEL_DSP_CONFIG +- RDMa/mthca: Work around -Wenum-conversion warning +- ASoC: arizona: Fix a wrong free in wm8997_probe +- virtiofs fix leak in setup +- spi: sprd: fix reference leak in sprd_spi_remove +- ASoC: wm8998: Fix PM disable depth imbalance on error +- ASoC: wm8994: Fix PM disable depth imbalance on error +- selftest/bpf: Add missed ip6ip6 test back +- selftests/run_kselftest.sh: fix dry-run typo +- drm/msm/dp: do not notify audio subsystem if sink doesn't support audio +- drm/msm/dp: skip checking LINK_STATUS_UPDATED bit +- drm/msm/dp: return correct connection status after suspend +- firmware: tegra: fix strncpy()/strncat() confusion +- drm/msm/a5xx: Clear shadow on suspend +- drm/msm/a6xx: Clear shadow on suspend +- mwifiex: fix mwifiex_shutdown_sw() causing sw reset failure +- ath11k: Handle errors if peer creation fails +- ASoC: qcom: common: Fix refcounting in qcom_snd_parse_of() +- spi: imx: fix reference leak in two imx operations +- spi: bcm63xx-hsspi: fix missing clk_disable_unprepare() on error in bcm63xx_hsspi_resume +- spi: tegra114: fix reference leak in tegra spi ops +- spi: tegra20-sflash: fix reference leak in tegra_sflash_resume +- spi: tegra20-slink: fix reference leak in slink ops of tegra20 +- spi: mt7621: fix missing clk_disable_unprepare() on error in mt7621_spi_probe +- spi: spi-ti-qspi: fix reference leak in ti_qspi_setup +- spi: stm32-qspi: fix reference leak in stm32 qspi operations +- Bluetooth: hci_h5: fix memory leak in h5_close +- Bluetooth: Fix: LL PRivacy BLE device fails to connect +- Bluetooth: Fix null pointer dereference in hci_event_packet() +- drm/panel: simple: Add flags to boe_nv133fhm_n61 +- arm64: dts: exynos: Correct psci compatible used on Exynos7 +- arm64: dts: exynos: Include common syscon restart/poweroff for Exynos7 +- brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free} +- ath11k: fix wmi init configuration +- ath11k: Fix number of rules in filtered ETSI regdomain +- ath11k: Initialize complete alpha2 for regulatory change +- drm/edid: Fix uninitialized variable in drm_cvt_modes() +- x86/mce: Correct the detection of invalid notifier priorities +- bpf: Fix tests for local_storage +- spi: stm32: fix reference leak in stm32_spi_resume +- nl80211/cfg80211: fix potential infinite loop +- selinux: fix inode_doinit_with_dentry() LABEL_INVALID error handling +- crypto: caam - fix printing on xts fallback allocation error path +- crypto: arm/aes-neonbs - fix usage of cbc(aes) fallback +- crypto: arm64/poly1305-neon - reorder PAC authentication with SP update +- drm/bridge: tpd12s015: Fix irq registering in tpd12s015_probe +- ASoC: pcm: DRAIN support reactivation +- pinctrl: core: Add missing #ifdef CONFIG_GPIOLIB +- scsi: aacraid: Improve compat_ioctl handlers +- spi: spi-mem: fix reference leak in spi_mem_access_start +- drm/msm/dpu: fix clock scaling on non-sc7180 board +- drm/msm/dsi_pll_10nm: restore VCO rate during restore_state +- drm/msm/dsi_pll_7nm: restore VCO rate during restore_state +- drm/msm/dp: DisplayPort PHY compliance tests fixup +- perf test: Use generic event for expand_libpfm_events() +- RDMA/mlx5: Fix corruption of reg_pages in mlx5_ib_rereg_user_mr() +- f2fs: call f2fs_get_meta_page_retry for nat page +- spi: img-spfi: fix reference leak in img_spfi_resume +- powerpc/64: Set up a kernel stack for secondaries before cpu_restore() +- drm/amdgpu: fix build_coefficients() argument +- ARM: dts: aspeed: tiogapass: Remove vuart +- drm/msm: Add missing stub definition +- ASoC: sun4i-i2s: Fix lrck_period computation for I2S justified mode +- crypto: inside-secure - Fix sizeof() mismatch +- crypto: talitos - Fix return type of current_desc_hdr() +- crypto: talitos - Endianess in current_desc_hdr() +- drm/amdgpu: fix incorrect enum type +- sched: Reenable interrupts in do_sched_yield() +- sched/deadline: Fix sched_dl_global_validate() +- ASoC: qcom: fix unsigned int bitwidth compared to less than zero +- x86/apic: Fix x2apic enablement without interrupt remapping +- RDMA/rtrs-srv: Don't guard the whole __alloc_srv with srv_mutex +- RDMA/rtrs-clt: Missing error from rtrs_rdma_conn_established +- RDMA/rtrs-clt: Remove destroy_con_cq_qp in case route resolving failed +- ARM: p2v: fix handling of LPAE translation in BE mode +- x86/mm/ident_map: Check for errors from ident_pud_init() +- RDMA/rxe: Compute PSN windows correctly +- RDMA/core: Fix error return in _ib_modify_qp() +- ARM: dts: aspeed: s2600wf: Fix VGA memory region location +- ARM: dts: aspeed-g6: Fix the GPIO memory size +- selinux: fix error initialization in inode_doinit_with_dentry() +- RDMA/bnxt_re: Fix entry size during SRQ create +- rtc: pcf2127: fix pcf2127_nvmem_read/write() returns +- RDMA/bnxt_re: Set queue pair state when being queried +- Revert "i2c: i2c-qcom-geni: Fix DMA transfer race" +- soc: qcom: geni: More properly switch to DMA mode +- arm64: dts: qcom: sc7180: Fix one forgotten interconnect reference +- arm64: dts: ipq6018: update the reserved-memory node +- arm64: dts: mediatek: mt8183: fix gce incorrect mbox-cells value +- soc: mediatek: Check if power domains can be powered on at boot time +- soc: renesas: rmobile-sysc: Fix some leaks in rmobile_init_pm_domains() +- arm64: dts: renesas: cat875: Remove rxc-skew-ps from ethernet-phy node +- arm64: dts: renesas: hihope-rzg2-ex: Drop rxc-skew-ps from ethernet-phy node +- drm/tve200: Fix handling of platform_get_irq() error +- drm/mcde: Fix handling of platform_get_irq() error +- drm/aspeed: Fix Kconfig warning & subsequent build errors +- iio: adc: at91_adc: add Kconfig dep on the OF symbol and remove of_match_ptr() +- drm/gma500: fix double free of gma_connector +- hwmon: (k10temp) Remove support for displaying voltage and current on Zen CPUs +- md: fix a warning caused by a race between concurrent md_ioctl()s +- nl80211: validate key indexes for cfg80211_registered_device +- crypto: af_alg - avoid undefined behavior accessing salg_name +- media: msi2500: assign SPI bus number dynamically +- fs: quota: fix array-index-out-of-bounds bug by passing correct argument to vfs_cleanup_quota_inode() +- quota: Sanity-check quota file headers on load +- Bluetooth: Fix slab-out-of-bounds read in hci_le_direct_adv_report_evt() +- f2fs: prevent creating duplicate encrypted filenames +- ext4: prevent creating duplicate encrypted filenames +- ubifs: prevent creating duplicate encrypted filenames +- fscrypt: add fscrypt_is_nokey_name() +- fscrypt: remove kernel-internal constants from UAPI header +- serial_core: Check for port state when tty is in error state +- HID: i2c-hid: add Vero K147 to descriptor override +- scsi: megaraid_sas: Check user-provided offsets +- f2fs: init dirty_secmap incorrectly +- f2fs: fix to seek incorrect data offset in inline data file +- coresight: etm4x: Handle TRCVIPCSSCTLR accesses +- coresight: etm4x: Fix accesses to TRCPROCSELR +- coresight: etm4x: Fix accesses to TRCCIDCTLR1 +- coresight: etm4x: Fix accesses to TRCVMIDCTLR1 +- coresight: etm4x: Skip setting LPOVERRIDE bit for qcom, skip-power-up +- coresight: etb10: Fix possible NULL ptr dereference in etb_enable_perf() +- coresight: tmc-etr: Fix barrier packet insertion for perf buffer +- coresight: tmc-etr: Check if page is valid before dma_map_page() +- coresight: tmc-etf: Fix NULL ptr dereference in tmc_enable_etf_sink_perf() +- ARM: dts: exynos: fix USB 3.0 pins supply being turned off on Odroid XU +- ARM: dts: exynos: fix USB 3.0 VBUS control and over-current pins on Exynos5410 +- ARM: dts: exynos: fix roles of USB 3.0 ports on Odroid XU +- usb: chipidea: ci_hdrc_imx: Pass DISABLE_DEVICE_STREAMING flag to imx6ul +- USB: gadget: f_rndis: fix bitrate for SuperSpeed and above +- usb: gadget: f_fs: Re-use SS descriptors for SuperSpeedPlus +- USB: gadget: f_midi: setup SuperSpeed Plus descriptors +- USB: gadget: f_acm: add support for SuperSpeed Plus +- USB: serial: option: add interface-number sanity check to flag handling +- usb: mtu3: fix memory corruption in mtu3_debugfs_regset() +- soc/tegra: fuse: Fix index bug in get_process_id +- exfat: Avoid allocating upcase table using kcalloc() +- x86/split-lock: Avoid returning with interrupts enabled +- net: ipconfig: Avoid spurious blank lines in boot log +- serial: 8250_omap: Avoid FIFO corruption caused by MDR1 access +- ALSA: pcm: oss: Fix potential out-of-bounds shift +- USB: sisusbvga: Make console support depend on BROKEN +- USB: UAS: introduce a quirk to set no_write_same +- xhci-pci: Allow host runtime PM as default for Intel Maple Ridge xHCI +- xhci-pci: Allow host runtime PM as default for Intel Alpine Ridge LP +- usb: xhci: Set quirk for XHCI_SG_TRB_CACHE_SIZE_QUIRK +- xhci: Give USB2 ports time to enter U3 in bus suspend +- ALSA: usb-audio: Fix control 'access overflow' errors from chmap +- ALSA: usb-audio: Fix potential out-of-bounds shift +- USB: add RESET_RESUME quirk for Snapscan 1212 +- USB: dummy-hcd: Fix uninitialized array use in init() +- USB: legotower: fix logical error in recent commit +- ktest.pl: Fix the logic for truncating the size of the log file for email +- ktest.pl: If size of log is too big to email, email error message +- ptrace: Prevent kernel-infoleak in ptrace_get_syscall_info() +- arm64: cache: Export and add cache invalidation and clean ABIs for module use +- arm64: cache: Add flush_dcache_area() for module use +- security: restrict init parameters by configuration +- PCI: Add MCFG quirks for some Hisilicon Chip host controllers +- fs/dirty_pages: remove set but not used variable 'm' +- fs/dirty_pages: fix kernel panic in concurrency mode +- fs/dirty_pages: Adjust position of some code to improve the code +- fs/dirty_pages: fix wrong 'buff_num' after invalid input +- fs/dirty_pages: fix index out of bounds and integer overflow +- fs/dirty_pages: dump the number of dirty pages for each inode +- mm, page_alloc: avoid page_to_pfn() in move_freepages() +- dt-bindings/irqchip/mbigen: add example of MBIGEN generate SPIs +- irqchip/mbigen: add support for a MBIGEN generating SPIs +- irqchip/mbigen: rename register marcros +- ilp32: skip ARM erratum 1418040 for ilp32 application +- ilp32: avoid clearing upper 32 bits of syscall return value for ilp32 +- arm64: secomp: fix the secure computing mode 1 syscall check for ilp32 +- arm64:ilp32: add ARM64_ILP32 to Kconfig +- arm64:ilp32: add vdso-ilp32 and use for signal return +- arm64: ptrace: handle ptrace_request differently for aarch32 and ilp32 +- arm64: ilp32: introduce ilp32-specific sigframe and ucontext +- arm64: signal32: move ilp32 and aarch32 common code to separated file +- arm64: signal: share lp64 signal structures and routines to ilp32 +- arm64: ilp32: introduce syscall table for ILP32 +- arm64: ilp32: share aarch32 syscall handlers +- arm64: ilp32: introduce binfmt_ilp32.c +- arm64: change compat_elf_hwcap and compat_elf_hwcap2 prefix to a32 +- arm64: introduce binfmt_elf32.c +- arm64: introduce AUDIT_ARCH_AARCH64ILP32 for ilp32 +- arm64: ilp32: add is_ilp32_compat_{task,thread} and TIF_32BIT_AARCH64 +- arm64: introduce is_a32_compat_{task,thread} for AArch32 compat +- arm64: uapi: set __BITS_PER_LONG correctly for ILP32 and LP64 +- arm64: rename functions that reference compat term +- arm64: rename COMPAT to AARCH32_EL0 +- arm64: ilp32: add documentation on the ILP32 ABI for ARM64 +- thread: move thread bits accessors to separated file +- ptrace: Add compat PTRACE_{G,S}ETSIGMASK handlers +- arm64: signal: Make parse_user_sigframe() independent of rt_sigframe layout +- ARM: mm: non-LPAE systems HugeTLB support for hulk +- Revert "dm raid: fix discard limits for raid1 and raid10" +- Revert "md: change mddev 'chunk_sectors' from int to unsigned" + +* Wed Dec 16 2020 Xie XiuQi - 5.10.0-0.0.0.7 +- rebase on top of v5.10 + +* Wed Dec 09 2020 Xie XiuQi - 5.10.0-rc7.0.0.6 +- rebase on top of v5.10-rc7 + +* Tue Nov 17 2020 Xie XiuQi - 5.10.0-rc4.0.0.5 +- rebase on top of v5.10-rc4 +- kernel.spec: privode config files in src package + +* Mon Nov 09 2020 Xie XiuQi - 5.10.0-rc3.0.0.4 +- use rcX for v5.10-rcX source release +- rebase on top of v5.10-rc3 +- kernel.spec: add missing debuginfodir + +* Mon Nov 02 2020 Xie XiuQi - 5.10.0-rc2.0.0.3 +- rebase on top of v5.10-rc2 +- provide /boot/symvers-kernelver.gz even no kabichk +- fix warning on uninstall kernel rpm + +* Sat Oct 31 2020 Xie XiuQi - 5.10.0-rc1.0.0.2 +- enable access to .config through /proc/config.gz + +* Tue Oct 27 2020 Xie XiuQi - 5.10.0-rc1.0.0.1 +- package init based on upstream v5.10-rc1 -- Gitee