cxgbe(4): Do not bring up an interface when IFCAP_TOE is enabled on it.

The interface's queues are functional after VI_INIT_DONE (which is short
of interface-up) and that's all that's needed for t4_tom to communicate
with the chip.

Approved by:	re@ (gjb@)
Sponsored by:	Chelsio Communications
This commit is contained in:
np 2016-06-29 06:55:30 +00:00
parent eaa90873e9
commit ecbf2c3532
2 changed files with 4 additions and 4 deletions

View File

@ -8981,12 +8981,12 @@ toe_capability(struct vi_info *vi, int enable)
* port has never been UP'd administratively.
*/
if (!(vi->flags & VI_INIT_DONE)) {
rc = cxgbe_init_synchronized(vi);
rc = vi_full_init(vi);
if (rc)
return (rc);
}
if (!(pi->vi[0].flags & VI_INIT_DONE)) {
rc = cxgbe_init_synchronized(&pi->vi[0]);
rc = vi_full_init(&pi->vi[0]);
if (rc)
return (rc);
}

View File

@ -532,7 +532,7 @@ t4_listen_start(struct toedev *tod, struct tcpcb *tp)
#endif
/*
* Find a running VI with IFCAP_TOE (4 or 6). We'll use the first
* Find an initialized VI with IFCAP_TOE (4 or 6). We'll use the first
* such VI's queues to send the passive open and receive the reply to
* it.
*
@ -543,7 +543,7 @@ t4_listen_start(struct toedev *tod, struct tcpcb *tp)
for_each_port(sc, i) {
pi = sc->port[i];
for_each_vi(pi, v, vi) {
if (vi->ifp->if_drv_flags & IFF_DRV_RUNNING &&
if (vi->flags & VI_INIT_DONE &&
vi->ifp->if_capenable & IFCAP_TOE)
goto found;
}