8000 Missing capability fault generated for receive on bound notifications · Issue #1424 · seL4/seL4 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Missing capability fault generated for receive on bound notifications #1424

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
talsewell opened this issue Mar 12, 2025 · 0 comments
Open

Comments

@talsewell
Copy link

Spotted while poking around in the l4v repository.

If a thread attempts to receive on a notification object, and the notification object is bound to a different thread, this fails. That's not unreasonable. The failure is processed as a fault, probably for simplicity, as the receive paths do not generate errors.

The fault created is a "missing capability" fault, which I think is misleading.

seL4/src/api/syscall.c

Lines 456 to 460 in d047ce8

boundTCB = (tcb_t *)notification_ptr_get_ntfnBoundTCB(ntfnPtr);
if (unlikely(!cap_notification_cap_get_capNtfnCanReceive(lu_ret.cap)
|| (boundTCB && boundTCB != NODE_STATE(ksCurThread)))) {
current_lookup_fault = lookup_fault_missing_capability_new(0);
current_fault = seL4_Fault_CapFault_new(epCPtr, true);

In the fullness of time, this should probably be turned into its own kind of fault, to avoid misreporting to a fault handler.

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

No branches or pull requests

1 participant
0