[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPrAcgMrowvfGeOqdWAo4uCZBdUztFY-WEmpwLyp-QthgYYx7A@mail.gmail.com>
Date: Wed, 24 Sep 2025 13:32:52 +0530
From: viswanath <viswanathiyyappan@...il.com>
To: Michal Pecio <michal.pecio@...il.com>
Cc: andrew@...n.ch, andrew+netdev@...n.ch, davem@...emloft.net,
david.hunter.linux@...il.com, edumazet@...gle.com, kuba@...nel.org,
linux-kernel-mentees@...ts.linux.dev, linux-kernel@...r.kernel.org,
linux-usb@...r.kernel.org, netdev@...r.kernel.org, pabeni@...hat.com,
petkan@...leusys.com, skhan@...uxfoundation.org,
syzbot+78cae3f37c62ad092caa@...kaller.appspotmail.com
Subject: Re: [PATCH net v2] net: usb: Remove disruptive netif_wake_queue in rtl8150_set_multicast
On Wed, 24 Sept 2025 at 13:17, Michal Pecio <michal.pecio@...il.com> wrote:
>
> It's not freeing which matters but URB completion in the USB subsystem.
Does URB completion include both successful and failed completions? I
decided to go
with "free urb" because I wasn't sure of that.
> I think this description is needlessly complex, the essence is:
>
> rtl8150_start_xmit() {
> netif_stop_queue();
> usb_submit_urb(dev->tx_urb);
> }
>
> rtl8150_set_multicast() {
> netif_stop_queue();
> netif_wake_queue(); <-- wakes up TX queue before URB is done
> }
>
> rtl8150_start_xmit() {
> netif_stop_queue();
> usb_submit_urb(dev->tx_urb); <-- double submission
> }
I wasn't sure how to describe the flow of execution in a multi threaded program.
I will resubmit a v3 with this version of the execution flow
> > Reported-and-tested-by: syzbot+78cae3f37c62ad092caa@...kaller.appspotmail.com
> > Closes: https://syzkaller.appspot.com/bug?extid=78cae3f37c62ad092caa
> > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> > Signed-off-by: I Viswanath <viswanathiyyappan@...il.com>
>
> Tested-by: Michal Pecio <michal.pecio@...il.com>
Thanks,
Viswanath
Powered by blists - more mailing lists