Message ID | 1462980507-21682-1-git-send-email-stefanb@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Stefan, On Wed, May 11, 2016 at 11:28:27AM -0400, Stefan Berger wrote: > Fix the suspend regression due to the wrong way of retrieving the > chip structure. The suspend functions are attached to the hardware > device, not the chip and thus must rely on drvdata. > > Fixes: e89f8b1ade9cc1a ("tpm: Remove all uses of drvdata from the TPM Core") > Reported-by: Jeremiah Mahler <jmmahler@gmail.com> > Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> > Tested-by: Stefan Berger <stefanb@linux.vnet.ibm.com> > Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> > Tested-by: Jeremiah Mahler <jmmahler@gmail.com> > --- > drivers/char/tpm/tpm-interface.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c > index 080dade..5e3c1b6 100644 > --- a/drivers/char/tpm/tpm-interface.c > +++ b/drivers/char/tpm/tpm-interface.c > @@ -934,7 +934,7 @@ static struct tpm_input_header savestate_header = { > */ > int tpm_pm_suspend(struct device *dev) > { > - struct tpm_chip *chip = to_tpm_chip(dev); > + struct tpm_chip *chip = dev_get_drvdata(dev); > struct tpm_cmd_t cmd; > int rc, try; > > @@ -995,7 +995,7 @@ EXPORT_SYMBOL_GPL(tpm_pm_suspend); > */ > int tpm_pm_resume(struct device *dev) > { > - struct tpm_chip *chip = to_tpm_chip(dev); > + struct tpm_chip *chip = dev_get_drvdata(dev); > > if (chip == NULL) > return -ENODEV; > -- > 2.4.3 > The patch looks good, thanks :-)
On Wed, May 11, 2016 at 11:28:27AM -0400, Stefan Berger wrote: > Fix the suspend regression due to the wrong way of retrieving the > chip structure. The suspend functions are attached to the hardware > device, not the chip and thus must rely on drvdata. > > Fixes: e89f8b1ade9cc1a ("tpm: Remove all uses of drvdata from the TPM Core") > Reported-by: Jeremiah Mahler <jmmahler@gmail.com> > Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> > Tested-by: Stefan Berger <stefanb@linux.vnet.ibm.com> > Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> > Tested-by: Jeremiah Mahler <jmmahler@gmail.com> Acked-by: Jarkko Sakkinen <jarkko.sakkine@linux.intel.com> /Jarkko > --- > drivers/char/tpm/tpm-interface.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c > index 080dade..5e3c1b6 100644 > --- a/drivers/char/tpm/tpm-interface.c > +++ b/drivers/char/tpm/tpm-interface.c > @@ -934,7 +934,7 @@ static struct tpm_input_header savestate_header = { > */ > int tpm_pm_suspend(struct device *dev) > { > - struct tpm_chip *chip = to_tpm_chip(dev); > + struct tpm_chip *chip = dev_get_drvdata(dev); > struct tpm_cmd_t cmd; > int rc, try; > > @@ -995,7 +995,7 @@ EXPORT_SYMBOL_GPL(tpm_pm_suspend); > */ > int tpm_pm_resume(struct device *dev) > { > - struct tpm_chip *chip = to_tpm_chip(dev); > + struct tpm_chip *chip = dev_get_drvdata(dev); > > if (chip == NULL) > return -ENODEV; > -- > 2.4.3 > ------------------------------------------------------------------------------ Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
On Thu, May 12, 2016 at 04:49:52PM +0300, Jarkko Sakkinen wrote: > On Wed, May 11, 2016 at 11:28:27AM -0400, Stefan Berger wrote: > > Fix the suspend regression due to the wrong way of retrieving the > > chip structure. The suspend functions are attached to the hardware > > device, not the chip and thus must rely on drvdata. > > > > Fixes: e89f8b1ade9cc1a ("tpm: Remove all uses of drvdata from the TPM Core") > > Reported-by: Jeremiah Mahler <jmmahler@gmail.com> > > Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> > > Tested-by: Stefan Berger <stefanb@linux.vnet.ibm.com> > > Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> > > Tested-by: Jeremiah Mahler <jmmahler@gmail.com> > > Acked-by: Jarkko Sakkinen <jarkko.sakkine@linux.intel.com> Merged to next. /Jarkko > /Jarkko > > > --- > > drivers/char/tpm/tpm-interface.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c > > index 080dade..5e3c1b6 100644 > > --- a/drivers/char/tpm/tpm-interface.c > > +++ b/drivers/char/tpm/tpm-interface.c > > @@ -934,7 +934,7 @@ static struct tpm_input_header savestate_header = { > > */ > > int tpm_pm_suspend(struct device *dev) > > { > > - struct tpm_chip *chip = to_tpm_chip(dev); > > + struct tpm_chip *chip = dev_get_drvdata(dev); > > struct tpm_cmd_t cmd; > > int rc, try; > > > > @@ -995,7 +995,7 @@ EXPORT_SYMBOL_GPL(tpm_pm_suspend); > > */ > > int tpm_pm_resume(struct device *dev) > > { > > - struct tpm_chip *chip = to_tpm_chip(dev); > > + struct tpm_chip *chip = dev_get_drvdata(dev); > > > > if (chip == NULL) > > return -ENODEV; > > -- > > 2.4.3 > > ------------------------------------------------------------------------------ Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c index 080dade..5e3c1b6 100644 --- a/drivers/char/tpm/tpm-interface.c +++ b/drivers/char/tpm/tpm-interface.c @@ -934,7 +934,7 @@ static struct tpm_input_header savestate_header = { */ int tpm_pm_suspend(struct device *dev) { - struct tpm_chip *chip = to_tpm_chip(dev); + struct tpm_chip *chip = dev_get_drvdata(dev); struct tpm_cmd_t cmd; int rc, try; @@ -995,7 +995,7 @@ EXPORT_SYMBOL_GPL(tpm_pm_suspend); */ int tpm_pm_resume(struct device *dev) { - struct tpm_chip *chip = to_tpm_chip(dev); + struct tpm_chip *chip = dev_get_drvdata(dev); if (chip == NULL) return -ENODEV;