Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2022-02-18 Thread gre...@linuxfoundation.org
On Fri, Feb 18, 2022 at 11:17:59AM +, Joakim Tjernlund wrote:
> I was happy with commit msgs and I don't know what the criticism was.

I have no context anymore, sorry.

Can someone resubmit the change again and we can take it from there?

thanks,

greg k-h


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2022-02-18 Thread Joakim Tjernlund
I was happy with commit msgs and I don't know what the criticism was.


From: gre...@linuxfoundation.org 
Sent: 18 February 2022 11:39
To: Joakim Tjernlund
Cc: Thorsten Leemhuis; Leo Li; eugene_bordenkirc...@selinc.com; 
linux-...@vger.kernel.org; linuxppc-dev@lists.ozlabs.org; ba...@kernel.org
Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to 
unrecoverable loop.

On Fri, Feb 18, 2022 at 10:21:12AM +, Joakim Tjernlund wrote:
> I think you could apply them as is, only criticism was the commit msgs.

That is always a good reason to reject a change.  Please resubmit them
with the commit message cleaned up and I will be glad to review it
again.

thanks,

greg k-h


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2022-02-18 Thread gre...@linuxfoundation.org
On Fri, Feb 18, 2022 at 10:21:12AM +, Joakim Tjernlund wrote:
> I think you could apply them as is, only criticism was the commit msgs.

That is always a good reason to reject a change.  Please resubmit them
with the commit message cleaned up and I will be glad to review it
again.

thanks,

greg k-h


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2022-02-18 Thread Joakim Tjernlund
I think you could apply them as is, only criticism was the commit msgs.

 Jocke


From: Thorsten Leemhuis 
Sent: 18 February 2022 08:11
To: Leo Li; Joakim Tjernlund; eugene_bordenkirc...@selinc.com; 
linux-...@vger.kernel.org; linuxppc-dev@lists.ozlabs.org
Cc: gre...@linuxfoundation.org; ba...@kernel.org
Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to 
unrecoverable loop.

Hi, this is your Linux kernel regression tracker speaking. Top-posting
for once, to make this easy accessible to everyone.

Sadly it looks to me like nobody is going to address this (quite old)
regression (that afaic only very few people will hit), despite the rough
patch to fix it that was already posted and tested in this thread.

Well, guess that's how it is sometimes. Marking it as "on back burner"
in regzbot to reduce the noise there:

#regzbot backburner: Tested patch available, but things nevertheless got
stuck

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)

P.S.: As the Linux kernel's regression tracker I'm getting a lot of
reports on my table. I can only look briefly into most of them and lack
knowledge about most of the areas they concern. I thus unfortunately
will sometimes get things wrong or miss something important. I hope
that's not the case here; if you think it is, don't hesitate to tell me
in a public reply, it's in everyone's interest to set the public record
straight.

#regzbot poke



On 20.01.22 13:54, Thorsten Leemhuis wrote:
> Hi, this is your Linux kernel regression tracker speaking.
>
> On 04.12.21 01:40, Leo Li wrote:
>>> -Original Message-
>>> From: Joakim Tjernlund 
>>> Sent: Thursday, December 2, 2021 4:45 PM
>>> To: regressi...@leemhuis.info; Leo Li ;
>>> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org; linuxppc-
>>> d...@lists.ozlabs.org
>>> Cc: gre...@linuxfoundation.org; ba...@kernel.org
>>> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
>>> unrecoverable loop.
>>>
>>> On Thu, 2021-12-02 at 20:35 +, Leo Li wrote:
>>>>
>>>>> -Original Message-
>>>>> From: Joakim Tjernlund 
>>>>> Sent: Wednesday, December 1, 2021 8:19 AM
>>>>> To: regressi...@leemhuis.info; Leo Li ;
>>>>> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org;
>>>>> linuxppc- d...@lists.ozlabs.org
>>>>> Cc: gre...@linuxfoundation.org; ba...@kernel.org
>>>>> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list
>>>>> leads to unrecoverable loop.
>>>>>
>>>>> On Tue, 2021-11-30 at 12:56 +0100, Joakim Tjernlund wrote:
>>>>>> On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
>>>>>>> Agreed,
>>>>>>>
>>>>>>> We are happy pick up the torch on this, but I'd like to try and
>>>>>>> hear from
>>>>> Joakim first before we do.  The patch set is his, so I'd like to
>>>>> give him the opportunity.  I think he's the only one that can add a
>>>>> truly proper description as well because he mentioned that this
>>>>> includes a "few more fixes" than just the one we ran into.  I'd
>>>>> rather hear from him than try to reverse engineer what was being
>>> addressed.
>>>>>>>
>>>>>>> Joakim, if you are still watching the thread, would you like to
>>>>>>> take a stab
>>>>> at it?  If I don't hear from you in a couple days, we'll pick up the
>>>>> torch and do what we can.
>
> Did anything happen? Sure, it's a old regression from the v3.4-rc4 days,
> but there iirc was already a tested proto-patch in that thread that
> fixes the issue. Or was progress made and I just missed it?
>
> Ciao, Thorsten
>
> P.S.: As a Linux kernel regression tracker I'm getting a lot of reports
> on my table. I can only look briefly into most of them. Unfortunately
> therefore I sometimes will get things wrong or miss something important.
> I hope that's not the case here; if you think it is, don't hesitate to
> tell me about it in a public reply, that's in everyone's interest.
>
> BTW, I have no personal interest in this issue, which is tracked using
> regzbot, my Linux kernel regression tracking bot
> (https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flinux-regtracking.leemhuis.info%2Fregzbot%2Fdata=04%7C01%7Cjoakim.tjernlund%40infinera.com%7C8784242cb55d4627e61608d9f2adec23%7C285643de5f5b4b03a1530ae2dc8aaf77%7C1%7C0%7C637807651100768999%7CUnknown%7CTWFpbGZsb3d8ey

Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2022-02-17 Thread Thorsten Leemhuis
Hi, this is your Linux kernel regression tracker speaking. Top-posting
for once, to make this easy accessible to everyone.

Sadly it looks to me like nobody is going to address this (quite old)
regression (that afaic only very few people will hit), despite the rough
patch to fix it that was already posted and tested in this thread.

Well, guess that's how it is sometimes. Marking it as "on back burner"
in regzbot to reduce the noise there:

#regzbot backburner: Tested patch available, but things nevertheless got
stuck

Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat)

P.S.: As the Linux kernel's regression tracker I'm getting a lot of
reports on my table. I can only look briefly into most of them and lack
knowledge about most of the areas they concern. I thus unfortunately
will sometimes get things wrong or miss something important. I hope
that's not the case here; if you think it is, don't hesitate to tell me
in a public reply, it's in everyone's interest to set the public record
straight.

#regzbot poke



