svn commit: r323951 - head/sys/kern
Ed Maste
emaste at FreeBSD.org
Sat Sep 23 12:35:48 UTC 2017
Author: emaste
Date: Sat Sep 23 12:35:46 2017
New Revision: 323951
URL: https://svnweb.freebsd.org/changeset/base/323951
Log:
Revert r323935 as it broke the build
subr_witness.c:2577:4: error: use of undeclared identifier 'req'
req->oldidx = 0;
^
Modified:
head/sys/kern/subr_witness.c
Modified: head/sys/kern/subr_witness.c
==============================================================================
--- head/sys/kern/subr_witness.c Sat Sep 23 12:32:11 2017 (r323950)
+++ head/sys/kern/subr_witness.c Sat Sep 23 12:35:46 2017 (r323951)
@@ -2539,18 +2539,31 @@ DB_SHOW_COMMAND(witness, db_witness_display)
}
#endif
-static void
-sbuf_print_witness_badstacks(struct sbuf *sb)
+static int
+sysctl_debug_witness_badstacks(SYSCTL_HANDLER_ARGS)
{
struct witness_lock_order_data *data1, *data2, *tmp_data1, *tmp_data2;
struct witness *tmp_w1, *tmp_w2, *w1, *w2;
+ struct sbuf *sb;
u_int w_rmatrix1, w_rmatrix2;
- int generation, i, j;
+ int error, generation, i, j;
tmp_data1 = NULL;
tmp_data2 = NULL;
tmp_w1 = NULL;
tmp_w2 = NULL;
+ if (witness_watch < 1) {
+ error = SYSCTL_OUT(req, w_notrunning, sizeof(w_notrunning));
+ return (error);
+ }
+ if (witness_cold) {
+ error = SYSCTL_OUT(req, w_stillcold, sizeof(w_stillcold));
+ return (error);
+ }
+ error = 0;
+ sb = sbuf_new(NULL, NULL, badstack_sbuf_size, SBUF_AUTOEXTEND);
+ if (sb == NULL)
+ return (ENOMEM);
/* Allocate and init temporary storage space. */
tmp_w1 = malloc(sizeof(struct witness), M_TEMP, M_WAITOK | M_ZERO);
@@ -2670,55 +2683,13 @@ restart:
free(tmp_data2, M_TEMP);
free(tmp_w1, M_TEMP);
free(tmp_w2, M_TEMP);
-}
-static int
-sysctl_debug_witness_badstacks(SYSCTL_HANDLER_ARGS)
-{
- struct sbuf *sb;
- int error;
-
- if (witness_watch < 1) {
- error = SYSCTL_OUT(req, w_notrunning, sizeof(w_notrunning));
- return (error);
- }
- if (witness_cold) {
- error = SYSCTL_OUT(req, w_stillcold, sizeof(w_stillcold));
- return (error);
- }
- error = 0;
- sb = sbuf_new(NULL, NULL, badstack_sbuf_size, SBUF_AUTOEXTEND);
- if (sb == NULL)
- return (ENOMEM);
-
- sbuf_print_witness_badstacks(sb);
-
sbuf_finish(sb);
error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
sbuf_delete(sb);
return (error);
}
-
-#ifdef DDB
-static int
-sbuf_db_printf_drain(void *arg __unused, const char *data, int len)
-{
-
- return (db_printf("%.*s", len, data));
-}
-
-DB_SHOW_COMMAND(badstacks, db_witness_badstacks)
-{
- struct sbuf sb;
- char buffer[128];
-
- sbuf_new(&sb, buffer, sizeof(buffer), SBUF_FIXEDLEN);
- sbuf_set_drain(&sb, sbuf_db_printf_drain, NULL);
- sbuf_print_witness_badstacks(&sb);
- sbuf_finish(&sb);
-}
-#endif
static int
sysctl_debug_witness_channel(SYSCTL_HANDLER_ARGS)
More information about the svn-src-all
mailing list