Re: [PATCH] drivers/misc/kgdbts.c: remove eprintk

From: Julia Lawall
Date: Sun Nov 04 2012 - 14:58:16 EST




On Sun, 4 Nov 2012, Arnd Bergmann wrote:

On Saturday 03 November 2012, Julia Lawall wrote:
@@ -113,10 +113,6 @@
printk(KERN_INFO a); \
touch_nmi_watchdog(); \
} while (0)
-#define eprintk(a...) do { \
- printk(KERN_ERR a); \
- WARN_ON(1); \
- } while (0)
#define MAX_CONFIG_LEN 40

static struct kgdb_io kgdbts_io_ops;
@@ -323,7 +319,7 @@ static int check_and_rewind_pc(char *put_str, char *arg)
v2printk("Emul: rewind hit single step bp\n");
restart_from_top_after_write = 1;
} else if (strcmp(arg, "silent") && ip + offset != addr) {
- eprintk("kgdbts: BP mismatch %lx expected %lx\n",
+ WARN(1, KERN_ERR "kgdbts: BP mismatch %lx expected %lx\n",
ip + offset, addr);
return 1;
}

Hmm, I did not think that WARN() took a KERN_ERR argument, which should
really be implied here. Looking at the code, it really seems to be required
at the moment, but only 5 out of 117 callers use it this way.

Any idea what is going on here?

I'm not sure to understand the 5 and 117. Using grep, I get 30 with KERN_ERR, 61 with some KERN thing, and 1207 without KERN. If things are set up such that warn_slowpath_fmt is called, then that function adds
KERN_WARNING. There is an alternate definition of __WARN_printf that just does a printk.

So if eprintk wants KERN_ERR, then it seems that rewriting it with WARN is not a good idea. I will check whether this problems arises with the other printks and WARNs that I suggested to merge.

thanks,
julia
--
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/