]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - queue-6.6/i40e-remove-circular-header-dependencies-and-fix-hea.patch
Fixes for 6.6
[thirdparty/kernel/stable-queue.git] / queue-6.6 / i40e-remove-circular-header-dependencies-and-fix-hea.patch
1 From 08d61eed0f76d565dd7c8bb18246c6b9b71d4de7 Mon Sep 17 00:00:00 2001
2 From: Sasha Levin <sashal@kernel.org>
3 Date: Wed, 27 Sep 2023 10:31:34 +0200
4 Subject: i40e: Remove circular header dependencies and fix headers
5
6 From: Ivan Vecera <ivecera@redhat.com>
7
8 [ Upstream commit 56df345917c09ffc00b7834f88990a7a7c338b5c ]
9
10 Similarly as for ice driver [1] there are also circular header
11 dependencies in i40e driver:
12 i40e.h -> i40e_virtchnl_pf.h -> i40e.h
13
14 Another issue is that i40e header files does not contain their own
15 dependencies on other header files (both private and standard) so their
16 inclusion in .c file require to add these deps in certain order to
17 that .c file to make it compilable.
18
19 Fix both issues by removal the mentioned circular dependency, by filling
20 i40e headers with their dependencies so they can be placed anywhere in
21 a source code. Additionally remove bunch of includes from i40e.h super
22 header file that are not necessary and include i40e.h only in .c files
23 that really require it.
24
25 [1] 649c87c6ff52 ("ice: remove circular header dependencies on ice.h")
26
27 Signed-off-by: Ivan Vecera <ivecera@redhat.com>
28 Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
29 Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
30 Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
31 Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
32 Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
33 Stable-dep-of: 6dbdd4de0362 ("e1000e: Workaround for sporadic MDI error on Meteor Lake systems")
34 Signed-off-by: Sasha Levin <sashal@kernel.org>
35 ---
36 drivers/net/ethernet/intel/i40e/i40e.h | 43 ++++---------------
37 drivers/net/ethernet/intel/i40e/i40e_adminq.c | 4 +-
38 .../net/ethernet/intel/i40e/i40e_adminq_cmd.h | 2 +
39 drivers/net/ethernet/intel/i40e/i40e_client.c | 1 -
40 drivers/net/ethernet/intel/i40e/i40e_common.c | 11 +++--
41 drivers/net/ethernet/intel/i40e/i40e_dcb.c | 4 +-
42 drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c | 2 +-
43 drivers/net/ethernet/intel/i40e/i40e_ddp.c | 2 +-
44 .../net/ethernet/intel/i40e/i40e_debugfs.c | 3 +-
45 drivers/net/ethernet/intel/i40e/i40e_diag.h | 5 ++-
46 .../net/ethernet/intel/i40e/i40e_ethtool.c | 3 +-
47 drivers/net/ethernet/intel/i40e/i40e_hmc.c | 3 +-
48 drivers/net/ethernet/intel/i40e/i40e_hmc.h | 4 ++
49 .../net/ethernet/intel/i40e/i40e_lan_hmc.c | 8 ++--
50 .../net/ethernet/intel/i40e/i40e_lan_hmc.h | 2 +
51 drivers/net/ethernet/intel/i40e/i40e_main.c | 15 ++++---
52 drivers/net/ethernet/intel/i40e/i40e_nvm.c | 2 +
53 .../net/ethernet/intel/i40e/i40e_prototype.h | 5 +--
54 drivers/net/ethernet/intel/i40e/i40e_ptp.c | 3 +-
55 drivers/net/ethernet/intel/i40e/i40e_txrx.c | 7 ++-
56 drivers/net/ethernet/intel/i40e/i40e_txrx.h | 1 +
57 .../ethernet/intel/i40e/i40e_txrx_common.h | 2 +
58 drivers/net/ethernet/intel/i40e/i40e_type.h | 7 +--
59 .../ethernet/intel/i40e/i40e_virtchnl_pf.c | 2 +
60 .../ethernet/intel/i40e/i40e_virtchnl_pf.h | 4 +-
61 drivers/net/ethernet/intel/i40e/i40e_xsk.c | 4 --
62 drivers/net/ethernet/intel/i40e/i40e_xsk.h | 4 ++
63 27 files changed, 72 insertions(+), 81 deletions(-)
64
65 diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
66 index 6f08c8fe653bd..3e6839ac1f0f1 100644
67 --- a/drivers/net/ethernet/intel/i40e/i40e.h
68 +++ b/drivers/net/ethernet/intel/i40e/i40e.h
69 @@ -4,47 +4,20 @@
70 #ifndef _I40E_H_
71 #define _I40E_H_
72
73 -#include <net/tcp.h>
74 -#include <net/udp.h>
75 -#include <linux/types.h>
76 -#include <linux/errno.h>
77 -#include <linux/module.h>
78 -#include <linux/pci.h>
79 -#include <linux/netdevice.h>
80 -#include <linux/ioport.h>
81 -#include <linux/iommu.h>
82 -#include <linux/slab.h>
83 -#include <linux/list.h>
84 -#include <linux/hashtable.h>
85 -#include <linux/string.h>
86 -#include <linux/in.h>
87 -#include <linux/ip.h>
88 -#include <linux/sctp.h>
89 -#include <linux/pkt_sched.h>
90 -#include <linux/ipv6.h>
91 -#include <net/checksum.h>
92 -#include <net/ip6_checksum.h>
93 #include <linux/ethtool.h>
94 -#include <linux/if_vlan.h>
95 -#include <linux/if_macvlan.h>
96 -#include <linux/if_bridge.h>
97 -#include <linux/clocksource.h>
98 -#include <linux/net_tstamp.h>
99 +#include <linux/pci.h>
100 #include <linux/ptp_clock_kernel.h>
101 +#include <linux/types.h>
102 +#include <linux/avf/virtchnl.h>
103 +#include <linux/net/intel/i40e_client.h>
104 #include <net/pkt_cls.h>
105 -#include <net/pkt_sched.h>
106 -#include <net/tc_act/tc_gact.h>
107 -#include <net/tc_act/tc_mirred.h>
108 #include <net/udp_tunnel.h>
109 -#include <net/xdp_sock.h>
110 -#include <linux/bitfield.h>
111 -#include "i40e_type.h"
112 +#include "i40e_dcb.h"
113 +#include "i40e_debug.h"
114 +#include "i40e_io.h"
115 #include "i40e_prototype.h"
116 -#include <linux/net/intel/i40e_client.h>
117 -#include <linux/avf/virtchnl.h>
118 -#include "i40e_virtchnl_pf.h"
119 +#include "i40e_register.h"
120 #include "i40e_txrx.h"
121 -#include "i40e_dcb.h"
122
123 /* Useful i40e defaults */
124 #define I40E_MAX_VEB 16
125 diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq.c b/drivers/net/ethernet/intel/i40e/i40e_adminq.c
126 index e72cfe587c89e..9ce6e633cc2f0 100644
127 --- a/drivers/net/ethernet/intel/i40e/i40e_adminq.c
128 +++ b/drivers/net/ethernet/intel/i40e/i40e_adminq.c
129 @@ -1,9 +1,9 @@
130 // SPDX-License-Identifier: GPL-2.0
131 /* Copyright(c) 2013 - 2018 Intel Corporation. */
132
133 -#include "i40e_type.h"
134 +#include <linux/delay.h>
135 +#include "i40e_alloc.h"
136 #include "i40e_register.h"
137 -#include "i40e_adminq.h"
138 #include "i40e_prototype.h"
139
140 static void i40e_resume_aq(struct i40e_hw *hw);
141 diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h b/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
142 index 3357d65a906bf..18a1c3b6d72c5 100644
143 --- a/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
144 +++ b/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
145 @@ -4,6 +4,8 @@
146 #ifndef _I40E_ADMINQ_CMD_H_
147 #define _I40E_ADMINQ_CMD_H_
148
149 +#include <linux/bits.h>
150 +
151 /* This header file defines the i40e Admin Queue commands and is shared between
152 * i40e Firmware and Software.
153 *
154 diff --git a/drivers/net/ethernet/intel/i40e/i40e_client.c b/drivers/net/ethernet/intel/i40e/i40e_client.c
155 index 639c5a1ca853b..306758428aefd 100644
156 --- a/drivers/net/ethernet/intel/i40e/i40e_client.c
157 +++ b/drivers/net/ethernet/intel/i40e/i40e_client.c
158 @@ -6,7 +6,6 @@
159 #include <linux/net/intel/i40e_client.h>
160
161 #include "i40e.h"
162 -#include "i40e_prototype.h"
163
164 static LIST_HEAD(i40e_devices);
165 static DEFINE_MUTEX(i40e_device_mutex);
166 diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
167 index 1b493854f5229..e0685219dbde9 100644
168 --- a/drivers/net/ethernet/intel/i40e/i40e_common.c
169 +++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
170 @@ -1,11 +1,14 @@
171 // SPDX-License-Identifier: GPL-2.0
172 /* Copyright(c) 2013 - 2021 Intel Corporation. */
173
174 -#include "i40e.h"
175 -#include "i40e_type.h"
176 -#include "i40e_adminq.h"
177 -#include "i40e_prototype.h"
178 #include <linux/avf/virtchnl.h>
179 +#include <linux/delay.h>
180 +#include <linux/etherdevice.h>
181 +#include <linux/pci.h>
182 +#include "i40e_adminq_cmd.h"
183 +#include "i40e_devids.h"
184 +#include "i40e_prototype.h"
185 +#include "i40e_register.h"
186
187 /**
188 * i40e_set_mac_type - Sets MAC type
189 diff --git a/drivers/net/ethernet/intel/i40e/i40e_dcb.c b/drivers/net/ethernet/intel/i40e/i40e_dcb.c
190 index f81e744c0fb36..68602fc375f62 100644
191 --- a/drivers/net/ethernet/intel/i40e/i40e_dcb.c
192 +++ b/drivers/net/ethernet/intel/i40e/i40e_dcb.c
193 @@ -1,9 +1,9 @@
194 // SPDX-License-Identifier: GPL-2.0
195 /* Copyright(c) 2013 - 2021 Intel Corporation. */
196
197 -#include "i40e_adminq.h"
198 -#include "i40e_prototype.h"
199 +#include "i40e_alloc.h"
200 #include "i40e_dcb.h"
201 +#include "i40e_prototype.h"
202
203 /**
204 * i40e_get_dcbx_status
205 diff --git a/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c b/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
206 index 195421d863ab1..077a95dad32cf 100644
207 --- a/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
208 +++ b/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c
209 @@ -2,8 +2,8 @@
210 /* Copyright(c) 2013 - 2021 Intel Corporation. */
211
212 #ifdef CONFIG_I40E_DCB
213 -#include "i40e.h"
214 #include <net/dcbnl.h>
215 +#include "i40e.h"
216
217 #define I40E_DCBNL_STATUS_SUCCESS 0
218 #define I40E_DCBNL_STATUS_ERROR 1
219 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ddp.c b/drivers/net/ethernet/intel/i40e/i40e_ddp.c
220 index 0e72abd178ae3..21b3518c40968 100644
221 --- a/drivers/net/ethernet/intel/i40e/i40e_ddp.c
222 +++ b/drivers/net/ethernet/intel/i40e/i40e_ddp.c
223 @@ -1,9 +1,9 @@
224 // SPDX-License-Identifier: GPL-2.0
225 /* Copyright(c) 2013 - 2018 Intel Corporation. */
226
227 +#include <linux/firmware.h>
228 #include "i40e.h"
229
230 -#include <linux/firmware.h>
231
232 /**
233 * i40e_ddp_profiles_eq - checks if DDP profiles are the equivalent
234 diff --git a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
235 index 1a497cb077100..999c9708def53 100644
236 --- a/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
237 +++ b/drivers/net/ethernet/intel/i40e/i40e_debugfs.c
238 @@ -5,8 +5,9 @@
239
240 #include <linux/fs.h>
241 #include <linux/debugfs.h>
242 -
243 +#include <linux/if_bridge.h>
244 #include "i40e.h"
245 +#include "i40e_virtchnl_pf.h"
246
247 static struct dentry *i40e_dbg_root;
248
249 diff --git a/drivers/net/ethernet/intel/i40e/i40e_diag.h b/drivers/net/ethernet/intel/i40e/i40e_diag.h
250 index c3ce5f35211f0..ece3a6b9a5c61 100644
251 --- a/drivers/net/ethernet/intel/i40e/i40e_diag.h
252 +++ b/drivers/net/ethernet/intel/i40e/i40e_diag.h
253 @@ -4,7 +4,10 @@
254 #ifndef _I40E_DIAG_H_
255 #define _I40E_DIAG_H_
256
257 -#include "i40e_type.h"
258 +#include "i40e_adminq_cmd.h"
259 +
260 +/* forward-declare the HW struct for the compiler */
261 +struct i40e_hw;
262
263 enum i40e_lb_mode {
264 I40E_LB_MODE_NONE = 0x0,
265 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
266 index bd1321bf7e268..4e90570ba7803 100644
267 --- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
268 +++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
269 @@ -3,9 +3,10 @@
270
271 /* ethtool support for i40e */
272
273 -#include "i40e.h"
274 +#include "i40e_devids.h"
275 #include "i40e_diag.h"
276 #include "i40e_txrx_common.h"
277 +#include "i40e_virtchnl_pf.h"
278
279 /* ethtool statistics helpers */
280
281 diff --git a/drivers/net/ethernet/intel/i40e/i40e_hmc.c b/drivers/net/ethernet/intel/i40e/i40e_hmc.c
282 index b383aea652f3e..1742624ca62ed 100644
283 --- a/drivers/net/ethernet/intel/i40e/i40e_hmc.c
284 +++ b/drivers/net/ethernet/intel/i40e/i40e_hmc.c
285 @@ -1,9 +1,8 @@
286 // SPDX-License-Identifier: GPL-2.0
287 /* Copyright(c) 2013 - 2018 Intel Corporation. */
288
289 -#include "i40e.h"
290 -#include "i40e_register.h"
291 #include "i40e_alloc.h"
292 +#include "i40e_debug.h"
293 #include "i40e_hmc.h"
294 #include "i40e_type.h"
295
296 diff --git a/drivers/net/ethernet/intel/i40e/i40e_hmc.h b/drivers/net/ethernet/intel/i40e/i40e_hmc.h
297 index 9960da07a5732..480e3a883cc7a 100644
298 --- a/drivers/net/ethernet/intel/i40e/i40e_hmc.h
299 +++ b/drivers/net/ethernet/intel/i40e/i40e_hmc.h
300 @@ -4,6 +4,10 @@
301 #ifndef _I40E_HMC_H_
302 #define _I40E_HMC_H_
303
304 +#include "i40e_alloc.h"
305 +#include "i40e_io.h"
306 +#include "i40e_register.h"
307 +
308 #define I40E_HMC_MAX_BP_COUNT 512
309
310 /* forward-declare the HW struct for the compiler */
311 diff --git a/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c b/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c
312 index 830f1de254ef4..beaaf5c309d51 100644
313 --- a/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c
314 +++ b/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c
315 @@ -1,12 +1,10 @@
316 // SPDX-License-Identifier: GPL-2.0
317 /* Copyright(c) 2013 - 2018 Intel Corporation. */
318
319 -#include "i40e.h"
320 -#include "i40e_register.h"
321 -#include "i40e_type.h"
322 -#include "i40e_hmc.h"
323 +#include "i40e_alloc.h"
324 +#include "i40e_debug.h"
325 #include "i40e_lan_hmc.h"
326 -#include "i40e_prototype.h"
327 +#include "i40e_type.h"
328
329 /* lan specific interface functions */
330
331 diff --git a/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h b/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h
332 index 9f960404c2b37..305a276953b01 100644
333 --- a/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h
334 +++ b/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h
335 @@ -4,6 +4,8 @@
336 #ifndef _I40E_LAN_HMC_H_
337 #define _I40E_LAN_HMC_H_
338
339 +#include "i40e_hmc.h"
340 +
341 /* forward-declare the HW struct for the compiler */
342 struct i40e_hw;
343
344 diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
345 index 46b7a428808a8..a21fc92aa2725 100644
346 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c
347 +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
348 @@ -1,19 +1,22 @@
349 // SPDX-License-Identifier: GPL-2.0
350 /* Copyright(c) 2013 - 2021 Intel Corporation. */
351
352 -#include <linux/etherdevice.h>
353 -#include <linux/of_net.h>
354 -#include <linux/pci.h>
355 -#include <linux/bpf.h>
356 #include <generated/utsrelease.h>
357 #include <linux/crash_dump.h>
358 +#include <linux/if_bridge.h>
359 +#include <linux/if_macvlan.h>
360 +#include <linux/module.h>
361 +#include <net/pkt_cls.h>
362 +#include <net/xdp_sock_drv.h>
363
364 /* Local includes */
365 #include "i40e.h"
366 +#include "i40e_devids.h"
367 #include "i40e_diag.h"
368 +#include "i40e_lan_hmc.h"
369 +#include "i40e_virtchnl_pf.h"
370 #include "i40e_xsk.h"
371 -#include <net/udp_tunnel.h>
372 -#include <net/xdp_sock_drv.h>
373 +
374 /* All i40e tracepoints are defined by the include below, which
375 * must be included exactly once across the whole kernel with
376 * CREATE_TRACE_POINTS defined
377 diff --git a/drivers/net/ethernet/intel/i40e/i40e_nvm.c b/drivers/net/ethernet/intel/i40e/i40e_nvm.c
378 index 07a46adeab38e..77cdbfc19d477 100644
379 --- a/drivers/net/ethernet/intel/i40e/i40e_nvm.c
380 +++ b/drivers/net/ethernet/intel/i40e/i40e_nvm.c
381 @@ -1,6 +1,8 @@
382 // SPDX-License-Identifier: GPL-2.0
383 /* Copyright(c) 2013 - 2018 Intel Corporation. */
384
385 +#include <linux/delay.h>
386 +#include "i40e_alloc.h"
387 #include "i40e_prototype.h"
388
389 /**
390 diff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
391 index 9c9234c0706f0..2001fefa0c52d 100644
392 --- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h
393 +++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
394 @@ -4,10 +4,9 @@
395 #ifndef _I40E_PROTOTYPE_H_
396 #define _I40E_PROTOTYPE_H_
397
398 -#include "i40e_type.h"
399 -#include "i40e_alloc.h"
400 -#include "i40e_debug.h"
401 #include <linux/avf/virtchnl.h>
402 +#include "i40e_debug.h"
403 +#include "i40e_type.h"
404
405 /* Prototypes for shared code functions that are not in
406 * the standard function pointer structures. These are
407 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
408 index cac9584debb1d..65c714d0bfffd 100644
409 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
410 +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
411 @@ -1,9 +1,10 @@
412 // SPDX-License-Identifier: GPL-2.0
413 /* Copyright(c) 2013 - 2018 Intel Corporation. */
414
415 -#include "i40e.h"
416 #include <linux/ptp_classify.h>
417 #include <linux/posix-clock.h>
418 +#include "i40e.h"
419 +#include "i40e_devids.h"
420
421 /* The XL710 timesync is very much like Intel's 82599 design when it comes to
422 * the fundamental clock design. However, the clock operations are much simpler
423 diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
424 index f703646622d9a..c962987d8b51b 100644
425 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
426 +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
427 @@ -1,14 +1,13 @@
428 // SPDX-License-Identifier: GPL-2.0
429 /* Copyright(c) 2013 - 2018 Intel Corporation. */
430
431 -#include <linux/prefetch.h>
432 #include <linux/bpf_trace.h>
433 +#include <linux/prefetch.h>
434 +#include <linux/sctp.h>
435 #include <net/mpls.h>
436 #include <net/xdp.h>
437 -#include "i40e.h"
438 -#include "i40e_trace.h"
439 -#include "i40e_prototype.h"
440 #include "i40e_txrx_common.h"
441 +#include "i40e_trace.h"
442 #include "i40e_xsk.h"
443
444 #define I40E_TXD_CMD (I40E_TX_DESC_CMD_EOP | I40E_TX_DESC_CMD_RS)
445 diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.h b/drivers/net/ethernet/intel/i40e/i40e_txrx.h
446 index 81f6a991bfb73..2b1d50873a4d1 100644
447 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.h
448 +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.h
449 @@ -5,6 +5,7 @@
450 #define _I40E_TXRX_H_
451
452 #include <net/xdp.h>
453 +#include "i40e_type.h"
454
455 /* Interrupt Throttling and Rate Limiting Goodies */
456 #define I40E_DEFAULT_IRQ_WORK 256
457 diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx_common.h b/drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
458 index 8c5118c8baafb..e26807fd21232 100644
459 --- a/drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
460 +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx_common.h
461 @@ -4,6 +4,8 @@
462 #ifndef I40E_TXRX_COMMON_
463 #define I40E_TXRX_COMMON_
464
465 +#include "i40e.h"
466 +
467 int i40e_xmit_xdp_tx_ring(struct xdp_buff *xdp, struct i40e_ring *xdp_ring);
468 void i40e_clean_programming_status(struct i40e_ring *rx_ring, u64 qword0_raw,
469 u64 qword1);
470 diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h
471 index 44cea0f4f908d..4092f82bcfb12 100644
472 --- a/drivers/net/ethernet/intel/i40e/i40e_type.h
473 +++ b/drivers/net/ethernet/intel/i40e/i40e_type.h
474 @@ -4,14 +4,9 @@
475 #ifndef _I40E_TYPE_H_
476 #define _I40E_TYPE_H_
477
478 -#include <linux/delay.h>
479 -#include <linux/if_ether.h>
480 -#include "i40e_io.h"
481 -#include "i40e_register.h"
482 +#include <uapi/linux/if_ether.h>
483 #include "i40e_adminq.h"
484 #include "i40e_hmc.h"
485 -#include "i40e_lan_hmc.h"
486 -#include "i40e_devids.h"
487
488 /* I40E_MASK is a macro used on 32 bit registers */
489 #define I40E_MASK(mask, shift) ((u32)(mask) << (shift))
490 diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
491 index 6b90453205b23..7d47a05274548 100644
492 --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
493 +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
494 @@ -2,6 +2,8 @@
495 /* Copyright(c) 2013 - 2018 Intel Corporation. */
496
497 #include "i40e.h"
498 +#include "i40e_lan_hmc.h"
499 +#include "i40e_virtchnl_pf.h"
500
501 /*********************notification routines***********************/
502
503 diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h
504 index cf190762421cc..66f95e2f3146a 100644
505 --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h
506 +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h
507 @@ -4,7 +4,9 @@
508 #ifndef _I40E_VIRTCHNL_PF_H_
509 #define _I40E_VIRTCHNL_PF_H_
510
511 -#include "i40e.h"
512 +#include <linux/avf/virtchnl.h>
513 +#include <linux/netdevice.h>
514 +#include "i40e_type.h"
515
516 #define I40E_MAX_VLANID 4095
517
518 diff --git a/drivers/net/ethernet/intel/i40e/i40e_xsk.c b/drivers/net/ethernet/intel/i40e/i40e_xsk.c
519 index 1f8ae6f5d9807..65f38a57b3dfe 100644
520 --- a/drivers/net/ethernet/intel/i40e/i40e_xsk.c
521 +++ b/drivers/net/ethernet/intel/i40e/i40e_xsk.c
522 @@ -2,11 +2,7 @@
523 /* Copyright(c) 2018 Intel Corporation. */
524
525 #include <linux/bpf_trace.h>
526 -#include <linux/stringify.h>
527 #include <net/xdp_sock_drv.h>
528 -#include <net/xdp.h>
529 -
530 -#include "i40e.h"
531 #include "i40e_txrx_common.h"
532 #include "i40e_xsk.h"
533
534 diff --git a/drivers/net/ethernet/intel/i40e/i40e_xsk.h b/drivers/net/ethernet/intel/i40e/i40e_xsk.h
535 index 821df248f8bee..ef156fad52f26 100644
536 --- a/drivers/net/ethernet/intel/i40e/i40e_xsk.h
537 +++ b/drivers/net/ethernet/intel/i40e/i40e_xsk.h
538 @@ -4,6 +4,8 @@
539 #ifndef _I40E_XSK_H_
540 #define _I40E_XSK_H_
541
542 +#include <linux/types.h>
543 +
544 /* This value should match the pragma in the loop_unrolled_for
545 * macro. Why 4? It is strictly empirical. It seems to be a good
546 * compromise between the advantage of having simultaneous outstanding
547 @@ -20,7 +22,9 @@
548 #define loop_unrolled_for for
549 #endif
550
551 +struct i40e_ring;
552 struct i40e_vsi;
553 +struct net_device;
554 struct xsk_buff_pool;
555
556 int i40e_queue_pair_disable(struct i40e_vsi *vsi, int queue_pair);
557 --
558 2.43.0
559