<html><body><p><tt>Milton Miller II/Austin/IBM wrote on 02/20/2017 04:33:24 PM:<br><br>> From: Milton Miller II/Austin/IBM</tt><br><tt>> To: Eddie James <eajames@linux.vnet.ibm.com></tt><br><tt>> Cc: openbmc@lists.ozlabs.org, joel@jms.id.au, Edward James/Austin/IBM@IBMUS</tt><br><tt>> Date: 02/20/2017 04:33 PM</tt><br><tt>> Subject: Re: [PATCH linux dev-4.7] drivers: fsi: Copy all data out</tt><br><tt>> <br>> <br>> <br>> -----"openbmc" <openbmc-bounces+miltonm=us.ibm.com@lists.ozlabs.org><br>> wrote: -----<br>> >From: Eddie James <br>> >Date: 02/20/2017 03:06PM<br>> ><br>> >From: "Edward A. James" <eajames@us.ibm.com><br>> ><br>> >Driver was only copying 32 bits out to the user-provided data<br>> >pointer.<br>> ><br>> >Signed-off-by: Edward A. James <eajames@us.ibm.com><br>> >---<br>> > drivers/fsi/fsi-master-gpio.c | 5 +++--<br>> > 1 file changed, 3 insertions(+), 2 deletions(-)<br>> ><br>> >diff --git a/drivers/fsi/fsi-master-gpio.c<br>> >b/drivers/fsi/fsi-master-gpio.c<br>> >index 3ed82ea..3eb6ec2 100644<br>> >--- a/drivers/fsi/fsi-master-gpio.c<br>> >+++ b/drivers/fsi/fsi-master-gpio.c<br>> >@@ -203,7 +203,7 @@ static void fsi_master_gpio_error(struct<br>> >fsi_master_gpio *master, int error)<br>> > static int poll_for_response(struct fsi_master_gpio *master, uint8_t<br>> >expected,<br>> >          uint8_t size, void *data)<br>> > {<br>> >-   int busy_count = 0, i;<br>> >+   int busy_count = 0, i, j;<br>> >    struct fsi_gpio_msg response, cmd;<br>> >    int bits_remaining = 0, bit_count, response_id, id;<br>> >    uint64_t resp = 0;<br>> >@@ -274,7 +274,8 @@ static int poll_for_response(struct<br>> >fsi_master_gpio *master, uint8_t expected,<br>> >          resp <<= bits_remaining;<br>> >          resp |= response.msg;<br>> >          bits_received += bits_remaining;<br>> >-         *((uint32_t *)data) = response.msg;<br>> >+         for (j = 0; j < size; ++j)<br>> >+            ((uint8_t *)data)[j] = ((uint8_t *)&response.msg)[j];<br>> <br>> A lot of casting for memcpy(data, &response.msg, size);</tt><br><br><tt>Ugh, thanks. I was experimenting switching the byte order and didn't</tt><br><tt>switch it back to something sensible... v2 on the way.</tt><br><br><tt>Eddie</tt><br><tt><br>> <br>> >       }<br>> > <br>> >       crc_in = fsi_crc4(0, resp | (0x1ULL << bits_received),<br>> >-- <br>> >1.8.3.1<br>> <br>> milton</tt><BR>
</body></html>