Skip to contentSkip to conversation

EDAC, skx_edac: Clean up debugfs

PATCH Superseded Borislav Petkov 1 participant 1 message Sep 26, 2018 EDAC-core

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Borislav Petkov

author maintainer
#0 lore raw

PATCH 3/5 EDAC, skx_edac: Clean up debugfs

Review static struct notifier_block skx_mce_dec = { · line 1033

Quoted 10 lines · Tony Luck
(quoted diff) +6 -0
@@ -1072,6 +1025,48 @@ static struct notifier_block skx_mce_dec = {
 	.priority	= MCE_PRIO_EDAC,
 };
 
+#ifdef CONFIG_EDAC_DEBUG
+/*
+ * Debug feature. Make /sys/kernel/debug/edac/skx_edac_test/addr.
+ * Write an address to this file to exercise the address decode
+ * logic in this driver.
+ */

This whole comment needs massaging into proper english.

Quoted 13 lines
(quoted diff) +13 -0
+static struct dentry *skx_test;
+static u64 skx_fake_addr;
+
+static int debugfs_u64_set(void *data, u64 val)
+{
+	struct mce m;
+
+	m.mcgstatus = 0;
+	/* ADDRV + MemRd + Unknown channel */
+	m.status = MCI_STATUS_ADDRV + 0x90;
+	/* One corrected error */
+	m.status |= 1ULL << MCI_STATUS_CEC_SHIFT;
+	m.addr = val;

Review static struct notifier_block skx_mce_dec = { · line 1056

Quoted 10 lines
(quoted diff) +10 -0
+	m.socketid = 0;
+	skx_mce_check_error(NULL, 0, &m);
+
+	return 0;
+}
+DEFINE_SIMPLE_ATTRIBUTE(fops_u64_wo, NULL, debugfs_u64_set, "%llu\n");
+
+static void setup_skx_debug(void)
+{
+	skx_test = edac_debugfs_create_dir("skx_edac_test");

Error handling.

Review static struct notifier_block skx_mce_dec = { · line 1058

Quoted 2 lines
(quoted diff) +2 -0
+	edac_debugfs_create_file("addr", 0200, skx_test,
+				 &skx_fake_addr, &fops_u64_wo);

Ditto.