On 6/19/20 9:22 AM, Alexey Dobriyan wrote: >> uint64_t val = cqe->res; // assuming non-error here >> >> if (cqe->flags & IORING_CQE_F_ZONE_FOO) >> val |= (cqe->flags >> 16) << 32ULL; > > Jens, ULL in shift doesn't do anything for widening the result. > You need > > val |= (uint64_t)(cqe->flags >> 16) << 32; You're right of course, guess I should check my in-mail code a bit better :-) -- Jens Axboe