On Fri, May 16, 2014 at 04:46:21PM +0200, Valentin Longchamp wrote: > By default for every espi transfer, the rx_buf is placed right after the > tx_buf. This can lead to a buffer overflow when the size of both the TX > and RX data cumulated is higher than the allocated 64K buffer for the > transfer (this is the case when sending for instance a read command and > reading 64K back, please see: > http://article.gmane.org/gmane.linux.drivers.mtd/53411 ) > > This gets fixed by always setting the RX buffer pointer at the begining > of the transfer buffer. This still doesn't seem safe - we're now going to be DMAing to and from the same buffer at the same time (and doubtless mapping it twice...). Would it not be safer to allocate separate rx and tx buffers? Indeed can we not use the core DMA mapping support to avoid the need to copy at all (it will construct scatterlists in PAGE_SIZE chunks)?
Attachment:
signature.asc
Description: Digital signature