Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84116716 authored by Gerrit Renker's avatar Gerrit Renker Committed by David S. Miller
Browse files

[DCCP]: enable debug messages also for static builds



This patch
  * makes debugging (when configured) work both for static / module build
  * provides generic debugging macros for use in other DCCP / CCID modules
  * adds missing information about debug parameters to Kconfig
  * performs some code tidy-up

Signed-off-by: default avatarGerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
parent f123bc5f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -38,6 +38,9 @@ config IP_DCCP_DEBUG
	---help---
	  Only use this if you're hacking DCCP.

	  When compiling DCCP as a module, this debugging output can be toggled
	  by setting the parameter dccp_debug of the `dccp' module to 0 or 1.

	  Just say N.

config NET_DCCPPROBE
+4 −7
Original line number Diff line number Diff line
@@ -318,21 +318,18 @@ int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
#ifdef CONFIG_IP_DCCP_DEBUG
void dccp_ackvector_print(const u64 ackno, const unsigned char *vector, int len)
{
	if (!dccp_debug)
		return;

	printk("ACK vector len=%d, ackno=%llu |", len,
	dccp_pr_debug_cat("ACK vector len=%d, ackno=%llu |", len,
			 		(unsigned long long)ackno);

	while (len--) {
		const u8 state = (*vector & DCCP_ACKVEC_STATE_MASK) >> 6;
		const u8 rl = *vector & DCCP_ACKVEC_LEN_MASK;

		printk("%d,%d|", state, rl);
		dccp_pr_debug_cat("%d,%d|", state, rl);
		++vector;
	}

	printk("\n");
	dccp_pr_debug_cat("\n");
}

void dccp_ackvec_print(const struct dccp_ackvec *av)
+12 −2
Original line number Diff line number Diff line
@@ -28,13 +28,20 @@ config IP_DCCP_CCID2
	  This text was extracted from RFC 4340 (sec. 10.1),
	  http://www.ietf.org/rfc/rfc4340.txt

	  To compile this CCID as a module, choose M here: the module will be
	  called dccp_ccid2.

	  If in doubt, say M.

config IP_DCCP_CCID2_DEBUG
	  bool "CCID2 debug"
	  bool "CCID2 debugging messages"
	  depends on IP_DCCP_CCID2
	  ---help---
	    Enable CCID2 debug messages.
	    Enable CCID2-specific debugging messages.

	    When compiling CCID2 as a module, this debugging output can
	    additionally be toggled by setting the ccid2_debug module
	    parameter to 0 or 1.

	    If in doubt, say N.

@@ -62,6 +69,9 @@ config IP_DCCP_CCID3
	  This text was extracted from RFC 4340 (sec. 10.2),
	  http://www.ietf.org/rfc/rfc4340.txt
	  
	  To compile this CCID as a module, choose M here: the module will be
	  called dccp_ccid3.

	  If in doubt, say M.

config IP_DCCP_TFRC_LIB
+6 −10
Original line number Diff line number Diff line
@@ -33,18 +33,11 @@
#include "../dccp.h"
#include "ccid2.h"

static int ccid2_debug;

#ifdef CONFIG_IP_DCCP_CCID2_DEBUG
#define ccid2_pr_debug(format, a...) \
        do { if (ccid2_debug) \
                printk(KERN_DEBUG "%s: " format, __FUNCTION__, ##a); \
        } while (0)
#else
#define ccid2_pr_debug(format, a...)
#endif
static int ccid2_debug;
#define ccid2_pr_debug(format, a...)	DCCP_PR_DEBUG(ccid2_debug, format, ##a)

#ifdef CONFIG_IP_DCCP_CCID2_DEBUG
static void ccid2_hc_tx_check_sanity(const struct ccid2_hc_tx_sock *hctx)
{
	int len = 0;
@@ -86,7 +79,8 @@ static void ccid2_hc_tx_check_sanity(const struct ccid2_hc_tx_sock *hctx)
	BUG_ON(len != hctx->ccid2hctx_seqbufc * CCID2_SEQBUF_LEN);
}
#else
#define ccid2_hc_tx_check_sanity(hctx) do {} while (0)
#define ccid2_pr_debug(format, a...)
#define ccid2_hc_tx_check_sanity(hctx)
#endif

static int ccid2_hc_tx_alloc_seq(struct ccid2_hc_tx_sock *hctx, int num,
@@ -841,8 +835,10 @@ static struct ccid_operations ccid2 = {
	.ccid_hc_rx_packet_recv	= ccid2_hc_rx_packet_recv,
};

#ifdef CONFIG_IP_DCCP_CCID2_DEBUG
module_param(ccid2_debug, int, 0444);
MODULE_PARM_DESC(ccid2_debug, "Enable debug messages");
#endif

static __init int ccid2_module_init(void)
{
+12 −7
Original line number Diff line number Diff line
@@ -26,15 +26,20 @@
						 __stringify((cond)));	       \
			     } while (0)

#ifdef MODULE
#define DCCP_PRINTK(enable, fmt, args...)	do { if (enable)	     \
							printk(fmt, ##args); \
					 	} while(0)
#else
#define DCCP_PRINTK(enable, fmt, args...)	printk(fmt, ##args)
#endif
#define DCCP_PR_DEBUG(enable, fmt, a...)	DCCP_PRINTK(enable, KERN_DEBUG \
						  "%s: " fmt, __FUNCTION__, ##a)

#ifdef CONFIG_IP_DCCP_DEBUG
extern int dccp_debug;

#define dccp_pr_debug(format, a...) \
	do { if (dccp_debug) \
		printk(KERN_DEBUG "%s: " format, __FUNCTION__ , ##a); \
	} while (0)
#define dccp_pr_debug_cat(format, a...) do { if (dccp_debug) \
					     printk(format, ##a); } while (0)
#define dccp_pr_debug(format, a...)	  DCCP_PR_DEBUG(dccp_debug, format, ##a)
#define dccp_pr_debug_cat(format, a...)   DCCP_PRINTK(dccp_debug, format, ##a)
#else
#define dccp_pr_debug(format, a...)
#define dccp_pr_debug_cat(format, a...)