From owner-freebsd-net@FreeBSD.ORG Sat Jan 4 17:00:13 2014 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id ACA0557A for ; Sat, 4 Jan 2014 17:00:13 +0000 (UTC) Received: from mail-ie0-f170.google.com (mail-ie0-f170.google.com [209.85.223.170]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 74AD31F8A for ; Sat, 4 Jan 2014 17:00:13 +0000 (UTC) Received: by mail-ie0-f170.google.com with SMTP id qd12so17175969ieb.1 for ; Sat, 04 Jan 2014 09:00:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:mime-version:content-type:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=Nhzav3bT7kO+Y+zllB/G5+kL3WTDX86fAmsZ4By94Sc=; b=lDlrrrr/Q9ev3EDmh0Zjlinvv2mQxZgk3dKWfEVECz+SS+rcsJla/GFjC/Fcowcvq1 KcoltkAOqj6pzzmZhKc+o+vd5a4HRAi9cEcUwAt6shpnRpnmkBtDNKs96RRgQXDrka4n d7BygoNjbN7V/8mE3LCbiQI6SnxLut5NZ3x9PT6ztoPOS1JXdOS9izVOH5Vkg85L6H9t vYIrrpEM6/6GiJ45aYxTI6kdklnHW+6tE7tqUqjKXs5VriFO80ZtajU4mqXWEHPmjzSk RejyAG7KLjn9YlwUUhBY8CsnpURCPqnt3dYNw4+VJ7JfNbfcAkuogISA9rVgKRIMKxCH V0Jg== X-Gm-Message-State: ALoCoQlDHVkYB/wk4/66FgIitmsbvqoyuc2brUuf1IwHX6mCcsHqPPTHjIcSuoQHvDoI58lNT8k0 X-Received: by 10.50.136.201 with SMTP id qc9mr9860121igb.11.1388854348952; Sat, 04 Jan 2014 08:52:28 -0800 (PST) Received: from [10.0.0.23] (50-78-194-198-static.hfc.comcastbusiness.net. [50.78.194.198]) by mx.google.com with ESMTPSA id s4sm7149549ige.0.2014.01.04.08.52.25 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 04 Jan 2014 08:52:26 -0800 (PST) Sender: Warner Losh Subject: Re: 10.0-RC1, armv6: "pfctl -s state" crashes on BeagleBone Black due to unaligned access Mime-Version: 1.0 (Apple Message framework v1085) Content-Type: text/plain; charset=us-ascii From: Warner Losh In-Reply-To: Date: Sat, 4 Jan 2014 09:50:26 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Guy Yur X-Mailer: Apple Mail (2.1085) Cc: freebsd-net@freebsd.org, freebsd-arm@freebsd.org X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Jan 2014 17:00:13 -0000 I think this was changed in later RC versions. Warner On Jan 4, 2014, at 6:06 AM, Guy Yur wrote: > Hi, >=20 > I am running 10.0-RC1 arm.armv6 on the BeagleBone Black. > The "pfctl -s state" command is crashing when trying to print the > second entry. >=20 > struct pfsync_state has a size that is not divisiable by 4 or 8 = leading to the > second entry in the returned state array not being aligned and pfctl > core dumps on Bus error when trying to access a uint32_t field. >=20 > (gdb) bt > #0 print_host (addr=3D0x2085a11a, port=3D7660, af=3D2 '\002', = opts=3D1024) at > /usr/src/sbin/pfctl/pf_print_state.c:178 > #1 0x00021c4c in print_state (s=3D0x2085a0f2, opts=3D1024) at > /usr/src/sbin/pfctl/pf_print_state.c:236 > #2 0x0000c664 in pfctl_show_states (dev=3D, > iface=3D0x0, opts=3D1024) at /usr/src/sbin/pfctl/pfctl.c:1095 >=20 > sizeof(struct pfsync_state_key) is 36 > sizeof(struct pfsync_state_peer) is 32 > sizeof(struct pf_addr) is 16 > sizeof(struct pfsync_state) is 242 >=20 > Removing the __spare[2] field will allow the struct to be aligned on 8 = bytes > for the u_int64_t id field and also cover the uint32_t fields = alignment > but this will break KBI. >=20 > I am currently using an inefficient workaround in pfctl_show_states > that memcpy each entry to a struct pfsync_state on the stack > ensuring each call to print_state receives an aligned struct. >=20 >=20 > 10.0-RC1 World and kernel were compiled in a VirtualBox VM running > 9.2-RELEASE-p2 i386. > clang and ARM_EABI used as the default make options. >=20 >=20 > Regards, > Guy > _______________________________________________ > freebsd-arm@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arm > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"