Hi Prakhar, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on arm64/for-next/core] [also build test WARNING on powerpc/next soc/for-next v5.7 next-20200605] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Prakhar-Srivastava/Adding-support-to-carry-IMA-measurement-logs/20200608-073805 base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core config: arm64-allyesconfig (attached as .config) compiler: aarch64-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>, old ones prefixed by <<): >> security/integrity/ima/ima_kexec.c:59:5: warning: no previous prototype for 'ima_get_kexec_buffer' [-Wmissing-prototypes] 59 | int ima_get_kexec_buffer(void **addr, size_t *size) | ^~~~~~~~~~~~~~~~~~~~ >> security/integrity/ima/ima_kexec.c:85:5: warning: no previous prototype for 'delete_fdt_mem_rsv' [-Wmissing-prototypes] 85 | int delete_fdt_mem_rsv(void *fdt, unsigned long start, unsigned long size) | ^~~~~~~~~~~~~~~~~~ >> security/integrity/ima/ima_kexec.c:115:5: warning: no previous prototype for 'ima_free_kexec_buffer' [-Wmissing-prototypes] 115 | int ima_free_kexec_buffer(void) | ^~~~~~~~~~~~~~~~~~~~~ >> security/integrity/ima/ima_kexec.c:144:6: warning: no previous prototype for 'remove_ima_buffer' [-Wmissing-prototypes] 144 | void remove_ima_buffer(void *fdt, int chosen_node) | ^~~~~~~~~~~~~~~~~ security/integrity/ima/ima_kexec.c:231:6: warning: no previous prototype for 'ima_add_kexec_buffer' [-Wmissing-prototypes] 231 | void ima_add_kexec_buffer(struct kimage *image) | ^~~~~~~~~~~~~~~~~~~~ vim +/ima_get_kexec_buffer +59 security/integrity/ima/ima_kexec.c 51 52 /** 53 * ima_get_kexec_buffer - get IMA buffer from the previous kernel 54 * @addr: On successful return, set to point to the buffer contents. 55 * @size: On successful return, set to the buffer size. 56 * 57 * Return: 0 on success, negative errno on error. 58 */ > 59 int ima_get_kexec_buffer(void **addr, size_t *size) 60 { 61 int ret, len; 62 unsigned long tmp_addr; 63 size_t tmp_size; 64 const void *prop; 65 66 prop = of_get_property(of_chosen, "linux,ima-kexec-buffer", &len); 67 if (!prop) 68 return -ENOENT; 69 70 ret = do_get_kexec_buffer(prop, len, &tmp_addr, &tmp_size); 71 if (ret) 72 return ret; 73 74 *addr = __va(tmp_addr); 75 *size = tmp_size; 76 77 return 0; 78 } 79 80 /** 81 * delete_fdt_mem_rsv - delete memory reservation with given address and size 82 * 83 * Return: 0 on success, or negative errno on error. 84 */ > 85 int delete_fdt_mem_rsv(void *fdt, unsigned long start, unsigned long size) 86 { 87 int i, ret, num_rsvs = fdt_num_mem_rsv(fdt); 88 89 for (i = 0; i < num_rsvs; i++) { 90 uint64_t rsv_start, rsv_size; 91 92 ret = fdt_get_mem_rsv(fdt, i, &rsv_start, &rsv_size); 93 if (ret) { 94 pr_err("Malformed device tree.\n"); 95 return -EINVAL; 96 } 97 98 if (rsv_start == start && rsv_size == size) { 99 ret = fdt_del_mem_rsv(fdt, i); 100 if (ret) { 101 pr_err("Error deleting device tree reservation.\n"); 102 return -EINVAL; 103 } 104 105 return 0; 106 } 107 } 108 109 return -ENOENT; 110 } 111 112 /** 113 * ima_free_kexec_buffer - free memory used by the IMA buffer 114 */ > 115 int ima_free_kexec_buffer(void) 116 { 117 int ret; 118 unsigned long addr; 119 size_t size; 120 struct property *prop; 121 122 prop = of_find_property(of_chosen, "linux,ima-kexec-buffer", NULL); 123 if (!prop) 124 return -ENOENT; 125 126 ret = do_get_kexec_buffer(prop->value, prop->length, &addr, &size); 127 if (ret) 128 return ret; 129 130 ret = of_remove_property(of_chosen, prop); 131 if (ret) 132 return ret; 133 134 return memblock_free(addr, size); 135 136 } 137 138 /** 139 * remove_ima_buffer - remove the IMA buffer property and reservation from @fdt 140 * 141 * The IMA measurement buffer is of no use to a subsequent kernel, so we always 142 * remove it from the device tree. 143 */ > 144 void remove_ima_buffer(void *fdt, int chosen_node) 145 { 146 int ret, len; 147 unsigned long addr; 148 size_t size; 149 const void *prop; 150 151 prop = fdt_getprop(fdt, chosen_node, "linux,ima-kexec-buffer", &len); 152 if (!prop) 153 return; 154 155 ret = do_get_kexec_buffer(prop, len, &addr, &size); 156 fdt_delprop(fdt, chosen_node, "linux,ima-kexec-buffer"); 157 if (ret) 158 return; 159 160 ret = delete_fdt_mem_rsv(fdt, addr, size); 161 if (!ret) 162 pr_debug("Removed old IMA buffer reservation.\n"); 163 } 164 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip