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

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
...@@ -40,3 +40,16 @@ config DVB_DEMUX_SECTION_LOSS_LOG ...@@ -40,3 +40,16 @@ config DVB_DEMUX_SECTION_LOSS_LOG
be very verbose. be very verbose.
If you are unsure about this, say N here. 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.
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
* Competence Center for Advanced Satellite Communications. * Competence Center for Advanced Satellite Communications.
* Bugfixes and robustness improvements. * Bugfixes and robustness improvements.
* Filtering on dest MAC addresses, if present (D-Bit = 0) * 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 * Apr 2006: cp v3: Bugfixes and compliency with RFC 4326 (ULE) by
* Christian Praehauser <cpraehaus@cosy.sbg.ac.at>, * Christian Praehauser <cpraehaus@cosy.sbg.ac.at>,
* Paris Lodron University of Salzburg. * Paris Lodron University of Salzburg.
...@@ -78,12 +78,9 @@ static inline __u32 iov_crc32( __u32 c, struct kvec *iov, unsigned int cnt ) ...@@ -78,12 +78,9 @@ static inline __u32 iov_crc32( __u32 c, struct kvec *iov, unsigned int cnt )
#define DVB_NET_MULTICAST_MAX 10 #define DVB_NET_MULTICAST_MAX 10
#undef ULE_DEBUG #ifdef DVB_ULE_DEBUG
#ifdef 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. * last 100 TS cells processed.
*/ */
static unsigned char ule_hist[100*TS_SZ] = { 0 }; static unsigned char ule_hist[100*TS_SZ] = { 0 };
...@@ -93,7 +90,6 @@ static void hexdump(const unsigned char *buf, unsigned short len) ...@@ -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); print_hex_dump_debug("", DUMP_PREFIX_OFFSET, 16, 1, buf, len, true);
} }
#endif #endif
struct dvb_net_priv { struct dvb_net_priv {
...@@ -333,7 +329,7 @@ static int dvb_net_ule_new_ts_cell(struct dvb_net_ule_handle *h) ...@@ -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. */ /* We are about to process a new TS cell. */
#ifdef ULE_DEBUG #ifdef DVB_ULE_DEBUG
if (ule_where >= &ule_hist[100*TS_SZ]) if (ule_where >= &ule_hist[100*TS_SZ])
ule_where = ule_hist; ule_where = ule_hist;
memcpy(ule_where, h->ts, TS_SZ); memcpy(ule_where, h->ts, TS_SZ);
...@@ -672,7 +668,7 @@ static void dvb_net_ule_check_crc(struct dvb_net_ule_handle *h, ...@@ -672,7 +668,7 @@ static void dvb_net_ule_check_crc(struct dvb_net_ule_handle *h,
h->ts_remain > 2 ? h->ts_remain > 2 ?
*(unsigned short *)h->from_where : 0); *(unsigned short *)h->from_where : 0);
#ifdef ULE_DEBUG #ifdef DVB_ULE_DEBUG
hexdump(iov[0].iov_base, iov[0].iov_len); hexdump(iov[0].iov_base, iov[0].iov_len);
hexdump(iov[1].iov_base, iov[1].iov_len); hexdump(iov[1].iov_base, iov[1].iov_len);
hexdump(iov[2].iov_base, iov[2].iov_len); hexdump(iov[2].iov_base, iov[2].iov_len);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment