sunvnet: vnet_ack() should check if !start_cons to send a missed trigger
Subsystems (2)
PATCH 2/3 sunvnet: vnet_ack() should check if !start_cons to send a missed trigger
As per comments in vnet_start_xmit, for the edge case when outgoing vnet_start_xmit() data and an incoming STOPPED ACK cross each other in flight, we may need to send the missed START trigger from maybe_tx_wakeup() after checking for a false value of start_cons
Signed-off-by Sowmini Varadhan <[email protected]>
--- drivers/net/ethernet/sun/sunvnet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/ethernet/sun/sunvnet.c +1 -1
@@ -572,7 +572,7 @@ static int vnet_ack(struct vnet_port *port, void *msgbuf)*/ dr->cons =next_idx (end, dr); desc =vio_dring_entry (dr, dr->cons); -if (desc->hdr.state ==VIO_DESC_READY && port->start_cons) { +if (desc->hdr.state ==VIO_DESC_READY && !port->start_cons) {/* vnet_start_xmit() just populated this dring but missed * sending the "start" LDC message to the consumer. * Send a "start" trigger on its behalf.
Signature · 1 line
1.8.4.2