mbox series

[v3,0/4] Fixes for usbip and specialised USB driver selection

Message ID 20200922110703.720960-1-m.v.b@runbox.com (mailing list archive)
Headers show
Series Fixes for usbip and specialised USB driver selection | expand

Message

M. Vefa Bicakci Sept. 22, 2020, 11:06 a.m. UTC
Hello all,

This is the third version of the patch sets originally published in the
e-mail thread thread at [1]. As mentioned in the same e-mail thread with
the e-mail at [2], I was able to find a more acceptable solution to the
issue reported by Andrey Konovalov, where usbip takes over the
dummy_hcd-provided devices set up by the USB fuzzing instance of the
syzkaller fuzzer.

In summary, the approach involves:

* Removal of the usbip_match function.
* Fixing two bugs in the specialised USB driver selection code.
* Accommodating usbip by changing the logic in the specialised USB
  driver selection code, while preserving legacy/previous behaviour.

I have tested this patch set with Greg Kroah-Hartman's usb-next tree
based on v5.9-rc6 with the base commit mentioned below in this e-mail,
and I can report that usbip works as expected, with no regressions in
the usbip_test.sh self-test suite output compared to v4.14.119. I have
also verified that the apple-mfi-fastcharge driver is correctly used
when an iPhone is plugged in to my system. Finally, I can report that
Andrey Konovalov's "keyboard" test program making use of dummy_hcd,
found at [3], also works as expected.

I would appreciate your comments.

Thank you,

Vefa

[1] https://lore.kernel.org/linux-usb/CAAeHK+zOrHnxjRFs=OE8T=O9208B9HP_oo8RZpyVOZ9AJ54pAA@mail.gmail.com/
[2] https://lore.kernel.org/linux-usb/9f332d7b-e33d-ebd0-3154-246fbfb69128@runbox.com/
[3] https://github.com/xairy/raw-gadget

Cc: Bastien Nocera <hadess@hadess.net>
Cc: Valentina Manea <valentina.manea.m@gmail.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: <syzkaller@googlegroups.com>

M. Vefa Bicakci (4):
  Revert "usbip: Implement a match function to fix usbip"
  usbcore/driver: Fix specific driver selection
  usbcore/driver: Fix incorrect downcast
  usbcore/driver: Accommodate usbip

 drivers/usb/core/driver.c    | 50 ++++++++++++++++++++++++------------
 drivers/usb/usbip/stub_dev.c |  6 -----
 2 files changed, 34 insertions(+), 22 deletions(-)


base-commit: 55be22adf11b48c80ea181366685ec91a4700b7e

Comments

Andrey Konovalov Sept. 22, 2020, 12:38 p.m. UTC | #1
On Tue, Sep 22, 2020 at 1:07 PM M. Vefa Bicakci <m.v.b@runbox.com> wrote:
>
> Hello all,
>
> This is the third version of the patch sets originally published in the
> e-mail thread thread at [1]. As mentioned in the same e-mail thread with
> the e-mail at [2], I was able to find a more acceptable solution to the
> issue reported by Andrey Konovalov, where usbip takes over the
> dummy_hcd-provided devices set up by the USB fuzzing instance of the
> syzkaller fuzzer.
>
> In summary, the approach involves:
>
> * Removal of the usbip_match function.
> * Fixing two bugs in the specialised USB driver selection code.
> * Accommodating usbip by changing the logic in the specialised USB
>   driver selection code, while preserving legacy/previous behaviour.
>
> I have tested this patch set with Greg Kroah-Hartman's usb-next tree
> based on v5.9-rc6 with the base commit mentioned below in this e-mail,
> and I can report that usbip works as expected, with no regressions in
> the usbip_test.sh self-test suite output compared to v4.14.119. I have
> also verified that the apple-mfi-fastcharge driver is correctly used
> when an iPhone is plugged in to my system. Finally, I can report that
> Andrey Konovalov's "keyboard" test program making use of dummy_hcd,
> found at [3], also works as expected.
>
> I would appreciate your comments.
>
> Thank you,
>
> Vefa
>
> [1] https://lore.kernel.org/linux-usb/CAAeHK+zOrHnxjRFs=OE8T=O9208B9HP_oo8RZpyVOZ9AJ54pAA@mail.gmail.com/
> [2] https://lore.kernel.org/linux-usb/9f332d7b-e33d-ebd0-3154-246fbfb69128@runbox.com/
> [3] https://github.com/xairy/raw-gadget
>
> Cc: Bastien Nocera <hadess@hadess.net>
> Cc: Valentina Manea <valentina.manea.m@gmail.com>
> Cc: Shuah Khan <shuah@kernel.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Alan Stern <stern@rowland.harvard.edu>
> Cc: <syzkaller@googlegroups.com>
>
> M. Vefa Bicakci (4):
>   Revert "usbip: Implement a match function to fix usbip"
>   usbcore/driver: Fix specific driver selection
>   usbcore/driver: Fix incorrect downcast
>   usbcore/driver: Accommodate usbip
>
>  drivers/usb/core/driver.c    | 50 ++++++++++++++++++++++++------------
>  drivers/usb/usbip/stub_dev.c |  6 -----
>  2 files changed, 34 insertions(+), 22 deletions(-)

