Quoting Daniel Vetter (2018-05-03 15:25:50) > @@ -560,7 +567,7 @@ dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops, > spinlock_t *lock, u64 context, unsigned seqno) > { > BUG_ON(!lock); > - BUG_ON(!ops || !ops->wait || !ops->enable_signaling || > + BUG_ON(!ops || !ops->wait || > !ops->get_driver_name || !ops->get_timeline_name); One thing I was wondering about (following the discussion of rhashtable on lwn) was inlining this function and passing dma_fence_ops by value. And seeing if that eliminates the branch and makes smaller code (probably not, mostly idling wondering about that technique) and kills off the BUGs (can then be BUILD_BUG_ON). -Chris