diff mbox series

[v1,1/1] drm: Replace kernel.h with the necessary inclusions

Message ID 20211110102423.54282-1-andriy.shevchenko@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series [v1,1/1] drm: Replace kernel.h with the necessary inclusions | expand

Commit Message

Andy Shevchenko Nov. 10, 2021, 10:24 a.m. UTC
When kernel.h is used in the headers it adds a lot into dependency hell,
especially when there are circular dependencies are involved.

Replace kernel.h inclusion with the list of what is really being used.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 include/drm/drm_gem_ttm_helper.h  | 2 +-
 include/drm/drm_gem_vram_helper.h | 2 +-
 include/drm/drm_mm.h              | 4 +++-
 3 files changed, 5 insertions(+), 3 deletions(-)

Comments

Thomas Zimmermann Nov. 10, 2021, 1:54 p.m. UTC | #1
Hi

Am 10.11.21 um 11:24 schrieb Andy Shevchenko:
> When kernel.h is used in the headers it adds a lot into dependency hell,
> especially when there are circular dependencies are involved.
> 
> Replace kernel.h inclusion with the list of what is really being used.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>   include/drm/drm_gem_ttm_helper.h  | 2 +-
>   include/drm/drm_gem_vram_helper.h | 2 +-
>   include/drm/drm_mm.h              | 4 +++-
>   3 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/include/drm/drm_gem_ttm_helper.h b/include/drm/drm_gem_ttm_helper.h
> index c1aa02bd4c89..78040f6cc6f3 100644
> --- a/include/drm/drm_gem_ttm_helper.h
> +++ b/include/drm/drm_gem_ttm_helper.h
> @@ -3,7 +3,7 @@
>   #ifndef DRM_GEM_TTM_HELPER_H
>   #define DRM_GEM_TTM_HELPER_H
>   
> -#include <linux/kernel.h>
> +#include <linux/container_of.h>

I built this patch on a recent drm-misc-next, but there's no 
linux/container_of.h

Best regards
Thomas

>   
>   #include <drm/drm_device.h>
>   #include <drm/drm_gem.h>
> diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h
> index d3cf06c9af65..b4ce27a72773 100644
> --- a/include/drm/drm_gem_vram_helper.h
> +++ b/include/drm/drm_gem_vram_helper.h
> @@ -11,8 +11,8 @@
>   #include <drm/ttm/ttm_bo_api.h>
>   #include <drm/ttm/ttm_bo_driver.h>
>   
> +#include <linux/container_of.h>
>   #include <linux/dma-buf-map.h>
> -#include <linux/kernel.h> /* for container_of() */
>   
>   struct drm_mode_create_dumb;
>   struct drm_plane;
> diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
> index 9b4292f229c6..ac33ba1b18bc 100644
> --- a/include/drm/drm_mm.h
> +++ b/include/drm/drm_mm.h
> @@ -39,13 +39,15 @@
>    */
>   #include <linux/bug.h>
>   #include <linux/rbtree.h>
> -#include <linux/kernel.h>
> +#include <linux/limits.h>
>   #include <linux/mm_types.h>
>   #include <linux/list.h>
>   #include <linux/spinlock.h>
>   #ifdef CONFIG_DRM_DEBUG_MM
>   #include <linux/stackdepot.h>
>   #endif
> +#include <linux/types.h>
> +
>   #include <drm/drm_print.h>
>   
>   #ifdef CONFIG_DRM_DEBUG_MM
>
Andy Shevchenko Nov. 10, 2021, 4:34 p.m. UTC | #2
On Wed, Nov 10, 2021 at 3:55 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> Am 10.11.21 um 11:24 schrieb Andy Shevchenko:
> > When kernel.h is used in the headers it adds a lot into dependency hell,
> > especially when there are circular dependencies are involved.
> >
> > Replace kernel.h inclusion with the list of what is really being used.

...

> > +#include <linux/container_of.h>
>
> I built this patch on a recent drm-misc-next, but there's no
> linux/container_of.h

Thank you for trying. It's in the upstream, whenever drm-misc-next
switches to newer/newest upstream it will be there. I assume it will
happen after v5.16-rc1?
Thomas Zimmermann Nov. 10, 2021, 4:39 p.m. UTC | #3
Hi

