Re: block: DMA alignment of IO buffer allocated from slab

From: Christoph Hellwig
Date: Fri Sep 21 2018 - 03:08:07 EST


On Fri, Sep 21, 2018 at 11:56:08AM +1000, Dave Chinner wrote:
> > 3) If slab can't guarantee to return 512-aligned buffer, how to fix
> > this data corruption issue?
>
> I think that the block layer needs to check the alignment of memory
> buffers passed to it and take appropriate action rather than
> corrupting random memory and returning a sucess status to the bad
> bio.

Or just reject the I/O. But yes, we already have the
queue_dma_alignment helper in the block layer, we just don't do it
in the fast path. I think generic_make_request_checks needs to
check it, and print an error and return a warning if the alignment
requirement isn't met.