1) I'm pretty sure after a little more review that the patch introduces bugs. The data is supposed to be big endian. 2) The commit message did not clearly describe the "bug" and how the it looks like to the user. 3) The way we set variables to zero is we say "foo = 0;" We do not say "foo ^= foo;". Everyone knows the XOR a variable with itself trick but obfuscated code makes us cross. 4) The unions were unnecessary and ugly/bad. regards, dan carpenter