freebsd-dev/sys/arm
Ian Lepore 45cd4c8cef Revert the recent armv6 changes to ALIGNED_POINTER(), restoring the
fully-pessimized implementation that requires a type to be aligned to
its natural size.

On armv6+ the compiler might generate load-/store-multiple instructions
which require 4-byte alignment even though the source code is only
accessing individual uint32_t values in a way that doesn't require any
particular alignment at all.  The compiler apparently feels free to
combine multiple accesses into a single instruction that requires a
more-strict alignment, and no set of compiler flags seems to disable
this behavior (at least in clang 3.8).

This fixes alignment faults on arm systems using wifi adapters.  The
wifi code uses ALIGNED_POINTER(p, uint32_t) to decide whether it needs
to copy-align tcp headers.  Because clang is combining several uint32_t
accesses into a single ldm instruction, we need to say that accessing a
uint32_t requires 4-byte alignment.

Approved by:	re(gjb)
2016-06-21 17:53:42 +00:00
..
allwinner Fix a crash while iterating compat strings when no match is found. 2016-05-31 21:58:09 +00:00
altera/socfpga Move arm's devmap to some generic place, so it can be used 2016-04-26 11:53:37 +00:00
amlogic/aml8726 Use OF_prop_free instead of direct call to free(9) 2016-05-18 23:41:58 +00:00
annapurna/alpine Move arm's devmap to some generic place, so it can be used 2016-04-26 11:53:37 +00:00
arm Update comments for the MD functions managing contexts for new 2016-06-16 12:05:44 +00:00
at91 Use the new(-ish) CP15_SCTLR macro to generate system control reg accesses 2016-05-23 20:07:17 +00:00
broadcom/bcm2835 Fix the deciKelvin to Celsius conversion in kernel. 2016-05-22 13:58:32 +00:00
cavium/cns11xx Spaces->tab in comment. 2016-05-23 20:13:17 +00:00
conf Add support for CESA on Armada38x 2016-06-02 18:41:33 +00:00
freescale Postpone allocation of IRQ resource to the time when interrupt 2016-06-03 11:05:55 +00:00
include Revert the recent armv6 changes to ALIGNED_POINTER(), restoring the 2016-06-21 17:53:42 +00:00
lpc Move arm's devmap to some generic place, so it can be used 2016-04-26 11:53:37 +00:00
mv Use nitems() macro instead of re-inventing it 2016-06-03 18:52:57 +00:00
nvidia tegra124: use roundup/rounddown macros from <sys/param.h>. 2016-06-03 21:11:34 +00:00
qemu While gem5 is not qemu, we treat it as "simulators" or "virtual environments". 2016-05-04 16:24:12 +00:00
rockchip Move arm's devmap to some generic place, so it can be used 2016-04-26 11:53:37 +00:00
samsung/exynos sys/arm: Minor spelling fixes. 2016-05-04 15:48:59 +00:00
ti Only do the touch screen setup when the 'ti,wires' property is present. 2016-05-26 18:52:26 +00:00
versatile Move arm's devmap to some generic place, so it can be used 2016-04-26 11:53:37 +00:00
xilinx sys/arm: Minor spelling fixes. 2016-05-04 15:48:59 +00:00
xscale sys/arm: Minor spelling fixes. 2016-05-04 15:48:59 +00:00