linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [stable v4.4.y 1/2] mei: me: allow runtime pm for platform with D0i3
@ 2018-09-03 22:43 Tomas Winkler
  2018-09-03 22:43 ` [char-misc v4.4.y 2/2] mei: bus: type promotion bug in mei_nfc_if_version() Tomas Winkler
  0 siblings, 1 reply; 5+ messages in thread
From: Tomas Winkler @ 2018-09-03 22:43 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Alexander Usyskin, linux-kernel, Tomas Winkler, stable,
	Rafael J . Wysocki

commit cc365dcf0e56271bedf3de95f88922abe248e951 upstream.

>From the pci power documentation:
"The driver itself should not call pm_runtime_allow(), though. Instead,
it should let user space or some platform-specific code do that (user space
can do it via sysfs as stated above)..."

However, the S0ix residency cannot be reached without MEI device getting
into low power state. Hence, for mei devices that support D0i3, it's better
to make runtime power management mandatory and not rely on the system
integration such as udev rules.
This policy cannot be applied globally as some older platforms
were found to have broken power management.

Cc: <stable@vger.kernel.org> # 4.4
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Reviewed-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/misc/mei/pci-me.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
index adab5bbb642a..d5b84d68f988 100644
--- a/drivers/misc/mei/pci-me.c
+++ b/drivers/misc/mei/pci-me.c
@@ -230,8 +230,11 @@ static int mei_me_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (!pci_dev_run_wake(pdev))
 		mei_me_set_pm_domain(dev);
 
-	if (mei_pg_is_enabled(dev))
+	if (mei_pg_is_enabled(dev)) {
 		pm_runtime_put_noidle(&pdev->dev);
+		if (hw->d0i3_supported)
+			pm_runtime_allow(&pdev->dev);
+	}
 
 	dev_dbg(&pdev->dev, "initialization successful.\n");
 
-- 
2.14.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [char-misc v4.4.y 2/2] mei: bus: type promotion bug in mei_nfc_if_version()
  2018-09-03 22:43 [stable v4.4.y 1/2] mei: me: allow runtime pm for platform with D0i3 Tomas Winkler
@ 2018-09-03 22:43 ` Tomas Winkler
  2018-09-13 12:35   ` Greg Kroah-Hartman
  0 siblings, 1 reply; 5+ messages in thread
From: Tomas Winkler @ 2018-09-03 22:43 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Alexander Usyskin, linux-kernel, Dan Carpenter, stable, Tomas Winkler

From: Dan Carpenter <dan.carpenter@oracle.com>

commit b40b3e9358fbafff6a4ba0f4b9658f6617146f9c upstream

We accidentally removed the check for negative returns
without considering the issue of type promotion.
The "if_version_length" variable is type size_t so if __mei_cl_recv()
returns a negative then "bytes_recv" is type promoted
to a high positive value and treated as success.

Cc: <stable@vger.kernel.org> # 4.4
Fixes: 582ab27a063a ("mei: bus: fix received data size check in NFC fixup")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/misc/mei/bus-fixup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/misc/mei/bus-fixup.c b/drivers/misc/mei/bus-fixup.c
index bdc7fcd80eca..9dcdc6f41ceb 100644
--- a/drivers/misc/mei/bus-fixup.c
+++ b/drivers/misc/mei/bus-fixup.c
@@ -151,7 +151,7 @@ static int mei_nfc_if_version(struct mei_cl *cl,
 
 	ret = 0;
 	bytes_recv = __mei_cl_recv(cl, (u8 *)reply, if_version_length);
-	if (bytes_recv < if_version_length) {
+	if (bytes_recv < 0 || bytes_recv < if_version_length) {
 		dev_err(bus->dev, "Could not read IF version\n");
 		ret = -EIO;
 		goto err;
-- 
2.14.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [char-misc v4.4.y 2/2] mei: bus: type promotion bug in mei_nfc_if_version()
  2018-09-03 22:43 ` [char-misc v4.4.y 2/2] mei: bus: type promotion bug in mei_nfc_if_version() Tomas Winkler
@ 2018-09-13 12:35   ` Greg Kroah-Hartman
  2018-09-23  5:49     ` Winkler, Tomas
  0 siblings, 1 reply; 5+ messages in thread
From: Greg Kroah-Hartman @ 2018-09-13 12:35 UTC (permalink / raw)
  To: Tomas Winkler; +Cc: Alexander Usyskin, linux-kernel, Dan Carpenter, stable

