tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git 
rcu/next
head:   a1dff3e407c785ab982810d0b14f829aaf3022b6
commit: a1dff3e407c785ab982810d0b14f829aaf3022b6 [28/28] locking/barriers: 
suppress sparse warnings in lockless_dereference()
config: ia64-defconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 4.9.0
reproduce:
        wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout a1dff3e407c785ab982810d0b14f829aaf3022b6
        # save the attached .config to linux build tree
        make.cross ARCH=ia64 

All errors (new ones prefixed by >>):

   In file included from include/linux/linkage.h:4:0,
                    from include/linux/kernel.h:6,
                    from drivers/gpu/drm/drm_fb_helper.c:32:
   drivers/gpu/drm/drm_fb_helper.c: In function 'drm_fb_helper_is_bound':
>> include/linux/compiler.h:536:47: error: dereferencing pointer to incomplete 
>> type
     size_t __maybe_unused __size_of_ptr = sizeof(*(p)); \
                                                  ^
   drivers/gpu/drm/drm_fb_helper.c:467:6: note: in expansion of macro 
'lockless_dereference'
     if (lockless_dereference(dev->master))
         ^

vim +536 include/linux/compiler.h

   530   * The seemingly unused size_t variable is to validate @p is indeed a 
pointer
   531   * type by making sure it can be dereferenced.
   532   */
   533  #define lockless_dereference(p) \
   534  ({ \
   535          typeof(p) _________p1 = READ_ONCE(p); \
 > 536          size_t __maybe_unused __size_of_ptr = sizeof(*(p)); \
   537          smp_read_barrier_depends(); /* Dependency order vs. p above. */ 
\
   538          (_________p1); \
   539  })

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

Attachment: .config.gz
Description: Binary data

Reply via email to