> + if (unlikely(err)) > + ACCESS_ONCE(bb->error) = err; I can't see a reason for the ACCESS_ONCE here. Also the likely/unlikely annotations here smell like premature optimization. Otherwise looks good to me.