Hi Michal, > On Sep 5, 2023, at 15:31, Michal Orzel <[email protected]> wrote: > > When running with SMMUv3 and UBSAN enabled on arm64, there are a lot of > warnings printed related to shifting into sign bit in generic_fls() > as it takes parameter of type int. > > Example: > (XEN) UBSAN: Undefined behaviour in ./include/xen/bitops.h:69:11 > (XEN) left shift of 134217728 by 4 places cannot be represented in type 'int' > > It does not make a lot of sense to ask for the last set bit of a negative > value. We don't have a direct user of this helper and all the wrappers > pass value of type unsigned {int,long}. > > Linux did the same as part of commit: > 3fc2579e6f16 ("fls: change parameter to unsigned int") > > To keep consistency between the helpers, take the opportunity to: > - replace __inline__ with inline, > - modify generic_ffs() to take parameter of type unsigned int as well > (currently no user and the only wrapper generic_ffsl() passes unsigned > long). > > Signed-off-by: Michal Orzel <[email protected]>
Reviewed-by: Henry Wang <[email protected]> Kind regards, Henry
