git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net/netvsc: fix crash during Tx
[dpdk.git]
/
drivers
/
net
/
netvsc
/
hn_rxtx.c
diff --git
a/drivers/net/netvsc/hn_rxtx.c
b/drivers/net/netvsc/hn_rxtx.c
index
86a4c0d
..
0428c58
100644
(file)
--- a/
drivers/net/netvsc/hn_rxtx.c
+++ b/
drivers/net/netvsc/hn_rxtx.c
@@
-1421,11
+1421,12
@@
static int hn_xmit_sg(struct hn_tx_queue *txq,
hn_rndis_dump(txd->rndis_pkt);
/* pass IOVA of rndis header in first segment */
hn_rndis_dump(txd->rndis_pkt);
/* pass IOVA of rndis header in first segment */
- addr = rte_malloc_virt2iova(tx
d->rndis_pkt
);
+ addr = rte_malloc_virt2iova(tx
q->tx_rndis
);
if (unlikely(addr == RTE_BAD_IOVA)) {
PMD_DRV_LOG(ERR, "RNDIS transmit can not get iova");
return -EINVAL;
}
if (unlikely(addr == RTE_BAD_IOVA)) {
PMD_DRV_LOG(ERR, "RNDIS transmit can not get iova");
return -EINVAL;
}
+ addr = addr + ((char *)txd->rndis_pkt - (char *)txq->tx_rndis);
sg[0].page = addr / PAGE_SIZE;
sg[0].ofs = addr & PAGE_MASK;
sg[0].page = addr / PAGE_SIZE;
sg[0].ofs = addr & PAGE_MASK;