2015-05-22 17:23:19

by Hon Ching(Vicky) Lo

[permalink] [raw]
Subject: [PATCH] vTPM: set virtual device before passing to ibmvtpm_reset_crq

tpm_ibmvtpm_probe() calls ibmvtpm_reset_crq(ibmvtpm) without having yet
set the virtual device in the ibmvtpm structure. So in ibmvtpm_reset_crq,
the phype call contains empty unit addresses, ibmvtpm->vdev->unit_address.

Signed-off-by: Hon Ching(Vicky) Lo <[email protected]>
Signed-off-by: Joy Latten <[email protected]>
---
drivers/char/tpm/tpm_ibmvtpm.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/char/tpm/tpm_ibmvtpm.c b/drivers/char/tpm/tpm_ibmvtpm.c
index 42ffa5e..27ebf95 100644
--- a/drivers/char/tpm/tpm_ibmvtpm.c
+++ b/drivers/char/tpm/tpm_ibmvtpm.c
@@ -578,6 +578,9 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
goto cleanup;
}

+ ibmvtpm->dev = dev;
+ ibmvtpm->vdev = vio_dev;
+
crq_q = &ibmvtpm->crq_queue;
crq_q->crq_addr = (struct ibmvtpm_crq *)get_zeroed_page(GFP_KERNEL);
if (!crq_q->crq_addr) {
@@ -622,8 +625,6 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,

crq_q->index = 0;

- ibmvtpm->dev = dev;
- ibmvtpm->vdev = vio_dev;
TPM_VPRIV(chip) = (void *)ibmvtpm;

spin_lock_init(&ibmvtpm->rtce_lock);
--
1.7.1


2015-06-02 05:50:55

by Ashley Lai

[permalink] [raw]
Subject: Re: [PATCH] vTPM: set virtual device before passing to ibmvtpm_reset_crq

Thanks for the patch. Looks good to me.

Reviewed-by: Ashley Lai <[email protected]>

--Ashley Lai

On Fri, 22 May 2015, Hon Ching(Vicky) Lo wrote:

> tpm_ibmvtpm_probe() calls ibmvtpm_reset_crq(ibmvtpm) without having yet
> set the virtual device in the ibmvtpm structure. So in ibmvtpm_reset_crq,
> the phype call contains empty unit addresses, ibmvtpm->vdev->unit_address.
>
> Signed-off-by: Hon Ching(Vicky) Lo <[email protected]>
> Signed-off-by: Joy Latten <[email protected]>
> ---
> drivers/char/tpm/tpm_ibmvtpm.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/tpm/tpm_ibmvtpm.c b/drivers/char/tpm/tpm_ibmvtpm.c
> index 42ffa5e..27ebf95 100644
> --- a/drivers/char/tpm/tpm_ibmvtpm.c
> +++ b/drivers/char/tpm/tpm_ibmvtpm.c
> @@ -578,6 +578,9 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
> goto cleanup;
> }
>
> + ibmvtpm->dev = dev;
> + ibmvtpm->vdev = vio_dev;
> +
> crq_q = &ibmvtpm->crq_queue;
> crq_q->crq_addr = (struct ibmvtpm_crq *)get_zeroed_page(GFP_KERNEL);
> if (!crq_q->crq_addr) {
> @@ -622,8 +625,6 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
>
> crq_q->index = 0;
>
> - ibmvtpm->dev = dev;
> - ibmvtpm->vdev = vio_dev;
> TPM_VPRIV(chip) = (void *)ibmvtpm;
>
> spin_lock_init(&ibmvtpm->rtce_lock);
> --
> 1.7.1
>
>

2015-06-16 20:37:17

by Peter Huewe

[permalink] [raw]
Subject: Re: [PATCH] vTPM: set virtual device before passing to ibmvtpm_reset_crq

Hey,

Am Freitag, 22. Mai 2015, 19:23:02 schrieb Hon Ching(Vicky) Lo:
> tpm_ibmvtpm_probe() calls ibmvtpm_reset_crq(ibmvtpm) without having yet
> set the virtual device in the ibmvtpm structure. So in ibmvtpm_reset_crq,
> the phype call contains empty unit addresses, ibmvtpm->vdev->unit_address.
>
> Signed-off-by: Hon Ching(Vicky) Lo <[email protected]>
> Signed-off-by: Joy Latten <[email protected]>
> ---
> drivers/char/tpm/tpm_ibmvtpm.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/tpm/tpm_ibmvtpm.c
> b/drivers/char/tpm/tpm_ibmvtpm.c index 42ffa5e..27ebf95 100644
> --- a/drivers/char/tpm/tpm_ibmvtpm.c
> +++ b/drivers/char/tpm/tpm_ibmvtpm.c
> @@ -578,6 +578,9 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
> goto cleanup;
> }
>
> + ibmvtpm->dev = dev;
> + ibmvtpm->vdev = vio_dev;
> +
> crq_q = &ibmvtpm->crq_queue;
> crq_q->crq_addr = (struct ibmvtpm_crq *)get_zeroed_page(GFP_KERNEL);
> if (!crq_q->crq_addr) {
> @@ -622,8 +625,6 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
>
> crq_q->index = 0;
>
> - ibmvtpm->dev = dev;
> - ibmvtpm->vdev = vio_dev;
> TPM_VPRIV(chip) = (void *)ibmvtpm;
>
> spin_lock_init(&ibmvtpm->rtce_lock);

Is this a fix for something?
does it need to go through stable?

Thanks,
Peter

2015-06-16 21:19:52

by Hon Ching(Vicky) Lo

[permalink] [raw]
Subject: Re: [PATCH] vTPM: set virtual device before passing to ibmvtpm_reset_crq

Hi Peter,

Yes, it's a fix to a kernel dump caused by enabling both vtpm and kdump.


On Tue, 2015-06-16 at 22:37 +0200, Peter Hüwe wrote:
> Hey,
>
> Am Freitag, 22. Mai 2015, 19:23:02 schrieb Hon Ching(Vicky) Lo:
> > tpm_ibmvtpm_probe() calls ibmvtpm_reset_crq(ibmvtpm) without having yet
> > set the virtual device in the ibmvtpm structure. So in ibmvtpm_reset_crq,
> > the phype call contains empty unit addresses, ibmvtpm->vdev->unit_address.
> >
> > Signed-off-by: Hon Ching(Vicky) Lo <[email protected]>
> > Signed-off-by: Joy Latten <[email protected]>
> > ---
> > drivers/char/tpm/tpm_ibmvtpm.c | 5 +++--
> > 1 files changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/char/tpm/tpm_ibmvtpm.c
> > b/drivers/char/tpm/tpm_ibmvtpm.c index 42ffa5e..27ebf95 100644
> > --- a/drivers/char/tpm/tpm_ibmvtpm.c
> > +++ b/drivers/char/tpm/tpm_ibmvtpm.c
> > @@ -578,6 +578,9 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
> > goto cleanup;
> > }
> >
> > + ibmvtpm->dev = dev;
> > + ibmvtpm->vdev = vio_dev;
> > +
> > crq_q = &ibmvtpm->crq_queue;
> > crq_q->crq_addr = (struct ibmvtpm_crq *)get_zeroed_page(GFP_KERNEL);
> > if (!crq_q->crq_addr) {
> > @@ -622,8 +625,6 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev,
> >
> > crq_q->index = 0;
> >
> > - ibmvtpm->dev = dev;
> > - ibmvtpm->vdev = vio_dev;
> > TPM_VPRIV(chip) = (void *)ibmvtpm;
> >
> > spin_lock_init(&ibmvtpm->rtce_lock);
>
> Is this a fix for something?
> does it need to go through stable?
>
> Thanks,
> Peter
>