net: don't include ethtool.h from netdevice.h
authorJakub Kicinski <kuba@kernel.org>
Fri, 20 Nov 2020 22:50:52 +0000 (14:50 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 24 Nov 2020 01:27:04 +0000 (17:27 -0800)
linux/netdevice.h is included in very many places, touching any
of its dependecies causes large incremental builds.

Drop the linux/ethtool.h include, linux/netdevice.h just needs
a forward declaration of struct ethtool_ops.

Fix all the places which made use of this implicit include.

Acked-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Shannon Nelson <snelson@pensando.io>
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Link: https://lore.kernel.org/r/20201120225052.1427503-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
45 files changed:
drivers/isdn/capi/capi.c
drivers/media/pci/ttpci/av7110_av.c
drivers/net/bonding/bond_procfs.c
drivers/net/can/usb/gs_usb.c
drivers/net/ethernet/amazon/ena/ena_ethtool.c
drivers/net/ethernet/aquantia/atlantic/aq_nic.h
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c
drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c
drivers/net/ethernet/google/gve/gve_ethtool.c
drivers/net/ethernet/hisilicon/hns3/hnae3.h
drivers/net/ethernet/huawei/hinic/hinic_port.h
drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
drivers/net/ethernet/mellanox/mlxsw/core_env.h
drivers/net/ethernet/mellanox/mlxsw/spectrum.h
drivers/net/ethernet/mellanox/mlxsw/switchx2.c
drivers/net/ethernet/pensando/ionic/ionic_lif.c
drivers/net/ethernet/pensando/ionic/ionic_stats.c
drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c
drivers/net/geneve.c
drivers/net/hyperv/netvsc_drv.c
drivers/net/hyperv/rndis_filter.c
drivers/net/ipvlan/ipvlan_main.c
drivers/net/nlmon.c
drivers/net/team/team.c
drivers/net/vrf.c
drivers/net/vsockmon.c
drivers/scsi/bnx2fc/bnx2fc_fcoe.c
drivers/scsi/fcoe/fcoe_transport.c
drivers/staging/fsl-dpaa2/ethsw/ethsw-ethtool.c
drivers/staging/wimax/i2400m/usb.c
include/linux/netdevice.h
include/linux/qed/qed_if.h
include/net/cfg80211.h
include/rdma/ib_addr.h
include/rdma/ib_verbs.h
net/packet/af_packet.c
net/sched/sch_cbs.c
net/sched/sch_taprio.c
net/socket.c

index 85767f52fe3c72c940aefa60fc8a229e4bb99cc5..fdf87acccd067a0b47dea01274585117ad75240b 100644 (file)
@@ -11,6 +11,7 @@
 
 #include <linux/compiler.h>
 #include <linux/module.h>
+#include <linux/ethtool.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/major.h>
index ea9f7d0058a215cf52cac38d64ca9259ce64f475..91f4866c7e59b125c5799c69fcb601fa5f267378 100644 (file)
@@ -11,6 +11,7 @@
  * the project's page is at https://linuxtv.org
  */
 
+#include <linux/ethtool.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/string.h>
index fd5c9cbe45b1be1af68252ac48aa68bd52004df3..56d34be5e79773e4a073f8f5fc84459eb9d1afd2 100644 (file)
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/proc_fs.h>
+#include <linux/ethtool.h>
 #include <linux/export.h>
 #include <net/net_namespace.h>
 #include <net/netns/generic.h>
index b3431c3feba1d1577288ab6b9c8719d36609d424..a0336e895d941163acf525ac7dc2bf7c6fd00860 100644 (file)
@@ -9,6 +9,7 @@
  * Many thanks to all socketcan devs!
  */
 
+#include <linux/ethtool.h>
 #include <linux/init.h>
 #include <linux/signal.h>
 #include <linux/module.h>
index 3b2cd28f962de66092d6b84e66a81edd26ce5ffb..6cdd9efe8df3463bad6c3e761dfeb42cef0954f1 100644 (file)
@@ -3,6 +3,7 @@
  * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
+#include <linux/ethtool.h>
 #include <linux/pci.h>
 
 #include "ena_netdev.h"
index 926cca9a0c837ce31685f4e52f6880e4e5ba6005..1a7148041e3dc6273dea0ee0c16cb8330c9991b0 100644 (file)
@@ -10,6 +10,8 @@
 #ifndef AQ_NIC_H
 #define AQ_NIC_H
 
+#include <linux/ethtool.h>
+
 #include "aq_common.h"
 #include "aq_rss.h"
 #include "aq_hw.h"
index 47b3c31278798b1b076f15fdd45d1e9d5a05311a..950ea26ae0d26effcb8c497162e8f9fbd7faacab 100644 (file)
@@ -20,6 +20,7 @@
 #define DRV_VER_MIN    10
 #define DRV_VER_UPD    1
 
+#include <linux/ethtool.h>
 #include <linux/interrupt.h>
 #include <linux/rhashtable.h>
 #include <linux/crash_dump.h>
index 23b80aa171dd0aabd5ff9c8519f593de91d25e2b..a217316228f46b7ab6386432c6464cde0ac9ebb6 100644 (file)
@@ -8,6 +8,7 @@
  * the Free Software Foundation.
  */
 
+#include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/netdevice.h>
index 16eebfc521096af4de929d90bfc21881c9ef41f4..66f2c553370c6ad7329ad5cf3ae87bc326d42654 100644 (file)
@@ -15,6 +15,7 @@
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
  * NONINFRINGEMENT.  See the GNU General Public License for more details.
  ***********************************************************************/
+#include <linux/ethtool.h>
 #include <linux/netdevice.h>
 #include <linux/net_tstamp.h>
 #include <linux/pci.h>
index c7bdac79299ac5ae3697aa49fcde5ca96be5dc6c..2f218fbfed0615cfe85721d7f9fe173cdb589288 100644 (file)
@@ -5,6 +5,7 @@
 
 /* ETHTOOL Support for VNIC_VF Device*/
 
+#include <linux/ethtool.h>
 #include <linux/pci.h>
 #include <linux/net_tstamp.h>
 
index 27308600da1532ebcb6ecf327327687c1d71570b..8e681ce72d629feffc4d91bf268c47c1c4466ac4 100644 (file)
@@ -39,6 +39,7 @@
 
 #include <linux/bitops.h>
 #include <linux/cache.h>
+#include <linux/ethtool.h>
 #include <linux/interrupt.h>
 #include <linux/list.h>
 #include <linux/netdevice.h>
index cd8f9a481d73b6bc8dcec8d9bd9668d6378fc53c..d546993bda09cce4cd49dce55345d7bb8ddc6a6b 100644 (file)
@@ -33,6 +33,7 @@
  * SOFTWARE.
  */
 
+#include <linux/ethtool.h>
 #include <linux/pci.h>
 
 #include "t4vf_common.h"
index 7b44769bd87c36f856e1ba9343b3558c4c087337..2fb197fd3daf0b09fd756b3df39bc10ae9fc3908 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (C) 2015-2019 Google, Inc.
  */
 
+#include <linux/ethtool.h>
 #include <linux/rtnetlink.h>
 #include "gve.h"
 #include "gve_adminq.h"
index 5bae5e859c81ba7d0a0e12347fd96fbe6462a20b..f6fac2418648729046b9da0d4f4367b85882d97e 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/dcbnl.h>
 #include <linux/delay.h>
 #include <linux/device.h>
+#include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/netdevice.h>
 #include <linux/pci.h>
index 9c3cbe45c9ec3c0caf532317177fe73d964ab333..c9ae3d4dc5470365c78074641f4ca3ce5e1dedf4 100644 (file)
@@ -8,6 +8,7 @@
 #define HINIC_PORT_H
 
 #include <linux/types.h>
+#include <linux/ethtool.h>
 #include <linux/etherdevice.h>
 #include <linux/bitops.h>
 
index 908fefaa6b85f212f17dbe61f4790c782c39a0e0..66776ba7bfb6043a46f598908d88bd37813578b5 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /* Copyright(c) 2013 - 2019 Intel Corporation. */
 
+#include <linux/ethtool.h>
 #include <linux/vmalloc.h>
 
 #include "fm10k.h"
index ceec649bdd13a9500ae9690c872304b2233ca708..103430400a8a3e035ca97cb852094addd19a2d65 100644 (file)
@@ -11,6 +11,7 @@
 #ifndef OTX2_COMMON_H
 #define OTX2_COMMON_H
 
+#include <linux/ethtool.h>
 #include <linux/pci.h>
 #include <linux/iommu.h>
 #include <linux/net_tstamp.h>
index 014ce8d3d97b3dc0f0a42de5c1126602a040499a..1c50d0f2219987b0ec45d239f3f1a2e0ef6b2892 100644 (file)
@@ -36,6 +36,7 @@
 
 #include <linux/bitops.h>
 #include <linux/compiler.h>
+#include <linux/ethtool.h>
 #include <linux/list.h>
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
index 8e36a2634ef5627aaa542527d29d04adf8c2429e..2b23f8a8786257b755b40884fee275660efd5a6f 100644 (file)
@@ -4,6 +4,9 @@
 #ifndef _MLXSW_CORE_ENV_H
 #define _MLXSW_CORE_ENV_H
 
+struct ethtool_modinfo;
+struct ethtool_eeprom;
+
 int mlxsw_env_module_temp_thresholds_get(struct mlxsw_core *core, int module,
                                         int off, int *temp);
 
index 74b3959b36d4db43e23c7d4c20c690ac899a1e48..642099fee3807e9b1a0328bf48db265d828b9b1f 100644 (file)
@@ -4,6 +4,7 @@
 #ifndef _MLXSW_SPECTRUM_H
 #define _MLXSW_SPECTRUM_H
 
+#include <linux/ethtool.h>
 #include <linux/types.h>
 #include <linux/netdevice.h>
 #include <linux/rhashtable.h>
index 5023d91269f45588c45060614a7f2d347ff18d28..40e2e79d451798eb7009a1de733fd4372893f223 100644 (file)
@@ -6,6 +6,7 @@
 #include <linux/types.h>
 #include <linux/pci.h>
 #include <linux/netdevice.h>
+#include <linux/ethtool.h>
 #include <linux/etherdevice.h>
 #include <linux/slab.h>
 #include <linux/device.h>
index deabd813e3fe3c80b0b5ff44d20c838800c0cb9a..0afec2fa572dd6910746d9661693b693647397ee 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /* Copyright(c) 2017 - 2019 Pensando Systems, Inc */
 
+#include <linux/ethtool.h>
 #include <linux/printk.h>
 #include <linux/dynamic_debug.h>
 #include <linux/netdevice.h>
index ff20a2ac4c2f1d4a771de42365742c6e7d99e9de..6ae75b771a1513573e11bde194db0fa62212be9d 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
 /* Copyright(c) 2017 - 2019 Pensando Systems, Inc */
 
+#include <linux/ethtool.h>
 #include <linux/kernel.h>
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
index d58b51d277f1873e42c4f9fea2f9e94aebe37674..ca1535ebb6e7bb31628336efaee127a5c7ca0adc 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <linux/etherdevice.h>
+#include <linux/ethtool.h>
 #include <linux/if_arp.h>
 #include <net/pkt_sched.h>
 #include "rmnet_config.h"
index ef9b5ea9073b415c482508454f3277d53d5c6ade..5523f069b9a5a0c3d84f80d7f534db56bc59108c 100644 (file)
@@ -7,6 +7,7 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
+#include <linux/ethtool.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/etherdevice.h>
index 261e6e55a907b2088f535908859afef1ad0589e2..d17bbc75f5e7fbdd6da1491c060acdaf9e3fed5d 100644 (file)
@@ -10,6 +10,7 @@
 
 #include <linux/init.h>
 #include <linux/atomic.h>
+#include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/highmem.h>
 #include <linux/device.h>
index b22e47bcfeca1a94c43cb5defe35579dfcfae756..2c2b55c32a7a2e5cbca40b243089d13a578c072b 100644 (file)
@@ -6,6 +6,7 @@
  *   Haiyang Zhang <haiyangz@microsoft.com>
  *   Hank Janssen  <hjanssen@microsoft.com>
  */
+#include <linux/ethtool.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/wait.h>
index 60b7d93bb834e6d48fab41723eeda55c5f116770..a707502a0c0f4aecfaaff6d80b35f29d9b6de5fd 100644 (file)
@@ -2,6 +2,8 @@
 /* Copyright (c) 2014 Mahesh Bandewar <maheshb@google.com>
  */
 
+#include <linux/ethtool.h>
+
 #include "ipvlan.h"
 
 static int ipvlan_set_port_mode(struct ipvl_port *port, u16 nval,
index afb119f383252cc4c78e5456d12b7066eb26953f..5e19a6839dea8f5e624c6cd823e6bb17faf2f4cc 100644 (file)
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0-only
+#include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index b4092127a92c1c2dadda6564e8c93d7e25406ca5..c19dac21c468b3e931fbeb05f7a26915817368ea 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (c) 2011 Jiri Pirko <jpirko@redhat.com>
  */
 
+#include <linux/ethtool.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/module.h>
index f2793ffde19134a3705453bdc2c3eeed3a75237f..f8d711a847633c8ca76c3904e39c854a7787676d 100644 (file)
@@ -9,6 +9,7 @@
  * Based on dummy, team and ipvlan drivers
  */
 
+#include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
index e8563acf98e8d8fef019f89d814e28e979b8ba2c..b1bb1b04b664f0e65a8d55f2820a39d9e8e81381 100644 (file)
@@ -1,4 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0-only
+#include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/if_arp.h>
index 6890bbe04a8c14d431b0cfb4990067c43e01060f..08fb7d5d08b3100a7090083ed82eed3c739abd82 100644 (file)
@@ -16,6 +16,8 @@
 
 #include "bnx2fc.h"
 
+#include <linux/ethtool.h>
+
 static struct list_head adapter_list;
 static struct list_head if_list;
 static u32 adapter_count;
index 6e187d0e71fd2e69f85e003cbd005513e20bcd56..b927b3d845233f60b2d17f7f45be570df5aa3e91 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/kernel.h>
 #include <linux/list.h>
 #include <linux/netdevice.h>
+#include <linux/ethtool.h>
 #include <linux/errno.h>
 #include <linux/crc32.h>
 #include <scsi/libfcoe.h>
index ace4a6d28562277e994cb9916f7f331be479e3bb..ad55cd73884735e2a09e8d603fd68d6ece9383f2 100644 (file)
@@ -7,6 +7,8 @@
  *
  */
 
+#include <linux/ethtool.h>
+
 #include "ethsw.h"
 
 static struct {
index 3b84dd7b55678e69eb9523440aaf470a8e5b8f92..f250d03ce7c700b6b341b2843720954704ee31a2 100644 (file)
@@ -51,6 +51,7 @@
 #include "i2400m-usb.h"
 #include "linux-wimax-i2400m.h"
 #include <linux/debugfs.h>
+#include <linux/ethtool.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 
index 03433a4c929e21308ac98127af83ac4a7e7212c3..0049e8fe49055e5e3634b93b654d62d0efa071c9 100644 (file)
@@ -34,7 +34,6 @@
 #include <linux/workqueue.h>
 #include <linux/dynamic_queue_limits.h>
 
-#include <linux/ethtool.h>
 #include <net/net_namespace.h>
 #ifdef CONFIG_DCB
 #include <net/dcbnl.h>
@@ -51,6 +50,7 @@
 
 struct netpoll_info;
 struct device;
+struct ethtool_ops;
 struct phy_device;
 struct dsa_port;
 struct ip_tunnel_parm;
index 57fb295ea41a9a80146e68d1628d727fa3156dac..68d17a4fbf20a4faf8daa26bac59a5bef7760a05 100644 (file)
@@ -7,6 +7,7 @@
 #ifndef _QED_IF_H
 #define _QED_IF_H
 
+#include <linux/ethtool.h>
 #include <linux/types.h>
 #include <linux/interrupt.h>
 #include <linux/netdevice.h>
index ab249ca5d5d196a05edaa3a903d0d5b54eec281f..78c763dfc99abe3fe3432a7fc85347b98cc9e3f6 100644 (file)
@@ -10,6 +10,7 @@
  * Copyright (C) 2018-2020 Intel Corporation
  */
 
+#include <linux/ethtool.h>
 #include <linux/netdevice.h>
 #include <linux/debugfs.h>
 #include <linux/list.h>
index b0e636ac6690099f1c21c17707748f7baae2acb8..d808dc3d239e8c069cfc33fac238f98652d24e9e 100644 (file)
@@ -7,6 +7,7 @@
 #ifndef IB_ADDR_H
 #define IB_ADDR_H
 
+#include <linux/ethtool.h>
 #include <linux/in.h>
 #include <linux/in6.h>
 #include <linux/if_arp.h>
index 9bf6c319a670e2472dc0fcf3fbc55324b51a5cfb..3883efd588aa84399cde3860c356e76b96b8cb9a 100644 (file)
@@ -12,6 +12,7 @@
 #ifndef IB_VERBS_H
 #define IB_VERBS_H
 
+#include <linux/ethtool.h>
 #include <linux/types.h>
 #include <linux/device.h>
 #include <linux/dma-mapping.h>
index 62ebfaa7adcb4d6fe4fe2a87a2018f3c0a29a167..48a0ed836b463aa34b89c4718daa9653e4e7d5d0 100644 (file)
@@ -46,6 +46,7 @@
  *                                     Copyright (C) 2011, <lokec@ccs.neu.edu>
  */
 
+#include <linux/ethtool.h>
 #include <linux/types.h>
 #include <linux/mm.h>
 #include <linux/capability.h>
index 2eaac2ff380fafaf9dbaeade2b86e029bddceecc..459cc240eda9c44ded125519c9f86384f98a18f2 100644 (file)
@@ -50,6 +50,7 @@
  *     locredit = max_frame_size * (sendslope / port_transmit_rate)
  */
 
+#include <linux/ethtool.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
index b0ad7687ee2c85de6d9c7264a886af87c553e8b5..26fb8a62996be1338911bd35c9dd33effa8d0b0f 100644 (file)
@@ -6,6 +6,7 @@
  *
  */
 
+#include <linux/ethtool.h>
 #include <linux/types.h>
 #include <linux/slab.h>
 #include <linux/kernel.h>
index 152b1dcf93c6ee5880a06c594d996bab263a1b65..bfef11ba35b8fa2a121ccabd328efa39c2d80f65 100644 (file)
@@ -52,6 +52,7 @@
  *     Based upon Swansea University Computer Society NET3.039
  */
 
+#include <linux/ethtool.h>
 #include <linux/mm.h>
 #include <linux/socket.h>
 #include <linux/file.h>