From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752096AbcALUKp (ORCPT ); Tue, 12 Jan 2016 15:10:45 -0500 Received: from v094114.home.net.pl ([79.96.170.134]:64915 "HELO v094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1751302AbcALUKn (ORCPT ); Tue, 12 Jan 2016 15:10:43 -0500 From: "Rafael J. Wysocki" To: Grygorii Strashko Cc: kernel test robot , Grygorii Strashko , "Rafael J. Wysocki" , Dmitry Torokhov , lkp@01.org, LKML , Pavel Machek , Alan Stern , linux-input@vger.kernel.org Subject: Re: [lkp] [PM / sleep] 013c074f86: [drm:intel_opregion_init [i915]] *ERROR* No ACPI video bus found Date: Tue, 12 Jan 2016 21:11:15 +0100 Message-ID: <33023105.nPHO1iFLPA@vostro.rjw.lan> User-Agent: KMail/4.11.5 (Linux/4.4.0; KDE/4.11.5; x86_64; ; ) In-Reply-To: <56954841.3080004@ti.com> References: <871t9ub1l4.fsf@yhuang-dev.intel.com> <56954841.3080004@ti.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday, January 12, 2016 08:38:57 PM Grygorii Strashko wrote: > Hi All, > > Cc: more people + linux-input@vger.kernel.org > > On 01/07/2016 03:49 AM, kernel test robot wrote: > > FYI, we noticed the below changes on > > > > https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > > commit 013c074f8642d8e815ad670601f8e27155a74b57 ("PM / sleep: prohibit devices probing during suspend/hibernation") > > > > <4>[ 33.021805] serio serio0: device_attach() failed for isa0060/serio0 (i8042 KBD port), error: -517 > > <4>[ 33.021813] serio serio1: device_attach() failed for isa0060/serio1 (i8042 AUX port), error: -517 > > <6>[ 33.021906] PM: resume of devices complete after 171.688 msecs > > > > To reproduce: > > > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/wfg/lkp-tests.git > > cd lkp-tests > > bin/lkp install job.yaml # job file is attached in this email > > bin/lkp run job.yaml > > I've done some investigation of the above log output: > 1) Small introduction first: commit 013c074f8642 was created, because it was identified > that it's unsafe to bind/probe drivers during suspend resume, mainly because this will > cause changing of pointers on PM data structures on the fly for devices which already > tracked by Suspend core. > > 2) above log prints can be generated by the below call chain (I've checked the code only): > > drivers/input/serio/serio.c > serio_resume() > - serio_queue_event(serio, NULL, SERIO_RECONNECT_PORT) > - queue_work(system_long_wq, &serio_event_work); > .... > - serio_handle_event() > - serio_reconnect_port() > - serio_reconnect_driver() --- return <0 > > - serio_disconnect_port() > - device_release_driver() --- unbind > - serio_find_driver() > error = device_attach(&serio->dev); > if (error < 0) > dev_warn(&serio->dev, > "device_attach() failed for %s (%s), error: %d\n", > serio->phys, serio->name, error); > > device_attach() will return -EPROBE_DEFER(-517) because the device probing is not allowed yet. > > As per my understanding (and it's not clear from issue description), above situation > should not break functionality of the system - just device's probe will be delayed till the > end of dpm_complete(). So, I propose consider the option - do not print above warnings if > return code from device_attach() is -EPROBE_DEFER. This looks like a reasonable thing to do to me. > diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c > index 8f82897..1ca7f55 100644 > --- a/drivers/input/serio/serio.c > +++ b/drivers/input/serio/serio.c > @@ -134,7 +134,7 @@ static void serio_find_driver(struct serio *serio) > int error; > > error = device_attach(&serio->dev); > - if (error < 0) > + if (error < 0 && error != -EPROBE_DEFER) > dev_warn(&serio->dev, > "device_attach() failed for %s (%s), error: %d\n", > serio->phys, serio->name, error); > > > [1] https://lkml.org/lkml/2015/9/11/554 Thanks, Rafael