On Fri, Mar 11, 2022 at 11:20:35AM +0800, Jiasheng Jiang wrote: > As the potential failure of the kvmalloc_array(), > it should be better to check and restore the 'data' > if fails in order to avoid the dereference of the > NULL pointer. > > Fixes: 6ae746711263 ("hv_netvsc: Add per-cpu ethtool stats for netvsc") > Signed-off-by: Jiasheng Jiang <jiasheng@xxxxxxxxxxx> > --- > drivers/net/hyperv/netvsc_drv.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c > index 3646469433b1..018c4a5f6f44 100644 > --- a/drivers/net/hyperv/netvsc_drv.c > +++ b/drivers/net/hyperv/netvsc_drv.c > @@ -1587,6 +1587,12 @@ static void netvsc_get_ethtool_stats(struct net_device *dev, > pcpu_sum = kvmalloc_array(num_possible_cpus(), > sizeof(struct netvsc_ethtool_pcpu_stats), > GFP_KERNEL); > + if (!pcpu_sum) { > + for (j = 0; j < i; j++) > + data[j] = 0; > + return; > + } How did you test this to verify it is correct? thanks, greg k-h