2014-12-02 19:22:44

by Ashley Lai

[permalink] [raw]
Subject: Re: [PATCH 1/2] tpm/tpm_ibmvtpm: Fail in ibmvtpm_get_data if driver_data is bad

> @@ -63,9 +63,9 @@ static int ibmvtpm_send_crq(struct vio_dev *vdev, u64 w1, u64 w2)
> static struct ibmvtpm_dev *ibmvtpm_get_data(const struct device *dev)
> {
> struct tpm_chip *chip = dev_get_drvdata(dev);
> - if (chip)
> - return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
> - return NULL;
> +
> + BUG_ON(!chip);

With the recent patch from Vicky, it is possible to have a NULL value for
chip which will trigger a false positive for BUG_ON(!chip).

> + return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
> }
>
> /**
>


2014-12-02 19:40:48

by Peter Huewe

[permalink] [raw]
Subject: Re: [PATCH 1/2] tpm/tpm_ibmvtpm: Fail in ibmvtpm_get_data if driver_data is bad

Hi,

so shall I apply this patch? or not?

Thanks,
Peter

Am Dienstag, 2. Dezember 2014, 20:22:35 schrieb Ashley Lai:
> > @@ -63,9 +63,9 @@ static int ibmvtpm_send_crq(struct vio_dev *vdev, u64
> > w1, u64 w2) static struct ibmvtpm_dev *ibmvtpm_get_data(const struct
> > device *dev) {
> >
> > struct tpm_chip *chip = dev_get_drvdata(dev);
> >
> > - if (chip)
> > - return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
> > - return NULL;
> > +
> > + BUG_ON(!chip);
>
> With the recent patch from Vicky, it is possible to have a NULL value for
> chip which will trigger a false positive for BUG_ON(!chip).
>
> > + return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
> > }
> >
> > /**

2014-12-02 20:09:56

by Ashley Lai

[permalink] [raw]
Subject: Re: [PATCH 1/2] tpm/tpm_ibmvtpm: Fail in ibmvtpm_get_data if driver_data is bad

I recommend not applying this patch until we hear back from IBM.

Thanks,
--Ashley

On Tue, 2 Dec 2014, Peter H?we wrote:

> Hi,
>
> so shall I apply this patch? or not?
>
> Thanks,
> Peter
>
> Am Dienstag, 2. Dezember 2014, 20:22:35 schrieb Ashley Lai:
>>> @@ -63,9 +63,9 @@ static int ibmvtpm_send_crq(struct vio_dev *vdev, u64
>>> w1, u64 w2) static struct ibmvtpm_dev *ibmvtpm_get_data(const struct
>>> device *dev) {
>>>
>>> struct tpm_chip *chip = dev_get_drvdata(dev);
>>>
>>> - if (chip)
>>> - return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
>>> - return NULL;
>>> +
>>> + BUG_ON(!chip);
>>
>> With the recent patch from Vicky, it is possible to have a NULL value for
>> chip which will trigger a false positive for BUG_ON(!chip).
>>
>>> + return (struct ibmvtpm_dev *)TPM_VPRIV(chip);
>>> }
>>>
>>> /**
>
>