linux/drivers
Joonsoo Kim a254129e86 CMA: generalize CMA reserved area management functionality
Currently, there are two users on CMA functionality, one is the DMA
subsystem and the other is the KVM on powerpc.  They have their own code
to manage CMA reserved area even if they looks really similar.  From my
guess, it is caused by some needs on bitmap management.  KVM side wants
to maintain bitmap not for 1 page, but for more size.  Eventually it use
bitmap where one bit represents 64 pages.

When I implement CMA related patches, I should change those two places
to apply my change and it seem to be painful to me.  I want to change
this situation and reduce future code management overhead through this
patch.

This change could also help developer who want to use CMA in their new
feature development, since they can use CMA easily without copying &
pasting this reserved area management code.

In previous patches, we have prepared some features to generalize CMA
reserved area management and now it's time to do it.  This patch moves
core functions to mm/cma.c and change DMA APIs to use these functions.

There is no functional change in DMA APIs.

Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Acked-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Alexander Graf <agraf@suse.de>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Gleb Natapov <gleb@kernel.org>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-08-06 18:01:16 -07:00
..
accessibility
acpi APEI is currently implemented so that it depends on x86 hardware. 2014-07-30 10:48:00 -07:00
amba
ata ata: libahci: Silence compiler warning on 64-bit 2014-08-01 11:18:53 -04:00
atm drivers: atm: fix %d confusingly prefixed with 0x in format strings 2014-08-05 13:04:32 -07:00
auxdisplay
base CMA: generalize CMA reserved area management functionality 2014-08-06 18:01:16 -07:00
bcma bcma: use NS prefix for names of Northstar specific cores 2014-07-31 13:45:32 -04:00
block zram: avoid lockdep splat by revalidate_disk 2014-07-23 15:10:54 -07:00
bluetooth Bluetooth: Fix crash in the Marvell driver initialization codepath 2014-07-31 01:07:28 +02:00
bus Merge branch 'component-for-driver' of git://ftp.arm.linux.org.uk/~rmk/linux-arm into driver-core-next 2014-07-03 12:48:59 -07:00
cdrom
char Cleanups and bug fixes to /dev/random, add a new getrandom(2) system 2014-08-06 08:16:24 -07:00
clk The clock framework changes for 3.17 are mostly additions of new clock 2014-08-04 11:44:20 -07:00
clocksource Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
connector connector: Use ktime_get_ns() 2014-07-23 10:18:07 -07:00
cpufreq cpufreq: move policy kobj to policy->cpu at resume 2014-07-17 14:23:22 +02:00
cpuidle
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2014-08-04 09:52:51 -07:00
dca
devfreq
dio
dma dma: Fix MIC X100 DMA Driver Kconfig option 2014-07-16 13:47:54 -07:00
dma-buf reservation: add suppport for read-only access using rcu 2014-07-08 13:41:08 -07:00
edac Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 17:21:59 -07:00
eisa
extcon extcon: sm5502: Change internal hardware switch according to cable type 2014-07-23 10:22:35 +09:00
firewire Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
firmware Merge branch 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 17:21:59 -07:00
fmc
gpio Pin control fixes for v3.16: 2014-07-23 17:42:37 -07:00
gpu Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
hid [media] rc-core: remove protocol arrays 2014-07-25 19:10:43 -03:00
hsi net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
hv Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
hwmon Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
hwspinlock
i2c The clock framework changes for 3.17 are mostly additions of new clock 2014-08-04 11:44:20 -07:00
ide ide: use module_platform_driver() 2014-08-05 21:16:46 -07:00
idle
iio Staging driver patches for 3.17-rc1 2014-08-04 18:36:12 -07:00
infiniband mlx5: Adjust events to use unsigned long param instead of void * 2014-07-30 14:00:06 -07:00
input Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-08-06 09:41:23 -07:00
iommu Merge branches 'x86/vt-d', 'x86/amd', 'arm/omap', 'ppc/pamu', 'arm/smmu', 'arm/exynos' and 'core' into next 2014-07-31 20:29:02 +02:00
ipack ipack: Replace DEFINE_PCI_DEVICE_TABLE macro use 2014-07-18 16:50:55 -07:00
irqchip Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:38:45 -07:00
isdn net: filter: split 'struct sk_filter' into socket and bpf parts 2014-08-02 15:03:58 -07:00
leds
lguest
macintosh
mailbox
mcb
md Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 16:23:30 -07:00
media Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
memory
memstick
message
mfd Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
misc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
mmc
mtd Two UBI fastmap-related fixes for v3.16: 2014-07-18 06:23:34 -10:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
nfc NFC: st21nfca: Adding P2P support to st21nfca in Initiator & Target mode 2014-07-23 01:14:41 +02:00
ntb
nubus
of Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
oprofile
parisc
parport parport: fix menu breakage 2014-07-25 18:00:23 -07:00
pci Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
pcmcia pcmcia: remove DEFINE_PCI_DEVICE_TABLE usage 2014-07-18 16:58:07 -07:00
phy phy: miphy365x: Represent each PHY channel as a DT subnode 2014-07-22 12:46:43 +05:30
pinctrl pinctrl: st: Fix irqmux handler 2014-07-15 20:55:15 +02:00
platform
pnp ACPI / PNP: Fix acpi_pnp_match() 2014-07-30 00:23:09 +02:00
power
powercap
pps
ps3
ptp ptp: Allow reassigning calibration pin function 2014-07-01 18:52:54 -07:00
pwm
rapidio rapidio/tsi721_dma: fix failure to obtain transaction descriptor 2014-07-30 17:16:13 -07:00
ras
regulator Merge remote-tracking branches 'regulator/topic/tps65217', 'regulator/topic/tps65218', 'regulator/topic/tps6586x' and 'regulator/topic/twl' into regulator-next 2014-08-05 18:29:30 +01:00
remoteproc
reset
rpmsg
rtc
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-07-22 00:44:59 -07:00
sbus Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2014-08-05 18:57:18 -07:00
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
sfi
sh
sn
soc
spi spi: Updates for v3.17 2014-08-05 16:18:13 -07:00
spmi spmi: Remove duplicate inclusion of module.h 2014-07-10 15:22:13 -07:00
ssb ssb: extract power info from SPROM revs 4 and 5 2014-07-18 13:45:24 -04:00
staging Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
target Merge branch 'for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-08-04 10:09:27 -07:00
tc
thermal
thunderbolt thunderbolt: Use kcalloc 2014-07-13 13:16:50 -07:00
tty Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-08-06 09:41:23 -07:00
uio Merge 3.16-rc5 into char-misc-next 2014-07-13 15:26:47 -07:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
uwb uwb/whci: use correct structure type name in sizeof 2014-08-01 15:48:08 -07:00
vfio
vhost
video PCI changes for the v3.17 merge window: 2014-08-04 09:29:37 -07:00
virt
virtio
vlynq
vme VME: remove duplicate CA91CX42_DCTL_VDW_M define 2014-07-09 16:33:42 -07:00
w1
watchdog
xen Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 17:13:50 -07:00
zorro zorro: Use ARRAY_SIZE 2014-07-11 10:38:02 +02:00
Kconfig Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
Makefile Driver core patches for 3.17-rc1 2014-08-04 18:34:04 -07:00