Module Name:    src
Committed By:   pgoyette
Date:           Fri Sep 21 03:42:20 UTC 2018

Modified Files:
        src/sys/compat/common [pgoyette-compat]: ieee80211_20.c
        src/sys/kern [pgoyette-compat]: compat_stub.c
        src/sys/net80211 [pgoyette-compat]: ieee80211_ioctl.c
        src/sys/sys [pgoyette-compat]: compat_stub.h

Log Message:
Adapt the ieee80211_20 code to the new MP-safe mechanism


To generate a diff of this commit:
cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/sys/compat/common/ieee80211_20.c
cvs rdiff -u -r1.1.2.22 -r1.1.2.23 src/sys/kern/compat_stub.c
cvs rdiff -u -r1.60.16.2 -r1.60.16.3 src/sys/net80211/ieee80211_ioctl.c
cvs rdiff -u -r1.1.2.32 -r1.1.2.33 src/sys/sys/compat_stub.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/common/ieee80211_20.c
diff -u src/sys/compat/common/ieee80211_20.c:1.1.2.1 src/sys/compat/common/ieee80211_20.c:1.1.2.2
--- src/sys/compat/common/ieee80211_20.c:1.1.2.1	Fri Mar 30 02:28:49 2018
+++ src/sys/compat/common/ieee80211_20.c	Fri Sep 21 03:42:20 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ieee80211_20.c,v 1.1.2.1 2018/03/30 02:28:49 pgoyette Exp $	*/
+/*	$NetBSD: ieee80211_20.c,v 1.1.2.2 2018/09/21 03:42:20 pgoyette Exp $	*/
 /*-
  * Copyright (c) 2001 Atsushi Onoe
  * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -36,7 +36,7 @@
 __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.35 2005/08/30 14:27:47 avatar Exp $");
 #endif
 #ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: ieee80211_20.c,v 1.1.2.1 2018/03/30 02:28:49 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ieee80211_20.c,v 1.1.2.2 2018/09/21 03:42:20 pgoyette Exp $");
 #endif
 
 /*
@@ -94,15 +94,18 @@ ieee80211_get_ostats(struct ieee80211_os
 	return 0;
 }
 
+MODULE_SET_HOOK(ieee80211_ostats_hook, "ieee20", ieee80211_get_ostats);
+MODULE_UNSET_HOOK(ieee80211_ostats_hook);
+
 void
 ieee80211_20_init(void)
 {
 
-	ieee80211_get_ostats_20 = ieee80211_get_ostats;
+	ieee80211_ostats_hook_set();
 }
 void
 ieee80211_20_fini(void)
 {
 
-	ieee80211_get_ostats_20 = (void *)enosys;
+	ieee80211_ostats_hook_unset();
 }

Index: src/sys/kern/compat_stub.c
diff -u src/sys/kern/compat_stub.c:1.1.2.22 src/sys/kern/compat_stub.c:1.1.2.23
--- src/sys/kern/compat_stub.c:1.1.2.22	Fri Sep 21 02:56:22 2018
+++ src/sys/kern/compat_stub.c	Fri Sep 21 03:42:20 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.c,v 1.1.2.22 2018/09/21 02:56:22 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.c,v 1.1.2.23 2018/09/21 03:42:20 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -128,10 +128,6 @@ struct compat_vndioctl_50_hook_t compat_
  * ieee80211 ioctl compatability
  */
 struct ieee80211_ostats_hook_t ieee80211_ostats_hook;
-struct ieee80211_get_ostats_20_hook_t ieee80211_get_ostats_20_hook;
-
-/*XXX PRG */int (*ieee80211_get_ostats_20)(struct ieee80211_ostats *,
-    struct ieee80211_stats *) = (void *)enosys;
 
 /*
  * if_43 compatability

Index: src/sys/net80211/ieee80211_ioctl.c
diff -u src/sys/net80211/ieee80211_ioctl.c:1.60.16.2 src/sys/net80211/ieee80211_ioctl.c:1.60.16.3
--- src/sys/net80211/ieee80211_ioctl.c:1.60.16.2	Fri Mar 30 02:28:49 2018
+++ src/sys/net80211/ieee80211_ioctl.c	Fri Sep 21 03:42:20 2018
@@ -36,7 +36,7 @@
 __FBSDID("$FreeBSD: src/sys/net80211/ieee80211_ioctl.c,v 1.35 2005/08/30 14:27:47 avatar Exp $");
 #endif
 #ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: ieee80211_ioctl.c,v 1.60.16.2 2018/03/30 02:28:49 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ieee80211_ioctl.c,v 1.60.16.3 2018/09/21 03:42:20 pgoyette Exp $");
 #endif
 
 /*
@@ -2556,6 +2556,16 @@ ieee80211_ioctl(struct ieee80211com *ic,
 #endif /* __FreeBSD__ */
 
 #ifdef __NetBSD__
+/*
+ * Compatability glue
+ */
+MODULE_CALL_HOOK_DECL(ieee80211_ostats_hook, f,
+    (struct ieee80211_ostats *ostats, struct ieee80211_stats *stats),
+    (ostats, stats), enosys());
+MODULE_CALL_HOOK(ieee80211_ostats_hook, f,
+    (struct ieee80211_ostats *ostats, struct ieee80211_stats *stats),
+    (ostats, stats), enosys());
+
 int
 ieee80211_ioctl(struct ieee80211com *ic, u_long cmd, void *data)
 {
@@ -2855,7 +2865,7 @@ ieee80211_ioctl(struct ieee80211com *ic,
 
 		ifr = (struct ifreq *)data;
 		s = splnet();
-		error = (*ieee80211_get_ostats_20)(&ostats, &ic->ic_stats);
+		error = ieee80211_ostats_hook_f_call(&ostats, &ic->ic_stats);
 		if (error == ENOSYS)
 			error = EINVAL;
 		if (error == 0)

Index: src/sys/sys/compat_stub.h
diff -u src/sys/sys/compat_stub.h:1.1.2.32 src/sys/sys/compat_stub.h:1.1.2.33
--- src/sys/sys/compat_stub.h:1.1.2.32	Fri Sep 21 02:56:22 2018
+++ src/sys/sys/compat_stub.h	Fri Sep 21 03:42:20 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.1.2.32 2018/09/21 02:56:22 pgoyette Exp $	*/
+/* $NetBSD: compat_stub.h,v 1.1.2.33 2018/09/21 03:42:20 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -149,17 +149,12 @@ MODULE_HOOK(compat_vndioctl_50_hook, (u_
 
 /*
  * ieee80211 ioctl compatability
- * XXX need to review this
  */
 struct ieee80211_ostats;
 struct ieee80211_stats; 
 
 MODULE_HOOK(ieee80211_ostats_hook, (struct ieee80211_ostats *,
     struct ieee80211_stats *));
-MODULE_HOOK(ieee80211_get_ostats_20_hook, (int));
-
-/* XXX PRG*/extern int (*ieee80211_get_ostats_20)(struct ieee80211_ostats *, 
-    struct ieee80211_stats *);
 
 /*
  * if_43 compatability

Reply via email to