Yes, sounds to be a better idea. I'm wondering whether the final real virtual address for loading in lduw_phys(), etc is aligned also in most cases? given the load address (the input argument with type hwaddr) is required to be aligned (according to the comment). If so we should make the lduw_phys(), etc be the aligned cases by default and add the unaligned versions instead.
Thanks, Paul > On 2013-05-02 10:12, Paul Guo wrote: >> A proper fix for this issue seems to be: Judge whether the address is >> aligned, do direct loading for the aligned case in ldq_le_p(), etc? > > No, I would think the proper fix would be to change the bits of virtio that > are known to access aligned memory to not use the pointer wrapper functions, > but to use a normal C memory access followed by leN_to_cpu et al. > > > r~