From 6a1d29595ed7af5aebbcdb8f4cc045ae7893dc6c Mon Sep 17 00:00:00 2001 From: Bryan O'Donoghue Date: Mon, 18 Jul 2016 14:59:36 +0100 Subject: [PATCH] greybus: greybus_protocols.h/es2: Ensure __le32 is used not u32 There is a dangling u32 in es2/greybus_protocols.h that is only obvious when you try to compile up gbsim. We need to do a cpu_to_le32 and declare the 32-bit int in the header as __le32. This patch does that and splits out the assignment of the req->flags parameter to a temporary variable to allow for later printing. Signed-off-by: Bryan O'Donoghue Suggested-by: Johan Hovold Reviewed-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/es2.c | 10 +++++++--- drivers/staging/greybus/greybus_protocols.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/staging/greybus/es2.c b/drivers/staging/greybus/es2.c index f64dbcb..afc2d6c 100644 --- a/drivers/staging/greybus/es2.c +++ b/drivers/staging/greybus/es2.c @@ -690,19 +690,23 @@ static int cport_enable(struct gb_host_device *hd, u16 cport_id, struct es2_ap_dev *es2 = hd_to_es2(hd); struct usb_device *udev = es2->usb_dev; struct gb_apb_request_cport_flags *req; + u32 connection_flags; int ret; req = kzalloc(sizeof(*req), GFP_KERNEL); if (!req) return -ENOMEM; + connection_flags = 0; if (flags & GB_CONNECTION_FLAG_CONTROL) - req->flags |= GB_APB_CPORT_FLAG_CONTROL; + connection_flags |= GB_APB_CPORT_FLAG_CONTROL; if (flags & GB_CONNECTION_FLAG_HIGH_PRIO) - req->flags |= GB_APB_CPORT_FLAG_HIGH_PRIO; + connection_flags |= GB_APB_CPORT_FLAG_HIGH_PRIO; + + req->flags = cpu_to_le32(connection_flags); dev_dbg(&hd->dev, "%s - cport = %u, flags = %02x\n", __func__, - cport_id, req->flags); + cport_id, connection_flags); ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), GB_APB_REQUEST_CPORT_FLAGS, diff --git a/drivers/staging/greybus/greybus_protocols.h b/drivers/staging/greybus/greybus_protocols.h index 178ec89..d39a580 100644 --- a/drivers/staging/greybus/greybus_protocols.h +++ b/drivers/staging/greybus/greybus_protocols.h @@ -272,7 +272,7 @@ struct gb_control_intf_pm_response { #define APBA_REQUEST_ARPC_RUN 0x12 struct gb_apb_request_cport_flags { - u32 flags; + __le32 flags; #define GB_APB_CPORT_FLAG_CONTROL 0x01 #define GB_APB_CPORT_FLAG_HIGH_PRIO 0x02 } __packed; -- 2.7.4