diff --git a/src/drivers/net/gve.c b/src/drivers/net/gve.c index 3c45b92fa..c25f1d452 100644 --- a/src/drivers/net/gve.c +++ b/src/drivers/net/gve.c @@ -938,7 +938,7 @@ static int gve_alloc_qpl ( struct gve_nic *gve, struct gve_qpl *qpl, qpl->data = dma_umalloc ( gve->dma, &qpl->map, len, GVE_ALIGN ); if ( ! qpl->data ) return -ENOMEM; - qpl->base = ( ( gve->mode & GVE_MODE_QPL ) ? + qpl->base = ( ( gve->mode == GVE_MODE_QPL ) ? 0 : dma ( &qpl->map, qpl->data ) ); DBGC ( gve, "GVE %p QPL %#08x at [%08lx,%08lx)\n", diff --git a/src/drivers/net/gve.h b/src/drivers/net/gve.h index 9cef01a02..d352306ef 100644 --- a/src/drivers/net/gve.h +++ b/src/drivers/net/gve.h @@ -530,9 +530,10 @@ struct gve_qpl { unsigned int id; /** Queue page list base device address * - * This will be zero if queue page list addressing is in use, - * or the DMA address of the first page if raw DMA addressing - * is in use. + * This will be zero in the GQI-QPL operating mode, or the DMA + * address of the first page in any other operating mode. + * (Despite its name, DQO-QPL still requires the use of raw + * DMA addresses in transmit and receive descriptors.) */ physaddr_t base; };