Linux-USB Archive on lore.kernel.org
 help / color / Atom feed
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
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 --]

  reply index

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

Linux-USB Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-usb linux-usb/ https://lore.kernel.org/linux-usb \
		linux-usb@vger.kernel.org
	public-inbox-index linux-usb

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-usb


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git