linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function
@ 2017-08-09 15:07 kbuild test robot
  2017-08-09 15:32 ` Arnd Bergmann
  0 siblings, 1 reply; 3+ messages in thread
From: kbuild test robot @ 2017-08-09 15:07 UTC (permalink / raw)
  To: Daniel Micay
  Cc: kbuild-all, linux-kernel, Kees Cook, Arnd Bergmann, Andrew Morton,
	Linux Memory Management List

[-- Attachment #1: Type: text/plain, Size: 8124 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   bfa738cf3dfae2111626650f86135f93c5ff0a22
commit: 6974f0c4555e285ab217cee58b6e874f776ff409 include/linux/string.h: add the option of fortified string.h functions
date:   4 weeks ago
config: x86_64-randconfig-v0-08092220 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
        git checkout 6974f0c4555e285ab217cee58b6e874f776ff409
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   In file included from include/linux/bitmap.h:8,
                    from include/linux/cpumask.h:11,
                    from arch/x86/include/asm/cpumask.h:4,
                    from arch/x86/include/asm/msr.h:10,
                    from arch/x86/include/asm/processor.h:20,
                    from arch/x86/include/asm/cpufeature.h:4,
                    from arch/x86/include/asm/thread_info.h:52,
                    from include/linux/thread_info.h:37,
                    from arch/x86/include/asm/preempt.h:6,
                    from include/linux/preempt.h:80,
                    from include/linux/spinlock.h:50,
                    from include/linux/seqlock.h:35,
                    from include/linux/time.h:5,
                    from include/linux/stat.h:18,
                    from include/linux/module.h:10,
                    from drivers/tty/serial/8250/8250_fintek.c:11:
   include/linux/string.h: In function 'strcpy':
   include/linux/string.h:209: warning: '______f' is static but declared in inline function 'strcpy' which is not static
   include/linux/string.h:211: warning: '______f' is static but declared in inline function 'strcpy' which is not static
   include/linux/string.h: In function 'strncpy':
   include/linux/string.h:219: warning: '______f' is static but declared in inline function 'strncpy' which is not static
   include/linux/string.h:221: warning: '______f' is static but declared in inline function 'strncpy' which is not static
   include/linux/string.h: In function 'strcat':
   include/linux/string.h:229: warning: '______f' is static but declared in inline function 'strcat' which is not static
   include/linux/string.h:231: warning: '______f' is static but declared in inline function 'strcat' which is not static
   include/linux/string.h: In function 'strlen':
   include/linux/string.h:240: warning: '______f' is static but declared in inline function 'strlen' which is not static
   include/linux/string.h:243: warning: '______f' is static but declared in inline function 'strlen' which is not static
   include/linux/string.h: In function 'strnlen':
   include/linux/string.h:253: warning: '______f' is static but declared in inline function 'strnlen' which is not static
   include/linux/string.h: In function 'strlcpy':
   include/linux/string.h:265: warning: '______f' is static but declared in inline function 'strlcpy' which is not static
   include/linux/string.h:268: warning: '______f' is static but declared in inline function 'strlcpy' which is not static
   include/linux/string.h:270: warning: '______f' is static but declared in inline function 'strlcpy' which is not static
   include/linux/string.h:272: warning: '______f' is static but declared in inline function 'strlcpy' which is not static
   include/linux/string.h: In function 'strncat':
   include/linux/string.h:286: warning: '______f' is static but declared in inline function 'strncat' which is not static
   include/linux/string.h:290: warning: '______f' is static but declared in inline function 'strncat' which is not static
   include/linux/string.h: In function 'memset':
   include/linux/string.h:300: warning: '______f' is static but declared in inline function 'memset' which is not static
   include/linux/string.h:302: warning: '______f' is static but declared in inline function 'memset' which is not static
   include/linux/string.h: In function 'memcpy':
   include/linux/string.h:311: warning: '______f' is static but declared in inline function 'memcpy' which is not static
   include/linux/string.h:312: warning: '______f' is static but declared in inline function 'memcpy' which is not static
   include/linux/string.h:314: warning: '______f' is static but declared in inline function 'memcpy' which is not static
   include/linux/string.h:317: warning: '______f' is static but declared in inline function 'memcpy' which is not static
   include/linux/string.h: In function 'memmove':
   include/linux/string.h:326: warning: '______f' is static but declared in inline function 'memmove' which is not static
   include/linux/string.h:327: warning: '______f' is static but declared in inline function 'memmove' which is not static
   include/linux/string.h:329: warning: '______f' is static but declared in inline function 'memmove' which is not static
   include/linux/string.h:332: warning: '______f' is static but declared in inline function 'memmove' which is not static
   include/linux/string.h: In function 'memscan':
   include/linux/string.h:341: warning: '______f' is static but declared in inline function 'memscan' which is not static
   include/linux/string.h:343: warning: '______f' is static but declared in inline function 'memscan' which is not static
   include/linux/string.h: In function 'memcmp':
   include/linux/string.h:352: warning: '______f' is static but declared in inline function 'memcmp' which is not static
   include/linux/string.h:353: warning: '______f' is static but declared in inline function 'memcmp' which is not static
   include/linux/string.h:355: warning: '______f' is static but declared in inline function 'memcmp' which is not static
   include/linux/string.h:358: warning: '______f' is static but declared in inline function 'memcmp' which is not static
   include/linux/string.h: In function 'memchr':
   include/linux/string.h:366: warning: '______f' is static but declared in inline function 'memchr' which is not static
   include/linux/string.h:368: warning: '______f' is static but declared in inline function 'memchr' which is not static
   include/linux/string.h: In function 'memchr_inv':
   include/linux/string.h:377: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static
   include/linux/string.h:379: warning: '______f' is static but declared in inline function 'memchr_inv' which is not static
   include/linux/string.h: In function 'kmemdup':
   include/linux/string.h:388: warning: '______f' is static but declared in inline function 'kmemdup' which is not static
   include/linux/string.h:390: warning: '______f' is static but declared in inline function 'kmemdup' which is not static
   drivers/tty/serial/8250/8250_fintek.c: In function 'fintek_8250_probe':
>> drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function
   drivers/tty/serial/8250/8250_fintek.c:297: warning: 'min' may be used uninitialized in this function
   drivers/tty/serial/8250/8250_fintek.c:297: note: 'min' was declared here
   drivers/tty/serial/8250/8250_fintek.c:297: warning: 'max' may be used uninitialized in this function
   drivers/tty/serial/8250/8250_fintek.c:297: note: 'max' was declared here

vim +/probe_data +364 drivers/tty/serial/8250/8250_fintek.c

1e26c472 Ji-Ze Hong (Peter Hong  2016-10-04  360) 
fa01e2ca Ricardo Ribalda Delgado 2016-04-27  361  int fintek_8250_probe(struct uart_8250_port *uart)
28e3fb6c Ricardo Ribalda Delgado 2014-07-31  362  {
92a5f11a Ricardo Ribalda Delgado 2015-06-16  363  	struct fintek_8250 *pdata;
fa01e2ca Ricardo Ribalda Delgado 2016-04-27 @364  	struct fintek_8250 probe_data;

:::::: The code at line 364 was first introduced by commit
:::::: fa01e2ca9f531b4a5693469a196eb1574b8d7d8a serial: 8250: Integrate Fintek into 8250_base

:::::: TO: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 29527 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function
  2017-08-09 15:07 drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function kbuild test robot
@ 2017-08-09 15:32 ` Arnd Bergmann
  2017-08-09 15:47   ` Daniel Micay
  0 siblings, 1 reply; 3+ messages in thread
From: Arnd Bergmann @ 2017-08-09 15:32 UTC (permalink / raw)
  To: kbuild test robot
  Cc: Daniel Micay, kbuild-all, Linux Kernel Mailing List, Kees Cook,
	Andrew Morton, Linux Memory Management List

On Wed, Aug 9, 2017 at 5:07 PM, kbuild test robot
<fengguang.wu@intel.com> wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   bfa738cf3dfae2111626650f86135f93c5ff0a22
> commit: 6974f0c4555e285ab217cee58b6e874f776ff409 include/linux/string.h: add the option of fortified string.h functions
> date:   4 weeks ago
> config: x86_64-randconfig-v0-08092220 (attached as .config)
> compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
> reproduce:
>         git checkout 6974f0c4555e285ab217cee58b6e874f776ff409
>         # save the attached .config to linux build tree
>         make ARCH=x86_64
>
> All warnings (new ones prefixed by >>):
>
>    In file included from include/linux/bitmap.h:8,
>                     from include/linux/cpumask.h:11,
>                     from arch/x86/include/asm/cpumask.h:4,
>                     from arch/x86/include/asm/msr.h:10,
>                     from arch/x86/include/asm/processor.h:20,
>                     from arch/x86/include/asm/cpufeature.h:4,
>                     from arch/x86/include/asm/thread_info.h:52,
>                     from include/linux/thread_info.h:37,
>                     from arch/x86/include/asm/preempt.h:6,
>                     from include/linux/preempt.h:80,
>                     from include/linux/spinlock.h:50,
>                     from include/linux/seqlock.h:35,
>                     from include/linux/time.h:5,
>                     from include/linux/stat.h:18,
>                     from include/linux/module.h:10,
>                     from drivers/tty/serial/8250/8250_fintek.c:11:
>    include/linux/string.h: In function 'strcpy':
>    include/linux/string.h:209: warning: '______f' is static but declared in inline function 'strcpy' which is not static
>    include/linux/string.h:211: warning: '______f' is static but declared in inline function 'strcpy' which is not static


This clearly comes from __trace_if() when CONFIG_PROFILE_ALL_BRANCHES
is enabled. I did not see the warning with gcc-7.1.1, and I guess this only
happens on older compilers like the gcc-4.4 that was used here.

What is the reason for __FORTIFY_INLINE to be "extern __always_inline"
rather than "static __always_inline"? If they cannot just be 'static', maybe
this can be changed to depend on the compiler version.

       Arnd

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function
  2017-08-09 15:32 ` Arnd Bergmann
