Revision 597399d0cb91d049fcb78fb45c7694771b583bb7 authored by Will Deacon on 16 October 2019, 04:04:18 UTC, committed by Will Deacon on 16 October 2019, 17:11:38 UTC
Sign-extending TTBR1 addresses when converting to an untagged address breaks the documented POSIX semantics for mlock() in some obscure error cases where we end up returning -EINVAL instead of -ENOMEM as a direct result of rewriting the upper address bits. Rework the untagged_addr() macro to preserve the upper address bits for TTBR1 addresses and only clear the tag bits for user addresses. This matches the behaviour of the 'clear_address_tag' assembly macro, so rename that and align the implementations at the same time so that they use the same instruction sequences for the tag manipulation. Link: https://lore.kernel.org/stable/20191014162651.GF19200@arrakis.emea.arm.com/ Reported-by: Jan Stancek <jstancek@redhat.com> Tested-by: Jan Stancek <jstancek@redhat.com> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Tested-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Tested-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Reviewed-by: Andrey Konovalov <andreyknvl@google.com> Signed-off-by: Will Deacon <will@kernel.org>
1 parent 3813733
File | Mode | Size |
---|---|---|
ac97 | ||
aoa | ||
arm | ||
atmel | ||
core | ||
drivers | ||
firewire | ||
hda | ||
i2c | ||
isa | ||
mips | ||
oss | ||
parisc | ||
pci | ||
pcmcia | ||
ppc | ||
sh | ||
soc | ||
sparc | ||
spi | ||
synth | ||
usb | ||
x86 | ||
xen | ||
Kconfig | -rw-r--r-- | 2.8 KB |
Makefile | -rw-r--r-- | 554 bytes |
ac97_bus.c | -rw-r--r-- | 2.9 KB |
last.c | -rw-r--r-- | 628 bytes |
sound_core.c | -rw-r--r-- | 14.3 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...