[coreboot] [PATCH]More consistent behaviour for printk_*
Myles Watson
mylesgw at gmail.com
Mon Apr 27 20:16:18 CEST 2009
> -----Original Message-----
> From: coreboot-bounces+mylesgw=gmail.com at coreboot.org [mailto:coreboot-
> bounces+mylesgw=gmail.com at coreboot.org] On Behalf Of Patrick Georgi
> Sent: Monday, April 27, 2009 11:49 AM
> To: coreboot at coreboot.org
> Subject: [coreboot] [PATCH]More consistent behaviour for printk_*
>
> Hi,
>
> the attached patch make printk_* behaviour more consistent. Without it,
> side
> effects in the arguments (eg. a pci config read, or variable increment)
> "vanish" with the message, and the behaviour changes.
>
> Example:
> printk_info("foo %d\n", i++);
>
> Without this patch, this becomes (for suitable loglevels)
> do {} while (0)
>
> With this patch, this will be:
> do_printk(EMERG, "", i++);
>
> Some of these effects might be unwanted, but at least they are consistent
> now.
> For example, via c7 CAR failed for loglevel > 7 for various reasons (patch
> upcoming). While it fails all the time now (this patch is no "magic fix"),
> upcoming development is less likely to produce such "hidden surprises".
>
> To reduce the memory footprint slightly, the formatted strings are
> discarded.
> A simpler patch would be to just kill the whole "#if #undef #define
> #endif"-
I like simple.
> section, but then a lot of strings that never surface would be compiled in
> (and I doubt the compiler is clever enough to figure that out)
We discussed this recently for v3. Do you have a good idea of how much
space this actually saves?
> Signed-off-by: Patrick Georgi <patrick.georgi at coresystems.de>
Acked-by: Myles Watson <mylesgw at gmail.com>
Thanks,
Myles
More information about the coreboot
mailing list