* [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular
@ 2015-10-18 22:21 Paul Gortmaker
2015-10-18 22:21 ` [PATCH 3/5] drivers/tty/serial: make serial/atmel_serial.c " Paul Gortmaker
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Paul Gortmaker @ 2015-10-18 22:21 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: linux-soc-u79uwXL29TY76Z2rM5mHXA, Michael Ellerman,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Andy Gross, Nicolas Ferre,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, Paul Gortmaker, Kumar Gala,
linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Anton Blanchard,
linux-serial-u79uwXL29TY76Z2rM5mHXA, Jiri Slaby, Matthias Brugger,
David Brown, linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
This next set of patches to drivers/tty fixes up more drivers that would
perhaps appear modular when looking at the code, but are controlled by
a bool Kconfig. We make sure they don't look modular and get rid
of module related code in the drivers that would never be used.
The one common thread here for all the patches is that we also
scrap the .remove functions which would only be used for module
unload (impossible) and driver unbind. For the drivers here, there
doesn't seem to be a sensible unbind use case (vs. e.g. a multiport
PCI ethernet driver where one port is unbound and passed through to
a kvm guest or similar). Hence we just explicitly disallow any
driver unbind operations to help prevent root from doing something
illogical to the machine that they could have done previously.
We've already done this for drivers/tty/serial/mpsc.c previously.
Build tested for allmodconfig on ARM64 and powerpc for tty/tty-testing.
Paul.
---
Cc: Andy Gross <agross-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Cc: Anton Blanchard <anton-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
Cc: David Brown <davidb-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Cc: Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
Cc: Jiri Slaby <jslaby-IBi9RG/b67k@public.gmane.org>
Cc: Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Cc: Matthias Brugger <matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Michael Ellerman <mpe-Gsx/Oe8HsFggBc27wqDAHg@public.gmane.org>
Cc: Nicolas Ferre <nicolas.ferre-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Paul Gortmaker (5):
drivers/tty: make hvc/hvc_vio.c explicitly non-modular
drivers/tty: make ehv_bytechan.c explicitly non-modular
drivers/tty/serial: make serial/atmel_serial.c explicitly non-modular
drivers/tty/serial: make msm_serial.c explicitly non-modular
drivers/tty/serial: make 8250/8250_mtk.c explicitly non-modular
drivers/tty/ehv_bytechan.c | 40 +++------------------------------
drivers/tty/hvc/hvc_vio.c | 29 ++++--------------------
drivers/tty/serial/8250/8250_mtk.c | 35 ++++++-----------------------
drivers/tty/serial/atmel_serial.c | 45 ++++----------------------------------
drivers/tty/serial/msm_serial.c | 30 ++++---------------------
5 files changed, 22 insertions(+), 157 deletions(-)
--
2.6.1
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH 3/5] drivers/tty/serial: make serial/atmel_serial.c explicitly non-modular
2015-10-18 22:21 [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular Paul Gortmaker
@ 2015-10-18 22:21 ` Paul Gortmaker
2015-10-18 22:21 ` [PATCH 4/5] drivers/tty/serial: make msm_serial.c " Paul Gortmaker
` (2 subsequent siblings)
3 siblings, 0 replies; 11+ messages in thread
From: Paul Gortmaker @ 2015-10-18 22:21 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: linux-kernel, Paul Gortmaker, Nicolas Ferre, Jiri Slaby,
linux-serial
The Kconfig currently controlling compilation of this code is:
drivers/tty/serial/Kconfig:config SERIAL_ATMEL
drivers/tty/serial/Kconfig: bool "AT91 / AT32 on-chip serial port support"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, and it allows us to drop the ".remove"
code for non-modular drivers.
Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit.
We don't replace module.h with init.h since the file already has that.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: linux-serial@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/tty/serial/atmel_serial.c | 45 ++++-----------------------------------
1 file changed, 4 insertions(+), 41 deletions(-)
diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
index 94294558943c..d19a1e931529 100644
--- a/drivers/tty/serial/atmel_serial.c
+++ b/drivers/tty/serial/atmel_serial.c
@@ -22,7 +22,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-#include <linux/module.h>
#include <linux/tty.h>
#include <linux/ioport.h>
#include <linux/slab.h>
@@ -2866,37 +2865,14 @@ err:
return ret;
}
-static int atmel_serial_remove(struct platform_device *pdev)
-{
- struct uart_port *port = platform_get_drvdata(pdev);
- struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
- int ret = 0;
-
- tasklet_kill(&atmel_port->tasklet);
-
- device_init_wakeup(&pdev->dev, 0);
-
- ret = uart_remove_one_port(&atmel_uart, port);
-
- kfree(atmel_port->rx_ring.buf);
-
- /* "port" is allocated statically, so we shouldn't free it */
-
- clear_bit(port->line, atmel_ports_in_use);
-
- clk_put(atmel_port->clk);
-
- return ret;
-}
-
static struct platform_driver atmel_serial_driver = {
.probe = atmel_serial_probe,
- .remove = atmel_serial_remove,
.suspend = atmel_serial_suspend,
.resume = atmel_serial_resume,
.driver = {
- .name = "atmel_usart",
- .of_match_table = of_match_ptr(atmel_serial_dt_ids),
+ .name = "atmel_usart",
+ .of_match_table = of_match_ptr(atmel_serial_dt_ids),
+ .suppress_bind_attrs = true,
},
};
@@ -2914,17 +2890,4 @@ static int __init atmel_serial_init(void)
return ret;
}
-
-static void __exit atmel_serial_exit(void)
-{
- platform_driver_unregister(&atmel_serial_driver);
- uart_unregister_driver(&atmel_uart);
-}
-
-module_init(atmel_serial_init);
-module_exit(atmel_serial_exit);
-
-MODULE_AUTHOR("Rick Bronson");
-MODULE_DESCRIPTION("Atmel AT91 / AT32 serial port driver");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:atmel_usart");
+device_initcall(atmel_serial_init);
--
2.6.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* [PATCH 4/5] drivers/tty/serial: make msm_serial.c explicitly non-modular
2015-10-18 22:21 [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular Paul Gortmaker
2015-10-18 22:21 ` [PATCH 3/5] drivers/tty/serial: make serial/atmel_serial.c " Paul Gortmaker
@ 2015-10-18 22:21 ` Paul Gortmaker
2015-10-19 19:44 ` Stephen Boyd
[not found] ` <1445206878-12455-1-git-send-email-paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2015-10-20 15:10 ` Alexandre Belloni
3 siblings, 1 reply; 11+ messages in thread
From: Paul Gortmaker @ 2015-10-18 22:21 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: linux-kernel, Paul Gortmaker, Kumar Gala, Andy Gross, David Brown,
Jiri Slaby, linux-arm-msm, linux-soc, linux-serial
The Kconfig currently controlling compilation of this code is:
drivers/tty/serial/Kconfig:config SERIAL_MSM
drivers/tty/serial/Kconfig: bool "MSM on-chip serial port support"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, and it allows us to drop the ".remove"
code for non-modular drivers.
Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit.
We don't replace module.h with init.h since the file already has that.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Cc: Kumar Gala <galak@codeaurora.org>
Cc: Andy Gross <agross@codeaurora.org>
Cc: David Brown <davidb@codeaurora.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-soc@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
drivers/tty/serial/msm_serial.c | 30 ++++--------------------------
1 file changed, 4 insertions(+), 26 deletions(-)
diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
index dcde955475dc..15afa8070b7d 100644
--- a/drivers/tty/serial/msm_serial.c
+++ b/drivers/tty/serial/msm_serial.c
@@ -23,7 +23,6 @@
#include <linux/dma-mapping.h>
#include <linux/dmaengine.h>
#include <linux/hrtimer.h>
-#include <linux/module.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/irq.h>
@@ -1601,15 +1600,6 @@ static int msm_serial_probe(struct platform_device *pdev)
return uart_add_one_port(&msm_uart_driver, port);
}
-static int msm_serial_remove(struct platform_device *pdev)
-{
- struct uart_port *port = platform_get_drvdata(pdev);
-
- uart_remove_one_port(&msm_uart_driver, port);
-
- return 0;
-}
-
static const struct of_device_id msm_match_table[] = {
{ .compatible = "qcom,msm-uart" },
{ .compatible = "qcom,msm-uartdm" },
@@ -1617,11 +1607,11 @@ static const struct of_device_id msm_match_table[] = {
};
static struct platform_driver msm_platform_driver = {
- .remove = msm_serial_remove,
.probe = msm_serial_probe,
.driver = {
- .name = "msm_serial",
- .of_match_table = msm_match_table,
+ .name = "msm_serial",
+ .of_match_table = msm_match_table,
+ .suppress_bind_attrs = true,
},
};
@@ -1641,16 +1631,4 @@ static int __init msm_serial_init(void)
return ret;
}
-
-static void __exit msm_serial_exit(void)
-{
- platform_driver_unregister(&msm_platform_driver);
- uart_unregister_driver(&msm_uart_driver);
-}
-
-module_init(msm_serial_init);
-module_exit(msm_serial_exit);
-
-MODULE_AUTHOR("Robert Love <rlove@google.com>");
-MODULE_DESCRIPTION("Driver for msm7x serial device");
-MODULE_LICENSE("GPL");
+device_initcall(msm_serial_init);
--
2.6.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH 4/5] drivers/tty/serial: make msm_serial.c explicitly non-modular
2015-10-18 22:21 ` [PATCH 4/5] drivers/tty/serial: make msm_serial.c " Paul Gortmaker
@ 2015-10-19 19:44 ` Stephen Boyd
2015-10-19 20:19 ` Paul Gortmaker
0 siblings, 1 reply; 11+ messages in thread
From: Stephen Boyd @ 2015-10-19 19:44 UTC (permalink / raw)
To: Paul Gortmaker, Greg Kroah-Hartman
Cc: linux-kernel, Kumar Gala, Andy Gross, David Brown, Jiri Slaby,
linux-arm-msm, linux-soc, linux-serial
On 10/18/2015 03:21 PM, Paul Gortmaker wrote:
> The Kconfig currently controlling compilation of this code is:
>
> drivers/tty/serial/Kconfig:config SERIAL_MSM
> drivers/tty/serial/Kconfig: bool "MSM on-chip serial port support"
>
> ...meaning that it currently is not being built as a module by anyone.
>
> Lets remove the modular code that is essentially orphaned, so that
> when reading the driver there is no doubt it is builtin-only.
>
> We explicitly disallow a driver unbind, since that doesn't have a
> sensible use case anyway, and it allows us to drop the ".remove"
> code for non-modular drivers.
>
> Since module_init translates to device_initcall in the non-modular
> case, the init ordering remains unchanged with this commit.
>
> We don't replace module.h with init.h since the file already has that.
>
> We also delete the MODULE_LICENSE tag etc. since all that information
> is already contained at the top of the file in the comments.
>
> Cc: Kumar Gala <galak@codeaurora.org>
> Cc: Andy Gross <agross@codeaurora.org>
> Cc: David Brown <davidb@codeaurora.org>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Cc: Jiri Slaby <jslaby@suse.com>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: linux-soc@vger.kernel.org
> Cc: linux-serial@vger.kernel.org
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
I'd prefer we make the Kconfig a tristate. I'll test out that
configuration today, but I don't see why it wouldn't work.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 4/5] drivers/tty/serial: make msm_serial.c explicitly non-modular
2015-10-19 19:44 ` Stephen Boyd
@ 2015-10-19 20:19 ` Paul Gortmaker
0 siblings, 0 replies; 11+ messages in thread
From: Paul Gortmaker @ 2015-10-19 20:19 UTC (permalink / raw)
To: Stephen Boyd
Cc: Greg Kroah-Hartman, linux-kernel, Kumar Gala, Andy Gross,
David Brown, Jiri Slaby, linux-arm-msm, linux-soc, linux-serial
[Re: [PATCH 4/5] drivers/tty/serial: make msm_serial.c explicitly non-modular] On 19/10/2015 (Mon 12:44) Stephen Boyd wrote:
> On 10/18/2015 03:21 PM, Paul Gortmaker wrote:
> > The Kconfig currently controlling compilation of this code is:
> >
> > drivers/tty/serial/Kconfig:config SERIAL_MSM
> > drivers/tty/serial/Kconfig: bool "MSM on-chip serial port support"
> >
> > ...meaning that it currently is not being built as a module by anyone.
> >
> > Lets remove the modular code that is essentially orphaned, so that
> > when reading the driver there is no doubt it is builtin-only.
> >
> > We explicitly disallow a driver unbind, since that doesn't have a
> > sensible use case anyway, and it allows us to drop the ".remove"
> > code for non-modular drivers.
> >
> > Since module_init translates to device_initcall in the non-modular
> > case, the init ordering remains unchanged with this commit.
> >
> > We don't replace module.h with init.h since the file already has that.
> >
> > We also delete the MODULE_LICENSE tag etc. since all that information
> > is already contained at the top of the file in the comments.
> >
> > Cc: Kumar Gala <galak@codeaurora.org>
> > Cc: Andy Gross <agross@codeaurora.org>
> > Cc: David Brown <davidb@codeaurora.org>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > Cc: Jiri Slaby <jslaby@suse.com>
> > Cc: linux-arm-msm@vger.kernel.org
> > Cc: linux-soc@vger.kernel.org
> > Cc: linux-serial@vger.kernel.org
> > Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> > ---
>
> I'd prefer we make the Kconfig a tristate. I'll test out that
> configuration today, but I don't see why it wouldn't work.
Sure, if you want to do that then great; as I've said in other threads,
it simply doesn't scale for me to be expanding functionality in these
kinds of commits, since there are 300+ of them and I can't do much more
than just make the code consistent with the Makefile/Kconfig behaviour
and still get through them all.
When I see a tristate patch for it appear in -next I will drop this.
Or if Greg wants to merge the series w/o this one patch, that is fine
too -- basically whatever works for Greg, since he's got the larger
burden here, maintaining all these different things that he does.
Thanks,
Paul.
--
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project
>
^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <1445206878-12455-1-git-send-email-paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>]
* [PATCH 5/5] drivers/tty/serial: make 8250/8250_mtk.c explicitly non-modular
[not found] ` <1445206878-12455-1-git-send-email-paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
@ 2015-10-18 22:21 ` Paul Gortmaker
2015-12-15 22:29 ` [PATCH 0/5] drivers/tty: make more bool drivers " Paul Gortmaker
1 sibling, 0 replies; 11+ messages in thread
From: Paul Gortmaker @ 2015-10-18 22:21 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, Paul Gortmaker,
linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-serial-u79uwXL29TY76Z2rM5mHXA, Jiri Slaby, Matthias Brugger,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
The Kconfig currently controlling compilation of this code is:
drivers/tty/serial/8250/Kconfig:config SERIAL_8250_MT6577
drivers/tty/serial/8250/Kconfig: bool "Mediatek serial port support"
...meaning that it currently is not being built as a module by anyone.
Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.
We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, and it allows us to drop the ".remove"
code for non-modular drivers.
Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.
We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.
Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.
Cc: Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
Cc: Jiri Slaby <jslaby-IBi9RG/b67k@public.gmane.org>
Cc: Matthias Brugger <matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Signed-off-by: Paul Gortmaker <paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
---
drivers/tty/serial/8250/8250_mtk.c | 35 +++++++----------------------------
1 file changed, 7 insertions(+), 28 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c
index 78883ca64ddd..0e590b233f03 100644
--- a/drivers/tty/serial/8250/8250_mtk.c
+++ b/drivers/tty/serial/8250/8250_mtk.c
@@ -16,7 +16,7 @@
*/
#include <linux/clk.h>
#include <linux/io.h>
-#include <linux/module.h>
+#include <linux/init.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
@@ -245,23 +245,6 @@ static int mtk8250_probe(struct platform_device *pdev)
return 0;
}
-static int mtk8250_remove(struct platform_device *pdev)
-{
- struct mtk8250_data *data = platform_get_drvdata(pdev);
-
- pm_runtime_get_sync(&pdev->dev);
-
- serial8250_unregister_port(data->line);
-
- pm_runtime_disable(&pdev->dev);
- pm_runtime_put_noidle(&pdev->dev);
-
- if (!pm_runtime_status_suspended(&pdev->dev))
- mtk8250_runtime_suspend(&pdev->dev);
-
- return 0;
-}
-
#ifdef CONFIG_PM_SLEEP
static int mtk8250_suspend(struct device *dev)
{
@@ -292,18 +275,18 @@ static const struct of_device_id mtk8250_of_match[] = {
{ .compatible = "mediatek,mt6577-uart" },
{ /* Sentinel */ }
};
-MODULE_DEVICE_TABLE(of, mtk8250_of_match);
static struct platform_driver mtk8250_platform_driver = {
.driver = {
- .name = "mt6577-uart",
- .pm = &mtk8250_pm_ops,
- .of_match_table = mtk8250_of_match,
+ .name = "mt6577-uart",
+ .pm = &mtk8250_pm_ops,
+ .of_match_table = mtk8250_of_match,
+ .suppress_bind_attrs = true,
+
},
.probe = mtk8250_probe,
- .remove = mtk8250_remove,
};
-module_platform_driver(mtk8250_platform_driver);
+builtin_platform_driver(mtk8250_platform_driver);
#ifdef CONFIG_SERIAL_8250_CONSOLE
static int __init early_mtk8250_setup(struct earlycon_device *device,
@@ -319,7 +302,3 @@ static int __init early_mtk8250_setup(struct earlycon_device *device,
OF_EARLYCON_DECLARE(mtk8250, "mediatek,mt6577-uart", early_mtk8250_setup);
#endif
-
-MODULE_AUTHOR("Matthias Brugger");
-MODULE_LICENSE("GPL");
-MODULE_DESCRIPTION("Mediatek 8250 serial port driver");
--
2.6.1
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular
[not found] ` <1445206878-12455-1-git-send-email-paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2015-10-18 22:21 ` [PATCH 5/5] drivers/tty/serial: make 8250/8250_mtk.c " Paul Gortmaker
@ 2015-12-15 22:29 ` Paul Gortmaker
1 sibling, 0 replies; 11+ messages in thread
From: Paul Gortmaker @ 2015-12-15 22:29 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: linux-soc-u79uwXL29TY76Z2rM5mHXA, Michael Ellerman,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Jiri Slaby, Nicolas Ferre,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Anton Blanchard,
linux-serial-u79uwXL29TY76Z2rM5mHXA, Kumar Gala, Matthias Brugger,
David Brown, linuxppc-dev-uLR06cmDAlY/bJ5BZ2RsiQ,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Andy Gross
[[PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular] On 18/10/2015 (Sun 18:21) Paul Gortmaker wrote:
> This next set of patches to drivers/tty fixes up more drivers that would
> perhaps appear modular when looking at the code, but are controlled by
> a bool Kconfig. We make sure they don't look modular and get rid
> of module related code in the drivers that would never be used.
[...]
> Paul Gortmaker (5):
> drivers/tty: make hvc/hvc_vio.c explicitly non-modular
> drivers/tty: make ehv_bytechan.c explicitly non-modular
> drivers/tty/serial: make serial/atmel_serial.c explicitly non-modular
> drivers/tty/serial: make msm_serial.c explicitly non-modular
> drivers/tty/serial: make 8250/8250_mtk.c explicitly non-modular
Hi Greg,
You've merged the #3 atmel patch and #5 the 8250_mtk patch; the msm_serial
patch (#4) is no longer applicable since the authors changed it to tristate.
That leaves the top two patches; both for PPC hardware. Did you skip
those because you wanted them pushed through the powerpc tree?
If so, that is fine, I can do that. Just let me know.
Thanks,
Paul.
--
>
> drivers/tty/ehv_bytechan.c | 40 +++------------------------------
> drivers/tty/hvc/hvc_vio.c | 29 ++++--------------------
> drivers/tty/serial/8250/8250_mtk.c | 35 ++++++-----------------------
> drivers/tty/serial/atmel_serial.c | 45 ++++----------------------------------
> drivers/tty/serial/msm_serial.c | 30 ++++---------------------
> 5 files changed, 22 insertions(+), 157 deletions(-)
>
> --
> 2.6.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular
2015-10-18 22:21 [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular Paul Gortmaker
` (2 preceding siblings ...)
[not found] ` <1445206878-12455-1-git-send-email-paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
@ 2015-10-20 15:10 ` Alexandre Belloni
[not found] ` <20151020151052.GI3421-m++hUPXGwpdeoWH0uzbU5w@public.gmane.org>
3 siblings, 1 reply; 11+ messages in thread
From: Alexandre Belloni @ 2015-10-20 15:10 UTC (permalink / raw)
To: Paul Gortmaker
Cc: Greg Kroah-Hartman, linux-soc, Michael Ellerman, linux-arm-msm,
Andy Gross, Nicolas Ferre, linux-kernel, Kumar Gala,
linux-mediatek, Anton Blanchard, linux-serial, Jiri Slaby,
Matthias Brugger, David Brown, linuxppc-dev, linux-arm-kernel
On 18/10/2015 at 18:21:13 -0400, Paul Gortmaker wrote :
> The one common thread here for all the patches is that we also
> scrap the .remove functions which would only be used for module
> unload (impossible) and driver unbind. For the drivers here, there
> doesn't seem to be a sensible unbind use case (vs. e.g. a multiport
> PCI ethernet driver where one port is unbound and passed through to
> a kvm guest or similar). Hence we just explicitly disallow any
> driver unbind operations to help prevent root from doing something
> illogical to the machine that they could have done previously.
>
> We've already done this for drivers/tty/serial/mpsc.c previously.
>
> Build tested for allmodconfig on ARM64 and powerpc for tty/tty-testing.
>
So, how does this actually build test atmel_serial?
A proper solution would be to actually make it a tristate and allow
building as a module. I think it currently fails because of
console_initcall() but that is certainly fixable.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular
@ 2015-08-09 0:51 Paul Gortmaker
0 siblings, 0 replies; 11+ messages in thread
From: Paul Gortmaker @ 2015-08-09 0:51 UTC (permalink / raw)
To: linux-kernel
Cc: Greg Kroah-Hartman, Joachim Eastwood, Paul Gortmaker,
linux-serial, Jiri Slaby, linuxppc-dev, linux-arm-kernel
This second set of patches to drivers/tty steps outside of the serial
dir, and an improved auditing finds two more serial drivers pretending
to be modular that really are not.
The reasoning for doing this is the same as the first set[1] of patches
and is largely copied below:
In the previous merge window, we made changes to allow better
delineation between modular and non-modular code in commit
0fd972a7d91d6e15393c449492a04d94c0b89351 ("module: relocate module_init
from init.h to module.h"). This allows us to now ensure module code
looks modular and non-modular code does not accidentally look modular
without suffering build breakage.
Here we target code that is, by nature of their Kconfig settings, only
available to be built-in, but implicitly presenting itself as being
possibly modular by way of using modular headers, macros, and functions.
The goal here is to remove that illusion of modularity from these
drivers, but in a way that leaves the actual runtime unchanged.
In doing so, we remove code that has never been tested and adds
no value to the tree. And we begin the process of expecting a
level of consistency between the Kconfig of a driver and the code
that the driver uses.
Build tested for allyesconfig on x86_64, and ARM for lpc81xx, and powerpc
for hvc_console and mpsc, layered onto tty/tty-next as a baseline.
Paul.
[1] https://lkml.kernel.org/r/1437530538-5078-1-git-send-email-paul.gortmaker@windriver.com
--
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jslaby@suse.com>
Cc: Joachim Eastwood <manabian@gmail.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-serial@vger.kernel.org
Paul Gortmaker (5):
drivers/tty: make pty.c slightly more explicitly non-modular
drivers/tty: make sysrq.c slightly more explicitly non-modular
drivers/tty: make hvc_console.c explicitly non-modular
drivers/tty: make serial/mpsc.c driver explicitly non-modular
drivers/tty: make serial 8250_lpc18xx.c explicitly non-modular
drivers/tty/hvc/hvc_console.c | 18 +----------------
drivers/tty/pty.c | 7 +++++--
drivers/tty/serial/8250/8250_lpc18xx.c | 19 ++++--------------
drivers/tty/serial/mpsc.c | 36 +++-------------------------------
drivers/tty/sysrq.c | 6 +++++-
5 files changed, 18 insertions(+), 68 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-12-15 22:29 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-18 22:21 [PATCH 0/5] drivers/tty: make more bool drivers explicitly non-modular Paul Gortmaker
2015-10-18 22:21 ` [PATCH 3/5] drivers/tty/serial: make serial/atmel_serial.c " Paul Gortmaker
2015-10-18 22:21 ` [PATCH 4/5] drivers/tty/serial: make msm_serial.c " Paul Gortmaker
2015-10-19 19:44 ` Stephen Boyd
2015-10-19 20:19 ` Paul Gortmaker
[not found] ` <1445206878-12455-1-git-send-email-paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org>
2015-10-18 22:21 ` [PATCH 5/5] drivers/tty/serial: make 8250/8250_mtk.c " Paul Gortmaker
2015-12-15 22:29 ` [PATCH 0/5] drivers/tty: make more bool drivers " Paul Gortmaker
2015-10-20 15:10 ` Alexandre Belloni
[not found] ` <20151020151052.GI3421-m++hUPXGwpdeoWH0uzbU5w@public.gmane.org>
2015-10-21 0:20 ` Paul Gortmaker
2015-10-21 8:38 ` Alexandre Belloni
-- strict thread matches above, loose matches on Subject: below --
2015-08-09 0:51 Paul Gortmaker
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).