> > Looking at the header files, it looks like doing cpu_to_le32 on that variable and doing le32_to_cpu will actually reverse the order twice, on big endian systems, thus technically all way would not swap the order at all. > > I'm not really sure how to manage the sparse warnings here. Not sure whether the maintainers would like it, but we can do something like this: case 'l’: #ifdef __LITTLE_ENDIAN val = orig; #else orig = swab32(orig); val = orig; #endif break; case 'b’: #ifdef __LITTLE_ENDIAN orig = swab32(orig); val = orig; #else val = orig; #endif break;