[PATCH] PCI: mediatek: Fix operator precedence in PCIE_FTS_NUM_L0 macro
Krzysztof Wilczyński
kwilczynski at kernel.org
Thu May 14 18:27:09 PDT 2026
Hello,
> The original PCIE_FTS_NUM_L0(x) macro was buggy due to improper operator
> precedence, where ((x) & 0xff << 8) was evaluated as ((x) & 0xff00).
>
> Instead of just fixing the parentheses, use the standard FIELD_PREP()
> macro. This makes the code more robust by automatically handling masks
> and shifts, while also adding compile-time type and range checking to
> ensure the value fits within PCIE_FTS_NUM_MASK.
>
> Fixes: 637cfacae96f ("PCI: mediatek: Add MediaTek PCIe host controller support")
> Signed-off-by: Li RongQing <lirongqing at baidu.com>
> ---
> drivers/pci/controller/pcie-mediatek.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c
> index 7572252..00f0e29 100644
> --- a/drivers/pci/controller/pcie-mediatek.c
> +++ b/drivers/pci/controller/pcie-mediatek.c
> @@ -61,7 +61,7 @@
> /* MediaTek specific configuration registers */
> #define PCIE_FTS_NUM 0x70c
> #define PCIE_FTS_NUM_MASK GENMASK(15, 8)
> -#define PCIE_FTS_NUM_L0(x) ((x) & 0xff << 8)
> +#define PCIE_FTS_NUM_L0(x) FIELD_PREP(PCIE_FTS_NUM_MASK, x)
Aww. Nice catch! Thank you for fixing this!
Happy to offer:
Reviewed-by: Krzysztof Wilczyński <kwilczynski at kernel.org>
All the best,
Krzysztof
More information about the Linux-mediatek
mailing list