Skip site navigation (1)Skip section navigation (2)
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>