Date: Mon, 15 Sep 2014 06:16:21 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 193649] New: ring->nr_buf_size will be calculated wrongly on PPC machine Message-ID: <bug-193649-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D193649 Bug ID: 193649 Summary: ring->nr_buf_size will be calculated wrongly on PPC machine Product: Base System Version: 10.0-STABLE Hardware: ppc OS: Any Status: Needs Triage Severity: Affects Some People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: thomasyang1206@126.com Created attachment 147337 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D147337&action= =3Dedit the first part log contains the bug with TX nr_buf_size =3D 0x8000000, the = second part log is the correct one without bug When run netmap APP pkt-gen on PPC machine, say Freescale P4080, the buf si= ze of ring ring->nr_buf_size in "netmap_mem2.c, netmap_mem_rings_create()". The declaration of nr_buf_size in struct netmap_ring is uint32_t, however it is changed to uint16_t as following: *(uint16_t *)(uintptr_t)&ring->nr_buf_size =3D NETMAP_BDG_BUF_SIZE(na->nm_mem); Thus buffer size will be different as the desired, and will cause Segmentation fault. after changing it as: *(uint32_t *)(uintptr_t)&ring->nr_buf_size =3D NETMAP_BDG_BUF_SIZE(na->nm_mem); it works well on PPC=E3=80=82 The log is attached, please find it, pay attention to the buf_nr_size v= alue between the two parts log section. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-193649-8>