Re: [PATCH 1/1] [usb/host]: use get/put_unaligned_* helpers to fixmore potential unaligned issues.

From: Harvey Harrison
Date: Thu May 15 2008 - 11:37:46 EST


On Thu, 2008-05-15 at 14:19 +0800, Bryan Wu wrote:
> Cc: Harvey Harrison <harvey.harrison@xxxxxxxxx>

Looks fine.

Reviewed-by: ïHarvey Harrison <harvey.harrison@xxxxxxxxx>

> Signed-off-by: Jie Zhang <jie.zhang@xxxxxxxxxx>
> Signed-off-by: Bryan Wu <cooloney@xxxxxxxxxx>
> ---
> drivers/usb/host/isp116x-hcd.c | 4 ++--
> drivers/usb/host/uhci-hub.c | 6 +++---
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c
> index 20b9a0d..97ac6ff 100644
> --- a/drivers/usb/host/isp116x-hcd.c
> +++ b/drivers/usb/host/isp116x-hcd.c
> @@ -1024,7 +1024,7 @@ static int isp116x_hub_control(struct usb_hcd *hcd,
> break;
> case GetHubStatus:
> DBG("GetHubStatus\n");
> - *(__le32 *) buf = 0;
> + put_unaligned_le32(0, buf);
> break;
> case GetPortStatus:
> DBG("GetPortStatus\n");
> @@ -1033,7 +1033,7 @@ static int isp116x_hub_control(struct usb_hcd *hcd,
> spin_lock_irqsave(&isp116x->lock, flags);
> tmp = isp116x_read_reg32(isp116x, (--wIndex) ? HCRHPORT2 : HCRHPORT1);
> spin_unlock_irqrestore(&isp116x->lock, flags);
> - *(__le32 *) buf = cpu_to_le32(tmp);
> + put_unaligned_le32(tmp, buf);
> DBG("GetPortStatus: port[%d] %08x\n", wIndex + 1, tmp);
> break;
> case ClearPortFeature:
> diff --git a/drivers/usb/host/uhci-hub.c b/drivers/usb/host/uhci-hub.c
> index 8e4427a..801fa99 100644
> --- a/drivers/usb/host/uhci-hub.c
> +++ b/drivers/usb/host/uhci-hub.c
> @@ -253,7 +253,7 @@ static int uhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
> switch (typeReq) {
>
> case GetHubStatus:
> - *(__le32 *)buf = cpu_to_le32(0);
> + put_unaligned_le32(0, buf);
> OK(4); /* hub power */
> case GetPortStatus:
> if (port >= uhci->rh_numports)
> @@ -306,8 +306,8 @@ static int uhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
> dev_dbg(uhci_dev(uhci), "port %d portsc %04x,%02x\n",
> wIndex, status, lstatus);
>
> - *(__le16 *)buf = cpu_to_le16(wPortStatus);
> - *(__le16 *)(buf + 2) = cpu_to_le16(wPortChange);
> + put_unaligned_le16(wPortStatus, buf);
> + put_unaligned_le16(wPortChange, buf + 2);
> OK(4);
> case SetHubFeature: /* We don't implement these */
> case ClearHubFeature:

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/