mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
To: Dmitry Osipenko <digetx@gmail.com>,
	kernel test robot <lkp@intel.com>,
	Thierry Reding <thierry.reding@gmail.com>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	clang-built-linux@googlegroups.com
Cc: kbuild-all@lists.01.org, clang-built-linux@googlegroups.com,
	linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org
Subject: Re: [PATCH v1 2/2] memory: tegra: Enable compile testing for all drivers
Date: Tue, 11 May 2021 11:31:03 -0400	[thread overview]
Message-ID: <06addbf3-0090-b76f-65cf-e0c10d284c69@canonical.com> (raw)
In-Reply-To: <dd0b550e-76a0-bfbc-9d6f-5d867812046d@gmail.com>

On 11/05/2021 11:17, Dmitry Osipenko wrote:
> 11.05.2021 16:58, kernel test robot пишет:
>> Hi Dmitry,
>>
>> I love your patch! Perhaps something to improve:
>>
>> [auto build test WARNING on tegra/for-next]
>> [also build test WARNING on v5.13-rc1 next-20210511]
>> [If your patch is applied to the wrong git tree, kindly drop us a note.
>> And when submitting patch, we suggest to use '--base' as documented in
>> https://git-scm.com/docs/git-format-patch]
>>
>> url:    https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/Enable-compile-testing-for-Tegra-memory-drivers/20210511-053910
>> base:   https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next
>> config: powerpc-randconfig-r032-20210511 (attached as .config)
>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project a0fed635fe1701470062495a6ffee1c608f3f1bc)
>> reproduce (this is a W=1 build):
>>         wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>         chmod +x ~/bin/make.cross
>>         # install powerpc cross compiling tool for clang build
>>         # apt-get install binutils-powerpc-linux-gnu
>>         # https://github.com/0day-ci/linux/commit/ecd67b1d49eb33c9821130a2b3b896bab395118d
>>         git remote add linux-review https://github.com/0day-ci/linux
>>         git fetch --no-tags linux-review Dmitry-Osipenko/Enable-compile-testing-for-Tegra-memory-drivers/20210511-053910
>>         git checkout ecd67b1d49eb33c9821130a2b3b896bab395118d
>>         # save the attached .config to linux build tree
>>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc 
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All warnings (new ones prefixed by >>):
>>
>>    __do_insb
>>    ^
>>    arch/powerpc/include/asm/io.h:556:56: note: expanded from macro '__do_insb'
>>    #define __do_insb(p, b, n)      readsb((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
>>                                           ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra30-emc.c:18:
>>    In file included from include/linux/interrupt.h:11:
>>    In file included from include/linux/hardirq.h:10:
>>    In file included from arch/powerpc/include/asm/hardirq.h:6:
>>    In file included from include/linux/irq.h:20:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:211:1: note: expanded from here
>>    __do_insw
>>    ^
>>    arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw'
>>    #define __do_insw(p, b, n)      readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
>>                                           ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra30-emc.c:18:
>>    In file included from include/linux/interrupt.h:11:
>>    In file included from include/linux/hardirq.h:10:
>>    In file included from arch/powerpc/include/asm/hardirq.h:6:
>>    In file included from include/linux/irq.h:20:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:213:1: note: expanded from here
>>    __do_insl
>>    ^
>>    arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl'
>>    #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
>>                                           ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra30-emc.c:18:
>>    In file included from include/linux/interrupt.h:11:
>>    In file included from include/linux/hardirq.h:10:
>>    In file included from arch/powerpc/include/asm/hardirq.h:6:
>>    In file included from include/linux/irq.h:20:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:215:1: note: expanded from here
>>    __do_outsb
>>    ^
>>    arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb'
>>    #define __do_outsb(p, b, n)     writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra30-emc.c:18:
>>    In file included from include/linux/interrupt.h:11:
>>    In file included from include/linux/hardirq.h:10:
>>    In file included from arch/powerpc/include/asm/hardirq.h:6:
>>    In file included from include/linux/irq.h:20:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:217:1: note: expanded from here
>>    __do_outsw
>>    ^
>>    arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw'
>>    #define __do_outsw(p, b, n)     writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra30-emc.c:18:
>>    In file included from include/linux/interrupt.h:11:
>>    In file included from include/linux/hardirq.h:10:
>>    In file included from arch/powerpc/include/asm/hardirq.h:6:
>>    In file included from include/linux/irq.h:20:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:219:1: note: expanded from here
>>    __do_outsl
>>    ^
>>    arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl'
>>    #define __do_outsl(p, b, n)     writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>>> drivers/memory/tegra/tegra30-emc.c:757:18: warning: implicit conversion from 'unsigned long' to 'u32' (aka 'unsigned int') changes value from 18446744071562067985 to 2147483665 [-Wconstant-conversion]
>>                    writel_relaxed(EMC_ZQ_CAL_LONG_CMD_DEV0,
>>                    ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
>>    drivers/memory/tegra/tegra30-emc.c:161:36: note: expanded from macro 'EMC_ZQ_CAL_LONG_CMD_DEV0'
>>            (DRAM_DEV_SEL_0 | EMC_ZQ_CAL_LONG | EMC_ZQ_CAL_CMD)
>>                                              ^
>>    arch/powerpc/include/asm/io.h:679:40: note: expanded from macro 'writel_relaxed'
>>    #define writel_relaxed(v, addr) writel(v, addr)
>>                                    ~~~~~~ ^
>>    13 warnings generated.
>> --
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:203:1: note: expanded from here
>>    __do_outl
>>    ^
>>    arch/powerpc/include/asm/io.h:537:62: note: expanded from macro '__do_outl'
>>    #define __do_outl(val, port)    writel(val,(PCI_IO_ADDR)_IO_BASE+port);
>>                                               ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra124-emc.c:16:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:43:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(insb, (unsigned long p, void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:217:1: note: expanded from here
>>    __do_insb
>>    ^
>>    arch/powerpc/include/asm/io.h:556:56: note: expanded from macro '__do_insb'
>>    #define __do_insb(p, b, n)      readsb((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
>>                                           ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra124-emc.c:16:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:219:1: note: expanded from here
>>    __do_insw
>>    ^
>>    arch/powerpc/include/asm/io.h:557:56: note: expanded from macro '__do_insw'
>>    #define __do_insw(p, b, n)      readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
>>                                           ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra124-emc.c:16:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:221:1: note: expanded from here
>>    __do_insl
>>    ^
>>    arch/powerpc/include/asm/io.h:558:56: note: expanded from macro '__do_insl'
>>    #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
>>                                           ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra124-emc.c:16:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:223:1: note: expanded from here
>>    __do_outsb
>>    ^
>>    arch/powerpc/include/asm/io.h:559:58: note: expanded from macro '__do_outsb'
>>    #define __do_outsb(p, b, n)     writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra124-emc.c:16:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:225:1: note: expanded from here
>>    __do_outsw
>>    ^
>>    arch/powerpc/include/asm/io.h:560:58: note: expanded from macro '__do_outsw'
>>    #define __do_outsw(p, b, n)     writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>    In file included from drivers/memory/tegra/tegra124-emc.c:16:
>>    In file included from include/linux/io.h:13:
>>    In file included from arch/powerpc/include/asm/io.h:619:
>>    arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
>>    DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
>>    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>    arch/powerpc/include/asm/io.h:616:3: note: expanded from macro 'DEF_PCI_AC_NORET'
>>                    __do_##name al;                                 \
>>                    ^~~~~~~~~~~~~~
>>    <scratch space>:227:1: note: expanded from here
>>    __do_outsl
>>    ^
>>    arch/powerpc/include/asm/io.h:561:58: note: expanded from macro '__do_outsl'
>>    #define __do_outsl(p, b, n)     writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
>>                                            ~~~~~~~~~~~~~~~~~~~~~^
>>>> drivers/memory/tegra/tegra124-emc.c:802:26: warning: implicit conversion from 'unsigned long' to 'u32' (aka 'unsigned int') changes value from 18446744071562067985 to 2147483665 [-Wconstant-conversion]
>>                    emc_ccfifo_writel(emc, EMC_ZQ_CAL_LONG_CMD_DEV0, EMC_ZQ_CAL);
>>                    ~~~~~~~~~~~~~~~~~      ^~~~~~~~~~~~~~~~~~~~~~~~
>>    drivers/memory/tegra/tegra124-emc.c:154:36: note: expanded from macro 'EMC_ZQ_CAL_LONG_CMD_DEV0'
>>            (DRAM_DEV_SEL_0 | EMC_ZQ_CAL_LONG | EMC_ZQ_CAL_CMD)
>>             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
>>    13 warnings generated.
> 
> This doesn't look like a useful warning from clang, it should see that
> the constant value itself isn't truncated, hence it should be a problem
> of clang. Do you think it's okay to ignore this nonsense?

I admit I also do not see the real issue here. The DRAM_DEV_SEL_0 fits
in u32 and there is no other bitwise arithmetic than just OR, so why
clang assumes it can have 32 most signifcant bits toggled on?

+Cc Nathan and Nick,
Maybe you could shed some light here on this warning?

Dmitry,
In general you should not ignore it because:
1. This breaks allyesconfig with clang on powerpc (or it is one of the
stoppers),
2. We might want in some future to build it with clang.


Best regards,
Krzysztof

  reply	other threads:[~2021-05-11 15:31 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-10 21:37 [PATCH v1 0/2] Enable compile-testing for Tegra memory drivers Dmitry Osipenko
2021-05-10 21:37 ` [PATCH v1 1/2] soc/tegra: fuse: Add missing stubs Dmitry Osipenko
2021-05-10 21:37 ` [PATCH v1 2/2] memory: tegra: Enable compile testing for all drivers Dmitry Osipenko
2021-05-11 13:58   ` kernel test robot
2021-05-11 15:17     ` Dmitry Osipenko
2021-05-11 15:31       ` Krzysztof Kozlowski [this message]
2021-05-11 16:00         ` Dmitry Osipenko
2021-05-11 17:35           ` Nathan Chancellor
2021-05-11 17:57             ` Krzysztof Kozlowski
2021-05-11 18:36             ` Dmitry Osipenko
2021-05-11 15:43   ` kernel test robot
2021-05-11 16:22     ` Dmitry Osipenko
2021-05-11 16:41   ` Krzysztof Kozlowski
2021-05-11 18:30     ` Dmitry Osipenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=06addbf3-0090-b76f-65cf-e0c10d284c69@canonical.com \
    --to=krzysztof.kozlowski@canonical.com \
    --cc=clang-built-linux@googlegroups.com \
    --cc=digetx@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=thierry.reding@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®