Commit ba711e1c authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

media: dvb-core: allow users to enable DVB net ULE debug



This debug option is there for a long time, but it is only
enabled by editing the source code. Due to that, a breakage
inside its code was only noticed years after a change at
the ULE handling logic.

Make it a Kconfig parameter, as it makes easier for
advanced users to enable, and allow test if the compilation
won't be broken in the future.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent b93a25e1
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -40,3 +40,16 @@ config DVB_DEMUX_SECTION_LOSS_LOG
	  be very verbose.

	  If you are unsure about this, say N here.

config DVB_ULE_DEBUG
	bool "Enable DVB net ULE packet debug messages"
	depends on DVB_CORE
	default n
	help
	  Enable extra log messages meant to detect problems while
	  handling DVB network ULE packet loss inside the Kernel.

	  Should not be enabled on normal cases, as logs can
	  be very verbose.

	  If you are unsure about this, say N here.
+5 −9
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@
 *                       Competence Center for Advanced Satellite Communications.
 *                     Bugfixes and robustness improvements.
 *                     Filtering on dest MAC addresses, if present (D-Bit = 0)
 *                     ULE_DEBUG compile-time option.
 *                     DVB_ULE_DEBUG compile-time option.
 * Apr 2006: cp v3:    Bugfixes and compliency with RFC 4326 (ULE) by
 *                       Christian Praehauser <cpraehaus@cosy.sbg.ac.at>,
 *                       Paris Lodron University of Salzburg.
@@ -78,12 +78,9 @@ static inline __u32 iov_crc32( __u32 c, struct kvec *iov, unsigned int cnt )

#define DVB_NET_MULTICAST_MAX 10

#undef ULE_DEBUG

#ifdef ULE_DEBUG

#ifdef DVB_ULE_DEBUG
/*
 * The code inside ULE_DEBUG keeps a history of the
 * The code inside DVB_ULE_DEBUG keeps a history of the
 * last 100 TS cells processed.
 */
static unsigned char ule_hist[100*TS_SZ] = { 0 };
@@ -93,7 +90,6 @@ static void hexdump(const unsigned char *buf, unsigned short len)
{
	print_hex_dump_debug("", DUMP_PREFIX_OFFSET, 16, 1, buf, len, true);
}

#endif

struct dvb_net_priv {
@@ -333,7 +329,7 @@ static int dvb_net_ule_new_ts_cell(struct dvb_net_ule_handle *h)
{
	/* We are about to process a new TS cell. */

#ifdef ULE_DEBUG
#ifdef DVB_ULE_DEBUG
	if (ule_where >= &ule_hist[100*TS_SZ])
		ule_where = ule_hist;
	memcpy(ule_where, h->ts, TS_SZ);
@@ -672,7 +668,7 @@ static void dvb_net_ule_check_crc(struct dvb_net_ule_handle *h,
			h->ts_remain > 2 ?
				*(unsigned short *)h->from_where : 0);

	#ifdef ULE_DEBUG
	#ifdef DVB_ULE_DEBUG
		hexdump(iov[0].iov_base, iov[0].iov_len);
		hexdump(iov[1].iov_base, iov[1].iov_len);
		hexdump(iov[2].iov_base, iov[2].iov_len);