Messages in this thread |  | | Date | Sat, 06 Oct 2018 12:27:27 +0100 | From | Ben Dooks <> | Subject | Re: [PATCH] usbnet: smsc95xx: simplify tx_fixup code |
| |
On 2018-10-05 22:24, David Miller wrote: > From: Ben Dooks <ben.dooks@codethink.co.uk> > Date: Tue, 2 Oct 2018 17:56:02 +0100 > >> - memcpy(skb->data, &tx_cmd_a, 4); >> + ptr = skb_push(skb, 8); >> + tx_cmd_a = cpu_to_le32(tx_cmd_a); >> + tx_cmd_b = cpu_to_le32(tx_cmd_b); >> + memcpy(ptr, &tx_cmd_a, 4); >> + memcpy(ptr+4, &tx_cmd_b, 4); > > Even a memcpy() through a void pointer does not guarantee that gcc will > not emit word sized loads and stores. > > You must use the get_unaligned()/put_unaligned() facilities to do this > properly.
Thanks, got a new version of the series just being tested with this. Should it go into the original, or as a separate change?
> > I also agree that making a proper type and structure instead of using > a void pointer would be better.
|  |