mirror of
https://github.com/opnsense/src.git
synced 2026-06-10 17:22:46 -04:00
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
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D29102
(cherry picked from commit ffe3def903)
This commit is contained in:
parent
3aa6cc000f
commit
46f44865e3
9 changed files with 8 additions and 26 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
||||
/************************************************************************
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
|
|
|
|||
|
|
@ -72,8 +72,6 @@ struct if_txrx ixgbe_txrx = {
|
|||
.ift_legacy_intr = NULL
|
||||
};
|
||||
|
||||
extern if_shared_ctx_t ixgbe_sctx;
|
||||
|
||||
/************************************************************************
|
||||
* ixgbe_tx_ctx_setup
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue