linux-uconsole/drivers
Isaac J. Manjarres 226a0a7161 ANDROID: staging: ion: Fix dynamic heap ID assignment
The current implementation derives the heap ID using
ffs(), which is one-indexed, and then proceeds to use
this value with functions such as find_next_zero_bit()
and test_and_set_bit() which operate under a zero-indexing
scheme. This can lead to some clumsy/erroneous handling when
dynamically allocating a heap ID, as follows:

CMA heap bits range: [8, 15]

First CMA heap without a heap ID registration:

start_bit = ffs(ION_HEAP_DMA_START) /* 9 */
end_bit = ffs(ION_HEAP_DMA_END) /* 16 */
id_bit = find_next_zero_bit(dev->heap_ids, 16 + 1, 9) /* 9 */
test_and_set_bit(9 - 1, dev->heap_ids) /* Succeeds */

Second CMA heap without a heap ID registration:

start_bit = ffs(ION_HEAP_DMA_START) /* 9 */
end_bit = ffs(ION_HEAP_DMA_END) == 16 /* 16 */
id_bit = find_next_zero_bit(dev->heap_ids, 16 + 1, 9) /* 9 */
test_and_set_bit(9 - 1, dev->heap_ids) /* Fails */

Thus, switch to a zero-indexing scheme when deriving the
heap ID parameters to simplify the logic, as well as correct
the dynamic heap ID assignment logic.

