mirror of
https://github.com/opnsense/src.git
synced 2026-03-31 06:55:18 -04:00
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 | ||