svn commit: r304827 - head/sys/dev/cxgbe/cxgbei

Navdeep Parhar np at FreeBSD.org
Fri Aug 26 01:28:33 UTC 2016


Author: np
Date: Fri Aug 26 01:28:31 2016
New Revision: 304827
URL: https://svnweb.freebsd.org/changeset/base/304827

Log:
  cxgbe/cxgbei: There is no need for multiple modules in the KLD.
  
  Sponsored by:	Chelsio Communications

Modified:
  head/sys/dev/cxgbe/cxgbei/cxgbei.c
  head/sys/dev/cxgbe/cxgbei/cxgbei.h
  head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c

Modified: head/sys/dev/cxgbe/cxgbei/cxgbei.c
==============================================================================
--- head/sys/dev/cxgbe/cxgbei/cxgbei.c	Thu Aug 25 23:55:56 2016	(r304826)
+++ head/sys/dev/cxgbe/cxgbei/cxgbei.c	Fri Aug 26 01:28:31 2016	(r304827)
@@ -1117,10 +1117,14 @@ cxgbei_modevent(module_t mod, int cmd, v
 	switch (cmd) {
 	case MOD_LOAD:
 		rc = cxgbei_mod_load();
+		if (rc == 0)
+			rc = icl_cxgbei_mod_load();
 		break;
 
 	case MOD_UNLOAD:
-		rc = cxgbei_mod_unload();
+		rc = icl_cxgbei_mod_unload();
+		if (rc == 0)
+			rc = cxgbei_mod_unload();
 		break;
 
 	default:

Modified: head/sys/dev/cxgbe/cxgbei/cxgbei.h
==============================================================================
--- head/sys/dev/cxgbe/cxgbei/cxgbei.h	Thu Aug 25 23:55:56 2016	(r304826)
+++ head/sys/dev/cxgbe/cxgbei/cxgbei.h	Fri Aug 26 01:28:31 2016	(r304827)
@@ -167,4 +167,8 @@ int t4_ddp_set_map(struct cxgbei_data *,
     struct cxgbei_ulp2_gather_list *, int);
 void t4_ddp_clear_map(struct cxgbei_data *, struct cxgbei_ulp2_gather_list *,
     u_int, u_int, u_int, struct icl_cxgbei_conn *);
+
+/* icl_cxgbei.c */
+int icl_cxgbei_mod_load(void);
+int icl_cxgbei_mod_unload(void);
 #endif

Modified: head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c
==============================================================================
--- head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c	Thu Aug 25 23:55:56 2016	(r304826)
+++ head/sys/dev/cxgbe/cxgbei/icl_cxgbei.c	Fri Aug 26 01:28:31 2016	(r304827)
@@ -877,10 +877,10 @@ icl_cxgbei_limits(struct icl_drv_limits 
 	return (0);
 }
 
-static int
-icl_cxgbei_load(void)
+int
+icl_cxgbei_mod_load(void)
 {
-	int error;
+	int rc;
 
 	icl_transfer_zone = uma_zcreate("icl_transfer",
 	    16 * 1024, NULL, NULL, NULL, NULL,
@@ -888,15 +888,14 @@ icl_cxgbei_load(void)
 
 	refcount_init(&icl_cxgbei_ncons, 0);
 
-	error = icl_register("cxgbei", false, -100, icl_cxgbei_limits,
+	rc = icl_register("cxgbei", false, -100, icl_cxgbei_limits,
 	    icl_cxgbei_new_conn);
-	KASSERT(error == 0, ("failed to register"));
 
-	return (error);
+	return (rc);
 }
 
-static int
-icl_cxgbei_unload(void)
+int
+icl_cxgbei_mod_unload(void)
 {
 
 	if (icl_cxgbei_ncons != 0)
@@ -908,28 +907,4 @@ icl_cxgbei_unload(void)
 
 	return (0);
 }
-
-static int
-icl_cxgbei_modevent(module_t mod, int what, void *arg)
-{
-
-	switch (what) {
-	case MOD_LOAD:
-		return (icl_cxgbei_load());
-	case MOD_UNLOAD:
-		return (icl_cxgbei_unload());
-	default:
-		return (EINVAL);
-	}
-}
-
-moduledata_t icl_cxgbei_data = {
-	"icl_cxgbei",
-	icl_cxgbei_modevent,
-	0
-};
-
-DECLARE_MODULE(icl_cxgbei, icl_cxgbei_data, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
-MODULE_DEPEND(icl_cxgbei, icl, 1, 1, 1);
-MODULE_VERSION(icl_cxgbei, 1);
 #endif


More information about the svn-src-all mailing list