lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <33023105.nPHO1iFLPA@vostro.rjw.lan>
Date:	Tue, 12 Jan 2016 21:11:15 +0100
From:	"Rafael J. Wysocki" <rjw@...ysocki.net>
To:	Grygorii Strashko <grygorii.strashko@...com>
Cc:	kernel test robot <ying.huang@...ux.intel.com>,
	Grygorii Strashko <grygorii.Strashko@...com>,
	"Rafael J. Wysocki" <rafael.j.wysocki@...el.com>,
	Dmitry Torokhov <dmitry.torokhov@...il.com>, lkp@...org,
	LKML <linux-kernel@...r.kernel.org>, Pavel Machek <pavel@....cz>,
	Alan Stern <stern@...land.harvard.edu>,
	linux-input@...r.kernel.org
Subject: Re: [lkp] [PM / sleep] 013c074f86: [drm:intel_opregion_init [i915]] *ERROR* No ACPI video bus found

On Tuesday, January 12, 2016 08:38:57 PM Grygorii Strashko wrote:
> Hi All,
> 
> Cc: more people + linux-input@...r.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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