Message ID | 20201223172154.34462-3-wsa+renesas@sang-engineering.com |
---|---|
State | Accepted |
Commit | 25c2e0fb5fefb8d7847214cf114d94c7aad8e9ce |
Headers | show |
Series | i2c: rcar: handle Gen2 and Gen3 V3U quirks better | expand |
Hi Wolfram, On Wed, Dec 23, 2020 at 6:22 PM Wolfram Sang <wsa+renesas@sang-engineering.com> wrote: > 'flags' and 'io' are needed first, so they should be at the beginning of > the private struct. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > --- a/drivers/i2c/busses/i2c-rcar.c > +++ b/drivers/i2c/busses/i2c-rcar.c > @@ -119,6 +119,7 @@ enum rcar_i2c_type { > }; > > struct rcar_i2c_priv { > + u32 flags; Note that this adds a hole on 64-bit. But if this really can make a difference, IMHO it is still broken > void __iomem *io; > struct i2c_adapter adap; > struct i2c_msg *msg; Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
> But if this really can make a difference, IMHO it is still broken
It *is* broken on Gen2, no way around that. We can only minimze the race
best as we can.
On Wed, Dec 23, 2020 at 06:21:52PM +0100, Wolfram Sang wrote: > 'flags' and 'io' are needed first, so they should be at the beginning of > the private struct. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Applied to for-next, thanks!
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c index 824586d7ee56..ad6630e3cc77 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c @@ -119,6 +119,7 @@ enum rcar_i2c_type { }; struct rcar_i2c_priv { + u32 flags; void __iomem *io; struct i2c_adapter adap; struct i2c_msg *msg; @@ -129,7 +130,6 @@ struct rcar_i2c_priv { int pos; u32 icccr; - u32 flags; u8 recovery_icmcr; /* protected by adapter lock */ enum rcar_i2c_type devtype; struct i2c_client *slave;
'flags' and 'io' are needed first, so they should be at the beginning of the private struct. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> --- drivers/i2c/busses/i2c-rcar.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)