Commit acc50ec7 authored by Paul Gortmaker's avatar Paul Gortmaker Committed by Martin Schwidefsky

s390: virtio: make ccw explicitly non-modular

The Kconfig currently controlling compilation of this code is:

arch/s390/Kconfig:config S390_GUEST
arch/s390/Kconfig:      def_bool y

...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.

Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit.

Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

We replace module.h with moduleparam.h since the file does declare
some module_param() and leaving that as-is is currently the easiest
way to remain compatible with existing boot arg use cases.

Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: linux-s390@vger.kernel.org
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 0729dcf2
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include <linux/wait.h> #include <linux/wait.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/bitops.h> #include <linux/bitops.h>
#include <linux/module.h> #include <linux/moduleparam.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/kvm_para.h> #include <linux/kvm_para.h>
#include <linux/notifier.h> #include <linux/notifier.h>
...@@ -235,16 +235,6 @@ static struct airq_info *new_airq_info(void) ...@@ -235,16 +235,6 @@ static struct airq_info *new_airq_info(void)
return info; return info;
} }
static void destroy_airq_info(struct airq_info *info)
{
if (!info)
return;
unregister_adapter_interrupt(&info->airq);
airq_iv_release(info->aiv);
kfree(info);
}
static unsigned long get_airq_indicator(struct virtqueue *vqs[], int nvqs, static unsigned long get_airq_indicator(struct virtqueue *vqs[], int nvqs,
u64 *first, void **airq_info) u64 *first, void **airq_info)
{ {
...@@ -1294,7 +1284,6 @@ static struct ccw_device_id virtio_ids[] = { ...@@ -1294,7 +1284,6 @@ static struct ccw_device_id virtio_ids[] = {
{ CCW_DEVICE(0x3832, 0) }, { CCW_DEVICE(0x3832, 0) },
{}, {},
}; };
MODULE_DEVICE_TABLE(ccw, virtio_ids);
static struct ccw_driver virtio_ccw_driver = { static struct ccw_driver virtio_ccw_driver = {
.driver = { .driver = {
...@@ -1406,14 +1395,4 @@ static int __init virtio_ccw_init(void) ...@@ -1406,14 +1395,4 @@ static int __init virtio_ccw_init(void)
no_auto_parse(); no_auto_parse();
return ccw_driver_register(&virtio_ccw_driver); return ccw_driver_register(&virtio_ccw_driver);
} }
module_init(virtio_ccw_init); device_initcall(virtio_ccw_init);
static void __exit virtio_ccw_exit(void)
{
int i;
ccw_driver_unregister(&virtio_ccw_driver);
for (i = 0; i < MAX_AIRQ_AREAS; i++)
destroy_airq_info(airq_areas[i]);
}
module_exit(virtio_ccw_exit);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment