* [PATCH bpf-next v2 1/2] net: add includes masked by netdevice.h including uapi/bpf.h
2021-12-30 1:27 [PATCH bpf-next v2 0/2] lighten uapi/bpf.h rebuilds Jakub Kicinski
@ 2021-12-30 1:27 ` Jakub Kicinski
2022-01-06 13:03 ` Wei Liu
2021-12-30 1:27 ` [PATCH bpf-next v2 2/2] bpf: invert the dependency between bpf-netns.h and netns/bpf.h Jakub Kicinski
2021-12-30 4:09 ` [PATCH bpf-next v2 0/2] lighten uapi/bpf.h rebuilds Alexei Starovoitov
2 siblings, 1 reply; 5+ messages in thread
From: Jakub Kicinski @ 2021-12-30 1:27 UTC (permalink / raw)
To: ast, daniel
Cc: bpf, netdev, Jakub Kicinski, shayagr, akiyano, darinzon, ndagan,
saeedb, sgoutham, kys, haiyangz, sthemmin, wei.liu, decui,
peppe.cavallaro, alexandre.torgue, joabreu, mcoquelin.stm32,
grygorii.strashko, sameehj, chenhao288, moyufeng,
linux-arm-kernel, linux-hyperv, linux-stm32, linux-omap
Add missing includes unmasked by the subsequent change.
Mostly network drivers missing an include for XDP_PACKET_HEADROOM.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
v2:
- fix buildbot's randconfig failure in ipv6
CC: shayagr@amazon.com
CC: akiyano@amazon.com
CC: darinzon@amazon.com
CC: ndagan@amazon.com
CC: saeedb@amazon.com
CC: sgoutham@marvell.com
CC: kys@microsoft.com
CC: haiyangz@microsoft.com
CC: sthemmin@microsoft.com
CC: wei.liu@kernel.org
CC: decui@microsoft.com
CC: peppe.cavallaro@st.com
CC: alexandre.torgue@foss.st.com
CC: joabreu@synopsys.com
CC: mcoquelin.stm32@gmail.com
CC: grygorii.strashko@ti.com
CC: sameehj@amazon.com
CC: chenhao288@hisilicon.com
CC: moyufeng@huawei.com
CC: linux-arm-kernel@lists.infradead.org
CC: linux-hyperv@vger.kernel.org
CC: linux-stm32@st-md-mailman.stormreply.com
CC: linux-omap@vger.kernel.org
---
drivers/net/ethernet/amazon/ena/ena_netdev.h | 1 +
drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 1 +
drivers/net/ethernet/microsoft/mana/mana_en.c | 2 ++
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 1 +
drivers/net/ethernet/ti/cpsw_priv.h | 2 ++
include/net/ip6_fib.h | 1 +
kernel/bpf/net_namespace.c | 1 +
7 files changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h
index 0c39fc2fa345..9391c7101fba 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.h
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h
@@ -14,6 +14,7 @@
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
+#include <uapi/linux/bpf.h>
#include "ena_com.h"
#include "ena_eth_com.h"
diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
index 50bbe79fb93d..4367edbdd579 100644
--- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
+++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c
@@ -10,6 +10,7 @@
#include <linux/iommu.h>
#include <net/ip.h>
#include <net/tso.h>
+#include <uapi/linux/bpf.h>
#include "nic_reg.h"
#include "nic.h"
diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index c1d5a374b967..2ece9e90dc50 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -1,6 +1,8 @@
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
/* Copyright (c) 2021, Microsoft Corporation. */
+#include <uapi/linux/bpf.h>
+
#include <linux/inetdevice.h>
#include <linux/etherdevice.h>
#include <linux/ethtool.h>
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
index 4f5292cadf54..d42b6af32d6e 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
@@ -22,6 +22,7 @@
#include <linux/net_tstamp.h>
#include <linux/reset.h>
#include <net/page_pool.h>
+#include <uapi/linux/bpf.h>
struct stmmac_resources {
void __iomem *addr;
diff --git a/drivers/net/ethernet/ti/cpsw_priv.h b/drivers/net/ethernet/ti/cpsw_priv.h
index f33c882eb70e..74555970730c 100644
--- a/drivers/net/ethernet/ti/cpsw_priv.h
+++ b/drivers/net/ethernet/ti/cpsw_priv.h
@@ -6,6 +6,8 @@
#ifndef DRIVERS_NET_ETHERNET_TI_CPSW_PRIV_H_
#define DRIVERS_NET_ETHERNET_TI_CPSW_PRIV_H_
+#include <uapi/linux/bpf.h>
+
#include "davinci_cpdma.h"
#define CPSW_DEBUG (NETIF_MSG_HW | NETIF_MSG_WOL | \
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index 83b8070d1cc9..a9a4ccc0cdb5 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -20,6 +20,7 @@
#include <net/inetpeer.h>
#include <net/fib_notifier.h>
#include <linux/indirect_call_wrapper.h>
+#include <uapi/linux/bpf.h>
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
#define FIB6_TABLE_HASHSZ 256
diff --git a/kernel/bpf/net_namespace.c b/kernel/bpf/net_namespace.c
index 542f275bf252..868cc2c43899 100644
--- a/kernel/bpf/net_namespace.c
+++ b/kernel/bpf/net_namespace.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
#include <linux/bpf.h>
+#include <linux/bpf-netns.h>
#include <linux/filter.h>
#include <net/net_namespace.h>
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH bpf-next v2 2/2] bpf: invert the dependency between bpf-netns.h and netns/bpf.h
2021-12-30 1:27 [PATCH bpf-next v2 0/2] lighten uapi/bpf.h rebuilds Jakub Kicinski
2021-12-30 1:27 ` [PATCH bpf-next v2 1/2] net: add includes masked by netdevice.h including uapi/bpf.h Jakub Kicinski
@ 2021-12-30 1:27 ` Jakub Kicinski
2021-12-30 4:09 ` [PATCH bpf-next v2 0/2] lighten uapi/bpf.h rebuilds Alexei Starovoitov
2 siblings, 0 replies; 5+ messages in thread
From: Jakub Kicinski @ 2021-12-30 1:27 UTC (permalink / raw)
To: ast, daniel; +Cc: bpf, netdev, Jakub Kicinski
netns/bpf.h gets included by netdevice.h (thru net_namespace.h)
which in turn gets included in a lot of places. We should keep
netns/bpf.h as light-weight as possible.
bpf-netns.h seems to contain more implementation details than
deserves to be included in a netns header. It needs to pull in
uapi/bpf.h to get various enum types.
Move enum netns_bpf_attach_type to netns/bpf.h and invert the
dependency. This makes netns/bpf.h fit the mold of a struct
definition header more clearly, and drops the number of objects
rebuilt when uapi/bpf.h is touched from 7.7k to 1.1k.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
include/linux/bpf-netns.h | 8 +-------
include/net/netns/bpf.h | 9 ++++++++-
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/include/linux/bpf-netns.h b/include/linux/bpf-netns.h
index 722f799c1a2e..413cfa5e4b07 100644
--- a/include/linux/bpf-netns.h
+++ b/include/linux/bpf-netns.h
@@ -3,15 +3,9 @@
#define _BPF_NETNS_H
#include <linux/mutex.h>
+#include <net/netns/bpf.h>
#include <uapi/linux/bpf.h>
-enum netns_bpf_attach_type {
- NETNS_BPF_INVALID = -1,
- NETNS_BPF_FLOW_DISSECTOR = 0,
- NETNS_BPF_SK_LOOKUP,
- MAX_NETNS_BPF_ATTACH_TYPE
-};
-
static inline enum netns_bpf_attach_type
to_netns_bpf_attach_type(enum bpf_attach_type attach_type)
{
diff --git a/include/net/netns/bpf.h b/include/net/netns/bpf.h
index 0ca6a1b87185..2c01a278d1eb 100644
--- a/include/net/netns/bpf.h
+++ b/include/net/netns/bpf.h
@@ -6,11 +6,18 @@
#ifndef __NETNS_BPF_H__
#define __NETNS_BPF_H__
-#include <linux/bpf-netns.h>
+#include <linux/list.h>
struct bpf_prog;
struct bpf_prog_array;
+enum netns_bpf_attach_type {
+ NETNS_BPF_INVALID = -1,
+ NETNS_BPF_FLOW_DISSECTOR = 0,
+ NETNS_BPF_SK_LOOKUP,
+ MAX_NETNS_BPF_ATTACH_TYPE
+};
+
struct netns_bpf {
/* Array of programs to run compiled from progs or links */
struct bpf_prog_array __rcu *run_array[MAX_NETNS_BPF_ATTACH_TYPE];
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread