svn commit: r332423 - in head/sys: conf dev/cxgbe dev/ixgbe dev/ixl dev/netmap dev/re modules/netmap net sys

Justin Hibbits jrh29 at alumni.cwru.edu
Fri Apr 13 20:42:24 UTC 2018


On Thu, Apr 12, 2018 at 2:20 AM, Vincenzo Maffione
<vmaffione at freebsd.org> wrote:
> Author: vmaffione
> Date: Thu Apr 12 07:20:50 2018
> New Revision: 332423
> URL: https://svnweb.freebsd.org/changeset/base/332423
>
> Log:
>   netmap: align codebase to the current upstream (commit id 3fb001303718146)
>
>   Changelist:
>       - Turn tx_rings and rx_rings arrays into arrays of pointers to kring
>         structs. This patch includes fixes for ixv, ixl, ix, re, cxgbe, iflib,
>         vtnet and ptnet drivers to cope with the change.
>       - Generalize the nm_config() callback to accept a struct containing many
>         parameters.
>       - Introduce NKR_FAKERING to support buffers sharing (used for netmap
>         pipes)
>       - Improved API for external VALE modules.
>       - Various bug fixes and improvements to the netmap memory allocator,
>         including support for externally (userspace) allocated memory.
>       - Refactoring of netmap pipes: now linked rings share the same netmap
>         buffers, with a separate set of kring pointers (rhead, rcur, rtail).
>         Buffer swapping does not need to happen anymore.
>       - Large refactoring of the control API towards an extensible solution;
>         the goal is to allow the addition of more commands and extension of
>         existing ones (with new options) without the need of hacks or the
>         risk of running out of configuration space.
>         A new NIOCCTRL ioctl has been added to handle all the requests of the
>         new control API, which cover all the functionalities so far supported.
>         The netmap API bumps from 11 to 12 with this patch. Full backward
>         compatibility is provided for the old control command (NIOCREGIF), by
>         means of a new netmap_legacy module. Many parts of the old netmap.h
>         header has now been moved to netmap_legacy.h (included by netmap.h).
>
>   Approved by:  hrs (mentor)
>
> Added:
>   head/sys/dev/netmap/netmap_legacy.c   (contents, props changed)
>   head/sys/net/netmap_legacy.h   (contents, props changed)
> Modified:
>   head/sys/conf/files
>   head/sys/dev/cxgbe/t4_netmap.c
>   head/sys/dev/ixgbe/if_ixv.c
>   head/sys/dev/ixl/ixl_pf_main.c
>   head/sys/dev/ixl/ixl_txrx.c
>   head/sys/dev/netmap/if_ptnet.c
>   head/sys/dev/netmap/if_re_netmap.h
>   head/sys/dev/netmap/if_vtnet_netmap.h
>   head/sys/dev/netmap/netmap.c
>   head/sys/dev/netmap/netmap_freebsd.c
>   head/sys/dev/netmap/netmap_generic.c
>   head/sys/dev/netmap/netmap_kern.h
>   head/sys/dev/netmap/netmap_mem2.c
>   head/sys/dev/netmap/netmap_mem2.h
>   head/sys/dev/netmap/netmap_monitor.c
>   head/sys/dev/netmap/netmap_pipe.c
>   head/sys/dev/netmap/netmap_pt.c
>   head/sys/dev/netmap/netmap_vale.c
>   head/sys/dev/re/if_re.c
>   head/sys/modules/netmap/Makefile
>   head/sys/net/iflib.c
>   head/sys/net/netmap.h
>   head/sys/net/netmap_user.h
>   head/sys/net/netmap_virt.h
>   head/sys/sys/param.h

This breaks 32-bit powerpc LINT, with errors of:

/usr/src/sys/dev/netmap/netmap.c: In function 'netmap_get_na':
/usr/src/sys/dev/netmap/netmap.c:1479: warning: cast to pointer from
integer of different size [-Wint-to-pointer-cast]
/usr/src/sys/dev/netmap/netmap.c: In function 'netmap_ioctl':
/usr/src/sys/dev/netmap/netmap.c:2329: warning: cast to pointer from
integer of different size [-Wint-to-pointer-cast]
/usr/src/sys/dev/netmap/netmap.c:2344: warning: cast to pointer from
integer of different size [-Wint-to-pointer-cast]
/usr/src/sys/dev/netmap/netmap.c:2447: warning: cast to pointer from
integer of different size [-Wint-to-pointer-cast]
/usr/src/sys/dev/netmap/netmap.c:2466: warning: cast from pointer to
integer of different size [-Wpointer-to-int-cast]

among others.

struct nmreq_header->nr_body is a uint64_t, casting to 32-bit pointers
needs to go through uintptr_t.

- Justin


More information about the svn-src-head mailing list