Skip to content

linux-user, fix: Handle x86_64 FUTEX_LOCK_PI2 calls - #477

Open
baibaidashixiong wants to merge 1 commit into
lat-opensource:masterfrom
baibaidashixiong:dev_pi2
Open

linux-user, fix: Handle x86_64 FUTEX_LOCK_PI2 calls#477
baibaidashixiong wants to merge 1 commit into
lat-opensource:masterfrom
baibaidashixiong:dev_pi2

Conversation

@baibaidashixiong

Copy link
Copy Markdown
Contributor

Summary / 变更说明

修复 x86_64 客体调用 FUTEX_LOCK_PI2 时被 LATX 返回 ENOSYS 的问题。对于构建时假定内核支持 PI2 的 libc,这会导致使用 PI 互斥锁的应用主动终止。

  • 定义 FUTEX_LOCK_PI2 操作码,并在 do_futex() 中复用现有 PI 加锁参数转换,将操作码和时钟标志原样传给宿主内核。
  • 对 PI/PI2 的超时参数转换检查返回值:客体地址不可读时返回 EFAULT,避免向内核传递未初始化的 timespec

Validation / 验证

  • ninja -C build64 latx-x86_64:通过。
  • ninja -C build32 latx-i386:通过。
  • 两端 git diff --check 通过,修改文件的 SHA-256 一致。

Checklist / 检查项

  • I have read CONTRIBUTING.md. / 我已阅读 CONTRIBUTING.md
  • Every commit contains a DCO sign-off (git commit -s). /
    每个提交都包含 DCO 签署(git commit -s)。
  • I have included relevant build or test results, or explained why they
    are not applicable. /
    我已提供相关构建或测试结果,或说明了不适用的原因。

Signed-off-by: zqz <OrzZzznn@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant