* [PATCH -next 0/2] seq: Convert seq_puts and seq_putc to return void @ 2014-11-10 18:58 Joe Perches 2014-11-10 18:58 ` [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too Joe Perches 0 siblings, 1 reply; 5+ messages in thread From: Joe Perches @ 2014-11-10 18:58 UTC (permalink / raw) To: Steven Rostedt, openipmi-developer, linux-parisc, linux-kernel, linux-watchdog, linux-fsdevel, netfilter-devel, coreteam Cc: Petr Mladek, linux-usb, netdev These are error prone, so return void adn use seq_has_overflowed instead Joe Perches (2): seq_puts: Convert to return void and convert uses too. seq_putc: Convert to return void and convert uses too. drivers/char/ipmi/ipmi_msghandler.c | 4 +- drivers/parisc/ccio-dma.c | 7 +- drivers/regulator/dbx500-prcmu.c | 21 ++---- drivers/usb/gadget/udc/goku_udc.c | 81 +++++++++++----------- drivers/watchdog/bcm_kona_wdt.c | 43 +++++++----- fs/seq_file.c | 26 +++---- include/linux/seq_file.h | 4 +- ipc/util.c | 6 +- .../netfilter/nf_conntrack_l3proto_ipv4_compat.c | 4 +- net/netfilter/nf_conntrack_expect.c | 4 +- 10 files changed, 105 insertions(+), 95 deletions(-) -- 2.1.2 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too. 2014-11-10 18:58 [PATCH -next 0/2] seq: Convert seq_puts and seq_putc to return void Joe Perches @ 2014-11-10 18:58 ` Joe Perches 2014-11-11 13:47 ` Petr Mladek 2014-11-12 15:25 ` Corey Minyard 0 siblings, 2 replies; 5+ messages in thread From: Joe Perches @ 2014-11-10 18:58 UTC (permalink / raw) To: Steven Rostedt, Corey Minyard, Alexander Viro, Pablo Neira Ayuso, Patrick McHardy, Jozsef Kadlecsik Cc: Hideaki YOSHIFUJI, netdev, James Morris, Petr Mladek, linux-kernel, coreteam, netfilter-devel, linux-fsdevel, Alexey Kuznetsov, openipmi-developer, David S. Miller Using the return value of seq_putc is error-prone, so make it return void instead. Reverse the logic in seq_putc to make it like seq_puts. Signed-off-by: Joe Perches <joe@perches.com> --- drivers/char/ipmi/ipmi_msghandler.c | 4 +++- fs/seq_file.c | 11 ++++++----- include/linux/seq_file.h | 2 +- net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c | 4 +++- net/netfilter/nf_conntrack_expect.c | 4 +++- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c index f816211..c12fb30 100644 --- a/drivers/char/ipmi/ipmi_msghandler.c +++ b/drivers/char/ipmi/ipmi_msghandler.c @@ -1953,7 +1953,9 @@ static int smi_ipmb_proc_show(struct seq_file *m, void *v) seq_printf(m, "%x", intf->channels[0].address); for (i = 1; i < IPMI_MAX_CHANNELS; i++) seq_printf(m, " %x", intf->channels[i].address); - return seq_putc(m, '\n'); + seq_putc(m, '\n'); + + return 0; } static int smi_ipmb_proc_open(struct inode *inode, struct file *file) diff --git a/fs/seq_file.c b/fs/seq_file.c index e6be05a..5ca5af9 100644 --- a/fs/seq_file.c +++ b/fs/seq_file.c @@ -673,13 +673,14 @@ int seq_open_private(struct file *filp, const struct seq_operations *ops, } EXPORT_SYMBOL(seq_open_private); -int seq_putc(struct seq_file *m, char c) +void seq_putc(struct seq_file *m, char c) { - if (m->count < m->size) { - m->buf[m->count++] = c; - return 0; + if (m->count >= m->size) { + seq_set_overflow(m); + return; } - return -1; + + m->buf[m->count++] = c; } EXPORT_SYMBOL(seq_putc); diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 9b02cb6..c1e47ff 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h @@ -115,7 +115,7 @@ ssize_t seq_read(struct file *, char __user *, size_t, loff_t *); loff_t seq_lseek(struct file *, loff_t, int); int seq_release(struct inode *, struct file *); int seq_escape(struct seq_file *, const char *, const char *); -int seq_putc(struct seq_file *m, char c); +void seq_putc(struct seq_file *m, char c); void seq_puts(struct seq_file *m, const char *s); int seq_write(struct seq_file *seq, const void *data, size_t len); diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c index a460a87..f0dfe92 100644 --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c @@ -300,7 +300,9 @@ static int exp_seq_show(struct seq_file *s, void *v) __nf_ct_l3proto_find(exp->tuple.src.l3num), __nf_ct_l4proto_find(exp->tuple.src.l3num, exp->tuple.dst.protonum)); - return seq_putc(s, '\n'); + seq_putc(s, '\n'); + + return 0; } static const struct seq_operations exp_seq_ops = { diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c index 91a1837..7a17070 100644 --- a/net/netfilter/nf_conntrack_expect.c +++ b/net/netfilter/nf_conntrack_expect.c @@ -561,7 +561,9 @@ static int exp_seq_show(struct seq_file *s, void *v) helper->expect_policy[expect->class].name); } - return seq_putc(s, '\n'); + seq_putc(s, '\n'); + + return 0; } static const struct seq_operations exp_seq_ops = { -- 2.1.2 ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too. 2014-11-10 18:58 ` [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too Joe Perches @ 2014-11-11 13:47 ` Petr Mladek 2014-11-12 12:29 ` Pablo Neira Ayuso 2014-11-12 15:25 ` Corey Minyard 1 sibling, 1 reply; 5+ messages in thread From: Petr Mladek @ 2014-11-11 13:47 UTC (permalink / raw) To: Joe Perches Cc: Steven Rostedt, Corey Minyard, Alexander Viro, Pablo Neira Ayuso, Patrick McHardy, Jozsef Kadlecsik, David S. Miller, Alexey Kuznetsov, James Morris, Hideaki YOSHIFUJI, openipmi-developer, linux-kernel, linux-fsdevel, netfilter-devel, coreteam, netdev On Mon 2014-11-10 10:58:57, Joe Perches wrote: > Using the return value of seq_putc is error-prone, so > make it return void instead. > > Reverse the logic in seq_putc to make it like seq_puts. > > Signed-off-by: Joe Perches <joe@perches.com> Reviewed-by: Petr Mladek <pmladek@suse.cz> The changes are correct. The show() functions should return 0 even when there is an overflow. They are called by traverse() from seq_read() that might increase the buffer size and try again. Best Regards, Petr ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too. 2014-11-11 13:47 ` Petr Mladek @ 2014-11-12 12:29 ` Pablo Neira Ayuso 0 siblings, 0 replies; 5+ messages in thread From: Pablo Neira Ayuso @ 2014-11-12 12:29 UTC (permalink / raw) To: Petr Mladek Cc: Joe Perches, Steven Rostedt, Corey Minyard, Alexander Viro, Patrick McHardy, Jozsef Kadlecsik, David S. Miller, Alexey Kuznetsov, James Morris, Hideaki YOSHIFUJI, openipmi-developer, linux-kernel, linux-fsdevel, netfilter-devel, coreteam, netdev On Tue, Nov 11, 2014 at 02:47:40PM +0100, Petr Mladek wrote: > On Mon 2014-11-10 10:58:57, Joe Perches wrote: > > Using the return value of seq_putc is error-prone, so > > make it return void instead. > > > > Reverse the logic in seq_putc to make it like seq_puts. > > > > Signed-off-by: Joe Perches <joe@perches.com> > > Reviewed-by: Petr Mladek <pmladek@suse.cz> > > The changes are correct. The show() functions should return 0 > even when there is an overflow. They are called by traverse() > from seq_read() that might increase the buffer size and try again. Just in case you need this for the netfilter chunks: Acked-by: Pablo Neira Ayuso <pablo@netfilter.org> Thanks. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too. 2014-11-10 18:58 ` [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too Joe Perches 2014-11-11 13:47 ` Petr Mladek @ 2014-11-12 15:25 ` Corey Minyard 1 sibling, 0 replies; 5+ messages in thread From: Corey Minyard @ 2014-11-12 15:25 UTC (permalink / raw) To: Joe Perches, Steven Rostedt, Alexander Viro, Pablo Neira Ayuso, Patrick McHardy, Jozsef Kadlecsik Cc: Hideaki YOSHIFUJI, netdev, James Morris, Petr Mladek, linux-kernel, coreteam, netfilter-devel, linux-fsdevel, Alexey Kuznetsov, openipmi-developer, David S. Miller Ok by me for the IPMI part. Reviewed-by: Corey Minyard <cminyard@mvista.com> On 11/10/2014 12:58 PM, Joe Perches wrote: > Using the return value of seq_putc is error-prone, so > make it return void instead. > > Reverse the logic in seq_putc to make it like seq_puts. > > Signed-off-by: Joe Perches <joe@perches.com> > --- > drivers/char/ipmi/ipmi_msghandler.c | 4 +++- > fs/seq_file.c | 11 ++++++----- > include/linux/seq_file.h | 2 +- > net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c | 4 +++- > net/netfilter/nf_conntrack_expect.c | 4 +++- > 5 files changed, 16 insertions(+), 9 deletions(-) > > diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c > index f816211..c12fb30 100644 > --- a/drivers/char/ipmi/ipmi_msghandler.c > +++ b/drivers/char/ipmi/ipmi_msghandler.c > @@ -1953,7 +1953,9 @@ static int smi_ipmb_proc_show(struct seq_file *m, void *v) > seq_printf(m, "%x", intf->channels[0].address); > for (i = 1; i < IPMI_MAX_CHANNELS; i++) > seq_printf(m, " %x", intf->channels[i].address); > - return seq_putc(m, '\n'); > + seq_putc(m, '\n'); > + > + return 0; > } > > static int smi_ipmb_proc_open(struct inode *inode, struct file *file) > diff --git a/fs/seq_file.c b/fs/seq_file.c > index e6be05a..5ca5af9 100644 > --- a/fs/seq_file.c > +++ b/fs/seq_file.c > @@ -673,13 +673,14 @@ int seq_open_private(struct file *filp, const struct seq_operations *ops, > } > EXPORT_SYMBOL(seq_open_private); > > -int seq_putc(struct seq_file *m, char c) > +void seq_putc(struct seq_file *m, char c) > { > - if (m->count < m->size) { > - m->buf[m->count++] = c; > - return 0; > + if (m->count >= m->size) { > + seq_set_overflow(m); > + return; > } > - return -1; > + > + m->buf[m->count++] = c; > } > EXPORT_SYMBOL(seq_putc); > > diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h > index 9b02cb6..c1e47ff 100644 > --- a/include/linux/seq_file.h > +++ b/include/linux/seq_file.h > @@ -115,7 +115,7 @@ ssize_t seq_read(struct file *, char __user *, size_t, loff_t *); > loff_t seq_lseek(struct file *, loff_t, int); > int seq_release(struct inode *, struct file *); > int seq_escape(struct seq_file *, const char *, const char *); > -int seq_putc(struct seq_file *m, char c); > +void seq_putc(struct seq_file *m, char c); > void seq_puts(struct seq_file *m, const char *s); > int seq_write(struct seq_file *seq, const void *data, size_t len); > > diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c > index a460a87..f0dfe92 100644 > --- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c > +++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c > @@ -300,7 +300,9 @@ static int exp_seq_show(struct seq_file *s, void *v) > __nf_ct_l3proto_find(exp->tuple.src.l3num), > __nf_ct_l4proto_find(exp->tuple.src.l3num, > exp->tuple.dst.protonum)); > - return seq_putc(s, '\n'); > + seq_putc(s, '\n'); > + > + return 0; > } > > static const struct seq_operations exp_seq_ops = { > diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c > index 91a1837..7a17070 100644 > --- a/net/netfilter/nf_conntrack_expect.c > +++ b/net/netfilter/nf_conntrack_expect.c > @@ -561,7 +561,9 @@ static int exp_seq_show(struct seq_file *s, void *v) > helper->expect_policy[expect->class].name); > } > > - return seq_putc(s, '\n'); > + seq_putc(s, '\n'); > + > + return 0; > } > > static const struct seq_operations exp_seq_ops = { ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2014-11-12 15:25 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-11-10 18:58 [PATCH -next 0/2] seq: Convert seq_puts and seq_putc to return void Joe Perches 2014-11-10 18:58 ` [PATCH -next 2/2] seq_putc: Convert to return void and convert uses too Joe Perches 2014-11-11 13:47 ` Petr Mladek 2014-11-12 12:29 ` Pablo Neira Ayuso 2014-11-12 15:25 ` Corey Minyard
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).