Hi Vefa,

This fixes the issue that I've been having.

Tested-by: Andrey Konovalov <andreyknvl@google.com>

for the series.

Thank you!
M. Vefa Bicakci Sept. 22, 2020, 12:52 p.m. UTC | #2
On 22/09/2020 15.38, Andrey Konovalov wrote:
> On Tue, Sep 22, 2020 at 1:07 PM M. Vefa Bicakci <m.v.b@runbox.com> wrote:
>>
>> Hello all,
>>
>> This is the third version of the patch sets originally published in the
>> e-mail thread thread at [1]. As mentioned in the same e-mail thread with
>> the e-mail at [2], I was able to find a more acceptable solution to the
>> issue reported by Andrey Konovalov, where usbip takes over the
>> dummy_hcd-provided devices set up by the USB fuzzing instance of the
>> syzkaller fuzzer.
>>
>> In summary, the approach involves:
>>
>> * Removal of the usbip_match function.
>> * Fixing two bugs in the specialised USB driver selection code.
>> * Accommodating usbip by changing the logic in the specialised USB
>>    driver selection code, while preserving legacy/previous behaviour.
>>
>> I have tested this patch set with Greg Kroah-Hartman's usb-next tree
>> based on v5.9-rc6 with the base commit mentioned below in this e-mail,
>> and I can report that usbip works as expected, with no regressions in
>> the usbip_test.sh self-test suite output compared to v4.14.119. I have
>> also verified that the apple-mfi-fastcharge driver is correctly used
>> when an iPhone is plugged in to my system. Finally, I can report that
>> Andrey Konovalov's "keyboard" test program making use of dummy_hcd,
>> found at [3], also works as expected.
>>
>> I would appreciate your comments.
>>
>> Thank you,
>>
>> Vefa
>>
>> [1] https://lore.kernel.org/linux-usb/CAAeHK+zOrHnxjRFs=OE8T=O9208B9HP_oo8RZpyVOZ9AJ54pAA@mail.gmail.com/
>> [2] https://lore.kernel.org/linux-usb/9f332d7b-e33d-ebd0-3154-246fbfb69128@runbox.com/
>> [3] https://github.com/xairy/raw-gadget
>>
>> Cc: Bastien Nocera <hadess@hadess.net>
>> Cc: Valentina Manea <valentina.manea.m@gmail.com>
>> Cc: Shuah Khan <shuah@kernel.org>
>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> Cc: Alan Stern <stern@rowland.harvard.edu>
>> Cc: <syzkaller@googlegroups.com>
>>
>> M. Vefa Bicakci (4):
>>    Revert "usbip: Implement a match function to fix usbip"
>>    usbcore/driver: Fix specific driver selection
>>    usbcore/driver: Fix incorrect downcast
>>    usbcore/driver: Accommodate usbip
>>
>>   drivers/usb/core/driver.c    | 50 ++++++++++++++++++++++++------------
>>   drivers/usb/usbip/stub_dev.c |  6 -----
>>   2 files changed, 34 insertions(+), 22 deletions(-)
> 
> Hi Vefa,
> 
> This fixes the issue that I've been having.
> 
> Tested-by: Andrey Konovalov <andreyknvl@google.com>
> 
> for the series.
> 
> Thank you!

