On 10.2.2022 3.04, 谢泓宇 wrote: > Hi, > > On 2022/2/9 17:29, Mathias Nyman wrote: >> On 9.2.2022 4.52, Hongyu Xie wrote: >>> From: Hongyu Xie <xiehongyu1@xxxxxxxxxx> >>> >>> xhci_check_args returns 4 types of value, -ENODEV, -EINVAL, 1 and 0. >>> xhci_urb_enqueue and xhci_check_streams_endpoint return -EINVAL if >>> the return value of xhci_check_args <= 0. >>> This will cause a problem. >>> For example, r8152_submit_rx calling usb_submit_urb in >>> drivers/net/usb/r8152.c. >>> r8152_submit_rx will never get -ENODEV after submiting an urb >>> when xHC is halted, >>> because xhci_urb_enqueue returns -EINVAL in the very beginning. >>> >>> Fixes: 203a86613fb3 ("xhci: Avoid NULL pointer deref when host dies.") >>> Cc: stable@xxxxxxxxxxxxxxx >>> Signed-off-by: Hongyu Xie <xiehongyu1@xxxxxxxxxx> >>> --- >> Thanks, added to queue. >> Changed the commit message and header a bit: >> >> "xhci: Prevent futile URB re-submissions due to incorrect return value. >> The -ENODEV return value from xhci_check_args() is incorrectly changed >> to -EINVAL in a couple places before propagated further. >> xhci_check_args() returns 4 types of value, -ENODEV, -EINVAL, 1 and 0. >> xhci_urb_enqueue and xhci_check_streams_endpoint return -EINVAL if >> the return value of xhci_check_args <= 0. >> This causes problems for example r8152_submit_rx, calling usb_submit_urb >> in drivers/net/usb/r8152.c. >> r8152_submit_rx will never get -ENODEV after submiting an urb when xHC >> is halted because xhci_urb_enqueue returns -EINVAL in the very beginning." >> >> Let me know if you disagree with this. >> >> Thanks >> -Mathias > > Sounds good to me. > > Do I have to send another patch with commit message and header changed? > > Thanks > > Hongyu Xie > No need, I'll submit it. -Mathias