9dc7c250b8
Investigation of iSCSI target data corruption reports brought me to discovery that cxgb(4) expects mbufs to be physically contiguous, that is not true after I've started using m_extaddref() in software iSCSI for large zero-copy transmissions. In case of fragmented memory the driver transmitted garbage from pages following the first one due to simple use of pmap_kextract() for the first pointer instead of proper bus_dmamap_load_mbuf_sg(). Seems like it was done as some optimization many years ago, and at very least it is wrong in a world of IOMMUs. This patch just removes that optimization, plus limits packet coalescing for mbufs crossing page boundary, also depending on assumption of one segment per packet. MFC after: 3 days Sponsored by: iXsystems, Inc. Reviewed by: mmacy, np Differential revision: https://reviews.freebsd.org/D28428 |
||
---|---|---|
.. | ||
common | ||
sys | ||
bin2h.pl | ||
cxgb_adapter.h | ||
cxgb_include.h | ||
cxgb_ioctl.h | ||
cxgb_main.c | ||
cxgb_offload.h | ||
cxgb_osdep.h | ||
cxgb_sge.c | ||
cxgb_t3fw.c | ||
cxgb_t3fw.h | ||
t3b_protocol_sram.h | ||
t3b_tp_eeprom.h | ||
t3c_protocol_sram.h | ||
t3c_tp_eeprom.h |