From: Andi Kleen <ak(a)linux.intel.com>
stable inclusion
from stable-v4.19.320
commit 34f36e6ee5bd7eff8b2adcd9fcaef369f752d82e
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAOXYQ
CVE: CVE-2024-44948
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 919f18f961c03d6694aa726c514184f2311a4614 upstream.
MTRRs have an obsolete fixed variant for fine grained caching control
of the 640K-1MB region that uses separate MSRs. This fixed variant has
a separate capability bit in the MTRR capability MSR.
So far all x86 CPUs which support MTRR have this separate bit set, so it
went unnoticed that mtrr_save_state() does not check the capability bit
before accessing the fixed MTRR MSRs.
Though on a CPU that does not support the fixed MTRR capability this
results in a #GP. The #GP itself is harmless because the RDMSR fault is
handled gracefully, but results in a WARN_ON().
Add the missing capability check to prevent this.
Fixes: 2b1f6278d77c ("[PATCH] x86: Save the MTRRs of the BSP before booting an AP")
Signed-off-by: Andi Kleen <ak(a)linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/all/20240808000244.946864-1-ak@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtrr.c
index 507039c20128..93ed6d3bf300 100644
--- a/arch/x86/kernel/cpu/mtrr/mtrr.c
+++ b/arch/x86/kernel/cpu/mtrr/mtrr.c
@@ -819,7 +819,7 @@ void mtrr_save_state(void)
{
int first_cpu;
- if (!mtrr_enabled())
+ if (!mtrr_enabled() || !mtrr_state.have_fixed)
return;
first_cpu = cpumask_first(cpu_online_mask);
--
2.25.1
From: Andi Kleen <ak(a)linux.intel.com>
stable inclusion
from stable-v5.10.224
commit 450b6b22acdaac67a18eaf5ed498421ffcf10051
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAOXYQ
CVE: CVE-2024-44948
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 919f18f961c03d6694aa726c514184f2311a4614 upstream.
MTRRs have an obsolete fixed variant for fine grained caching control
of the 640K-1MB region that uses separate MSRs. This fixed variant has
a separate capability bit in the MTRR capability MSR.
So far all x86 CPUs which support MTRR have this separate bit set, so it
went unnoticed that mtrr_save_state() does not check the capability bit
before accessing the fixed MTRR MSRs.
Though on a CPU that does not support the fixed MTRR capability this
results in a #GP. The #GP itself is harmless because the RDMSR fault is
handled gracefully, but results in a WARN_ON().
Add the missing capability check to prevent this.
Fixes: 2b1f6278d77c ("[PATCH] x86: Save the MTRRs of the BSP before booting an AP")
Signed-off-by: Andi Kleen <ak(a)linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/all/20240808000244.946864-1-ak@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtrr.c
index 5f436cb4f7c4..9d5313118660 100644
--- a/arch/x86/kernel/cpu/mtrr/mtrr.c
+++ b/arch/x86/kernel/cpu/mtrr/mtrr.c
@@ -817,7 +817,7 @@ void mtrr_save_state(void)
{
int first_cpu;
- if (!mtrr_enabled())
+ if (!mtrr_enabled() || !mtrr_state.have_fixed)
return;
first_cpu = cpumask_first(cpu_online_mask);
--
2.25.1
From: Andi Kleen <ak(a)linux.intel.com>
stable inclusion
from stable-v5.10.224
commit 450b6b22acdaac67a18eaf5ed498421ffcf10051
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAOXYQ
CVE: CVE-2024-44948
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 919f18f961c03d6694aa726c514184f2311a4614 upstream.
MTRRs have an obsolete fixed variant for fine grained caching control
of the 640K-1MB region that uses separate MSRs. This fixed variant has
a separate capability bit in the MTRR capability MSR.
So far all x86 CPUs which support MTRR have this separate bit set, so it
went unnoticed that mtrr_save_state() does not check the capability bit
before accessing the fixed MTRR MSRs.
Though on a CPU that does not support the fixed MTRR capability this
results in a #GP. The #GP itself is harmless because the RDMSR fault is
handled gracefully, but results in a WARN_ON().
Add the missing capability check to prevent this.
Fixes: 2b1f6278d77c ("[PATCH] x86: Save the MTRRs of the BSP before booting an AP")
Signed-off-by: Andi Kleen <ak(a)linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
Cc: stable(a)vger.kernel.org
Link: https://lore.kernel.org/all/20240808000244.946864-1-ak@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtrr.c
index 5f436cb4f7c4..9d5313118660 100644
--- a/arch/x86/kernel/cpu/mtrr/mtrr.c
+++ b/arch/x86/kernel/cpu/mtrr/mtrr.c
@@ -817,7 +817,7 @@ void mtrr_save_state(void)
{
int first_cpu;
- if (!mtrr_enabled())
+ if (!mtrr_enabled() || !mtrr_state.have_fixed)
return;
first_cpu = cpumask_first(cpu_online_mask);
--
2.25.1
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 7c98201b2598a42ac2ce6a9036ee4e4349a406ac
commit: b88ceab57674d2035d500a42901eb2e603e8f00c [5544/30000] drivers: hooks: add bonding driver vendor hooks
config: arm64-randconfig-004-20240912 (https://download.01.org/0day-ci/archive/20240912/202409121219.ZxGnKcyP-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240912/202409121219.ZxGnKcyP-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409121219.ZxGnKcyP-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from include/trace/define_trace.h:102,
from include/trace/hooks/bonding.h:27,
from drivers/hooks/vendor_hooks.c:11:
>> include/trace/trace_events.h:27:23: warning: 'str__bonding__trace_system_name' defined but not used [-Wunused-const-variable=]
27 | #define __app__(x, y) str__##x##y
| ^~~~~
include/trace/trace_events.h:28:21: note: in expansion of macro '__app__'
28 | #define __app(x, y) __app__(x, y)
| ^~~~~~~
include/trace/trace_events.h:30:29: note: in expansion of macro '__app'
30 | #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
| ^~~~~
include/trace/trace_events.h:33:27: note: in expansion of macro 'TRACE_SYSTEM_STRING'
33 | static const char TRACE_SYSTEM_STRING[] = \
| ^~~~~~~~~~~~~~~~~~~
include/trace/trace_events.h:36:1: note: in expansion of macro 'TRACE_MAKE_SYSTEM_STR'
36 | TRACE_MAKE_SYSTEM_STR();
| ^~~~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PGP_KEY_PARSER
Depends on [n]: CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y] && ASYMMETRIC_PUBLIC_KEY_SUBTYPE [=n]
Selected by [y]:
- PGP_PRELOAD [=y] && CRYPTO [=y] && ASYMMETRIC_KEY_TYPE [=y]
vim +/str__bonding__trace_system_name +27 include/trace/trace_events.h
acd388fd3af350 include/trace/ftrace.h Steven Rostedt (Red Hat 2015-03-31 26)
acd388fd3af350 include/trace/ftrace.h Steven Rostedt (Red Hat 2015-03-31 @27) #define __app__(x, y) str__##x##y
acd388fd3af350 include/trace/ftrace.h Steven Rostedt (Red Hat 2015-03-31 28) #define __app(x, y) __app__(x, y)
acd388fd3af350 include/trace/ftrace.h Steven Rostedt (Red Hat 2015-03-31 29)
:::::: The code at line 27 was first introduced by commit
:::::: acd388fd3af350ab24c6ab6f19b83fc4a4f3aa60 tracing: Give system name a pointer
:::::: TO: Steven Rostedt (Red Hat) <rostedt(a)goodmis.org>
:::::: CC: Steven Rostedt <rostedt(a)goodmis.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: e23f76121de26a57b9f398c8b1ce5405a88acd8a
commit: 9d961dd8f6989bee222015da75553f9800b46714 [29933/30000] mm: add /sys/class/bdi/<bdi>/min_bytes knob
config: x86_64-randconfig-123-20240910 (https://download.01.org/0day-ci/archive/20240912/202409120855.xGnhP78f-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240912/202409120855.xGnhP78f-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409120855.xGnhP78f-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> mm/backing-dev.c:226:1: sparse: sparse: symbol 'dev_attr_min_bytes' was not declared. Should it be static?
mm/backing-dev.c:254:1: sparse: sparse: symbol 'dev_attr_max_bytes' was not declared. Should it be static?
vim +/dev_attr_min_bytes +226 mm/backing-dev.c
208
209 static ssize_t min_bytes_store(struct device *dev,
210 struct device_attribute *attr, const char *buf, size_t count)
211 {
212 struct backing_dev_info *bdi = dev_get_drvdata(dev);
213 u64 bytes;
214 ssize_t ret;
215
216 ret = kstrtoull(buf, 10, &bytes);
217 if (ret < 0)
218 return ret;
219
220 ret = bdi_set_min_bytes(bdi, bytes);
221 if (!ret)
222 ret = count;
223
224 return ret;
225 }
> 226 DEVICE_ATTR_RW(min_bytes);
227
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: e23f76121de26a57b9f398c8b1ce5405a88acd8a
commit: 5008e61d36701b7908e5edae1dee581a40af6312 [29992/30000] net: hns3:support enable or disable pfc strom prevent
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20240912/202409120826.KCXBqer1-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240912/202409120826.KCXBqer1-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202409120826.KCXBqer1-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c: In function 'hclge_reset_event':
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:4562:46: warning: implicit conversion from 'enum hnae3_reset_type' to 'enum hnae3_event_type_custom' [-Wenum-conversion]
4562 | ret = hclge_ext_call_event(hdev, hdev->reset_level);
| ~~~~^~~~~~~~~~~~~
In file included from drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:23:
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c: In function 'hclge_get_pfc_storm_prevent':
>> drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:5484:43: warning: implicit conversion from 'enum hclge_ext_opcode_type' to 'enum hclge_opcode_type' [-Wenum-conversion]
5484 | hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_CFG_PAUSE_STORM_PARA, true);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h:24:47: note: in definition of macro 'hclge_cmd_setup_basic_desc'
24 | hclge_comm_cmd_setup_basic_desc(desc, opcode, is_read)
| ^~~~~~
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c: In function 'hclge_enable_pfc_storm_prevent':
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:5525:43: warning: implicit conversion from 'enum hclge_ext_opcode_type' to 'enum hclge_opcode_type' [-Wenum-conversion]
5525 | hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_CFG_PAUSE_STORM_PARA,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h:24:47: note: in definition of macro 'hclge_cmd_setup_basic_desc'
24 | hclge_comm_cmd_setup_basic_desc(desc, opcode, is_read)
| ^~~~~~
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c: In function 'hclge_set_vport_mtu':
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:11407:30: warning: unused variable 'ae_dev' [-Wunused-variable]
11407 | struct hnae3_ae_dev *ae_dev = pci_get_drvdata(vport->nic.pdev);
| ^~~~~~
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c: In function 'hclge_get_strings':
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:634:50: warning: '%s' directive output may be truncated writing up to 4895 bytes into a region of size 32 [-Wformat-truncation=]
634 | snprintf(buff, ETH_GSTRING_LEN, "%s", strs[i].desc);
| ^~
In function 'hclge_comm_get_strings',
inlined from 'hclge_get_strings' at drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:750:7:
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:634:17: note: 'snprintf' output between 1 and 4896 bytes into a destination of size 32
634 | snprintf(buff, ETH_GSTRING_LEN, "%s", strs[i].desc);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +5484 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5476
5477 static int
5478 hclge_get_pfc_storm_prevent(struct hclge_dev *hdev, int dir, bool *enable)
5479 {
5480 struct hclge_pfc_storm_para_cmd *para_cmd;
5481 struct hclge_desc desc;
5482 int ret;
5483
> 5484 hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_CFG_PAUSE_STORM_PARA, true);
5485 para_cmd = (struct hclge_pfc_storm_para_cmd *)desc.data;
5486 para_cmd->dir = cpu_to_le32(dir);
5487 ret = hclge_cmd_send(&hdev->hw, &desc, 1);
5488 if (ret)
5489 return ret;
5490
5491 *enable = !!le32_to_cpu(para_cmd->enable);
5492 return 0;
5493 }
5494
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki