Re: [PATCH v4] tpm_crb: fix fTPM on AMD Zen+ CPUs

From: Vanya Lazeev
Date: Tue Sep 17 2019 - 16:54:19 EST


On Tue, Sep 17, 2019 at 10:10:13PM +0300, Jarkko Sakkinen wrote:
> On Mon, Sep 16, 2019 at 11:00:30PM +0300, Vanya Lazeev wrote:
> > On Mon, Sep 16, 2019 at 08:51:30AM +0300, Jarkko Sakkinen wrote:
> > > On Sat, Sep 14, 2019 at 08:17:44PM +0300, ivan.lazeev@xxxxxxxxx wrote:
> > > > + struct list_head acpi_resources, crb_resources;
> > >
> > > Please do not create crb_resources. I said this already last time.
> >
> > But then, if I'm not mistaken, it will be impossible to track pointers
> > to multiple remaped regions. In this particular case, it
> > doesn't matter, because both buffers are in different ACPI regions,
> > and using acpi_resources only to fix buffer will be enough.
> > However, this creates incosistency between single- and
> > multiple-region cases: in the latter iobase field of struct crb_priv
> > doesn't make any difference. Am I understanding the situation correctly?
> > Will such fix be ok?
>
> So why you need to track pointers other than in initialization as devm
> will take care of freeing them. Just trying to understand the problem.
>

We need to know, which ioremap'ed address assign to control area, command
and response buffer, based on which ACPI region contains each of them.
Is there any method of getting remapped address for the raw one after
resouce containing it has been allocated?
And what do you mean by initialization? crb_resources lives only in
crb_map_io, which seems to run only once.