Hi Alastair,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on char-misc/char-misc-testing]
[cannot apply to v5.4-rc5 next-20191025]
[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/Alastair-D-Silva/Add-support-for-OpenCAPI-SCM-devices/20191028-043750
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 
da80d2e516eb858eb5bcca7fa5f5a13ed86930e4
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   drivers/nvdimm/ocxl-scm.c: In function 'scm_register_lpc_mem':
>> drivers/nvdimm/ocxl-scm.c:476:16: error: implicit declaration of function 
>> 'of_node_to_nid'; did you mean 'zone_to_nid'? 
>> [-Werror=implicit-function-declaration]
     target_node = of_node_to_nid(scm_data->pdev->dev.of_node);
                   ^~~~~~~~~~~~~~
                   zone_to_nid
   cc1: some warnings being treated as errors
--
   drivers/misc/ocxl/main.c: In function 'init_ocxl':
>> drivers/misc/ocxl/main.c:12:7: error: 'tlbie_capable' undeclared (first use 
>> in this function); did you mean 'ptracer_capable'?
     if (!tlbie_capable)
          ^~~~~~~~~~~~~
          ptracer_capable
   drivers/misc/ocxl/main.c:12:7: note: each undeclared identifier is reported 
only once for each function it appears in
--
>> drivers/misc/ocxl/config.c:4:10: fatal error: asm/pnv-ocxl.h: No such file 
>> or directory
    #include <asm/pnv-ocxl.h>
             ^~~~~~~~~~~~~~~~
   compilation terminated.
--
>> drivers/misc/ocxl/file.c:9:10: fatal error: asm/reg.h: No such file or 
>> directory
    #include <asm/reg.h>
             ^~~~~~~~~~~
   compilation terminated.
--
   drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_read32':
>> drivers/misc/ocxl/mmio.c:20:10: error: implicit declaration of function 
>> 'readl_be'; did you mean 'readsb'? [-Werror=implicit-function-declaration]
      *val = readl_be((char *)afu->global_mmio_ptr + offset);
             ^~~~~~~~
             readsb
   drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_read64':
>> drivers/misc/ocxl/mmio.c:45:10: error: implicit declaration of function 
>> 'readq_be'; did you mean 'readsb'? [-Werror=implicit-function-declaration]
      *val = readq_be((char *)afu->global_mmio_ptr + offset);
             ^~~~~~~~
             readsb
   drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_write32':
>> drivers/misc/ocxl/mmio.c:70:3: error: implicit declaration of function 
>> 'writel_be'; did you mean 'writesb'? [-Werror=implicit-function-declaration]
      writel_be(val, (char *)afu->global_mmio_ptr + offset);
      ^~~~~~~~~
      writesb
   drivers/misc/ocxl/mmio.c: In function 'ocxl_global_mmio_write64':
>> drivers/misc/ocxl/mmio.c:96:3: error: implicit declaration of function 
>> 'writeq_be'; did you mean 'writesb'? [-Werror=implicit-function-declaration]
      writeq_be(val, (char *)afu->global_mmio_ptr + offset);
      ^~~~~~~~~
      writesb
   cc1: some warnings being treated as errors
--
>> drivers/misc/ocxl/link.c:7:10: fatal error: asm/copro.h: No such file or 
>> directory
    #include <asm/copro.h>
             ^~~~~~~~~~~~~
   compilation terminated.
--
   drivers/misc/ocxl/context.c: In function 'ocxl_context_attach':
>> drivers/misc/ocxl/context.c:82:21: error: 'mm_context_t {aka struct 
>> <anonymous>}' has no member named 'id'
      pidr = mm->context.id;
                        ^
--
>> drivers/misc/ocxl/afu_irq.c:4:10: fatal error: asm/pnv-ocxl.h: No such file 
>> or directory
    #include <asm/pnv-ocxl.h>
             ^~~~~~~~~~~~~~~~
   compilation terminated.
--
   drivers/misc/ocxl/core.c: In function 'ocxl_function_open':
