Re: [PATCH] Bluetooth: btintel_pcie: fix 32-bit warning

From: Luiz Augusto von Dentz
Date: Thu Feb 27 2025 - 10:01:57 EST


Hi Arnd,

On Thu, Feb 27, 2025 at 8:21 AM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> The open-coded upper_32_bits() produces a warning when building
> for 32-bit targets:
>
> drivers/bluetooth/btintel_pcie.c: In function 'btintel_pcie_setup_dbgc':
> drivers/bluetooth/btintel_pcie.c:142:72: error: right shift count >= width of type [-Werror=shift-count-overflow]
> 142 | db_frag.bufs[i].buf_addr_msb = (u32)((buf->data_p_addr >> 32) & 0xffffffff);
> | ^~
>
> Use the provided upper/lower helpers instead.
>
> Fixes: 3104ae5ad1b7 ("Bluetooth: btintel_pcie: Setup buffers for firmware traces")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/bluetooth/btintel_pcie.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c
> index cecb926bce1c..e8307eeb971f 100644
> --- a/drivers/bluetooth/btintel_pcie.c
> +++ b/drivers/bluetooth/btintel_pcie.c
> @@ -138,8 +138,8 @@ static int btintel_pcie_setup_dbgc(struct btintel_pcie_data *data)
> buf = &data->dbgc.bufs[i];
> buf->data_p_addr = data->dbgc.buf_p_addr + i * BTINTEL_PCIE_DBGC_BUFFER_SIZE;
> buf->data = data->dbgc.buf_v_addr + i * BTINTEL_PCIE_DBGC_BUFFER_SIZE;
> - db_frag.bufs[i].buf_addr_lsb = (u32)(buf->data_p_addr & 0xffffffff);
> - db_frag.bufs[i].buf_addr_msb = (u32)((buf->data_p_addr >> 32) & 0xffffffff);
> + db_frag.bufs[i].buf_addr_lsb = lower_32_bits(buf->data_p_addr);
> + db_frag.bufs[i].buf_addr_msb = upper_32_bits(buf->data_p_addr);

Great, I was going to ask Kiran to fix these, btw we might just amend
the original change but I will keep your Signed-off-by.

> db_frag.bufs[i].buf_size = BTINTEL_PCIE_DBGC_BUFFER_SIZE;
> }
>
> --
> 2.39.5
>


--
Luiz Augusto von Dentz