Commit 4b2c75ff authored by Diomidis Spinellis's avatar Diomidis Spinellis Committed by Tony Nguyen
Browse files

ixgbe: Break include dependency cycle



Header ixgbe_type.h includes ixgbe_mbx.h.  Also, header
ixgbe_mbx.h included ixgbe_type.h, thus introducing a circular
dependency.

- Remove ixgbe_mbx.h inclusion from ixgbe_type.h.

- ixgbe_mbx.h requires the definition of struct ixgbe_mbx_operations
  so move its definition there. While at it, add missing argument
  identifier names.

- Add required forward structure declarations.

- Include ixgbe_mbx.h in the .c files that need it, for the
  following reasons:

  ixgbe_sriov.c uses ixgbe_check_for_msg
  ixgbe_main.c uses ixgbe_init_mbx_params_pf
  ixgbe_82599.c uses mbx_ops_generic
  ixgbe_x540.c uses mbx_ops_generic
  ixgbe_x550.c uses mbx_ops_generic

Signed-off-by: default avatarDiomidis Spinellis <dds@aueb.gr>
Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Tested-by: default avatarRafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent fcc17a3b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
#include <linux/sched.h>

#include "ixgbe.h"
#include "ixgbe_mbx.h"
#include "ixgbe_phy.h"

#define IXGBE_82598_MAX_TX_QUEUES 32
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@
#include "ixgbe.h"
#include "ixgbe_common.h"
#include "ixgbe_dcb_82599.h"
#include "ixgbe_mbx.h"
#include "ixgbe_phy.h"
#include "ixgbe_sriov.h"
#include "ixgbe_model.h"
+15 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
#ifndef _IXGBE_MBX_H_
#define _IXGBE_MBX_H_

#include "ixgbe_type.h"
#include <linux/types.h>

#define IXGBE_VFMAILBOX_SIZE        16 /* 16 32 bit words - 64 bytes */

@@ -96,6 +96,8 @@ enum ixgbe_pfvf_api_rev {
#define IXGBE_VF_MBX_INIT_TIMEOUT 2000 /* number of retries on mailbox */
#define IXGBE_VF_MBX_INIT_DELAY   500  /* microseconds between retries */

struct ixgbe_hw;

int ixgbe_read_mbx(struct ixgbe_hw *, u32 *, u16, u16);
int ixgbe_write_mbx(struct ixgbe_hw *, u32 *, u16, u16);
int ixgbe_check_for_msg(struct ixgbe_hw *, u16);
@@ -105,6 +107,18 @@ int ixgbe_check_for_rst(struct ixgbe_hw *, u16);
void ixgbe_init_mbx_params_pf(struct ixgbe_hw *);
#endif /* CONFIG_PCI_IOV */

struct ixgbe_mbx_operations {
	int (*init_params)(struct ixgbe_hw *hw);
	int (*read)(struct ixgbe_hw *hw, u32 *msg, u16 size, u16 vf_number);
	int (*write)(struct ixgbe_hw *hw, u32 *msg, u16 size, u16 vf_number);
	int (*read_posted)(struct ixgbe_hw *hw, u32 *msg, u16 size, u16 mbx_id);
	int (*write_posted)(struct ixgbe_hw *hw, u32 *msg, u16 size,
			    u16 mbx_id);
	int (*check_for_msg)(struct ixgbe_hw *hw, u16 vf_number);
	int (*check_for_ack)(struct ixgbe_hw *hw, u16 vf_number);
	int (*check_for_rst)(struct ixgbe_hw *hw, u16 vf_number);
};

extern const struct ixgbe_mbx_operations mbx_ops_generic;

#endif /* _IXGBE_MBX_H_ */
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@

#include "ixgbe.h"
#include "ixgbe_type.h"
#include "ixgbe_mbx.h"
#include "ixgbe_sriov.h"

#ifdef CONFIG_PCI_IOV
+2 −13
Original line number Diff line number Diff line
@@ -3601,19 +3601,6 @@ struct ixgbe_phy_info {
	u32				nw_mng_if_sel;
};

#include "ixgbe_mbx.h"

struct ixgbe_mbx_operations {
	int (*init_params)(struct ixgbe_hw *hw);
	int (*read)(struct ixgbe_hw *, u32 *, u16,  u16);
	int (*write)(struct ixgbe_hw *, u32 *, u16, u16);
	int (*read_posted)(struct ixgbe_hw *, u32 *, u16,  u16);
	int (*write_posted)(struct ixgbe_hw *, u32 *, u16, u16);
	int (*check_for_msg)(struct ixgbe_hw *, u16);
	int (*check_for_ack)(struct ixgbe_hw *, u16);
	int (*check_for_rst)(struct ixgbe_hw *, u16);
};

struct ixgbe_mbx_stats {
	u32 msgs_tx;
	u32 msgs_rx;
@@ -3623,6 +3610,8 @@ struct ixgbe_mbx_stats {
	u32 rsts;
};

struct ixgbe_mbx_operations;

struct ixgbe_mbx_info {
	const struct ixgbe_mbx_operations *ops;
	struct ixgbe_mbx_stats stats;
Loading