Searched hist:"888810 f0fb0c8993c4f3f841db7ff88ebc41396c" (Results 1 – 3 of 3) sorted by relevance
/freebsd/sys/dev/ena/ |
H A D | ena_datapath.c | diff 888810f0fb0c8993c4f3f841db7ff88ebc41396c Mon Feb 24 16:35:31 CET 2020 Marcin Wojtas <mw@FreeBSD.org> Rework and simplify Tx DMA mapping in ENA
Driver working in LLQ mode in some cases can send only few last segments of the mbuf using DMA engine, and the rest of them are sent to the device using direct PCI transaction. To map the only necessary data, two DMA maps were used. That solution was very rough and was causing a bug - if both maps were used (head_map and seg_map), there was a race in between two flows on two queues and the device was receiving corrupted data which could be further received on the other host if the Tx cksum offload was enabled.
As it's ok to map whole mbuf and then send to the device only needed segments, the design was simplified to use only single DMA map.
The driver version was updated to v2.1.1 as it's important bug fix.
Submitted by: Michal Krawczyk <mk@semihalf.com> Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
|
H A D | ena.h | diff 888810f0fb0c8993c4f3f841db7ff88ebc41396c Mon Feb 24 16:35:31 CET 2020 Marcin Wojtas <mw@FreeBSD.org> Rework and simplify Tx DMA mapping in ENA
Driver working in LLQ mode in some cases can send only few last segments of the mbuf using DMA engine, and the rest of them are sent to the device using direct PCI transaction. To map the only necessary data, two DMA maps were used. That solution was very rough and was causing a bug - if both maps were used (head_map and seg_map), there was a race in between two flows on two queues and the device was receiving corrupted data which could be further received on the other host if the Tx cksum offload was enabled.
As it's ok to map whole mbuf and then send to the device only needed segments, the design was simplified to use only single DMA map.
The driver version was updated to v2.1.1 as it's important bug fix.
Submitted by: Michal Krawczyk <mk@semihalf.com> Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
|
H A D | ena.c | diff 888810f0fb0c8993c4f3f841db7ff88ebc41396c Mon Feb 24 16:35:31 CET 2020 Marcin Wojtas <mw@FreeBSD.org> Rework and simplify Tx DMA mapping in ENA
Driver working in LLQ mode in some cases can send only few last segments of the mbuf using DMA engine, and the rest of them are sent to the device using direct PCI transaction. To map the only necessary data, two DMA maps were used. That solution was very rough and was causing a bug - if both maps were used (head_map and seg_map), there was a race in between two flows on two queues and the device was receiving corrupted data which could be further received on the other host if the Tx cksum offload was enabled.
As it's ok to map whole mbuf and then send to the device only needed segments, the design was simplified to use only single DMA map.
The driver version was updated to v2.1.1 as it's important bug fix.
Submitted by: Michal Krawczyk <mk@semihalf.com> Obtained from: Semihalf MFC after: 2 weeks Sponsored by: Amazon, Inc.
|