On Wed, Jul 26, 2023 at 01:54:15AM +0000, Xu Yang wrote: > > -----Original Message----- > > > > A negative number from ret means the host controller had failed to send > > usb message and 0 means succeed. Therefore, the if logic is wrong here > > and this patch will fix it. > > > > Fixes: f2b42379c576 ("usb: misc: ehset: Rework test mode entry") > > cc: <stable@xxxxxxxxxxxxxxx> > > Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx> > > --- > > drivers/usb/misc/ehset.c | 8 ++++---- > > 1 file changed, 4 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/usb/misc/ehset.c b/drivers/usb/misc/ehset.c > > index 986d6589f053..36b6e9fa7ffb 100644 > > --- a/drivers/usb/misc/ehset.c > > +++ b/drivers/usb/misc/ehset.c > > @@ -77,7 +77,7 @@ static int ehset_probe(struct usb_interface *intf, > > switch (test_pid) { > > case TEST_SE0_NAK_PID: > > ret = ehset_prepare_port_for_testing(hub_udev, portnum); > > - if (!ret) > > + if (ret < 0) > > break; > > ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, > > USB_RT_PORT, USB_PORT_FEAT_TEST, > > @@ -86,7 +86,7 @@ static int ehset_probe(struct usb_interface *intf, > > break; > > case TEST_J_PID: > > ret = ehset_prepare_port_for_testing(hub_udev, portnum); > > - if (!ret) > > + if (ret < 0) > > break; > > ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, > > USB_RT_PORT, USB_PORT_FEAT_TEST, > > @@ -95,7 +95,7 @@ static int ehset_probe(struct usb_interface *intf, > > break; > > case TEST_K_PID: > > ret = ehset_prepare_port_for_testing(hub_udev, portnum); > > - if (!ret) > > + if (ret < 0) > > break; > > ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, > > USB_RT_PORT, USB_PORT_FEAT_TEST, > > @@ -104,7 +104,7 @@ static int ehset_probe(struct usb_interface *intf, > > break; > > case TEST_PACKET_PID: > > ret = ehset_prepare_port_for_testing(hub_udev, portnum); > > - if (!ret) > > + if (ret < 0) > > break; > > ret = usb_control_msg_send(hub_udev, 0, USB_REQ_SET_FEATURE, > > USB_RT_PORT, USB_PORT_FEAT_TEST, > > -- > > 2.34.1 > > A gentle ping. Have you teted this? It feels odd that the code could be that broken, how did it ever work in the first place? thanks, greg k-h