Thank you as well, Andrey, for confirming that these patches
resolve the negative interaction between usbip and dummy_hcd!
I appreciate your effort in testing the patches.

Vefa
Brooke Basile Oct. 2, 2020, 3:11 a.m. UTC | #3
On 9/22/20 7:06 AM, M. Vefa Bicakci wrote:
> Hello all,
> 
> This is the third version of the patch sets originally published in the
> e-mail thread thread at [1]. As mentioned in the same e-mail thread with
> the e-mail at [2], I was able to find a more acceptable solution to the
> issue reported by Andrey Konovalov, where usbip takes over the
> dummy_hcd-provided devices set up by the USB fuzzing instance of the
> syzkaller fuzzer.
> 
> In summary, the approach involves:
> 
> * Removal of the usbip_match function.
> * Fixing two bugs in the specialised USB driver selection code.
> * Accommodating usbip by changing the logic in the specialised USB
>    driver selection code, while preserving legacy/previous behaviour.
> 
> I have tested this patch set with Greg Kroah-Hartman's usb-next tree
> based on v5.9-rc6 with the base commit mentioned below in this e-mail,
> and I can report that usbip works as expected, with no regressions in
> the usbip_test.sh self-test suite output compared to v4.14.119. I have
> also verified that the apple-mfi-fastcharge driver is correctly used
> when an iPhone is plugged in to my system. Finally, I can report that
> Andrey Konovalov's "keyboard" test program making use of dummy_hcd,
> found at [3], also works as expected.
> 
> I would appreciate your comments.
> 
> Thank you,
> 
> Vefa
> 
> [1] https://lore.kernel.org/linux-usb/CAAeHK+zOrHnxjRFs=OE8T=O9208B9HP_oo8RZpyVOZ9AJ54pAA@mail.gmail.com/
> [2] https://lore.kernel.org/linux-usb/9f332d7b-e33d-ebd0-3154-246fbfb69128@runbox.com/
> [3] https://github.com/xairy/raw-gadget
> 
> Cc: Bastien Nocera <hadess@hadess.net>
> Cc: Valentina Manea <valentina.manea.m@gmail.com>
> Cc: Shuah Khan <shuah@kernel.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Alan Stern <stern@rowland.harvard.edu>
> Cc: <syzkaller@googlegroups.com>
> 
> M. Vefa Bicakci (4):
>    Revert "usbip: Implement a match function to fix usbip"
>    usbcore/driver: Fix specific driver selection
>    usbcore/driver: Fix incorrect downcast
>    usbcore/driver: Accommodate usbip
> 
>   drivers/usb/core/driver.c    | 50 ++++++++++++++++++++++++------------
>   drivers/usb/usbip/stub_dev.c |  6 -----
>   2 files changed, 34 insertions(+), 22 deletions(-)
> 
> 
> base-commit: 55be22adf11b48c80ea181366685ec91a4700b7e
> 

Hi,

I ran into this issue when trying to use two different FTDI serial TTL 
cables on my laptop, running 5.9-rc7.

This patch set fixes the issue.

Oddly, I was unable to reproduce the issue on another laptop, also 
running 5.9-rc7.

Tested-by: Brooke Basile <brookebasile@gmail.com>

