On Mon, Aug 26, 2024 at 07:19:09PM +0800, Edward Adam Davis wrote: > ath6kl_usb_submit_ctrl_in() did not take into account the situation where > the length of the data read from the device is not equal to the len, and > such missing judgments will result in subsequent code using incorrect data. > > usb_control_msg_recv() handles the abnormal length of the returned data, > so using it directly can fix this warning. > > Reported-by: syzbot+92c6dd14aaa230be6855@xxxxxxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Edward Adam Davis <eadavis@xxxxxx> > --- > V2 -> V3: Adjust indentation style > > drivers/net/wireless/ath/ath6kl/usb.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath6kl/usb.c b/drivers/net/wireless/ath/ath6kl/usb.c > index 5220809841a6..5b1ce4f9ed54 100644 > --- a/drivers/net/wireless/ath/ath6kl/usb.c > +++ b/drivers/net/wireless/ath/ath6kl/usb.c > @@ -1027,9 +1027,11 @@ static int ath6kl_usb_bmi_read(struct ath6kl *ar, u8 *buf, u32 len) > int ret; > > /* get response */ > - ret = ath6kl_usb_submit_ctrl_in(ar_usb, > - ATH6KL_USB_CONTROL_REQ_RECV_BMI_RESP, > - 0, 0, buf, len); > + ret = usb_control_msg_recv(ar_usb->udev, 0, > + ATH6KL_USB_CONTROL_REQ_RECV_BMI_RESP, > + USB_DIR_IN | USB_TYPE_VENDOR | > + USB_RECIP_DEVICE, 0, 0, buf, len, 2000, > + GFP_KERNEL); This should be: ret = usb_control_msg_recv(ar_usb->udev, 0, ATH6KL_USB_CONTROL_REQ_RECV_BMI_RESP, USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 0, 0, buf, len, 2000, GFP_KERNEL); right? Keep the | values on the same line. thanks, greg k-h