Messages in this thread | | | Subject | Re: [tpmdd-devel] [PATCH RFC 2/4] tpm: validate TPM 2.0 commands | From | James Bottomley <> | Date | Wed, 04 Jan 2017 10:19:36 -0800 |
| |
On Wed, 2017-01-04 at 13:04 -0500, Stefan Berger wrote: > Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> wrote on 01/02/2017 > 08:22:08 AM: > > > --- a/drivers/char/tpm/tpm2-cmd.c > > +++ b/drivers/char/tpm/tpm2-cmd.c > > @@ -943,7 +943,9 @@ EXPORT_SYMBOL_GPL(tpm2_probe); > > */ > > int tpm2_auto_startup(struct tpm_chip *chip) > > { > > + u32 nr_commands; > > int rc; > > + int i; > > > > rc = tpm_get_timeouts(chip); > > if (rc) > > @@ -967,8 +969,49 @@ int tpm2_auto_startup(struct tpm_chip *chip) > > } > > } > > > > + rc = tpm2_get_tpm_pt(chip, TPM_PT_TOTAL_COMMANDS, &nr_commands, > NULL); > > + if (rc) > > + return rc; > > + > > + chip->cc_attrs_tbl = devm_kzalloc(&chip->dev, 4 * nr_commands, > > + GFP_KERNEL); > > For some reason this devm_kzalloc bombs for the vtpm proxy driver. > The only reason I could come up with is that it's being called before > tpm_add_char_device() has been called.
No, it should be sufficient that chip->dev be initialized (which it is in tpm_chip_alloc()). What's the error you're getting?
It does look like the intention was to have non-devm with tpm_chip_alloc() and devm with tpmm_chip_alloc(), but devm_kzalloc should just work regardless because it's tied to the device model.
James
| |