All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Linux-pm mailing list <linux-pm@vger.kernel.org>,
	Kernel development list <linux-kernel@vger.kernel.org>
Subject: Crash introduced by commit b8b2c7d845d5 ("base/platform: assert that dev_pm_domain callbacks are called unconditionally")
Date: Tue, 19 Jan 2016 13:22:22 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.4.44L0.1601191312260.1312-100000@iolanthe.rowland.org> (raw)

Uwe:

Your commit causes my ASUS laptop to crash during early boot.  The 
problem occurs in platform_drv_probe(), affecting both the alarmtimer 
and the asus_laptop platform drivers (I can't tell which is the 
critical one).

The old code would not call platform_drv_probe() at all, and probing
would always succeed immediately because these drivers have no probe
routine.  But with the new code, platform_drv_probe() does run.  The
call to of_clk_set_defaults() returns -ENODEV, as does the call to
dev_pm_domain_attach().  The call to drv->probe() gets skipped, of 
course.  The final return value is -ENODEV, and so probing fails.  This 
causes the kernel to crash: blank screen, NumLock LED blinking.

The patch below fixes the problem, but I'm not sure that it's the best 
solution.  What is your advice?

Alan Stern



Index: usb-4.4/drivers/base/platform.c
===================================================================
--- usb-4.4.orig/drivers/base/platform.c
+++ usb-4.4/drivers/base/platform.c
@@ -524,6 +524,8 @@ static int platform_drv_probe(struct dev
 		ret = -ENXIO;
 	}
 
+	if (!drv->probe)
+		ret = 0;
 	return ret;
 }
 

             reply	other threads:[~2016-01-19 18:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-19 18:22 Alan Stern [this message]
2016-01-19 19:07 ` Crash introduced by commit b8b2c7d845d5 ("base/platform: assert that dev_pm_domain callbacks are called unconditionally") Uwe Kleine-König
2016-01-19 19:55   ` Greg Kroah-Hartman
2016-01-19 20:06   ` Alan Stern

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=Pine.LNX.4.44L0.1601191312260.1312-100000@iolanthe.rowland.org \
    --to=stern@rowland.harvard.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    /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.