linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [cxl:preview 55/78] drivers/cxl/region.c:104: undefined reference to `__umoddi3'
@ 2022-03-15  7:25 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-03-15  7:25 UTC (permalink / raw)
  To: Ben Widawsky
  Cc: kbuild-all, Alison Schofield, Vishal Verma, Ira Weiny,
	Ben Widawsky, Dan Williams, linux-kernel

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl.git preview
head:   9b688fc651b9d2b633e8d959454670aba1c39162
commit: 786e9e583773745bcd55c225d3a2643454dcca84 [55/78] cxl/region: Introduce a cxl_region driver
config: i386-randconfig-c021-20220314 (https://download.01.org/0day-ci/archive/20220315/202203151541.AJJWxAas-lkp@intel.com/config)
compiler: gcc-9 (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl.git/commit/?id=786e9e583773745bcd55c225d3a2643454dcca84
        git remote add cxl https://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl.git
        git fetch --no-tags cxl preview
        git checkout 786e9e583773745bcd55c225d3a2643454dcca84
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   ld: drivers/cxl/region.o: in function `sanitize_region':
>> drivers/cxl/region.c:104: undefined reference to `__umoddi3'


vim +104 drivers/cxl/region.c

    66	
    67	/**
    68	 * sanitize_region() - Check is region is reasonably configured
    69	 * @cxlr: The region to check
    70	 *
    71	 * Determination as to whether or not a region can possibly be configured is
    72	 * described in CXL Memory Device SW Guide. In order to implement the algorithms
    73	 * described there, certain more basic configuration parameters must first need
    74	 * to be validated. That is accomplished by this function.
    75	 *
    76	 * Returns 0 if the region is reasonably configured, else returns a negative
    77	 * error code.
    78	 */
    79	static int sanitize_region(const struct cxl_region *cxlr)
    80	{
    81		const int ig = region_granularity(cxlr);
    82		const int iw = region_ways(cxlr);
    83		int i;
    84	
    85		if (dev_WARN_ONCE(&cxlr->dev, !is_cxl_region_configured(cxlr),
    86				  "unconfigured regions can't be probed (race?)\n")) {
    87			return -ENXIO;
    88		}
    89	
    90		/*
    91		 * Interleave attributes should be caught by later math, but it's
    92		 * easiest to find those issues here, now.
    93		 */
    94		if (!cxl_is_interleave_ways_valid(iw)) {
    95			dev_dbg(&cxlr->dev, "Invalid number of ways\n");
    96			return -ENXIO;
    97		}
    98	
    99		if (!cxl_is_interleave_granularity_valid(ig)) {
   100			dev_dbg(&cxlr->dev, "Invalid interleave granularity\n");
   101			return -ENXIO;
   102		}
   103	
 > 104		if (cxlr->config.size % (SZ_256M * iw)) {
   105			dev_dbg(&cxlr->dev, "Invalid size. Must be multiple of %uM\n",
   106				256 * iw);
   107			return -ENXIO;
   108		}
   109	
   110		for (i = 0; i < iw; i++) {
   111			if (!cxlr->config.targets[i]) {
   112				dev_dbg(&cxlr->dev, "Missing memory device target%u",
   113					i);
   114				return -ENXIO;
   115			}
   116			if (!cxlr->config.targets[i]->dev.driver) {
   117				dev_dbg(&cxlr->dev, "%s isn't CXL.mem capable\n",
   118					dev_name(&cxlr->config.targets[i]->dev));
   119				return -ENODEV;
   120			}
   121		}
   122	
   123		return 0;
   124	}
   125	

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-03-15  7:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-15  7:25 [cxl:preview 55/78] drivers/cxl/region.c:104: undefined reference to `__umoddi3' kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).