From: kernel test robot <lkp@intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Moritz Fischer <mdf@kernel.org>,
Matthew Gerlach <matthew.gerlach@linux.intel.com>,
linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
Wu Hao <hao.wu@intel.com>, Tom Rix <trix@redhat.com>,
Xu Yilun <yilun.xu@intel.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Subject: Re: [PATCH v1 1/1] fpga: dfl: pci: Use pci_find_vsec_capability() when looking for DFL
Date: Fri, 12 Nov 2021 12:25:25 +0800 [thread overview]
Message-ID: <202111121206.wybYQzFv-lkp@intel.com> (raw)
In-Reply-To: <20211109154127.18455-1-andriy.shevchenko@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 5170 bytes --]
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.15 next-20211111]
[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]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/fpga-dfl-pci-Use-pci_find_vsec_capability-when-looking-for-DFL/20211109-234228
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d2f38a3c6507b2520101f9a3807ed98f1bdc545a
config: i386-buildonly-randconfig-r005-20211112 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 63ef0e17e28827eae53133b3467bdac7d9729318)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/dfc10076ac7a63331954a33cabf94a1af3632210
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andy-Shevchenko/fpga-dfl-pci-Use-pci_find_vsec_capability-when-looking-for-DFL/20211109-234228
git checkout dfc10076ac7a63331954a33cabf94a1af3632210
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/ sound/
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 >>):
>> drivers/fpga/dfl-pci.c:146:34: error: use of undeclared identifier 'dev'
voff = pci_find_vsec_capability(dev, PCI_VENDOR_ID_INTEL, PCI_VSEC_ID_INTEL_DFLS);
^
>> drivers/fpga/dfl-pci.c:350:32: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
if (!pci_set_dma_mask(pcidev, DMA_BIT_MASK(64))) {
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
drivers/fpga/dfl-pci.c:351:45: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
ret = pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(64));
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
3 errors generated.
vim +/dev +146 drivers/fpga/dfl-pci.c
138
139 static int find_dfls_by_vsec(struct pci_dev *pcidev, struct dfl_fpga_enum_info *info)
140 {
141 u32 bir, offset, dfl_cnt, dfl_res;
142 resource_size_t start, len;
143 int dfl_res_off, i, bars;
144 u16 voff;
145
> 146 voff = pci_find_vsec_capability(dev, PCI_VENDOR_ID_INTEL, PCI_VSEC_ID_INTEL_DFLS);
147 if (!voff) {
148 dev_dbg(&pcidev->dev, "%s no DFL VSEC found\n", __func__);
149 return -ENODEV;
150 }
151
152 dfl_cnt = 0;
153 pci_read_config_dword(pcidev, voff + PCI_VNDR_DFLS_CNT, &dfl_cnt);
154 if (dfl_cnt > PCI_STD_NUM_BARS) {
155 dev_err(&pcidev->dev, "%s too many DFLs %d > %d\n",
156 __func__, dfl_cnt, PCI_STD_NUM_BARS);
157 return -EINVAL;
158 }
159
160 dfl_res_off = voff + PCI_VNDR_DFLS_RES;
161 if (dfl_res_off + (dfl_cnt * sizeof(u32)) > PCI_CFG_SPACE_EXP_SIZE) {
162 dev_err(&pcidev->dev, "%s DFL VSEC too big for PCIe config space\n",
163 __func__);
164 return -EINVAL;
165 }
166
167 for (i = 0, bars = 0; i < dfl_cnt; i++, dfl_res_off += sizeof(u32)) {
168 dfl_res = GENMASK(31, 0);
169 pci_read_config_dword(pcidev, dfl_res_off, &dfl_res);
170
171 bir = dfl_res & PCI_VNDR_DFLS_RES_BAR_MASK;
172 if (bir >= PCI_STD_NUM_BARS) {
173 dev_err(&pcidev->dev, "%s bad bir number %d\n",
174 __func__, bir);
175 return -EINVAL;
176 }
177
178 if (bars & BIT(bir)) {
179 dev_err(&pcidev->dev, "%s DFL for BAR %d already specified\n",
180 __func__, bir);
181 return -EINVAL;
182 }
183
184 bars |= BIT(bir);
185
186 len = pci_resource_len(pcidev, bir);
187 offset = dfl_res & PCI_VNDR_DFLS_RES_OFF_MASK;
188 if (offset >= len) {
189 dev_err(&pcidev->dev, "%s bad offset %u >= %pa\n",
190 __func__, offset, &len);
191 return -EINVAL;
192 }
193
194 dev_dbg(&pcidev->dev, "%s BAR %d offset 0x%x\n", __func__, bir, offset);
195
196 len -= offset;
197
198 start = pci_resource_start(pcidev, bir) + offset;
199
200 dfl_fpga_enum_info_add_dfl(info, start, len);
201 }
202
203 return 0;
204 }
205
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 50395 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v1 1/1] fpga: dfl: pci: Use pci_find_vsec_capability() when looking for DFL
Date: Fri, 12 Nov 2021 12:25:25 +0800 [thread overview]
Message-ID: <202111121206.wybYQzFv-lkp@intel.com> (raw)
In-Reply-To: <20211109154127.18455-1-andriy.shevchenko@linux.intel.com>
[-- Attachment #1: Type: text/plain, Size: 5294 bytes --]
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.15 next-20211111]
[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]
url: https://github.com/0day-ci/linux/commits/Andy-Shevchenko/fpga-dfl-pci-Use-pci_find_vsec_capability-when-looking-for-DFL/20211109-234228
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d2f38a3c6507b2520101f9a3807ed98f1bdc545a
config: i386-buildonly-randconfig-r005-20211112 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 63ef0e17e28827eae53133b3467bdac7d9729318)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/dfc10076ac7a63331954a33cabf94a1af3632210
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andy-Shevchenko/fpga-dfl-pci-Use-pci_find_vsec_capability-when-looking-for-DFL/20211109-234228
git checkout dfc10076ac7a63331954a33cabf94a1af3632210
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/ sound/
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 >>):
>> drivers/fpga/dfl-pci.c:146:34: error: use of undeclared identifier 'dev'
voff = pci_find_vsec_capability(dev, PCI_VENDOR_ID_INTEL, PCI_VSEC_ID_INTEL_DFLS);
^
>> drivers/fpga/dfl-pci.c:350:32: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
if (!pci_set_dma_mask(pcidev, DMA_BIT_MASK(64))) {
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
drivers/fpga/dfl-pci.c:351:45: error: shift count >= width of type [-Werror,-Wshift-count-overflow]
ret = pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(64));
^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:76:54: note: expanded from macro 'DMA_BIT_MASK'
#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
^ ~~~
3 errors generated.
vim +/dev +146 drivers/fpga/dfl-pci.c
138
139 static int find_dfls_by_vsec(struct pci_dev *pcidev, struct dfl_fpga_enum_info *info)
140 {
141 u32 bir, offset, dfl_cnt, dfl_res;
142 resource_size_t start, len;
143 int dfl_res_off, i, bars;
144 u16 voff;
145
> 146 voff = pci_find_vsec_capability(dev, PCI_VENDOR_ID_INTEL, PCI_VSEC_ID_INTEL_DFLS);
147 if (!voff) {
148 dev_dbg(&pcidev->dev, "%s no DFL VSEC found\n", __func__);
149 return -ENODEV;
150 }
151
152 dfl_cnt = 0;
153 pci_read_config_dword(pcidev, voff + PCI_VNDR_DFLS_CNT, &dfl_cnt);
154 if (dfl_cnt > PCI_STD_NUM_BARS) {
155 dev_err(&pcidev->dev, "%s too many DFLs %d > %d\n",
156 __func__, dfl_cnt, PCI_STD_NUM_BARS);
157 return -EINVAL;
158 }
159
160 dfl_res_off = voff + PCI_VNDR_DFLS_RES;
161 if (dfl_res_off + (dfl_cnt * sizeof(u32)) > PCI_CFG_SPACE_EXP_SIZE) {
162 dev_err(&pcidev->dev, "%s DFL VSEC too big for PCIe config space\n",
163 __func__);
164 return -EINVAL;
165 }
166
167 for (i = 0, bars = 0; i < dfl_cnt; i++, dfl_res_off += sizeof(u32)) {
168 dfl_res = GENMASK(31, 0);
169 pci_read_config_dword(pcidev, dfl_res_off, &dfl_res);
170
171 bir = dfl_res & PCI_VNDR_DFLS_RES_BAR_MASK;
172 if (bir >= PCI_STD_NUM_BARS) {
173 dev_err(&pcidev->dev, "%s bad bir number %d\n",
174 __func__, bir);
175 return -EINVAL;
176 }
177
178 if (bars & BIT(bir)) {
179 dev_err(&pcidev->dev, "%s DFL for BAR %d already specified\n",
180 __func__, bir);
181 return -EINVAL;
182 }
183
184 bars |= BIT(bir);
185
186 len = pci_resource_len(pcidev, bir);
187 offset = dfl_res & PCI_VNDR_DFLS_RES_OFF_MASK;
188 if (offset >= len) {
189 dev_err(&pcidev->dev, "%s bad offset %u >= %pa\n",
190 __func__, offset, &len);
191 return -EINVAL;
192 }
193
194 dev_dbg(&pcidev->dev, "%s BAR %d offset 0x%x\n", __func__, bir, offset);
195
196 len -= offset;
197
198 start = pci_resource_start(pcidev, bir) + offset;
199
200 dfl_fpga_enum_info_add_dfl(info, start, len);
201 }
202
203 return 0;
204 }
205
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 50395 bytes --]
next prev parent reply other threads:[~2021-11-12 4:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-09 15:41 [PATCH v1 1/1] fpga: dfl: pci: Use pci_find_vsec_capability() when looking for DFL Andy Shevchenko
2021-11-09 15:55 ` Tom Rix
2021-11-09 18:05 ` Andy Shevchenko
2021-11-09 18:27 ` Tom Rix
2021-11-09 18:51 ` matthew.gerlach
2021-11-10 3:44 ` Xu Yilun
2021-11-10 3:51 ` Wu, Hao
2021-11-10 8:24 ` Andy Shevchenko
2021-11-10 12:27 ` Tom Rix
2021-11-10 16:59 ` Andy Shevchenko
2024-04-03 11:01 ` Andy Shevchenko
2024-04-03 15:10 ` Xu Yilun
2024-04-03 15:46 ` Andy Shevchenko
2021-11-12 4:25 ` kernel test robot [this message]
2021-11-12 4:25 ` kernel test robot
2021-11-13 6:47 ` kernel test robot
2021-11-13 6:47 ` kernel test robot
2021-11-15 6:39 ` kernel test robot
2021-11-15 6:39 ` kernel test robot
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=202111121206.wybYQzFv-lkp@intel.com \
--to=lkp@intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=hao.wu@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-fpga@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=matthew.gerlach@linux.intel.com \
--cc=mdf@kernel.org \
--cc=trix@redhat.com \
--cc=yilun.xu@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.