UBUNTU-CVE-2026-89798: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: rpcrdma: arm rndone before publishing the notification rpcrdmarnregister() inserts @rn into rdxa with xaalloc() before storing the caller's callback in rn->rndone. The xarray makes @rn reachable to rpcrdmaremoveone(), which walks rdxa and invokes rn->rndone(rn) for every registered notification. A device removal that races a fresh registration can therefore observe @rn with rndone still NULL, because the notification objects are zero allocated by their owners, and call through a NULL function pointer. Store rn->rndone before xaalloc() publishes @rn. The xarray's store-side and load-side ordering then guarantees that any CPU which finds @rn in rdxa also observes the armed callback. rpcrdmarnunregister() treats a non-NULL rndone as the sentinel for a completed registration, so the early store must not survive a failed registration. Clear rndone again when xaalloc() fails. Were it left set, the failed-accept cleanup path would call rpcrdmarnunregister() on an @rn that was never inserted, erasing an unrelated rdxa slot and underflowing rdkref.