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

From: Wang, Haiyue
Date: Tue Feb 15 2022 - 00:34:20 EST


> -----Original Message-----
> From: Jakub Kicinski <kuba@xxxxxxxxxx>
> Sent: Tuesday, February 15, 2022 13:31
> 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 Tue, 15 Feb 2022 05:25:49 +0000 Wang, Haiyue wrote:
> > > 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 ?
>
> A bug is something that users can notice. If there are conditions under
> which this may lead to user-visible mis-behavior then we should keep
> the tag and send the patch to stable as well.
>
> If there is no user-visible problem here, then the patch is just
> future-proofing / refactoring and we should not risk introducing real
> bugs by making people backport it (which is what adding a Fixes will
> do).

OK. Will remove the tag in v2.