On 20.01.22 13:54, Thorsten Leemhuis wrote:
> Hi, this is your Linux kernel regression tracker speaking.
> 
> On 04.12.21 01:40, Leo Li wrote:
>>> -Original Message-
>>> From: Joakim Tjernlund 
>>> Sent: Thursday, December 2, 2021 4:45 PM
>>> To: regressi...@leemhuis.info; Leo Li ;
>>> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org; linuxppc-
>>> d...@lists.ozlabs.org
>>> Cc: gre...@linuxfoundation.org; ba...@kernel.org
>>> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
>>> unrecoverable loop.
>>>
>>> On Thu, 2021-12-02 at 20:35 +, Leo Li wrote:
>>>>
>>>>> -Original Message-
>>>>> From: Joakim Tjernlund 
>>>>> Sent: Wednesday, December 1, 2021 8:19 AM
>>>>> To: regressi...@leemhuis.info; Leo Li ;
>>>>> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org;
>>>>> linuxppc- d...@lists.ozlabs.org
>>>>> Cc: gre...@linuxfoundation.org; ba...@kernel.org
>>>>> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list
>>>>> leads to unrecoverable loop.
>>>>>
>>>>> On Tue, 2021-11-30 at 12:56 +0100, Joakim Tjernlund wrote:
>>>>>> On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
>>>>>>> Agreed,
>>>>>>>
>>>>>>> We are happy pick up the torch on this, but I'd like to try and
>>>>>>> hear from
>>>>> Joakim first before we do.  The patch set is his, so I'd like to
>>>>> give him the opportunity.  I think he's the only one that can add a
>>>>> truly proper description as well because he mentioned that this
>>>>> includes a "few more fixes" than just the one we ran into.  I'd
>>>>> rather hear from him than try to reverse engineer what was being
>>> addressed.
>>>>>>>
>>>>>>> Joakim, if you are still watching the thread, would you like to
>>>>>>> take a stab
>>>>> at it?  If I don't hear from you in a couple days, we'll pick up the
>>>>> torch and do what we can.
> 
> Did anything happen? Sure, it's a old regression from the v3.4-rc4 days,
> but there iirc was already a tested proto-patch in that thread that
> fixes the issue. Or was progress made and I just missed it?
> 
> Ciao, Thorsten
> 
> P.S.: As a Linux kernel regression tracker I'm getting a lot of reports
> on my table. I can only look briefly into most of them. Unfortunately
> therefore I sometimes will get things wrong or miss something important.
> I hope that's not the case here; if you think it is, don't hesitate to
> tell me about it in a public reply, that's in everyone's interest.
> 
> BTW, I have no personal interest in this issue, which is tracked using
> regzbot, my Linux kernel regression tracking bot
> (https://linux-regtracking.leemhuis.info/regzbot/). I'm only posting
> this mail to get things rolling again and hence don't need to be CC on
> all further activities wrt to this regression.
> 
> #regzbot ignore-activity
> 
>>>>>> I am far away from this now and still on 4.19. I don't mind if you
>>>>>> tweak
>>>>> tweak the patches for better "upstreamability"
>>>>>
>>>>> Even better would be to migrate to the chipidea driver, I am told
>>>>> just a few tweaks are needed but this is probably something NXP
>>>>> should do as they have access to other SOC's using chipidea.
>>>>
>>>> I agree with this direction but the problem was with bandwidth.  As this
>>> controller was only used on legacy platforms, it is harder to justify new 
>>> effort
>>> on it now.
>>>
>>> Legacy? All PPC is legacy and not supported now?
>>
>> I'm not saying that they are not supported, but they are in maintenance only 
>> mode.


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2022-01-20 Thread Thorsten Leemhuis
Hi, this is your Linux kernel regression tracker speaking.

On 04.12.21 01:40, Leo Li wrote:
>> -Original Message-
>> From: Joakim Tjernlund 
>> Sent: Thursday, December 2, 2021 4:45 PM
>> To: regressi...@leemhuis.info; Leo Li ;
>> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org; linuxppc-
>> d...@lists.ozlabs.org
>> Cc: gre...@linuxfoundation.org; ba...@kernel.org
>> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
>> unrecoverable loop.
>>
>> On Thu, 2021-12-02 at 20:35 +, Leo Li wrote:
>>>
>>>> -Original Message-
>>>> From: Joakim Tjernlund 
>>>> Sent: Wednesday, December 1, 2021 8:19 AM
>>>> To: regressi...@leemhuis.info; Leo Li ;
>>>> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org;
>>>> linuxppc- d...@lists.ozlabs.org
>>>> Cc: gre...@linuxfoundation.org; ba...@kernel.org
>>>> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list
>>>> leads to unrecoverable loop.
>>>>
>>>> On Tue, 2021-11-30 at 12:56 +0100, Joakim Tjernlund wrote:
>>>>> On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
>>>>>> Agreed,
>>>>>>
>>>>>> We are happy pick up the torch on this, but I'd like to try and
>>>>>> hear from
>>>> Joakim first before we do.  The patch set is his, so I'd like to
>>>> give him the opportunity.  I think he's the only one that can add a
>>>> truly proper description as well because he mentioned that this
>>>> includes a "few more fixes" than just the one we ran into.  I'd
>>>> rather hear from him than try to reverse engineer what was being
>> addressed.
>>>>>>
>>>>>> Joakim, if you are still watching the thread, would you like to
>>>>>> take a stab
>>>> at it?  If I don't hear from you in a couple days, we'll pick up the
>>>> torch and do what we can.

Did anything happen? Sure, it's a old regression from the v3.4-rc4 days,
but there iirc was already a tested proto-patch in that thread that
fixes the issue. Or was progress made and I just missed it?

Ciao, Thorsten

P.S.: As a Linux kernel regression tracker I'm getting a lot of reports
on my table. I can only look briefly into most of them. Unfortunately
therefore I sometimes will get things wrong or miss something important.
I hope that's not the case here; if you think it is, don't hesitate to
tell me about it in a public reply, that's in everyone's interest.

BTW, I have no personal interest in this issue, which is tracked using
regzbot, my Linux kernel regression tracking bot
(https://linux-regtracking.leemhuis.info/regzbot/). I'm only posting
this mail to get things rolling again and hence don't need to be CC on
all further activities wrt to this regression.

#regzbot ignore-activity

>>>>> I am far away from this now and still on 4.19. I don't mind if you
>>>>> tweak
>>>> tweak the patches for better "upstreamability"
>>>>
>>>> Even better would be to migrate to the chipidea driver, I am told
>>>> just a few tweaks are needed but this is probably something NXP
>>>> should do as they have access to other SOC's using chipidea.
>>>
>>> I agree with this direction but the problem was with bandwidth.  As this
>> controller was only used on legacy platforms, it is harder to justify new 
>> effort
>> on it now.
>>
>> Legacy? All PPC is legacy and not supported now?
> 
> I'm not saying that they are not supported, but they are in maintenance only 
> mode.


RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-12-03 Thread Leo Li


> -Original Message-
> From: Joakim Tjernlund 
> Sent: Thursday, December 2, 2021 4:45 PM
> To: regressi...@leemhuis.info; Leo Li ;
> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org; linuxppc-
> d...@lists.ozlabs.org
> Cc: gre...@linuxfoundation.org; ba...@kernel.org
> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
> unrecoverable loop.
> 
> On Thu, 2021-12-02 at 20:35 +, Leo Li wrote:
> >
> > > -Original Message-
> > > From: Joakim Tjernlund 
> > > Sent: Wednesday, December 1, 2021 8:19 AM
> > > To: regressi...@leemhuis.info; Leo Li ;
> > > eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org;
> > > linuxppc- d...@lists.ozlabs.org
> > > Cc: gre...@linuxfoundation.org; ba...@kernel.org
> > > Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list
> > > leads to unrecoverable loop.
> > >
> > > On Tue, 2021-11-30 at 12:56 +0100, Joakim Tjernlund wrote:
> > > > On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
> > > > > Agreed,
> > > > >
> > > > > We are happy pick up the torch on this, but I'd like to try and
> > > > > hear from
> > > Joakim first before we do.  The patch set is his, so I'd like to
> > > give him the opportunity.  I think he's the only one that can add a
> > > truly proper description as well because he mentioned that this
> > > includes a "few more fixes" than just the one we ran into.  I'd
> > > rather hear from him than try to reverse engineer what was being
> addressed.
> > > > >
> > > > > Joakim, if you are still watching the thread, would you like to
> > > > > take a stab
> > > at it?  If I don't hear from you in a couple days, we'll pick up the
> > > torch and do what we can.
> > > > >
> > > >
> > > > I am far away from this now and still on 4.19. I don't mind if you
> > > > tweak
> > > tweak the patches for better "upstreamability"
> > >
> > > Even better would be to migrate to the chipidea driver, I am told
> > > just a few tweaks are needed but this is probably something NXP
> > > should do as they have access to other SOC's using chipidea.
> >
> > I agree with this direction but the problem was with bandwidth.  As this
> controller was only used on legacy platforms, it is harder to justify new 
> effort
> on it now.
> >
> 
> Legacy? All PPC is legacy and not supported now?

I'm not saying that they are not supported, but they are in maintenance only 
mode.

Regards,
Leo


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-12-02 Thread Joakim Tjernlund
On Thu, 2021-12-02 at 20:35 +, Leo Li wrote:
> 
> > -Original Message-
> > From: Joakim Tjernlund 
> > Sent: Wednesday, December 1, 2021 8:19 AM
> > To: regressi...@leemhuis.info; Leo Li ;
> > eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org; linuxppc-
> > d...@lists.ozlabs.org
> > Cc: gre...@linuxfoundation.org; ba...@kernel.org
> > Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
> > unrecoverable loop.
> > 
> > On Tue, 2021-11-30 at 12:56 +0100, Joakim Tjernlund wrote:
> > > On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
> > > > Agreed,
> > > > 
> > > > We are happy pick up the torch on this, but I'd like to try and hear 
> > > > from
> > Joakim first before we do.  The patch set is his, so I'd like to give him 
> > the
> > opportunity.  I think he's the only one that can add a truly proper 
> > description
> > as well because he mentioned that this includes a "few more fixes" than just
> > the one we ran into.  I'd rather hear from him than try to reverse engineer
> > what was being addressed.
> > > > 
> > > > Joakim, if you are still watching the thread, would you like to take a 
> > > > stab
> > at it?  If I don't hear from you in a couple days, we'll pick up the torch 
> > and do
> > what we can.
> > > > 
> > > 
> > > I am far away from this now and still on 4.19. I don't mind if you tweak
> > tweak the patches for better "upstreamability"
> > 
> > Even better would be to migrate to the chipidea driver, I am told just a few
> > tweaks are needed but this is probably something NXP should do as they
> > have access to other SOC's using chipidea.
> 
> I agree with this direction but the problem was with bandwidth.  As this 
> controller was only used on legacy platforms, it is harder to justify new 
> effort on it now.
> 

Legacy? All PPC is legacy and not supported now? 

  Jocke


RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-12-02 Thread Leo Li


> -Original Message-
> From: Joakim Tjernlund 
> Sent: Wednesday, December 1, 2021 8:19 AM
> To: regressi...@leemhuis.info; Leo Li ;
> eugene_bordenkirc...@selinc.com; linux-...@vger.kernel.org; linuxppc-
> d...@lists.ozlabs.org
> Cc: gre...@linuxfoundation.org; ba...@kernel.org
> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
> unrecoverable loop.
> 
> On Tue, 2021-11-30 at 12:56 +0100, Joakim Tjernlund wrote:
> > On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
> > > Agreed,
> > >
> > > We are happy pick up the torch on this, but I'd like to try and hear from
> Joakim first before we do.  The patch set is his, so I'd like to give him the
> opportunity.  I think he's the only one that can add a truly proper 
> description
> as well because he mentioned that this includes a "few more fixes" than just
> the one we ran into.  I'd rather hear from him than try to reverse engineer
> what was being addressed.
> > >
> > > Joakim, if you are still watching the thread, would you like to take a 
> > > stab
> at it?  If I don't hear from you in a couple days, we'll pick up the torch 
> and do
> what we can.
> > >
> >
> > I am far away from this now and still on 4.19. I don't mind if you tweak
> tweak the patches for better "upstreamability"
> 
> Even better would be to migrate to the chipidea driver, I am told just a few
> tweaks are needed but this is probably something NXP should do as they
> have access to other SOC's using chipidea.

I agree with this direction but the problem was with bandwidth.  As this 
controller was only used on legacy platforms, it is harder to justify new 
effort on it now.

Regards,
Leo



Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-12-01 Thread Joakim Tjernlund
On Tue, 2021-11-30 at 12:56 +0100, Joakim Tjernlund wrote:
> On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
> > Agreed,
> > 
> > We are happy pick up the torch on this, but I'd like to try and hear from 
> > Joakim first before we do.  The patch set is his, so I'd like to give him 
> > the opportunity.  I think he's the only one that can add a truly proper 
> > description as well because he mentioned that this includes a "few more 
> > fixes" than just the one we ran into.  I'd rather hear from him than try to 
> > reverse engineer what was being addressed.  
> > 
> > Joakim, if you are still watching the thread, would you like to take a stab 
> > at it?  If I don't hear from you in a couple days, we'll pick up the torch 
> > and do what we can.
> > 
> 
> I am far away from this now and still on 4.19. I don't mind if you tweak 
> tweak the patches for better "upstreamability" 

Even better would be to migrate to the chipidea driver, I am told just a few 
tweaks are needed but this is probably
something NXP should do as they have access to other SOC's using chipidea.

Leo ?

 Joakim


> 
>   Regards
>Joakim
> 
> > Eugene T. Bordenkircher



Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-30 Thread Joakim Tjernlund
On Mon, 2021-11-29 at 23:48 +, Eugene Bordenkircher wrote:
> Agreed,
> 
> We are happy pick up the torch on this, but I'd like to try and hear from 
> Joakim first before we do.  The patch set is his, so I'd like to give him the 
> opportunity.  I think he's the only one that can add a truly proper 
> description as well because he mentioned that this includes a "few more 
> fixes" than just the one we ran into.  I'd rather hear from him than try to 
> reverse engineer what was being addressed.  
> 
> Joakim, if you are still watching the thread, would you like to take a stab 
> at it?  If I don't hear from you in a couple days, we'll pick up the torch 
> and do what we can.
> 

I am far away from this now and still on 4.19. I don't mind if you tweak tweak 
the patches for better "upstreamability" 

  Regards
   Joakim

> Eugene T. Bordenkircher
> 
> -Original Message-
> From: Leo Li  
> Sent: Monday, November 29, 2021 3:37 PM
> To: Eugene Bordenkircher ; Thorsten Leemhuis 
> ; jo...@infinera.com 
> ; linuxppc-dev@lists.ozlabs.org; 
> linux-...@vger.kernel.org
> Cc: gre...@linuxfoundation.org; ba...@kernel.org
> Subject: RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to 
> unrecoverable loop.
> 
> [Caution - External]
> 
> > -Original Message-
> > From: Eugene Bordenkircher 
> > Sent: Monday, November 29, 2021 11:25 AM
> > To: Thorsten Leemhuis ; jo...@infinera.com 
> > ; linuxppc-dev@lists.ozlabs.org; linux- 
> > u...@vger.kernel.org
> > Cc: Leo Li ; gre...@linuxfoundation.org; 
> > ba...@kernel.org
> > Subject: RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list 
> > leads to unrecoverable loop.
> > 
> > The final result of our testing is that the patch set posted seems to 
> > address all known defects in the Linux kernel.  The mentioned 
> > additional problems are entirely caused by the antivirus solution on 
> > the windows box.  The antivirus solution blocks the disconnect 
> > messages from reaching the RNDIS driver so it has no idea the USB 
> > device went away.  There is nothing we can do to address this in the Linux 
> > kernel.
> 
> Thanks for the confirmation.
> 
> > 
> > I propose we move forward with the patchset.
> 
> I think that we should proceed to merge the patchset but it seems to need 
> some cleanup for coding style issues and better description before submitted 
> formally.
> 
> > 
> > Eugene T. Bordenkircher
> > 
> > -Original Message-
> > From: Thorsten Leemhuis 
> > Sent: Thursday, November 25, 2021 5:59 AM
> > To: Eugene Bordenkircher ; Thorsten 
> > Leemhuis ; Joakim Tjernlund 
> > ; linuxppc-dev@lists.ozlabs.org; linux- 
> > u...@vger.kernel.org
> > Cc: leoyang...@nxp.com; gre...@linuxfoundation.org; ba...@kernel.org
> > Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list 
> > leads to unrecoverable loop.
> > 
> > Hi, this is your Linux kernel regression tracker speaking.
> > 
> > Top-posting for once, to make this easy to process for everyone:
> > 
> > Li Yang and Felipe Balbi: how to move on with this? It's quite an old 
> > regression, but nevertheless it is one and thus should be fixed. Part 
> > of my position is to make that happen and thus remind developers and 
> > maintainers about this until the regression is resolved.
> > 
> > Ciao, Thorsten
> > 
> > On 16.11.21 20:11, Eugene Bordenkircher wrote:
> > > On 02.11.21 22:15, Joakim Tjernlund wrote:
> > > > On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
> > > > > On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
> > > > 
> > > > > > We've discovered a situation where the FSL udc driver
> > (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating 
> > over the request queue, but the queue has been corrupted at some point 
> > so it loops infinitely.  I believe we have narrowed into the offending 
> > code, but we are in need of assistance trying to find an appropriate 
> > fix for the problem.  The identified code appears to be in all 
> > versions of the Linux kernel the driver exists in.
> > > > > > 
> > > > > > The problem appears to be when handling a USB_REQ_GET_STATUS
> > request.  The driver gets this request and then calls the 
> > ch9getstatus() function.  In this function, it starts a request by 
> > "borrowing" the per device status_req, filling it in, and then queuing 
> > it with a call to list_add_tail() to add

RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-29 Thread Eugene Bordenkircher
Agreed,

We are happy pick up the torch on this, but I'd like to try and hear from 
Joakim first before we do.  The patch set is his, so I'd like to give him the 
opportunity.  I think he's the only one that can add a truly proper description 
as well because he mentioned that this includes a "few more fixes" than just 
the one we ran into.  I'd rather hear from him than try to reverse engineer 
what was being addressed.  

Joakim, if you are still watching the thread, would you like to take a stab at 
it?  If I don't hear from you in a couple days, we'll pick up the torch and do 
what we can.

Eugene T. Bordenkircher

-Original Message-
From: Leo Li  
Sent: Monday, November 29, 2021 3:37 PM
To: Eugene Bordenkircher ; Thorsten Leemhuis 
; jo...@infinera.com 
; linuxppc-dev@lists.ozlabs.org; 
linux-...@vger.kernel.org
Cc: gre...@linuxfoundation.org; ba...@kernel.org
Subject: RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to 
unrecoverable loop.

[Caution - External]

> -Original Message-
> From: Eugene Bordenkircher 
> Sent: Monday, November 29, 2021 11:25 AM
> To: Thorsten Leemhuis ; jo...@infinera.com 
> ; linuxppc-dev@lists.ozlabs.org; linux- 
> u...@vger.kernel.org
> Cc: Leo Li ; gre...@linuxfoundation.org; 
> ba...@kernel.org
> Subject: RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list 
> leads to unrecoverable loop.
>
> The final result of our testing is that the patch set posted seems to 
> address all known defects in the Linux kernel.  The mentioned 
> additional problems are entirely caused by the antivirus solution on 
> the windows box.  The antivirus solution blocks the disconnect 
> messages from reaching the RNDIS driver so it has no idea the USB 
> device went away.  There is nothing we can do to address this in the Linux 
> kernel.

Thanks for the confirmation.

>
> I propose we move forward with the patchset.

I think that we should proceed to merge the patchset but it seems to need some 
cleanup for coding style issues and better description before submitted 
formally.

>
> Eugene T. Bordenkircher
>
> -Original Message-
> From: Thorsten Leemhuis 
> Sent: Thursday, November 25, 2021 5:59 AM
> To: Eugene Bordenkircher ; Thorsten 
> Leemhuis ; Joakim Tjernlund 
> ; linuxppc-dev@lists.ozlabs.org; linux- 
> u...@vger.kernel.org
> Cc: leoyang...@nxp.com; gre...@linuxfoundation.org; ba...@kernel.org
> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list 
> leads to unrecoverable loop.
>
> Hi, this is your Linux kernel regression tracker speaking.
>
> Top-posting for once, to make this easy to process for everyone:
>
> Li Yang and Felipe Balbi: how to move on with this? It's quite an old 
> regression, but nevertheless it is one and thus should be fixed. Part 
> of my position is to make that happen and thus remind developers and 
> maintainers about this until the regression is resolved.
>
> Ciao, Thorsten
>
> On 16.11.21 20:11, Eugene Bordenkircher wrote:
> > On 02.11.21 22:15, Joakim Tjernlund wrote:
> >> On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
> >>> On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
> >>
> >>>> We've discovered a situation where the FSL udc driver
> (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating 
> over the request queue, but the queue has been corrupted at some point 
> so it loops infinitely.  I believe we have narrowed into the offending 
> code, but we are in need of assistance trying to find an appropriate 
> fix for the problem.  The identified code appears to be in all 
> versions of the Linux kernel the driver exists in.
> >>>>
> >>>> The problem appears to be when handling a USB_REQ_GET_STATUS
> request.  The driver gets this request and then calls the 
> ch9getstatus() function.  In this function, it starts a request by 
> "borrowing" the per device status_req, filling it in, and then queuing 
> it with a call to list_add_tail() to add the request to the endpoint 
> queue.  Right before it exits the function however, it's calling 
> ep0_prime_status(), which is filling out that same status_req 
> structure and then queuing it with another call to list_add_tail() to 
> add the request to the endpoint queue.  This adds two instances of the 
> exact same LIST_HEAD to the endpoint queue, which breaks the list 
> since the prev and next pointers end up pointing to the wrong things.  
> This ends up causing a hard loop the next time nuke() gets called, which 
> happens on the next setup IRQ.
> >>>>
> >>>> I'm not sure what the appropriate fix to this problem is, mostly 
> >>>> due to
> my lack of expertise in USB and 

RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-29 Thread Leo Li



> -Original Message-
> From: Eugene Bordenkircher 
> Sent: Monday, November 29, 2021 11:25 AM
> To: Thorsten Leemhuis ; jo...@infinera.com
> ; linuxppc-dev@lists.ozlabs.org; linux-
> u...@vger.kernel.org
> Cc: Leo Li ; gre...@linuxfoundation.org;
> ba...@kernel.org
> Subject: RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
> unrecoverable loop.
> 
> The final result of our testing is that the patch set posted seems to address 
> all
> known defects in the Linux kernel.  The mentioned additional problems are
> entirely caused by the antivirus solution on the windows box.  The antivirus
> solution blocks the disconnect messages from reaching the RNDIS driver so it
> has no idea the USB device went away.  There is nothing we can do to
> address this in the Linux kernel.

Thanks for the confirmation.

> 
> I propose we move forward with the patchset.

I think that we should proceed to merge the patchset but it seems to need some 
cleanup for coding style issues and better description before submitted 
formally.

> 
> Eugene T. Bordenkircher
> 
> -Original Message-
> From: Thorsten Leemhuis 
> Sent: Thursday, November 25, 2021 5:59 AM
> To: Eugene Bordenkircher ; Thorsten
> Leemhuis ; Joakim Tjernlund
> ; linuxppc-dev@lists.ozlabs.org; linux-
> u...@vger.kernel.org
> Cc: leoyang...@nxp.com; gre...@linuxfoundation.org; ba...@kernel.org
> Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to
> unrecoverable loop.
> 
> Hi, this is your Linux kernel regression tracker speaking.
> 
> Top-posting for once, to make this easy to process for everyone:
> 
> Li Yang and Felipe Balbi: how to move on with this? It's quite an old
> regression, but nevertheless it is one and thus should be fixed. Part of my
> position is to make that happen and thus remind developers and maintainers
> about this until the regression is resolved.
> 
> Ciao, Thorsten
> 
> On 16.11.21 20:11, Eugene Bordenkircher wrote:
> > On 02.11.21 22:15, Joakim Tjernlund wrote:
> >> On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
> >>> On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
> >>
> >>>> We've discovered a situation where the FSL udc driver
> (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over the
> request queue, but the queue has been corrupted at some point so it loops
> infinitely.  I believe we have narrowed into the offending code, but we are in
> need of assistance trying to find an appropriate fix for the problem.  The
> identified code appears to be in all versions of the Linux kernel the driver
> exists in.
> >>>>
> >>>> The problem appears to be when handling a USB_REQ_GET_STATUS
> request.  The driver gets this request and then calls the ch9getstatus()
> function.  In this function, it starts a request by "borrowing" the per device
> status_req, filling it in, and then queuing it with a call to list_add_tail() 
> to add
> the request to the endpoint queue.  Right before it exits the function
> however, it's calling ep0_prime_status(), which is filling out that same
> status_req structure and then queuing it with another call to list_add_tail() 
> to
> add the request to the endpoint queue.  This adds two instances of the exact
> same LIST_HEAD to the endpoint queue, which breaks the list since the prev
> and next pointers end up pointing to the wrong things.  This ends up causing
> a hard loop the next time nuke() gets called, which happens on the next
> setup IRQ.
> >>>>
> >>>> I'm not sure what the appropriate fix to this problem is, mostly due to
> my lack of expertise in USB and this driver stack.  The code has been this way
> in the kernel for a very long time, which suggests that it has been working,
> unless USB_REQ_GET_STATUS requests are never made.  This further
> suggests that there is something else going on that I don't understand.
> Deleting the call to ep0_prime_status() and the following ep0stall() call
> appears, on the surface, to get the device working again, but may have side
> effects that I'm not seeing.
> >>>>
> >>>> I'm hopeful someone in the community can help provide some
> information on what I may be missing or help come up with a solution to the
> problem.  A big thank you to anyone who would like to help out.
> >>>
> >>> Run into this to a while ago. Found the bug and a few more fixes.
> >>> This is against 4.19 so you may have to tweak them a bit.
> >>> Feel free to upstream them.
> >>
> >> Curious, did my patches help? Good to known once we upgrade as well.
> >

RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-29 Thread Eugene Bordenkircher
The final result of our testing is that the patch set posted seems to address 
all known defects in the Linux kernel.  The mentioned additional problems are 
entirely caused by the antivirus solution on the windows box.  The antivirus 
solution blocks the disconnect messages from reaching the RNDIS driver so it 
has no idea the USB device went away.  There is nothing we can do to address 
this in the Linux kernel.

I propose we move forward with the patchset.

Eugene T. Bordenkircher

-Original Message-
From: Thorsten Leemhuis  
Sent: Thursday, November 25, 2021 5:59 AM
To: Eugene Bordenkircher ; Thorsten Leemhuis 
; Joakim Tjernlund ; 
linuxppc-dev@lists.ozlabs.org; linux-...@vger.kernel.org
Cc: leoyang...@nxp.com; gre...@linuxfoundation.org; ba...@kernel.org
Subject: Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to 
unrecoverable loop.

Hi, this is your Linux kernel regression tracker speaking.

Top-posting for once, to make this easy to process for everyone:

Li Yang and Felipe Balbi: how to move on with this? It's quite an old 
regression, but nevertheless it is one and thus should be fixed. Part of my 
position is to make that happen and thus remind developers and maintainers 
about this until the regression is resolved.

Ciao, Thorsten

On 16.11.21 20:11, Eugene Bordenkircher wrote:
> On 02.11.21 22:15, Joakim Tjernlund wrote:
>> On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
>>> On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
>>
>>>> We've discovered a situation where the FSL udc driver 
>>>> (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over 
>>>> the request queue, but the queue has been corrupted at some point so it 
>>>> loops infinitely.  I believe we have narrowed into the offending code, but 
>>>> we are in need of assistance trying to find an appropriate fix for the 
>>>> problem.  The identified code appears to be in all versions of the Linux 
>>>> kernel the driver exists in.
>>>>
>>>> The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
>>>> driver gets this request and then calls the ch9getstatus() function.  In 
>>>> this function, it starts a request by "borrowing" the per device 
>>>> status_req, filling it in, and then queuing it with a call to 
>>>> list_add_tail() to add the request to the endpoint queue.  Right before it 
>>>> exits the function however, it's calling ep0_prime_status(), which is 
>>>> filling out that same status_req structure and then queuing it with 
>>>> another call to list_add_tail() to add the request to the endpoint queue.  
>>>> This adds two instances of the exact same LIST_HEAD to the endpoint queue, 
>>>> which breaks the list since the prev and next pointers end up pointing to 
>>>> the wrong things.  This ends up causing a hard loop the next time nuke() 
>>>> gets called, which happens on the next setup IRQ.
>>>>
>>>> I'm not sure what the appropriate fix to this problem is, mostly due to my 
>>>> lack of expertise in USB and this driver stack.  The code has been this 
>>>> way in the kernel for a very long time, which suggests that it has been 
>>>> working, unless USB_REQ_GET_STATUS requests are never made.  This further 
>>>> suggests that there is something else going on that I don't understand.  
>>>> Deleting the call to ep0_prime_status() and the following ep0stall() call 
>>>> appears, on the surface, to get the device working again, but may have 
>>>> side effects that I'm not seeing.
>>>>
>>>> I'm hopeful someone in the community can help provide some information on 
>>>> what I may be missing or help come up with a solution to the problem.  A 
>>>> big thank you to anyone who would like to help out.
>>>
>>> Run into this to a while ago. Found the bug and a few more fixes.
>>> This is against 4.19 so you may have to tweak them a bit.
>>> Feel free to upstream them.
>>
>> Curious, did my patches help? Good to known once we upgrade as well.
>
> There's good news and bad news.
>
> The good news is that this appears to stop the driver from entering an 
> infinite loop, which prevents the Linux system from locking up and 
> never recovering.  So I'm willing to say we've made the behavior 
> better.
>
> The bad news is that once we get past this point, there is new bad 
> behavior.  What is on top of this driver in our system is the RNDIS 
> gadget driver communicating to a Laptop running Win10 -1809.
> Everything appears to work fine with

Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-25 Thread Thorsten Leemhuis
Hi, this is your Linux kernel regression tracker speaking.

Top-posting for once, to make this easy to process for everyone:

Li Yang and Felipe Balbi: how to move on with this? It's quite an old
regression, but nevertheless it is one and thus should be fixed. Part of
my position is to make that happen and thus remind developers and
maintainers about this until the regression is resolved.

Ciao, Thorsten

On 16.11.21 20:11, Eugene Bordenkircher wrote:
> On 02.11.21 22:15, Joakim Tjernlund wrote:
>> On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
>>> On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
>>
 We've discovered a situation where the FSL udc driver 
 (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over 
 the request queue, but the queue has been corrupted at some point so it 
 loops infinitely.  I believe we have narrowed into the offending code, but 
 we are in need of assistance trying to find an appropriate fix for the 
 problem.  The identified code appears to be in all versions of the Linux 
 kernel the driver exists in.

 The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
 driver gets this request and then calls the ch9getstatus() function.  In 
 this function, it starts a request by "borrowing" the per device 
 status_req, filling it in, and then queuing it with a call to 
 list_add_tail() to add the request to the endpoint queue.  Right before it 
 exits the function however, it's calling ep0_prime_status(), which is 
 filling out that same status_req structure and then queuing it with 
 another call to list_add_tail() to add the request to the endpoint queue.  
 This adds two instances of the exact same LIST_HEAD to the endpoint queue, 
 which breaks the list since the prev and next pointers end up pointing to 
 the wrong things.  This ends up causing a hard loop the next time nuke() 
 gets called, which happens on the next setup IRQ.

 I'm not sure what the appropriate fix to this problem is, mostly due to my 
 lack of expertise in USB and this driver stack.  The code has been this 
 way in the kernel for a very long time, which suggests that it has been 
 working, unless USB_REQ_GET_STATUS requests are never made.  This further 
 suggests that there is something else going on that I don't understand.  
 Deleting the call to ep0_prime_status() and the following ep0stall() call 
 appears, on the surface, to get the device working again, but may have 
 side effects that I'm not seeing.

 I'm hopeful someone in the community can help provide some information on 
 what I may be missing or help come up with a solution to the problem.  A 
 big thank you to anyone who would like to help out.
>>>
>>> Run into this to a while ago. Found the bug and a few more fixes.
>>> This is against 4.19 so you may have to tweak them a bit.
>>> Feel free to upstream them.
>>
>> Curious, did my patches help? Good to known once we upgrade as well.
> 
> There's good news and bad news.
> 
> The good news is that this appears to stop the driver from entering
> an infinite loop, which prevents the Linux system from locking up and
> never recovering.  So I'm willing to say we've made the behavior
> better.
> 
> The bad news is that once we get past this point, there is new bad
> behavior.  What is on top of this driver in our system is the RNDIS
> gadget driver communicating to a Laptop running Win10 -1809.
> Everything appears to work fine with the Linux system until there is
> a USB disconnect.  After the disconnect, the Linux side appears to
> continue on just fine, but the Windows side doesn't seem to recognize
> the disconnect, which causes the USB driver on that side to hang
> forever and eventually blue screen the box.  This doesn't happen on
> all machines, just a select few.   I think we can isolate the
> behavior to a specific antivirus/security software driver that is
> inserting itself into the USB stack and filtering the disconnect
> message, but we're still proving that.
> 
> I'm about 90% certain this is a different problem and we can call
> this patchset good, at least for our test setup.  My only hesitation
> is if the Linux side is sending a set of responses that are confusing
> the Windows side (specifically this antivirus) or not.  I'd be
> content calling that a separate defect though and letting this one
> close up with that patchset.

P.S.: As a Linux kernel regression tracker I'm getting a lot of reports
on my table. I can only look briefly into most of them. Unfortunately
therefore I sometimes will get things wrong or miss something important.
I hope that's not the case here; if you think it is, don't hesitate to
tell me about it in a public reply. That's in everyone's interest, as
what I wrote above might be misleading to everyone reading this; any
suggestion I gave they thus might sent someone 

RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-16 Thread Eugene Bordenkircher
On 02.11.21 22:15, Joakim Tjernlund wrote:
> On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
>> On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
>
>>> We've discovered a situation where the FSL udc driver 
>>> (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over 
>>> the request queue, but the queue has been corrupted at some point so it 
>>> loops infinitely.  I believe we have narrowed into the offending code, but 
>>> we are in need of assistance trying to find an appropriate fix for the 
>>> problem.  The identified code appears to be in all versions of the Linux 
>>> kernel the driver exists in.
>>>
>>> The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
>>> driver gets this request and then calls the ch9getstatus() function.  In 
>>> this function, it starts a request by "borrowing" the per device 
>>> status_req, filling it in, and then queuing it with a call to 
>>> list_add_tail() to add the request to the endpoint queue.  Right before it 
>>> exits the function however, it's calling ep0_prime_status(), which is 
>>> filling out that same status_req structure and then queuing it with another 
>>> call to list_add_tail() to add the request to the endpoint queue.  This 
>>> adds two instances of the exact same LIST_HEAD to the endpoint queue, which 
>>> breaks the list since the prev and next pointers end up pointing to the 
>>> wrong things.  This ends up causing a hard loop the next time nuke() gets 
>>> called, which happens on the next setup IRQ.
>>>
>>> I'm not sure what the appropriate fix to this problem is, mostly due to my 
>>> lack of expertise in USB and this driver stack.  The code has been this way 
>>> in the kernel for a very long time, which suggests that it has been 
>>> working, unless USB_REQ_GET_STATUS requests are never made.  This further 
>>> suggests that there is something else going on that I don't understand.  
>>> Deleting the call to ep0_prime_status() and the following ep0stall() call 
>>> appears, on the surface, to get the device working again, but may have side 
>>> effects that I'm not seeing.
>>>
>>> I'm hopeful someone in the community can help provide some information on 
>>> what I may be missing or help come up with a solution to the problem.  A 
>>> big thank you to anyone who would like to help out.
>>>
>>> Eugene
>>
>> Run into this to a while ago. Found the bug and a few more fixes.
>> This is against 4.19 so you may have to tweak them a bit.
>> Feel free to upstream them.
>>
>>  Jocke
>
> Curious, did my patches help? Good to known once we upgrade as well.
>
>  Jocke

There's good news and bad news.

The good news is that this appears to stop the driver from entering an infinite 
loop, which prevents the Linux system from locking up and never recovering.  So 
I'm willing to say we've made the behavior better.

The bad news is that once we get past this point, there is new bad behavior.  
What is on top of this driver in our system is the RNDIS gadget driver 
communicating to a Laptop running Win10 -1809.  Everything appears to work fine 
with the Linux system until there is a USB disconnect.  After the disconnect, 
the Linux side appears to continue on just fine, but the Windows side doesn't 
seem to recognize the disconnect, which causes the USB driver on that side to 
hang forever and eventually blue screen the box.  This doesn't happen on all 
machines, just a select few.   I think we can isolate the behavior to a 
specific antivirus/security software driver that is inserting itself into the 
USB stack and filtering the disconnect message, but we're still proving that.

I'm about 90% certain this is a different problem and we can call this patchset 
good, at least for our test setup.  My only hesitation is if the Linux side is 
sending a set of responses that are confusing the Windows side (specifically 
this antivirus) or not.  I'd be content calling that a separate defect though 
and letting this one close up with that patchset.

Eugene


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-15 Thread Thorsten Leemhuis
Hi, this is your Linux kernel regression tracker speaking.

This looks stalled, as afaics nothing to get this regression fixed
happened since below mail. How can we things rolling again?

Eugene, were you able to look into the patch from Joakim?

Or did I miss anything and some progress to fix this was made elsewhere?
Please let me know if that's the case.

Ciao, Thorsten (carrying his Linux kernel regression tracker hat)

P.S.: As a Linux kernel regression tracker I'm getting a lot of reports
on my table. I can only look briefly into most of them. Unfortunately
therefore I sometimes will get things wrong or miss something important.
I hope that's not the case here; if you think it is, don't hesitate to
tell me about it in a public reply. That's in everyone's interest, as
what I wrote above might be misleading to everyone reading this; any
suggestion I gave they thus might sent someone reading this down the
wrong rabbit hole, which none of us wants.

P.P.S.: Feel free to ignore the following lines, they are only meant for
regzbot, my Linux kernel regression tracking bot
(https://linux-regtracking.leemhuis.info/regzbot/):

#regzbot poke

On 02.11.21 22:15, Joakim Tjernlund wrote:
> On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
>> On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
>
>>> We've discovered a situation where the FSL udc driver 
>>> (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over 
>>> the request queue, but the queue has been corrupted at some point so it 
>>> loops infinitely.  I believe we have narrowed into the offending code, but 
>>> we are in need of assistance trying to find an appropriate fix for the 
>>> problem.  The identified code appears to be in all versions of the Linux 
>>> kernel the driver exists in.
>>>
>>> The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
>>> driver gets this request and then calls the ch9getstatus() function.  In 
>>> this function, it starts a request by "borrowing" the per device 
>>> status_req, filling it in, and then queuing it with a call to 
>>> list_add_tail() to add the request to the endpoint queue.  Right before it 
>>> exits the function however, it's calling ep0_prime_status(), which is 
>>> filling out that same status_req structure and then queuing it with another 
>>> call to list_add_tail() to add the request to the endpoint queue.  This 
>>> adds two instances of the exact same LIST_HEAD to the endpoint queue, which 
>>> breaks the list since the prev and next pointers end up pointing to the 
>>> wrong things.  This ends up causing a hard loop the next time nuke() gets 
>>> called, which happens on the next setup IRQ.
>>>
>>> I'm not sure what the appropriate fix to this problem is, mostly due to my 
>>> lack of expertise in USB and this driver stack.  The code has been this way 
>>> in the kernel for a very long time, which suggests that it has been 
>>> working, unless USB_REQ_GET_STATUS requests are never made.  This further 
>>> suggests that there is something else going on that I don't understand.  
>>> Deleting the call to ep0_prime_status() and the following ep0stall() call 
>>> appears, on the surface, to get the device working again, but may have side 
>>> effects that I'm not seeing.
>>>
>>> I'm hopeful someone in the community can help provide some information on 
>>> what I may be missing or help come up with a solution to the problem.  A 
>>> big thank you to anyone who would like to help out.
>>>
>>> Eugene
>>
>> Run into this to a while ago. Found the bug and a few more fixes.
>> This is against 4.19 so you may have to tweak them a bit.
>> Feel free to upstream them.
>>
>>  Jocke 
> 
> Curious, did my patches help? Good to known once we upgrade as well.
> 
>  Jocke


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-11-02 Thread Joakim Tjernlund
On Sat, 2021-10-30 at 14:20 +, Joakim Tjernlund wrote:
> On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
> > Hello all,
> > 
> > We've discovered a situation where the FSL udc driver 
> > (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over 
> > the request queue, but the queue has been corrupted at some point so it 
> > loops infinitely.  I believe we have narrowed into the offending code, but 
> > we are in need of assistance trying to find an appropriate fix for the 
> > problem.  The identified code appears to be in all versions of the Linux 
> > kernel the driver exists in.
> > 
> > The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
> > driver gets this request and then calls the ch9getstatus() function.  In 
> > this function, it starts a request by "borrowing" the per device 
> > status_req, filling it in, and then queuing it with a call to 
> > list_add_tail() to add the request to the endpoint queue.  Right before it 
> > exits the function however, it's calling ep0_prime_status(), which is 
> > filling out that same status_req structure and then queuing it with another 
> > call to list_add_tail() to add the request to the endpoint queue.  This 
> > adds two instances of the exact same LIST_HEAD to the endpoint queue, which 
> > breaks the list since the prev and next pointers end up pointing to the 
> > wrong things.  This ends up causing a hard loop the next time nuke() gets 
> > called, which happens on the next setup IRQ.
> > 
> > I'm not sure what the appropriate fix to this problem is, mostly due to my 
> > lack of expertise in USB and this driver stack.  The code has been this way 
> > in the kernel for a very long time, which suggests that it has been 
> > working, unless USB_REQ_GET_STATUS requests are never made.  This further 
> > suggests that there is something else going on that I don't understand.  
> > Deleting the call to ep0_prime_status() and the following ep0stall() call 
> > appears, on the surface, to get the device working again, but may have side 
> > effects that I'm not seeing.
> > 
> > I'm hopeful someone in the community can help provide some information on 
> > what I may be missing or help come up with a solution to the problem.  A 
> > big thank you to anyone who would like to help out.
> > 
> > Eugene
> 
> Run into this to a while ago. Found the bug and a few more fixes.
> This is against 4.19 so you may have to tweak them a bit.
> Feel free to upstream them.
> 
>  Jocke 

Curious, did my patches help? Good to known once we upgrade as well.

 Jocke


Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-10-30 Thread Joakim Tjernlund
On Fri, 2021-10-29 at 17:14 +, Eugene Bordenkircher wrote:
> Hello all,
> 
> We've discovered a situation where the FSL udc driver 
> (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over the 
> request queue, but the queue has been corrupted at some point so it loops 
> infinitely.  I believe we have narrowed into the offending code, but we are 
> in need of assistance trying to find an appropriate fix for the problem.  The 
> identified code appears to be in all versions of the Linux kernel the driver 
> exists in.
> 
> The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
> driver gets this request and then calls the ch9getstatus() function.  In this 
> function, it starts a request by "borrowing" the per device status_req, 
> filling it in, and then queuing it with a call to list_add_tail() to add the 
> request to the endpoint queue.  Right before it exits the function however, 
> it's calling ep0_prime_status(), which is filling out that same status_req 
> structure and then queuing it with another call to list_add_tail() to add the 
> request to the endpoint queue.  This adds two instances of the exact same 
> LIST_HEAD to the endpoint queue, which breaks the list since the prev and 
> next pointers end up pointing to the wrong things.  This ends up causing a 
> hard loop the next time nuke() gets called, which happens on the next setup 
> IRQ.
> 
> I'm not sure what the appropriate fix to this problem is, mostly due to my 
> lack of expertise in USB and this driver stack.  The code has been this way 
> in the kernel for a very long time, which suggests that it has been working, 
> unless USB_REQ_GET_STATUS requests are never made.  This further suggests 
> that there is something else going on that I don't understand.  Deleting the 
> call to ep0_prime_status() and the following ep0stall() call appears, on the 
> surface, to get the device working again, but may have side effects that I'm 
> not seeing.
> 
> I'm hopeful someone in the community can help provide some information on 
> what I may be missing or help come up with a solution to the problem.  A big 
> thank you to anyone who would like to help out.
> 
> Eugene

Run into this to a while ago. Found the bug and a few more fixes.
This is against 4.19 so you may have to tweak them a bit.
Feel free to upstream them.

 Jocke 
From a7ed9cffbfc90371b570ebef698d96c39adbaf77 Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund 
Date: Mon, 11 May 2020 11:18:14 +0200
Subject: [PATCH 5/5] fsl_udc_core: Init max_pipes for reset_queues()

Signed-off-by: Joakim Tjernlund 
---
 drivers/usb/gadget/udc/fsl_udc_core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c
index bd3825d9f1d2..92136dff8373 100644
--- a/drivers/usb/gadget/udc/fsl_udc_core.c
+++ b/drivers/usb/gadget/udc/fsl_udc_core.c
@@ -2441,6 +2441,7 @@ static int fsl_udc_probe(struct platform_device *pdev)
 	/* Get max device endpoints */
 	/* DEN is bidirectional ep number, max_ep doubles the number */
 	udc_controller->max_ep = (dccparams & DCCPARAMS_DEN_MASK) * 2;
+	udc_controller->max_pipes = udc_controller->max_ep;
 
 	udc_controller->irq = platform_get_irq(pdev, 0);
 	if (!udc_controller->irq) {
-- 
2.32.0

From b98fa0dd384f17fee0c1283b91f855b97d1976f4 Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund 
Date: Mon, 11 May 2020 10:38:07 +0200
Subject: [PATCH 4/5] fsl_udc_stop: Use list_for_each_entry_safe() when
 deleting

Signed-off-by: Joakim Tjernlund 
---
 drivers/usb/gadget/udc/fsl_udc_core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c b/drivers/usb/gadget/udc/fsl_udc_core.c
index 4f835332af45..bd3825d9f1d2 100644
--- a/drivers/usb/gadget/udc/fsl_udc_core.c
+++ b/drivers/usb/gadget/udc/fsl_udc_core.c
@@ -1984,7 +1984,7 @@ static int fsl_udc_start(struct usb_gadget *g,
 /* Disconnect from gadget driver */
 static int fsl_udc_stop(struct usb_gadget *g)
 {
-	struct fsl_ep *loop_ep;
+	struct fsl_ep *loop_ep, *tmp_loop;
 	unsigned long flags;
 
 	if (!IS_ERR_OR_NULL(udc_controller->transceiver))
@@ -2002,8 +2002,8 @@ static int fsl_udc_stop(struct usb_gadget *g)
 	spin_lock_irqsave(_controller->lock, flags);
 	udc_controller->gadget.speed = USB_SPEED_UNKNOWN;
 	nuke(_controller->eps[0], -ESHUTDOWN);
-	list_for_each_entry(loop_ep, _controller->gadget.ep_list,
-			ep.ep_list)
+	list_for_each_entry_safe(loop_ep, tmp_loop, _controller->gadget.ep_list,
+ ep.ep_list)
 		nuke(loop_ep, -ESHUTDOWN);
 	spin_unlock_irqrestore(_controller->lock, flags);
 
-- 
2.32.0

From a90a89d06bd008f606404ec613b4f2343b9dda1a Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund 
Date: Thu, 7 May 2020 22:35:14 +0200
Subject: [PATCH 3/5] fsl_ep_dequeue

Signed-off-by: Joakim Tjernlund 
---
 drivers/usb/gadget/udc/fsl_udc_core.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/fsl_udc_core.c 

Re: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-10-29 Thread Li Yang
On Fri, Oct 29, 2021 at 4:27 PM Eugene Bordenkircher
 wrote:
>
> Typing Greg's email correct this time.  My apologies.
>
> Eugene
>
> -Original Message-
> From: Eugene Bordenkircher
> Sent: Friday, October 29, 2021 10:14 AM
> To: linux-...@vger.kernel.org; linuxppc-dev@lists.ozlabs.org
> Cc: leoyang...@nxp.com; ba...@kernel.org; gre...@linuxfoundataion.org
> Subject: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to 
> unrecoverable loop.
>
> Hello all,
>
> We've discovered a situation where the FSL udc driver 
> (drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over the 
> request queue, but the queue has been corrupted at some point so it loops 
> infinitely.  I believe we have narrowed into the offending code, but we are 
> in need of assistance trying to find an appropriate fix for the problem.  The 
> identified code appears to be in all versions of the Linux kernel the driver 
> exists in.
>
> The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
> driver gets this request and then calls the ch9getstatus() function.  In this 
> function, it starts a request by "borrowing" the per device status_req, 
> filling it in, and then queuing it with a call to list_add_tail() to add the 
> request to the endpoint queue.  Right before it exits the function however, 
> it's calling ep0_prime_status(), which is filling out that same status_req 
> structure and then queuing it with another call to list_add_tail() to add the 
> request to the endpoint queue.  This adds two instances of the exact same 
> LIST_HEAD to the endpoint queue, which breaks the list since the prev and 
> next pointers end up pointing to the wrong things.  This ends up causing a 
> hard loop the next time nuke() gets called, which happens on the next setup 
> IRQ.
>

I agree with you that this looks problematic.  This is probably
introduced by f79a60b8785 "usb: fsl_udc_core: prime status stage once
data stage has primed" that it didn't consider that the status_req has
been re-used for the DATA phase.

I think the proper fix should be having a separate request allocated
for the data phase after the above change.

> I'm not sure what the appropriate fix to this problem is, mostly due to my 
> lack of expertise in USB and this driver stack.  The code has been this way 
> in the kernel for a very long time, which suggests that it has been working, 
> unless USB_REQ_GET_STATUS requests are never made.  This further suggests 
> that there is something else going on that I don't understand.  Deleting the 
> call to ep0_prime_status() and the following ep0stall() call appears, on the 
> surface, to get the device working again, but may have side effects that I'm 
> not seeing.
>
> I'm hopeful someone in the community can help provide some information on 
> what I may be missing or help come up with a solution to the problem.  A big 
> thank you to anyone who would like to help out.
>
> Eugene


bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-10-29 Thread Eugene Bordenkircher
Hello all,

We've discovered a situation where the FSL udc driver 
(drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over the 
request queue, but the queue has been corrupted at some point so it loops 
infinitely.  I believe we have narrowed into the offending code, but we are in 
need of assistance trying to find an appropriate fix for the problem.  The 
identified code appears to be in all versions of the Linux kernel the driver 
exists in.

The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
driver gets this request and then calls the ch9getstatus() function.  In this 
function, it starts a request by "borrowing" the per device status_req, filling 
it in, and then queuing it with a call to list_add_tail() to add the request to 
the endpoint queue.  Right before it exits the function however, it's calling 
ep0_prime_status(), which is filling out that same status_req structure and 
then queuing it with another call to list_add_tail() to add the request to the 
endpoint queue.  This adds two instances of the exact same LIST_HEAD to the 
endpoint queue, which breaks the list since the prev and next pointers end up 
pointing to the wrong things.  This ends up causing a hard loop the next time 
nuke() gets called, which happens on the next setup IRQ.

I'm not sure what the appropriate fix to this problem is, mostly due to my lack 
of expertise in USB and this driver stack.  The code has been this way in the 
kernel for a very long time, which suggests that it has been working, unless 
USB_REQ_GET_STATUS requests are never made.  This further suggests that there 
is something else going on that I don't understand.  Deleting the call to 
ep0_prime_status() and the following ep0stall() call appears, on the surface, 
to get the device working again, but may have side effects that I'm not seeing.

I'm hopeful someone in the community can help provide some information on what 
I may be missing or help come up with a solution to the problem.  A big thank 
you to anyone who would like to help out.

Eugene


RE: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to unrecoverable loop.

2021-10-29 Thread Eugene Bordenkircher
Typing Greg's email correct this time.  My apologies.

Eugene 

-Original Message-
From: Eugene Bordenkircher 
Sent: Friday, October 29, 2021 10:14 AM
To: linux-...@vger.kernel.org; linuxppc-dev@lists.ozlabs.org
Cc: leoyang...@nxp.com; ba...@kernel.org; gre...@linuxfoundataion.org
Subject: bug: usb: gadget: FSL_UDC_CORE Corrupted request list leads to 
unrecoverable loop.

Hello all,

We've discovered a situation where the FSL udc driver 
(drivers/usb/gadget/udc/fsl_udc_core.c) will enter a loop iterating over the 
request queue, but the queue has been corrupted at some point so it loops 
infinitely.  I believe we have narrowed into the offending code, but we are in 
need of assistance trying to find an appropriate fix for the problem.  The 
identified code appears to be in all versions of the Linux kernel the driver 
exists in.

The problem appears to be when handling a USB_REQ_GET_STATUS request.  The 
driver gets this request and then calls the ch9getstatus() function.  In this 
function, it starts a request by "borrowing" the per device status_req, filling 
it in, and then queuing it with a call to list_add_tail() to add the request to 
the endpoint queue.  Right before it exits the function however, it's calling 
ep0_prime_status(), which is filling out that same status_req structure and 
then queuing it with another call to list_add_tail() to add the request to the 
endpoint queue.  This adds two instances of the exact same LIST_HEAD to the 
endpoint queue, which breaks the list since the prev and next pointers end up 
pointing to the wrong things.  This ends up causing a hard loop the next time 
nuke() gets called, which happens on the next setup IRQ.

I'm not sure what the appropriate fix to this problem is, mostly due to my lack 
of expertise in USB and this driver stack.  The code has been this way in the 
kernel for a very long time, which suggests that it has been working, unless 
USB_REQ_GET_STATUS requests are never made.  This further suggests that there 
is something else going on that I don't understand.  Deleting the call to 
ep0_prime_status() and the following ep0stall() call appears, on the surface, 
to get the device working again, but may have side effects that I'm not seeing.

I'm hopeful someone in the community can help provide some information on what 
I may be missing or help come up with a solution to the problem.  A big thank 
you to anyone who would like to help out.

Eugene