Re: [tpmdd-devel] [PATCH] tpm_crb: fix: associate to the correct device

From: Jarkko Sakkinen
Date: Thu Feb 18 2016 - 15:11:41 EST


On Thu, Feb 18, 2016 at 11:03:31AM -0700, Jason Gunthorpe wrote:
> On Wed, Feb 17, 2016 at 01:23:31PM +0200, Jarkko Sakkinen wrote:
> > At the moment for tpm_crb /proc/iomem shows the HW interface and not the
> > device using the memory range. This patch fixes the issue by associating
> > memory mappings to the TPM character device.
> >
> > The end result is this:
> >
> > $ cat /proc/iomem|grep MSFT -A2
> > dbfff000-dbffffff : MSFT0101:00
> > dbfff000-dbffffff : tpm0
>
> Hmmm... This large patch basically changes devm_ioremap so it uses the
> tpm chip dev not the acpi_dev - which seems reasonable - however I
> notice lots of drivers do use the parent device..
>
> However, it will change the unwind ordering on remove.. And when we
> check if tpm_crb is OK on that point I see this bug:
>
> static int crb_acpi_remove(struct acpi_device *device)
> {
> [..]
> tpm_chip_unregister(chip);
> if (chip->flags & TPM_CHIP_FLAG_TPM2)
> tpm2_shutdown(chip, TPM2_SU_CLEAR);

Good catch, thanks!

/Jarkko