From owner-freebsd-arm@FreeBSD.ORG Thu Jan 9 23:04:58 2014 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C1A0D380; Thu, 9 Jan 2014 23:04:58 +0000 (UTC) Received: from mail-oa0-x233.google.com (mail-oa0-x233.google.com [IPv6:2607:f8b0:4003:c02::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6B61818A9; Thu, 9 Jan 2014 23:04:58 +0000 (UTC) Received: by mail-oa0-f51.google.com with SMTP id m1so4188985oag.24 for ; Thu, 09 Jan 2014 15:04:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=kaghnQjANnNR0a9EpS6wbhrcoDcotmOGxSD7iava9U4=; b=Pb2OMVmCe7iPQ8sn2LvzrKzfbOszsvnrd1vSttKWVisBapudwP88tFHz/Pkhswp2g0 T3XGpZEjuOe+f0bpysdpNW7/av8yePVOtz4eYL6fFlfCwtOxywxnK2/Not9jtDzlt59z EpZAVPcI50SfXsUJwHDZfxteLudFeVm35vlmGvNauI93RlMDZ7gF316W/QHR38Ij2C/U Zi0pPYyrvNRVs1oJUWNcbCcG8p9vlOBgcY9qyGDVGg/npf2x5vCUzDJa9/U1feZd4uqr hQISnMzqLhqmGFcmAtkYIoyg5Helwogohpf3qKvnvfVEov2aIq5x8cBN1o18s+JEConR JNgA== MIME-Version: 1.0 X-Received: by 10.60.179.113 with SMTP id df17mr4501215oec.16.1389308697685; Thu, 09 Jan 2014 15:04:57 -0800 (PST) Received: by 10.76.20.82 with HTTP; Thu, 9 Jan 2014 15:04:57 -0800 (PST) In-Reply-To: <20140109222610.GJ46596@funkthat.com> References: <20140109104223.GS71033@FreeBSD.org> <20140109222610.GJ46596@funkthat.com> Date: Fri, 10 Jan 2014 01:04:57 +0200 Message-ID: Subject: Re: 10.0-RC1, armv6: "pfctl -s state" crashes on BeagleBone Black due to unaligned access From: Guy Yur To: Guy Yur , Gleb Smirnoff , freebsd-net@freebsd.org, freebsd-arm@freebsd.org Content-Type: multipart/mixed; boundary=089e011609bc6931ef04ef91a33c X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Jan 2014 23:04:58 -0000 --089e011609bc6931ef04ef91a33c Content-Type: text/plain; charset=UTF-8 On Fri, Jan 10, 2014 at 12:26 AM, John-Mark Gurney wrote: > Guy Yur wrote this message on Fri, Jan 10, 2014 at 00:17 +0200: >> On Thu, Jan 9, 2014 at 12:42 PM, Gleb Smirnoff wrote: >> > Guy, >> > >> > On Sat, Jan 04, 2014 at 03:06:02PM +0200, Guy Yur wrote: >> > G> I am running 10.0-RC1 arm.armv6 on the BeagleBone Black. >> > G> The "pfctl -s state" command is crashing when trying to print the >> > G> second entry. >> > Ok, that makes sense... so, either we mark struct pf_addr as __packed, > or we do some nasty stuff, like the following in print_host: > struct { > struct pf_addr a > } *uaddr __packed; > > uaddr = addr; > aw.v.a.addr = uaddr->a; > > it's not pretty, but I believe it would work... > > -- > John-Mark Gurney Voice: +1 415 225 5579 > > "All that I will do, has been done, All that I have, has not." For performance reasons, I don't think pf_addr should be marked as __packed. I attached the changes I am now using in print_state() since there is no need to copy the full pfsync_state, only pf_addr. I converted sk and nk from pointers to structs on the stack and using struct copy. pf_addr is 16 bytes. Regards, Guy --089e011609bc6931ef04ef91a33c Content-Type: application/octet-stream; name="pf_print_state.patch" Content-Disposition: attachment; filename="pf_print_state.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hq8m4iyt0 SW5kZXg6IHBmY3RsL3BmX3ByaW50X3N0YXRlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGZjdGwvcGZfcHJp bnRfc3RhdGUuYwkocmV2aXNpb24gMjYwNDkyKQorKysgcGZjdGwvcGZfcHJpbnRfc3RhdGUuYwko d29ya2luZyBjb3B5KQpAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQKIHByaW50X3N0YXRlKHN0cnVj dCBwZnN5bmNfc3RhdGUgKnMsIGludCBvcHRzKQogewogCXN0cnVjdCBwZnN5bmNfc3RhdGVfcGVl ciAqc3JjLCAqZHN0OwotCXN0cnVjdCBwZnN5bmNfc3RhdGVfa2V5ICpzaywgKm5rOworCXN0cnVj dCBwZnN5bmNfc3RhdGVfa2V5IHNrLCBuazsKIAlzdHJ1Y3QgcHJvdG9lbnQgKnA7CiAJaW50IG1p biwgc2VjOwogCkBAIC0yMTUsMTcgKzIxNSwxNyBAQCBwcmludF9zdGF0ZShzdHJ1Y3QgcGZzeW5j X3N0YXRlICpzLCBpbnQgb3B0cykKIAlpZiAocy0+ZGlyZWN0aW9uID09IFBGX09VVCkgewogCQlz cmMgPSAmcy0+c3JjOwogCQlkc3QgPSAmcy0+ZHN0OwotCQlzayA9ICZzLT5rZXlbUEZfU0tfU1RB Q0tdOwotCQluayA9ICZzLT5rZXlbUEZfU0tfV0lSRV07CisJCXNrID0gcy0+a2V5W1BGX1NLX1NU QUNLXTsKKwkJbmsgPSBzLT5rZXlbUEZfU0tfV0lSRV07CiAJCWlmIChzLT5wcm90byA9PSBJUFBS T1RPX0lDTVAgfHwgcy0+cHJvdG8gPT0gSVBQUk9UT19JQ01QVjYpIAotCQkJc2stPnBvcnRbMF0g PSBuay0+cG9ydFswXTsKKwkJCXNrLnBvcnRbMF0gPSBuay5wb3J0WzBdOwogCX0gZWxzZSB7CiAJ CXNyYyA9ICZzLT5kc3Q7CiAJCWRzdCA9ICZzLT5zcmM7Ci0JCXNrID0gJnMtPmtleVtQRl9TS19X SVJFXTsKLQkJbmsgPSAmcy0+a2V5W1BGX1NLX1NUQUNLXTsKKwkJc2sgPSBzLT5rZXlbUEZfU0tf V0lSRV07CisJCW5rID0gcy0+a2V5W1BGX1NLX1NUQUNLXTsKIAkJaWYgKHMtPnByb3RvID09IElQ UFJPVE9fSUNNUCB8fCBzLT5wcm90byA9PSBJUFBST1RPX0lDTVBWNikgCi0JCQlzay0+cG9ydFsx XSA9IG5rLT5wb3J0WzFdOworCQkJc2sucG9ydFsxXSA9IG5rLnBvcnRbMV07CiAJfQogCXByaW50 ZigiJXMgIiwgcy0+aWZuYW1lKTsKIAlpZiAoKHAgPSBnZXRwcm90b2J5bnVtYmVyKHMtPnByb3Rv KSkgIT0gTlVMTCkKQEAgLTIzMywxMSArMjMzLDExIEBAIHByaW50X3N0YXRlKHN0cnVjdCBwZnN5 bmNfc3RhdGUgKnMsIGludCBvcHRzKQogCWVsc2UKIAkJcHJpbnRmKCIldSAiLCBzLT5wcm90byk7 CiAKLQlwcmludF9ob3N0KCZuay0+YWRkclsxXSwgbmstPnBvcnRbMV0sIHMtPmFmLCBvcHRzKTsK LQlpZiAoUEZfQU5FUSgmbmstPmFkZHJbMV0sICZzay0+YWRkclsxXSwgcy0+YWYpIHx8Ci0JICAg IG5rLT5wb3J0WzFdICE9IHNrLT5wb3J0WzFdKSB7CisJcHJpbnRfaG9zdCgmbmsuYWRkclsxXSwg bmsucG9ydFsxXSwgcy0+YWYsIG9wdHMpOworCWlmIChQRl9BTkVRKCZuay5hZGRyWzFdLCAmc2su YWRkclsxXSwgcy0+YWYpIHx8CisJICAgIG5rLnBvcnRbMV0gIT0gc2sucG9ydFsxXSkgewogCQlw cmludGYoIiAoIik7Ci0JCXByaW50X2hvc3QoJnNrLT5hZGRyWzFdLCBzay0+cG9ydFsxXSwgcy0+ YWYsIG9wdHMpOworCQlwcmludF9ob3N0KCZzay5hZGRyWzFdLCBzay5wb3J0WzFdLCBzLT5hZiwg b3B0cyk7CiAJCXByaW50ZigiKSIpOwogCX0KIAlpZiAocy0+ZGlyZWN0aW9uID09IFBGX09VVCkK QEAgLTI0NCwxMSArMjQ0LDExIEBAIHByaW50X3N0YXRlKHN0cnVjdCBwZnN5bmNfc3RhdGUgKnMs IGludCBvcHRzKQogCQlwcmludGYoIiAtPiAiKTsKIAllbHNlCiAJCXByaW50ZigiIDwtICIpOwot CXByaW50X2hvc3QoJm5rLT5hZGRyWzBdLCBuay0+cG9ydFswXSwgcy0+YWYsIG9wdHMpOwotCWlm IChQRl9BTkVRKCZuay0+YWRkclswXSwgJnNrLT5hZGRyWzBdLCBzLT5hZikgfHwKLQkgICAgbmst PnBvcnRbMF0gIT0gc2stPnBvcnRbMF0pIHsKKwlwcmludF9ob3N0KCZuay5hZGRyWzBdLCBuay5w b3J0WzBdLCBzLT5hZiwgb3B0cyk7CisJaWYgKFBGX0FORVEoJm5rLmFkZHJbMF0sICZzay5hZGRy WzBdLCBzLT5hZikgfHwKKwkgICAgbmsucG9ydFswXSAhPSBzay5wb3J0WzBdKSB7CiAJCXByaW50 ZigiICgiKTsKLQkJcHJpbnRfaG9zdCgmc2stPmFkZHJbMF0sIHNrLT5wb3J0WzBdLCBzLT5hZiwg b3B0cyk7CisJCXByaW50X2hvc3QoJnNrLmFkZHJbMF0sIHNrLnBvcnRbMF0sIHMtPmFmLCBvcHRz KTsKIAkJcHJpbnRmKCIpIik7CiAJfQogCg== --089e011609bc6931ef04ef91a33c--