From 0befead1e0405c7724088f3d7abd9cc66d23aa5a Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Fri, 12 Jan 2007 07:23:31 +0000 Subject: [PATCH] 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'. --- sys/netinet/ip.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet/ip.h b/sys/netinet/ip.h index 1ad3a93e1c3..63aa4fd80fb 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);