[PATCH net-next] net: don't include ndisc.h from ipv6.h

Subsystems: 6lowpan generic (btle/ieee 802.15.4), bonding driver, ieee 802.15.4 subsystem, management component transport protocol (mctp), networking drivers, networking [general], networking [ipv4/ipv6], the rest, usb cdc ethernet driver, usb networking drivers

STALE1680d LANDED

Landed in mainline as c78b8b20e349 on 2022-02-04.

5 messages, 4 authors, 2022-02-03 · open the first message on its own page

[PATCH net-next] net: don't include ndisc.h from ipv6.h

From: Jakub Kicinski <kuba@kernel.org>
Date: 2022-02-03 04:35:15

Nothing in ipv6.h needs ndisc.h, drop it.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: j.vosburgh@gmail.com
CC: vfalico@gmail.com
CC: andy@greyhouse.net
CC: oliver@neukum.org
CC: yoshfuji@linux-ipv6.org
CC: dsahern@kernel.org
CC: alex.aring@gmail.com
CC: jukka.rissanen@linux.intel.com
CC: stefan@datenfreihafen.org
CC: jk@codeconstruct.com.au
CC: matt@codeconstruct.com.au
CC: linux-usb@vger.kernel.org
CC: linux-bluetooth@vger.kernel.org
CC: linux-wpan@vger.kernel.org
---
 drivers/net/bonding/bond_alb.c | 1 +
 drivers/net/usb/cdc_mbim.c     | 1 +
 include/net/ipv6.h             | 1 -
 include/net/ipv6_frag.h        | 1 +
 include/net/ndisc.h            | 1 -
 net/6lowpan/core.c             | 1 +
 net/ieee802154/6lowpan/core.c  | 1 +
 net/mctp/device.c              | 1 +
 8 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index c98a4b0a8453..303c8d32d451 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -19,6 +19,7 @@
 #include <linux/in.h>
 #include <net/arp.h>
 #include <net/ipv6.h>
+#include <net/ndisc.h>
 #include <asm/byteorder.h>
 #include <net/bonding.h>
 #include <net/bond_alb.h>
diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c
index 82bb5ed94c48..a7c1434fe2da 100644
--- a/drivers/net/usb/cdc_mbim.c
+++ b/drivers/net/usb/cdc_mbim.c
@@ -21,6 +21,7 @@
 #include <net/ipv6.h>
 #include <net/addrconf.h>
 #include <net/ipv6_stubs.h>
+#include <net/ndisc.h>
 
 /* alternative VLAN for IP session 0 if not untagged */
 #define MBIM_IPS0_VID	4094
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 082f30256f59..cda1f205f391 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -15,7 +15,6 @@
 #include <linux/refcount.h>
 #include <linux/jump_label_ratelimit.h>
 #include <net/if_inet6.h>
-#include <net/ndisc.h>
 #include <net/flow.h>
 #include <net/flow_dissector.h>
 #include <net/snmp.h>
diff --git a/include/net/ipv6_frag.h b/include/net/ipv6_frag.h
index 0a4779175a52..5052c66e22d2 100644
--- a/include/net/ipv6_frag.h
+++ b/include/net/ipv6_frag.h
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _IPV6_FRAG_H
 #define _IPV6_FRAG_H
+#include <linux/icmpv6.h>
 #include <linux/kernel.h>
 #include <net/addrconf.h>
 #include <net/ipv6.h>
