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.