From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [PATCH] net: 8390: Fix possible data races in __ei_get_stats Date: Mon, 7 May 2018 22:04:51 -0700 Message-ID: References: <20180507140809.28847-1-baijiaju1990@gmail.com> <6fe51782-2169-53c8-9bac-1715262e716d@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org To: Jia-Ju Bai , davem@davemloft.net, fthain@telegraphics.com.au, joe@perches.com Return-path: In-Reply-To: <6fe51782-2169-53c8-9bac-1715262e716d@gmail.com> Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On 05/07/2018 07:16 PM, Jia-Ju Bai wrote: > Yes, "&dev->stats" will not change, because it is a fixed address. > But the field data in "dev->stats" is changed (rx_frame_errors, rx_crc_errors and rx_missed_errors). > So if the driver returns "&dev->stats" without lock protection (like on line 858), the field data value of this return value can be the changed field data value or unchanged field data value. We do not care. This function can be called by multiple cpus at the same time. As soon as one cpu returns from it, another cpu can happily modify dev->stats.ANYFIELD. Your patch fixes nothing at all.