aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorGregory Fong <gregory.0xf0@gmail.com>2014-12-12 16:54:48 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 12:42:46 -0800
commitb5be83e308f70e16c63c4e520ea7bb03ef57c46f (patch)
tree0828ee0c60cd16d172a815fc5a4adcbc67d034f6 /Documentation
parentlib: bitmap: add alignment offset for bitmap_find_next_zero_area() (diff)
downloadlinux-dev-b5be83e308f70e16c63c4e520ea7bb03ef57c46f.tar.xz
linux-dev-b5be83e308f70e16c63c4e520ea7bb03ef57c46f.zip
mm: cma: align to physical address, not CMA region position
The alignment in cma_alloc() was done w.r.t. the bitmap. This is a problem when, for example: - a device requires 16M (order 12) alignment - the CMA region is not 16 M aligned In such a case, can result with the CMA region starting at, say, 0x2f800000 but any allocation you make from there will be aligned from there. Requesting an allocation of 32 M with 16 M alignment will result in an allocation from 0x2f800000 to 0x31800000, which doesn't work very well if your strange device requires 16M alignment. Change to use bitmap_find_next_zero_area_off() to account for the difference in alignment at reserve-time and alloc-time. Signed-off-by: Gregory Fong <gregory.0xf0@gmail.com> Acked-by: Michal Nazarewicz <mina86@mina86.com> Cc: Marek Szyprowski <m.szyprowski@samsung.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Kukjin Kim <kgene.kim@samsung.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Laura Abbott <lauraa@codeaurora.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions