* [Cluster-devel] [PATCH 0/9] treewide: convert vprintk uses to %pV
@ 2010-11-10 0:35 Joe Perches
2010-11-10 0:35 ` [Cluster-devel] [PATCH 6/9] fs/gfs2/glock.c: Use printf extension %pV Joe Perches
[not found] ` <AANLkTinhcbdm8YQOrFVdONODo6K6PcxHYtx5vqnap_3T@mail.gmail.com>
0 siblings, 2 replies; 6+ messages in thread
From: Joe Perches @ 2010-11-10 0:35 UTC (permalink / raw)
To: cluster-devel.redhat.com
Multiple secessive calls to printk can be interleaved.
Avoid this possible interleaving by using %pV
Joe Perches (9):
drivers/gpu/drm/drm_stub.c: Use printf extension %pV
drivers/isdn/mISDN: Use printf extension %pV
drivers/net/wireless/ath/debug.c: Use printf extension %pV
drivers/net/wireless/b43/main.c: Use printf extension %pV
drivers/net/wireless/b43legacy/main.c: Use printf extension %pV
fs/gfs2/glock.c: Use printf extension %pV
fs/nilfs2/super.c: Use printf extension %pV
fs/quota/dquot.c: Use printf extension %pV
net/sunrpc/svc.c: Use printf extension %pV
drivers/gpu/drm/drm_stub.c | 14 +++++++--
drivers/isdn/mISDN/layer1.c | 10 +++++--
drivers/isdn/mISDN/layer2.c | 12 ++++++--
drivers/isdn/mISDN/tei.c | 23 +++++++++++----
drivers/net/wireless/ath/debug.c | 9 +++++-
drivers/net/wireless/b43/main.c | 48 ++++++++++++++++++++++++--------
drivers/net/wireless/b43legacy/main.c | 47 ++++++++++++++++++++++++--------
fs/gfs2/glock.c | 9 +++++-
fs/nilfs2/super.c | 23 +++++++++++-----
fs/quota/dquot.c | 12 +++++---
net/sunrpc/svc.c | 12 +++++---
11 files changed, 161 insertions(+), 58 deletions(-)
--
1.7.3.1.g432b3.dirty
^ permalink raw reply [flat|nested] 6+ messages in thread* [Cluster-devel] [PATCH 6/9] fs/gfs2/glock.c: Use printf extension %pV 2010-11-10 0:35 [Cluster-devel] [PATCH 0/9] treewide: convert vprintk uses to %pV Joe Perches @ 2010-11-10 0:35 ` Joe Perches 2010-11-10 20:55 ` Steven Whitehouse [not found] ` <AANLkTinhcbdm8YQOrFVdONODo6K6PcxHYtx5vqnap_3T@mail.gmail.com> 1 sibling, 1 reply; 6+ messages in thread From: Joe Perches @ 2010-11-10 0:35 UTC (permalink / raw) To: cluster-devel.redhat.com Using %pV reduces the number of printk calls and eliminates any possible message interleaving from other printk calls. Signed-off-by: Joe Perches <joe@perches.com> --- fs/gfs2/glock.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 8777885..d30b39c 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -952,17 +952,22 @@ int gfs2_glock_wait(struct gfs2_holder *gh) void gfs2_print_dbg(struct seq_file *seq, const char *fmt, ...) { + struct va_format vaf; va_list args; va_start(args, fmt); + if (seq) { struct gfs2_glock_iter *gi = seq->private; vsprintf(gi->string, fmt, args); seq_printf(seq, gi->string); } else { - printk(KERN_ERR " "); - vprintk(fmt, args); + vaf.fmt = fmt; + vaf.va = &args; + + printk(KERN_ERR " %pV", &vaf); } + va_end(args); } -- 1.7.3.1.g432b3.dirty ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Cluster-devel] [PATCH 6/9] fs/gfs2/glock.c: Use printf extension %pV 2010-11-10 0:35 ` [Cluster-devel] [PATCH 6/9] fs/gfs2/glock.c: Use printf extension %pV Joe Perches @ 2010-11-10 20:55 ` Steven Whitehouse 2010-11-10 21:19 ` [Cluster-devel] [PATCH] fs/gfs2/glock.h: Add __attribute__((format(printf, 2, 3)) to gfs2_print_dbg Joe Perches 0 siblings, 1 reply; 6+ messages in thread From: Steven Whitehouse @ 2010-11-10 20:55 UTC (permalink / raw) To: cluster-devel.redhat.com Hi, Now in my -nmw GFS2 git tree along with the previous patch. Thanks, Steve. On Tue, 2010-11-09 at 16:35 -0800, Joe Perches wrote: > Using %pV reduces the number of printk calls and > eliminates any possible message interleaving from > other printk calls. > > Signed-off-by: Joe Perches <joe@perches.com> > --- > fs/gfs2/glock.c | 9 +++++++-- > 1 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c > index 8777885..d30b39c 100644 > --- a/fs/gfs2/glock.c > +++ b/fs/gfs2/glock.c > @@ -952,17 +952,22 @@ int gfs2_glock_wait(struct gfs2_holder *gh) > > void gfs2_print_dbg(struct seq_file *seq, const char *fmt, ...) > { > + struct va_format vaf; > va_list args; > > va_start(args, fmt); > + > if (seq) { > struct gfs2_glock_iter *gi = seq->private; > vsprintf(gi->string, fmt, args); > seq_printf(seq, gi->string); > } else { > - printk(KERN_ERR " "); > - vprintk(fmt, args); > + vaf.fmt = fmt; > + vaf.va = &args; > + > + printk(KERN_ERR " %pV", &vaf); > } > + > va_end(args); > } > ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Cluster-devel] [PATCH] fs/gfs2/glock.h: Add __attribute__((format(printf, 2, 3)) to gfs2_print_dbg 2010-11-10 20:55 ` Steven Whitehouse @ 2010-11-10 21:19 ` Joe Perches 2010-11-10 21:35 ` Steven Whitehouse 0 siblings, 1 reply; 6+ messages in thread From: Joe Perches @ 2010-11-10 21:19 UTC (permalink / raw) To: cluster-devel.redhat.com Functions that use printf formatting, especially those that use %pV, should have their uses of printf format and arguments checked by the compiler. Signed-off-by: Joe Perches <joe@perches.com> --- No current uses report any error in an allyesconfig build. fs/gfs2/glock.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h index db1c26d..a12d117 100644 --- a/fs/gfs2/glock.h +++ b/fs/gfs2/glock.h @@ -212,6 +212,8 @@ int gfs2_glock_nq_num(struct gfs2_sbd *sdp, int gfs2_glock_nq_m(unsigned int num_gh, struct gfs2_holder *ghs); void gfs2_glock_dq_m(unsigned int num_gh, struct gfs2_holder *ghs); void gfs2_glock_dq_uninit_m(unsigned int num_gh, struct gfs2_holder *ghs); + +__attribute__ ((format(printf, 2, 3))) void gfs2_print_dbg(struct seq_file *seq, const char *fmt, ...); /** ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Cluster-devel] [PATCH] fs/gfs2/glock.h: Add __attribute__((format(printf, 2, 3)) to gfs2_print_dbg 2010-11-10 21:19 ` [Cluster-devel] [PATCH] fs/gfs2/glock.h: Add __attribute__((format(printf, 2, 3)) to gfs2_print_dbg Joe Perches @ 2010-11-10 21:35 ` Steven Whitehouse 0 siblings, 0 replies; 6+ messages in thread From: Steven Whitehouse @ 2010-11-10 21:35 UTC (permalink / raw) To: cluster-devel.redhat.com Hi, Now in the GFS2 -nmw git tree. Thanks, Steve. On Wed, 2010-11-10 at 13:19 -0800, Joe Perches wrote: > Functions that use printf formatting, especially > those that use %pV, should have their uses of > printf format and arguments checked by the compiler. > > Signed-off-by: Joe Perches <joe@perches.com> > --- > No current uses report any error in an allyesconfig build. > > fs/gfs2/glock.h | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h > index db1c26d..a12d117 100644 > --- a/fs/gfs2/glock.h > +++ b/fs/gfs2/glock.h > @@ -212,6 +212,8 @@ int gfs2_glock_nq_num(struct gfs2_sbd *sdp, > int gfs2_glock_nq_m(unsigned int num_gh, struct gfs2_holder *ghs); > void gfs2_glock_dq_m(unsigned int num_gh, struct gfs2_holder *ghs); > void gfs2_glock_dq_uninit_m(unsigned int num_gh, struct gfs2_holder *ghs); > + > +__attribute__ ((format(printf, 2, 3))) > void gfs2_print_dbg(struct seq_file *seq, const char *fmt, ...); > > /** > > ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <AANLkTinhcbdm8YQOrFVdONODo6K6PcxHYtx5vqnap_3T@mail.gmail.com>]
* [Cluster-devel] [PATCH 0/9] treewide: convert vprintk uses to %pV [not found] ` <AANLkTinhcbdm8YQOrFVdONODo6K6PcxHYtx5vqnap_3T@mail.gmail.com> @ 2010-11-10 23:01 ` Joe Perches 0 siblings, 0 replies; 6+ messages in thread From: Joe Perches @ 2010-11-10 23:01 UTC (permalink / raw) To: cluster-devel.redhat.com On Wed, 2010-11-10 at 14:48 -0800, Luis R. Rodriguez wrote: > When was this added upstream BTW? I ask for backport considerations. commit 7db6f5fb65a82af03229eef104dc9899c5eecf33 Author: Joe Perches <joe@perches.com> Date: Sun Jun 27 01:02:33 2010 +0000 vsprintf: Recursive vsnprintf: Add "%pV", struct va_format Add the ability to print a format and va_list from a structure pointer Allows __dev_printk to be implemented as a single printk while minimizing string space duplication. %pV should not be used without some mechanism to verify the format and argument use ala __attribute__(format (printf(...))). Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-11-10 23:01 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-10 0:35 [Cluster-devel] [PATCH 0/9] treewide: convert vprintk uses to %pV Joe Perches
2010-11-10 0:35 ` [Cluster-devel] [PATCH 6/9] fs/gfs2/glock.c: Use printf extension %pV Joe Perches
2010-11-10 20:55 ` Steven Whitehouse
2010-11-10 21:19 ` [Cluster-devel] [PATCH] fs/gfs2/glock.h: Add __attribute__((format(printf, 2, 3)) to gfs2_print_dbg Joe Perches
2010-11-10 21:35 ` Steven Whitehouse
[not found] ` <AANLkTinhcbdm8YQOrFVdONODo6K6PcxHYtx5vqnap_3T@mail.gmail.com>
2010-11-10 23:01 ` [Cluster-devel] [PATCH 0/9] treewide: convert vprintk uses to %pV Joe Perches
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).