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

From: Jakub Kicinski
Date: Tue Feb 15 2022 - 00:32:14 EST


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).