diff --git a/include/net/ndisc.h b/include/net/ndisc.h
index 53cb8de0e589..07d48bd6c0bd 100644
--- a/include/net/ndisc.h
+++ b/include/net/ndisc.h
@@ -71,7 +71,6 @@ do {								\
 
 struct ctl_table;
 struct inet6_dev;
-struct net_device;
 struct net_proto_family;
 struct sk_buff;
 struct prefix_info;
diff --git a/net/6lowpan/core.c b/net/6lowpan/core.c
index a068757eabaf..7b3341cef926 100644
--- a/net/6lowpan/core.c
+++ b/net/6lowpan/core.c
@@ -5,6 +5,7 @@
  * (C) 2015 Pengutronix, Alexander Aring <aar@pengutronix.de>
  */
 
+#include <linux/if_arp.h>
 #include <linux/module.h>
 
 #include <net/6lowpan.h>
diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c
index 2cf62718a282..2c087b7f17c5 100644
--- a/net/ieee802154/6lowpan/core.c
+++ b/net/ieee802154/6lowpan/core.c
@@ -47,6 +47,7 @@
 #include <linux/module.h>
 #include <linux/netdevice.h>
 #include <linux/ieee802154.h>
+#include <linux/if_arp.h>
 
 #include <net/ipv6.h>
 
diff --git a/net/mctp/device.c b/net/mctp/device.c
index ef2755f82f87..02ddc0f1bd3e 100644
--- a/net/mctp/device.c
+++ b/net/mctp/device.c
@@ -6,6 +6,7 @@
  * Copyright (c) 2021 Google
  */
 
+#include <linux/if_arp.h>
 #include <linux/if_link.h>
 #include <linux/mctp.h>
 #include <linux/netdevice.h>
-- 
2.34.1

Re: [PATCH net-next] net: don't include ndisc.h from ipv6.h

From: Jeremy Kerr <jk@codeconstruct.com.au>
Date: 2022-02-03 04:54:03

Hi Jakub,
Nothing in ipv6.h needs ndisc.h, drop it.
Looks good, we lose the ARPHRD definitions without ndisc.h, but your
change to add if_arp.h addresses that:
quoted hunk
--- a/net/mctp/device.c
+++ b/net/mctp/device.c
@@ -6,6 +6,7 @@
  * Copyright (c) 2021 Google
  */
 
+#include <linux/if_arp.h>
 #include <linux/if_link.h>
 #include <linux/mctp.h>
 #include <linux/netdevice.h>
So, for the net/mctp part:

Acked-by: Jeremy Kerr <jk@codeconstruct.com.au>

Cheers,


Jeremy

Re: [PATCH net-next] net: don't include ndisc.h from ipv6.h

From: Stefan Schmidt <stefan@datenfreihafen.org>
Date: 2022-02-03 15:14:58

Hello.

On 03.02.22 05:34, Jakub Kicinski wrote:
Nothing in ipv6.h needs ndisc.h, drop it.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: j.vosburgh@gmail.com
CC: vfalico@gmail.com
CC: andy@greyhouse.net
CC: oliver@neukum.org
CC: yoshfuji@linux-ipv6.org
CC: dsahern@kernel.org
CC: alex.aring@gmail.com
CC: jukka.rissanen@linux.intel.com
CC: stefan@datenfreihafen.org
CC: jk@codeconstruct.com.au
CC: matt@codeconstruct.com.au
CC: linux-usb@vger.kernel.org
CC: linux-bluetooth@vger.kernel.org
CC: linux-wpan@vger.kernel.org
---
  drivers/net/bonding/bond_alb.c | 1 +
  drivers/net/usb/cdc_mbim.c     | 1 +
  include/net/ipv6.h             | 1 -
  include/net/ipv6_frag.h        | 1 +
  include/net/ndisc.h            | 1 -
  net/6lowpan/core.c             | 1 +
  net/ieee802154/6lowpan/core.c  | 1 +
For ieee802154:

Acked-by: Stefan Schmidt <stefan@datenfreihafen.org>

regards
Stefan Schmidt

Re: [PATCH net-next] net: don't include ndisc.h from ipv6.h

From: David Ahern <hidden>
Date: 2022-02-03 22:48:32

On 2/2/22 9:34 PM, Jakub Kicinski wrote:
quoted hunk
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 082f30256f59..cda1f205f391 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -15,7 +15,6 @@
 #include <linux/refcount.h>
 #include <linux/jump_label_ratelimit.h>
 #include <net/if_inet6.h>
-#include <net/ndisc.h>
 #include <net/flow.h>
 #include <net/flow_dissector.h>
 #include <net/snmp.h>
diff --git a/include/net/ipv6_frag.h b/include/net/ipv6_frag.h
index 0a4779175a52..5052c66e22d2 100644
--- a/include/net/ipv6_frag.h
+++ b/include/net/ipv6_frag.h
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _IPV6_FRAG_H
 #define _IPV6_FRAG_H
+#include <linux/icmpv6.h>
 #include <linux/kernel.h>
 #include <net/addrconf.h>
 #include <net/ipv6.h>
diff --git a/include/net/ndisc.h b/include/net/ndisc.h
index 53cb8de0e589..07d48bd6c0bd 100644
--- a/include/net/ndisc.h
+++ b/include/net/ndisc.h
@@ -71,7 +71,6 @@ do {								\
 
 struct ctl_table;
 struct inet6_dev;
-struct net_device;
ndisc_parse_options references net_device. This part seems unrelated to
the patch intent.
 struct net_proto_family;
 struct sk_buff;
 struct prefix_info;

Re: [PATCH net-next] net: don't include ndisc.h from ipv6.h

From: Jakub Kicinski <kuba@kernel.org>
Date: 2022-02-03 23:10:28

On Thu, 3 Feb 2022 15:48:28 -0700 David Ahern wrote:
quoted
--- a/include/net/ndisc.h
+++ b/include/net/ndisc.h
@@ -71,7 +71,6 @@ do {								\
 
 struct ctl_table;
 struct inet6_dev;
-struct net_device;  
ndisc_parse_options references net_device. This part seems unrelated to
the patch intent.
Indeed, I'll post v2 with this fixed. The reason was this header
includes linux/netdevice.h so the forward declaration is unnecessary.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help