Re: [PATCH net 07/18] net/ena: refactor ena_get_stats64 to be atomic context safe

From: kbuild test robot
Date: Mon Nov 21 2016 - 11:24:52 EST


Hi Netanel,

[auto build test WARNING on net/master]

url: https://github.com/0day-ci/linux/commits/Netanel-Belgazal/Update-ENA-driver-to-version-1-1-2/20161120-165649
config: i386-randconfig-h1-11212236 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

In file included from include/linux/mmzone.h:15:0,
from include/linux/gfp.h:5,
from include/linux/cpu_rmap.h:14,
from drivers/net/ethernet/amazon/ena/ena_netdev.c:36:
drivers/net/ethernet/amazon/ena/ena_netdev.c: In function 'ena_get_stats64':
>> include/linux/seqlock.h:204:19: warning: 'rx_ring' may be used uninitialized in this function [-Wmaybe-uninitialized]
return unlikely(s->sequence != start);
^~
drivers/net/ethernet/amazon/ena/ena_netdev.c:2188:19: note: 'rx_ring' was declared here
struct ena_ring *rx_ring, *tx_ring;
^~~~~~~

vim +/rx_ring +204 include/linux/seqlock.h

4f988f15 Linus Torvalds 2012-05-04 188 /**
3c22cd57 Nick Piggin 2011-01-07 189 * __read_seqcount_retry - end a seq-read critical section (without barrier)
3c22cd57 Nick Piggin 2011-01-07 190 * @s: pointer to seqcount_t
3c22cd57 Nick Piggin 2011-01-07 191 * @start: count, from read_seqcount_begin
3c22cd57 Nick Piggin 2011-01-07 192 * Returns: 1 if retry is required, else 0
3c22cd57 Nick Piggin 2011-01-07 193 *
3c22cd57 Nick Piggin 2011-01-07 194 * __read_seqcount_retry is like read_seqcount_retry, but has no smp_rmb()
3c22cd57 Nick Piggin 2011-01-07 195 * barrier. Callers should ensure that smp_rmb() or equivalent ordering is
3c22cd57 Nick Piggin 2011-01-07 196 * provided before actually loading any of the variables that are to be
3c22cd57 Nick Piggin 2011-01-07 197 * protected in this critical section.
3c22cd57 Nick Piggin 2011-01-07 198 *
3c22cd57 Nick Piggin 2011-01-07 199 * Use carefully, only in critical code, and comment how the barrier is
3c22cd57 Nick Piggin 2011-01-07 200 * provided.
3c22cd57 Nick Piggin 2011-01-07 201 */
3c22cd57 Nick Piggin 2011-01-07 202 static inline int __read_seqcount_retry(const seqcount_t *s, unsigned start)
3c22cd57 Nick Piggin 2011-01-07 203 {
3c22cd57 Nick Piggin 2011-01-07 @204 return unlikely(s->sequence != start);
3c22cd57 Nick Piggin 2011-01-07 205 }
3c22cd57 Nick Piggin 2011-01-07 206
3c22cd57 Nick Piggin 2011-01-07 207 /**
3c22cd57 Nick Piggin 2011-01-07 208 * read_seqcount_retry - end a seq-read critical section
3c22cd57 Nick Piggin 2011-01-07 209 * @s: pointer to seqcount_t
3c22cd57 Nick Piggin 2011-01-07 210 * @start: count, from read_seqcount_begin
3c22cd57 Nick Piggin 2011-01-07 211 * Returns: 1 if retry is required, else 0
3c22cd57 Nick Piggin 2011-01-07 212 *

:::::: The code at line 204 was first introduced by commit
:::::: 3c22cd5709e8143444a6d08682a87f4c57902df3 kernel: optimise seqlock

:::::: TO: Nick Piggin <npiggin@xxxxxxxxx>
:::::: CC: Nick Piggin <npiggin@xxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip