Re: [PATCH v2 07/10] cxl/memscrub: Register CXL device patrol scrub with scrub configure driver

From: kernel test robot
Date: Wed Nov 22 2023 - 02:20:04 EST


Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on v6.7-rc2 next-20231121]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/shiju-jose-huawei-com/cxl-mbox-Add-GET_SUPPORTED_FEATURES-mailbox-command/20231121-182247
base: linus/master
patch link: https://lore.kernel.org/r/20231121101844.1161-8-shiju.jose%40huawei.com
patch subject: [PATCH v2 07/10] cxl/memscrub: Register CXL device patrol scrub with scrub configure driver
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20231122/202311221316.CqzLVodA-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231122/202311221316.CqzLVodA-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311221316.CqzLVodA-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/cxl/core/memscrub.c:330:9: warning: no previous prototype for function 'cxl_mem_patrol_scrub_is_visible' [-Wmissing-prototypes]
umode_t cxl_mem_patrol_scrub_is_visible(const void *drv_data, u32 attr, int region_id)
^
drivers/cxl/core/memscrub.c:330:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
umode_t cxl_mem_patrol_scrub_is_visible(const void *drv_data, u32 attr, int region_id)
^
static
>> drivers/cxl/core/memscrub.c:361:5: warning: no previous prototype for function 'cxl_mem_patrol_scrub_read' [-Wmissing-prototypes]
int cxl_mem_patrol_scrub_read(struct device *dev, u32 attr, int region_id, u64 *val)
^
drivers/cxl/core/memscrub.c:361:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int cxl_mem_patrol_scrub_read(struct device *dev, u32 attr, int region_id, u64 *val)
^
static
>> drivers/cxl/core/memscrub.c:381:5: warning: no previous prototype for function 'cxl_mem_patrol_scrub_write' [-Wmissing-prototypes]
int cxl_mem_patrol_scrub_write(struct device *dev, u32 attr, int region_id, u64 val)
^
drivers/cxl/core/memscrub.c:381:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int cxl_mem_patrol_scrub_write(struct device *dev, u32 attr, int region_id, u64 val)
^
static
>> drivers/cxl/core/memscrub.c:402:5: warning: no previous prototype for function 'cxl_mem_patrol_scrub_read_strings' [-Wmissing-prototypes]
int cxl_mem_patrol_scrub_read_strings(struct device *dev, u32 attr, int region_id,
^
drivers/cxl/core/memscrub.c:402:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int cxl_mem_patrol_scrub_read_strings(struct device *dev, u32 attr, int region_id,
^
static
drivers/cxl/core/memscrub.c:584:12: warning: unused function 'cxl_mem_ecs_set_attrbs' [-Wunused-function]
static int cxl_mem_ecs_set_attrbs(struct device *dev, int fru_id,
^
5 warnings generated.


vim +/cxl_mem_patrol_scrub_is_visible +330 drivers/cxl/core/memscrub.c

320
321 /**
322 * cxl_mem_patrol_scrub_is_visible() - Callback to return attribute visibility
323 * @drv_data: Pointer to driver-private data structure passed
324 * as argument to devm_scrub_device_register().
325 * @attr: Scrub attribute
326 * @region_id: ID of the memory region
327 *
328 * Returns: 0 on success, an error otherwise
329 */
> 330 umode_t cxl_mem_patrol_scrub_is_visible(const void *drv_data, u32 attr, int region_id)
331 {
332 const struct cxl_patrol_scrub_context *cxl_ps_ctx = drv_data;
333
334 if (attr == scrub_speed_available ||
335 attr == scrub_speed) {
336 if (!cxl_ps_ctx->scrub_cycle_changable)
337 return 0;
338 }
339
340 switch (attr) {
341 case scrub_speed_available:
342 return 0444;
343 case scrub_enable:
344 return 0200;
345 case scrub_speed:
346 return 0644;
347 default:
348 return 0;
349 }
350 }
351
352 /**
353 * cxl_mem_patrol_scrub_read() - Read callback for data attributes
354 * @dev: Pointer to scrub device
355 * @attr: Scrub attribute
356 * @region_id: ID of the memory region
357 * @val: Pointer to the returned data
358 *
359 * Returns: 0 on success, an error otherwise
360 */
> 361 int cxl_mem_patrol_scrub_read(struct device *dev, u32 attr, int region_id, u64 *val)
362 {
363
364 switch (attr) {
365 case scrub_speed:
366 return cxl_mem_ps_speed_read(dev->parent, val);
367 default:
368 return -ENOTSUPP;
369 }
370 }
371
372 /**
373 * cxl_mem_patrol_scrub_write() - Write callback for data attributes
374 * @dev: Pointer to scrub device
375 * @attr: Scrub attribute
376 * @region_id: ID of the memory region
377 * @val: Value to write
378 *
379 * Returns: 0 on success, an error otherwise
380 */
> 381 int cxl_mem_patrol_scrub_write(struct device *dev, u32 attr, int region_id, u64 val)
382 {
383 switch (attr) {
384 case scrub_enable:
385 return cxl_mem_ps_enable_write(dev->parent, val);
386 case scrub_speed:
387 return cxl_mem_ps_speed_write(dev->parent, val);
388 default:
389 return -ENOTSUPP;
390 }
391 }
392
393 /**
394 * cxl_mem_patrol_scrub_read_strings() - Read callback for string attributes
395 * @dev: Pointer to scrub device
396 * @attr: Scrub attribute
397 * @region_id: ID of the memory region
398 * @buf: Pointer to the buffer for copying returned string
399 *
400 * Returns: 0 on success, an error otherwise
401 */
> 402 int cxl_mem_patrol_scrub_read_strings(struct device *dev, u32 attr, int region_id,
403 char *buf)
404 {
405 switch (attr) {
406 case scrub_speed_available:
407 return cxl_mem_ps_speed_available_read(dev->parent, buf);
408 default:
409 return -ENOTSUPP;
410 }
411 }
412

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