ivshmem-net: set and check descriptor flags
authorHenning Schild <henning.schild@siemens.com>
Mon, 18 Sep 2017 16:02:11 +0000 (18:02 +0200)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
We do not support the use of any flags. Make sure the remote does not
confuse us using flags.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
[Jan: Remove wrong removal of next field initialization]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
(cherry picked from commit 81ef582bb0aa6ab0c6206d0a3bc18b8af7b6e41b)
(cherry picked from commit 4526da548c14df3643a7a72b4676fb09adeaf6d5)
Signed-off-by: Vipul Kumar <vipul_kumar@mentor.com>
drivers/net/ivshmem-net.c

index abc5055..9ecf1d0 100644 (file)
@@ -123,8 +123,12 @@ static void *ivshm_net_desc_data(struct ivshm_net *in,
 {
        u64 offs = READ_ONCE(desc->addr);
        u32 dlen = READ_ONCE(desc->len);
+       u16 flags = READ_ONCE(desc->flags);
        void *data;
 
+       if (flags)
+               return NULL;
+
        if (offs >= in->shmlen)
                return NULL;
 
@@ -317,6 +321,7 @@ static int ivshm_net_tx_frame(struct net_device *ndev, struct sk_buff *skb)
 
        desc->addr = buf - in->shm;
        desc->len = skb->len;
+       desc->flags = 0;
 
        avail = tx->last_avail_idx++ & (vr->num - 1);
        vr->avail->ring[avail] = desc_idx;