Date: Sat, 21 Dec 2013 19:24:19 +0200 From: Guy Yur <guyyur@gmail.com> To: freebsd-arm@freebsd.org Subject: 10.0-RC1: net/mpd5 crashes in NgMkSockNode due to stack alignment on ARM EABI Message-ID: <CAC67Hz82VBT1_BBH6E18ycDxUdWbgFcahNo1W0kH-TcH7iB=8Q@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--089e011606003e923e04ee0eaac1 Content-Type: text/plain; charset=UTF-8 Hi, I am running 10.0-RC1 on the BeagleBone Black and the net/mpd5 port is crashing in libnetgraph NgMkSockNode due to stack alignment. 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. Added prints in NgMkSockNode show rbuf is aligned on 2-byte and not 4-byte which is needed to access ni->id (a uint32_t). ni = 0xbfffe87a rbuf = 0xbfffe842 sizeof(resp->header) = 56 (gdb) bt #0 0x201529a0 in NgMkSockNode (name=<value optimized out>, csp=0xbfffe95c, dsp=0xbfffe958) at /usr/src/lib/libnetgraph/sock.c:134 #1 0x00037b9c in MppcTestCap () at ccp_mppc.c:754 #2 0x0007c1f4 in main (ac=4, av=0xbfffeb90) at main.c:248 #3 0x0000d1b0 in __start (argc=4, argv=0xbfffeb90, env=0xbfffeba4, ps_strings=<value optimized out>, obj=<value optimized out>, cleanup=<value optimized out>) at /usr/src/lib/csu/arm/crt1.c:115 #4 0x203e9dc0 in _thr_ast (curthread=0x200fd000) at /usr/src/lib/libthr/thread/thr_sig.c:265 Putting rbuf in a union with struct ng_mesg sorted the alignment to 4-byte and mpd5 didn't crash. I attached the changes I used to test mpd5 doesn't crash with correct alignment. Regards, Guy --089e011606003e923e04ee0eaac1 Content-Type: application/octet-stream; name="sock-NgMkSockNode.patch" Content-Disposition: attachment; filename="sock-NgMkSockNode.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hph47tdv0 SW5kZXg6IGxpYi9saWJuZXRncmFwaC9zb2NrLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbGliL2xpYm5ldGdy YXBoL3NvY2suYwkocmV2aXNpb24gMjU5MjUwKQorKysgbGliL2xpYm5ldGdyYXBoL3NvY2suYwko d29ya2luZyBjb3B5KQpAQCAtMTExLDggKzExMSwxMSBAQAogCQkvKiBTYXZlIG5vZGUgbmFtZSAq LwogCQlzdHJsY3B5KG5hbWVidWYsIG5hbWUsIHNpemVvZihuYW1lYnVmKSk7CiAJfSBlbHNlIGlm IChkc3AgIT0gTlVMTCkgewotCQl1X2NoYXIgcmJ1ZltzaXplb2Yoc3RydWN0IG5nX21lc2cpICsg c2l6ZW9mKHN0cnVjdCBub2RlaW5mbyldOwotCQlzdHJ1Y3QgbmdfbWVzZyAqY29uc3QgcmVzcCA9 IChzdHJ1Y3QgbmdfbWVzZyAqKSByYnVmOworCQl1bmlvbiB7CisJCQl1X2NoYXIgcmJ1ZltzaXpl b2Yoc3RydWN0IG5nX21lc2cpICsgc2l6ZW9mKHN0cnVjdCBub2RlaW5mbyldOworCQkJc3RydWN0 IG5nX21lc2cgcmVzOworCQl9IHJlczsKKwkJc3RydWN0IG5nX21lc2cgKmNvbnN0IHJlc3AgPSAo c3RydWN0IG5nX21lc2cgKikgcmVzLnJidWY7CiAJCXN0cnVjdCBub2RlaW5mbyAqY29uc3Qgbmkg PSAoc3RydWN0IG5vZGVpbmZvICopIHJlc3AtPmRhdGE7CiAKIAkJLyogRmluZCBvdXQgdGhlIG5v ZGUgSUQgKi8KQEAgLTEyMyw3ICsxMjYsNyBAQAogCQkJCU5HTE9HKCJzZW5kIG5vZGVpbmZvIik7 CiAJCQlnb3RvIGVycm91dDsKIAkJfQotCQlpZiAoTmdSZWN2TXNnKGNzLCByZXNwLCBzaXplb2Yo cmJ1ZiksIE5VTEwpIDwgMCkgeworCQlpZiAoTmdSZWN2TXNnKGNzLCByZXNwLCBzaXplb2YocmVz LnJidWYpLCBOVUxMKSA8IDApIHsKIAkJCWVycm5vc3YgPSBlcnJubzsKIAkJCWlmIChfZ05nRGVi dWdMZXZlbCA+PSAxKQogCQkJCU5HTE9HKCJyZWN2IG5vZGVpbmZvIik7Cg== --089e011606003e923e04ee0eaac1--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAC67Hz82VBT1_BBH6E18ycDxUdWbgFcahNo1W0kH-TcH7iB=8Q>