diff options
author | bz <bz@FreeBSD.org> | 2009-08-12 10:26:03 +0000 |
---|---|---|
committer | bz <bz@FreeBSD.org> | 2009-08-12 10:26:03 +0000 |
commit | d74deee9a116a36e9162c50fc35fa1b71f3bec3c (patch) | |
tree | 5ce471506e3a9f0e474950b792b9f089332fa85b /sys/net/vnet.h | |
parent | d249e9c3220f3b4c814b7bfbdfc4bdff1a2112ee (diff) | |
download | FreeBSD-src-d74deee9a116a36e9162c50fc35fa1b71f3bec3c.zip FreeBSD-src-d74deee9a116a36e9162c50fc35fa1b71f3bec3c.tar.gz |
Put minimum alignment on the dpcpu and vnet section so that ld
when adding the __start_ symbol knows the expected section alignment
and can place the __start_ symbol correctly.
These sections will not support symbols with super-cache line alignment
requirements.
For full details, see posting to freebsd-current, 2009-08-10,
Message-ID: <20090810133111.C93661@maildrop.int.zabbadoz.net>.
Debugging and testing patches by:
Kamigishi Rei (spambox haruhiism.net),
np, lstewart, jhb, kib, rwatson
Tested by: Kamigishi Rei, lstewart
Reviewed by: kib
Approved by: re
Diffstat (limited to 'sys/net/vnet.h')
-rw-r--r-- | sys/net/vnet.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/net/vnet.h b/sys/net/vnet.h index 01d824d..d441af1 100644 --- a/sys/net/vnet.h +++ b/sys/net/vnet.h @@ -185,12 +185,14 @@ extern struct sx vnet_sxlock; * Virtual network stack memory allocator, which allows global variables to * be automatically instantiated for each network stack instance. */ +__asm__( #if defined(__arm__) -__asm__(".section " VNET_SETNAME ", \"aw\", %progbits"); + ".section " VNET_SETNAME ", \"aw\", %progbits\n" #else -__asm__(".section " VNET_SETNAME ", \"aw\", @progbits"); + ".section " VNET_SETNAME ", \"aw\", @progbits\n" #endif -__asm__(".previous"); + "\t.p2align " __XSTRING(CACHE_LINE_SHIFT) "\n" + "\t.previous"); #define VNET_NAME(n) vnet_entry_##n #define VNET_DECLARE(t, n) extern t VNET_NAME(n) |