From: Greg KH <gregkh@linuxfoundation.org>
To: Laurent Vivier <laurent@vivier.eu>
Cc: linux-kernel@vger.kernel.org, Joshua Thompson <funaho@jurai.org>,
linux-serial@vger.kernel.org,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linux-m68k@lists.linux-m68k.org,
Geert Uytterhoeven <geert@linux-m68k.org>,
Paul Mackerras <paulus@samba.org>,
linuxppc-dev@lists.ozlabs.org,
Michael Ellerman <mpe@ellerman.id.au>
Subject: Re: [PATCH] serial: pmac_zilog: don't init if zilog is not available
Date: Tue, 20 Oct 2020 20:32:46 +0200 [thread overview]
Message-ID: <20201020183246.GA912431@kroah.com> (raw)
In-Reply-To: <387fd2aa-b181-c41f-0581-0a7e79a44e41@vivier.eu>
On Tue, Oct 20, 2020 at 08:19:26PM +0200, Laurent Vivier wrote:
> Le 20/10/2020 à 19:37, Greg KH a écrit :
> > On Tue, Oct 20, 2020 at 06:37:41PM +0200, Laurent Vivier wrote:
> >> Le 20/10/2020 à 18:28, Greg KH a écrit :
> >>> On Tue, Oct 20, 2020 at 06:23:03PM +0200, Laurent Vivier wrote:
> >>>> We can avoid to probe for the Zilog device (and generate ugly kernel warning)
> >>>> if kernel is built for Mac but not on a Mac.
> >>>>
> >>>> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> >>>> ---
> >>>> drivers/tty/serial/pmac_zilog.c | 11 +++++++++++
> >>>> 1 file changed, 11 insertions(+)
> >>>>
> >>>> diff --git a/drivers/tty/serial/pmac_zilog.c b/drivers/tty/serial/pmac_zilog.c
> >>>> index 063484b22523..d1d2e55983c3 100644
> >>>> --- a/drivers/tty/serial/pmac_zilog.c
> >>>> +++ b/drivers/tty/serial/pmac_zilog.c
> >>>> @@ -1867,6 +1867,12 @@ static struct platform_driver pmz_driver = {
> >>>> static int __init init_pmz(void)
> >>>> {
> >>>> int rc, i;
> >>>> +
> >>>> +#ifdef CONFIG_MAC
> >>>> + if (!MACH_IS_MAC)
> >>>> + return -ENODEV;
> >>>> +#endif
> >>>
> >>> Why is the #ifdef needed?
> >>>
> >>> We don't like putting #ifdef in .c files for good reasons. Can you make
> >>> the api check for this work with and without that #ifdef needed?
> >>
> >> The #ifdef is needed because this file can be compiled for PowerMac and
> >> m68k Mac. For PowerMac, the MACH_IS_MAC is not defined, so we need the
> >> #ifdef.
> >>
> >> We need the MAC_IS_MAC because the same kernel can be used with several
> >> m68k machines, so the init_pmz can be called on a m68k machine without
> >> the zilog device (it's a multi-targets kernel).
> >>
> >> You can check it's the good way to do by looking inside:
> >>
> >> drivers/video/fbdev/valkyriefb.c +317
> >> drivers/macintosh/adb.c +316
> >>
> >> That are two files used by both, mac and pmac.
> >
> > Why not fix it to work properly like other arch checks are done
> I would be happy to do the same.
>
> > Put it in a .h file and do the #ifdef there. Why is this "special"?
>
> I don't know.
>
> Do you mean something like:
>
> drivers/tty/serial/pmac_zilog.h
> ...
> #ifndef MACH_IS_MAC
> #define MACH_IS_MAC (0)
> #endif
> ...
>
> drivers/tty/serial/pmac_zilog.c
> ...
> static int __init pmz_console_init(void)
> {
> if (!MACH_IS_MAC)
> return -ENODEV;
> ...
Yup, that would be a good start, but why is the pmac_zilog.h file
responsible for this? Shouldn't this be in some arch-specific file
somewhere?
thanks,
greg k-h
WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <gregkh@linuxfoundation.org>
To: Laurent Vivier <laurent@vivier.eu>
Cc: linux-kernel@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
Geert Uytterhoeven <geert@linux-m68k.org>,
linux-serial@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
linuxppc-dev@lists.ozlabs.org, Joshua Thompson <funaho@jurai.org>
Subject: Re: [PATCH] serial: pmac_zilog: don't init if zilog is not available
Date: Tue, 20 Oct 2020 20:32:46 +0200 [thread overview]
Message-ID: <20201020183246.GA912431@kroah.com> (raw)
In-Reply-To: <387fd2aa-b181-c41f-0581-0a7e79a44e41@vivier.eu>
On Tue, Oct 20, 2020 at 08:19:26PM +0200, Laurent Vivier wrote:
> Le 20/10/2020 à 19:37, Greg KH a écrit :
> > On Tue, Oct 20, 2020 at 06:37:41PM +0200, Laurent Vivier wrote:
> >> Le 20/10/2020 à 18:28, Greg KH a écrit :
> >>> On Tue, Oct 20, 2020 at 06:23:03PM +0200, Laurent Vivier wrote:
> >>>> We can avoid to probe for the Zilog device (and generate ugly kernel warning)
> >>>> if kernel is built for Mac but not on a Mac.
> >>>>
> >>>> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> >>>> ---
> >>>> drivers/tty/serial/pmac_zilog.c | 11 +++++++++++
> >>>> 1 file changed, 11 insertions(+)
> >>>>
> >>>> diff --git a/drivers/tty/serial/pmac_zilog.c b/drivers/tty/serial/pmac_zilog.c
> >>>> index 063484b22523..d1d2e55983c3 100644
> >>>> --- a/drivers/tty/serial/pmac_zilog.c
> >>>> +++ b/drivers/tty/serial/pmac_zilog.c
> >>>> @@ -1867,6 +1867,12 @@ static struct platform_driver pmz_driver = {
> >>>> static int __init init_pmz(void)
> >>>> {
> >>>> int rc, i;
> >>>> +
> >>>> +#ifdef CONFIG_MAC
> >>>> + if (!MACH_IS_MAC)
> >>>> + return -ENODEV;
> >>>> +#endif
> >>>
> >>> Why is the #ifdef needed?
> >>>
> >>> We don't like putting #ifdef in .c files for good reasons. Can you make
> >>> the api check for this work with and without that #ifdef needed?
> >>
> >> The #ifdef is needed because this file can be compiled for PowerMac and
> >> m68k Mac. For PowerMac, the MACH_IS_MAC is not defined, so we need the
> >> #ifdef.
> >>
> >> We need the MAC_IS_MAC because the same kernel can be used with several
> >> m68k machines, so the init_pmz can be called on a m68k machine without
> >> the zilog device (it's a multi-targets kernel).
> >>
> >> You can check it's the good way to do by looking inside:
> >>
> >> drivers/video/fbdev/valkyriefb.c +317
> >> drivers/macintosh/adb.c +316
> >>
> >> That are two files used by both, mac and pmac.
> >
> > Why not fix it to work properly like other arch checks are done
> I would be happy to do the same.
>
> > Put it in a .h file and do the #ifdef there. Why is this "special"?
>
> I don't know.
>
> Do you mean something like:
>
> drivers/tty/serial/pmac_zilog.h
> ...
> #ifndef MACH_IS_MAC
> #define MACH_IS_MAC (0)
> #endif
> ...
>
> drivers/tty/serial/pmac_zilog.c
> ...
> static int __init pmz_console_init(void)
> {
> if (!MACH_IS_MAC)
> return -ENODEV;
> ...
Yup, that would be a good start, but why is the pmac_zilog.h file
responsible for this? Shouldn't this be in some arch-specific file
somewhere?
thanks,
greg k-h
next prev parent reply other threads:[~2020-10-20 18:32 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-20 16:23 [PATCH] serial: pmac_zilog: don't init if zilog is not available Laurent Vivier
2020-10-20 16:23 ` Laurent Vivier
2020-10-20 16:28 ` Greg KH
2020-10-20 16:28 ` Greg KH
2020-10-20 16:37 ` Laurent Vivier
2020-10-20 16:37 ` Laurent Vivier
2020-10-20 17:37 ` Greg KH
2020-10-20 17:37 ` Greg KH
2020-10-20 18:19 ` Laurent Vivier
2020-10-20 18:19 ` Laurent Vivier
2020-10-20 18:32 ` Greg KH [this message]
2020-10-20 18:32 ` Greg KH
2020-10-20 18:42 ` Laurent Vivier
2020-10-20 18:42 ` Laurent Vivier
2020-10-20 22:44 ` Brad Boyer
2020-10-20 22:44 ` Brad Boyer
2020-10-20 23:43 ` Finn Thain
2020-10-20 23:43 ` Finn Thain
2020-10-21 7:54 ` Laurent Vivier
2020-10-21 7:54 ` Laurent Vivier
2020-10-22 3:23 ` Finn Thain
2020-10-22 3:23 ` Finn Thain
2020-10-22 7:16 ` Laurent Vivier
2020-10-22 7:16 ` Laurent Vivier
2020-10-22 7:26 ` Geert Uytterhoeven
2020-10-22 7:26 ` Geert Uytterhoeven
2020-10-23 3:21 ` Finn Thain
2020-10-23 3:21 ` Finn Thain
2020-10-22 2:52 ` Michael Ellerman
2020-10-22 2:52 ` Michael Ellerman
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=20201020183246.GA912431@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=benh@kernel.crashing.org \
--cc=funaho@jurai.org \
--cc=geert@linux-m68k.org \
--cc=laurent@vivier.eu \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-m68k@lists.linux-m68k.org \
--cc=linux-serial@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.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.