From: kbuild test robot <lkp@intel.com>
To: Jordan Hand <jorhand@linux.microsoft.com>
Cc: kbuild-all@01.org, jarkko.sakkinen@linux.intel.com,
Jordan Hand <jorhand@linux.microsoft.com>,
Peter Huewe <peterhuewe@gmx.de>, Jason Gunthorpe <jgg@ziepe.ca>,
Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
Allison Randal <allison@lohutok.net>,
linux-integrity@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4] tpm: Parse event log from TPM2 ACPI table
Date: Sun, 1 Sep 2019 01:15:50 +0800 [thread overview]
Message-ID: <201909010121.fZZ3IMNY%lkp@intel.com> (raw)
In-Reply-To: <20190831051027.11544-1-jorhand@linux.microsoft.com>
[-- Attachment #1: Type: text/plain, Size: 4083 bytes --]
Hi Jordan,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on jss-tpmdd/next]
[cannot apply to v5.3-rc6 next-20190830]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Jordan-Hand/tpm-Parse-event-log-from-TPM2-ACPI-table/20190831-234702
base: git://git.infradead.org/users/jjs/linux-tpmdd next
config: x86_64-rhel (attached as .config)
compiler: gcc-7 (Debian 7.4.0-11) 7.4.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/char/tpm/eventlog/acpi.c: In function 'tpm_read_log_acpi':
>> drivers/char/tpm/eventlog/acpi.c:96:21: error: 'tpm2_trailer' is a pointer; did you mean to use '->'?
len = tpm2_trailer.minimum_log_length;
^
->
drivers/char/tpm/eventlog/acpi.c:97:23: error: 'tpm2_trailer' is a pointer; did you mean to use '->'?
start = tpm2_trailer.log_address;
^
->
vim +96 drivers/char/tpm/eventlog/acpi.c
43
44 /* If an event log is present, the TPM2 ACPI table will contain the full
45 * trailer
46 */
47
48 /* read binary bios log */
49 int tpm_read_log_acpi(struct tpm_chip *chip)
50 {
51 struct acpi_table_header *buff;
52 struct acpi_tcpa *tcpa;
53 struct acpi_tpm2_trailer *tpm2_trailer;
54 acpi_status status;
55 void __iomem *virt;
56 u64 len, start;
57 int log_type;
58 struct tpm_bios_log *log;
59 bool is_tpm2 = chip->flags & TPM_CHIP_FLAG_TPM2;
60 acpi_string table_sig;
61
62 log = &chip->log;
63
64 /* Unfortuntely ACPI does not associate the event log with a specific
65 * TPM, like PPI. Thus all ACPI TPMs will read the same log.
66 */
67 if (!chip->acpi_dev_handle)
68 return -ENODEV;
69
70 /* Find TCPA or TPM2 entry in RSDT (ACPI_LOGICAL_ADDRESSING) */
71 table_sig = is_tpm2 ? ACPI_SIG_TPM2 : ACPI_SIG_TCPA;
72 status = acpi_get_table(table_sig, 1, &buff);
73
74 if (ACPI_FAILURE(status))
75 return -ENODEV;
76
77 if (!is_tpm2) {
78 tcpa = (struct acpi_tcpa *)buff;
79 switch (tcpa->platform_class) {
80 case BIOS_SERVER:
81 len = tcpa->server.log_max_len;
82 start = tcpa->server.log_start_addr;
83 break;
84 case BIOS_CLIENT:
85 default:
86 len = tcpa->client.log_max_len;
87 start = tcpa->client.log_start_addr;
88 break;
89 }
90 log_type = EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2;
91 } else if (buff->length ==
92 sizeof(struct acpi_table_tpm2) +
93 sizeof(struct acpi_tpm2_trailer)) {
94 tpm2_trailer = (struct acpi_tpm2_trailer *)buff;
95
> 96 len = tpm2_trailer.minimum_log_length;
97 start = tpm2_trailer.log_address;
98 log_type = EFI_TCG2_EVENT_LOG_FORMAT_TCG_2;
99 } else {
100 return -ENODEV;
101 }
102
103 if (!len) {
104 dev_warn(&chip->dev, "%s: %s log area empty\n",
105 __func__, table_sig);
106 return -EIO;
107 }
108
109 /* malloc EventLog space */
110 log->bios_event_log = kmalloc(len, GFP_KERNEL);
111 if (!log->bios_event_log)
112 return -ENOMEM;
113
114 log->bios_event_log_end = log->bios_event_log + len;
115
116 virt = acpi_os_map_iomem(start, len);
117 if (!virt)
118 goto err;
119
120 memcpy_fromio(log->bios_event_log, virt, len);
121
122 acpi_os_unmap_iomem(virt, len);
123 return log_type;
124
125 err:
126 kfree(log->bios_event_log);
127 log->bios_event_log = NULL;
128 return -EIO;
129
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 43523 bytes --]
next prev parent reply other threads:[~2019-08-31 17:17 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-31 5:10 [PATCH v4] tpm: Parse event log from TPM2 ACPI table Jordan Hand
2019-08-31 17:15 ` kbuild test robot [this message]
2019-09-02 13:46 ` Jarkko Sakkinen
2019-09-03 18:27 ` Jerry Snitselaar
2019-09-03 19:15 ` Jordan Hand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201909010121.fZZ3IMNY%lkp@intel.com \
--to=lkp@intel.com \
--cc=allison@lohutok.net \
--cc=arnd@arndb.de \
--cc=gregkh@linuxfoundation.org \
--cc=jarkko.sakkinen@linux.intel.com \
--cc=jgg@ziepe.ca \
--cc=jorhand@linux.microsoft.com \
--cc=kbuild-all@01.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peterhuewe@gmx.de \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).