Date: Fri, 6 Jul 2018 17:57:04 GMT From: sduo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r337268 - soc2018/sduo/head/sys/dev/vale_vlan Message-ID: <201807061757.w66Hv4hA001064@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sduo Date: Fri Jul 6 17:57:03 2018 New Revision: 337268 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=337268 Log: VALE vlan bug fixing Modified: soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_freebsd.c soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_kern.h soc2018/sduo/head/sys/dev/vale_vlan/vv_freebsd_interface.c soc2018/sduo/head/sys/dev/vale_vlan/vv_os_interface.h Modified: soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c ============================================================================== --- soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c Fri Jul 6 14:40:31 2018 (r337267) +++ soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan.c Fri Jul 6 17:57:03 2018 (r337268) @@ -95,7 +95,7 @@ } /* first we retrieve the informations we need */ - buf = ft->ft_buf + ft->ft_offset; + buf = (uint8_t *)ft->ft_buf + ft->ft_offset; be_tpid = *(uint16_t *)(buf + TAG_PID); if (be_tpid != htobe16(0x8100)) { nm_prinf("Not an IEEE802.Q frame\n"); @@ -275,15 +275,15 @@ conf->mod_bdg_auth_token); } -static inline int -reset_bdg(struct vale_vlan_conf *conf, const char *bdg_name) -{ - - nm_prinf("Trying to reset bdg %s for conf %s\n", bdg_name, - conf->conf_name); - return netmap_bdg_regops(bdg_name, NULL, NULL, - conf->mod_bdg_auth_token); -} +// static inline int +// reset_bdg(struct vale_vlan_conf *conf, const char *bdg_name) +// { + +// nm_prinf("Trying to reset bdg %s for conf %s\n", bdg_name, +// conf->conf_name); +// return netmap_bdg_regops(bdg_name, NULL, NULL, +// conf->mod_bdg_auth_token); +// } #define MAX_VLAN_CONFS 4 /* used to access currently active vlan confs */ Modified: soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_freebsd.c ============================================================================== --- soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_freebsd.c Fri Jul 6 14:40:31 2018 (r337267) +++ soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_freebsd.c Fri Jul 6 17:57:03 2018 (r337268) @@ -1,11 +1,11 @@ +#include <sys/param.h> +#include <sys/module.h> #include <sys/errno.h> #include <sys/kernel.h> -#include <sys/lock.h> -#include <sys/module.h> -#include <sys/param.h> -#include <sys/sx.h> #include <sys/types.h> #include <sys/uio.h> +#include <sys/lock.h> +#include <sys/sx.h> #include <dev/vale_vlan/vale_vlan_kern.h> @@ -51,12 +51,15 @@ break; case MOD_UNLOAD: + sx_xlock(&vale_vlan_global_lock); if (vale_vlan_use_count != 0) { nm_prinf("vale_vlan: module can't be unloaded," "as it is still in use\n"); error = EBUSY; + sx_xunlock(&vale_vlan_global_lock); break; } + sx_xunlock(&vale_vlan_global_lock); destroy_dev(vale_vlan_cdev); sx_destroy(&vale_vlan_global_lock); break; @@ -92,11 +95,12 @@ sx_xlock(&vale_vlan_global_lock); vv_init_dev(vv_dev); + sx_xunlock(&vale_vlan_global_lock); ret = devfs_set_cdevpriv(vv_dev, vale_vlan_dtor); if (ret != 0) { vv_free(vv_dev); + return EFAULT; } - sx_xunlock(&vale_vlan_global_lock); return ret; } @@ -209,7 +213,7 @@ } switch (cmd) { - case VALE_VLAN_IOCCTRL: + case VV_IOCCTRL: sx_xlock(&vale_vlan_global_lock); ret = vv_iocctrl(vv_dev, hdr); sx_xunlock(&vale_vlan_global_lock); Modified: soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_kern.h ============================================================================== --- soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_kern.h Fri Jul 6 14:40:31 2018 (r337267) +++ soc2018/sduo/head/sys/dev/vale_vlan/vale_vlan_kern.h Fri Jul 6 17:57:03 2018 (r337268) @@ -1,45 +1,44 @@ #ifndef VALE_VLAN_KERN_H #define VALE_VLAN_KERN_H -#define WITH_VALE - /* Import declarations needed by netmap */ #if defined(__linux__) #include <bsd_glue.h> #elif defined(__FreeBSD__) -#include <machine/bus.h> -#include <net/bpf.h> -#include <net/if.h> -#include <net/if_types.h> -#include <net/if_var.h> -#include <net/vnet.h> #include <sys/cdefs.h> -#include <sys/conf.h> -#include <sys/endian.h> +#include <sys/types.h> #include <sys/errno.h> -#include <sys/filio.h> -#include <sys/jail.h> +#include <sys/param.h> #include <sys/kernel.h> +#include <sys/conf.h> +#include <sys/filio.h> +#include <sys/sockio.h> +#include <sys/socketvar.h> #include <sys/malloc.h> -#include <sys/param.h> #include <sys/poll.h> -#include <sys/refcount.h> #include <sys/rwlock.h> -#include <sys/selinfo.h> #include <sys/socket.h> -#include <sys/socketvar.h> -#include <sys/sockio.h> +#include <sys/selinfo.h> #include <sys/sysctl.h> +#include <sys/jail.h> +#include <net/vnet.h> +#include <net/if.h> +#include <net/if_var.h> +#include <net/if_types.h> #include <sys/time.h> -#include <sys/types.h> +#include <net/bpf.h> +#include <machine/bus.h> +#include <sys/endian.h> +#include <sys/refcount.h> #endif /* FreeBSD */ /* End of declarations needed by netmap */ #include <dev/vale_vlan/vv_os_interface.h> #include <net/vale_vlan_user.h> -#include <dev/netmap/netmap_kern.h> +#define WITH_VALE #include <net/netmap.h> +#include <dev/netmap/netmap_kern.h> struct vale_vlan_dev { int selected_conf; Modified: soc2018/sduo/head/sys/dev/vale_vlan/vv_freebsd_interface.c ============================================================================== --- soc2018/sduo/head/sys/dev/vale_vlan/vv_freebsd_interface.c Fri Jul 6 14:40:31 2018 (r337267) +++ soc2018/sduo/head/sys/dev/vale_vlan/vv_freebsd_interface.c Fri Jul 6 17:57:03 2018 (r337268) @@ -1,5 +1,5 @@ -#include <sys/kernel.h> #include <sys/malloc.h> +#include <sys/kernel.h> #include <dev/vale_vlan/vv_os_interface.h> Modified: soc2018/sduo/head/sys/dev/vale_vlan/vv_os_interface.h ============================================================================== --- soc2018/sduo/head/sys/dev/vale_vlan/vv_os_interface.h Fri Jul 6 14:40:31 2018 (r337267) +++ soc2018/sduo/head/sys/dev/vale_vlan/vv_os_interface.h Fri Jul 6 17:57:03 2018 (r337268) @@ -49,7 +49,7 @@ list_for_each_entry_safe(cursor_p, temp_p, head_p, entry_name) #elif defined(__FreeBSD__) -#define vv_list_declare(head_struct_t, entry_struct_t) \ +#define vv_list_declare(head_struct_t, entry_struct_t) \ LIST_HEAD(head_struct_t, entry_struct_t) #define vv_list_head_init(head_p) LIST_INIT(head_p)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807061757.w66Hv4hA001064>