Am 10.11.21 um 17:34 schrieb Andy Shevchenko:
> On Wed, Nov 10, 2021 at 3:55 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>> Am 10.11.21 um 11:24 schrieb Andy Shevchenko:
>>> When kernel.h is used in the headers it adds a lot into dependency hell,
>>> especially when there are circular dependencies are involved.
>>>
>>> Replace kernel.h inclusion with the list of what is really being used.
> 
> ...
> 
>>> +#include <linux/container_of.h>
>>
>> I built this patch on a recent drm-misc-next, but there's no
>> linux/container_of.h
> 
> Thank you for trying. It's in the upstream, whenever drm-misc-next
> switches to newer/newest upstream it will be there. I assume it will
> happen after v5.16-rc1?

Yes, we'll certainly backmerge soon after rc1 has been released. If I 
forget to add the patch then, please send a reminder.

Once the necessary headers are available, the patch is

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>

Best regards
Thomas

>
Andy Shevchenko Nov. 15, 2021, 11:35 a.m. UTC | #4
On Wed, Nov 10, 2021 at 05:39:33PM +0100, Thomas Zimmermann wrote:
> Am 10.11.21 um 17:34 schrieb Andy Shevchenko:
> > On Wed, Nov 10, 2021 at 3:55 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> > > Am 10.11.21 um 11:24 schrieb Andy Shevchenko:

...

> > > > +#include <linux/container_of.h>
> > > 
> > > I built this patch on a recent drm-misc-next, but there's no
> > > linux/container_of.h
> > 
> > Thank you for trying. It's in the upstream, whenever drm-misc-next
> > switches to newer/newest upstream it will be there. I assume it will
> > happen after v5.16-rc1?
> 
> Yes, we'll certainly backmerge soon after rc1 has been released. If I forget
> to add the patch then, please send a reminder.
> 
> Once the necessary headers are available,

$ git log --oneline v5.16-rc1 -- include/linux/container_of.h
e1edc277e6f6 linux/container_of.h: switch to static_assert
d2a8ebbf8192 kernel.h: split out container_of() and typeof_member() macros

> the patch is
> Acked-by: Thomas Zimmermann <tzimmermann@suse.de>

Thanks!
Andy Shevchenko Nov. 23, 2021, 4:32 p.m. UTC | #5
On Mon, Nov 15, 2021 at 01:35:47PM +0200, Andy Shevchenko wrote:
> On Wed, Nov 10, 2021 at 05:39:33PM +0100, Thomas Zimmermann wrote:
> > Am 10.11.21 um 17:34 schrieb Andy Shevchenko:
> > > On Wed, Nov 10, 2021 at 3:55 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> > > > Am 10.11.21 um 11:24 schrieb Andy Shevchenko:
> 
> ...
> 
> > > > > +#include <linux/container_of.h>
> > > > 
> > > > I built this patch on a recent drm-misc-next, but there's no
> > > > linux/container_of.h
> > > 
> > > Thank you for trying. It's in the upstream, whenever drm-misc-next
> > > switches to newer/newest upstream it will be there. I assume it will
> > > happen after v5.16-rc1?
> > 
> > Yes, we'll certainly backmerge soon after rc1 has been released. If I forget
> > to add the patch then, please send a reminder.
> > 
> > Once the necessary headers are available,
> 
> $ git log --oneline v5.16-rc1 -- include/linux/container_of.h
> e1edc277e6f6 linux/container_of.h: switch to static_assert
> d2a8ebbf8192 kernel.h: split out container_of() and typeof_member() macros
> 
> > the patch is
> > Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
> 
> Thanks!

Maybe I misunderstood something, I thought that DRM people may apply this,
is it incorrect assumption?
Andy Shevchenko Dec. 9, 2021, 12:24 p.m. UTC | #6
On Tue, Nov 23, 2021 at 06:32:46PM +0200, Andy Shevchenko wrote:
> On Mon, Nov 15, 2021 at 01:35:47PM +0200, Andy Shevchenko wrote:
> > On Wed, Nov 10, 2021 at 05:39:33PM +0100, Thomas Zimmermann wrote:
> > > Am 10.11.21 um 17:34 schrieb Andy Shevchenko:
> > > > On Wed, Nov 10, 2021 at 3:55 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> > > > > Am 10.11.21 um 11:24 schrieb Andy Shevchenko:
> > 
> > ...
> > 
> > > > > > +#include <linux/container_of.h>
> > > > > 
> > > > > I built this patch on a recent drm-misc-next, but there's no
> > > > > linux/container_of.h
> > > > 
> > > > Thank you for trying. It's in the upstream, whenever drm-misc-next
> > > > switches to newer/newest upstream it will be there. I assume it will
> > > > happen after v5.16-rc1?
> > > 
> > > Yes, we'll certainly backmerge soon after rc1 has been released. If I forget
> > > to add the patch then, please send a reminder.
> > > 
> > > Once the necessary headers are available,
> > 
> > $ git log --oneline v5.16-rc1 -- include/linux/container_of.h
> > e1edc277e6f6 linux/container_of.h: switch to static_assert
> > d2a8ebbf8192 kernel.h: split out container_of() and typeof_member() macros
> > 
> > > the patch is
> > > Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
> > 
> > Thanks!
> 
> Maybe I misunderstood something, I thought that DRM people may apply this,
> is it incorrect assumption?