On Tue, Sep 04, 2018 at 01:43:04AM +0300, Tomas Winkler wrote:
> From: Dan Carpenter <dan.carpenter@oracle.com>
> 
> commit b40b3e9358fbafff6a4ba0f4b9658f6617146f9c upstream
> 
> We accidentally removed the check for negative returns
> without considering the issue of type promotion.
> The "if_version_length" variable is type size_t so if __mei_cl_recv()
> returns a negative then "bytes_recv" is type promoted
> to a high positive value and treated as success.
> 
> Cc: <stable@vger.kernel.org> # 4.4

I also need a version of this patch for 4.18.y, 4.14.y, and 4.9.y before
I will consider adding it to 4.4.y, as we do not want anyone to ever get
a regression moving to a new kernel.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [char-misc v4.4.y 2/2] mei: bus: type promotion bug in mei_nfc_if_version()
  2018-09-13 12:35   ` Greg Kroah-Hartman
@ 2018-09-23  5:49     ` Winkler, Tomas
  2018-09-24 10:53       ` Greg Kroah-Hartman
  0 siblings, 1 reply; 5+ messages in thread
From: Winkler, Tomas @ 2018-09-23  5:49 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Usyskin, Alexander, linux-kernel, Dan Carpenter, stable

> 
> On Tue, Sep 04, 2018 at 01:43:04AM +0300, Tomas Winkler wrote:
> > From: Dan Carpenter <dan.carpenter@oracle.com>
> >
> > commit b40b3e9358fbafff6a4ba0f4b9658f6617146f9c upstream
> >
> > We accidentally removed the check for negative returns without
> > considering the issue of type promotion.
> > The "if_version_length" variable is type size_t so if __mei_cl_recv()
> > returns a negative then "bytes_recv" is type promoted to a high
> > positive value and treated as success.
> >
> > Cc: <stable@vger.kernel.org> # 4.4
> 
> I also need a version of this patch for 4.18.y, 4.14.y, and 4.9.y before I will
> consider adding it to 4.4.y, as we do not want anyone to ever get a
> regression moving to a new kernel.

Right, I've started from the wrong end. 
Now I've posted the patches for the rest of the required long running versions.

Thanks
Tomas


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [char-misc v4.4.y 2/2] mei: bus: type promotion bug in mei_nfc_if_version()
  2018-09-23  5:49     ` Winkler, Tomas
@ 2018-09-24 10:53       ` Greg Kroah-Hartman
  0 siblings, 0 replies; 5+ messages in thread
From: Greg Kroah-Hartman @ 2018-09-24 10:53 UTC (permalink / raw)
  To: Winkler, Tomas; +Cc: Usyskin, Alexander, linux-kernel, Dan Carpenter, stable

On Sun, Sep 23, 2018 at 05:49:02AM +0000, Winkler, Tomas wrote:
> > 
> > On Tue, Sep 04, 2018 at 01:43:04AM +0300, Tomas Winkler wrote:
> > > From: Dan Carpenter <dan.carpenter@oracle.com>
> > >
> > > commit b40b3e9358fbafff6a4ba0f4b9658f6617146f9c upstream
> > >
> > > We accidentally removed the check for negative returns without
> > > considering the issue of type promotion.
> > > The "if_version_length" variable is type size_t so if __mei_cl_recv()
> > > returns a negative then "bytes_recv" is type promoted to a high
> > > positive value and treated as success.
> > >
> > > Cc: <stable@vger.kernel.org> # 4.4
> > 
> > I also need a version of this patch for 4.18.y, 4.14.y, and 4.9.y before I will
> > consider adding it to 4.4.y, as we do not want anyone to ever get a
> > regression moving to a new kernel.
> 
> Right, I've started from the wrong end. 
> Now I've posted the patches for the rest of the required long running versions.

Thanks for all of these, now queued up.

greg k-h

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-09-24 10:53 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-03 22:43 [stable v4.4.y 1/2] mei: me: allow runtime pm for platform with D0i3 Tomas Winkler
2018-09-03 22:43 ` [char-misc v4.4.y 2/2] mei: bus: type promotion bug in mei_nfc_if_version() Tomas Winkler
2018-09-13 12:35   ` Greg Kroah-Hartman
2018-09-23  5:49     ` Winkler, Tomas
2018-09-24 10:53       ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).