From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757528AbcK3JOf (ORCPT ); Wed, 30 Nov 2016 04:14:35 -0500 Received: from mail-wm0-f68.google.com ([74.125.82.68]:33959 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757171AbcK3JOa (ORCPT ); Wed, 30 Nov 2016 04:14:30 -0500 Date: Wed, 30 Nov 2016 10:14:28 +0100 From: Michal Hocko To: Sebastian Duda Cc: linux-kernel@i4.cs.fau.de, Tobias Baumeister , Andrew Morton , Petr Mladek , Sergey Senozhatsky , Borislav Petkov , Tejun Heo , Thierry Reding , open list Subject: Re: [PATCH] printk.c: removed unnecessary code Message-ID: <20161130091427.GB18437@dhcp22.suse.cz> References: <1480432743-8049-1-git-send-email-sebastian.duda@fau.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1480432743-8049-1-git-send-email-sebastian.duda@fau.de> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [Resending with the full CC list as my email client has clobbered it in the previous attempt for some reason] On Tue 29-11-16 16:19:01, Sebastian Duda wrote: > snprintf((char *) ?, 0, ...); always returns Zero and doesn't change the data. > Thus the execution of > snprintf(NULL, 0, "[%5lu.000000] ", (unsigned long)ts); > has no effect on program. > The substitution with 0 increases the readability of the code. Are you sure this is correct. As per vsnprintf documentation: " * The return value is the number of characters which would * be generated for the given input, excluding the trailing * '\0', as per ISO C99. " this should just work as 35dac27cedd1 ("printk: fix incorrect length from print_time() when seconds > 99999") intended. I haven't checked the implementation though so I might be wrong here. > > Signed-off-by: Sebastian Duda > Signed-off-by: Tobias Baumeister > --- > kernel/printk/printk.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c > index 5028f4f..fe3fec1 100644 > --- a/kernel/printk/printk.c > +++ b/kernel/printk/printk.c > @@ -1186,7 +1186,7 @@ static size_t print_time(u64 ts, char *buf) > rem_nsec = do_div(ts, 1000000000); > > if (!buf) > - return snprintf(NULL, 0, "[%5lu.000000] ", (unsigned long)ts); > + return 0; > > return sprintf(buf, "[%5lu.%06lu] ", > (unsigned long)ts, rem_nsec / 1000); > -- > 2.7.4 -- Michal Hocko SUSE Labs