All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Gustavo Sousa <gustavo.sousa@intel.com>,
	Simona Vetter <simona.vetter@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/print: Include drm_device.h
Date: Wed, 22 Jan 2025 16:49:21 +0200	[thread overview]
Message-ID: <87h65qoqdq.fsf@intel.com> (raw)
In-Reply-To: <173755624141.5500.13245593483082552961@intel.com>

On Wed, 22 Jan 2025, Gustavo Sousa <gustavo.sousa@intel.com> wrote:
> Quoting Jani Nikula (2025-01-22 11:02:31-03:00)
>>On Wed, 22 Jan 2025, Gustavo Sousa <gustavo.sousa@intel.com> wrote:
>>> Quoting Simona Vetter (2025-01-22 08:11:53-03:00)
>>>>On Tue, Jan 21, 2025 at 06:09:25PM -0300, Gustavo Sousa wrote:
>>>>> The header drm_print.h uses members of struct drm_device pointers, as
>>>>> such, it should include drm_device.h to let the compiler know the full
>>>>> type definition.
>>>>> 
>>>>> Without such include, users of drm_print.h that don't explicitly need
>>>>> drm_device.h would bump into build errors and be forced to include the
>>>>> latter.
>>>>> 
>>>>> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
>>>>> ---
>>>>>  include/drm/drm_print.h | 1 +
>>>>>  1 file changed, 1 insertion(+)
>>>>> 
>>>>> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
>>>>> index f77fe1531cf8..9732f514566d 100644
>>>>> --- a/include/drm/drm_print.h
>>>>> +++ b/include/drm/drm_print.h
>>>>> @@ -32,6 +32,7 @@
>>>>>  #include <linux/dynamic_debug.h>
>>>>>  
>>>>>  #include <drm/drm.h>
>>>>> +#include <drm/drm_device.h>
>>>>
>>>>We much prefer just a struct device forward decl to avoid monster headers.
>>>>Is that not doable here?
>>>
>>> I don't think so. This header explicitly uses members of struct
>>> drm_device, so the compiler needs to know the full type definition. As
>>> an example see the definition of drm_WARN(), it uses (drm)->dev.
>>
>>I grudgingly agree. I don't think there are actual cases where this
>>happens, but I can imagine you could create one.
>
> It happened to me, and that motivated me to send this patch.
>
> I had a local patch where I just needed the drm_print.h header, but I
> ended up having to include drm_device.h in my .c file.

Right.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>


>
>>
>>>> Worst case I'd convert the drm_info_printer() static inline to a
>>>> macro, not sure about the exact rules here if you never deref a
>>>> pointer.
>>
>>The forward declaration is enough for passing pointers around without
>>dereferencing. It's the dereferencing in the macros that could fail the
>>build if the .c using them doesn't include drm_device.h.
>>
>>To balance things out, I think we could probably drop drm/drm.h if we
>>inlined one use of DRM_NAME to just "drm".
>>
>>
>>BR,
>>Jani.
>>
>>
>>>>-Sima
>>>>
>>>>>  
>>>>>  struct debugfs_regset32;
>>>>>  struct drm_device;
>>>>> -- 
>>>>> 2.48.1
>>>>> 
>>>>
>>>>-- 
>>>>Simona Vetter
>>>>Software Engineer, Intel Corporation
>>>>http://blog.ffwll.ch
>>
>>-- 
>>Jani Nikula, Intel

-- 
Jani Nikula, Intel

  reply	other threads:[~2025-01-22 14:49 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-21 21:09 [PATCH] drm/print: Include drm_device.h Gustavo Sousa
2025-01-22 11:11 ` Simona Vetter
2025-01-22 13:02   ` Gustavo Sousa
2025-01-22 14:02     ` Jani Nikula
2025-01-22 14:30       ` Gustavo Sousa
2025-01-22 14:49         ` Jani Nikula [this message]
2025-01-23 12:29           ` Simona Vetter
2025-01-25 21:00 ` Lucas De Marchi

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=87h65qoqdq.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gustavo.sousa@intel.com \
    --cc=simona.vetter@ffwll.ch \
    /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.