>> drivers/misc/ocxl/core.c:546:7: error: implicit declaration of function 
>> 'radix_enabled'; did you mean 'pat_enabled'? 
>> [-Werror=implicit-function-declaration]
     if (!radix_enabled()) {
          ^~~~~~~~~~~~~
          pat_enabled
   cc1: some warnings being treated as errors

vim +476 drivers/nvdimm/ocxl-scm.c

   402  
   403  /**
   404   * scm_register_lpc_mem() - Discover persistent memory on a device and 
register it with the NVDIMM subsystem
   405   * @scm_data: The SCM device data
   406   * Return: 0 on success
   407   */
   408  static int scm_register_lpc_mem(struct scm_data *scm_data)
   409  {
   410          struct nd_region_desc region_desc;
   411          struct nd_mapping_desc nd_mapping_desc;
   412          struct resource *lpc_mem;
   413          const struct ocxl_afu_config *config;
   414          const struct ocxl_fn_config *fn_config;
   415          int rc;
   416          unsigned long nvdimm_cmd_mask = 0;
   417          unsigned long nvdimm_flags = 0;
   418          int target_node;
   419          char serial[16+1];
   420  
   421          // Set up the reserved metadata area
   422          rc = ocxl_afu_map_lpc_mem(scm_data->ocxl_afu);
   423          if (rc < 0)
   424                  return rc;
   425  
   426          lpc_mem = ocxl_afu_lpc_mem(scm_data->ocxl_afu);
   427          if (lpc_mem == NULL)
   428                  return -EINVAL;
   429  
   430          config = ocxl_afu_config(scm_data->ocxl_afu);
   431          fn_config = ocxl_function_config(scm_data->ocxl_fn);
   432  
   433          rc = scm_reserve_metadata(scm_data, lpc_mem);
   434          if (rc)
   435                  return rc;
   436  
   437          scm_data->bus_desc.attr_groups = scm_pmem_attribute_groups;
   438          scm_data->bus_desc.provider_name = "scm";
   439          scm_data->bus_desc.ndctl = scm_ndctl;
   440          scm_data->bus_desc.module = THIS_MODULE;
   441  
   442          scm_data->nvdimm_bus = nvdimm_bus_register(&scm_data->dev,
   443                                 &scm_data->bus_desc);
   444          if (!scm_data->nvdimm_bus)
   445                  return -EINVAL;
   446  
   447          scm_data->scm_res.start = (u64)lpc_mem->start + 
SCM_LABEL_AREA_SIZE;
   448          scm_data->scm_res.end = (u64)lpc_mem->start + 
config->lpc_mem_size - 1;
   449          scm_data->scm_res.name = "SCM persistent memory";
   450  
   451          set_bit(ND_CMD_GET_CONFIG_SIZE, &nvdimm_cmd_mask);
   452          set_bit(ND_CMD_GET_CONFIG_DATA, &nvdimm_cmd_mask);
   453          set_bit(ND_CMD_SET_CONFIG_DATA, &nvdimm_cmd_mask);
   454          set_bit(ND_CMD_SMART, &nvdimm_cmd_mask);
   455  
   456          set_bit(NDD_ALIASING, &nvdimm_flags);
   457  
   458          snprintf(serial, sizeof(serial), "%llx", fn_config->serial);
   459          nd_mapping_desc.nvdimm = __nvdimm_create(scm_data->nvdimm_bus, 
scm_data,
   460                                   scm_dimm_attribute_groups,
   461                                   nvdimm_flags, nvdimm_cmd_mask,
   462                                   0, NULL, serial, &sec_ops);
   463          if (!nd_mapping_desc.nvdimm)
   464                  return -ENOMEM;
   465  
   466          if (nvdimm_bus_check_dimm_count(scm_data->nvdimm_bus, 1))
   467                  return -EINVAL;
   468  
   469          nd_mapping_desc.start = scm_data->scm_res.start;
   470          nd_mapping_desc.size = resource_size(&scm_data->scm_res);
   471          nd_mapping_desc.position = 0;
   472  
   473          scm_data->nd_set.cookie1 = fn_config->serial + 1; // allow for 
empty serial
   474          scm_data->nd_set.cookie2 = fn_config->serial + 1;
   475  
 > 476          target_node = of_node_to_nid(scm_data->pdev->dev.of_node);
   477  
   478          memset(&region_desc, 0, sizeof(region_desc));
   479          region_desc.res = &scm_data->scm_res;
   480          region_desc.attr_groups = scm_pmem_region_attribute_groups;
   481          region_desc.numa_node = NUMA_NO_NODE;
   482          region_desc.target_node = target_node;
   483          region_desc.num_mappings = 1;
   484          region_desc.mapping = &nd_mapping_desc;
   485          region_desc.nd_set = &scm_data->nd_set;
   486  
   487          set_bit(ND_REGION_PAGEMAP, &region_desc.flags);
   488          /*
   489           * NB: libnvdimm copies the data from ndr_desc into it's own
   490           * structures so passing a stack pointer is fine.
   491           */
   492          scm_data->nd_region = 
nvdimm_pmem_region_create(scm_data->nvdimm_bus,
   493                                &region_desc);
   494          if (!scm_data->nd_region)
   495                  return -EINVAL;
   496  
   497          dev_info(&scm_data->dev,
   498                   "Onlining %lluMB of persistent memory\n",
   499                   nd_mapping_desc.size / SZ_1M);
   500  
   501          return 0;
   502  }
   503  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-le...@lists.01.org

Reply via email to