Re: [PATCH] tpm: Detach page allocation from tpm_buf

From: Jarkko Sakkinen
Date: Fri Sep 27 2019 - 09:07:10 EST


On Wed, Sep 25, 2019 at 10:03:46AM -0400, James Bottomley wrote:
> On Wed, 2019-09-25 at 16:48 +0300, Jarkko Sakkinen wrote:
> [...]
> > + data_page = alloc_page(GFP_HIGHUSER);
> > + if (!data_page)
> > + return -ENOMEM;
> > +
> > + data_ptr = kmap(data_page);
>
> I don't think this is such a good idea. On 64 bit it's no different
> from GFP_KERNEL and on 32 bit where we do have highmem, kmap space is
> at a premium, so doing a highmem allocation + kmap is more wasteful of
> resources than simply doing GFP_KERNEL. In general, you should only do
> GFP_HIGHMEM if the page is going to be mostly used by userspace, which
> really isn't the case here.

Changing that in this commit would be wrong even if you are right.
After this commit has been applied it is somewhat easier to make
best choices for allocation in each call site (probably most will
end up using stack).

/Jarkko