Commit c46945c9 authored by Qiuxu Zhuo's avatar Qiuxu Zhuo Committed by Borislav Petkov (AMD)
Browse files

x86/mce: Make four functions return bool



Make those functions whose callers only care about success or failure return
a boolean value for better readability. Also, update the call sites
accordingly as the polarities of all the return values have been flipped.

No functional changes.

Suggested-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarQiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: default avatarSohil Mehta <sohil.mehta@intel.com>
Reviewed-by: default avatarYazen Ghannam <yazen.ghannam@amd.com>
Link: https://lore.kernel.org/r/20241212140103.66964-4-qiuxu.zhuo@intel.com
parent 64a668fb
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ EXPORT_PER_CPU_SYMBOL_GPL(injectm);

void mce_log(struct mce_hw_err *err)
{
	if (!mce_gen_pool_add(err))
	if (mce_gen_pool_add(err))
		irq_work_queue(&mce_irq_work);
}
EXPORT_SYMBOL_GPL(mce_log);
@@ -1911,14 +1911,14 @@ static void __mcheck_cpu_check_banks(void)
}

/* Add per CPU specific workarounds here */
static int __mcheck_cpu_apply_quirks(struct cpuinfo_x86 *c)
static bool __mcheck_cpu_apply_quirks(struct cpuinfo_x86 *c)
{
	struct mce_bank *mce_banks = this_cpu_ptr(mce_banks_array);
	struct mca_config *cfg = &mca_cfg;

	if (c->x86_vendor == X86_VENDOR_UNKNOWN) {
		pr_info("unknown CPU type - not enabling MCE support\n");
		return -EOPNOTSUPP;
		return false;
	}

	/* This should be disabled by the BIOS, but isn't always */
@@ -2012,7 +2012,7 @@ static int __mcheck_cpu_apply_quirks(struct cpuinfo_x86 *c)
	if (cfg->bootlog != 0)
		cfg->panic_timeout = 30;

	return 0;
	return true;
}

static bool __mcheck_cpu_ancient_init(struct cpuinfo_x86 *c)
@@ -2279,12 +2279,12 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)

	__mcheck_cpu_cap_init();

	if (__mcheck_cpu_apply_quirks(c) < 0) {
	if (!__mcheck_cpu_apply_quirks(c)) {
		mca_cfg.disabled = 1;
		return;
	}

	if (mce_gen_pool_init()) {
	if (!mce_gen_pool_init()) {
		mca_cfg.disabled = 1;
		pr_emerg("Couldn't allocate MCE records pool!\n");
		return;
+14 −15
Original line number Diff line number Diff line
@@ -94,64 +94,63 @@ bool mce_gen_pool_empty(void)
	return llist_empty(&mce_event_llist);
}

int mce_gen_pool_add(struct mce_hw_err *err)
bool mce_gen_pool_add(struct mce_hw_err *err)
{
	struct mce_evt_llist *node;

	if (filter_mce(&err->m))
		return -EINVAL;
		return false;

	if (!mce_evt_pool)
		return -EINVAL;
		return false;

	node = (void *)gen_pool_alloc(mce_evt_pool, sizeof(*node));
	if (!node) {
		pr_warn_ratelimited("MCE records pool full!\n");
		return -ENOMEM;
		return false;
	}

	memcpy(&node->err, err, sizeof(*err));
	llist_add(&node->llnode, &mce_event_llist);

	return 0;
	return true;
}

static int mce_gen_pool_create(void)
static bool mce_gen_pool_create(void)
{
	int mce_numrecords, mce_poolsz, order;
	struct gen_pool *gpool;
	int ret = -ENOMEM;
	void *mce_pool;

	order = order_base_2(sizeof(struct mce_evt_llist));
	gpool = gen_pool_create(order, -1);
	if (!gpool)
		return ret;
		return false;

	mce_numrecords = max(MCE_MIN_ENTRIES, num_possible_cpus() * MCE_PER_CPU);
	mce_poolsz = mce_numrecords * (1 << order);
	mce_pool = kmalloc(mce_poolsz, GFP_KERNEL);
	if (!mce_pool) {
		gen_pool_destroy(gpool);
		return ret;
		return false;
	}
	ret = gen_pool_add(gpool, (unsigned long)mce_pool, mce_poolsz, -1);
	if (ret) {

	if (gen_pool_add(gpool, (unsigned long)mce_pool, mce_poolsz, -1)) {
		gen_pool_destroy(gpool);
		kfree(mce_pool);
		return ret;
		return false;
	}

	mce_evt_pool = gpool;

	return ret;
	return true;
}

int mce_gen_pool_init(void)
bool mce_gen_pool_init(void)
{
	/* Just init mce_gen_pool once. */
	if (mce_evt_pool)
		return 0;
		return true;

	return mce_gen_pool_create();
}
+2 −2
Original line number Diff line number Diff line
@@ -31,8 +31,8 @@ struct mce_evt_llist {

void mce_gen_pool_process(struct work_struct *__unused);
bool mce_gen_pool_empty(void);
int mce_gen_pool_add(struct mce_hw_err *err);
int mce_gen_pool_init(void);
bool mce_gen_pool_add(struct mce_hw_err *err);
bool mce_gen_pool_init(void);
struct llist_node *mce_gen_pool_prepare_records(void);

int mce_severity(struct mce *a, struct pt_regs *regs, char **msg, bool is_excp);