On Sun, Aug 30, 2020 at 03:32:09AM -0700, Sagi Grimberg wrote: > Currently we allocate rx buffers in a single contiguous buffers > for headers (iser and iscsi) and data trailer. This means > that most likely the data starting offset is aligned to 76 > bytes (size of both headers). > > This worked fine for years, but at some point this broke. > To fix this, we should avoid passing unaligned buffers for > I/O. > > Instead, we allocate our recv buffers with some extra space > such that we can have the data portion align to 512 byte boundary. > This also means that we cannot reference headers or data using > structure but rather accessors (as they may move based on alignment). > Also, get rid of the wrong __packed annotation from iser_rx_desc > as this has only harmful effects (not aligned to anything). > > This affects the rx descriptors for iscsi login and data plane. What are the symptoms of the breakage?