[Bug 193649] New: ring->nr_buf_size will be calculated wrongly on PPC machine
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Sep 15 06:16:21 UTC 2014
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193649
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 at FreeBSD.org
Reporter: thomasyang1206 at 126.com
Created attachment 147337
--> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=147337&action=edit
the first part log contains the bug with TX nr_buf_size = 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 size
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 =
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 =
NETMAP_BDG_BUF_SIZE(na->nm_mem);
it works well on PPC。
The log is attached, please find it, pay attention to the buf_nr_size value
between the two parts log section.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list