From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752978AbcBJQsT (ORCPT ); Wed, 10 Feb 2016 11:48:19 -0500 Received: from mx2.suse.de ([195.135.220.15]:35579 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752677AbcBJQsS (ORCPT ); Wed, 10 Feb 2016 11:48:18 -0500 Date: Wed, 10 Feb 2016 17:48:16 +0100 From: Petr Mladek To: Sergey Senozhatsky Cc: Andrew Morton , Jan Kara , Tejun Heo , Kyle McMartin , Dave Jones , Calvin Owens , linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: Re: [RFC][PATCH v3 1/4] printk: move can_use_console out of console_trylock_for_printk Message-ID: <20160210164816.GG12548@pathway.suse.cz> References: <1453536913-9545-1-git-send-email-sergey.senozhatsky@gmail.com> <1453536913-9545-2-git-send-email-sergey.senozhatsky@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1453536913-9545-2-git-send-email-sergey.senozhatsky@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat 2016-01-23 17:15:10, Sergey Senozhatsky wrote: > This patch moves can_use_console() check out of > console_trylock_for_printk(). Instead it calls it in > console_unlock(), so now console_lock()/console_unlock() are > also 'protected' by can_use_console(). > > Signed-off-by: Sergey Senozhatsky > --- > kernel/printk/printk.c | 86 ++++++++++++++++++++++++-------------------------- > 1 file changed, 42 insertions(+), 44 deletions(-) > > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c > index 7ebcfea..c39232a 100644 > --- a/kernel/printk/printk.c > +++ b/kernel/printk/printk.c > @@ -1519,21 +1492,7 @@ static inline int can_use_console(unsigned int cpu) > */ > static int console_trylock_for_printk(void) > { > - unsigned int cpu = smp_processor_id(); > - > - if (!console_trylock()) > - return 0; > - /* > - * If we can't use the console, we need to release the console > - * semaphore by hand to avoid flushing the buffer. We need to hold the > - * console semaphore in order to do this test safely. > - */ > - if (!can_use_console(cpu)) { > - console_locked = 0; > - up_console_sem(); > - return 0; > - } > - return 1; > + return console_trylock(); > } I would personally remove console_trylock_for_printk() already in this patch. I mean to fold the 3rd patch into this one. > int printk_delay_msec __read_mostly; > @@ -2247,9 +2233,21 @@ void console_unlock(void) > do_cond_resched = console_may_schedule; > console_may_schedule = 0; > > +again: > + /* > + * We released the console_sem lock, so we need to recheck if > + * cpu is online and (if not) is there at least one CON_ANYTIME > + * console. > + */ > + if (!can_use_console()) { > + console_locked = 0; > + up_console_sem(); > + return; > + } This is a bug fix and a nice clean up together. Reviewed-by: Petr Mladek Best Regards, Petr