mlx4_core: Add wrapper functions and comm channel and slave event support to EQs
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Tue, 13 Dec 2011 04:13:58 +0000 (04:13 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Dec 2011 18:56:06 +0000 (13:56 -0500)
commitacba2420f9d20082b17d0cbeb1137fcffe0f5b7e
treec0f2e10ed6b83859377f329b7d16dab204ee1586
parentea51b377abcdf0f3fab0119879be373bda69afb1
mlx4_core: Add wrapper functions and comm channel and slave event support to EQs

Passing async events to slaves:
In SRIOV mode, each slave creates its own async EQ, but only the master can
register directly with the FW to receive async events.  Async events which
should be passed to slaves (such as a WQ_ACCESS_ERROR for a QP owned by a slave)
are generated at the slave by the master using the GEN_EQE FW command.

Wrapper functions: mlx4_MAP_EQ_wrapper
Only the master can map an EQ. The slave commands to map their EQs arrive
at the master via the comm channel.  The master then invokes the wrapper
function to do the work (and enter the resource in the tracking database).

New events: COMM_CHANNEL and FLR
The COMM_CHANNEL event arrives only at the master, and signals that
a slave has posted a command on the comm channel.
The FLR event is generated by the FW when a guest operating a VF
unexpectedly goes down.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/eq.c