public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Dan Williams <dan.j.williams@intel.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH 06/19] cxl/hdm: Default CXL_DEVTYPE_DEVMEM decoders to CXL_DECODER_DEVMEM
Date: Mon, 5 Jun 2023 09:14:15 +0800	[thread overview]
Message-ID: <202306050926.zKn5BTKk-lkp@intel.com> (raw)
In-Reply-To: <168592153054.1948938.12344684637653088842.stgit@dwillia2-xfh.jf.intel.com>

Hi Dan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 9561de3a55bed6bdd44a12820ba81ec416e705a7]

url:    https://github.com/intel-lab-lkp/linux/commits/Dan-Williams/cxl-regs-Clarify-when-a-struct-cxl_register_map-is-input-vs-output/20230605-073402
base:   9561de3a55bed6bdd44a12820ba81ec416e705a7
patch link:    https://lore.kernel.org/r/168592153054.1948938.12344684637653088842.stgit%40dwillia2-xfh.jf.intel.com
patch subject: [PATCH 06/19] cxl/hdm: Default CXL_DEVTYPE_DEVMEM decoders to CXL_DECODER_DEVMEM
config: riscv-randconfig-r033-20230605 (https://download.01.org/0day-ci/archive/20230605/202306050926.zKn5BTKk-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 4faf3aaf28226a4e950c103a14f6fc1d1fdabb1b)
reproduce (this is a W=1 build):
        mkdir -p ~/bin
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv-linux-gnu
        # https://github.com/intel-lab-lkp/linux/commit/c10eec1d3096b7e244f6c40478b3c2c1bde921fc
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Dan-Williams/cxl-regs-Clarify-when-a-struct-cxl_register_map-is-input-vs-output/20230605-073402
        git checkout c10eec1d3096b7e244f6c40478b3c2c1bde921fc
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=riscv olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/cxl/core/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306050926.zKn5BTKk-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/cxl/core/hdm.c:863:7: warning: variable 'cxled' is uninitialized when used here [-Wuninitialized]
                   if (cxled) {
                       ^~~~~
   drivers/cxl/core/hdm.c:797:36: note: initialize the variable 'cxled' to silence this warning
           struct cxl_endpoint_decoder *cxled;
                                             ^
                                              = NULL
   1 warning generated.


vim +/cxled +863 drivers/cxl/core/hdm.c

   791	
   792	static int init_hdm_decoder(struct cxl_port *port, struct cxl_decoder *cxld,
   793				    int *target_map, void __iomem *hdm, int which,
   794				    u64 *dpa_base, struct cxl_endpoint_dvsec_info *info)
   795	{
   796		u64 size, base, skip, dpa_size, lo, hi;
   797		struct cxl_endpoint_decoder *cxled;
   798		bool committed;
   799		u32 remainder;
   800		int i, rc;
   801		u32 ctrl;
   802		union {
   803			u64 value;
   804			unsigned char target_id[8];
   805		} target_list;
   806	
   807		if (should_emulate_decoders(info))
   808			return cxl_setup_hdm_decoder_from_dvsec(port, cxld, dpa_base,
   809								which, info);
   810	
   811		ctrl = readl(hdm + CXL_HDM_DECODER0_CTRL_OFFSET(which));
   812		lo = readl(hdm + CXL_HDM_DECODER0_BASE_LOW_OFFSET(which));
   813		hi = readl(hdm + CXL_HDM_DECODER0_BASE_HIGH_OFFSET(which));
   814		base = (hi << 32) + lo;
   815		lo = readl(hdm + CXL_HDM_DECODER0_SIZE_LOW_OFFSET(which));
   816		hi = readl(hdm + CXL_HDM_DECODER0_SIZE_HIGH_OFFSET(which));
   817		size = (hi << 32) + lo;
   818		committed = !!(ctrl & CXL_HDM_DECODER0_CTRL_COMMITTED);
   819		cxld->commit = cxl_decoder_commit;
   820		cxld->reset = cxl_decoder_reset;
   821	
   822		if (!committed)
   823			size = 0;
   824		if (base == U64_MAX || size == U64_MAX) {
   825			dev_warn(&port->dev, "decoder%d.%d: Invalid resource range\n",
   826				 port->id, cxld->id);
   827			return -ENXIO;
   828		}
   829	
   830		cxld->hpa_range = (struct range) {
   831			.start = base,
   832			.end = base + size - 1,
   833		};
   834	
   835		/* decoders are enabled if committed */
   836		if (committed) {
   837			cxld->flags |= CXL_DECODER_F_ENABLE;
   838			if (ctrl & CXL_HDM_DECODER0_CTRL_LOCK)
   839				cxld->flags |= CXL_DECODER_F_LOCK;
   840			if (FIELD_GET(CXL_HDM_DECODER0_CTRL_TYPE, ctrl))
   841				cxld->target_type = CXL_DECODER_HOSTMEM;
   842			else
   843				cxld->target_type = CXL_DECODER_DEVMEM;
   844			if (cxld->id != port->commit_end + 1) {
   845				dev_warn(&port->dev,
   846					 "decoder%d.%d: Committed out of order\n",
   847					 port->id, cxld->id);
   848				return -ENXIO;
   849			}
   850	
   851			if (size == 0) {
   852				dev_warn(&port->dev,
   853					 "decoder%d.%d: Committed with zero size\n",
   854					 port->id, cxld->id);
   855				return -ENXIO;
   856			}
   857			port->commit_end = cxld->id;
   858		} else {
   859			if (FIELD_GET(CXL_HDM_DECODER0_CTRL_TYPE, ctrl) == 0) {
   860				ctrl |= CXL_HDM_DECODER0_CTRL_TYPE;
   861				writel(ctrl, hdm + CXL_HDM_DECODER0_CTRL_OFFSET(which));
   862			}
 > 863			if (cxled) {
   864				struct cxl_memdev *cxlmd = cxled_to_memdev(cxled);
   865				struct cxl_dev_state *cxlds = cxlmd->cxlds;
   866	
   867				if (cxlds->type == CXL_DEVTYPE_CLASSMEM)
   868					cxld->target_type = CXL_DECODER_HOSTMEM;
   869				else
   870					cxld->target_type = CXL_DECODER_DEVMEM;
   871			} else {
   872				/* To be overridden by region type at commit time */
   873				cxld->target_type = CXL_DECODER_HOSTMEM;
   874			}
   875		}
   876		rc = eiw_to_ways(FIELD_GET(CXL_HDM_DECODER0_CTRL_IW_MASK, ctrl),
   877				  &cxld->interleave_ways);
   878		if (rc) {
   879			dev_warn(&port->dev,
   880				 "decoder%d.%d: Invalid interleave ways (ctrl: %#x)\n",
   881				 port->id, cxld->id, ctrl);
   882			return rc;
   883		}
   884		rc = eig_to_granularity(FIELD_GET(CXL_HDM_DECODER0_CTRL_IG_MASK, ctrl),
   885					 &cxld->interleave_granularity);
   886		if (rc)
   887			return rc;
   888	
   889		dev_dbg(&port->dev, "decoder%d.%d: range: %#llx-%#llx iw: %d ig: %d\n",
   890			port->id, cxld->id, cxld->hpa_range.start, cxld->hpa_range.end,
   891			cxld->interleave_ways, cxld->interleave_granularity);
   892	
   893		if (!info) {
   894			lo = readl(hdm + CXL_HDM_DECODER0_TL_LOW(which));
   895			hi = readl(hdm + CXL_HDM_DECODER0_TL_HIGH(which));
   896			target_list.value = (hi << 32) + lo;
   897			for (i = 0; i < cxld->interleave_ways; i++)
   898				target_map[i] = target_list.target_id[i];
   899	
   900			return 0;
   901		}
   902	
   903		if (!committed)
   904			return 0;
   905	
   906		dpa_size = div_u64_rem(size, cxld->interleave_ways, &remainder);
   907		if (remainder) {
   908			dev_err(&port->dev,
   909				"decoder%d.%d: invalid committed configuration size: %#llx ways: %d\n",
   910				port->id, cxld->id, size, cxld->interleave_ways);
   911			return -ENXIO;
   912		}
   913		lo = readl(hdm + CXL_HDM_DECODER0_SKIP_LOW(which));
   914		hi = readl(hdm + CXL_HDM_DECODER0_SKIP_HIGH(which));
   915		skip = (hi << 32) + lo;
   916		cxled = to_cxl_endpoint_decoder(&cxld->dev);
   917		rc = devm_cxl_dpa_reserve(cxled, *dpa_base + skip, dpa_size, skip);
   918		if (rc) {
   919			dev_err(&port->dev,
   920				"decoder%d.%d: Failed to reserve DPA range %#llx - %#llx\n (%d)",
   921				port->id, cxld->id, *dpa_base,
   922				*dpa_base + dpa_size + skip - 1, rc);
   923			return rc;
   924		}
   925		*dpa_base += dpa_size + skip;
   926	
   927		cxled->state = CXL_DECODER_STATE_AUTO;
   928	
   929		return 0;
   930	}
   931	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

       reply	other threads:[~2023-06-05  1:14 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <168592153054.1948938.12344684637653088842.stgit@dwillia2-xfh.jf.intel.com>
2023-06-05  1:14 ` kernel test robot [this message]
2023-06-06 20:10   ` [PATCH 06/19] cxl/hdm: Default CXL_DEVTYPE_DEVMEM decoders to CXL_DECODER_DEVMEM Dan Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202306050926.zKn5BTKk-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox