将Kyber转换为内核模块时触发DOUBLEFAULT异常求助
将Kyber转换为内核模块时触发DOUBLEFAULT异常
我尝试将pq-crystals/kyber转换为内核模块,但触发了DOUBLEFAULT异常。我的复刻仓库地址为fwag/kyber。以下是核心转储与反汇编信息:
crash> bt PID: 3230 TASK: ffff9069d0b90000 CPU: 0 COMMAND: "insmod" #0 [fffffe000000ad60] machine_kexec at ffffffff9768b0e0 #1 [fffffe000000adc0] __crash_kexec at ffffffff97798772 #2 [fffffe000000ae90] crash_kexec at ffffffff97799a5c #3 [fffffe000000aea0] oops_end at ffffffff97642aba #4 [fffffe000000aec8] die at ffffffff97642ce3 #5 [fffffe000000aef8] exc_double_fault at ffffffff9836300b #6 [fffffe000000af50] asm_exc_double_fault at ffffffff98400c8f [exception RIP: indcpa_keypair+65] RIP: ffffffffc09f07b1 RSP: ffff9df1c3ce6a38 RFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff9df1c3cea320 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000020 RDI: ffff9df1c3cea240 RBP: ffff9df1c3cea2b0 R8: 0000000000000010 R9: ffff9069d19b97d0 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: ffff9df1c3ce7240 R14: 0000000000000000 R15: ffff9df1c3ceaf60 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 --- <DOUBLEFAULT exception stack> --- #7 [ffff9df1c3ce6a38] indcpa_keypair at ffffffffc09f07b1 [kkyber] #8 [ffff9df1c3cea2b8] crypto_kem_keypair at ffffffffc09f02f7 [kkyber] #9 [ffff9df1c3cea2d8] test_keys at ffffffffc09f3312 [kkyber] #10 [ffff9df1c3cebbd0] my_init_module at ffffffffc09f33ce [kkyber] #11 [ffff9df1c3cebbe0] do_one_initcall at ffffffff976039c8 #12 [ffff9df1c3cebc50] do_init_module at ffffffff97792ed2 #13 [ffff9df1c3cebc78] load_module at ffffffff977953dd #14 [ffff9df1c3cebd98] __do_sys_finit_module at ffffffff9779593f #15 [ffff9df1c3cebe70] __x64_sys_finit_module at ffffffff977959ba #16 [ffff9df1c3cebe80] do_syscall_64 at ffffffff9836252c #17 [ffff9df1c3cebec8] syscall_exit_to_user_mode at ffffffff98366c27 #18 [ffff9df1c3cebee0] do_syscall_64 at ffffffff98362539 #19 [ffff9df1c3cebf08] syscall_exit_to_user_mode at ffffffff98366c27 #20 [ffff9df1c3cebf20] do_syscall_64 at ffffffff98362539 #21 [ffff9df1c3cebf50] entry_SYSCALL_64_after_hwframe at ffffffff98400099 RIP: 00007f13ab09d76d RSP: 00007ffd869a7a18 RFLAGS: 00000246 RAX: ffffffffffffffda RBX: 000055752255b790 RCX: 00007f13ab09d76d RDX: 0000000000000000 RSI: 0000557521fcc358 RDI: 0000000000000003 RBP: 0000000000000000 R8: 0000000000000000 R9: 00007f13ab174580 R10: 0000000000000003 R11: 0000000000000246 R12: 0000557521fcc358 R13: 0000000000000000 R14: 000055752255b760 R15: 0000000000000000 ORIG_RAX: 0000000000000139 CS: 0033 SS: 002b crash> dis indcpa_keypair 0xffffffffc09f0770 <indcpa_keypair>: nopl 0x0(%rax,%rax,1) [FTRACE NOP] 0xffffffffc09f0775 <indcpa_keypair+5>: push %rbp 0xffffffffc09f0776 <indcpa_keypair+6>: mov %rsp,%rbp 0xffffffffc09f0779 <indcpa_keypair+9>: push %r15 0xffffffffc09f077b <indcpa_keypair+11>: mov %rsi,%r15 0xffffffffc09f077e <indcpa_keypair+14>: mov $0x20,%esi 0xffffffffc09f0783 <indcpa_keypair+19>: push %r14 0xffffffffc09f0785 <indcpa_keypair+21>: push %r13 0xffffffffc09f0787 <indcpa_keypair+23>: lea -0x3070(%rbp),%r13 0xffffffffc09f078e <indcpa_keypair+30>: push %r12 0xffffffffc09f0790 <indcpa_keypair+32>: xor %r12d,%r12d 0xffffffffc09f0793 <indcpa_keypair+35>: push %rbx 0xffffffffc09f0794 <indcpa_keypair+36>: mov %rdi,%rbx 0xffffffffc09f0797 <indcpa_keypair+39>: lea -0x70(%rbp),%rdi 0xffffffffc09f079b <indcpa_keypair+43>: sub $0x3850,%rsp 0xffffffffc09f07a2 <indcpa_keypair+50>: mov %gs:0x28,%rax 0xffffffffc09f07ab <indcpa_keypair+59>: mov %rax,-0x30(%rbp) 0xffffffffc09f07af <indcpa_keypair+63>: xor %eax,%eax 0xffffffffc09f07b1 <indcpa_keypair+65>: call 0xffffffffc09f32c0 <randombytes>
此外,我尝试注释部分代码,但异常仍会在其他位置触发,恳请各位提供帮助。
内容的提问来源于stack exchange,提问作者knip
相关产品推荐
相关产品推荐

