8250: uniphier: allow modular build with 8250 console

Message ID 3965359.aMgb8o9MaG@wuerfel
State New
Headers show

Commit Message

Arnd Bergmann Jan. 13, 2016, 10:33 p.m.
The recently added uniphier 8250 port driver supports early console
probing, and it supports being built as a module, but the combination
of the two fails to link:

ERROR: "early_serial8250_setup" [drivers/tty/serial/8250/8250_uniphier.ko] undefined!

Given that earlycon support in a loadable module makes no sense,
making that code conditional on 'MODULE' is a correct solution.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Fixes: b8d20e06eaad ("serial: 8250_uniphier: add earlycon support")


--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Arnd Bergmann Jan. 21, 2016, 12:21 p.m. | #1
On Thursday 21 January 2016 20:39:03 Masahiro Yamada wrote:
> 2016-01-14 7:33 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:

> > The recently added uniphier 8250 port driver supports early console

> > probing, and it supports being built as a module, but the combination

> > of the two fails to link:

> >

> > ERROR: "early_serial8250_setup" [drivers/tty/serial/8250/8250_uniphier.ko] undefined!

> >

> > Given that earlycon support in a loadable module makes no sense,

> > making that code conditional on 'MODULE' is a correct solution.

> >

> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> > Fixes: b8d20e06eaad ("serial: 8250_uniphier: add earlycon support")

> >

> > diff --git a/drivers/tty/serial/8250/8250_uniphier.c b/drivers/tty/serial/8250/8250_uniphier.c

> > index bab6b3ae2540..1b7bd26555b7 100644

> > --- a/drivers/tty/serial/8250/8250_uniphier.c

> > +++ b/drivers/tty/serial/8250/8250_uniphier.c

> > @@ -35,7 +35,7 @@ struct uniphier8250_priv {

> >         spinlock_t atomic_write_lock;

> >  };

> >

> > -#ifdef CONFIG_SERIAL_8250_CONSOLE

> > +#if defined(CONFIG_SERIAL_8250_CONSOLE) && !defined(MODULE)

> >  static int __init uniphier_early_console_setup(struct earlycon_device *device,

> >                                                const char *options)

