From: kernel test robot <lkp@intel.com>
To: Michael Grzeschik <m.grzeschik@pengutronix.de>,
linux-usb@vger.kernel.org
Cc: kbuild-all@lists.01.org, balbi@kernel.org,
laurent.pinchart@ideasonboard.com, paul.elder@ideasonboard.com,
kernel@pengutronix.de, nicolas@ndufresne.ca,
kieran.bingham@ideasonboard.com
Subject: Re: [PATCH 5/5] usb: gadget: uvc: stop the pump on more conditions
Date: Mon, 4 Apr 2022 19:30:43 +0800 [thread overview]
Message-ID: <202204041903.wSoTM3yH-lkp@intel.com> (raw)
In-Reply-To: <20220402233914.3625405-6-m.grzeschik@pengutronix.de>
Hi Michael,
I love your patch! Yet something to improve:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on v5.18-rc1 next-20220404]
[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/intel-lab-lkp/linux/commits/Michael-Grzeschik/usb-gadget-uvc-fixes-and-improvements/20220404-165031
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: arm64-randconfig-r016-20220404 (https://download.01.org/0day-ci/archive/20220404/202204041903.wSoTM3yH-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 11.2.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/intel-lab-lkp/linux/commit/3577e91e5a0a9a94ee3d4b22240e7b143c31133c
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Michael-Grzeschik/usb-gadget-uvc-fixes-and-improvements/20220404-165031
git checkout 3577e91e5a0a9a94ee3d4b22240e7b143c31133c
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/usb/gadget/function/
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/usb/gadget/function/uvc_video.c: In function 'uvcg_video_pump':
>> drivers/usb/gadget/function/uvc_video.c:371:74: error: 'struct uvc_device' has no member named 'streamon'
371 | while (video->ep->enabled || queue->queue.streaming || video->uvc->streamon) {
| ^~
vim +371 drivers/usb/gadget/function/uvc_video.c
351
352 /* --------------------------------------------------------------------------
353 * Video streaming
354 */
355
356 /*
357 * uvcg_video_pump - Pump video data into the USB requests
358 *
359 * This function fills the available USB requests (listed in req_free) with
360 * video data from the queued buffers.
361 */
362 static void uvcg_video_pump(struct work_struct *work)
363 {
364 struct uvc_video *video = container_of(work, struct uvc_video, pump);
365 struct uvc_video_queue *queue = &video->queue;
366 struct usb_request *req = NULL;
367 struct uvc_buffer *buf;
368 unsigned long flags;
369 int ret;
370
> 371 while (video->ep->enabled || queue->queue.streaming || video->uvc->streamon) {
372 /* Retrieve the first available USB request, protected by the
373 * request lock.
374 */
375 spin_lock_irqsave(&video->req_lock, flags);
376 if (list_empty(&video->req_free)) {
377 spin_unlock_irqrestore(&video->req_lock, flags);
378 return;
379 }
380 req = list_first_entry(&video->req_free, struct usb_request,
381 list);
382 list_del(&req->list);
383 spin_unlock_irqrestore(&video->req_lock, flags);
384
385 /* Retrieve the first available video buffer and fill the
386 * request, protected by the video queue irqlock.
387 */
388 spin_lock_irqsave(&queue->irqlock, flags);
389 buf = uvcg_queue_head(queue);
390 if (buf == NULL) {
391 spin_unlock_irqrestore(&queue->irqlock, flags);
392 break;
393 }
394
395 video->encode(req, video, buf);
396
397 /* With usb3 we have more requests. This will decrease the
398 * interrupt load to a quarter but also catches the corner
399 * cases, which needs to be handled */
400 if (list_empty(&video->req_free) ||
401 buf->state == UVC_BUF_STATE_DONE ||
402 !(video->req_int_count %
403 DIV_ROUND_UP(video->uvc_num_requests, 4))) {
404 video->req_int_count = 0;
405 req->no_interrupt = 0;
406 } else {
407 req->no_interrupt = 1;
408 }
409
410 /* Queue the USB request */
411 ret = uvcg_video_ep_queue(video, req);
412 spin_unlock_irqrestore(&queue->irqlock, flags);
413
414 if (ret < 0) {
415 uvcg_queue_cancel(queue, 0);
416 break;
417 }
418 video->req_int_count++;
419 }
420
421 if (!req)
422 return;
423
424 spin_lock_irqsave(&video->req_lock, flags);
425 list_add_tail(&req->list, &video->req_free);
426 spin_unlock_irqrestore(&video->req_lock, flags);
427 return;
428 }
429
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next prev parent reply other threads:[~2022-04-04 11:31 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-02 23:39 [PATCH 0/5] usb: gadget: uvc: fixes and improvements Michael Grzeschik
2022-04-02 23:39 ` [PATCH 1/5] usb: gadget: uvc: reset bytesused on queue cancel Michael Grzeschik
2022-04-05 8:43 ` Sergey Shtylyov
2022-04-05 15:01 ` Dan Vacura
2022-04-06 8:26 ` Michael Grzeschik
2022-04-02 23:39 ` [PATCH 2/5] usb: gadget: uvc: calculate the number of request depending on framesize Michael Grzeschik
2022-04-19 20:46 ` Laurent Pinchart
2022-05-08 22:48 ` Michael Grzeschik
2022-04-02 23:39 ` [PATCH 3/5] usb: gadget: uvc: increase worker prio to WQ_HIGHPRI Michael Grzeschik
2022-04-19 20:46 ` Laurent Pinchart
2022-04-29 18:51 ` Dan Vacura
2022-04-29 20:01 ` Michael Grzeschik
2022-05-02 9:00 ` Michael Grzeschik
2022-05-06 21:49 ` Dan Vacura
2022-09-28 20:12 ` Laurent Pinchart
2022-04-02 23:39 ` [PATCH 4/5] usb: gadget: uvc: call uvc uvcg_warn on completed status instead of uvcg_info Michael Grzeschik
2022-04-19 20:47 ` Laurent Pinchart
2022-04-02 23:39 ` [PATCH 5/5] usb: gadget: uvc: stop the pump on more conditions Michael Grzeschik
2022-04-04 11:30 ` kernel test robot [this message]
2022-04-04 13:07 ` Michael Grzeschik
2022-04-19 14:21 ` Greg KH
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=202204041903.wSoTM3yH-lkp@intel.com \
--to=lkp@intel.com \
--cc=balbi@kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=kernel@pengutronix.de \
--cc=kieran.bingham@ideasonboard.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-usb@vger.kernel.org \
--cc=m.grzeschik@pengutronix.de \
--cc=nicolas@ndufresne.ca \
--cc=paul.elder@ideasonboard.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.