Reviewed-by: Wei Zhao <wei.zh...@intel.com>
> -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Renata Saiakhova > Sent: Wednesday, May 13, 2020 9:14 PM > To: dev@dpdk.org > Cc: Renata Saiakhova <renata.saiakh...@ekinops.com> > Subject: [dpdk-dev] [PATCH v3 0/4] Memory corruption due to HW rings > allocation > > igb and ixgbe and some other drivers allocate HW rings using > rte_eth_dma_zone_reserve(), which checks first if the memzone exists for a > given name, consisting of port id, queue_id, rx/tx direction, but not for the > size, > alignment, and socket_id. > If the memzone with a given name exists it is returned, otherwise it is > allocated. > Disconnecting dpdk port from one type of interface (igb) and connecting it to > another type of interface (ixgbe) for the same port id, potentially creates > memory overlap and corruption, because it may require memzone of bigger > size. > That's what is happening from switching from igb to ixgbe having the same port > id. > > v2->v3: Remove #undef ETH_DMA_MZONE_NAME and minor changes in code > v2->standard > v1->v2: Minor changes on code standard and additional fixes in i40e em > v1->and ice drivers > > Renata Saiakhova (4): > librte_ethdev: Introduce a function to release HW rings > drivers/net: Fix in igb and ixgbe HW rings memory > drivers/net: Fix in i40e HW rings memory overlap > drivers/net: Fix in em and ice HW rings memory overlap > > drivers/net/e1000/em_rxtx.c | 2 ++ > drivers/net/e1000/igb_rxtx.c | 2 ++ > drivers/net/i40e/i40e_rxtx.c | 2 ++ > drivers/net/ice/ice_rxtx.c | 2 ++ > drivers/net/ixgbe/ixgbe_rxtx.c | 2 ++ > lib/librte_ethdev/rte_ethdev.c | 28 ++++++++++++++++++++++-- > lib/librte_ethdev/rte_ethdev_driver.h | 20 +++++++++++++++++ > lib/librte_ethdev/rte_ethdev_version.map | 1 + > 8 files changed, 57 insertions(+), 2 deletions(-) > > -- > 2.17.2