Hi, Tiezhu, On Tue, Dec 17, 2024 at 9:50 AM Tiezhu Yang <yangtiezhu@xxxxxxxxxxx> wrote: > > When compiling with Clang on LoongArch, there exists the following objtool > warning in drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.o: > > dc_fixpt_recip() falls through to next function dc_fixpt_sinc() > > This is because dc_fixpt_from_fraction() is inlined in dc_fixpt_recip() > by Clang, given dc_fixpt_from_fraction() is not a simple function, just > mark it noinline to avoid the above issue. I don't know whether drm maintainers can accept this, because it looks like a workaround. Yes, uninline this function "solve" a problem and seems reasonable in this case because the function is "not simple", but from another point of view, you may hide a type of bug. Huacai > > Signed-off-by: Tiezhu Yang <yangtiezhu@xxxxxxxxxxx> > --- > drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c > index 88d3f9d7dd55..b40c6a21460d 100644 > --- a/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c > +++ b/drivers/gpu/drm/amd/display/dc/basics/fixpt31_32.c > @@ -68,7 +68,7 @@ static inline unsigned long long complete_integer_division_u64( > #define GET_FRACTIONAL_PART(x) \ > (FRACTIONAL_PART_MASK & (x)) > > -struct fixed31_32 dc_fixpt_from_fraction(long long numerator, long long denominator) > +noinline struct fixed31_32 dc_fixpt_from_fraction(long long numerator, long long denominator) > { > struct fixed31_32 res; > > -- > 2.42.0 >