On Fri, Apr 11, 2025 at 10:18:55AM +0200, Hanna Czenczek wrote: > > if (ret && ret != -ENOTSUP) { > > - goto out; > > + if (ret == -EINVAL && (offset % align != 0 || num % align != > > 0)) { > > Could use `(offset | num) % align != 0`, but either way:
Use of | and & to perform alignment checks only works if align is guaranteed to be a power of 2. But isn't there (odd) hardware out there with something like a 15M alignment, at which point you HAVE to do separate checks with % because bitwise ops no longer work? -- Eric Blake, Principal Software Engineer Red Hat, Inc. Virtualization: qemu.org | libguestfs.org