[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202402182055.zfTIyfls-lkp@intel.com>
Date: Sun, 18 Feb 2024 20:58:37 +0800
From: kernel test robot <lkp@...el.com>
To: Robert Richter <rrichter@....com>,
Alison Schofield <alison.schofield@...el.com>,
Vishal Verma <vishal.l.verma@...el.com>,
Ira Weiny <ira.weiny@...el.com>,
Dan Williams <dan.j.williams@...el.com>,
Jonathan Cameron <Jonathan.Cameron@...wei.com>,
Dave Jiang <dave.jiang@...el.com>,
Davidlohr Bueso <dave@...olabs.net>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
Linux Memory Management List <linux-mm@...ck.org>,
linux-cxl@...r.kernel.org, linux-kernel@...r.kernel.org,
Len Brown <lenb@...nel.org>, Robert Richter <rrichter@....com>,
linux-acpi@...r.kernel.org
Subject: Re: [PATCH v4 3/3] lib/firmware_table: Provide buffer length
argument to cdat_table_parse()
Hi Robert,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 6be99530c92c6b8ff7a01903edc42393575ad63b]
url: https://github.com/intel-lab-lkp/linux/commits/Robert-Richter/cxl-pci-Rename-DOE-mailbox-handle-to-doe_mb/20240217-000206
base: 6be99530c92c6b8ff7a01903edc42393575ad63b
patch link: https://lore.kernel.org/r/20240216155844.406996-4-rrichter%40amd.com
patch subject: [PATCH v4 3/3] lib/firmware_table: Provide buffer length argument to cdat_table_parse()
config: i386-randconfig-006-20240217 (https://download.01.org/0day-ci/archive/20240218/202402182055.zfTIyfls-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240218/202402182055.zfTIyfls-lkp@intel.com/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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402182055.zfTIyfls-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/cxl/core/pci.c:673:4: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
672 | dev_warn(dev, "Malformed CDAT table length (%lu:%lu), discarding trailing data\n",
| ~~~
| %zu
673 | table_length, length);
| ^~~~~~~~~~~~
include/linux/dev_printk.h:146:70: note: expanded from macro 'dev_warn'
146 | dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ~~~ ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ~~~ ^~~~~~~~~~~
drivers/cxl/core/pci.c:673:18: warning: format specifies type 'unsigned long' but the argument has type 'size_t' (aka 'unsigned int') [-Wformat]
672 | dev_warn(dev, "Malformed CDAT table length (%lu:%lu), discarding trailing data\n",
| ~~~
| %zu
673 | table_length, length);
| ^~~~~~
include/linux/dev_printk.h:146:70: note: expanded from macro 'dev_warn'
146 | dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ~~~ ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ~~~ ^~~~~~~~~~~
2 warnings generated.
vim +673 drivers/cxl/core/pci.c
611
612 /**
613 * read_cdat_data - Read the CDAT data on this port
614 * @port: Port to read data from
615 *
616 * This call will sleep waiting for responses from the DOE mailbox.
617 */
618 void read_cdat_data(struct cxl_port *port)
619 {
620 struct device *uport = port->uport_dev;
621 struct device *dev = &port->dev;
622 struct pci_doe_mb *doe_mb;
623 struct pci_dev *pdev = NULL;
624 struct cxl_memdev *cxlmd;
625 struct cdat_doe_rsp *buf;
626 size_t table_length, length;
627 int rc;
628
629 if (is_cxl_memdev(uport)) {
630 struct device *host;
631
632 cxlmd = to_cxl_memdev(uport);
633 host = cxlmd->dev.parent;
634 if (dev_is_pci(host))
635 pdev = to_pci_dev(host);
636 } else if (dev_is_pci(uport)) {
637 pdev = to_pci_dev(uport);
638 }
639
640 if (!pdev)
641 return;
642
643 doe_mb = pci_find_doe_mailbox(pdev, PCI_DVSEC_VENDOR_ID_CXL,
644 CXL_DOE_PROTOCOL_TABLE_ACCESS);
645 if (!doe_mb) {
646 dev_dbg(dev, "No CDAT mailbox\n");
647 return;
648 }
649
650 port->cdat_available = true;
651
652 if (cxl_cdat_get_length(dev, doe_mb, &length)) {
653 dev_dbg(dev, "No CDAT length\n");
654 return;
655 }
656
657 /*
658 * The begin of the CDAT buffer needs space for additional 4
659 * bytes for the DOE header. Table data starts afterwards.
660 */
661 buf = devm_kzalloc(dev, sizeof(*buf) + length, GFP_KERNEL);
662 if (!buf)
663 goto err;
664
665 table_length = length;
666
667 rc = cxl_cdat_read_table(dev, doe_mb, buf, &length);
668 if (rc)
669 goto err;
670
671 if (table_length != length)
672 dev_warn(dev, "Malformed CDAT table length (%lu:%lu), discarding trailing data\n",
> 673 table_length, length);
674
675 if (cdat_checksum(buf->data, length))
676 goto err;
677
678 port->cdat.table = buf->data;
679 port->cdat.length = length;
680
681 return;
682 err:
683 /* Don't leave table data allocated on error */
684 devm_kfree(dev, buf);
685 dev_err(dev, "Failed to read/validate CDAT.\n");
686 }
687 EXPORT_SYMBOL_NS_GPL(read_cdat_data, CXL);
688
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists