Andy Shevchenko <andy.shevchenko@xxxxxxxxx> writes: > On Wed, Jan 20, 2016 at 9:46 PM, Måns Rullgård <mans@xxxxxxxxx> wrote: > >>>>> One comment still regarding to lli types. We can avoid warnings by >>>>> using (__force u32) in macros. >>>> >>>> But that won't give the benefits of having the types checked. >>> >>> You mean if we access the lli->field directly? I didn't quite get what >>> use case you are keeping in mind. >> >> Yes, accessing any of those fields directly with my patch gives a sparse >> warning. It's situations like these those checks are intended for. >> Defeating them seems foolish to me. > > Otherwise it makes that struct looks ugly. > Why not union, though it still ugly, but less. What's so ugly about it? IMO data should be declared as the type it actually is, and here we have fields that might have a different byte order from the host CPU. The __be32 and __le32 types were invented to make such situations clear and allow automatic (sparse) checking. I'd say the price of one small typedef is well worth it. The actual code is not impacted since it must use the accessor macros anyhow. -- Måns Rullgård -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html