Thank you!
Brooke Basile
M. Vefa Bicakci Oct. 2, 2020, 9 a.m. UTC | #4
On 10/2/20 6:11 AM, Brooke Basile wrote:
> On 9/22/20 7:06 AM, M. Vefa Bicakci wrote:
>> Hello all,
>>
>> This is the third version of the patch sets originally published in the
>> e-mail thread thread at [1]. As mentioned in the same e-mail thread with
>> the e-mail at [2], I was able to find a more acceptable solution to the
>> issue reported by Andrey Konovalov, where usbip takes over the
>> dummy_hcd-provided devices set up by the USB fuzzing instance of the
>> syzkaller fuzzer.
>>
>> In summary, the approach involves:
>>
>> * Removal of the usbip_match function.
>> * Fixing two bugs in the specialised USB driver selection code.
>> * Accommodating usbip by changing the logic in the specialised USB
>>    driver selection code, while preserving legacy/previous behaviour.
>>
>> I have tested this patch set with Greg Kroah-Hartman's usb-next tree
>> based on v5.9-rc6 with the base commit mentioned below in this e-mail,
>> and I can report that usbip works as expected, with no regressions in
>> the usbip_test.sh self-test suite output compared to v4.14.119. I have
>> also verified that the apple-mfi-fastcharge driver is correctly used
>> when an iPhone is plugged in to my system. Finally, I can report that
>> Andrey Konovalov's "keyboard" test program making use of dummy_hcd,
>> found at [3], also works as expected.
>>
>> I would appreciate your comments.
>>
>> Thank you,
>>
>> Vefa
>>
>> [1] https://lore.kernel.org/linux-usb/CAAeHK+zOrHnxjRFs=OE8T=O9208B9HP_oo8RZpyVOZ9AJ54pAA@mail.gmail.com/
>> [2] https://lore.kernel.org/linux-usb/9f332d7b-e33d-ebd0-3154-246fbfb69128@runbox.com/
>> [3] https://github.com/xairy/raw-gadget
>>
>> Cc: Bastien Nocera <hadess@hadess.net>
>> Cc: Valentina Manea <valentina.manea.m@gmail.com>
>> Cc: Shuah Khan <shuah@kernel.org>
>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> Cc: Alan Stern <stern@rowland.harvard.edu>
>> Cc: <syzkaller@googlegroups.com>
>>
>> M. Vefa Bicakci (4):
>>    Revert "usbip: Implement a match function to fix usbip"
>>    usbcore/driver: Fix specific driver selection
>>    usbcore/driver: Fix incorrect downcast
>>    usbcore/driver: Accommodate usbip
>>
>>   drivers/usb/core/driver.c    | 50 ++++++++++++++++++++++++------------
>>   drivers/usb/usbip/stub_dev.c |  6 -----
>>   2 files changed, 34 insertions(+), 22 deletions(-)
>>
>>
>> base-commit: 55be22adf11b48c80ea181366685ec91a4700b7e
>>
> 
> Hi,
> 
> I ran into this issue when trying to use two different FTDI serial TTL cables on my laptop, running 5.9-rc7.
> 
> This patch set fixes the issue.
> 
> Oddly, I was unable to reproduce the issue on another laptop, also running 5.9-rc7.
> 
> Tested-by: Brooke Basile <brookebasile@gmail.com>
> 
> Thank you!
> Brooke Basile

Hello Brooke,

Thank you for the feedback! Greg Kroah-Hartman has committed the patches
to the usb-linus branch of the USB git tree about a week ago, so it may
unfortunately be a bit late to add your Tested-by tag to the patch series.
Nevertheless, I appreciate your success report!

In case you are interested, the committed patches can be seen here:
   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/log/?h=usb-linus&id=3fce39601a1a34d940cf62858ee01ed9dac5d459

Thanks again,

