-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04/17/2011 08:35 PM, Joe Perches wrote: > Reduce drm text size ~1% by using drm_err and > printf extension %pV to emit error messages. > > Remove unused macro DRM_MEM_ERROR. > > $ size drivers/gpu/drm/built-in.o* > text data bss dec hex filename > 361159 9663 256 371078 5a986 drivers/gpu/drm/built-in.o.new > 365416 9663 256 375335 5ba27 drivers/gpu/drm/built-in.o.old > > Signed-off-by: Joe Perches <joe@xxxxxxxxxxx> > --- > drivers/gpu/drm/drm_stub.c | 21 +++++++++++++++++++++ > include/drm/drmP.h | 21 +++++++-------------- > 2 files changed, 28 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c > index 001273d..6d7b083 100644 > --- a/drivers/gpu/drm/drm_stub.c > +++ b/drivers/gpu/drm/drm_stub.c > @@ -62,6 +62,26 @@ struct idr drm_minors_idr; > struct class *drm_class; > struct proc_dir_entry *drm_proc_root; > struct dentry *drm_debugfs_root; > + > +int drm_err(const char *func, const char *format, ...) > +{ > + struct va_format vaf; > + va_list args; > + int r; > + > + va_start(args, format); > + > + vaf.fmt = format; > + vaf.va = &args; > + > + r = printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* %pV", func, &vaf); This code has ben reorganized a lot over the years, so this comment may be bogus. However... I believe that DRM_NAME is a define, and drm_stub.c is in common code. As a result, won't this change cause something different to get logged? > + > + va_end(args); > + > + return r; > +} > +EXPORT_SYMBOL(drm_err); > + > void drm_ut_debug_printk(unsigned int request_level, > const char *prefix, > const char *function_name, > @@ -78,6 +98,7 @@ void drm_ut_debug_printk(unsigned int request_level, > } > } > EXPORT_SYMBOL(drm_ut_debug_printk); > + > static int drm_minor_get_id(struct drm_device *dev, int type) > { > int new_id; > diff --git a/include/drm/drmP.h b/include/drm/drmP.h > index 202424d..22db51d 100644 > --- a/include/drm/drmP.h > +++ b/include/drm/drmP.h > @@ -126,6 +126,9 @@ extern void drm_ut_debug_printk(unsigned int request_level, > const char *prefix, > const char *function_name, > const char *format, ...); > +extern __attribute__((format (printf, 2, 3))) > +int drm_err(const char *func, const char *format, ...); > + > /***********************************************************************/ > /** \name DRM template customization defaults */ > /*@{*/ > @@ -181,21 +184,11 @@ extern void drm_ut_debug_printk(unsigned int request_level, > * \param fmt printf() like format string. > * \param arg arguments > */ > -#define DRM_ERROR(fmt, arg...) \ > - printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* " fmt , __func__ , ##arg) > - > -/** > - * Memory error output. > - * > - * \param area memory area where the error occurred. > - * \param fmt printf() like format string. > - * \param arg arguments > - */ > -#define DRM_MEM_ERROR(area, fmt, arg...) \ > - printk(KERN_ERR "[" DRM_NAME ":%s:%s] *ERROR* " fmt , __func__, \ > - drm_mem_stats[area].name , ##arg) > +#define DRM_ERROR(fmt, ...) \ > + drm_err(__func__, fmt, ##__VA_ARGS__) > > -#define DRM_INFO(fmt, arg...) printk(KERN_INFO "[" DRM_NAME "] " fmt , ##arg) > +#define DRM_INFO(fmt, ...) \ > + printk(KERN_INFO "[" DRM_NAME "] " fmt, ##__VA_ARGS__) > > /** > * Debug output. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iEYEARECAAYFAk2swbEACgkQX1gOwKyEAw+w/ACfd2QMJWOQU5f9sgavPXkfPPfW GygAn2D8bjKkIV8wOXYC1fOI9w4DPWHj =q3FM -----END PGP SIGNATURE----- _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel