The patch modifies `add_to_kill_anon_file()` to pass
`FSDAX_INVALID_PGOFF` for its `pgoff` value to `__add_to_kill()`. It
also modifies `__add_to_kill()` to try to find the corresponding virtual
address of this `pgoff` value if the following condition is true:
`!(pfn_valid(pgoff)) && (vma->vm_flags | PFN_MAP)`. When `pgoff` is
`FSDAX_INVALID_PGOFF`, `vma_address()` will return `-EFAULT`.
The condition of `!(pfn_valid(pgoff)) && (vma->vm_flags | PFN_MAP)`
seems to have a typo, maybe multiple (| instead of &?), as it would
evaluate to true when `pgoff` is invalid and try to use it. This
includes many cases when the faulting address is anonymous memory (the
situation tested by madvise07). The result is `tk->addr` will be set to
`-EFAULT`, and thus be forcibly killed when `kill_procs()` is called to
reap the list, instead of sending the expected SIGBUS.
This is corroborated by the message we see printed to dmesg:
[ 2786.499480] Memory failure: 0x232b9: forcibly killing madvise07:150194
because of failure to unmap corrupted page
** Changed in: linux-nvidia-6.14 (Ubuntu)
Status: New => Invalid
** Changed in: linux-nvidia-6.14 (Ubuntu Noble)
Status: New => Triaged
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2125434
Title:
6.14 kernel SAUCE patch causes LTP madvise07 test case to fail with
"Child killed by SIGKILL"
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-nvidia-6.14/+bug/2125434/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs