Undo previous backout: alignment is needed here.

The reason for the previous backout was a misunderstanding (POINTER_ALIGNED_P
was broken, but the assertion fired even after it got fixed).
This commit is contained in:
martin 2021-02-16 05:44:13 +00:00
parent 439a3189a8
commit aee51c4b29
1 changed files with 5 additions and 6 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_arp.c,v 1.304 2021/02/15 19:49:17 christos Exp $ */ /* $NetBSD: if_arp.c,v 1.305 2021/02/16 05:44:13 martin Exp $ */
/* /*
* Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc. * Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc.
@ -68,7 +68,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.304 2021/02/15 19:49:17 christos Exp $"); __KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.305 2021/02/16 05:44:13 martin Exp $");
#ifdef _KERNEL_OPT #ifdef _KERNEL_OPT
#include "opt_ddb.h" #include "opt_ddb.h"
@ -707,10 +707,9 @@ arpintr(void)
MCLAIM(m, &arpdomain.dom_mowner); MCLAIM(m, &arpdomain.dom_mowner);
ARP_STATINC(ARP_STAT_RCVTOTAL); ARP_STATINC(ARP_STAT_RCVTOTAL);
if (__predict_false(m->m_len < sizeof(*ar))) { if (m_get_aligned_hdr(&m, ARP_HDR_ALIGNMENT, sizeof(*ar),
if ((m = m_pullup(m, sizeof(*ar))) == NULL) false) != 0)
goto badlen; goto badlen;
}
ar = mtod(m, struct arphdr *); ar = mtod(m, struct arphdr *);
KASSERT(POINTER_ALIGNED_P(ar, ARP_HDR_ALIGNMENT)); KASSERT(POINTER_ALIGNED_P(ar, ARP_HDR_ALIGNMENT));