summaryrefslogtreecommitdiffstats
path: root/sys/net/vnet.h
diff options
context:
space:
mode:
authorbz <bz@FreeBSD.org>2009-08-12 10:26:03 +0000
committerbz <bz@FreeBSD.org>2009-08-12 10:26:03 +0000
commitd74deee9a116a36e9162c50fc35fa1b71f3bec3c (patch)
tree5ce471506e3a9f0e474950b792b9f089332fa85b /sys/net/vnet.h
parentd249e9c3220f3b4c814b7bfbdfc4bdff1a2112ee (diff)
downloadFreeBSD-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.h8
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)
OpenPOWER on IntegriCloud