Re: [PATCH] media: staging: tegra-vde: Change from __attribute to __packed.

From: Dmitry Osipenko
Date: Wed Nov 07 2018 - 07:01:56 EST


On 07.11.2018 5:23, rafaelgoncalves@xxxxxxxxxx wrote:
> From: Rafael Goncalves <rafaelgoncalves@xxxxxxxxxx>
>
> Correct the following warnings from checkpatch.pl:
>
> WARNING: __packed is preferred over __attribute__((packed))
> +} __attribute__((packed));
>
> WARNING: __packed is preferred over __attribute__((packed))
> +} __attribute__((packed));
>
> Signed-off-by: Rafael Goncalves <rafaelgoncalves@xxxxxxxxxx>
>
> ---
>
> Hi.
> It's my first patch submission, please let me know if there is something
> that I can improve.
> ---
> drivers/staging/media/tegra-vde/uapi.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/media/tegra-vde/uapi.h b/drivers/staging/media/tegra-vde/uapi.h
> index a50c7bcae057..5ffa4afa4047 100644
> --- a/drivers/staging/media/tegra-vde/uapi.h
> +++ b/drivers/staging/media/tegra-vde/uapi.h
> @@ -29,7 +29,7 @@ struct tegra_vde_h264_frame {
> __u32 flags;
>
> __u32 reserved;
> -} __attribute__((packed));
> +} __packed;
>
> struct tegra_vde_h264_decoder_ctx {
> __s32 bitstream_data_fd;
> @@ -61,7 +61,7 @@ struct tegra_vde_h264_decoder_ctx {
> __u8 num_ref_idx_l1_active_minus1;
>
> __u32 reserved;
> -} __attribute__((packed));
> +} __packed;
>
> #define VDE_IOCTL_BASE ('v' + 0x20)
>
>

Hello Rafael,

Thank you very much for the patch, but looks like it is not correct. The Userspace API header is supposed to be used by kernel and userspace, the __packed macro is available in kernel only.

Interestingly there few places in include/uapi/ that use __packed macro, I'm wondering if they are correct. Note that GCC just won't complain about undefined qualifier, at least by default.