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 <l...@intel.com>

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-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to