drivers:usb: use get|put_unaligned_le16
PATCH 1/1 drivers:usb: use get|put_unaligned_le16
This patch use get|put_unaligned_le16 to access structure data to avoid data abort on some ARM platforms.
--- drivers/usb/gadget/f_mass_storage.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
drivers/usb/gadget/f_mass_storage.c +5 -5
@@ -577,9 +577,9 @@ static int fsg_setup(struct usb_function *f, {struct fsg_dev *fsg =fsg_from_func (f);struct usb_request *req = fsg->common->ep0req; -u16 w_index =le16_to_cpu (ctrl->wIndex); -u16 w_value =le16_to_cpu (ctrl->wValue); -u16 w_length =le16_to_cpu (ctrl->wLength); +u16 w_index =get_unaligned_le16 (&ctrl->wIndex); +u16 w_value =get_unaligned_le16 (&ctrl->wValue); +u16 w_length =get_unaligned_le16 (&ctrl->wLength);if (!fsg_is_set (fsg->common))return -EOPNOTSUPP ;
@@ -617,7 +617,7 @@ static int fsg_setup(struct usb_function *f,"unknown class-specific control req " "%02x.%02x v%04x i%04x l%u\n" , ctrl->bRequestType, ctrl->bRequest, - le16_to_cpu(ctrl->wValue), w_index, w_length); + get_unaligned_le16(&ctrl->wValue), w_index, w_length);return -EOPNOTSUPP ; }
@@ -2261,7 +2261,7 @@ reset:if (rc) goto reset; fsg->bulk_out_enabled =1 ; - common->bulk_out_maxpacket =le16_to_cpu (d->wMaxPacketSize); + common->bulk_out_maxpacket =get_unaligned_le16 (&d->wMaxPacketSize);clear_bit (IGNORE_BULK_OUT , &fsg->atomic_bitflags);/* Allocate the requests */
Signature · 1 line
1.7.9.5
PATCH 1/1 drivers:usb: use get|put_unaligned_le16
Dear Piotr Wilczek,
Quoted 9 lines
This patch use get|put_unaligned_le16 to access structure data to avoid data abort on some ARM platforms.
Signed-off-by Piotr Wilczek <[email protected]>Signed-off-by Kyungmin Park <[email protected]>CC Marek Vasut <[email protected]>--- drivers/usb/gadget/f_mass_storage.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
Can you please rebase on top of u-boot-usb/master?
Best regards,
Marek Vasut
PATCH v2 1/1 drivers:usb: use get|put_unaligned_le16
In reply to Piotr WilczekThis patch use get|put_unaligned_le16 to access structure data to avoid data abort on some ARM platforms.
---
Changes for v2:
- rebased on top of u-boot-usb/master
drivers/usb/gadget/f_mass_storage.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/usb/gadget/f_mass_storage.c +4 -4
@@ -577,9 +577,9 @@ static int fsg_setup(struct usb_function *f, {struct fsg_dev *fsg =fsg_from_func (f);struct usb_request *req = fsg->common->ep0req; -u16 w_index =le16_to_cpu (ctrl->wIndex); -u16 w_value =le16_to_cpu (ctrl->wValue); -u16 w_length =le16_to_cpu (ctrl->wLength); +u16 w_index =get_unaligned_le16 (&ctrl->wIndex); +u16 w_value =get_unaligned_le16 (&ctrl->wValue); +u16 w_length =get_unaligned_le16 (&ctrl->wLength);if (!fsg_is_set (fsg->common))return -EOPNOTSUPP ;
@@ -617,7 +617,7 @@ static int fsg_setup(struct usb_function *f,"unknown class-specific control req " "%02x.%02x v%04x i%04x l%u\n" , ctrl->bRequestType, ctrl->bRequest, - le16_to_cpu(ctrl->wValue), w_index, w_length); + get_unaligned_le16(&ctrl->wValue), w_index, w_length);return -EOPNOTSUPP ; }
Signature · 1 line
1.7.9.5
Marek Vasut
AppliedPATCH v2 1/1 drivers:usb: use get|put_unaligned_le16
Dear Piotr Wilczek,
Quoted 6 lines
This patch use get|put_unaligned_le16 to access structure data to avoid data abort on some ARM platforms.
Signed-off-by Piotr Wilczek <[email protected]>Signed-off-by Kyungmin Park <[email protected]>CC Marek Vasut <[email protected]>
Applied, thanks!
Best regards,
Marek Vasut