]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 302339:
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 2 Dec 2016 21:29:52 +0000 (21:29 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 2 Dec 2016 21:29:52 +0000 (21:29 +0000)
commit9fdd515ae134fa1668428e655fdd2ca519b3aefe
tree09f1667ea880061468df225cf7108dfca885399d
parentd667b68a6e30856e81d33dfe40b509befd7960ad
MFC 302339:
cxgbe(4): Changes to the CPL-handler registration mechanism and code
related to "shared" CPLs.

a) Combine t4_set_tcb_field and t4_set_tcb_field_rpl into a single
function.  Allow callers to direct the response to any iq.  Tidy up
set_ulp_mode_iscsi while there to use names from t4_tcb.h instead of
magic constants.

b) Remove all CPL handler tables from struct adapter.  This reduces its
size by around 2KB.  All handlers are now registered at MOD_LOAD instead
of attach or some kind of initialization/activation.  The registration
functions do not need an adapter parameter any more.

c) Add per-iq handlers to deal with CPLs whose destination cannot be
determined solely from the opcode.  There are 2 such CPLs in use right
now: SET_TCB_RPL and L2T_WRITE_RPL.  The base driver continues to send
filter and L2T_WRITEs over the mgmtq and solicits the reply on fwq.
t4_tom (including the DDP code) now uses the port's ctrlq to send
L2T_WRITEs and SET_TCB_FIELDs and solicits the reply on an ofld_rxq.
fwq and ofld_rxq have different handlers that know what kind of tid to
expect in the reply.  Update t4_write_l2e and callers to to support any
wrq/iq combination.

Sponsored by: Chelsio Communications

git-svn-id: svn://svn.freebsd.org/base/stable/10@309442 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
16 files changed:
sys/dev/cxgbe/adapter.h
sys/dev/cxgbe/iw_cxgbe/cm.c
sys/dev/cxgbe/iw_cxgbe/device.c
sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h
sys/dev/cxgbe/t4_l2t.c
sys/dev/cxgbe/t4_l2t.h
sys/dev/cxgbe/t4_main.c
sys/dev/cxgbe/t4_sge.c
sys/dev/cxgbe/tom/t4_connect.c
sys/dev/cxgbe/tom/t4_cpl_io.c
sys/dev/cxgbe/tom/t4_ddp.c
sys/dev/cxgbe/tom/t4_listen.c
sys/dev/cxgbe/tom/t4_tom.c
sys/dev/cxgbe/tom/t4_tom.h
sys/dev/cxgbe/tom/t4_tom_l2t.c
sys/dev/cxgbe/tom/t4_tom_l2t.h