From owner-svn-soc-all@freebsd.org Fri Jul 6 17:57:10 2018 Return-Path: Delivered-To: svn-soc-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1293A104078A for ; Fri, 6 Jul 2018 17:57:10 +0000 (UTC) (envelope-from sduo@FreeBSD.org) Received: from mxrelay.ysv.freebsd.org (mxrelay.ysv.freebsd.org [IPv6:2001:1900:2254:206a::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.ysv.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9E52E8EA43 for ; Fri, 6 Jul 2018 17:57:09 +0000 (UTC) (envelope-from sduo@FreeBSD.org) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.ysv.freebsd.org (Postfix) with ESMTPS id D9BF11EEDF for ; Fri, 6 Jul 2018 17:57:08 +0000 (UTC) (envelope-from sduo@FreeBSD.org) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.15.2/8.15.2) with ESMTP id w66Hv8XY001131 for ; Fri, 6 Jul 2018 17:57:08 GMT (envelope-from sduo@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.15.2/8.15.2/Submit) id w66Hv4hA001064 for svn-soc-all@FreeBSD.org; Fri, 6 Jul 2018 17:57:04 GMT (envelope-from sduo@FreeBSD.org) Date: Fri, 6 Jul 2018 17:57:04 GMT Message-Id: <201807061757.w66Hv4hA001064@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to sduo@FreeBSD.org using -f From: sduo@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r337268 - soc2018/sduo/head/sys/dev/vale_vlan MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 Jul 2018 17:57:10 -0000 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 +#include #include #include -#include -#include -#include -#include #include #include +#include +#include #include @@ -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 #elif defined(__FreeBSD__) -#include -#include -#include -#include -#include -#include #include -#include -#include +#include #include -#include -#include +#include #include +#include +#include +#include +#include #include -#include #include -#include #include -#include #include -#include -#include +#include #include +#include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include #endif /* FreeBSD */ /* End of declarations needed by netmap */ #include #include -#include +#define WITH_VALE #include +#include 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 #include +#include #include 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)