cxgbe(4): Add a pointer to the adapter softc in vi_info.
There were quite a few places where port_info was being accessed only to get to the adapter. Reviewed by: jhb@ MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D25432
This commit is contained in:
parent
4437bbc7fd
commit
73bd4de3c8
@ -190,6 +190,7 @@ enum {
|
||||
struct vi_info {
|
||||
device_t dev;
|
||||
struct port_info *pi;
|
||||
struct adapter *adapter;
|
||||
|
||||
struct ifnet *ifp;
|
||||
struct pfil_head *pfil;
|
||||
@ -953,22 +954,22 @@ struct adapter {
|
||||
#define TXQ_LOCK_ASSERT_NOTOWNED(txq) EQ_LOCK_ASSERT_NOTOWNED(&(txq)->eq)
|
||||
|
||||
#define for_each_txq(vi, iter, q) \
|
||||
for (q = &vi->pi->adapter->sge.txq[vi->first_txq], iter = 0; \
|
||||
for (q = &vi->adapter->sge.txq[vi->first_txq], iter = 0; \
|
||||
iter < vi->ntxq; ++iter, ++q)
|
||||
#define for_each_rxq(vi, iter, q) \
|
||||
for (q = &vi->pi->adapter->sge.rxq[vi->first_rxq], iter = 0; \
|
||||
for (q = &vi->adapter->sge.rxq[vi->first_rxq], iter = 0; \
|
||||
iter < vi->nrxq; ++iter, ++q)
|
||||
#define for_each_ofld_txq(vi, iter, q) \
|
||||
for (q = &vi->pi->adapter->sge.ofld_txq[vi->first_ofld_txq], iter = 0; \
|
||||
for (q = &vi->adapter->sge.ofld_txq[vi->first_ofld_txq], iter = 0; \
|
||||
iter < vi->nofldtxq; ++iter, ++q)
|
||||
#define for_each_ofld_rxq(vi, iter, q) \
|
||||
for (q = &vi->pi->adapter->sge.ofld_rxq[vi->first_ofld_rxq], iter = 0; \
|
||||
for (q = &vi->adapter->sge.ofld_rxq[vi->first_ofld_rxq], iter = 0; \
|
||||
iter < vi->nofldrxq; ++iter, ++q)
|
||||
#define for_each_nm_txq(vi, iter, q) \
|
||||
for (q = &vi->pi->adapter->sge.nm_txq[vi->first_nm_txq], iter = 0; \
|
||||
for (q = &vi->adapter->sge.nm_txq[vi->first_nm_txq], iter = 0; \
|
||||
iter < vi->nnmtxq; ++iter, ++q)
|
||||
#define for_each_nm_rxq(vi, iter, q) \
|
||||
for (q = &vi->pi->adapter->sge.nm_rxq[vi->first_nm_rxq], iter = 0; \
|
||||
for (q = &vi->adapter->sge.nm_rxq[vi->first_nm_rxq], iter = 0; \
|
||||
iter < vi->nnmrxq; ++iter, ++q)
|
||||
#define for_each_vi(_pi, _iter, _vi) \
|
||||
for ((_vi) = (_pi)->vi, (_iter) = 0; (_iter) < (_pi)->nvi; \
|
||||
|
@ -587,7 +587,7 @@ cxgbe_tls_tag_alloc(struct ifnet *ifp, union if_snd_tag_alloc_params *params,
|
||||
}
|
||||
|
||||
vi = ifp->if_softc;
|
||||
sc = vi->pi->adapter;
|
||||
sc = vi->adapter;
|
||||
|
||||
tlsp = alloc_tlspcb(ifp, vi, M_WAITOK);
|
||||
|
||||
|
@ -673,7 +673,7 @@ icl_cxgbei_conn_handoff(struct icl_conn *ic, int fd)
|
||||
MPASS(tp->tod != NULL);
|
||||
MPASS(tp->t_toe != NULL);
|
||||
toep = tp->t_toe;
|
||||
MPASS(toep->vi->pi->adapter == icc->sc);
|
||||
MPASS(toep->vi->adapter == icc->sc);
|
||||
icc->toep = toep;
|
||||
icc->cwt = cxgbei_select_worker_thread(icc);
|
||||
|
||||
|
@ -1345,6 +1345,7 @@ t4_attach(device_t dev)
|
||||
pi->nvi = num_vis;
|
||||
for_each_vi(pi, j, vi) {
|
||||
vi->pi = pi;
|
||||
vi->adapter = sc;
|
||||
vi->qsize_rxq = t4_qsize_rxq;
|
||||
vi->qsize_txq = t4_qsize_txq;
|
||||
|
||||
@ -1748,11 +1749,11 @@ cxgbe_vi_attach(device_t dev, struct vi_info *vi)
|
||||
ifp->if_capabilities = T4_CAP;
|
||||
ifp->if_capenable = T4_CAP_ENABLE;
|
||||
#ifdef TCP_OFFLOAD
|
||||
if (vi->nofldrxq != 0 && (vi->pi->adapter->flags & KERN_TLS_OK) == 0)
|
||||
if (vi->nofldrxq != 0 && (vi->adapter->flags & KERN_TLS_OK) == 0)
|
||||
ifp->if_capabilities |= IFCAP_TOE;
|
||||
#endif
|
||||
#ifdef RATELIMIT
|
||||
if (is_ethoffload(vi->pi->adapter) && vi->nofldtxq != 0) {
|
||||
if (is_ethoffload(vi->adapter) && vi->nofldtxq != 0) {
|
||||
ifp->if_capabilities |= IFCAP_TXRTLMT;
|
||||
ifp->if_capenable |= IFCAP_TXRTLMT;
|
||||
}
|
||||
@ -1763,12 +1764,12 @@ cxgbe_vi_attach(device_t dev, struct vi_info *vi)
|
||||
ifp->if_hw_tsomax = IP_MAXPACKET;
|
||||
ifp->if_hw_tsomaxsegcount = TX_SGL_SEGS_TSO;
|
||||
#ifdef RATELIMIT
|
||||
if (is_ethoffload(vi->pi->adapter) && vi->nofldtxq != 0)
|
||||
if (is_ethoffload(vi->adapter) && vi->nofldtxq != 0)
|
||||
ifp->if_hw_tsomaxsegcount = TX_SGL_SEGS_EO_TSO;
|
||||
#endif
|
||||
ifp->if_hw_tsomaxsegsize = 65536;
|
||||
#ifdef KERN_TLS
|
||||
if (vi->pi->adapter->flags & KERN_TLS_OK) {
|
||||
if (vi->adapter->flags & KERN_TLS_OK) {
|
||||
ifp->if_capabilities |= IFCAP_TXTLS;
|
||||
ifp->if_capenable |= IFCAP_TXTLS;
|
||||
}
|
||||
@ -1908,7 +1909,7 @@ static void
|
||||
cxgbe_init(void *arg)
|
||||
{
|
||||
struct vi_info *vi = arg;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
|
||||
if (begin_synchronized_op(sc, vi, SLEEP_OK | INTR_OK, "t4init") != 0)
|
||||
return;
|
||||
@ -2228,7 +2229,7 @@ vi_get_counter(struct ifnet *ifp, ift_counter c)
|
||||
struct vi_info *vi = ifp->if_softc;
|
||||
struct fw_vi_stats_vf *s = &vi->stats;
|
||||
|
||||
vi_refresh_stats(vi->pi->adapter, vi);
|
||||
vi_refresh_stats(vi->adapter, vi);
|
||||
|
||||
switch (c) {
|
||||
case IFCOUNTER_IPACKETS:
|
||||
@ -2762,7 +2763,7 @@ vcxgbe_detach(device_t dev)
|
||||
struct adapter *sc;
|
||||
|
||||
vi = device_get_softc(dev);
|
||||
sc = vi->pi->adapter;
|
||||
sc = vi->adapter;
|
||||
|
||||
doom_vi(sc, vi);
|
||||
|
||||
@ -5766,7 +5767,7 @@ hashen_to_hashconfig(int hashen)
|
||||
int
|
||||
vi_full_init(struct vi_info *vi)
|
||||
{
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct ifnet *ifp = vi->ifp;
|
||||
uint16_t *rss;
|
||||
struct sge_rxq *rxq;
|
||||
@ -6196,7 +6197,7 @@ void
|
||||
vi_tick(void *arg)
|
||||
{
|
||||
struct vi_info *vi = arg;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
|
||||
vi_refresh_stats(sc, vi);
|
||||
|
||||
@ -7183,7 +7184,7 @@ static int
|
||||
sysctl_holdoff_tmr_idx(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
struct vi_info *vi = arg1;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int idx, rc, i;
|
||||
struct sge_rxq *rxq;
|
||||
uint8_t v;
|
||||
@ -7220,7 +7221,7 @@ static int
|
||||
sysctl_holdoff_pktc_idx(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
struct vi_info *vi = arg1;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int idx, rc;
|
||||
|
||||
idx = vi->pktc_idx;
|
||||
@ -7250,7 +7251,7 @@ static int
|
||||
sysctl_qsize_rxq(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
struct vi_info *vi = arg1;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int qsize, rc;
|
||||
|
||||
qsize = vi->qsize_rxq;
|
||||
@ -7280,7 +7281,7 @@ static int
|
||||
sysctl_qsize_txq(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
struct vi_info *vi = arg1;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int qsize, rc;
|
||||
|
||||
qsize = vi->qsize_txq;
|
||||
@ -9875,7 +9876,7 @@ static int
|
||||
sysctl_holdoff_tmr_idx_ofld(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
struct vi_info *vi = arg1;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int idx, rc, i;
|
||||
struct sge_ofld_rxq *ofld_rxq;
|
||||
uint8_t v;
|
||||
@ -9912,7 +9913,7 @@ static int
|
||||
sysctl_holdoff_pktc_idx_ofld(SYSCTL_HANDLER_ARGS)
|
||||
{
|
||||
struct vi_info *vi = arg1;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int idx, rc;
|
||||
|
||||
idx = vi->ofld_pktc_idx;
|
||||
|
@ -125,7 +125,7 @@ alloc_nm_rxq_hwq(struct vi_info *vi, struct sge_nm_rxq *nm_rxq, int cong)
|
||||
{
|
||||
int rc, cntxt_id, i;
|
||||
__be32 v;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct sge_params *sp = &sc->params.sge;
|
||||
struct netmap_adapter *na = NA(vi->ifp);
|
||||
struct fw_iq_cmd c;
|
||||
@ -245,7 +245,7 @@ alloc_nm_rxq_hwq(struct vi_info *vi, struct sge_nm_rxq *nm_rxq, int cong)
|
||||
static int
|
||||
free_nm_rxq_hwq(struct vi_info *vi, struct sge_nm_rxq *nm_rxq)
|
||||
{
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int rc;
|
||||
|
||||
rc = -t4_iq_free(sc, sc->mbox, sc->pf, 0, FW_IQ_TYPE_FL_INT_CAP,
|
||||
@ -262,7 +262,7 @@ alloc_nm_txq_hwq(struct vi_info *vi, struct sge_nm_txq *nm_txq)
|
||||
{
|
||||
int rc, cntxt_id;
|
||||
size_t len;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct netmap_adapter *na = NA(vi->ifp);
|
||||
struct fw_eq_eth_cmd c;
|
||||
|
||||
@ -335,7 +335,7 @@ alloc_nm_txq_hwq(struct vi_info *vi, struct sge_nm_txq *nm_txq)
|
||||
static int
|
||||
free_nm_txq_hwq(struct vi_info *vi, struct sge_nm_txq *nm_txq)
|
||||
{
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int rc;
|
||||
|
||||
rc = -t4_eth_eq_free(sc, sc->mbox, sc->pf, 0, nm_txq->cntxt_id);
|
||||
@ -562,7 +562,7 @@ cxgbe_netmap_reg(struct netmap_adapter *na, int on)
|
||||
{
|
||||
struct ifnet *ifp = na->ifp;
|
||||
struct vi_info *vi = ifp->if_softc;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
int rc;
|
||||
|
||||
rc = begin_synchronized_op(sc, vi, SLEEP_OK | INTR_OK, "t4nmreg");
|
||||
@ -817,7 +817,7 @@ cxgbe_netmap_txsync(struct netmap_kring *kring, int flags)
|
||||
struct netmap_adapter *na = kring->na;
|
||||
struct ifnet *ifp = na->ifp;
|
||||
struct vi_info *vi = ifp->if_softc;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct sge_nm_txq *nm_txq = &sc->sge.nm_txq[vi->first_nm_txq + kring->ring_id];
|
||||
const u_int head = kring->rhead;
|
||||
u_int reclaimed = 0;
|
||||
@ -881,7 +881,7 @@ cxgbe_netmap_rxsync(struct netmap_kring *kring, int flags)
|
||||
struct netmap_ring *ring = kring->ring;
|
||||
struct ifnet *ifp = na->ifp;
|
||||
struct vi_info *vi = ifp->if_softc;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct sge_nm_rxq *nm_rxq = &sc->sge.nm_rxq[vi->first_nm_rxq + kring->ring_id];
|
||||
u_int const head = kring->rhead;
|
||||
u_int n;
|
||||
@ -1038,7 +1038,7 @@ void
|
||||
service_nm_rxq(struct sge_nm_rxq *nm_rxq)
|
||||
{
|
||||
struct vi_info *vi = nm_rxq->vi;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct ifnet *ifp = vi->ifp;
|
||||
struct netmap_adapter *na = NA(ifp);
|
||||
struct netmap_kring *kring = na->rx_rings[nm_rxq->nid];
|
||||
|
@ -2149,7 +2149,7 @@ void
|
||||
t4_update_fl_bufsize(struct ifnet *ifp)
|
||||
{
|
||||
struct vi_info *vi = ifp->if_softc;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct sge_rxq *rxq;
|
||||
#ifdef TCP_OFFLOAD
|
||||
struct sge_ofld_rxq *ofld_rxq;
|
||||
@ -2881,8 +2881,7 @@ eth_tx(struct mp_ring *r, u_int cidx, u_int pidx)
|
||||
struct sge_eq *eq = &txq->eq;
|
||||
struct ifnet *ifp = txq->ifp;
|
||||
struct vi_info *vi = ifp->if_softc;
|
||||
struct port_info *pi = vi->pi;
|
||||
struct adapter *sc = pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
u_int total, remaining; /* # of packets */
|
||||
u_int available, dbdiff; /* # of hardware descriptors */
|
||||
u_int n, next_cidx;
|
||||
@ -3498,7 +3497,7 @@ alloc_rxq(struct vi_info *vi, struct sge_rxq *rxq, int intr_idx, int idx,
|
||||
struct sysctl_oid *oid)
|
||||
{
|
||||
int rc;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct sysctl_oid_list *children;
|
||||
char name[16];
|
||||
|
||||
@ -3628,7 +3627,7 @@ alloc_nm_rxq(struct vi_info *vi, struct sge_nm_rxq *nm_rxq, int intr_idx,
|
||||
struct sysctl_ctx_list *ctx;
|
||||
char name[16];
|
||||
size_t len;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct netmap_adapter *na = NA(vi->ifp);
|
||||
|
||||
MPASS(na != NULL);
|
||||
@ -3694,7 +3693,7 @@ alloc_nm_rxq(struct vi_info *vi, struct sge_nm_rxq *nm_rxq, int intr_idx,
|
||||
static int
|
||||
free_nm_rxq(struct vi_info *vi, struct sge_nm_rxq *nm_rxq)
|
||||
{
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
|
||||
if (vi->flags & VI_INIT_DONE)
|
||||
MPASS(nm_rxq->iq_cntxt_id == INVALID_NM_RXQ_CNTXT_ID);
|
||||
@ -3760,7 +3759,7 @@ alloc_nm_txq(struct vi_info *vi, struct sge_nm_txq *nm_txq, int iqidx, int idx,
|
||||
static int
|
||||
free_nm_txq(struct vi_info *vi, struct sge_nm_txq *nm_txq)
|
||||
{
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
|
||||
if (vi->flags & VI_INIT_DONE)
|
||||
MPASS(nm_txq->cntxt_id == INVALID_NM_TXQ_CNTXT_ID);
|
||||
@ -4270,7 +4269,7 @@ static int
|
||||
free_txq(struct vi_info *vi, struct sge_txq *txq)
|
||||
{
|
||||
int rc;
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct sge_eq *eq = &txq->eq;
|
||||
|
||||
rc = free_eq(sc, eq);
|
||||
|
@ -702,6 +702,7 @@ t4vf_attach(device_t dev)
|
||||
|
||||
for_each_vi(pi, j, vi) {
|
||||
vi->pi = pi;
|
||||
vi->adapter = sc;
|
||||
vi->qsize_rxq = t4_qsize_rxq;
|
||||
vi->qsize_txq = t4_qsize_txq;
|
||||
|
||||
|
@ -1444,7 +1444,7 @@ do_pass_establish(struct sge_iq *iq, const struct rss_header *rss,
|
||||
|
||||
ifp = synqe->syn->m_pkthdr.rcvif;
|
||||
vi = ifp->if_softc;
|
||||
KASSERT(vi->pi->adapter == sc,
|
||||
KASSERT(vi->adapter == sc,
|
||||
("%s: vi %p, sc %p mismatch", __func__, vi, sc));
|
||||
|
||||
if (__predict_false(inp->inp_flags & INP_DROPPED)) {
|
||||
|
@ -970,7 +970,7 @@ calc_options0(struct vi_info *vi, struct conn_params *cp)
|
||||
MPASS(cp->opt0_bufsize >= 0 && cp->opt0_bufsize <= M_RCV_BUFSIZ);
|
||||
opt0 |= V_RCV_BUFSIZ(cp->opt0_bufsize);
|
||||
|
||||
MPASS(cp->l2t_idx >= 0 && cp->l2t_idx < vi->pi->adapter->vres.l2t.size);
|
||||
MPASS(cp->l2t_idx >= 0 && cp->l2t_idx < vi->adapter->vres.l2t.size);
|
||||
opt0 |= V_L2T_IDX(cp->l2t_idx);
|
||||
|
||||
opt0 |= V_SMAC_SEL(vi->smt_idx);
|
||||
@ -1045,7 +1045,7 @@ calc_options2(struct vi_info *vi, struct conn_params *cp)
|
||||
uint64_t
|
||||
select_ntuple(struct vi_info *vi, struct l2t_entry *e)
|
||||
{
|
||||
struct adapter *sc = vi->pi->adapter;
|
||||
struct adapter *sc = vi->adapter;
|
||||
struct tp_params *tp = &sc->params.tp;
|
||||
uint64_t ntuple = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user