>       struct mce m;
> +     int lsb = PAGE_SHIFT;

Some maintainers like to order local declaration lines from longest to shortest
 
> +     /*
> +      * Even if the ->validation_bits are set for address mask,
> +      * to be extra safe, check and reject an error radius '0',
> +      * and fallback to the default page size.
> +      */
> +     if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK) {
> +             lsb = __ffs64(mem_err->physical_addr_mask);
> +             if (lsb == 1)
> +                     lsb = PAGE_SHIFT;
> +     }


The comment above __ffs64() says:

* The result is not defined if no bits are set, so check that @word
 * is non-zero before calling this.

So if the intent is "extra safe" should check for that:

        if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK &&
            mem_err->physical_addr_mask) {
                lsb = __ffs64(mem_err->physical_addr_mask);
                if (lsb == 1)
                        lsb = PAGE_SHIFT;
        }

-Tony

        

Reply via email to