From: kernel test robot <lkp@intel.com>
To: Tejas Joglekar <Tejas.Joglekar@synopsys.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org,
Mathias Nyman <mathias.nyman@intel.com>
Cc: kbuild-all@lists.01.org, John Youn <John.Youn@synopsys.com>
Subject: Re: [PATCH v4 2/3] usb: xhci: Use temporary buffer to consolidate SG
Date: Tue, 13 Oct 2020 22:57:53 +0800 [thread overview]
Message-ID: <202010132202.5yQazLeq-lkp@intel.com> (raw)
In-Reply-To: <a4cb87733fe1e82a1a3f2b8998add6af7d363fe4.1602592488.git.joglekar@synopsys.com>
[-- Attachment #1: Type: text/plain, Size: 5995 bytes --]
Hi Tejas,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on usb/usb-testing]
[also build test WARNING on next-20201013]
[cannot apply to balbi-usb/testing/next peter.chen-usb/ci-for-usb-next v5.9]
[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/Tejas-Joglekar/Add-logic-to-consolidate-TRBs-for-Synopsys-xHC/20201013-204605
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: m68k-randconfig-m031-20201013 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
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/9d7453725e3adcd62b021dbf4cbd4f29476e71e4
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tejas-Joglekar/Add-logic-to-consolidate-TRBs-for-Synopsys-xHC/20201013-204605
git checkout 9d7453725e3adcd62b021dbf4cbd4f29476e71e4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/usb/host/xhci.c: In function 'xhci_map_temp_buffer':
>> drivers/usb/host/xhci.c:1269:19: warning: variable 'xhci' set but not used [-Wunused-but-set-variable]
1269 | struct xhci_hcd *xhci;
| ^~~~
>> drivers/usb/host/xhci.c:1266:15: warning: variable 'len' set but not used [-Wunused-but-set-variable]
1266 | unsigned int len;
| ^~~
drivers/usb/host/xhci.c: In function 'xhci_urb_temp_buffer_required':
>> drivers/usb/host/xhci.c:1305:15: warning: variable 'buf_len' set but not used [-Wunused-but-set-variable]
1305 | unsigned int buf_len;
| ^~~~~~~
drivers/usb/host/xhci.c: In function 'xhci_unmap_temp_buf':
drivers/usb/host/xhci.c:1345:15: warning: variable 'len' set but not used [-Wunused-but-set-variable]
1345 | unsigned int len;
| ^~~
>> drivers/usb/host/xhci.c:1344:22: warning: variable 'sg' set but not used [-Wunused-but-set-variable]
1344 | struct scatterlist *sg;
| ^~
vim +/xhci +1269 drivers/usb/host/xhci.c
1261
1262 static int xhci_map_temp_buffer(struct usb_hcd *hcd, struct urb *urb)
1263 {
1264 void *temp;
1265 int ret = 0;
> 1266 unsigned int len;
1267 unsigned int buf_len;
1268 enum dma_data_direction dir;
> 1269 struct xhci_hcd *xhci;
1270
1271 xhci = hcd_to_xhci(hcd);
1272 dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
1273 buf_len = urb->transfer_buffer_length;
1274
1275 temp = kzalloc_node(buf_len, GFP_ATOMIC,
1276 dev_to_node(hcd->self.sysdev));
1277
1278 if (usb_urb_dir_out(urb))
1279 len = sg_pcopy_to_buffer(urb->sg, urb->num_sgs,
1280 temp, buf_len, 0);
1281
1282 urb->transfer_buffer = temp;
1283 urb->transfer_dma = dma_map_single(hcd->self.sysdev,
1284 urb->transfer_buffer,
1285 urb->transfer_buffer_length,
1286 dir);
1287
1288 if (dma_mapping_error(hcd->self.sysdev,
1289 urb->transfer_dma)) {
1290 ret = -EAGAIN;
1291 kfree(temp);
1292 } else {
1293 urb->transfer_flags |= URB_DMA_MAP_SINGLE;
1294 }
1295
1296 return ret;
1297 }
1298
1299 static bool xhci_urb_temp_buffer_required(struct usb_hcd *hcd,
1300 struct urb *urb)
1301 {
1302 bool ret = false;
1303 unsigned int i;
1304 unsigned int len = 0;
> 1305 unsigned int buf_len;
1306 unsigned int trb_size;
1307 unsigned int max_pkt;
1308 struct scatterlist *sg;
1309 struct scatterlist *tail_sg;
1310
1311 sg = urb->sg;
1312 tail_sg = urb->sg;
1313 buf_len = urb->transfer_buffer_length;
1314 max_pkt = usb_endpoint_maxp(&urb->ep->desc);
1315
1316 if (!urb->num_sgs)
1317 return ret;
1318
1319 if (urb->dev->speed >= USB_SPEED_SUPER)
1320 trb_size = TRB_CACHE_SIZE_SS;
1321 else
1322 trb_size = TRB_CACHE_SIZE_HS;
1323
1324 if (urb->transfer_buffer_length != 0 &&
1325 !(urb->transfer_flags & URB_NO_TRANSFER_DMA_MAP)) {
1326 for_each_sg(urb->sg, sg, urb->num_sgs, i) {
1327 len = len + sg->length;
1328 if (i > trb_size - 2) {
1329 len = len - tail_sg->length;
1330 if (len < max_pkt) {
1331 ret = true;
1332 break;
1333 }
1334
1335 tail_sg = sg_next(tail_sg);
1336 }
1337 }
1338 }
1339 return ret;
1340 }
1341
1342 static void xhci_unmap_temp_buf(struct usb_hcd *hcd, struct urb *urb)
1343 {
> 1344 struct scatterlist *sg;
1345 unsigned int len;
1346 unsigned int buf_len;
1347 enum dma_data_direction dir;
1348
1349 dir = usb_urb_dir_in(urb) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
1350
1351 sg = urb->sg;
1352 buf_len = urb->transfer_buffer_length;
1353
1354 if (IS_ENABLED(CONFIG_HAS_DMA) &&
1355 (urb->transfer_flags & URB_DMA_MAP_SINGLE))
1356 dma_unmap_single(hcd->self.sysdev,
1357 urb->transfer_dma,
1358 urb->transfer_buffer_length,
1359 dir);
1360
1361 if (usb_urb_dir_in(urb))
1362 len = sg_pcopy_from_buffer(urb->sg, urb->num_sgs,
1363 urb->transfer_buffer,
1364 buf_len,
1365 0);
1366
1367 urb->transfer_flags &= ~URB_DMA_MAP_SINGLE;
1368 kfree(urb->transfer_buffer);
1369 urb->transfer_buffer = NULL;
1370 }
1371
---
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: 24012 bytes --]
next prev parent reply other threads:[~2020-10-13 14:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-13 12:43 [PATCH v4 0/3] Add logic to consolidate TRBs for Synopsys xHC Tejas Joglekar
2020-10-13 12:43 ` [PATCH v4 1/3] usb: xhci: Set quirk for XHCI_SG_TRB_CACHE_SIZE_QUIRK Tejas Joglekar
2020-10-13 12:43 ` [PATCH v4 2/3] usb: xhci: Use temporary buffer to consolidate SG Tejas Joglekar
2020-10-13 14:57 ` kernel test robot [this message]
2020-10-13 12:44 ` [PATCH v4 3/3] usb: dwc3: Pass quirk as platform data Tejas Joglekar
2020-10-14 8:37 ` Sergei Shtylyov
2020-10-14 14:28 ` Tejas Joglekar
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=202010132202.5yQazLeq-lkp@intel.com \
--to=lkp@intel.com \
--cc=John.Youn@synopsys.com \
--cc=Tejas.Joglekar@synopsys.com \
--cc=gregkh@linuxfoundation.org \
--cc=kbuild-all@lists.01.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@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 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).