Function report |
Source Code:arch\x86\kernel\cpu\bugs.c |
Create Date:2022-07-28 07:56:12 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:spectre_v2_user_select_mitigation
Proto:static void __init spectre_v2_user_select_mitigation(enum spectre_v2_mitigation_cmd v2_cmd)
Type:void
Parameter:
| Type | Parameter | Name |
|---|---|---|
| enum spectre_v2_mitigation_cmd | v2_cmd |
| 605 | mode = SPECTRE_V2_USER_NONE |
| 606 | smt_possible = IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_SMP) |
| 609 | If Not boot_cpu_has(Indirect Branch Prediction Barrier ) && Not boot_cpu_has(Single Thread Indirect Branch Predictors ) Then Return |
| 612 | If cpu_smt_control == CPU_SMT_FORCE_DISABLED || cpu_smt_control == CPU_SMT_NOT_SUPPORTED Then smt_possible = false |
| 618 | Case cmd == SPECTRE_V2_USER_CMD_NONE |
| 619 | Go to set_mode |
| 620 | Case cmd == SPECTRE_V2_USER_CMD_FORCE |
| 621 | mode = SPECTRE_V2_USER_STRICT |
| 622 | Break |
| 623 | Case cmd == SPECTRE_V2_USER_CMD_PRCTL |
| 624 | Case cmd == SPECTRE_V2_USER_CMD_PRCTL_IBPB |
| 625 | mode = SPECTRE_V2_USER_PRCTL |
| 626 | Break |
| 627 | Case cmd == SPECTRE_V2_USER_CMD_AUTO |
| 628 | Case cmd == SPECTRE_V2_USER_CMD_SECCOMP |
| 629 | Case cmd == SPECTRE_V2_USER_CMD_SECCOMP_IBPB |
| 630 | If IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',* 0 otherwise.(CONFIG_SECCOMP) Then mode = SPECTRE_V2_USER_SECCOMP |
| 632 | Else mode = SPECTRE_V2_USER_PRCTL |
| 634 | Break |
| 642 | If mode != SPECTRE_V2_USER_STRICT && boot_cpu_has("" Single Thread Indirect Branch Predictors always-on preferred ) Then mode = SPECTRE_V2_USER_STRICT_PREFERRED |
| 647 | If boot_cpu_has(Indirect Branch Prediction Barrier ) Then |
| 651 | Case cmd == SPECTRE_V2_USER_CMD_FORCE |
| 652 | Case cmd == SPECTRE_V2_USER_CMD_PRCTL_IBPB |
| 653 | Case cmd == SPECTRE_V2_USER_CMD_SECCOMP_IBPB |
| 655 | Break |
| 656 | Case cmd == SPECTRE_V2_USER_CMD_PRCTL |
| 657 | Case cmd == SPECTRE_V2_USER_CMD_AUTO |
| 658 | Case cmd == SPECTRE_V2_USER_CMD_SECCOMP |
| 660 | Break |
| 661 | Default |
| 662 | Break |
| 665 | pr_info("mitigation: Enabling %s Indirect Branch Prediction Barrier\n", static_key_enabled( & Control unconditional IBPB in switch_mm() ) ? "always-on" : "conditional") |
| 671 | If spectre_v2_enabled == SPECTRE_V2_IBRS_ENHANCED Then Return |
| 678 | If Not smt_possible || Not boot_cpu_has(Single Thread Indirect Branch Predictors ) Then mode = SPECTRE_V2_USER_NONE |
| 680 | set_mode : |
| 681 | spectre_v2_user = mode |
| 683 | If smt_possible Then pr_info("%s\n", spectre_v2_user_strings[mode]) |
| Name | Describe |
|---|---|
| spectre_v2_select_mitigation |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |