Commit ffe3def9 authored by Mark Johnston's avatar Mark Johnston
Browse files

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
parent 435c7cfb
......@@ -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;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment