Re: [PATCH v7 1/6] fieldbus_dev: add Fieldbus Device subsystem.

From: Paul Gortmaker
Date: Tue Jan 22 2019 - 11:59:13 EST


[[PATCH v7 1/6] fieldbus_dev: add Fieldbus Device subsystem.] On 22/01/2019 (Tue 10:21) Sven Van Asbroeck wrote:

> Fieldbus device (client) adapters allow data exchange with a PLC aka.
> "Fieldbus Controller" over a fieldbus (Profinet, FLNet, etc.)
>
> They are typically used when a Linux device wants to expose itself
> as an actuator, motor, console light, switch, etc. over the fieldbus.
>
> This framework is designed to provide a generic interface to Fieldbus
> Devices from both the Linux Kernel and the userspace.
>
> Signed-off-by: Sven Van Asbroeck <TheSven73@xxxxxxxxxxxxxx>

[...]

> diff --git a/drivers/fieldbus/Kconfig b/drivers/fieldbus/Kconfig
> new file mode 100644
> index 000000000000..5c2bef950d04
> --- /dev/null
> +++ b/drivers/fieldbus/Kconfig
> @@ -0,0 +1,19 @@
> +menuconfig FIELDBUS_DEV
> + bool "Fieldbus Device Support"

OK, so the core support is NOT tristate, ie not modular, so I think...

> diff --git a/drivers/fieldbus/dev_core.c b/drivers/fieldbus/dev_core.c
> new file mode 100644
> index 000000000000..c816df3201bb
> --- /dev/null
> +++ b/drivers/fieldbus/dev_core.c
> @@ -0,0 +1,348 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Fieldbus Device Driver Core
> + *
> + */
> +
> +#include <linux/fieldbus_dev.h>
> +#include <linux/mutex.h>
> +#include <linux/module.h>

...you don't need module.h here

> +#include <linux/device.h>
> +#include <linux/idr.h>
> +#include <linux/fs.h>
> +#include <linux/slab.h>
> +#include <linux/poll.h>
> +

[...]

> +
> +static void __exit fieldbus_exit(void)
> +{
> + unregister_chrdev_region(fieldbus_devt, MAX_FIELDBUSES);
> + class_unregister(&fieldbus_class);
> +}
> +
> +subsys_initcall(fieldbus_init);
> +module_exit(fieldbus_exit);

...and the module_exit is never called, so fieldbus_exit is dead code
and hence both should be removed.

> +
> +MODULE_AUTHOR("Sven Van Asbroeck <TheSven73@xxxxxxxxxxxxxx>");
> +MODULE_AUTHOR("Jonathan Stiles <jonathans@xxxxxxxx>");
> +MODULE_DESCRIPTION("Fieldbus Device Driver Core");
> +MODULE_LICENSE("GPL v2");

And these are all no-ops for non-modules, so it is recommended that you
instead capture the information at the top of the file in comments.

You can find many similar cleanups for reference with this search:

git log --no-merges --oneline --grep='make .* non-modular'

Thanks,
Paul.
--