On 11/18/2016 12:03 AM, Jason Gunthorpe wrote: > On Thu, Nov 17, 2016 at 01:25:54PM -0500, Stefan Berger wrote: >> >> In the case of x86, tpm_read_log_of() is a stub return -ENODEV, which in >> turn fails the whole device: > > Somehow this got screwed up during the lengthy review. ENODEV is the > right return from the leaf routines but the tests in tpm_eventlog di > not get fixed:
Isn't the idea is that if event_log specific properties are not supported in ACPI/OF , then probe should continue except for ENOMEM/ENODEV error ? Error conditions from read_log_acpi()/read_log_of(): - rc = EIO (Probe continue) - TCPA is not supported/event log area empty/failed acpi_os_map_iomem/event log device tree properties not exist. This implies error log is not supported by the platform. - rc = ENOMEM (Probe fail) - event log is supported but kmalloc failed. - rc = ENODEV (Probe fail) - represents device not supported. I think because of assumption that if event log is not supported on ACPI, it might be OF platform and so do tpm_read_log_of(), the EIO error from tpm_read_log_acpi() is getting masked. Please let me know if I am missing something. > >> http://git.infradead.org/users/jjs/linux-tpmdd.git/blob/4d388433e85f8257f5a9344a7acf6f499ba2b29e:/drivers/char/tpm/tpm_eventlog.h#l87 > > Is wrong, should be: > > if (rc != -ENODEV) > return rc; Did you mean this check in tpm_chip_register() ? Thanks & Regards, - Nayna > > And the one in tpm_bios_log_setup should be > > if (rc != 0 && rc != -ENODEV) > return rc; > >> I think the OF log reading code will also need to check for chip->dev.parent >> being NULL. > > Currect! Lets get that fixed too. :( > >> Further, I had the impression that the error unwinding following -ENODEV has >> an issue related to sysfs. > > I don't follow this comment.. > > Jason > ------------------------------------------------------------------------------ _______________________________________________ tpmdd-devel mailing list tpmdd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tpmdd-devel