On Friday 26 February 2016 22:05:09 Lada Trimasova wrote: > > @@ -75,6 +86,7 @@ struct nps_enet_rx_ctl { > * nr: Length in bytes of Rx frame loaded by MAC to Rx buffer > */ > struct { > +#ifdef CONFIG_CPU_BIG_ENDIAN > u32 > __reserved_1:16, > cr:1, > @@ -82,6 +94,15 @@ struct nps_enet_rx_ctl { > crc:1, > __reserved_2:2, > nr:11; > +#else > + u32 > + nr:11, > + __reserved_2:2, > + crc:1, > + er:1, > + cr:1, > + __reserved_1:16; > +#endif > };
A nicer way to do this would be to remove all the bitfields and use named constants for accessing the fields insode of a u32 or u64 variable. The order of the bits in a bit field is implementation specific and your method might not work on all architectures. Even if the driver is only meant to run on a single CPU architecture, it's always better to write portable code. Arnd