Re: [PATCH net-next] hv_netvsc: fix a race between netvsc_send() and netvsc_init_buf()

From: David Miller
Date: Thu Oct 20 2016 - 14:03:08 EST


From: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
Date: Thu, 20 Oct 2016 10:51:04 +0200

> Stephen Hemminger <sthemmin@xxxxxxxxxxxxx> writes:
>
>> Do we need ACCESS_ONCE() here to avoid check/use issues?
>>
>
> I think we don't: this is the only place in the function where we read
> the variable so we'll get normal read. We're not trying to syncronize
> with netvsc_init_buf() as that would require locking, if we read stale
> NULL value after it was already updated on a different CPU we're fine,
> we'll just return -EAGAIN.

The concern is if we race with netvsc_destroy_buf() and this pointer
becomes NULL after the test you are adding.