Re: [PATCH v6 1/3] phy: mediatek: fix build warning caused by clang

Vinod Koul
2023-01-13T18:14:10Z

On 04-01-23, 21:26, Chunfeng Yun wrote:
> Remove the temporary @mask_, this may cause build warning when use clang
> compiler for powerpc, but can't reproduce it when compile for arm64.
> the build warning is -Wtautological-constant-out-of-range-compare, and
> caused by
> "BUILD_BUG_ON_MSG(__bf_cast_unsigned(_mask, _mask)"
>
> After removing @mask_, there is a "CHECK:MACRO_ARG_REUSE" when run
> checkpatch.pl, due to @mask is constant, no reuse problem will happen.
>
> Fixes: 84513eccd678 ("phy: mediatek: fix build warning of FIELD_PREP()")
> Reported-by: kernel test robot <lkp@intel.com>
> Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
> ---
> v6: modify the title

Title still does not tell what this patch is.. It tells me effect of the
patch but not the changes, pls revise...

"remove temp mask" can be better title

> v5: no changes
> v4 new patch, I'm not sure it can fix build warning, due to I don't cross compile
> it for powerpc using clang in office.
> ---
> drivers/phy/mediatek/phy-mtk-io.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/phy/mediatek/phy-mtk-io.h b/drivers/phy/mediatek/phy-mtk-io.h
> index d20ad5e5be81..58f06db822cb 100644
> --- a/drivers/phy/mediatek/phy-mtk-io.h
> +++ b/drivers/phy/mediatek/phy-mtk-io.h
> @@ -39,8 +39,8 @@ static inline void mtk_phy_update_bits(void __iomem *reg, u32 mask, u32 val)
> /* field @mask shall be constant and continuous */
> #define mtk_phy_update_field(reg, mask, val) \
> ({ \
> - typeof(mask) mask_ = (mask); \
> - mtk_phy_update_bits(reg, mask_, FIELD_PREP(mask_, val)); \
> + BUILD_BUG_ON_MSG(!__builtin_constant_p(mask), "mask is not constant"); \
> + mtk_phy_update_bits(reg, mask, FIELD_PREP(mask, val)); \
> })
>
> #endif
> --
> 2.18.0

--
~Vinod