Dave Gerlach
34cfb106d1
misc: sram-exec: Use aligned fncpy instead of memcpy
...
Currently the sram-exec functionality, which allows allocation of
executable memory and provides an API to move code to it, is only
selected in configs for the ARM architecture. Based on commit
5756e9dd0d ("ARM: 6640/1: Thumb-2: Symbol manipulation macros for
function body copying") simply copying a C function pointer address
using memcpy without consideration of alignment and Thumb is unsafe on
ARM platforms.
The aforementioned patch introduces the fncpy macro which is a safe way
to copy executable code on ARM platforms, so let's make use of that here
rather than the unsafe plain memcpy that was previously used by
sram_exec_copy. Now sram_exec_copy will move the code to "dst" and
return an address that is guaranteed to be safely callable.
In the future, architectures hoping to make use of the sram-exec
functionality must define an fncpy macro just as ARM has done to
guarantee or check for safe copying to executable memory before allowing
the arch to select CONFIG_SRAM_EXEC.
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-18 17:37:52 +02:00
..
accessibility
acpi
More ACPI updates for v4.12-rc1
2017-05-10 09:35:42 -07:00
amba
android
ata
ARM: SoC driver updates
2017-05-09 10:01:15 -07:00
atm
auxdisplay
base
More power management updates for v4.12-rc1
2017-05-10 09:12:30 -07:00
bcma
block
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
bluetooth
bus
cdrom
char
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
clk
Sort of on the quieter side this time, which is probably due more
2017-05-10 13:38:18 -07:00
clocksource
Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-05-12 10:43:25 -07:00
connector
cpufreq
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2017-05-12 09:56:30 -07:00
cpuidle
Merge branches 'pm-domains', 'pm-cpuidle', 'pm-sleep' and 'powercap'
2017-05-09 23:21:46 +02:00
crypto
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
dax
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
2017-05-12 15:43:10 -07:00
dca
devfreq
dio
dma
dmaengine updates for 4.12-rc1
2017-05-09 15:40:28 -07:00
dma-buf
edac
eisa
extcon
firewire
firmware
firmware: google: memconsole: Adapt to new coreboot ring buffer format
2017-05-18 16:59:06 +02:00
fmc
fpga
fsi
gpio
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
gpu
drm/i915: Make vblank evade warnings optional
2017-05-12 14:28:02 +10:00
hid
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2017-05-02 19:09:35 -07:00
hsi
hv
HV: properly delay KVP packets when negotiation is in progress
2017-05-18 16:55:28 +02:00
hwmon
hwspinlock
hwtracing
drivers/hwtracing/intel_th/msu.c: use set_memory.h header
2017-05-08 17:15:14 -07:00
i2c
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
ide
ide: don't call memcpy with the same source and destination
2017-05-08 17:36:39 -04:00
idle
x86/intel_idle: add Gemini Lake support
2017-05-01 23:17:37 +02:00
iio
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
infiniband
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2017-05-12 11:44:13 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2017-05-13 10:25:05 -07:00
iommu
IOMMU Updates for Linux v4.12
2017-05-09 15:15:47 -07:00
ipack
ipack: Improve a size determination in ipack_bus_register()
2017-05-18 16:59:06 +02:00
irqchip
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2017-05-12 09:56:30 -07:00
isdn
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
leds
scripts/spelling.txt: add "memory" pattern and fix typos
2017-05-08 17:15:13 -07:00
lguest
lightnvm
lightnvm: fix bad back free on error path
2017-05-04 07:53:04 -06:00
macintosh
DeviceTree for 4.12:
2017-05-05 19:33:07 -07:00
mailbox
mcb
md
mm, vmalloc: use __GFP_HIGHMEM implicitly
2017-05-08 17:15:13 -07:00
media
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
memory
MTD updates for 4.12-rc1:
2017-05-11 10:44:22 -07:00
memstick
message
mfd
misc
misc: sram-exec: Use aligned fncpy instead of memcpy
2017-05-18 17:37:52 +02:00
mmc
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
mtd
This pull request contains updates for both UBI and UBIFS:
2017-05-13 10:23:12 -07:00
net
powerpc updates for 4.12 part 2
2017-05-12 10:04:09 -07:00
nfc
ntb
nubus
nvdimm
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
2017-05-12 15:43:10 -07:00
nvme
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2017-05-11 11:01:56 -07:00
nvmem
ARM: SoC driver updates
2017-05-09 10:01:15 -07:00
of
powerpc updates for 4.12 part 2
2017-05-12 10:04:09 -07:00
oprofile
parisc
parport
pci
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
pcmcia
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
perf
phy
pinctrl
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2017-05-02 19:09:35 -07:00
platform
char/misc patches for 4.12-rc1
2017-05-04 19:15:35 -07:00
pnp
power
power supply and reset changes for the v4.12 series (part 2)
2017-05-12 12:02:21 -07:00
powercap
pps
drivers: pps: Make PPS into a menuconfig to ease disabling
2017-05-18 16:59:06 +02:00
ps3
ptp
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-05-01 16:15:18 -07:00
pwm
rapidio
char/misc patches for 4.12-rc1
2017-05-04 19:15:35 -07:00
ras
regulator
remoteproc
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
reset
ARM: SoC driver updates
2017-05-09 10:01:15 -07:00
rpmsg
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
rtc
RTC for 4.12
2017-05-10 19:37:14 -07:00
s390
virtio: fixes, cleanups, performance
2017-05-10 11:33:08 -07:00
sbus
scsi
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2017-05-12 11:44:13 -07:00
sfi
sh
sn
soc
powerpc updates for 4.12 part 2
2017-05-12 10:04:09 -07:00
spi
spmi
ssb
staging
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
target
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2017-05-12 11:44:13 -07:00
tc
tee
TEE driver infrastructure and OP-TEE drivers
2017-05-10 11:20:09 -07:00
thermal
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
2017-05-12 11:58:45 -07:00
thunderbolt
tty
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
uio
uio/uio_pci_generic: don't fail probe if pdev->irq == NULL
2017-05-18 16:59:06 +02:00
usb
DeviceTree for 4.12:
2017-05-05 19:33:07 -07:00
uwb
vfio
powerpc updates for 4.12 part 1.
2017-05-05 11:36:44 -07:00
vhost
vhost/vsock: use static minor number
2017-05-18 16:59:06 +02:00
video
fbdev changes for v4.12:
2017-05-11 11:12:26 -07:00
virt
drivers/virt/fsl_hypervisor.c: use get_user_pages_unlocked()
2017-05-08 17:15:10 -07:00
virtio
virtio: allow extra context per descriptor
2017-05-02 23:41:43 +03:00
vlynq
vme
w1
watchdog
Annotation of module parameters that specify device settings
2017-05-10 19:13:03 -07:00
xen
Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2017-05-09 09:12:53 -07:00
zorro
Kconfig
Makefile
TEE driver infrastructure and OP-TEE drivers
2017-05-10 11:20:09 -07:00