diff options
author | Warner Losh <imp@FreeBSD.org> | 2007-01-12 07:23:31 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2007-01-12 07:23:31 +0000 |
commit | 0befead1e0405c7724088f3d7abd9cc66d23aa5a (patch) | |
tree | 5aad38060f4270bcf395b1eb7e96bc11d289336b /sys/netinet/ip.h | |
parent | 1c0ee39e74f1b1c2941afb576eb33e0377fe0b4e (diff) | |
download | src-0befead1e0405c7724088f3d7abd9cc66d23aa5a.tar.gz src-0befead1e0405c7724088f3d7abd9cc66d23aa5a.zip |
Marking this as __packed was needed to get the alignment and offset of
members right. However, it also said it was aligned(1), which meant
that gcc generated really bad code. Mark this as aligned(4). This
makes things a little faster on arm (a couple percent), but also saves
about 30k on the size of the kernel for arm.
I talked about doing this with bde, but didn't check with him before
the commit, so I'm hesitant say 'reviewed by: bde'.
Notes
Notes:
svn path=/head/; revision=165966
Diffstat (limited to 'sys/netinet/ip.h')
-rw-r--r-- | sys/netinet/ip.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/ip.h b/sys/netinet/ip.h index 1ad3a93e1c38..63aa4fd80fb2 100644 --- a/sys/netinet/ip.h +++ b/sys/netinet/ip.h @@ -65,7 +65,7 @@ struct ip { u_char ip_p; /* protocol */ u_short ip_sum; /* checksum */ struct in_addr ip_src,ip_dst; /* source and dest address */ -} __packed; +} __packed __aligned(4); #ifdef CTASSERT CTASSERT(sizeof (struct ip) == 20); |