From: Guenter Roeck <linux@roeck-us.net>
To: Nick Desaulniers <ndesaulniers@google.com>
Cc: Arnd Bergmann <arnd@kernel.org>,
Wim Van Sebroeck <wim@linux-watchdog.org>,
Nathan Chancellor <natechancellor@gmail.com>,
Arnd Bergmann <arnd@arndb.de>,
linux-watchdog@vger.kernel.org,
LKML <linux-kernel@vger.kernel.org>,
clang-built-linux <clang-built-linux@googlegroups.com>
Subject: Re: [PATCH] watchdog: coh901327: add COMMON_CLK dependency
Date: Thu, 10 Dec 2020 16:16:59 -0800 [thread overview]
Message-ID: <20201211001659.GH259082@roeck-us.net> (raw)
In-Reply-To: <CAKwvOd=i6DFLrPAe5KihT+ZK-nFZ+L7troC300q-9Jpa=i4Fqg@mail.gmail.com>
On Thu, Dec 10, 2020 at 03:00:30PM -0800, Nick Desaulniers wrote:
> On Thu, Dec 3, 2020 at 2:34 PM Arnd Bergmann <arnd@kernel.org> wrote:
> >
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > clang produces a build failure in configurations without COMMON_CLK
> > when a timeout calculation goes wrong:
> >
> > arm-linux-gnueabi-ld: drivers/watchdog/coh901327_wdt.o: in function `coh901327_enable':
> > coh901327_wdt.c:(.text+0x50): undefined reference to `__bad_udelay'
>
> Isn't a linkage failure against __bad_udelay supposed to be
> interpreted as a value too large being passed to udelay()? IIRC, this
> was an issue for someone building an Apple touchpad driver with Clang
> at -O3...you sent a fix for that:
> https://github.com/ClangBuiltLinux/linux/issues/678,
> https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git/commit/?id=fff2d0f701e6753591609739f8ab9be1c8e80ebb.
The problem is likely that clk_get_rate() returns a constant 0,
which in the real world would end up in a divide by 0 crash.
An alternative might be be to add
freq = clk_get_rate(clk);
--> if (freq == 0)
--> return;
but I don't know if that would really be worth the effort.
I prefer the current fix.
Guenter
>
> >
> > Add a Kconfig dependency to only do build testing when COMMON_CLK
> > is enabled.
> >
> > Fixes: da2a68b3eb47 ("watchdog: Enable COMPILE_TEST where possible")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> > drivers/watchdog/Kconfig | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> > index 8bdbd125821b..32fa6de7b820 100644
> > --- a/drivers/watchdog/Kconfig
> > +++ b/drivers/watchdog/Kconfig
> > @@ -631,7 +631,7 @@ config SUNXI_WATCHDOG
> >
> > config COH901327_WATCHDOG
> > bool "ST-Ericsson COH 901 327 watchdog"
> > - depends on ARCH_U300 || (ARM && COMPILE_TEST)
> > + depends on ARCH_U300 || (ARM && COMMON_CLK && COMPILE_TEST)
> > default y if MACH_U300
> > select WATCHDOG_CORE
> > help
> > --
> > 2.27.0
> >
>
>
> --
> Thanks,
> ~Nick Desaulniers
prev parent reply other threads:[~2020-12-11 0:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-03 22:33 [PATCH] watchdog: coh901327: add COMMON_CLK dependency Arnd Bergmann
2020-12-04 1:41 ` Guenter Roeck
2020-12-10 23:00 ` Nick Desaulniers
2020-12-11 0:16 ` Guenter Roeck [this message]
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=20201211001659.GH259082@roeck-us.net \
--to=linux@roeck-us.net \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=clang-built-linux@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=natechancellor@gmail.com \
--cc=ndesaulniers@google.com \
--cc=wim@linux-watchdog.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.