diff mbox series

[v2] Input: xpad - Move Xbox 360 magic packet sending

Message ID 20230502031202.1018440-1-vi@endrift.com (mailing list archive)
State New, archived
Headers show
Series [v2] Input: xpad - Move Xbox 360 magic packet sending | expand

Commit Message

Vicki Pfau May 2, 2023, 3:12 a.m. UTC
This moves the sending of the magic packet introduced in db7220c48d8d from
xpad_probe to xpad_start_input to ensure that xpad->dev->dev exists in the
event that an error occurs. This should also fix issues with suspend that may
occur with some controllers.

Fixes: db7220c48d8d ("Input: xpad - fix support for some third-party controllers")
Reported-by: syzbot+a3f758b8d8cb7e49afec@syzkaller.appspotmail.com
Reported-by: Dongliang Mu <dzm91@hust.edu.cn>
Link: https://groups.google.com/g/syzkaller-bugs/c/iMhTgpGuIbM
Signed-off-by: Vicki Pfau <vi@endrift.com>
---
 drivers/input/joystick/xpad.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

Comments

Vicki Pfau June 3, 2023, 12:35 a.m. UTC | #1
On 5/1/23 20:12, Vicki Pfau wrote:
> This moves the sending of the magic packet introduced in db7220c48d8d from
> xpad_probe to xpad_start_input to ensure that xpad->dev->dev exists in the
> event that an error occurs. This should also fix issues with suspend that may
> occur with some controllers.
> 
> Fixes: db7220c48d8d ("Input: xpad - fix support for some third-party controllers")
> Reported-by: syzbot+a3f758b8d8cb7e49afec@syzkaller.appspotmail.com
> Reported-by: Dongliang Mu <dzm91@hust.edu.cn>
> Link: https://groups.google.com/g/syzkaller-bugs/c/iMhTgpGuIbM
> Signed-off-by: Vicki Pfau <vi@endrift.com>
> ---
>  drivers/input/joystick/xpad.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
> 
> diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> index 50ecff681b89..40abea92c393 100644
> --- a/drivers/input/joystick/xpad.c
> +++ b/drivers/input/joystick/xpad.c
> @@ -1720,6 +1720,27 @@ static int xpad_start_input(struct usb_xpad *xpad)
>  			return error;
>  		}
>  	}
> +	if (xpad->xtype == XTYPE_XBOX360) {
> +		/*
> +		 * Some third-party controllers Xbox 360-style controllers
> +		 * require this message to finish initialization.
> +		*/
> +		u8 dummy[20];
> +
> +		error = usb_control_msg_recv(xpad->udev, 0,
> +					     /* bRequest */ 0x01,
> +					     /* bmRequestType */
> +					     USB_TYPE_VENDOR | USB_DIR_IN |
> +						USB_RECIP_INTERFACE,
> +					     /* wValue */ 0x100,
> +					     /* wIndex */ 0x00,
> +					     dummy, sizeof(dummy),
> +					     25, GFP_KERNEL);
> +		if (error)
> +			dev_warn(&xpad->dev->dev,
> +				 "unable to receive magic message: %d\n",
> +				 error);
> +	}
>  
>  	return 0;
>  }

It's been a month and this fixed version of the patch never got any replies. Did it just get overlooked? Or does the fact that the old version got reverted mean I need to change the description in some capacity?
Dmitry Torokhov June 6, 2023, 5:47 p.m. UTC | #2
Hi Vicki,

On Fri, Jun 02, 2023 at 05:35:52PM -0700, Vicki Pfau wrote:
> On 5/1/23 20:12, Vicki Pfau wrote:
> > This moves the sending of the magic packet introduced in db7220c48d8d from
> > xpad_probe to xpad_start_input to ensure that xpad->dev->dev exists in the
> > event that an error occurs. This should also fix issues with suspend that may
> > occur with some controllers.
> > 
> > Fixes: db7220c48d8d ("Input: xpad - fix support for some third-party controllers")
> > Reported-by: syzbot+a3f758b8d8cb7e49afec@syzkaller.appspotmail.com
> > Reported-by: Dongliang Mu <dzm91@hust.edu.cn>
> > Link: https://groups.google.com/g/syzkaller-bugs/c/iMhTgpGuIbM
> > Signed-off-by: Vicki Pfau <vi@endrift.com>
> > ---
> >  drivers/input/joystick/xpad.c | 21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> > 
> > diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
> > index 50ecff681b89..40abea92c393 100644
> > --- a/drivers/input/joystick/xpad.c
> > +++ b/drivers/input/joystick/xpad.c
> > @@ -1720,6 +1720,27 @@ static int xpad_start_input(struct usb_xpad *xpad)
> >  			return error;
> >  		}
> >  	}
> > +	if (xpad->xtype == XTYPE_XBOX360) {
> > +		/*
> > +		 * Some third-party controllers Xbox 360-style controllers
> > +		 * require this message to finish initialization.
> > +		*/
> > +		u8 dummy[20];
> > +
> > +		error = usb_control_msg_recv(xpad->udev, 0,
> > +					     /* bRequest */ 0x01,
> > +					     /* bmRequestType */
> > +					     USB_TYPE_VENDOR | USB_DIR_IN |
> > +						USB_RECIP_INTERFACE,
> > +					     /* wValue */ 0x100,
> > +					     /* wIndex */ 0x00,
> > +					     dummy, sizeof(dummy),
> > +					     25, GFP_KERNEL);
> > +		if (error)
> > +			dev_warn(&xpad->dev->dev,
> > +				 "unable to receive magic message: %d\n",
> > +				 error);
> > +	}
> >  
> >  	return 0;
> >  }
> 
> It's been a month and this fixed version of the patch never got any
> replies. Did it just get overlooked? Or does the fact that the old
> version got reverted mean I need to change the description in some
> capacity?

Yes, because the original patch was reverted you need to adjust the
patch/description and resubmit as a new patch.

Thanks.
diff mbox series

Patch

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 50ecff681b89..40abea92c393 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -1720,6 +1720,27 @@  static int xpad_start_input(struct usb_xpad *xpad)
 			return error;
 		}
 	}
+	if (xpad->xtype == XTYPE_XBOX360) {
+		/*
+		 * Some third-party controllers Xbox 360-style controllers
+		 * require this message to finish initialization.
+		*/
+		u8 dummy[20];
+
+		error = usb_control_msg_recv(xpad->udev, 0,
+					     /* bRequest */ 0x01,
+					     /* bmRequestType */
+					     USB_TYPE_VENDOR | USB_DIR_IN |
+						USB_RECIP_INTERFACE,
+					     /* wValue */ 0x100,
+					     /* wIndex */ 0x00,
+					     dummy, sizeof(dummy),
+					     25, GFP_KERNEL);
+		if (error)
+			dev_warn(&xpad->dev->dev,
+				 "unable to receive magic message: %d\n",
+				 error);
+	}
 
 	return 0;
 }