Re: [PATCH 4/7] staging: wfx: correctly cast data on big-endian targets

From: Dan Carpenter
Date: Tue Oct 08 2019 - 08:01:40 EST


On Tue, Oct 08, 2019 at 09:43:00AM +0000, Jerome Pouiller wrote:
> From: Jérôme Pouiller <jerome.pouiller@xxxxxxxxxx>
>
> When built for a big-endian target, original code caused error:
>
> include/uapi/linux/swab.h:242:29: note: expected '__u32 * {aka unsigned int *}' but argument is of type 'struct hif_mib_protected_mgmt_policy *'
>
> Fixes: f95a29d40782 ("staging: wfx: add HIF commands helpers")
> Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Signed-off-by: Jérôme Pouiller <jerome.pouiller@xxxxxxxxxx>
> ---
> drivers/staging/wfx/hif_tx_mib.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/staging/wfx/hif_tx_mib.h b/drivers/staging/wfx/hif_tx_mib.h
> index 167c5dec009f..4f132348f5fa 100644
> --- a/drivers/staging/wfx/hif_tx_mib.h
> +++ b/drivers/staging/wfx/hif_tx_mib.h
> @@ -145,7 +145,7 @@ static inline int hif_set_mfp(struct wfx_vif *wvif, bool capable, bool required)
> }
> if (!required)
> val.unpmf_allowed = 1;
> - cpu_to_le32s(&val);
> + cpu_to_le32s((uint32_t *) &val);

Again, this is fine for now, but in the future there shouldn't be a
space after the cast. It's to mark that it's a high precedence
operation.

cpu_to_le32s((uint32_t *)&val);

regards,
dan carpenter