It still does not appear in Linux Next...
What should I do to move this forward, please?
Thomas Zimmermann Dec. 9, 2021, 12:53 p.m. UTC | #7
Hi

Am 09.12.21 um 13:24 schrieb Andy Shevchenko:
> On Tue, Nov 23, 2021 at 06:32:46PM +0200, Andy Shevchenko wrote:
>> On Mon, Nov 15, 2021 at 01:35:47PM +0200, Andy Shevchenko wrote:
>>> On Wed, Nov 10, 2021 at 05:39:33PM +0100, Thomas Zimmermann wrote:
>>>> Am 10.11.21 um 17:34 schrieb Andy Shevchenko:
>>>>> On Wed, Nov 10, 2021 at 3:55 PM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>>>>>> Am 10.11.21 um 11:24 schrieb Andy Shevchenko:
>>>
>>> ...
>>>
>>>>>>> +#include <linux/container_of.h>
>>>>>>
>>>>>> I built this patch on a recent drm-misc-next, but there's no
>>>>>> linux/container_of.h
>>>>>
>>>>> Thank you for trying. It's in the upstream, whenever drm-misc-next
>>>>> switches to newer/newest upstream it will be there. I assume it will
>>>>> happen after v5.16-rc1?
>>>>
>>>> Yes, we'll certainly backmerge soon after rc1 has been released. If I forget
>>>> to add the patch then, please send a reminder.
>>>>
>>>> Once the necessary headers are available,
>>>
>>> $ git log --oneline v5.16-rc1 -- include/linux/container_of.h
>>> e1edc277e6f6 linux/container_of.h: switch to static_assert
>>> d2a8ebbf8192 kernel.h: split out container_of() and typeof_member() macros
>>>
>>>> the patch is
>>>> Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
>>>
>>> Thanks!
>>
>> Maybe I misunderstood something, I thought that DRM people may apply this,
>> is it incorrect assumption?
> 
> It still does not appear in Linux Next...
> What should I do to move this forward, please?
> 

It's now in drm-misc-next. Sorry that it fell through the cracks.

Best regards
Thomas
diff mbox series

Patch

diff --git a/include/drm/drm_gem_ttm_helper.h b/include/drm/drm_gem_ttm_helper.h
index c1aa02bd4c89..78040f6cc6f3 100644
--- a/include/drm/drm_gem_ttm_helper.h
+++ b/include/drm/drm_gem_ttm_helper.h
@@ -3,7 +3,7 @@ 
 #ifndef DRM_GEM_TTM_HELPER_H
 #define DRM_GEM_TTM_HELPER_H
 
-#include <linux/kernel.h>
+#include <linux/container_of.h>
 
 #include <drm/drm_device.h>
 #include <drm/drm_gem.h>
diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h
index d3cf06c9af65..b4ce27a72773 100644
--- a/include/drm/drm_gem_vram_helper.h
+++ b/include/drm/drm_gem_vram_helper.h
@@ -11,8 +11,8 @@ 
 #include <drm/ttm/ttm_bo_api.h>
 #include <drm/ttm/ttm_bo_driver.h>
 
+#include <linux/container_of.h>
 #include <linux/dma-buf-map.h>
-#include <linux/kernel.h> /* for container_of() */
 
 struct drm_mode_create_dumb;
 struct drm_plane;
diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
index 9b4292f229c6..ac33ba1b18bc 100644
--- a/include/drm/drm_mm.h
+++ b/include/drm/drm_mm.h
@@ -39,13 +39,15 @@ 
  */
 #include <linux/bug.h>
 #include <linux/rbtree.h>
-#include <linux/kernel.h>
+#include <linux/limits.h>
 #include <linux/mm_types.h>
 #include <linux/list.h>
 #include <linux/spinlock.h>
 #ifdef CONFIG_DRM_DEBUG_MM
 #include <linux/stackdepot.h>
 #endif
+#include <linux/types.h>
+
 #include <drm/drm_print.h>
 
 #ifdef CONFIG_DRM_DEBUG_MM