From: Lukas Wunner <lukas@wunner.de>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
linux-pci@vger.kernel.org, x86@kernel.org
Subject: Re: [PATCH v2] x86/platform/intel-mid: Retrofit pci_platform_pm_ops ->get_state hook
Date: Wed, 19 Oct 2016 20:04:02 +0200 [thread overview]
Message-ID: <20161019180402.GA3220@wunner.de> (raw)
In-Reply-To: <1476892081.11323.503.camel@linux.intel.com>
On Wed, Oct 19, 2016 at 06:48:01PM +0300, Andy Shevchenko wrote:
> On Wed, 2016-10-19 at 10:10 -0500, Bjorn Helgaas wrote:
> > On Sun, Oct 09, 2016 at 02:46:29PM +0200, Lukas Wunner wrote:
> > > Commit cc7cc02bada8 ("PCI: Query platform firmware for device power
> > > state") augmented struct pci_platform_pm_ops with a ->get_state hook
> > > and
> > > implemented it for acpi_pci_platform_pm, the only
> > > pci_platform_pm_ops
> > > existing till v4.7.
> > >
> > > However v4.8 introduced another pci_platform_pm_ops for Intel Mobile
> > > Internet Devices with commit 5823d0893ec2 ("x86/platform/intel-mid:
> > > Add
> > > Power Management Unit driver"). It is missing the ->get_state hook,
> > > which is fatal since pci_set_platform_pm() enforces its presence.
> >
> > I assume Andy tested 5823d0893ec2, so apparently "fatal" here doesn't
> > mean a panic on the MIDs? I'm wondering (1) exactly what the user-
> > visible failure mode is,
>
> Fatal means it crashes without even a character printed out on serial
> console and reboot (since watchdog).
>
> > and (2) whether there's anything we can do to
> > avoid omissions like this in the future.
>
> It happened because the feature was developed in PCI subsystem namespace
> (mailing lists, etc.) without knowing anything about new coming users. I
> have no idea how to avoid this except browsing / grepping linux-next on
> regular basis when developing either "feature" or "user" of the API in
> question.
Basically it was my fault because my development tree lags behind
mainline for technical reasons. I use ZFS for my root partition
and every new kernel release requires adjustments to the out-of-tree
ZoL. So before I can upgrade I have to either wait until the ZoL
folks make those adjustments or I have to make them myself (usually
I'm too lazy).
In this case I didn't rebase my tree on 4.8 until the merge window
for 4.9 had already opened, so I noticed the breakage fairly late.
However so far only 4.9-rc1 is broken and we still have like 7 weeks
to get the fix in.
> >
> > pci_set_platform_pm() does indeed return -EINVAL if it receives a
> > pci_platform_pm_ops with a NULL ops->get_state pointer, but
> > unfortunately neither of the callers checks that return code.
At least in the case of intel-mid it wouldn't matter if the return code
would be checked and passed up the call chain because the ultimate
callee, do_initcall_level(), doesn't check the return value of
do_one_initcall().
Perhaps the solution would be to not return -EINVAL but to throw a WARN
and limp on. That way the user or developer at least gets an error
message and knows what's wrong.
> > Fixes: 5823d0893ec2 ("x86/platform/intel-mid: Add Power Management
> > Unit driver")
> > Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> >
> > Sounds like this should be marked for stable, since v4.8 contains
> > 5823d0893ec2 and is apparently broken?
>
> At that point there was no "feature" commit in the tree. Perhaps the
> Fixes tag should point to the "feature" commit instead. Am I right,
> Lukas?
Right, the Fixes tag should be:
Fixes: cc7cc02bada8 ("PCI: Query platform firmware for device power state")
And this shouldn't get backported to 4.8, the issue is only present
in 4.9-rc1 so far.
@Ingo: Do you want me to repost with Bjorn's ack and the correct Fixes: tag?
Thanks!
Lukas
next prev parent reply other threads:[~2016-10-19 18:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-09 12:46 [PATCH v2] x86/platform/intel-mid: Retrofit pci_platform_pm_ops ->get_state hook Lukas Wunner
2016-10-09 15:01 ` Andy Shevchenko
2016-10-11 8:37 ` Ingo Molnar
2016-10-19 13:42 ` Andy Shevchenko
2016-10-19 15:10 ` Bjorn Helgaas
2016-10-19 15:48 ` Andy Shevchenko
2016-10-19 18:04 ` Lukas Wunner [this message]
2016-10-22 15:31 ` Andy Shevchenko
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=20161019180402.GA3220@wunner.de \
--to=lukas@wunner.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=helgaas@kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=x86@kernel.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.