RE: [PATCH v1] gve: fix zero size queue page list allocation

From: Wang, Haiyue
Date: Tue Feb 15 2022 - 00:25:59 EST


> -----Original Message-----
> From: Jakub Kicinski <kuba@xxxxxxxxxx>
> Sent: Tuesday, February 15, 2022 13:22
> To: Wang, Haiyue <haiyue.wang@xxxxxxxxx>
> Cc: netdev@xxxxxxxxxxxxxxx; Jeroen de Borst <jeroendb@xxxxxxxxxx>; Catherine Sullivan
> <csully@xxxxxxxxxx>; David Awogbemila <awogbemila@xxxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>;
> Willem de Bruijn <willemb@xxxxxxxxxx>; Forrest, Bailey <bcf@xxxxxxxxxx>; Tao Liu <xliutaox@xxxxxxxxxx>;
> Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>; John Fraker <jfraker@xxxxxxxxxx>; Yangchun Fu
> <yangchun@xxxxxxxxxx>; open list <linux-kernel@xxxxxxxxxxxxxxx>
> Subject: Re: [PATCH v1] gve: fix zero size queue page list allocation
>
> On Mon, 14 Feb 2022 10:41:29 +0800 Haiyue Wang wrote:
> > According to the two functions 'gve_num_tx/rx_qpls', only the queue with
> > GVE_GQI_QPL_FORMAT format has queue page list.
> >
> > The 'queue_format == GVE_GQI_RDA_FORMAT' may lead to request zero sized
> > memory allocation, like if the queue format is GVE_DQO_RDA_FORMAT.
> >
> > The kernel memory subsystem will return ZERO_SIZE_PTR, which is not NULL
> > address, so the driver can run successfully. Also the code still checks
> > the queue page list number firstly, then accesses the allocated memory,
> > so zero number queue page list allocation will not lead to access fault.
> >
> > Use the queue page list number to detect no QPLs, it can avoid zero size
> > queue page list memory allocation.
>
> There's no bug here, strictly speaking, the driver will function
> correctly? In that case please repost without the Fixes tag and

Code design bug, the 'queue_format == GVE_GQI_RDA_FORMAT' is not correct. But,
yes, it works. So still need to remove the tag ?

> with [PATCH net-next] in the subject.
>
> > Fixes: a5886ef4f4bf ("gve: Introduce per netdev `enum gve_queue_format`")
> > Signed-off-by: Haiyue Wang <haiyue.wang@xxxxxxxxx>