Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1323193ybz; Thu, 16 Apr 2020 07:12:56 -0700 (PDT) X-Google-Smtp-Source: APiQypKkmKyXNYd51wHxC5wIzIXtB0wRKr8FSY0R4JBpeU+NAtSmMlyawxt4bRnTAj37ey77/Mlm X-Received: by 2002:a50:a9c4:: with SMTP id n62mr28715450edc.267.1587046376113; Thu, 16 Apr 2020 07:12:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587046376; cv=none; d=google.com; s=arc-20160816; b=v69MiXhXMAALFx0jYrVeraQNFSbpiiQRNHTVDKB8EdkNzYNoHiLFH15fSMkFz4I25n BdTbw4ZOwWCpM7iR96XJ2359CoV1kVWoehWYk/XCknoEdTJeVTysvFDYt9pg52+NZz6W cBv40thGFiBKoALDStwxA2CpJV+fMl+nuOG78H58DWf3tFXLzTVeLOeELA0PkTGS15Nt 455rba/K+MY52VrTemeVhh7XG6/OX7ARosOeHL3kQWAmQ7SpIZjlUJBP9ZZolxW4b4Z3 QeqXECkpb+f9KBjV3oiGBwAIBi0QS2vmm5cFRLE4O/5Wo5AlESGol3aP2cZNNoaduuJp fztw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=wjtaBNUQkil8PX4CJIOvTOnKEUkK+BNXSMabsyLpzzI=; b=JqjHjCleWwxVPxZrXSySo3KLtyslu/GrqKsEuXG4x+8w4b70kMGvOMl0qXeyQvBCjb adfLieZhYwo0v2nTOhD73v/hxIxzr3vHegOpz2RIzymcu7IdLLSauZF+uir4IMv2MYRF VEcDwXxXnXAV7DVSCL9dRBTsMr5fiZDMPfB2DTpsT2T9b0kL41ppe9OJfQmuZmpQ/hZA 1iCDrMVUa5OnQKiQjeBI3OYaU44HH7mCokCIh2a+qkmrLZ9ti0StQpxC85FRc2JSYU0j N7+NmOqYTV9ItZufPPm0Pxf2HTk1iTGbQf+Md+7yG2+CdNGXQjkvR5CBBXLpo6mKgHOr ixhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Dlhz9CVN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l1si13588425edq.314.2020.04.16.07.12.29; Thu, 16 Apr 2020 07:12:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Dlhz9CVN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729771AbgDPOKV (ORCPT + 99 others); Thu, 16 Apr 2020 10:10:21 -0400 Received: from mail.kernel.org ([198.145.29.99]:60668 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2898602AbgDPNqf (ORCPT ); Thu, 16 Apr 2020 09:46:35 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C66712076D; Thu, 16 Apr 2020 13:46:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587044794; bh=jOJf9NsTJDTUkW+1fvcvFeXzB4s7OuLawGPer0rsobs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dlhz9CVNwqF8iOVS0AoR2EdrLj/oBXMS5qMtAc+x+nJFECNTfh3aJw9nclvfoinrZ FUWurYAL7IsIViyoYm8f7BJOWal/O7VisnKXKAEWGtpv+2aVH3dMm5Sttw5SPFaDJa peOfvFnL/zWeU9auJnzjTKdFo0q/sRKfHOaXBfPs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Matthew Garrett , Jerry Snitselaar , Jarkko Sakkinen Subject: [PATCH 5.4 105/232] tpm: Dont make log failures fatal Date: Thu, 16 Apr 2020 15:23:19 +0200 Message-Id: <20200416131328.251524823@linuxfoundation.org> X-Mailer: git-send-email 2.26.1 In-Reply-To: <20200416131316.640996080@linuxfoundation.org> References: <20200416131316.640996080@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Matthew Garrett commit 805fa88e0780b7ce1cc9b649dd91a0a7164c6eb4 upstream. If a TPM is in disabled state, it's reasonable for it to have an empty log. Bailing out of probe in this case means that the PPI interface isn't available, so there's no way to then enable the TPM from the OS. In general it seems reasonable to ignore log errors - they shouldn't interfere with any other TPM functionality. Signed-off-by: Matthew Garrett Cc: stable@vger.kernel.org # 4.19.x Reviewed-by: Jerry Snitselaar Reviewed-by: Jarkko Sakkinen Signed-off-by: Jarkko Sakkinen Signed-off-by: Greg Kroah-Hartman --- drivers/char/tpm/eventlog/common.c | 12 ++++-------- drivers/char/tpm/tpm-chip.c | 4 +--- drivers/char/tpm/tpm.h | 2 +- 3 files changed, 6 insertions(+), 12 deletions(-) --- a/drivers/char/tpm/eventlog/common.c +++ b/drivers/char/tpm/eventlog/common.c @@ -99,11 +99,8 @@ static int tpm_read_log(struct tpm_chip * * If an event log is found then the securityfs files are setup to * export it to userspace, otherwise nothing is done. - * - * Returns -ENODEV if the firmware has no event log or securityfs is not - * supported. */ -int tpm_bios_log_setup(struct tpm_chip *chip) +void tpm_bios_log_setup(struct tpm_chip *chip) { const char *name = dev_name(&chip->dev); unsigned int cnt; @@ -112,7 +109,7 @@ int tpm_bios_log_setup(struct tpm_chip * rc = tpm_read_log(chip); if (rc < 0) - return rc; + return; log_version = rc; cnt = 0; @@ -158,13 +155,12 @@ int tpm_bios_log_setup(struct tpm_chip * cnt++; } - return 0; + return; err: - rc = PTR_ERR(chip->bios_dir[cnt]); chip->bios_dir[cnt] = NULL; tpm_bios_log_teardown(chip); - return rc; + return; } void tpm_bios_log_teardown(struct tpm_chip *chip) --- a/drivers/char/tpm/tpm-chip.c +++ b/drivers/char/tpm/tpm-chip.c @@ -596,9 +596,7 @@ int tpm_chip_register(struct tpm_chip *c tpm_sysfs_add_device(chip); - rc = tpm_bios_log_setup(chip); - if (rc != 0 && rc != -ENODEV) - return rc; + tpm_bios_log_setup(chip); tpm_add_ppi(chip); --- a/drivers/char/tpm/tpm.h +++ b/drivers/char/tpm/tpm.h @@ -464,7 +464,7 @@ int tpm2_prepare_space(struct tpm_chip * int tpm2_commit_space(struct tpm_chip *chip, struct tpm_space *space, void *buf, size_t *bufsiz); -int tpm_bios_log_setup(struct tpm_chip *chip); +void tpm_bios_log_setup(struct tpm_chip *chip); void tpm_bios_log_teardown(struct tpm_chip *chip); int tpm_dev_common_init(void); void tpm_dev_common_exit(void);