> >  {

> >

> >

> 

> 

> If my patch (https://patchwork.kernel.org/patch/8029331/) is accepted,

> this build error will be fixed as well.  But I doubt it is accepted soon...

> 

> So, I am OK with this workaround to fix "make allmodconfig".

> 

> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> 


Good point. Adding the DT maintainers to Cc. Guys, any chance of you
picking up Masahiro's patch for 4.5?

It can't hurt to have both patches merged, so it would still be good
to have mine in the serial driver fixes, but we can live with either
of the two to fix the build.

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring Jan. 21, 2016, 2:09 p.m. | #2
On Thu, Jan 21, 2016 at 6:21 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thursday 21 January 2016 20:39:03 Masahiro Yamada wrote:

>> 2016-01-14 7:33 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:

>> > The recently added uniphier 8250 port driver supports early console

>> > probing, and it supports being built as a module, but the combination

>> > of the two fails to link:

>> >

>> > ERROR: "early_serial8250_setup" [drivers/tty/serial/8250/8250_uniphier.ko] undefined!

>> >

>> > Given that earlycon support in a loadable module makes no sense,

>> > making that code conditional on 'MODULE' is a correct solution.

>> >

>> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>> > Fixes: b8d20e06eaad ("serial: 8250_uniphier: add earlycon support")

>> >

>> > diff --git a/drivers/tty/serial/8250/8250_uniphier.c b/drivers/tty/serial/8250/8250_uniphier.c

>> > index bab6b3ae2540..1b7bd26555b7 100644

>> > --- a/drivers/tty/serial/8250/8250_uniphier.c

>> > +++ b/drivers/tty/serial/8250/8250_uniphier.c

>> > @@ -35,7 +35,7 @@ struct uniphier8250_priv {

>> >         spinlock_t atomic_write_lock;

>> >  };

>> >

>> > -#ifdef CONFIG_SERIAL_8250_CONSOLE

>> > +#if defined(CONFIG_SERIAL_8250_CONSOLE) && !defined(MODULE)

>> >  static int __init uniphier_early_console_setup(struct earlycon_device *device,

>> >                                                const char *options)

>> >  {

>> >

>> >

>>

>>

>> If my patch (https://patchwork.kernel.org/patch/8029331/) is accepted,

>> this build error will be fixed as well.  But I doubt it is accepted soon...

>>

>> So, I am OK with this workaround to fix "make allmodconfig".

>>

>> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>

>>

>

> Good point. Adding the DT maintainers to Cc. Guys, any chance of you

> picking up Masahiro's patch for 4.5?


I will if you can update the commit log with the details here about it
fixing an actual problem.

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Masahiro Yamada Jan. 21, 2016, 4:50 p.m. | #3
Hi Rob.


2016-01-21 23:09 GMT+09:00 Rob Herring <robh+dt@kernel.org>:
> On Thu, Jan 21, 2016 at 6:21 AM, Arnd Bergmann <arnd@arndb.de> wrote:

>> On Thursday 21 January 2016 20:39:03 Masahiro Yamada wrote:

>>> 2016-01-14 7:33 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:

>>> > The recently added uniphier 8250 port driver supports early console

>>> > probing, and it supports being built as a module, but the combination

>>> > of the two fails to link:

>>> >

>>> > ERROR: "early_serial8250_setup" [drivers/tty/serial/8250/8250_uniphier.ko] undefined!

>>> >

>>> > Given that earlycon support in a loadable module makes no sense,

>>> > making that code conditional on 'MODULE' is a correct solution.

>>> >

>>> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

>>> > Fixes: b8d20e06eaad ("serial: 8250_uniphier: add earlycon support")

>>> >

>>> > diff --git a/drivers/tty/serial/8250/8250_uniphier.c b/drivers/tty/serial/8250/8250_uniphier.c

>>> > index bab6b3ae2540..1b7bd26555b7 100644

>>> > --- a/drivers/tty/serial/8250/8250_uniphier.c

>>> > +++ b/drivers/tty/serial/8250/8250_uniphier.c

>>> > @@ -35,7 +35,7 @@ struct uniphier8250_priv {

>>> >         spinlock_t atomic_write_lock;

>>> >  };

>>> >

>>> > -#ifdef CONFIG_SERIAL_8250_CONSOLE

>>> > +#if defined(CONFIG_SERIAL_8250_CONSOLE) && !defined(MODULE)

>>> >  static int __init uniphier_early_console_setup(struct earlycon_device *device,

>>> >                                                const char *options)

>>> >  {

>>> >

>>> >

>>>

>>>

>>> If my patch (https://patchwork.kernel.org/patch/8029331/) is accepted,

>>> this build error will be fixed as well.  But I doubt it is accepted soon...

>>>

>>> So, I am OK with this workaround to fix "make allmodconfig".

>>>

>>> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com>

>>>

>>

>> Good point. Adding the DT maintainers to Cc. Guys, any chance of you

>> picking up Masahiro's patch for 4.5?

>

> I will if you can update the commit log with the details here about it

> fixing an actual problem.


I did so in v2.

Thanks!




-- 
Best Regards
Masahiro Yamada
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch hide | download patch | download mbox

diff --git a/drivers/tty/serial/8250/8250_uniphier.c b/drivers/tty/serial/8250/8250_uniphier.c
index bab6b3ae2540..1b7bd26555b7 100644
--- a/drivers/tty/serial/8250/8250_uniphier.c
+++ b/drivers/tty/serial/8250/8250_uniphier.c
@@ -35,7 +35,7 @@  struct uniphier8250_priv {
 	spinlock_t atomic_write_lock;
 };
 
-#ifdef CONFIG_SERIAL_8250_CONSOLE
+#if defined(CONFIG_SERIAL_8250_CONSOLE) && !defined(MODULE)
 static int __init uniphier_early_console_setup(struct earlycon_device *device,
 					       const char *options)
 {