Hi Binfeng,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 4cbb736395eb31ff181c4488182276601992fa0b
commit: 3bf501c87ffe1f045f86af89e8958fed62c02c94 [2439/2439] ascend agent smmu: an implementation of ARM SMMUv3 ATOS feature
config: arm64-randconfig-004-20241117 (https://download.01.org/0day-ci/archive/20241117/202411171149.AYnfA3ex-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411171149.AYnfA3ex-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/202411171149.AYnfA3ex-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c:71:20: warning: no previous prototype for 'agent_smmu_unlocked_find' [-Wmissing-prototypes]
71 | struct agent_smmu *agent_smmu_unlocked_find(u64 device_id)
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c: In function 'agent_smmu_platform_probe':
drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c:145:18: error: implicit declaration of function 'acpi_evaluate_integer'; did you mean 'acpi_evaluate_object'? [-Werror=implicit-function-declaration]
145 | status = acpi_evaluate_integer(ACPI_HANDLE(&pdev->dev), METHOD_NAME__UID,
| ^~~~~~~~~~~~~~~~~~~~~
| acpi_evaluate_object
drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c: At top level:
>> drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c:420:36: warning: 'agent_smmu_acpi_match' defined but not used [-Wunused-const-variable=]
420 | static const struct acpi_device_id agent_smmu_acpi_match[] = {
| ^~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/agent_smmu_unlocked_find +71 drivers/iommu/arm/arm-smmu-v3/ascend_smmu.c
70
> 71 struct agent_smmu *agent_smmu_unlocked_find(u64 device_id)
72 {
73 struct agent_smmu *temp = NULL;
74
75 list_for_each_entry(temp, &agent_smmu_list, list) {
76 if (temp->device_id == device_id) {
77 return temp;
78 }
79 }
80 return NULL;
81 }
82
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 7c547c6bbe6b6a9cedf63d7cdadb2529404df633
commit: 470628a716984e1325b92bef4fa2140ff5a062a5 [1474/1474] livepatch: Use breakpoint exception to optimize enabling livepatch
config: arm64-randconfig-003-20241117 (https://download.01.org/0day-ci/archive/20241117/202411170907.1enJR1qQ-lkp@…)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411170907.1enJR1qQ-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/202411170907.1enJR1qQ-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/livepatch/core.c:1728:12: warning: no previous prototype for function 'arch_klp_check_activeness_func' [-Wmissing-prototypes]
int __weak arch_klp_check_activeness_func(struct klp_func *func, int enable,
^
kernel/livepatch/core.c:1728:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int __weak arch_klp_check_activeness_func(struct klp_func *func, int enable,
^
static
kernel/livepatch/core.c:1983:14: warning: no previous prototype for function 'arch_klp_mem_alloc' [-Wmissing-prototypes]
void __weak *arch_klp_mem_alloc(size_t size)
^
kernel/livepatch/core.c:1983:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak *arch_klp_mem_alloc(size_t size)
^
static
kernel/livepatch/core.c:1988:13: warning: no previous prototype for function 'arch_klp_mem_free' [-Wmissing-prototypes]
void __weak arch_klp_mem_free(void *mem)
^
kernel/livepatch/core.c:1988:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_klp_mem_free(void *mem)
^
static
kernel/livepatch/core.c:1993:13: warning: no previous prototype for function 'arch_klp_code_modify_prepare' [-Wmissing-prototypes]
void __weak arch_klp_code_modify_prepare(void)
^
kernel/livepatch/core.c:1993:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_klp_code_modify_prepare(void)
^
static
kernel/livepatch/core.c:1997:13: warning: no previous prototype for function 'arch_klp_code_modify_post_process' [-Wmissing-prototypes]
void __weak arch_klp_code_modify_post_process(void)
^
kernel/livepatch/core.c:1997:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_klp_code_modify_post_process(void)
^
static
>> kernel/livepatch/core.c:2006:12: warning: no previous prototype for function 'arch_klp_check_breakpoint' [-Wmissing-prototypes]
int __weak arch_klp_check_breakpoint(struct arch_klp_data *arch_data, void *old_func)
^
kernel/livepatch/core.c:2006:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int __weak arch_klp_check_breakpoint(struct arch_klp_data *arch_data, void *old_func)
^
static
kernel/livepatch/core.c:2011:12: warning: no previous prototype for function 'arch_klp_add_breakpoint' [-Wmissing-prototypes]
int __weak arch_klp_add_breakpoint(struct arch_klp_data *arch_data, void *old_func)
^
kernel/livepatch/core.c:2011:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int __weak arch_klp_add_breakpoint(struct arch_klp_data *arch_data, void *old_func)
^
static
kernel/livepatch/core.c:2016:13: warning: no previous prototype for function 'arch_klp_remove_breakpoint' [-Wmissing-prototypes]
void __weak arch_klp_remove_breakpoint(struct arch_klp_data *arch_data, void *old_func)
^
kernel/livepatch/core.c:2016:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_klp_remove_breakpoint(struct arch_klp_data *arch_data, void *old_func)
^
static
>> kernel/livepatch/core.c:2020:13: warning: no previous prototype for function 'arch_klp_set_brk_func' [-Wmissing-prototypes]
void __weak arch_klp_set_brk_func(struct klp_func_node *func_node, void *new_func)
^
kernel/livepatch/core.c:2020:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __weak arch_klp_set_brk_func(struct klp_func_node *func_node, void *new_func)
^
static
9 warnings generated.
vim +/arch_klp_check_breakpoint +2006 kernel/livepatch/core.c
2005
> 2006 int __weak arch_klp_check_breakpoint(struct arch_klp_data *arch_data, void *old_func)
2007 {
2008 return 0;
2009 }
2010
2011 int __weak arch_klp_add_breakpoint(struct arch_klp_data *arch_data, void *old_func)
2012 {
2013 return -EOPNOTSUPP;
2014 }
2015
2016 void __weak arch_klp_remove_breakpoint(struct arch_klp_data *arch_data, void *old_func)
2017 {
2018 }
2019
> 2020 void __weak arch_klp_set_brk_func(struct klp_func_node *func_node, void *new_func)
2021 {
2022 func_node->brk_func = new_func;
2023 }
2024
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Zheng,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 7c547c6bbe6b6a9cedf63d7cdadb2529404df633
commit: c8783f92771c891518257c9deb22cd91d4e1a212 [1474/1474] livepatch/core: Revert module_enable_ro and module_disable_ro
config: arm64-randconfig-003-20241117 (https://download.01.org/0day-ci/archive/20241117/202411170813.ebFeHSuu-lkp@…)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411170813.ebFeHSuu-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/202411170813.ebFeHSuu-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/module/strict_rwx.c:36:6: warning: no previous prototype for function 'module_disable_ro' [-Wmissing-prototypes]
void module_disable_ro(const struct module *mod)
^
kernel/module/strict_rwx.c:36:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void module_disable_ro(const struct module *mod)
^
static
1 warning generated.
vim +/module_disable_ro +36 kernel/module/strict_rwx.c
34
35 #ifdef CONFIG_LIVEPATCH_WO_FTRACE
> 36 void module_disable_ro(const struct module *mod)
37 {
38 if (!IS_ENABLED(CONFIG_STRICT_MODULE_RWX))
39 return;
40 #ifdef CONFIG_STRICT_MODULE_RWX
41 if (!rodata_enabled)
42 return;
43 #endif
44
45 module_set_memory(mod, MOD_TEXT, set_memory_rw);
46 module_set_memory(mod, MOD_INIT_TEXT, set_memory_rw);
47 module_set_memory(mod, MOD_RODATA, set_memory_rw);
48 module_set_memory(mod, MOD_INIT_RODATA, set_memory_rw);
49 }
50 #endif /* CONFIG_LIVEPATCH_WO_FTRACE */
51
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 7c547c6bbe6b6a9cedf63d7cdadb2529404df633
commit: b89997c5e3ffa58c43c4cb3547eb0c11b75d0634 [1474/1474] IMA support script execution check
config: arm64-randconfig-004-20241117 (https://download.01.org/0day-ci/archive/20241117/202411170859.cFlE6yaf-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411170859.cFlE6yaf-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/202411170859.cFlE6yaf-lkp@intel.com/
All errors (new ones prefixed by >>):
security/security.c: In function 'security_bprm_creds_for_exec':
>> security/security.c:1071:16: error: implicit declaration of function 'ima_bprm_creds_for_exec'; did you mean 'security_bprm_creds_for_exec'? [-Wimplicit-function-declaration]
1071 | return ima_bprm_creds_for_exec(bprm);
| ^~~~~~~~~~~~~~~~~~~~~~~
| security_bprm_creds_for_exec
vim +1071 security/security.c
1043
1044 /**
1045 * security_bprm_creds_for_exec() - Prepare the credentials for exec()
1046 * @bprm: binary program information
1047 *
1048 * If the setup in prepare_exec_creds did not setup @bprm->cred->security
1049 * properly for executing @bprm->file, update the LSM's portion of
1050 * @bprm->cred->security to be what commit_creds needs to install for the new
1051 * program. This hook may also optionally check permissions (e.g. for
1052 * transitions between security domains). The hook must set @bprm->secureexec
1053 * to 1 if AT_SECURE should be set to request libc enable secure mode. @bprm
1054 * contains the linux_binprm structure.
1055 *
1056 * If execveat(2) is called with the AT_CHECK flag, bprm->is_check is set. The
1057 * result must be the same as without this flag even if the execution will
1058 * never really happen and @bprm will always be dropped.
1059 *
1060 * This hook must not change current->cred, only @bprm->cred.
1061 *
1062 * Return: Returns 0 if the hook is successful and permission is granted.
1063 */
1064 int security_bprm_creds_for_exec(struct linux_binprm *bprm)
1065 {
1066 int ret;
1067
1068 ret = call_int_hook(bprm_creds_for_exec, 0, bprm);
1069 if (ret)
1070 return ret;
> 1071 return ima_bprm_creds_for_exec(bprm);
1072 }
1073
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Tang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4c37b6449701a1fcb16050d4e517fa6d505673e1
commit: 1cfc25ccec44c17c19c892bd31d00d8f6fb23f9b [1297/1297] share_pool: Add proc node to show process overview info
config: arm64-randconfig-002-20241117 (https://download.01.org/0day-ci/archive/20241117/202411170716.qehM7edl-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411170716.qehM7edl-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/202411170716.qehM7edl-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/share_pool.c: In function 'sp_group_id_by_pid':
mm/share_pool.c:840:29: warning: ordered comparison of pointer with integer zero [-Wextra]
840 | if (!spg_ids || num <= 0)
| ^~
mm/share_pool.c: In function 'sp_compact_nodes':
mm/share_pool.c:1689:9: error: implicit declaration of function 'sysctl_compaction_handler'; did you mean 'sysctl_memcg_qos_handler'? [-Werror=implicit-function-declaration]
1689 | sysctl_compaction_handler(NULL, 1, NULL, NULL, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| sysctl_memcg_qos_handler
mm/share_pool.c: At top level:
>> mm/share_pool.c:3736:12: warning: 'proc_overview_show' defined but not used [-Wunused-function]
3736 | static int proc_overview_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~~~~~~
mm/share_pool.c:3693:12: warning: 'proc_stat_show' defined but not used [-Wunused-function]
3693 | static int proc_stat_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~~
mm/share_pool.c:3635:12: warning: 'spa_stat_show' defined but not used [-Wunused-function]
3635 | static int spa_stat_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/proc_overview_show +3736 mm/share_pool.c
3735
> 3736 static int proc_overview_show(struct seq_file *seq, void *offset)
3737 {
3738 seq_printf(seq, "%-8s %-16s %-9s %-9s %-9s %-10s %-10s %-8s\n",
3739 "PID", "COMM", "SP_ALLOC", "SP_K2U", "SP_RES", "Non-SP_RES",
3740 "Non-SP_Shm", "VIRT");
3741
3742 down_read(&sp_proc_stat_sem);
3743 idr_for_each(&sp_proc_stat_idr, idr_proc_overview_cb, seq);
3744 up_read(&sp_proc_stat_sem);
3745 return 0;
3746 }
3747
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Zhou,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 4c37b6449701a1fcb16050d4e517fa6d505673e1
commit: d45b33b72c530e64219ad997947a33f6e07d339c [1297/1297] share pool: Try to compact when memory is insufficient
config: arm64-randconfig-002-20241117 (https://download.01.org/0day-ci/archive/20241117/202411170615.z7wW3RFB-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411170615.z7wW3RFB-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/202411170615.z7wW3RFB-lkp@intel.com/
All errors (new ones prefixed by >>):
mm/share_pool.c: In function 'sp_compact_nodes':
>> mm/share_pool.c:1043:9: error: implicit declaration of function 'sysctl_compaction_handler'; did you mean 'sysctl_memcg_qos_handler'? [-Werror=implicit-function-declaration]
1043 | sysctl_compaction_handler(NULL, 1, NULL, NULL, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| sysctl_memcg_qos_handler
mm/share_pool.c: At top level:
mm/share_pool.c:2482:12: warning: 'spa_stat_show' defined but not used [-Wunused-function]
2482 | static int spa_stat_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~
mm/share_pool.c:2363:12: warning: 'proc_stat_show' defined but not used [-Wunused-function]
2363 | static int proc_stat_show(struct seq_file *seq, void *offset)
| ^~~~~~~~~~~~~~
In file included from mm/share_pool.c:22:
In function 'memalloc_noreclaim_restore',
inlined from 'sp_alloc' at mm/share_pool.c:1374:4:
include/linux/sched/mm.h:278:58: warning: 'noreclaim_flag' may be used uninitialized [-Wmaybe-uninitialized]
278 | current->flags = (current->flags & ~PF_MEMALLOC) | flags;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
mm/share_pool.c: In function 'sp_alloc':
mm/share_pool.c:1238:22: note: 'noreclaim_flag' was declared here
1238 | unsigned int noreclaim_flag;
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +1043 mm/share_pool.c
1039
1040 static unsigned long last_jiffies;
1041 static void sp_compact_nodes(struct work_struct *work)
1042 {
> 1043 sysctl_compaction_handler(NULL, 1, NULL, NULL, NULL);
1044
1045 kfree(work);
1046 }
1047
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 7c547c6bbe6b6a9cedf63d7cdadb2529404df633
commit: 24ac42fb86c6acfcb89b76d3b2fd6fba9bfd89de [1474/1474] ima: rot: Adapt VirtCCA into Rot
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20241117/202411170355.mew4P3B3-lkp@…)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 592c0fe55f6d9a811028b5f3507be91458ab2713)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241117/202411170355.mew4P3B3-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/202411170355.mew4P3B3-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from security/integrity/ima/ima_virtcca.c:7:
In file included from security/integrity/ima/ima.h:19:
In file included from include/linux/security.h:33:
In file included from include/linux/mm.h:2247:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> security/integrity/ima/ima_virtcca.c:30:5: warning: no previous prototype for function 'ima_virtcca_init' [-Wmissing-prototypes]
30 | int ima_virtcca_init(struct ima_rot *rot)
| ^
security/integrity/ima/ima_virtcca.c:30:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
30 | int ima_virtcca_init(struct ima_rot *rot)
| ^
| static
>> security/integrity/ima/ima_virtcca.c:59:5: warning: no previous prototype for function 'ima_calc_virtcca_boot_aggregate' [-Wmissing-prototypes]
59 | int ima_calc_virtcca_boot_aggregate(struct ima_digest_data *hash)
| ^
security/integrity/ima/ima_virtcca.c:59:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
59 | int ima_calc_virtcca_boot_aggregate(struct ima_digest_data *hash)
| ^
| static
>> security/integrity/ima/ima_virtcca.c:81:5: warning: no previous prototype for function 'ima_virtcca_extend' [-Wmissing-prototypes]
81 | int ima_virtcca_extend(struct tpm_digest *digests_arg, const void *args)
| ^
security/integrity/ima/ima_virtcca.c:81:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
81 | int ima_virtcca_extend(struct tpm_digest *digests_arg, const void *args)
| ^
| static
8 warnings generated.
vim +/ima_virtcca_init +30 security/integrity/ima/ima_virtcca.c
29
> 30 int ima_virtcca_init(struct ima_rot *rot)
31 {
32 int rc;
33
34 if (!is_virtcca_cvm_world() || tsi_get_version() == SMCCC_RET_NOT_SUPPORTED)
35 return -ENODEV;
36
37 rc = ima_virtcca_init_algo();
38 if (rc)
39 return rc;
40
41 if (virtcca_algo != ima_hash_algo) {
42 pr_info("VirtCCA's algo (%s) is different from ima_hash_algo (%s)\n",
43 hash_algo_name[virtcca_algo], hash_algo_name[ima_hash_algo]);
44
45 rot->allocated_banks = kcalloc(1, sizeof(*rot->allocated_banks), GFP_KERNEL);
46 if (!rot->allocated_banks)
47 return -ENOMEM;
48
49 rot->nr_allocated_banks = 1;
50 rot->allocated_banks[0].alg_id = (virtcca_algo == HASH_ALGO_SHA512) ?
51 TPM_ALG_SHA512 : TPM_ALG_SHA256;
52 rot->allocated_banks[0].digest_size = hash_digest_size[virtcca_algo];
53 rot->allocated_banks[0].crypto_id = virtcca_algo;
54 }
55
56 return 0;
57 }
58
> 59 int ima_calc_virtcca_boot_aggregate(struct ima_digest_data *hash)
60 {
61 unsigned long result;
62 struct virtcca_cvm_measurement cm = { 0 };
63
64 hash->algo = virtcca_algo;
65 hash->length = hash_digest_size[virtcca_algo];
66
67 /* Read the measurement result of RIM as the boot aggregate */
68 cm.index = RIM_MEASUREMENT_SLOT;
69
70 result = tsi_measurement_read(&cm);
71 if (result != TSI_SUCCESS) {
72 pr_err("Error reading cvm measurement 0 for boot aggregate\n");
73 return -EFAULT;
74 }
75
76 memcpy(hash->digest, cm.value, hash->length);
77
78 return 0;
79 }
80
> 81 int ima_virtcca_extend(struct tpm_digest *digests_arg, const void *args)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki