[intelxl] Use one admin queue buffer per admin queue descriptor
authorMichael Brown <mcb30@ipxe.org>
Wed, 24 Apr 2019 11:18:12 +0000 (12:18 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sat, 27 Apr 2019 19:25:59 +0000 (20:25 +0100)
commit8f3e648b6ce2b14940b8eb30efab3cb05820ca8a
tree09a5a4bef6f000631c221a5181064cae37c98da7
parentc5ccfe79cf9188c4b4e55370f91c8377808008bb
[intelxl] Use one admin queue buffer per admin queue descriptor

We currently use a single data buffer shared between all admin queue
descriptors.  This works for the physical function driver since we
have at most one command in progress and only a single event (which
does not use a data buffer).

The communication path between the physical and virtual function
drivers uses the event data buffer, and there is no way to prevent a
solicited event (i.e. a response to a request) from being overwritten
by an unsolicited event (e.g. a link status change).

Provide individual data buffers for each admin event queue descriptor
(and for each admin command queue descriptor, for the sake of
consistency).

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/intelxl.c
src/drivers/net/intelxl.h