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>
#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
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
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?
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
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!
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?
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?
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
dri-devel@lists.freedesktop.org