*
* CDDL HEADER END
*
- * Copyright 2010-2014 Oracle, Inc. All rights reserved.
+ * Copyright 2010-2016 Oracle, Inc. All rights reserved.
* Use is subject to license terms.
*/
int rc = 0;
struct cred *cred;
+ /*
+ * Sanity check to ensure that the memory allocated by the kernel is
+ * sufficient for what PDATA needs.
+ */
+ ASSERT(sizeof(dtrace_module_t) < DTRACE_PDATA_SIZE);
+
/*
* Register the device for the DTrace core.
*/
*
* CDDL HEADER END
*
- * Copyright 2010, 2011, 2012 Oracle, Inc. All rights reserved.
+ * Copyright 2010-2016 Oracle, Inc. All rights reserved.
* Use is subject to license terms.
*/
* ret
* restore
*/
-#define SDT_TRAMP_SIZE 11
+#if SDT_TRAMP_SIZE < 11
+# error SDT_TRAMP_SIZE is less than the required 11 instructions.
+#endif
#define SA(x) ((long)ALIGN((x), 4))
#define MINFRAME STACKFRAME_SZ
void sdt_cleanup_module(void *dmy, struct module *mp)
{
- if (PDATA(mp)->sdt_tab) {
- vfree(PDATA(mp)->sdt_tab);
- PDATA(mp)->sdt_tab = NULL;
- }
}
void sdt_enable_arch(sdt_probe_t *sdp, dtrace_id_t id, void *arg)
return 0;
}
-static void module_del_sdt_tab(void *dmy, struct module *mp)
-{
- if (PDATA(mp)->sdt_tab) {
- vfree(PDATA(mp)->sdt_tab);
- PDATA(mp)->sdt_tab = NULL;
- }
-}
-
void sdt_dev_exit_arch(void)
{
- dtrace_for_each_module(module_del_sdt_tab, NULL);
}