|
@@ -64,9 +64,9 @@ struct print_buf *const TIPC_LOG = &log_buf;
|
|
|
* 'print_string' when writing to a print buffer. This also protects against
|
|
|
* concurrent writes to the print buffer being written to.
|
|
|
*
|
|
|
- * 2) tipc_dump() and tipc_log_XXX() leverage the aforementioned
|
|
|
- * use of 'print_lock' to protect against all types of concurrent operations
|
|
|
- * on their associated print buffer (not just write operations).
|
|
|
+ * 2) tipc_log_XXX() leverages the aforementioned use of 'print_lock' to
|
|
|
+ * protect against all types of concurrent operations on their associated
|
|
|
+ * print buffer (not just write operations).
|
|
|
*
|
|
|
* Note: All routines of the form tipc_printbuf_XXX() are lock-free, and rely
|
|
|
* on the caller to prevent simultaneous use of the print buffer(s) being
|
|
@@ -268,81 +268,6 @@ void tipc_printf(struct print_buf *pb, const char *fmt, ...)
|
|
|
spin_unlock_bh(&print_lock);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_TIPC_DEBUG
|
|
|
-
|
|
|
-/**
|
|
|
- * print_to_console - write string of bytes to console in multiple chunks
|
|
|
- */
|
|
|
-
|
|
|
-static void print_to_console(char *crs, int len)
|
|
|
-{
|
|
|
- int rest = len;
|
|
|
-
|
|
|
- while (rest > 0) {
|
|
|
- int sz = rest < TIPC_PB_MAX_STR ? rest : TIPC_PB_MAX_STR;
|
|
|
- char c = crs[sz];
|
|
|
-
|
|
|
- crs[sz] = 0;
|
|
|
- printk((const char *)crs);
|
|
|
- crs[sz] = c;
|
|
|
- rest -= sz;
|
|
|
- crs += sz;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * printbuf_dump - write print buffer contents to console
|
|
|
- */
|
|
|
-
|
|
|
-static void printbuf_dump(struct print_buf *pb)
|
|
|
-{
|
|
|
- int len;
|
|
|
-
|
|
|
- if (!pb->buf) {
|
|
|
- printk("*** PRINT BUFFER NOT ALLOCATED ***");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- /* Dump print buffer from char after cursor to end (if used) */
|
|
|
-
|
|
|
- len = pb->buf + pb->size - pb->crs - 2;
|
|
|
- if ((pb->buf[pb->size - 1] == 0) && (len > 0))
|
|
|
- print_to_console(pb->crs + 1, len);
|
|
|
-
|
|
|
- /* Dump print buffer from start to cursor (always) */
|
|
|
-
|
|
|
- len = pb->crs - pb->buf;
|
|
|
- print_to_console(pb->buf, len);
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * tipc_dump_dbg - dump (non-console) print buffer to console
|
|
|
- * @pb: pointer to print buffer
|
|
|
- */
|
|
|
-
|
|
|
-void tipc_dump_dbg(struct print_buf *pb, const char *fmt, ...)
|
|
|
-{
|
|
|
- int len;
|
|
|
-
|
|
|
- if (pb == TIPC_CONS)
|
|
|
- return;
|
|
|
-
|
|
|
- spin_lock_bh(&print_lock);
|
|
|
-
|
|
|
- FORMAT(print_string, len, fmt);
|
|
|
- printk(print_string);
|
|
|
-
|
|
|
- printk("\n---- Start of %s log dump ----\n\n",
|
|
|
- (pb == TIPC_LOG) ? "global" : "local");
|
|
|
- printbuf_dump(pb);
|
|
|
- tipc_printbuf_reset(pb);
|
|
|
- printk("\n---- End of dump ----\n");
|
|
|
-
|
|
|
- spin_unlock_bh(&print_lock);
|
|
|
-}
|
|
|
-
|
|
|
-#endif
|
|
|
-
|
|
|
/**
|
|
|
* tipc_log_resize - change the size of the TIPC log buffer
|
|
|
* @log_size: print buffer size to use
|