Fixes: acbfdf321a ("ANDROID: staging: ion: add support for consistent heap ids")
Change-Id: I66d0f3838a3ef4dc4ff8537f23dd4e226472b9e2
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
2019-10-29 21:50:44 +00:00
..
accessibility
acpi ACPI fix for 5.4-rc5 2019-10-24 15:49:32 -04:00
amba ARM updates for 5.4-rc: 2019-10-23 06:26:33 -04:00
android Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
ata ata: libahci_platform: Fix regulator_get_optional() misuse 2019-10-25 14:22:20 -06:00
atm atm: he: clean up an indentation issue 2019-09-25 13:54:45 +02:00
auxdisplay It's a somewhat calmer cycle for docs this time, as the churn of the mass 2019-09-17 16:22:26 -07:00
base Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
bcma bcma: make arrays pwr_info_offset and sprom_sizes static const, shrinks object size 2019-09-13 16:44:49 +03:00
block nbd: verify socket is supported during setup 2019-10-25 14:37:21 -06:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-09-15 14:17:27 +02:00
bus bus: ti-sysc: Fix watchdog quirk handling 2019-10-18 08:45:32 -07:00
cdrom
char char/random: Add a newline at the end of the file 2019-10-02 13:49:43 -07:00
clk clk: add pre and post change rate callbacks 2019-10-15 15:09:00 -07:00
clocksource timer-of: don't use conditional expression with mixed 'void' types 2019-10-02 16:16:07 -07:00
connector
counter
cpufreq ANDROID: dummy_cpufreq: Implement get() 2019-10-29 02:58:15 +00:00
cpuidle cpuidle: haltpoll: Take 'idle=' override into account 2019-10-22 11:43:17 +02:00
crypto Merge branch 'akpm' (patches from Andrew) 2019-09-24 16:10:23 -07:00
dax
dca
devfreq
dio
dma Main MIPS changes for v5.4: 2019-09-22 09:30:30 -07:00
dma-buf Linux 5.4-rc4 2019-10-26 19:24:41 +02:00
edac EDAC/ghes: Fix Use after free in ghes_edac remove path 2019-10-17 11:27:05 +02:00
eisa
extcon chrome platform changes for v5.4 2019-09-19 14:14:28 -07:00
firewire
firmware Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2019-10-15 09:20:07 -07:00
fpga Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
fsi
gnss
gpio gpio: lynxpoint: set default handler to be handle_bad_irq() 2019-10-15 01:19:05 +02:00
gpu Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
greybus
hid HID: hyperv: Use in-place iterator API in the channel callback 2019-10-01 14:49:41 -04:00
hsi HSI changes for the 5.4 series 2019-09-22 12:02:21 -07:00
hv Drivers: hv: vmbus: Fix harmless building warnings without CONFIG_PM_SLEEP 2019-10-01 14:49:45 -04:00
hwmon hwmon: (nct7904) Add array fan_alarm and vsen_alarm to store the alarms in nct7904_data struct. 2019-10-02 06:42:48 -07:00
hwspinlock
hwtracing Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
i2c i2c: stm32f7: remove warning when compiling with W=1 2019-10-24 20:52:21 +02:00
i3c
ide
idle
iio First set of IIO fixes for the 5.4 cycle. 2019-10-10 11:18:37 +02:00
infiniband RDMA/mlx5: Add missing synchronize_srcu() for MW cases 2019-10-04 15:54:22 -03:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-10-25 17:31:53 -04:00
interconnect UPSTREAM: interconnect: qcom: Add tagging and wake/sleep support for sdm845 2019-09-06 10:55:54 -07:00
iommu Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
ipack
irqchip Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
isdn mISDN: enforce CAP_NET_RAW for raw sockets 2019-09-24 16:37:18 +02:00
leds leds: lm3532: Fix optional led-max-microamp prop error handling 2019-09-12 20:45:52 +02:00
lightnvm lightnvm: print error when target is not found 2019-09-05 13:17:01 -06:00
macintosh cpufreq: Use per-policy frequency QoS 2019-10-21 02:05:21 +02:00
mailbox mailbox: qcom-apcs: fix max_register value 2019-09-17 00:54:29 -05:00
mcb
md Linux 5.4-rc4 2019-10-26 19:24:41 +02:00
media ANDROID: v4l2-compat-ioctl32.c: copy reserved fields 2019-10-25 00:29:12 +00:00
memory
memstick memstick: jmb38x_ms: Fix an error handling path in 'jmb38x_ms_probe()' 2019-10-09 11:08:03 +02:00
message
mfd mfd: mt6397: Fix probe after changing mt6397-core 2019-10-24 08:49:25 +01:00
misc Linux 5.4-rc3 2019-10-17 05:28:13 -07:00
mmc Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
mtd mtd: rawnand: au1550nd: Fix au_read_buf16() prototype 2019-10-07 09:56:36 +02:00
mux
net Linux 5.4-rc4 2019-10-26 19:24:41 +02:00
nfc NFC: pn533: fix use-after-free and memleaks 2019-10-08 16:52:26 -07:00
ntb NTB: fix IDT Kconfig typos/spellos 2019-09-23 17:20:40 -04:00
nubus
nvdimm libnvdimm fixes v5.4-rc1 2019-09-29 10:33:41 -07:00
nvme nvme-pci: Set the prp2 correctly when using more than 4k page 2019-10-18 23:09:41 +09:00
nvmem Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
of Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
opp opp: Reinitialize the list_kref before adding the static OPPs again 2019-10-23 10:58:44 +05:30
oprofile
parisc parisc: Remove 32-bit DMA enforcement from sba_iommu 2019-10-14 21:44:26 +02:00
parport Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
pci Linux 5.4-rc4 2019-10-26 19:24:41 +02:00
pcmcia Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2019-09-28 08:14:15 -07:00
perf
phy pci-v5.4-changes 2019-09-23 19:16:01 -07:00
pinctrl Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
platform platform/x86: i2c-multi-instantiate: Fail the probe if no IRQ provided 2019-10-14 15:31:50 +03:00
pnp
power power supply and reset changes for the v5.4 series 2019-09-22 12:04:59 -07:00
powercap Power management updates for 5.4-rc1 2019-09-17 19:15:14 -07:00
pps
ps3
ptp ptp: fix typo of "mechanism" in Kconfig help text 2019-10-07 14:55:46 -04:00
pwm pwm: Changes for v5.4-rc1 2019-09-27 12:19:47 -07:00
rapidio
ras
regulator regulator: Fixes for v5.4 2019-10-23 15:31:17 -04:00
remoteproc remoteproc updates for v5.4 2019-09-22 10:55:08 -07:00
reset ARM: SoC fixes 2019-09-30 10:04:28 -07:00
rpmsg rpmsg: glink-smem: Name the edge based on parent remoteproc 2019-09-17 15:33:31 -07:00
rtc RTC for 5.4 2019-09-22 11:05:43 -07:00
s390 s390/zcrypt: fix memleak at release 2019-10-22 17:55:51 +02:00
sbus
scsi SCSI fixes on 20191025 2019-10-25 20:11:33 -04:00
sfi
sh
siox
slimbus
soc Revert "drivers: qcom: rpmh-rsc: modularize RSC controller driver" 2019-10-11 16:59:51 +00:00
soundwire soundwire updates for v5.4-rc1 2019-09-22 10:52:23 -07:00
spi LED updates for 5.4-rc1 2019-09-17 18:40:42 -07:00
spmi
ssb ssb: make array pwr_info_offset static const, makes object smaller 2019-09-13 17:23:18 +03:00
staging ANDROID: staging: ion: Fix dynamic heap ID assignment 2019-10-29 21:50:44 +00:00
target SCSI fixes on 20191025 2019-10-25 20:11:33 -04:00
tc
tee tee/shm: untag user pointers in tee_shm_register 2019-09-25 17:51:41 -07:00
thermal cpufreq: Use per-policy frequency QoS 2019-10-21 02:05:21 +02:00
thunderbolt
tty 8250-men-mcb: fix error checking when get_num_ports returns -ENODEV 2019-10-15 21:38:41 +02:00
uio Char/Misc driver patches for 5.4-rc1 2019-09-18 11:14:31 -07:00
usb Linux 5.4-rc5 2019-10-28 13:11:46 +01:00
vfio vfio/type1: Initialize resv_msi_base 2019-10-15 14:07:01 -06:00
vhost vhost/test: stop device before reset 2019-10-13 09:38:27 -04:00
video video/logo: do not generate unneeded logo C files 2019-10-05 15:29:49 +09:00
virt virt: vbox: fix memory leak in hgcm_call_preprocess_linaddr 2019-10-10 14:50:32 +02:00
virtio ANDROID: virtio: virtio_input: Set the amount of multitouch slots in virtio input 2019-10-29 02:21:22 +00:00
visorbus
vlynq
vme
w1 w1: ds250x: Fix build error without CRC16 2019-10-10 15:35:41 +02:00
watchdog linux-watchdog 5.4-rc1 tag 2019-09-27 11:17:38 -07:00
xen Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-10-19 17:09:11 -04:00
zorro
Kconfig Staging/IIO driver patches for 5.4-rc1 2019-09-18 11:05:34 -07:00
Makefile Staging/IIO driver patches for 5.4-rc1 2019-09-18 11:05:34 -07:00