Commit e54b1dc1 authored by Zaid Alali's avatar Zaid Alali Committed by Rafael J. Wysocki
Browse files

ACPI: APEI: EINJ: Remove redundant calls to einj_get_available_error_type()



A single call to einj_get_available_error_type() in init function is
sufficient to save the return value in a global variable to be used
later in various places in the code.

This change has no functional impact, but only removes unnecessary
redundant function calls.

Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
Signed-off-by: default avatarZaid Alali <zaidal@os.amperecomputing.com>
Link: https://patch.msgid.link/20250506213814.2365788-5-zaidal@os.amperecomputing.com


[ rjw: Subject and changelog edits ]
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 368604c7
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -83,6 +83,8 @@ static struct debugfs_blob_wrapper vendor_blob;
static struct debugfs_blob_wrapper vendor_errors;
static char vendor_dev[64];

static u32 available_error_type;

/*
 * Some BIOSes allow parameters to the SET_ERROR_TYPE entries in the
 * EINJ table through an unpublished extension. Use with caution as
@@ -648,14 +650,9 @@ static struct { u32 mask; const char *str; } const einj_error_type_string[] = {

static int available_error_type_show(struct seq_file *m, void *v)
{
	int rc;
	u32 error_type = 0;

	rc = einj_get_available_error_type(&error_type);
	if (rc)
		return rc;
	for (int pos = 0; pos < ARRAY_SIZE(einj_error_type_string); pos++)
		if (error_type & einj_error_type_string[pos].mask)
		if (available_error_type & einj_error_type_string[pos].mask)
			seq_printf(m, "0x%08x\t%s\n", einj_error_type_string[pos].mask,
				   einj_error_type_string[pos].str);

@@ -678,8 +675,7 @@ bool einj_is_cxl_error_type(u64 type)

int einj_validate_error_type(u64 type)
{
	u32 tval, vendor, available_error_type = 0;
	int rc;
	u32 tval, vendor;

	/* Only low 32 bits for error type are valid */
	if (type & GENMASK_ULL(63, 32))
@@ -695,13 +691,9 @@ int einj_validate_error_type(u64 type)
	/* Only one error type can be specified */
	if (tval & (tval - 1))
		return -EINVAL;
	if (!vendor) {
		rc = einj_get_available_error_type(&available_error_type);
		if (rc)
			return rc;
	if (!vendor)
		if (!(type & available_error_type))
			return -EINVAL;
	}

	return 0;
}
@@ -772,6 +764,10 @@ static int __init einj_probe(struct faux_device *fdev)
		goto err_put_table;
	}

	rc = einj_get_available_error_type(&available_error_type);
	if (rc)
		return rc;

	rc = -ENOMEM;
	einj_debug_dir = debugfs_create_dir("einj", apei_get_debugfs_dir());