@ 2017-08-09 15:47   ` Daniel Micay
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Micay @ 2017-08-09 15:47 UTC (permalink / raw)
  To: Arnd Bergmann, kbuild test robot
  Cc: kbuild-all, Linux Kernel Mailing List, Kees Cook, Andrew Morton,
	Linux Memory Management List

On Wed, 2017-08-09 at 17:32 +0200, Arnd Bergmann wrote:
> On Wed, Aug 9, 2017 at 5:07 PM, kbuild test robot
> <fengguang.wu@intel.com> wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin
> > ux.git master
> > head:   bfa738cf3dfae2111626650f86135f93c5ff0a22
> > commit: 6974f0c4555e285ab217cee58b6e874f776ff409
> > include/linux/string.h: add the option of fortified string.h
> > functions
> > date:   4 weeks ago
> > config: x86_64-randconfig-v0-08092220 (attached as .config)
> > compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
> > reproduce:
> >         git checkout 6974f0c4555e285ab217cee58b6e874f776ff409
> >         # save the attached .config to linux build tree
> >         make ARCH=x86_64
> > 
> > All warnings (new ones prefixed by >>):
> > 
> >    In file included from include/linux/bitmap.h:8,
> >                     from include/linux/cpumask.h:11,
> >                     from arch/x86/include/asm/cpumask.h:4,
> >                     from arch/x86/include/asm/msr.h:10,
> >                     from arch/x86/include/asm/processor.h:20,
> >                     from arch/x86/include/asm/cpufeature.h:4,
> >                     from arch/x86/include/asm/thread_info.h:52,
> >                     from include/linux/thread_info.h:37,
> >                     from arch/x86/include/asm/preempt.h:6,
> >                     from include/linux/preempt.h:80,
> >                     from include/linux/spinlock.h:50,
> >                     from include/linux/seqlock.h:35,
> >                     from include/linux/time.h:5,
> >                     from include/linux/stat.h:18,
> >                     from include/linux/module.h:10,
> >                     from drivers/tty/serial/8250/8250_fintek.c:11:
> >    include/linux/string.h: In function 'strcpy':
> >    include/linux/string.h:209: warning: '______f' is static but
> > declared in inline function 'strcpy' which is not static
> >    include/linux/string.h:211: warning: '______f' is static but
> > declared in inline function 'strcpy' which is not static
> 
> 
> This clearly comes from __trace_if() when CONFIG_PROFILE_ALL_BRANCHES
> is enabled. I did not see the warning with gcc-7.1.1, and I guess this
> only
> happens on older compilers like the gcc-4.4 that was used here.
> 
> What is the reason for __FORTIFY_INLINE to be "extern __always_inline"
> rather than "static __always_inline"? If they cannot just be 'static',
> maybe
> this can be changed to depend on the compiler version.
> 
>        Arnd

It's important to get the semantics of using extern. It means if you do
something like &memcpy, it resolves to the address of the direct symbol
instead of generating a useless thunk for that object file. It might
also be required for Clang compatibility, I don't remember.

It could have a compiler version dependency or maybe one specifically
tied to old compiler && CONFIG_PROFILE_ALL_BRANCHES / other options that
conflict with it like that.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-08-09 15:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-09 15:07 drivers/tty/serial/8250/8250_fintek.c:364: warning: 'probe_data' is used uninitialized in this function kbuild test robot
2017-08-09 15:32 ` Arnd Bergmann
2017-08-09 15:47   ` Daniel Micay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).