On Mon, 16.12.13 15:50, Lennart Poettering (lenn...@poettering.net) wrote:

> > diff --git a/src/libsystemd-bus/bus-control.c 
> > b/src/libsystemd-bus/bus-control.c
> > index 0072c37..6b2790d 100644
> > --- a/src/libsystemd-bus/bus-control.c
> > +++ b/src/libsystemd-bus/bus-control.c
> > @@ -207,7 +207,7 @@ _public_ int sd_bus_release_name(sd_bus *bus, const 
> > char *name) {
> >  }
> >  
> >  static int kernel_get_list(sd_bus *bus, uint64_t flags, char ***x) {
> > -        struct kdbus_cmd_name_list cmd = {};
> > +        struct kdbus_cmd_name_list __attribute__ ((__aligned__(8)))
> > cmd = {};
> 
> Hmm, this feels a bit like this would be better part of the type rather
> than the variable. THus, kdbus.h should add this to all is structs,
> rather then we decorate the variables...
> 
> Kay, would this make sense to you to add to kdbus.h?

Hmm, so thinking about this: the kdbus_cmd_name_list structure contains
64bit values anyway, so should naturally be aligned to 64bit boundaries
anyway... Or am I mistaken there and you are suggesting that on your
32bit architecture (which one is it if I may ask?) 64bit values don't
have to be aligned on an even 8byte boundary, but instead because the
arch is 32bit anyway and thus 64bit values need to be read in two steps
alignment on 4 is done in the abi?

Lennart

-- 
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to