From: Michael Grzeschik <mgr@pengutronix.de>
To: Avichal Rakesh <arakesh@google.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Daniel Scally <dan.scally@ideasonboard.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 0/2] usb: gadget: uvc: stability fixes when stopping streams
Date: Sat, 16 Sep 2023 01:16:31 +0200 [thread overview]
Message-ID: <ZQTlz9Koe2CQIsrC@pengutronix.de> (raw)
In-Reply-To: <CAMHf4WLeSC9m05XOU54yL=2xUcSqbWP0f7evM0rZRsJ=J-btWw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4481 bytes --]
Hi Avichal
On Thu, Sep 14, 2023 at 04:05:36PM -0700, Avichal Rakesh wrote:
>On Mon, Sep 11, 2023 at 9:19 PM Avichal Rakesh <arakesh@google.com> wrote:
>>
>> We have been seeing two main bugs when stopping stream:
>> 1. attempting to queue usb_requests on a disabled usb endpoint, and
>> 2. use-after-free problems for inflight requests
>>
>> Avichal Rakesh (2):
>> usb: gadget: uvc: prevent use of disabled endpoint
>> usb: gadget: uvc: prevent de-allocating inflight usb_requests
>>
>> drivers/usb/gadget/function/f_uvc.c | 11 ++++----
>> drivers/usb/gadget/function/f_uvc.h | 2 +-
>> drivers/usb/gadget/function/uvc.h | 5 +++-
>> drivers/usb/gadget/function/uvc_v4l2.c | 21 ++++++++++++---
>> drivers/usb/gadget/function/uvc_video.c | 34 +++++++++++++++++++++++--
>> 5 files changed, 60 insertions(+), 13 deletions(-)
>>
>
>Bumping this thread up. Laurent, Dan, and Michael could you take a look?
I tested the patches against my setup and it did not help.
In fact I saw two different issues when calling the streamoff event.
One issue was a stalled pipeline after the streamoff from the host came in.
The streaming application did not handle any events anymore.
The second issue was when the streamoff event is triggered sometimes the
following trace is shown, even with your patches applied.
[ 104.202689] Unable to handle kernel paging request at virtual address 005bf43a692a5fd5
[ 104.235122] Mem abort info:
[ 104.238257] ESR = 0x0000000096000004
[ 104.242449] EC = 0x25: DABT (current EL), IL = 32 bits
[ 104.248391] SET = 0, FnV = 0
[ 104.251803] EA = 0, S1PTW = 0
[ 104.255313] FSC = 0x04: level 0 translation fault
[ 104.260765] Data abort info:
[ 104.263982] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[ 104.270114] CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[ 104.275760] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 104.281698] [005bf43a692a5fd5] address between user and kernel address ranges
[ 104.290042] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
[ 104.297060] Dumping ftrace buffer:
[ 104.300869] (ftrace buffer empty)
[ 104.304862] Modules linked in: st1232 hantro_vpu v4l2_vp9 v4l2_h264 uio_pdrv_genirq fuse [last unloaded: rockchip_vpu(C)]
[ 104.312080] panfrost fde60000.gpu: Panfrost Dump: BO has no sgt, cannot dump
[ 104.317137] CPU: 0 PID: 465 Comm: irq/46-dwc3 Tainted: G C 6.5.0-20230831-2+ #5
[ 104.317144] Hardware name: WolfVision PF5 (DT)
[ 104.317148] pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 104.317154] pc : __list_del_entry_valid+0x48/0xe8
[ 104.352728] lr : dwc3_gadget_giveback+0x3c/0x1b0
[ 104.357893] sp : ffffffc08381bc60
[ 104.361593] x29: ffffffc08381bc60 x28: ffffff80047d4000 x27: ffffff80047de440
[ 104.369576] x26: 0000000000000000 x25: ffffffc08135b2d0 x24: ffffffc08381bd00
[ 104.377559] x23: 00000000ffffff98 x22: ffffff8004204880 x21: ffffff80047d4000
[ 104.385541] x20: ffffff800718dea0 x19: ffffff800718dea0 x18: 0000000000000000
[ 104.393523] x17: 7461747320687469 x16: 7720646574656c70 x15: 6d6f632074736575
[ 104.401504] x14: 716572205356203a x13: 2e3430312d207375 x12: 7461747320687469
[ 104.409486] x11: ffffffc0815c98f0 x10: 0000000000000000 x9 : ffffffc0808f4fa0
[ 104.417468] x8 : ffffffc082415000 x7 : ffffffc0808f4e2c x6 : ffffffc0823d0928
[ 104.425450] x5 : 0000000000000282 x4 : 0000000000000201 x3 : d85bf43a692a5fcd
[ 104.433431] x2 : ffffff80047d4048 x1 : ffffff800718dea0 x0 : dead000000000122
[ 104.441413] Call trace:
[ 104.444142] __list_del_entry_valid+0x48/0xe8
[ 104.449013] dwc3_gadget_giveback+0x3c/0x1b0
[ 104.453786] dwc3_gadget_ep_cleanup_cancelled_requests+0xe0/0x170
[ 104.460599] dwc3_process_event_buf+0x2a8/0xbb0
[ 104.465662] dwc3_thread_interrupt+0x4c/0x90
[ 104.470435] irq_thread_fn+0x34/0xb8
[ 104.474431] irq_thread+0x1a0/0x290
[ 104.478327] kthread+0x10c/0x120
[ 104.481933] ret_from_fork+0x10/0x20
The error path triggering these list errors are usually in the
dwc3 driver handling the cancelled or completed list.
Regards,
Michael
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2023-09-15 23:16 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-12 4:19 [PATCH v1 0/2] usb: gadget: uvc: stability fixes when stopping streams Avichal Rakesh
2023-09-12 4:19 ` [PATCH v1 1/2] usb: gadget: uvc: prevent use of disabled endpoint Avichal Rakesh
2023-09-12 4:19 ` [PATCH v1 2/2] usb: gadget: uvc: prevent de-allocating inflight usb_requests Avichal Rakesh
2023-09-20 20:03 ` [PATCH v2 " Avichal Rakesh
2023-09-28 20:19 ` [PATCH v3 " Avichal Rakesh
2023-09-28 21:04 ` Michael Grzeschik
2023-09-30 19:16 ` Avichal Rakesh
2023-09-14 23:05 ` [PATCH v1 0/2] usb: gadget: uvc: stability fixes when stopping streams Avichal Rakesh
2023-09-15 23:16 ` Michael Grzeschik [this message]
2023-09-16 1:35 ` Avichal Rakesh
2023-09-19 18:24 ` Avichal Rakesh
2023-09-27 20:47 ` Avichal Rakesh
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=ZQTlz9Koe2CQIsrC@pengutronix.de \
--to=mgr@pengutronix.de \
--cc=arakesh@google.com \
--cc=dan.scally@ideasonboard.com \
--cc=gregkh@linuxfoundation.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/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