From: Andrew Gabbasov Date: Tue, 30 Jun 2015 15:48:37 +0000 (-0500) Subject: spi: Fix per-page mapping of unaligned vmalloc-ed buffer X-Git-Tag: omap-for-v4.3/fixes-merge-window~33^2~1^3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65598c13fd66c3b5eac16d5b8eacc704aa17ce40;p=pandora-kernel.git spi: Fix per-page mapping of unaligned vmalloc-ed buffer spi_map_buf() processes mapping of vmalloc-ed buffers in a special way, making mapping of every page separately. However, if the buffer is not aligned to page boundary (e.g. sub-array in a vmalloc-ed array), it fills the scatter table with page-size unaligned pieces, that cross page boundaries. This is incorrect and can, for example, cause memory corruption and various crashes when working with ubifs on spi-nor chips (though those drivers are themselves buggy in that they should be providing DMAable memory to the SPI framework). Fix this by using proper scatter table size and intra-page buffer lengths, so that the whole buffer splits into separate scatter table entries on page boundaries. Signed-off-by: Andrew Gabbasov Signed-off-by: Mark Brown --- Reading git-diff-tree failed