Revert "x86: cpuid: clear FSRM bit"

This reverts commit fa1e6e32494328aacbe007d961652c1040b52e68.

Reason for revert: This turns out to have been a bug in the kernel that can be addressed with the following patch:

```
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index 2d7ea5480ec3..71b412f820c7 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -328,6 +328,7 @@ static void early_init_intel(struct cpuinfo_x86 *c)
                         pr_info("Disabled fast string operations\n");
                         setup_clear_cpu_cap(X86_FEATURE_REP_GOOD);
                         setup_clear_cpu_cap(X86_FEATURE_ERMS);
+                        setup_clear_cpu_cap(X86_FEATURE_FSRM);
                 }
         }
```

Original change's description:
> x86: cpuid: clear FSRM bit
>
> This seems to cause an unexpected fault under Bruschetta, and possibly
> any other software using Ice Lake's Fast Short REP MOVs.
>
> This is a port of a patch from AOSP[1].
>
> [1]: https://android-review.googlesource.com/c/platform/external/crosvm/+/2138413
>
> BUG=b:228795137
> TEST=deployed to brya board, bruschetta bootup no longer hangs after
> entering smpboot
>
> Change-Id: Ifb4e8af104ee8e2945598ea4c06001cbd98c40e9
> Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3913990
> Auto-Submit: Mike Gerow <gerow@google.com>
> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>

Bug: b:228795137
Change-Id: I7bd8be1b33315dddb5b73df62303bd967ac0573e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3916337
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Mike Gerow <gerow@google.com>
1 file changed
tree: 005d89c273ac15c76e1115555b524b36ebba46fb
  1. .cargo/
  2. .devcontainer/
  3. .github/
  4. .vscode/
  5. aarch64/
  6. acpi_tables/
  7. anti_tamper/
  8. arch/
  9. argh_helpers/
  10. base/
  11. bit_field/
  12. broker_ipc/
  13. common/
  14. cros_async/
  15. crosvm-fuzz/
  16. crosvm_control/
  17. crosvm_plugin/
  18. devices/
  19. disk/
  20. docs/
  21. fuse/
  22. gpu_display/
  23. hypervisor/
  24. infra/
  25. integration_tests/
  26. io_uring/
  27. kernel_cmdline/
  28. kernel_loader/
  29. kvm/
  30. kvm_sys/
  31. libcras_stub/
  32. linux_input_sys/
  33. logo/
  34. media/
  35. metrics/
  36. net_sys/
  37. net_util/
  38. power_monitor/
  39. protos/
  40. qcow_utils/
  41. resources/
  42. rutabaga_gfx/
  43. seccomp/
  44. serde_keyvalue/
  45. src/
  46. system_api_stub/
  47. tests/
  48. third_party/
  49. tools/
  50. tpm2/
  51. tpm2-sys/
  52. tracing/
  53. tube_transporter/
  54. usb_sys/
  55. usb_util/
  56. vfio_sys/
  57. vhost/
  58. virtio_sys/
  59. vm_control/
  60. vm_memory/
  61. win_audio/
  62. win_util/
  63. x86_64/
  64. .dockerignore
  65. .gitignore
  66. .gitmodules
  67. .rustfmt.toml
  68. ARCHITECTURE.md
  69. build.rs
  70. Cargo.lock
  71. Cargo.toml
  72. CONTRIBUTING.md
  73. DIR_METADATA
  74. LICENSE
  75. mypy.ini
  76. OWNERS
  77. PRESUBMIT.cfg
  78. pyproject.toml
  79. README.chromeos.md
  80. README.md
  81. rust-toolchain
README.md

crosvm - The Chrome OS Virtual Machine Monitor

crosvm is a virtual machine monitor (VMM) based on Linux’s KVM hypervisor, with a focus on simplicity, security, and speed. crosvm is intended to run Linux guests, originally as a security boundary for running native applications on the Chrome OS platform. Compared to QEMU, crosvm doesn’t emulate architectures or real hardware, instead concentrating on paravirtualized devices, such as the virtio standard.

crosvm is currently used to run Linux/Android guests on Chrome OS devices.

Logo