Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/cxgb/cxgb_main.c
Show First 20 Lines • Show All 847 Lines • ▼ Show 20 Lines | for (j = 0; j < pi->nqsets; j++, qset_idx++) { | ||||
t3_free_sge_resources(sc, qset_idx); | t3_free_sge_resources(sc, qset_idx); | ||||
device_printf(sc->dev, | device_printf(sc->dev, | ||||
"t3_sge_alloc_qset failed with %d\n", err); | "t3_sge_alloc_qset failed with %d\n", err); | ||||
return (err); | return (err); | ||||
} | } | ||||
} | } | ||||
} | } | ||||
sc->nqsets = qset_idx; | |||||
return (0); | return (0); | ||||
} | } | ||||
static void | static void | ||||
cxgb_teardown_interrupts(adapter_t *sc) | cxgb_teardown_interrupts(adapter_t *sc) | ||||
{ | { | ||||
int i; | int i; | ||||
▲ Show 20 Lines • Show All 2,729 Lines • ▼ Show 20 Lines | |||||
cxgb_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) | cxgb_netdump_init(struct ifnet *ifp, int *nrxr, int *ncl, int *clsize) | ||||
{ | { | ||||
struct port_info *pi; | struct port_info *pi; | ||||
adapter_t *adap; | adapter_t *adap; | ||||
pi = if_getsoftc(ifp); | pi = if_getsoftc(ifp); | ||||
adap = pi->adapter; | adap = pi->adapter; | ||||
ADAPTER_LOCK(adap); | ADAPTER_LOCK(adap); | ||||
*nrxr = SGE_QSETS; | *nrxr = adap->nqsets; | ||||
*ncl = adap->sge.qs[0].fl[1].size; | *ncl = adap->sge.qs[0].fl[1].size; | ||||
*clsize = adap->sge.qs[0].fl[1].buf_size; | *clsize = adap->sge.qs[0].fl[1].buf_size; | ||||
ADAPTER_UNLOCK(adap); | ADAPTER_UNLOCK(adap); | ||||
} | } | ||||
static void | static void | ||||
cxgb_netdump_event(struct ifnet *ifp, enum netdump_ev event) | cxgb_netdump_event(struct ifnet *ifp, enum netdump_ev event) | ||||
{ | { | ||||
struct port_info *pi; | struct port_info *pi; | ||||
struct sge_qset *qs; | struct sge_qset *qs; | ||||
int i; | int i; | ||||
pi = if_getsoftc(ifp); | pi = if_getsoftc(ifp); | ||||
if (event == NETDUMP_START) | if (event == NETDUMP_START) | ||||
for (i = 0; i < SGE_QSETS; i++) { | for (i = 0; i < pi->adapter->nqsets; i++) { | ||||
qs = &pi->adapter->sge.qs[i]; | qs = &pi->adapter->sge.qs[i]; | ||||
/* Need to reinit after netdump_mbuf_dump(). */ | /* Need to reinit after netdump_mbuf_dump(). */ | ||||
qs->fl[0].zone = zone_pack; | qs->fl[0].zone = zone_pack; | ||||
qs->fl[1].zone = zone_clust; | qs->fl[1].zone = zone_clust; | ||||
qs->lro.enabled = 0; | qs->lro.enabled = 0; | ||||
} | } | ||||
} | } | ||||
Show All 20 Lines | cxgb_netdump_poll(struct ifnet *ifp, int count) | ||||
adapter_t *adap; | adapter_t *adap; | ||||
int i; | int i; | ||||
pi = if_getsoftc(ifp); | pi = if_getsoftc(ifp); | ||||
if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) | if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) | ||||
return (ENOENT); | return (ENOENT); | ||||
adap = pi->adapter; | adap = pi->adapter; | ||||
for (i = 0; i < SGE_QSETS; i++) | for (i = 0; i < adap->nqsets; i++) | ||||
(void)cxgb_netdump_poll_rx(adap, &adap->sge.qs[i]); | (void)cxgb_netdump_poll_rx(adap, &adap->sge.qs[i]); | ||||
(void)cxgb_netdump_poll_tx(&adap->sge.qs[pi->first_qset]); | (void)cxgb_netdump_poll_tx(&adap->sge.qs[pi->first_qset]); | ||||
return (0); | return (0); | ||||
} | } | ||||
#endif /* NETDUMP */ | #endif /* NETDUMP */ |