s390/mm: Remove have_store_indication static key

Whenever test_facility() is used with a constant facility
number the generated code is identical to a static branch.

Remove the extra initcall and static_branch_enable() handling for
have_store_indication, and use test_facility() directly.

Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
Heiko Carstens
2025-01-31 16:11:38 +01:00
committed by Vasily Gorbik
parent fa15188752
commit fb5bbcdcc3

View File

@@ -15,7 +15,6 @@
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/sched/debug.h>
#include <linux/jump_label.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
@@ -46,16 +45,6 @@
#include <asm/uv.h>
#include "../kernel/entry.h"
static DEFINE_STATIC_KEY_FALSE(have_store_indication);
static int __init fault_init(void)
{
if (test_facility(75))
static_branch_enable(&have_store_indication);
return 0;
}
early_initcall(fault_init);
/*
* Find out which address space caused the exception.
*/
@@ -81,7 +70,7 @@ static __always_inline bool fault_is_write(struct pt_regs *regs)
{
union teid teid = { .val = regs->int_parm_long };
if (static_branch_likely(&have_store_indication))
if (test_facility(75))
return teid.fsi == TEID_FSI_STORE;
return false;
}