Commit 0b737a9c authored by Yazen Ghannam's avatar Yazen Ghannam Committed by Ingo Molnar

x86/ras/amd: Make sysfs names of banks more user-friendly

Currently, we append the MCA_IPID[InstanceId] to the bank name to create
the sysfs filename. The InstanceId field uniquely identifies a bank
instance but it doesn't look very nice for most banks.

Replace the InstanceId with a simpler, ascending (0, 1, ..) value.
Only use this in the sysfs name when there is more than 1 instance.
Otherwise, just use the bank's name as the sysfs name.
Signed-off-by: default avatarYazen Ghannam <Yazen.Ghannam@amd.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/1484322741-41884-3-git-send-email-Yazen.Ghannam@amd.com
Link: http://lkml.kernel.org/r/20170123183514.13356-4-bp@alien8.deSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 9b052ea4
...@@ -356,12 +356,13 @@ struct smca_hwid { ...@@ -356,12 +356,13 @@ struct smca_hwid {
unsigned int bank_type; /* Use with smca_bank_types for easy indexing. */ unsigned int bank_type; /* Use with smca_bank_types for easy indexing. */
u32 hwid_mcatype; /* (hwid,mcatype) tuple */ u32 hwid_mcatype; /* (hwid,mcatype) tuple */
u32 xec_bitmap; /* Bitmap of valid ExtErrorCodes; current max is 21. */ u32 xec_bitmap; /* Bitmap of valid ExtErrorCodes; current max is 21. */
u8 count; /* Number of instances. */
}; };
struct smca_bank { struct smca_bank {
struct smca_hwid *hwid; struct smca_hwid *hwid;
/* Instance ID */ u32 id; /* Value of MCA_IPID[InstanceId]. */
u32 id; u8 sysfs_id; /* Value used for sysfs name. */
}; };
extern struct smca_bank smca_banks[MAX_NR_BANKS]; extern struct smca_bank smca_banks[MAX_NR_BANKS];
......
...@@ -192,6 +192,7 @@ static void get_smca_bank_info(unsigned int bank) ...@@ -192,6 +192,7 @@ static void get_smca_bank_info(unsigned int bank)
smca_banks[bank].hwid = s_hwid; smca_banks[bank].hwid = s_hwid;
smca_banks[bank].id = instance_id; smca_banks[bank].id = instance_id;
smca_banks[bank].sysfs_id = s_hwid->count++;
break; break;
} }
} }
...@@ -1064,9 +1065,12 @@ static const char *get_name(unsigned int bank, struct threshold_block *b) ...@@ -1064,9 +1065,12 @@ static const char *get_name(unsigned int bank, struct threshold_block *b)
return NULL; return NULL;
} }
if (smca_banks[bank].hwid->count == 1)
return smca_get_name(bank_type);
snprintf(buf_mcatype, MAX_MCATYPE_NAME_LEN, snprintf(buf_mcatype, MAX_MCATYPE_NAME_LEN,
"%s_%x", smca_get_name(bank_type), "%s_%x", smca_get_name(bank_type),
smca_banks[bank].id); smca_banks[bank].sysfs_id);
return buf_mcatype; return buf_mcatype;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment