alternative.c (cf1489984641369611556bf00c48f945c77bcf02) alternative.c (d768bd892fc8f066cd3aa000eb1867bcf32db0ee)
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/module.h>
3#include <asm/alternative.h>
4#include <asm/facility.h>
5
6#define MAX_PATCH_LEN (255 - 1)
7
8static int __initdata_or_module alt_instr_disabled;
9
10static int __init disable_alternative_instructions(char *str)
11{
12 alt_instr_disabled = 1;
13 return 0;
14}
15
16early_param("noaltinstr", disable_alternative_instructions);
17
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/module.h>
3#include <asm/alternative.h>
4#include <asm/facility.h>
5
6#define MAX_PATCH_LEN (255 - 1)
7
8static int __initdata_or_module alt_instr_disabled;
9
10static int __init disable_alternative_instructions(char *str)
11{
12 alt_instr_disabled = 1;
13 return 0;
14}
15
16early_param("noaltinstr", disable_alternative_instructions);
17
18static int __init nobp_setup_early(char *str)
19{
20 bool enabled;
21 int rc;
22
23 rc = kstrtobool(str, &enabled);
24 if (rc)
25 return rc;
26 if (enabled && test_facility(82))
27 __set_facility(82, S390_lowcore.alt_stfle_fac_list);
28 else
29 __clear_facility(82, S390_lowcore.alt_stfle_fac_list);
30 return 0;
31}
32early_param("nobp", nobp_setup_early);
33
34static int __init nospec_setup_early(char *str)
35{
36 __clear_facility(82, S390_lowcore.alt_stfle_fac_list);
37 return 0;
38}
39early_param("nospec", nospec_setup_early);
40
18struct brcl_insn {
19 u16 opc;
20 s32 disp;
21} __packed;
22
23static u16 __initdata_or_module nop16 = 0x0700;
24static u32 __initdata_or_module nop32 = 0x47000000;
25static struct brcl_insn __initdata_or_module nop48 = {

--- 87 unchanged lines hidden ---
41struct brcl_insn {
42 u16 opc;
43 s32 disp;
44} __packed;
45
46static u16 __initdata_or_module nop16 = 0x0700;
47static u32 __initdata_or_module nop32 = 0x47000000;
48static struct brcl_insn __initdata_or_module nop48 = {

--- 87 unchanged lines hidden ---