git: ffe3def903a5 - main - iflib: Make if_shared_ctx_t a pointer to const
Mark Johnston
markj at FreeBSD.org
Mon Mar 8 17:55:20 UTC 2021
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=ffe3def903a5f239c319e5fe12450659658974a5
commit ffe3def903a5f239c319e5fe12450659658974a5
Author: Mark Johnston <markj at FreeBSD.org>
AuthorDate: 2021-03-08 17:39:06 +0000
Commit: Mark Johnston <markj at FreeBSD.org>
CommitDate: 2021-03-08 17:39:06 +0000
iflib: Make if_shared_ctx_t a pointer to const
This structure is shared among multiple instances of a driver, so we
should ensure that it doesn't somehow get treated as if there's a
separate instance per interface. This is especially important for
software-only drivers like wg.
DEVICE_REGISTER() still returns a void * and so the per-driver sctx
structures are not yet defined with the const qualifier.
Reviewed by: gallatin, erj
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D29102
---
sys/dev/bnxt/if_bnxt.c | 4 +---
sys/dev/e1000/if_em.c | 8 ++------
sys/dev/e1000/igb_txrx.c | 2 --
sys/dev/ixgbe/if_ix.c | 4 +---
sys/dev/ixgbe/if_ixv.c | 4 +---
sys/dev/ixgbe/ix_txrx.c | 2 --
sys/dev/ixl/if_iavf.c | 4 +---
sys/dev/ixl/if_ixl.c | 4 +---
sys/net/iflib.h | 2 +-
9 files changed, 8 insertions(+), 26 deletions(-)
diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c
index 7811f4fdebf0..9990e26263b3 100644
--- a/sys/dev/bnxt/if_bnxt.c
+++ b/sys/dev/bnxt/if_bnxt.c
@@ -327,8 +327,6 @@ static struct if_shared_ctx bnxt_sctx_init = {
.isc_driver_version = bnxt_driver_version,
};
-if_shared_ctx_t bnxt_sctx = &bnxt_sctx_init;
-
/*
* Device Methods
*/
@@ -336,7 +334,7 @@ if_shared_ctx_t bnxt_sctx = &bnxt_sctx_init;
static void *
bnxt_register(device_t dev)
{
- return bnxt_sctx;
+ return (&bnxt_sctx_init);
}
/*
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index b24280dae412..fcf328de9a2e 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -554,8 +554,6 @@ static struct if_shared_ctx em_sctx_init = {
.isc_ntxd_default = {EM_DEFAULT_TXD},
};
-if_shared_ctx_t em_sctx = &em_sctx_init;
-
static struct if_shared_ctx igb_sctx_init = {
.isc_magic = IFLIB_MAGIC,
.isc_q_align = PAGE_SIZE,
@@ -583,8 +581,6 @@ static struct if_shared_ctx igb_sctx_init = {
.isc_ntxd_default = {EM_DEFAULT_TXD},
};
-if_shared_ctx_t igb_sctx = &igb_sctx_init;
-
/*****************************************************************
*
* Dump Registers
@@ -707,13 +703,13 @@ static int em_get_regs(SYSCTL_HANDLER_ARGS)
static void *
em_register(device_t dev)
{
- return (em_sctx);
+ return (&em_sctx_init);
}
static void *
igb_register(device_t dev)
{
- return (igb_sctx);
+ return (&igb_sctx_init);
}
static int
diff --git a/sys/dev/e1000/igb_txrx.c b/sys/dev/e1000/igb_txrx.c
index 6c41d440c769..9f1921bf0c7e 100644
--- a/sys/dev/e1000/igb_txrx.c
+++ b/sys/dev/e1000/igb_txrx.c
@@ -72,8 +72,6 @@ struct if_txrx igb_txrx = {
.ift_legacy_intr = em_intr
};
-extern if_shared_ctx_t em_sctx;
-
/**********************************************************************
*
* Setup work for hardware segmentation offload (TSO) on
diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index 9f3674cdab5d..6e65f6bae55a 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -392,8 +392,6 @@ static struct if_shared_ctx ixgbe_sctx_init = {
.isc_ntxd_default = {DEFAULT_TXD},
};
-if_shared_ctx_t ixgbe_sctx = &ixgbe_sctx_init;
-
/************************************************************************
* ixgbe_if_tx_queues_alloc
************************************************************************/
@@ -855,7 +853,7 @@ ixgbe_initialize_transmit_units(if_ctx_t ctx)
static void *
ixgbe_register(device_t dev)
{
- return (ixgbe_sctx);
+ return (&ixgbe_sctx_init);
} /* ixgbe_register */
/************************************************************************
diff --git a/sys/dev/ixgbe/if_ixv.c b/sys/dev/ixgbe/if_ixv.c
index 6bd92d262558..ee139430d42b 100644
--- a/sys/dev/ixgbe/if_ixv.c
+++ b/sys/dev/ixgbe/if_ixv.c
@@ -233,12 +233,10 @@ static struct if_shared_ctx ixv_sctx_init = {
.isc_ntxd_default = {DEFAULT_TXD},
};
-if_shared_ctx_t ixv_sctx = &ixv_sctx_init;
-
static void *
ixv_register(device_t dev)
{
- return (ixv_sctx);
+ return (&ixv_sctx_init);
}
/************************************************************************
diff --git a/sys/dev/ixgbe/ix_txrx.c b/sys/dev/ixgbe/ix_txrx.c
index 43e64b0c0df0..9d31e0b1b43e 100644
--- a/sys/dev/ixgbe/ix_txrx.c
+++ b/sys/dev/ixgbe/ix_txrx.c
@@ -72,8 +72,6 @@ struct if_txrx ixgbe_txrx = {
.ift_legacy_intr = NULL
};
-extern if_shared_ctx_t ixgbe_sctx;
-
/************************************************************************
* ixgbe_tx_ctx_setup
*
diff --git a/sys/dev/ixl/if_iavf.c b/sys/dev/ixl/if_iavf.c
index 394656d27a2f..f6eb91c2a855 100644
--- a/sys/dev/ixl/if_iavf.c
+++ b/sys/dev/ixl/if_iavf.c
@@ -272,13 +272,11 @@ static struct if_shared_ctx iavf_sctx_init = {
.isc_ntxd_default = {IXL_DEFAULT_RING},
};
-if_shared_ctx_t iavf_sctx = &iavf_sctx_init;
-
/*** Functions ***/
static void *
iavf_register(device_t dev)
{
- return (iavf_sctx);
+ return (&iavf_sctx_init);
}
static int
diff --git a/sys/dev/ixl/if_ixl.c b/sys/dev/ixl/if_ixl.c
index a79648de274f..c700af889cf1 100644
--- a/sys/dev/ixl/if_ixl.c
+++ b/sys/dev/ixl/if_ixl.c
@@ -351,13 +351,11 @@ static struct if_shared_ctx ixl_sctx_init = {
.isc_ntxd_default = {IXL_DEFAULT_RING},
};
-if_shared_ctx_t ixl_sctx = &ixl_sctx_init;
-
/*** Functions ***/
static void *
ixl_register(device_t dev)
{
- return (ixl_sctx);
+ return (&ixl_sctx_init);
}
static int
diff --git a/sys/net/iflib.h b/sys/net/iflib.h
index 1e8aed271334..f88294b3d01a 100644
--- a/sys/net/iflib.h
+++ b/sys/net/iflib.h
@@ -49,7 +49,7 @@ typedef uint16_t qidx_t;
struct iflib_ctx;
typedef struct iflib_ctx *if_ctx_t;
struct if_shared_ctx;
-typedef struct if_shared_ctx *if_shared_ctx_t;
+typedef const struct if_shared_ctx *if_shared_ctx_t;
struct if_int_delay_info;
typedef struct if_int_delay_info *if_int_delay_info_t;
struct if_pseudo;
More information about the dev-commits-src-main
mailing list