Merge tag 'imx-fixes-4.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo...
[firefly-linux-kernel-4.4.55.git] / include / linux / vringh.h
index a3fa537e717a5f714fcb719aa6f56474270dcffe..bc6c28d0426339cc3814ec09d4da3db830c869d9 100644 (file)
@@ -226,33 +226,39 @@ static inline void vringh_notify(struct vringh *vrh)
                vrh->notify(vrh);
 }
 
+static inline bool vringh_is_little_endian(const struct vringh *vrh)
+{
+       return vrh->little_endian ||
+               virtio_legacy_is_little_endian();
+}
+
 static inline u16 vringh16_to_cpu(const struct vringh *vrh, __virtio16 val)
 {
-       return __virtio16_to_cpu(vrh->little_endian, val);
+       return __virtio16_to_cpu(vringh_is_little_endian(vrh), val);
 }
 
 static inline __virtio16 cpu_to_vringh16(const struct vringh *vrh, u16 val)
 {
-       return __cpu_to_virtio16(vrh->little_endian, val);
+       return __cpu_to_virtio16(vringh_is_little_endian(vrh), val);
 }
 
 static inline u32 vringh32_to_cpu(const struct vringh *vrh, __virtio32 val)
 {
-       return __virtio32_to_cpu(vrh->little_endian, val);
+       return __virtio32_to_cpu(vringh_is_little_endian(vrh), val);
 }
 
 static inline __virtio32 cpu_to_vringh32(const struct vringh *vrh, u32 val)
 {
-       return __cpu_to_virtio32(vrh->little_endian, val);
+       return __cpu_to_virtio32(vringh_is_little_endian(vrh), val);
 }
 
 static inline u64 vringh64_to_cpu(const struct vringh *vrh, __virtio64 val)
 {
-       return __virtio64_to_cpu(vrh->little_endian, val);
+       return __virtio64_to_cpu(vringh_is_little_endian(vrh), val);
 }
 
 static inline __virtio64 cpu_to_vringh64(const struct vringh *vrh, u64 val)
 {
-       return __cpu_to_virtio64(vrh->little_endian, val);
+       return __cpu_to_virtio64(vringh_is_little_endian(vrh), val);
 }
 #endif /* _LINUX_VRINGH_H */