From: Jani Nikula <jani.nikula@linux.intel.com>
To: Simon Ser <contact@emersion.fr>, dri-devel@lists.freedesktop.org
Cc: "Erik Kurzinger" <ekurzinger@nvidia.com>,
"Christian König" <christian.koenig@amd.com>,
"Thomas Zimmermann" <tzimmermann@suse.de>
Subject: Re: [PATCH] drm/ioctl: turn on -Woverride-init for IOCTL table
Date: Mon, 31 Jul 2023 12:50:53 +0300 [thread overview]
Message-ID: <87o7jsxvcy.fsf@intel.com> (raw)
In-Reply-To: <20230720103107.817084-1-contact@emersion.fr>
On Thu, 20 Jul 2023, Simon Ser <contact@emersion.fr> wrote:
> Recently two patches [1] [2] have hit a case of mistakenly picking
> an IOCTL number which was already in-use. This is hard to debug
> because the last definition wins and there is no indication that
> there is a conflict.
>
> Fix this by enabling -Werror=override-init for the IOCTL table.
> When there is a duplicate entry, the compiler now errors out:
>
> CC [M] drivers/gpu/drm/drm_ioctl.o
> drivers/gpu/drm/drm_ioctl.c:555:33: error: initialized field overwritten [-Werror=override-init]
> 555 | [DRM_IOCTL_NR(ioctl)] = { \
> | ^
> drivers/gpu/drm/drm_ioctl.c:708:9: note: in expansion of macro ‘DRM_IOCTL_DEF’
> 708 | DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_EVENTFD, drm_syncobj_reset_ioctl,
> | ^~~~~~~~~~~~~
> drivers/gpu/drm/drm_ioctl.c:555:33: note: (near initialization for ‘drm_ioctls[207]’)
> 555 | [DRM_IOCTL_NR(ioctl)] = { \
> | ^
> drivers/gpu/drm/drm_ioctl.c:708:9: note: in expansion of macro ‘DRM_IOCTL_DEF’
> 708 | DRM_IOCTL_DEF(DRM_IOCTL_SYNCOBJ_EVENTFD, drm_syncobj_reset_ioctl,
> | ^~~~~~~~~~~~~
> cc1: some warnings being treated as errors
>
> [1]: https://lore.kernel.org/dri-devel/20230714111257.11940-1-contact@emersion.fr/
> [2]: https://lore.kernel.org/dri-devel/vVFDBgHpdcB0vOwnl02QPOFmAZPEbIV56E_wQ8B012K2GZ-fAGyG0JMbSrMu3-IcKYVf0JpJyrf71e6KFHfeMoSPJlYRACxlxy91eW9c6Fc=@emersion.fr/
>
> Signed-off-by: Simon Ser <contact@emersion.fr>
> Cc: Erik Kurzinger <ekurzinger@nvidia.com>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Christian König <christian.koenig@amd.com>
> ---
> drivers/gpu/drm/drm_ioctl.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
> index f03ffbacfe9b..cd485eb54d2a 100644
> --- a/drivers/gpu/drm/drm_ioctl.c
> +++ b/drivers/gpu/drm/drm_ioctl.c
> @@ -566,6 +566,8 @@ static int drm_ioctl_permit(u32 flags, struct drm_file *file_priv)
> #endif
>
> /* Ioctl table */
> +#pragma GCC diagnostic push
> +#pragma GCC diagnostic error "-Woverride-init"
You should probably use __diag_push(), __diag_warn(), and __diag_pop()
compiler agnostic wrappers instead of using #pragmas directly.
BR,
Jani.
> static const struct drm_ioctl_desc drm_ioctls[] = {
> DRM_IOCTL_DEF(DRM_IOCTL_VERSION, drm_version, DRM_RENDER_ALLOW),
> DRM_IOCTL_DEF(DRM_IOCTL_GET_UNIQUE, drm_getunique, 0),
> @@ -718,6 +720,7 @@ static const struct drm_ioctl_desc drm_ioctls[] = {
> DRM_IOCTL_DEF(DRM_IOCTL_MODE_GET_LEASE, drm_mode_get_lease_ioctl, DRM_MASTER),
> DRM_IOCTL_DEF(DRM_IOCTL_MODE_REVOKE_LEASE, drm_mode_revoke_lease_ioctl, DRM_MASTER),
> };
> +#pragma GCC diagnostic pop
>
> #define DRM_CORE_IOCTL_COUNT ARRAY_SIZE(drm_ioctls)
--
Jani Nikula, Intel Open Source Graphics Center
prev parent reply other threads:[~2023-07-31 9:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-20 10:31 [PATCH] drm/ioctl: turn on -Woverride-init for IOCTL table Simon Ser
2023-07-31 9:50 ` Jani Nikula [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87o7jsxvcy.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=christian.koenig@amd.com \
--cc=contact@emersion.fr \
--cc=dri-devel@lists.freedesktop.org \
--cc=ekurzinger@nvidia.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.