kernel_optimize_test/arch
Marek Szyprowski 593f473554 ARM: dma-mapping: fix buffer chunk allocation order
IOMMU-aware dma_alloc_attrs() implementation allocates buffers in
power-of-two chunks to improve performance and take advantage of large
page mappings provided by some IOMMU hardware. However current code, due
to a subtle bug, allocated those chunks in the smallest-to-largest
order, what completely killed all the advantages of using larger than
page chunks. If a 4KiB chunk has been mapped as a first chunk, the
consecutive chunks are not aligned correctly to the power-of-two which
match their size and IOMMU drivers were not able to use internal
mappings of size other than the 4KiB (largest common denominator of
alignment and chunk size).

This patch fixes this issue by changing to the correct largest-to-smallest
chunk size allocation sequence.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
2012-06-25 10:18:52 +02:00
..
alpha Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-06-01 11:53:44 -07:00
arm ARM: dma-mapping: fix buffer chunk allocation order 2012-06-25 10:18:52 +02:00
avr32 fixups for signal breakage 2012-06-04 17:47:34 -04:00
blackfin Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-06-05 09:47:15 -07:00
c6x new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
cris Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-06-01 11:53:44 -07:00
frv frv: Remove bogus closing parenthesis 2012-06-02 10:38:19 -04:00
h8300 h8300: use the declarations provided by <asm/sections.h> 2012-06-20 14:39:35 -07:00
hexagon new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
ia64 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-06-01 11:53:44 -07:00
m32r Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-06-01 11:53:44 -07:00
m68k Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-06-13 23:17:12 +03:00
microblaze new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
mips - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
mn10300 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-06-01 11:53:44 -07:00
openrisc new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
parisc [PARISC] fix code to find libgcc 2012-06-05 14:10:23 +09:00
powerpc Merge git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-06-24 11:02:09 -07:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-06-01 11:53:44 -07:00
score new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
sh Merge branches 'sh/urgent', 'sh/core', 'sh/clockevents', 'sh/asm-generic' and 'sh/trivial' into sh-fixes-for-linus 2012-06-13 12:01:33 +09:00
sparc Fix typo in printed messages 2012-06-24 11:03:52 -07:00
tile tile: fix bug in get_user() for 4-byte values 2012-06-16 16:56:13 -04:00
um new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
unicore32 new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
x86 Driver core and printk fixes for 3.5-rc4 2012-06-20 15:14:28 -07:00
xtensa xtensa: use the declarations provided by <asm/sections.h> 2012-06-20 14:39:35 -07:00
.gitignore
Kconfig Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-05-25 09:18:59 -07:00