Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf995734 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

vhost/net: force len for TX to host endian



vhost/net keeps a copy of the used ring in host memory but (ab)uses
the length field for internal house-keeping. This works because the
length in the used ring for tx is always 0. In order to suppress sparse
warnings, we force native endianness here.
Note that these values are never exposed to guests.

Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Reviewed-by: default avatarJason Wang <jasowang@redhat.com>


parent e05fd12b
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -48,15 +48,15 @@ MODULE_PARM_DESC(experimental_zcopytx, "Enable Zero Copy TX;"
 * status internally; used for zerocopy tx only.
 * status internally; used for zerocopy tx only.
 */
 */
/* Lower device DMA failed */
/* Lower device DMA failed */
#define VHOST_DMA_FAILED_LEN	3
#define VHOST_DMA_FAILED_LEN	((__force __virtio32)3)
/* Lower device DMA done */
/* Lower device DMA done */
#define VHOST_DMA_DONE_LEN	2
#define VHOST_DMA_DONE_LEN	((__force __virtio32)2)
/* Lower device DMA in progress */
/* Lower device DMA in progress */
#define VHOST_DMA_IN_PROGRESS	1
#define VHOST_DMA_IN_PROGRESS	((__force __virtio32)1)
/* Buffer unused */
/* Buffer unused */
#define VHOST_DMA_CLEAR_LEN	0
#define VHOST_DMA_CLEAR_LEN	((__force __virtio32)0)


#define VHOST_DMA_IS_DONE(len) ((len) >= VHOST_DMA_DONE_LEN)
#define VHOST_DMA_IS_DONE(len) ((__force u32)(len) >= (__force u32)VHOST_DMA_DONE_LEN)


enum {
enum {
	VHOST_NET_FEATURES = VHOST_FEATURES |
	VHOST_NET_FEATURES = VHOST_FEATURES |