From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Berger Subject: Re: [PATCH] tpm: vtpm_proxy: Do not access host's event log Date: Fri, 18 Nov 2016 11:58:08 -0500 Message-ID: <8e1bea0b-5409-5b69-7ac1-1e3e29cc3da7@linux.vnet.ibm.com> References: <1479306245-14456-1-git-send-email-stefanb@linux.vnet.ibm.com> <20161116153731.pmmnxiai7ouuj6qf@intel.com> <3a38ddc6-1758-ae82-3df3-9cc55906880d@linux.vnet.ibm.com> <65f392b6-5141-c726-dacb-a1649ea215de@linux.vnet.ibm.com> <20161116200759.GA19593@obsidianresearch.com> <20161117203743.odzdpwwynzlqyt5m@intel.com> <77bf7806-5007-feb4-e4a0-fc94775a5271@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <77bf7806-5007-feb4-e4a0-fc94775a5271-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: tpmdd-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: Jarkko Sakkinen Cc: linux-acpi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-security-module-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: linux-acpi@vger.kernel.org On 11/18/2016 09:15 AM, Stefan Berger wrote: > On 11/18/2016 09:11 AM, Stefan Berger wrote: >> On 11/17/2016 03:37 PM, Jarkko Sakkinen wrote: >>> On Thu, Nov 17, 2016 at 07:35:05AM -0500, Stefan Berger wrote: >>>> On 11/16/2016 03:07 PM, Jason Gunthorpe wrote: >>>>> On Wed, Nov 16, 2016 at 12:07:23PM -0500, Stefan Berger wrote: >>>>>> The culprit seems to be 'tpm: fix the missing .owner in >>>>>> tpm_bios_measurements_ops' >>>>> That is unlikely, it is probably the patch before which calls >>>>> read_log >>>>> unconditionally now. That suggests the crashing is a little random.. >>>> I ran the vtpm driver test suite (with -j32) a few times at that >>>> patch and >>>> it didn't crash. It crashes severely with later patches applied. >>>> Here's the >>>> current experimental patch that fixes these problems: >>>> >>>> iff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c >>>> index 0cb43ef..a73295a 100644 >>>> --- a/drivers/char/tpm/tpm_acpi.c >>>> +++ b/drivers/char/tpm/tpm_acpi.c >>>> @@ -56,6 +56,9 @@ int tpm_read_log_acpi(struct tpm_chip *chip) >>>> >>>> log = &chip->log; >>>> >>>> + if (!chip->acpi_dev_handle) >>>> + return 0; >>>> + >>> If there is a problem in the TPM driver, this does not fix the >>> problem. It will mask the problem. Maybe there's an ACPI regression >>> in the rc tree? >> >> Following the path from here : >> >> http://lxr.free-electrons.com/source/drivers/acpi/acpica/tbxface.c#L282 >> >> acpi_get_table_with_size -> acpi_tb_validate_table -> >> acpi_tb_acquire_table >> >> I see acpi_os_map_memory being called in acpi_tb_acquire_table but >> not the corresponding acpi_os_unmap_memory... >> > > And to add to this: the call to acpi_get_table() in tpm_acpi.c alone > is causing the crash. I am fairly sure that it has something to do > with the memory mapping call above not being matched by an unmapping > call. Have to take that all back. This is not the reason. What seems to be the reason is just the acpi_os_map_iomem() call. Without calling the acpi_os_unmap_iomem() later on, which I assume should be allowed, the driver will crash when the device terminates. Stefan > > >> Stefan >> >> >>> >>> This is a funky situation because those lines need to be there but >>> I do not want them before it is root caused that it is not a TPM >>> bug. >>> >>> /Jarkko >>> >> > ------------------------------------------------------------------------------