[v5,13/25] powerpc/secvar: Don't print error on ENOENT when reading variables

Message ID 20230131063928.388035-14-ajd@linux.ibm.com
State New
Headers
Series pSeries dynamic secure boot secvar interface + platform keyring loading |

Commit Message

Andrew Donnellan Jan. 31, 2023, 6:39 a.m. UTC
  If attempting to read the size or data attributes of a  non-existent
variable (which will be possible after a later patch to expose the PLPKS
via the secvar interface), don't spam the kernel log with error messages.
Only print errors for return codes that aren't ENOENT.

Reported-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>

---

v3: New patch
---
 arch/powerpc/kernel/secvar-sysfs.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Stefan Berger Jan. 31, 2023, 3:58 p.m. UTC | #1
On 1/31/23 01:39, Andrew Donnellan wrote:
> If attempting to read the size or data attributes of a  non-existent
> variable (which will be possible after a later patch to expose the PLPKS
> via the secvar interface), don't spam the kernel log with error messages.
> Only print errors for return codes that aren't ENOENT.
> 
> Reported-by: Sudhakar Kuppusamy <sudhakar@linux.ibm.com>
> Signed-off-by: Andrew Donnellan <ajd@linux.ibm.com>

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>

> 
> ---
> 
> v3: New patch
> ---
>   arch/powerpc/kernel/secvar-sysfs.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/secvar-sysfs.c b/arch/powerpc/kernel/secvar-sysfs.c
> index 9b6be63b7b36..ca3df3f7156c 100644
> --- a/arch/powerpc/kernel/secvar-sysfs.c
> +++ b/arch/powerpc/kernel/secvar-sysfs.c
> @@ -43,8 +43,8 @@ static ssize_t size_show(struct kobject *kobj, struct kobj_attribute *attr,
>   
>   	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
>   	if (rc) {
> -		pr_err("Error retrieving %s variable size %d\n", kobj->name,
> -		       rc);
> +		if (rc != -ENOENT)
> +			pr_err("Error retrieving %s variable size %d\n", kobj->name, rc);
>   		return rc;
>   	}
>   
> @@ -61,7 +61,8 @@ static ssize_t data_read(struct file *filep, struct kobject *kobj,
>   
>   	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
>   	if (rc) {
> -		pr_err("Error getting %s variable size %d\n", kobj->name, rc);
> +		if (rc != -ENOENT)
> +			pr_err("Error getting %s variable size %d\n", kobj->name, rc);
>   		return rc;
>   	}
>   	pr_debug("dsize is %llu\n", dsize);
  

Patch

diff --git a/arch/powerpc/kernel/secvar-sysfs.c b/arch/powerpc/kernel/secvar-sysfs.c
index 9b6be63b7b36..ca3df3f7156c 100644
--- a/arch/powerpc/kernel/secvar-sysfs.c
+++ b/arch/powerpc/kernel/secvar-sysfs.c
@@ -43,8 +43,8 @@  static ssize_t size_show(struct kobject *kobj, struct kobj_attribute *attr,
 
 	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
 	if (rc) {
-		pr_err("Error retrieving %s variable size %d\n", kobj->name,
-		       rc);
+		if (rc != -ENOENT)
+			pr_err("Error retrieving %s variable size %d\n", kobj->name, rc);
 		return rc;
 	}
 
@@ -61,7 +61,8 @@  static ssize_t data_read(struct file *filep, struct kobject *kobj,
 
 	rc = secvar_ops->get(kobj->name, strlen(kobj->name) + 1, NULL, &dsize);
 	if (rc) {
-		pr_err("Error getting %s variable size %d\n", kobj->name, rc);
+		if (rc != -ENOENT)
+			pr_err("Error getting %s variable size %d\n", kobj->name, rc);
 		return rc;
 	}
 	pr_debug("dsize is %llu\n", dsize);