Commit beb8cee0 authored by Heiko Carstens's avatar Heiko Carstens Committed by Vasily Gorbik
Browse files

s390/alternatives: Remove alternative facility list



The alternative and the normal facility list are always identical. Remove
the alternative facility list, which allows to simplify the alternatives
code.

Acked-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Tested-by: default avatarSven Schnelle <svens@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 47837a5c
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -31,16 +31,15 @@
#define ALT_CTX_LATE		2
#define ALT_CTX_ALL		(ALT_CTX_EARLY | ALT_CTX_LATE)

#define ALT_TYPE_FACILITY_EARLY	0
#define ALT_TYPE_FACILITY	1
#define ALT_TYPE_SPEC		2
#define ALT_TYPE_FACILITY	0
#define ALT_TYPE_SPEC		1

#define ALT_DATA_SHIFT		0
#define ALT_TYPE_SHIFT		20
#define ALT_CTX_SHIFT		28

#define ALT_FACILITY_EARLY(facility)	(ALT_CTX_EARLY << ALT_CTX_SHIFT		| \
					 ALT_TYPE_FACILITY_EARLY << ALT_TYPE_SHIFT | \
					 ALT_TYPE_FACILITY << ALT_TYPE_SHIFT	| \
					 (facility) << ALT_DATA_SHIFT)

#define ALT_FACILITY(facility)		(ALT_CTX_LATE << ALT_CTX_SHIFT		| \
+0 −1
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@
#define MAX_FACILITY_BIT (sizeof(stfle_fac_list) * 8)

extern u64 stfle_fac_list[16];
extern u64 alt_stfle_fac_list[16];

static inline void __set_facility(unsigned long nr, void *facilities)
{
+1 −6
Original line number Diff line number Diff line
@@ -19,14 +19,9 @@ void __apply_alternatives(struct alt_instr *start, struct alt_instr *end, unsign
		if (!(a->ctx & ctx))
			continue;
		switch (a->type) {
		case ALT_TYPE_FACILITY_EARLY:
			replace = test_facility(a->data);
			break;
#ifndef __DECOMPRESSOR
		case ALT_TYPE_FACILITY:
			replace = __test_facility(a->data, alt_stfle_fac_list);
			replace = test_facility(a->data);
			break;
#endif
		case ALT_TYPE_SPEC:
			replace = nobp_enabled();
			break;
+0 −6
Original line number Diff line number Diff line
@@ -190,11 +190,6 @@ static noinline __init void setup_lowcore_early(void)
	get_lowcore()->preempt_count = INIT_PREEMPT_COUNT;
}

static noinline __init void setup_facility_list(void)
{
	memcpy(alt_stfle_fac_list, stfle_fac_list, sizeof(alt_stfle_fac_list));
}

static __init void detect_diag9c(void)
{
	unsigned int cpu_address;
@@ -289,7 +284,6 @@ void __init startup_init(void)
	lockdep_off();
	sort_amode31_extable();
	setup_lowcore_early();
	setup_facility_list();
	detect_machine_type();
	setup_arch_string();
	setup_boot_command_line();
+0 −1
Original line number Diff line number Diff line
@@ -155,7 +155,6 @@ unsigned int __bootdata_preserved(zlib_dfltcc_support);
EXPORT_SYMBOL(zlib_dfltcc_support);
u64 __bootdata_preserved(stfle_fac_list[16]);
EXPORT_SYMBOL(stfle_fac_list);
u64 alt_stfle_fac_list[16];
struct oldmem_data __bootdata_preserved(oldmem_data);

unsigned long VMALLOC_START;