All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] staging: fusb302: don't bitshift __le16 type
@ 2017-06-16 17:45 Frans Klaver
  2017-06-16 18:11 ` Guenter Roeck
  2017-06-16 22:44   ` Joe Perches
  0 siblings, 2 replies; 27+ messages in thread
From: Frans Klaver @ 2017-06-16 17:45 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Frans Klaver, Guenter Roeck, Yueyao Zhu, Rui Miguel Silva,
	Guru Das Srinagesh, Javier Martinez Canillas, devel,
	linux-kernel

The header field in struct pd_message is declared as an __le16 type. The
data in the message is supposed to be little endian. This means we don't
have to go and shift the individual bytes into position when we're
filling the buffer, we can just copy the contents right away. As an
added benefit we don't get fishy results on big endian systems anymore.

Signed-off-by: Frans Klaver <fransklaver@gmail.com>
---
 drivers/staging/typec/fusb302/fusb302.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/typec/fusb302/fusb302.c b/drivers/staging/typec/fusb302/fusb302.c
index 4a356e509fe4..03a3809d18f0 100644
--- a/drivers/staging/typec/fusb302/fusb302.c
+++ b/drivers/staging/typec/fusb302/fusb302.c
@@ -1039,8 +1039,8 @@ static int fusb302_pd_send_message(struct fusb302_chip *chip,
 	}
 	/* packsym tells the FUSB302 chip that the next X bytes are payload */
 	buf[pos++] = FUSB302_TKN_PACKSYM | (len & 0x1F);
-	buf[pos++] = msg->header & 0xFF;
-	buf[pos++] = (msg->header >> 8) & 0xFF;
+	memcpy(&buf[pos], &msg->header, sizeof(msg->header));
+	pos += sizeof(msg->header);
 
 	len -= 2;
 	memcpy(&buf[pos], msg->payload, len);
-- 
2.13.0

^ permalink raw reply related	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2017-06-26 21:03 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-16 17:45 [PATCH] staging: fusb302: don't bitshift __le16 type Frans Klaver
2017-06-16 18:11 ` Guenter Roeck
2017-06-16 22:44 ` endian bitshift defects [ was: staging: fusb302: don't bitshift __le16 type ] Joe Perches
2017-06-16 22:44   ` Joe Perches
2017-06-16 22:49   ` [Cocci] [Fwd: endian bitshift defects [ was: staging: fusb302: don't bitshift __le16 type ]] Joe Perches
2017-06-17  5:23   ` endian bitshift defects [ was: staging: fusb302: don't bitshift __le16 type ] Julia Lawall
2017-06-17  5:23     ` Julia Lawall
2017-06-17  5:50     ` Joe Perches
2017-06-17  5:50       ` Joe Perches
2017-06-17  6:00       ` Julia Lawall
2017-06-17  6:00         ` Julia Lawall
2017-06-17  6:23         ` Joe Perches
2017-06-17  6:23           ` Joe Perches
2017-06-17  6:26           ` Julia Lawall
2017-06-17  6:26             ` Julia Lawall
2017-06-23 22:29   ` Frans Klaver
2017-06-23 22:29     ` Frans Klaver
2017-06-23 23:37     ` Julia Lawall
2017-06-23 23:37       ` Julia Lawall
2017-06-26  8:06       ` Frans Klaver
2017-06-26  8:06         ` Frans Klaver
2017-06-26  9:39         ` Julia Lawall
2017-06-26  9:39           ` Julia Lawall
2017-06-26 20:57       ` Frans Klaver
2017-06-26 20:57         ` Frans Klaver
2017-06-26 21:03         ` Julia Lawall
2017-06-26 21:03           ` Julia Lawall

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.