First things first, why is the naming non-standard and why does it have a funny nb-prefix? Second, to be really useful for userspace, the API should allow for IPC. The currrent one doesn't. Third, how is this fundamentally different from subr_callback?