[PATCH 2.4] IrDA kernel log buster

From: Jean Tourrilhes
Date: Thu Dec 11 2003 - 18:52:30 EST


Hi Marcelo,

I just ran 2.4.23, and after a few min the disk reached 100%
capacity. A quick check lead to to oversized kernel log, and to the
following changeset :

http://linux.bkbits.net:8080/linux-2.4/cset@xxxxxxxxxxx?nav=index.html|ChangeSet@-12w

Patch to fix this problem is attached below, I've just
backported the proper fixes from 2.5.X into 2.4.X.
Probably this person did too much Python, but in C you need
braces around multiple statements part of the same branch, so the
second printf was always executed even when logging was disabled. I
also don't understand why this person didn't decided to backport the
2.5.X fix.
I'm also bit surprised that this kind of patch went into the
kernel behind my back, because I though that freeze meant not
accepting untested patch from random hacker.

Have fun...

Jean

-------------------------------------------------

diff -u -p linux/net/irda/irnet/irnet.j1.h linux/net/irda/irnet/irnet.h
--- linux/net/irda/irnet/irnet.j1.h Thu Dec 11 15:31:32 2003
+++ linux/net/irda/irnet/irnet.h Thu Dec 11 15:34:08 2003
@@ -322,29 +322,29 @@
* compiler will optimise away the if() in all cases.
*/
/* All error messages (will show up in the normal logs) */
-#define DERROR(dbg, args...) \
+#define DERROR(dbg, format, args...) \
{if(DEBUG_##dbg) \
- printk(KERN_INFO "irnet: %s(): ", __FUNCTION__); printk(args);}
+ printk(KERN_INFO "irnet: %s(): " format, __FUNCTION__ , ##args);}

/* Normal debug message (will show up in /var/log/debug) */
-#define DEBUG(dbg, args...) \
+#define DEBUG(dbg, format, args...) \
{if(DEBUG_##dbg) \
- printk(KERN_DEBUG "irnet: %s(): ", __FUNCTION__); printk(args);}
+ printk(KERN_DEBUG "irnet: %s(): " format, __FUNCTION__ , ##args);}

/* Entering a function (trace) */
-#define DENTER(dbg, args...) \
+#define DENTER(dbg, format, args...) \
{if(DEBUG_##dbg) \
- printk(KERN_DEBUG "irnet: ->%s", __FUNCTION__); printk(args);}
+ printk(KERN_DEBUG "irnet: -> %s" format, __FUNCTION__ , ##args);}

/* Entering and exiting a function in one go (trace) */
-#define DPASS(dbg, args...) \
+#define DPASS(dbg, format, args...) \
{if(DEBUG_##dbg) \
- printk(KERN_DEBUG "irnet: <>%s", __FUNCTION__); printk(args);}
+ printk(KERN_DEBUG "irnet: <>%s" format, __FUNCTION__ , ##args);}

/* Exiting a function (trace) */
-#define DEXIT(dbg, args...) \
+#define DEXIT(dbg, format, args...) \
{if(DEBUG_##dbg) \
- printk(KERN_DEBUG "irnet: <-%s()", __FUNCTION__); printk(args);}
+ printk(KERN_DEBUG "irnet: <-%s()" format, __FUNCTION__ , ##args);}

/* Exit a function with debug */
#define DRETURN(ret, dbg, args...) \
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/