Переглянути джерело

Kernel/riscv64: Specify correct alignment for `FPUState` struct

The signal handling code (and possibly other code as well) expects this
struct to have an alignment of 16 bytes, as it pushes this struct on the
stack.
Sönke Holz 1 рік тому
батько
коміт
ac79ab0b45
1 змінених файлів з 3 додано та 1 видалено
  1. 3 1
      Kernel/Arch/riscv64/FPUState.h

+ 3 - 1
Kernel/Arch/riscv64/FPUState.h

@@ -13,7 +13,9 @@ VALIDATE_IS_RISCV64()
 
 namespace Kernel {
 
-struct FPUState {
+// This struct will get pushed on the stack by the signal handling code.
+// Therefore, it has to be aligned to a 16-byte boundary.
+struct [[gnu::aligned(16)]] FPUState {
     u64 f[32];
     u64 fcsr;
 };