diff options
author | Henning Schild <henning.schild@siemens.com> | 2017-09-18 18:02:11 +0200 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:41:33 +0300 |
commit | d4602833708f2548954ba030ea8026ef4cae9863 (patch) | |
tree | 05c500941c1dd5d7aef73d14eb38736dd57c2884 /drivers/net | |
parent | 656f8486b5f9d6cc57be129b608118805bb412cf (diff) |
ivshmem-net: set and check descriptor flags
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)
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ivshmem-net.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ivshmem-net.c b/drivers/net/ivshmem-net.c index abc50553e644..9ecf1d0f0d2d 100644 --- a/drivers/net/ivshmem-net.c +++ b/drivers/net/ivshmem-net.c @@ -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; |