All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
To: Petr Mladek <pmladek@suse.com>
Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Shreyas Joshi <shreyas.joshi@biamp.com>,
	rostedt@goodmis.org, shreyasjoshi15@gmail.com,
	linux-kernel@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH] printk: handle blank console arguments passed in.
Date: Thu, 8 Oct 2020 21:20:42 +0900	[thread overview]
Message-ID: <20201008122042.GB127397@jagdpanzerIV.localdomain> (raw)
In-Reply-To: <20201008085008.GA16837@alley>

On (20/10/08 10:50), Petr Mladek wrote:
> On Wed 2020-10-07 21:30:44, Sergey Senozhatsky wrote:
> > On (20/10/07 09:28), Petr Mladek wrote:
> > > 
> > > 		/*
> > > 		 * Dirty hack to prevent using any console with tty
> > > 		 * binding as a fallback and adding the empty
> > > 		 * name into console_cmdline array.
> > > 		 */
> > > 		preferred_console = MAX_CMDLINECONSOLES;
> > 
> > Let me dump my findings so far. I still don't understand what exactly
> > crashes the laptop (blank screen is not very helpful).
> > 
> > So, things start with the "preferred_console = -1". In console_setup()
> > we call __add_preferred_console(). Since we have no consoles, the
> > name matching loop is not executed, and console selection counter remains
> > at 0. After the loop, despite the fact that we don't have the console
> > (`name' is empty), we still set `preferred_console', to 0.
> 
> Heh, we actually add the console.

To the console drovers list? I don't think so. At least on my laptop
what I have is as follows:

	/* See if this console matches one we selected on the command line */
	err = try_enable_new_console(newcon, true);

	/* If not, try to match against the platform default(s) */
	if (err == -ENOENT)
		err = try_enable_new_console(newcon, false);

	/* printk() messages are not printed to the Braille console. */
	if (err || newcon->flags & CON_BRL)
		return;

We hit this error return. Because both try_enable_new_console() return
-ENOENT. So this is never executed

	...
	console_lock();
	if ((newcon->flags & CON_CONSDEV) || console_drivers == NULL) {
		newcon->next = console_drivers;
		console_drivers = newcon;
		if (newcon->next)
			newcon->next->flags &= ~CON_CONSDEV;
		/* Ensure this flag is always set for the head of the list */
		newcon->flags |= CON_CONSDEV;
	} else {
		newcon->next = console_drivers->next;
		console_drivers->next = newcon;
	}
	...

The console driver list is 0x00.

> I wonder if you see the problem solved by the commit 2d3145f8d2809592ef8
> ("early init: fix error handling when opening /dev/console").

/dev/console does exist. What does not exist is console driver, because
console drivers list is NULL. So the failure here is not filp_open()
per se, but tty_lookup_driver()->console_device(), which returns NULL.
As far as I'm concerned.

> I am also curious about the commit 74f1a299107b9e1a56 "Revert "fs:
> remove ksys_dup()"". I wonder why it was safe to call ksys_dup(0);
> even though the previous ksys_open() failed.

I'm quite sure ksys_dup(0) fails, in fact. I guess the issue here boils
down to user-space that does modprobe/fsck/mount and what kind of things
it attempts to do with standard file descriptors 0/1/2.

> PS: I am quite busy with something else this week.

Sure, no prob. Thanks.

	-ss

  reply	other threads:[~2020-10-08 12:20 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-09  5:29 [PATCH] printk: handle blank console arguments passed in Shreyas Joshi
2020-03-17  1:34 ` Shreyas Joshi
2020-03-17  1:39   ` Steven Rostedt
2020-03-17  2:01     ` Sergey Senozhatsky
2020-03-17  2:17       ` Shreyas Joshi
2020-03-17  8:22         ` Sergey Senozhatsky
2020-05-22  6:46   ` Shreyas Joshi
2020-05-22  6:53   ` Shreyas Joshi
2020-05-22 10:00     ` Petr Mladek
2020-10-06  2:59       ` Sergey Senozhatsky
2020-10-06  3:35         ` Guenter Roeck
2020-10-06  5:08           ` Greg Kroah-Hartman
2020-10-06 11:17             ` Guenter Roeck
2020-10-06  6:59           ` Sergey Senozhatsky
2020-10-06  9:54             ` Petr Mladek
2020-10-06 13:33               ` Sergey Senozhatsky
2020-10-06 14:22                 ` Guenter Roeck
2020-10-06 16:08                   ` Sergey Senozhatsky
2020-10-06  9:52           ` Petr Mladek
2020-10-06 10:45             ` Guenter Roeck
2020-10-06 13:43               ` Petr Mladek
2020-10-06 16:35                 ` Petr Mladek
2020-10-06 17:15                   ` Sergey Senozhatsky
2020-10-07  7:28                     ` Petr Mladek
2020-10-07 12:30                       ` Sergey Senozhatsky
2020-10-07 14:39                         ` Sergey Senozhatsky
2020-10-07 15:57                         ` Guenter Roeck
2020-10-07 16:29                           ` Sergey Senozhatsky
2020-10-08  5:52                             ` Sergey Senozhatsky
2020-10-08  9:01                               ` Petr Mladek
2020-10-08 10:56                                 ` Sergey Senozhatsky
2020-10-08 12:05                                 ` Sergey Senozhatsky
2020-10-22 11:38                               ` Petr Mladek
2020-10-22 13:32                                 ` Sergey Senozhatsky
2020-10-08  8:50                         ` Petr Mladek
2020-10-08 12:20                           ` Sergey Senozhatsky [this message]
2020-10-08 12:37                             ` Sergey Senozhatsky
2020-05-15 15:24 ` Petr Mladek
2020-05-20 11:50   ` Sergey Senozhatsky
2020-05-22  6:40     ` Shreyas Joshi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201008122042.GB127397@jagdpanzerIV.localdomain \
    --to=sergey.senozhatsky@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=shreyas.joshi@biamp.com \
    --cc=shreyasjoshi15@gmail.com \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.