2021-12-22 16:33:02

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH v1 1/1] wwan: Replace kernel.h with the necessary inclusions

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 <[email protected]>
---
include/linux/wwan.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/include/linux/wwan.h b/include/linux/wwan.h
index e143c88bf4b0..afb3334ec8c5 100644
--- a/include/linux/wwan.h
+++ b/include/linux/wwan.h
@@ -4,12 +4,9 @@
#ifndef __WWAN_H
#define __WWAN_H

-#include <linux/device.h>
-#include <linux/kernel.h>
#include <linux/poll.h>
-#include <linux/skbuff.h>
-#include <linux/netlink.h>
#include <linux/netdevice.h>
+#include <linux/types.h>

/**
* enum wwan_port_type - WWAN port types
@@ -37,6 +34,10 @@ enum wwan_port_type {
WWAN_PORT_UNKNOWN,
};

+struct device;
+struct file;
+struct netlink_ext_ack;
+struct sk_buff;
struct wwan_port;

/** struct wwan_port_ops - The WWAN port operations
--
2.34.1



2021-12-22 20:38:52

by Sergey Ryazanov

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] wwan: Replace kernel.h with the necessary inclusions

On Wed, Dec 22, 2021 at 7:32 PM Andy Shevchenko
<[email protected]> wrote:
> 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 <[email protected]>

Subject and description do not cover cleanup of includes besides the
kernel.h. But that does not seem like a big issue, so:

Reviewed-by: Sergey Ryazanov <[email protected]>

2021-12-23 10:15:37

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] wwan: Replace kernel.h with the necessary inclusions

On Wed, Dec 22, 2021 at 11:38:44PM +0300, Sergey Ryazanov wrote:
> On Wed, Dec 22, 2021 at 7:32 PM Andy Shevchenko
> <[email protected]> wrote:
> > 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 <[email protected]>
>
> Subject and description do not cover cleanup of includes besides the
> kernel.h. But that does not seem like a big issue, so:

Not sure what it's supposed from me to do. The forward declarations are
the tighten part of the cleanup (*) and it's exactly what is happening here,
i.e. replacing kernel.h "with the list of what is really being used".

*) Either you need a header, or you need a forward declaration, or rely on
the compiler not to be so strict. I prefer the second option out of three.

> Reviewed-by: Sergey Ryazanov <[email protected]>

Thanks!

--
With Best Regards,
Andy Shevchenko



2021-12-23 10:18:24

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] wwan: Replace kernel.h with the necessary inclusions

On Thu, Dec 23, 2021 at 12:14:09PM +0200, Andy Shevchenko wrote:
> On Wed, Dec 22, 2021 at 11:38:44PM +0300, Sergey Ryazanov wrote:
> > On Wed, Dec 22, 2021 at 7:32 PM Andy Shevchenko
> > <[email protected]> wrote:

...

> Not sure what it's supposed from me to do. The forward declarations are
> the tighten part of the cleanup (*) and it's exactly what is happening here,
> i.e. replacing kernel.h "with the list of what is really being used".
>
> *) Either you need a header, or you need a forward declaration, or rely on
> the compiler not to be so strict. I prefer the second option out of three.

Ah, seems indeed the skbuf and netdevice ones can be split. Do you want me to
resend as series of two?

(Sorry I have sent many similar changes and haven't remembered by heart where
I did what exactly, but here it looks natural to cleanup that stuff at the
same time, so the question is if it should be a separate change or not)

--
With Best Regards,
Andy Shevchenko



2021-12-23 10:46:20

by Sergey Ryazanov

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] wwan: Replace kernel.h with the necessary inclusions

On Thu, Dec 23, 2021 at 1:18 PM Andy Shevchenko
<[email protected]> wrote:
> On Thu, Dec 23, 2021 at 12:14:09PM +0200, Andy Shevchenko wrote:
>> On Wed, Dec 22, 2021 at 11:38:44PM +0300, Sergey Ryazanov wrote:
>>> On Wed, Dec 22, 2021 at 7:32 PM Andy Shevchenko
>>> <[email protected]> wrote:
>
> ...
>
>> Not sure what it's supposed from me to do. The forward declarations are
>> the tighten part of the cleanup (*) and it's exactly what is happening here,
>> i.e. replacing kernel.h "with the list of what is really being used".
>>
>> *) Either you need a header, or you need a forward declaration, or rely on
>> the compiler not to be so strict. I prefer the second option out of three.
>
> Ah, seems indeed the skbuf and netdevice ones can be split. Do you want me to
> resend as series of two?

No. The single patch cleanup looks pretty good.

It might be worth pointing out in the commit message that the other
included headers were removed as they indirectly include the kernel.h
header. This will be helpful for future readers. But I don’t think
such a comment is worth a patch update. So I am Ok if this patch will
be applied as is.

> (Sorry I have sent many similar changes and haven't remembered by heart where
> I did what exactly, but here it looks natural to cleanup that stuff at the
> same time, so the question is if it should be a separate change or not)

The patch looks good. Thank you for this hard cleanup work!

--
Sergey

2021-12-23 11:30:15

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH v1 1/1] wwan: Replace kernel.h with the necessary inclusions

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller <[email protected]>:

On Wed, 22 Dec 2021 18:32:56 +0200 you wrote:
> 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 <[email protected]>
>
> [...]

Here is the summary with links:
- [v1,1/1] wwan: Replace kernel.h with the necessary inclusions
https://git.kernel.org/netdev/net-next/c/30be4551f9e2

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html