On Wed, Jun 6, 2012 at 2:07 AM, Joe Perches <joe@xxxxxxxxxxx> wrote: > On Tue, 2012-06-05 at 16:58 -0700, Andrew Morton wrote: >> echo "\0014Hello Joe" > /dev/kmsg > > # echo -e "\x014Hello Me" > /dev/kmsg > gives: > 12,778,4057982669;Hello Me > > #echo -e "\x011Hello Me_2" > /dev/kmsg > gives: > 12,779,4140452093;Hello Me_2 > > I didn't change devkmsg_writev so the > original parsing style for "<.>" is > unchanged. > > from printk.c: > > static ssize_t devkmsg_writev(struct kiocb *iocb, const struct iovec *iv, > unsigned long count, loff_t pos) > [...] > int level = default_message_loglevel; > [...] > if (line[0] == '<') { > char *endp = NULL; > > i = simple_strtoul(line+1, &endp, 10); > if (endp && endp[0] == '>') { > level = i & 7; > if (i >> 3) > facility = i >> 3; > endp++; > len -= endp - line; > line = endp; > } > } > line[len] = '\0'; > > printk_emit(facility, level, NULL, 0, "%s", line); > [] > > level is what matters. > > from dmesg -r > > <12>[ 2462.339252] \001Hello Andrew > <9>[ 2516.023444] Hello Andrew > <12>[ 3046.752764] \x01Hello Kay > <12>[ 3940.871850] \x01Hello Kay > <12>[ 4057.982669] Hello Me > <12>[ 4140.452093] Hello Me_2 The question is what happens if you inject your new binary two-byte prefix, like: echo -e "\x01\x02Hello" > /dev/kmsg And if that changes the log-level to "2" instead of the default "4"? (assuming that I read your patch right, otherwise please correct the bytes, but use the full sequence which your patch will recognize as an internal level marker; seems your examples are all not triggering that) Kay _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel