mem: fix bug in packet access endianness changes
authorSteve Reinhardt <stever@gmail.com>
Mon, 11 Jan 2016 21:20:38 +0000 (16:20 -0500)
committerSteve Reinhardt <stever@gmail.com>
Mon, 11 Jan 2016 21:20:38 +0000 (16:20 -0500)
commit8406a54907a00e19389389f0b1497164a7bc637d
tree60ca61eeac57d7e9c24ab9462a56fb07c18a9adb
parent12eb0343784f52994110df7e7fce4a0b639a6ec3
mem: fix bug in packet access endianness changes

The new Packet::setRaw() method incorrectly still contained
an htog() conversion.  As a result, calls to the old set()
method (now defined as setRaw(htog(v))) underwent two htog
conversions, which breaks things when htog() is not a no-op.

Interestingly the only test that caught this was a SPARC
boot test, where an IsaFake device with a non-zero return
value was getting swapped twice resulting in a register
getting loaded with 0x100000000000000 instead of 1.
(Good reason for keeping SPARC around, perhaps?)
src/mem/packet_access.hh