Vefa
Brooke Basile Oct. 2, 2020, 9:05 a.m. UTC | #5
On 10/2/20 5:00 AM, M. Vefa Bicakci wrote:
> On 10/2/20 6:11 AM, Brooke Basile wrote:
>> On 9/22/20 7:06 AM, M. Vefa Bicakci wrote:
>>> Hello all,
>>>
>>> This is the third version of the patch sets originally published in the
>>> e-mail thread thread at [1]. As mentioned in the same e-mail thread with
>>> the e-mail at [2], I was able to find a more acceptable solution to the
>>> issue reported by Andrey Konovalov, where usbip takes over the
>>> dummy_hcd-provided devices set up by the USB fuzzing instance of the
>>> syzkaller fuzzer.
>>>
>>> In summary, the approach involves:
>>>
>>> * Removal of the usbip_match function.
>>> * Fixing two bugs in the specialised USB driver selection code.
>>> * Accommodating usbip by changing the logic in the specialised USB
>>>    driver selection code, while preserving legacy/previous behaviour.
>>>
>>> I have tested this patch set with Greg Kroah-Hartman's usb-next tree
>>> based on v5.9-rc6 with the base commit mentioned below in this e-mail,
>>> and I can report that usbip works as expected, with no regressions in
>>> the usbip_test.sh self-test suite output compared to v4.14.119. I have
>>> also verified that the apple-mfi-fastcharge driver is correctly used
>>> when an iPhone is plugged in to my system. Finally, I can report that
>>> Andrey Konovalov's "keyboard" test program making use of dummy_hcd,
>>> found at [3], also works as expected.
>>>
>>> I would appreciate your comments.
>>>
>>> Thank you,
>>>
>>> Vefa
>>>
>>> [1] 
>>> https://lore.kernel.org/linux-usb/CAAeHK+zOrHnxjRFs=OE8T=O9208B9HP_oo8RZpyVOZ9AJ54pAA@mail.gmail.com/ 
>>>
>>> [2] 
>>> https://lore.kernel.org/linux-usb/9f332d7b-e33d-ebd0-3154-246fbfb69128@runbox.com/ 
>>>
>>> [3] https://github.com/xairy/raw-gadget
>>>
>>> Cc: Bastien Nocera <hadess@hadess.net>
>>> Cc: Valentina Manea <valentina.manea.m@gmail.com>
>>> Cc: Shuah Khan <shuah@kernel.org>
>>> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>> Cc: Alan Stern <stern@rowland.harvard.edu>
>>> Cc: <syzkaller@googlegroups.com>
>>>
>>> M. Vefa Bicakci (4):
>>>    Revert "usbip: Implement a match function to fix usbip"
>>>    usbcore/driver: Fix specific driver selection
>>>    usbcore/driver: Fix incorrect downcast
>>>    usbcore/driver: Accommodate usbip
>>>
>>>   drivers/usb/core/driver.c    | 50 ++++++++++++++++++++++++------------
>>>   drivers/usb/usbip/stub_dev.c |  6 -----
>>>   2 files changed, 34 insertions(+), 22 deletions(-)
>>>
>>>
>>> base-commit: 55be22adf11b48c80ea181366685ec91a4700b7e
>>>
>>
>> Hi,
>>
>> I ran into this issue when trying to use two different FTDI serial TTL 
>> cables on my laptop, running 5.9-rc7.
>>
>> This patch set fixes the issue.
>>
>> Oddly, I was unable to reproduce the issue on another laptop, also 
>> running 5.9-rc7.
>>
>> Tested-by: Brooke Basile <brookebasile@gmail.com>
>>
>> Thank you!
>> Brooke Basile
> 
> Hello Brooke,
> 
> Thank you for the feedback! Greg Kroah-Hartman has committed the patches
> to the usb-linus branch of the USB git tree about a week ago, so it may
> unfortunately be a bit late to add your Tested-by tag to the patch series.
> Nevertheless, I appreciate your success report!
> 
> In case you are interested, the committed patches can be seen here:
>    
> https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/log/?h=usb-linus&id=3fce39601a1a34d940cf62858ee01ed9dac5d459 
> 
> 
> Thanks again,
> 
> Vefa
> 

Vefa,

Ah, no worries at all!  Sorry, I didn't see this on LKML so I assumed it 
hadn't been merged yet.
Thanks for the link!

Best,
Brooke Basile