From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [openeuler:OLK-5.10 2483/2483] drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c:584 isst_if_clos_assoc() warn: potential spectre issue 'isst_common.sst_inst' [r]
Date: Sat, 30 Nov 2024 20:52:30 +0800 [thread overview]
Message-ID: <202411302016.zDF1fyn1-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: kernel@openeuler.org
TO: Yingbao Jia <yingbao.jia@intel.com>
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: a2b4d661a5ca59dd7cf972c1cce8b98422102ab7
commit: d596e923a1905248b0f6693182c6ea140dec6c27 [2483/2483] platform/x86: ISST: Add SST-CP support via TPMI
:::::: branch date: 3 hours ago
:::::: commit date: 10 months ago
config: x86_64-randconfig-161-20241126 (https://download.01.org/0day-ci/archive/20241130/202411302016.zDF1fyn1-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202411302016.zDF1fyn1-lkp@intel.com/
New smatch warnings:
drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c:584 isst_if_clos_assoc() warn: potential spectre issue 'isst_common.sst_inst' [r]
drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c:586 isst_if_clos_assoc() warn: possible spectre second half. 'sst_inst'
drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c:589 isst_if_clos_assoc() warn: potential spectre issue 'sst_inst->power_domain_info' [r]
Old smatch warnings:
drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c:629 isst_if_get_tpmi_instance_count() warn: potential spectre issue 'isst_common.sst_inst' [r] (local cap)
drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c:633 isst_if_get_tpmi_instance_count() warn: possible spectre second half. 'sst_inst'
vim +584 drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c
d596e923a19052 Srinivas Pandruvada 2023-03-07 541
d596e923a19052 Srinivas Pandruvada 2023-03-07 542 static long isst_if_clos_assoc(void __user *argp)
d596e923a19052 Srinivas Pandruvada 2023-03-07 543 {
d596e923a19052 Srinivas Pandruvada 2023-03-07 544 struct isst_if_clos_assoc_cmds assoc_cmds;
d596e923a19052 Srinivas Pandruvada 2023-03-07 545 unsigned char __user *ptr;
d596e923a19052 Srinivas Pandruvada 2023-03-07 546 int i;
d596e923a19052 Srinivas Pandruvada 2023-03-07 547
d596e923a19052 Srinivas Pandruvada 2023-03-07 548 /* Each multi command has u16 command count as the first field */
d596e923a19052 Srinivas Pandruvada 2023-03-07 549 if (copy_from_user(&assoc_cmds, argp, sizeof(assoc_cmds)))
d596e923a19052 Srinivas Pandruvada 2023-03-07 550 return -EFAULT;
d596e923a19052 Srinivas Pandruvada 2023-03-07 551
d596e923a19052 Srinivas Pandruvada 2023-03-07 552 if (!assoc_cmds.cmd_count || assoc_cmds.cmd_count > ISST_IF_CMD_LIMIT)
d596e923a19052 Srinivas Pandruvada 2023-03-07 553 return -EINVAL;
d596e923a19052 Srinivas Pandruvada 2023-03-07 554
d596e923a19052 Srinivas Pandruvada 2023-03-07 555 ptr = argp + offsetof(struct isst_if_clos_assoc_cmds, assoc_info);
d596e923a19052 Srinivas Pandruvada 2023-03-07 556 for (i = 0; i < assoc_cmds.cmd_count; ++i) {
d596e923a19052 Srinivas Pandruvada 2023-03-07 557 struct tpmi_per_power_domain_info *power_domain_info;
d596e923a19052 Srinivas Pandruvada 2023-03-07 558 struct isst_if_clos_assoc clos_assoc;
d596e923a19052 Srinivas Pandruvada 2023-03-07 559 int punit_id, punit_cpu_no, pkg_id;
d596e923a19052 Srinivas Pandruvada 2023-03-07 560 struct tpmi_sst_struct *sst_inst;
d596e923a19052 Srinivas Pandruvada 2023-03-07 561 int offset, shift, cpu;
d596e923a19052 Srinivas Pandruvada 2023-03-07 562 u64 val, mask, clos;
d596e923a19052 Srinivas Pandruvada 2023-03-07 563
d596e923a19052 Srinivas Pandruvada 2023-03-07 564 if (copy_from_user(&clos_assoc, ptr, sizeof(clos_assoc)))
d596e923a19052 Srinivas Pandruvada 2023-03-07 565 return -EFAULT;
d596e923a19052 Srinivas Pandruvada 2023-03-07 566
d596e923a19052 Srinivas Pandruvada 2023-03-07 567 if (clos_assoc.socket_id > topology_max_packages())
d596e923a19052 Srinivas Pandruvada 2023-03-07 568 return -EINVAL;
d596e923a19052 Srinivas Pandruvada 2023-03-07 569
d596e923a19052 Srinivas Pandruvada 2023-03-07 570 cpu = clos_assoc.logical_cpu;
d596e923a19052 Srinivas Pandruvada 2023-03-07 571 clos = clos_assoc.clos;
d596e923a19052 Srinivas Pandruvada 2023-03-07 572
d596e923a19052 Srinivas Pandruvada 2023-03-07 573 if (assoc_cmds.punit_cpu_map)
d596e923a19052 Srinivas Pandruvada 2023-03-07 574 punit_cpu_no = cpu;
d596e923a19052 Srinivas Pandruvada 2023-03-07 575 else
d596e923a19052 Srinivas Pandruvada 2023-03-07 576 return -EOPNOTSUPP;
d596e923a19052 Srinivas Pandruvada 2023-03-07 577
d596e923a19052 Srinivas Pandruvada 2023-03-07 578 if (punit_cpu_no < 0)
d596e923a19052 Srinivas Pandruvada 2023-03-07 579 return -EINVAL;
d596e923a19052 Srinivas Pandruvada 2023-03-07 580
d596e923a19052 Srinivas Pandruvada 2023-03-07 581 punit_id = clos_assoc.power_domain_id;
d596e923a19052 Srinivas Pandruvada 2023-03-07 582 pkg_id = clos_assoc.socket_id;
d596e923a19052 Srinivas Pandruvada 2023-03-07 583
d596e923a19052 Srinivas Pandruvada 2023-03-07 @584 sst_inst = isst_common.sst_inst[pkg_id];
d596e923a19052 Srinivas Pandruvada 2023-03-07 585
d596e923a19052 Srinivas Pandruvada 2023-03-07 @586 if (clos_assoc.power_domain_id > sst_inst->number_of_power_domains)
d596e923a19052 Srinivas Pandruvada 2023-03-07 587 return -EINVAL;
d596e923a19052 Srinivas Pandruvada 2023-03-07 588
d596e923a19052 Srinivas Pandruvada 2023-03-07 @589 power_domain_info = &sst_inst->power_domain_info[punit_id];
d596e923a19052 Srinivas Pandruvada 2023-03-07 590
d596e923a19052 Srinivas Pandruvada 2023-03-07 591 offset = SST_CLOS_ASSOC_0_OFFSET +
d596e923a19052 Srinivas Pandruvada 2023-03-07 592 (punit_cpu_no / SST_CLOS_ASSOC_CPUS_PER_REG) * SST_REG_SIZE;
d596e923a19052 Srinivas Pandruvada 2023-03-07 593 shift = punit_cpu_no % SST_CLOS_ASSOC_CPUS_PER_REG;
d596e923a19052 Srinivas Pandruvada 2023-03-07 594 shift *= SST_CLOS_ASSOC_BITS_PER_CPU;
d596e923a19052 Srinivas Pandruvada 2023-03-07 595
d596e923a19052 Srinivas Pandruvada 2023-03-07 596 val = readq(power_domain_info->sst_base +
d596e923a19052 Srinivas Pandruvada 2023-03-07 597 power_domain_info->sst_header.cp_offset + offset);
d596e923a19052 Srinivas Pandruvada 2023-03-07 598 if (assoc_cmds.get_set) {
d596e923a19052 Srinivas Pandruvada 2023-03-07 599 mask = GENMASK_ULL((shift + SST_CLOS_ASSOC_BITS_PER_CPU - 1), shift);
d596e923a19052 Srinivas Pandruvada 2023-03-07 600 val &= ~mask;
d596e923a19052 Srinivas Pandruvada 2023-03-07 601 val |= (clos << shift);
d596e923a19052 Srinivas Pandruvada 2023-03-07 602 writeq(val, power_domain_info->sst_base +
d596e923a19052 Srinivas Pandruvada 2023-03-07 603 power_domain_info->sst_header.cp_offset + offset);
d596e923a19052 Srinivas Pandruvada 2023-03-07 604 } else {
d596e923a19052 Srinivas Pandruvada 2023-03-07 605 val >>= shift;
d596e923a19052 Srinivas Pandruvada 2023-03-07 606 clos_assoc.clos = val & GENMASK(SST_CLOS_ASSOC_BITS_PER_CPU - 1, 0);
d596e923a19052 Srinivas Pandruvada 2023-03-07 607 if (copy_to_user(ptr, &clos_assoc, sizeof(clos_assoc)))
d596e923a19052 Srinivas Pandruvada 2023-03-07 608 return -EFAULT;
d596e923a19052 Srinivas Pandruvada 2023-03-07 609 }
d596e923a19052 Srinivas Pandruvada 2023-03-07 610
d596e923a19052 Srinivas Pandruvada 2023-03-07 611 ptr += sizeof(clos_assoc);
d596e923a19052 Srinivas Pandruvada 2023-03-07 612 }
d596e923a19052 Srinivas Pandruvada 2023-03-07 613
d596e923a19052 Srinivas Pandruvada 2023-03-07 614 return 0;
d596e923a19052 Srinivas Pandruvada 2023-03-07 615 }
d596e923a19052 Srinivas Pandruvada 2023-03-07 616
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2024-11-30 12:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-30 12:52 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-11-28 23:00 [openeuler:OLK-5.10 2483/2483] drivers/platform/x86/intel_speed_select_if/isst_tpmi_core.c:584 isst_if_clos_assoc() warn: potential spectre issue 'isst_common.sst_inst' [r] kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202411302016.zDF1fyn1-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.