From: Jan Kiszka <[email protected]>

Properly fail if the core is not available. This allows to remove checks
from the exit paths.

Signed-off-by: Jan Kiszka <[email protected]>
---
 kernel/drivers/can/mscan/rtcan_mscan_mpc5xxx.c |  3 +++
 kernel/drivers/can/rtcan_module.c              |  7 ++-----
 kernel/drivers/can/rtcan_virt.c                |  7 ++-----
 kernel/drivers/can/sja1000/rtcan_adv_pci.c     |  9 ++++-----
 kernel/drivers/can/sja1000/rtcan_ems_pci.c     |  9 ++++-----
 kernel/drivers/can/sja1000/rtcan_esd_pci.c     |  9 ++++-----
 kernel/drivers/can/sja1000/rtcan_isa.c         |  7 ++-----
 kernel/drivers/can/sja1000/rtcan_ixxat_pci.c   |  9 ++++-----
 kernel/drivers/can/sja1000/rtcan_mem.c         |  7 ++-----
 kernel/drivers/can/sja1000/rtcan_peak_dng.c    |  7 ++-----
 kernel/drivers/can/sja1000/rtcan_peak_pci.c    |  9 ++++-----
 kernel/drivers/can/sja1000/rtcan_plx_pci.c     |  9 ++++-----
 kernel/drivers/can/sja1000/rtcan_sja1000.c     | 10 +++++-----
 13 files changed, 42 insertions(+), 60 deletions(-)

diff --git a/kernel/drivers/can/mscan/rtcan_mscan_mpc5xxx.c 
b/kernel/drivers/can/mscan/rtcan_mscan_mpc5xxx.c
index e43e1cf7e4..de08d94542 100644
--- a/kernel/drivers/can/mscan/rtcan_mscan_mpc5xxx.c
+++ b/kernel/drivers/can/mscan/rtcan_mscan_mpc5xxx.c
@@ -374,6 +374,9 @@ static struct of_platform_driver mpc5xxx_can_driver = {
 
 static int __init mpc5xxx_can_init(void)
 {
+       if (!rtdm_available())
+               return -ENOSYS;
+
        return of_register_platform_driver(&mpc5xxx_can_driver);
 }
 module_init(mpc5xxx_can_init);
diff --git a/kernel/drivers/can/rtcan_module.c 
b/kernel/drivers/can/rtcan_module.c
index eca8acb8cf..fbc5c35e44 100644
--- a/kernel/drivers/can/rtcan_module.c
+++ b/kernel/drivers/can/rtcan_module.c
@@ -415,8 +415,8 @@ int __init rtcan_init(void)
 {
     int err = 0;
 
-    if (!realtime_core_enabled())
-           return 0;
+    if (!rtdm_available())
+       return -ENOSYS;
 
     printk("RT-Socket-CAN %d.%d.%d - %s\n",
           RTCAN_MAJOR_VER, RTCAN_MINOR_VER, RTCAN_BUGFIX_VER,
@@ -437,9 +437,6 @@ int __init rtcan_init(void)
 
 void __exit rtcan_exit(void)
 {
-    if (!realtime_core_enabled())
-           return;
-
     rtcan_raw_proto_unregister();
 #ifdef CONFIG_PROC_FS
     rtcan_proc_unregister();
diff --git a/kernel/drivers/can/rtcan_virt.c b/kernel/drivers/can/rtcan_virt.c
index 698c31a24e..c86c17fc38 100644
--- a/kernel/drivers/can/rtcan_virt.c
+++ b/kernel/drivers/can/rtcan_virt.c
@@ -157,8 +157,8 @@ static int __init rtcan_virt_init(void)
 {
        int i, err = 0;
 
-       if (!realtime_core_enabled())
-               return 0;
+       if (!rtdm_available())
+               return -ENOSYS;
 
        for (i = 0; i < devices; i++) {
                err = rtcan_virt_init_one(i);
@@ -183,9 +183,6 @@ static void __exit rtcan_virt_exit(void)
        int i;
        struct rtcan_device *dev;
 
-       if (!realtime_core_enabled())
-           return;
-
        for (i = 0; i < devices; i++) {
                dev = rtcan_virt_devs[i];
 
diff --git a/kernel/drivers/can/sja1000/rtcan_adv_pci.c 
b/kernel/drivers/can/sja1000/rtcan_adv_pci.c
index 32cf71ee1f..d33e79b3e7 100644
--- a/kernel/drivers/can/sja1000/rtcan_adv_pci.c
+++ b/kernel/drivers/can/sja1000/rtcan_adv_pci.c
@@ -249,6 +249,9 @@ static int adv_pci_init_one(struct pci_dev *pdev,
 
        struct rtcan_device *master_dev = NULL;
 
+       if (!rtdm_available())
+               return -ENODEV;
+
        dev_info(&pdev->dev, "RTCAN Registering card");
 
        ret = pci_enable_device(pdev);
@@ -357,16 +360,12 @@ static struct pci_driver rtcan_adv_pci_driver = {
 
 static int __init rtcan_adv_pci_init(void)
 {
-       if (!realtime_core_enabled())
-               return 0;
-
        return pci_register_driver(&rtcan_adv_pci_driver);
 }
 
 static void __exit rtcan_adv_pci_exit(void)
 {
-       if (realtime_core_enabled())
-               pci_unregister_driver(&rtcan_adv_pci_driver);
+       pci_unregister_driver(&rtcan_adv_pci_driver);
 }
 
 module_init(rtcan_adv_pci_init);
diff --git a/kernel/drivers/can/sja1000/rtcan_ems_pci.c 
b/kernel/drivers/can/sja1000/rtcan_ems_pci.c
index e3c178f7bb..57e0f36762 100644
--- a/kernel/drivers/can/sja1000/rtcan_ems_pci.c
+++ b/kernel/drivers/can/sja1000/rtcan_ems_pci.c
@@ -238,6 +238,9 @@ static int ems_pci_add_card(struct pci_dev *pdev,
        int max_chan, conf_size, base_bar;
        int err, i;
 
+       if (!rtdm_available())
+               return -ENODEV;
+
        /* Enabling PCI device */
        if (pci_enable_device(pdev) < 0) {
                dev_err(&pdev->dev, "Enabling PCI device failed\n");
@@ -390,16 +393,12 @@ static struct pci_driver ems_pci_driver = {
 
 static int __init ems_pci_init(void)
 {
-       if (!realtime_core_enabled())
-               return 0;
-
        return pci_register_driver(&ems_pci_driver);
 }
 
 static void __exit ems_pci_exit(void)
 {
-       if (realtime_core_enabled())
-               pci_unregister_driver(&ems_pci_driver);
+       pci_unregister_driver(&ems_pci_driver);
 }
 
 module_init(ems_pci_init);
diff --git a/kernel/drivers/can/sja1000/rtcan_esd_pci.c 
b/kernel/drivers/can/sja1000/rtcan_esd_pci.c
index 924c7d0c74..a383d1d372 100644
--- a/kernel/drivers/can/sja1000/rtcan_esd_pci.c
+++ b/kernel/drivers/can/sja1000/rtcan_esd_pci.c
@@ -224,6 +224,9 @@ static int esd_pci_init_one(struct pci_dev *pdev,
        void __iomem *conf_addr;
        struct rtcan_device *master_dev = NULL;
 
+       if (!rtdm_available())
+               return -ENODEV;
+
        if ((ret = pci_enable_device (pdev)))
                goto failure;
 
@@ -342,16 +345,12 @@ static struct pci_driver rtcan_esd_pci_driver = {
 
 static int __init rtcan_esd_pci_init(void)
 {
-       if (!realtime_core_enabled())
-               return 0;
-
        return pci_register_driver(&rtcan_esd_pci_driver);
 }
 
 static void __exit rtcan_esd_pci_exit(void)
 {
-       if (realtime_core_enabled())
-               pci_unregister_driver(&rtcan_esd_pci_driver);
+       pci_unregister_driver(&rtcan_esd_pci_driver);
 }
 
 module_init(rtcan_esd_pci_init);
diff --git a/kernel/drivers/can/sja1000/rtcan_isa.c 
b/kernel/drivers/can/sja1000/rtcan_isa.c
index c506081db8..f4c59cd86b 100644
--- a/kernel/drivers/can/sja1000/rtcan_isa.c
+++ b/kernel/drivers/can/sja1000/rtcan_isa.c
@@ -161,8 +161,8 @@ static int __init rtcan_isa_init(void)
        int i, err;
        int devices = 0;
 
-       if (!realtime_core_enabled())
-               return 0;
+       if (!rtdm_available())
+               return -ENOSYS;
 
        for (i = 0; i < RTCAN_ISA_MAX_DEV && io[i] != 0; i++) {
                err = rtcan_isa_init_one(i);
@@ -187,9 +187,6 @@ static void rtcan_isa_exit(void)
        int i;
        struct rtcan_device *dev;
 
-       if (!realtime_core_enabled())
-               return;
-
        for (i = 0; i < RTCAN_ISA_MAX_DEV; i++) {
                dev = rtcan_isa_devs[i];
                if (!dev)
diff --git a/kernel/drivers/can/sja1000/rtcan_ixxat_pci.c 
b/kernel/drivers/can/sja1000/rtcan_ixxat_pci.c
index eaabe1ac77..cb5169c80f 100644
--- a/kernel/drivers/can/sja1000/rtcan_ixxat_pci.c
+++ b/kernel/drivers/can/sja1000/rtcan_ixxat_pci.c
@@ -212,6 +212,9 @@ static int ixxat_pci_init_one(struct pci_dev *pdev,
     void __iomem *base_addr;
     struct rtcan_device *master_dev = NULL;
 
+    if (!rtdm_available())
+       return -ENODEV;
+
     if ((ret = pci_enable_device (pdev)))
        goto failure;
 
@@ -296,17 +299,13 @@ static struct pci_driver rtcan_ixxat_pci_driver = {
 
 static int __init rtcan_ixxat_pci_init(void)
 {
-       if (!realtime_core_enabled())
-               return 0;
-
     return pci_register_driver(&rtcan_ixxat_pci_driver);
 }
 
 
 static void __exit rtcan_ixxat_pci_exit(void)
 {
-       if (realtime_core_enabled())
-               pci_unregister_driver(&rtcan_ixxat_pci_driver);
+       pci_unregister_driver(&rtcan_ixxat_pci_driver);
 }
 
 module_init(rtcan_ixxat_pci_init);
diff --git a/kernel/drivers/can/sja1000/rtcan_mem.c 
b/kernel/drivers/can/sja1000/rtcan_mem.c
index c668f8f430..178b321d92 100644
--- a/kernel/drivers/can/sja1000/rtcan_mem.c
+++ b/kernel/drivers/can/sja1000/rtcan_mem.c
@@ -173,8 +173,8 @@ static int __init rtcan_mem_init(void)
        int i, err;
        int devices = 0;
 
-       if (!realtime_core_enabled())
-               return 0;
+       if (!rtdm_available())
+               return -ENOSYS;
 
        for (i = 0; i < RTCAN_MEM_MAX_DEV && mem[i] != 0; i++) {
                err = rtcan_mem_init_one(i);
@@ -200,9 +200,6 @@ static void rtcan_mem_exit(void)
        struct rtcan_device *dev;
        volatile void __iomem *vmem;
 
-       if (!realtime_core_enabled())
-               return;
-
        for (i = 0; i < RTCAN_MEM_MAX_DEV; i++) {
                dev = rtcan_mem_devs[i];
                if (!dev)
diff --git a/kernel/drivers/can/sja1000/rtcan_peak_dng.c 
b/kernel/drivers/can/sja1000/rtcan_peak_dng.c
index b174625077..9207be55e8 100644
--- a/kernel/drivers/can/sja1000/rtcan_peak_dng.c
+++ b/kernel/drivers/can/sja1000/rtcan_peak_dng.c
@@ -345,9 +345,6 @@ static void rtcan_peak_dng_exit(void)
     int i;
     struct rtcan_device *dev;
 
-    if (!realtime_core_enabled())
-        return;
-
     for (i = 0, dev = rtcan_peak_dng_devs[i];
         i < RTCAN_PEAK_DNG_MAX_DEV && dev != NULL;
         i++)
@@ -362,8 +359,8 @@ static int __init rtcan_peak_dng_init(void)
 {
     int i, ret = -EINVAL, done = 0;
 
-    if (!realtime_core_enabled())
-        return 0;
+    if (!rtdm_available())
+       return -ENOSYS;
 
     if (pnp_register_driver(&rtcan_peak_dng_pnp_driver) == 0)
        pnp_registered = 1;
diff --git a/kernel/drivers/can/sja1000/rtcan_peak_pci.c 
b/kernel/drivers/can/sja1000/rtcan_peak_pci.c
index 0fdc598be8..ad7d46bbb2 100644
--- a/kernel/drivers/can/sja1000/rtcan_peak_pci.c
+++ b/kernel/drivers/can/sja1000/rtcan_peak_pci.c
@@ -284,6 +284,9 @@ static int peak_pci_init_one(struct pci_dev *pdev,
     u16 sub_sys_id;
     struct rtcan_device *master_dev = NULL;
 
+    if (!rtdm_available())
+       return -ENODEV;
+
     printk("%s: initializing device %04x:%04x\n",
           RTCAN_DRV_NAME,  pdev->vendor, pdev->device);
 
@@ -353,17 +356,13 @@ static struct pci_driver rtcan_peak_pci_driver = {
 
 static int __init rtcan_peak_pci_init(void)
 {
-       if (!realtime_core_enabled())
-               return 0;
-
         return pci_register_driver(&rtcan_peak_pci_driver);
 }
 
 
 static void __exit rtcan_peak_pci_exit(void)
 {
-       if (realtime_core_enabled())
-               pci_unregister_driver(&rtcan_peak_pci_driver);
+       pci_unregister_driver(&rtcan_peak_pci_driver);
 }
 
 module_init(rtcan_peak_pci_init);
diff --git a/kernel/drivers/can/sja1000/rtcan_plx_pci.c 
b/kernel/drivers/can/sja1000/rtcan_plx_pci.c
index b90a43d139..61ae6a2b66 100644
--- a/kernel/drivers/can/sja1000/rtcan_plx_pci.c
+++ b/kernel/drivers/can/sja1000/rtcan_plx_pci.c
@@ -460,6 +460,9 @@ static int plx_pci_add_card(struct pci_dev *pdev,
        u32 val;
        void __iomem *addr;
 
+       if (!rtdm_available())
+               return -ENODEV;
+
        ci = (struct plx_pci_card_info *)ent->driver_data;
 
        if (pci_enable_device(pdev) < 0) {
@@ -596,16 +599,12 @@ static struct pci_driver plx_pci_driver = {
 
 static int __init plx_pci_init(void)
 {
-       if (!realtime_core_enabled())
-               return 0;
-
        return pci_register_driver(&plx_pci_driver);
 }
 
 static void __exit plx_pci_exit(void)
 {
-       if (realtime_core_enabled())
-               pci_unregister_driver(&plx_pci_driver);
+       pci_unregister_driver(&plx_pci_driver);
 }
 
 module_init(plx_pci_init);
diff --git a/kernel/drivers/can/sja1000/rtcan_sja1000.c 
b/kernel/drivers/can/sja1000/rtcan_sja1000.c
index c7712ab307..842456dfdb 100644
--- a/kernel/drivers/can/sja1000/rtcan_sja1000.c
+++ b/kernel/drivers/can/sja1000/rtcan_sja1000.c
@@ -822,17 +822,17 @@ void rtcan_sja1000_unregister(struct rtcan_device *dev)
 
 int __init rtcan_sja_init(void)
 {
-       if (realtime_core_enabled())
-               printk("RTCAN SJA1000 driver initialized\n");
+       if (!rtdm_available())
+               return -ENOSYS;
 
-    return 0;
+       printk("RTCAN SJA1000 driver initialized\n");
+       return 0;
 }
 
 
 void __exit rtcan_sja_exit(void)
 {
-       if (realtime_core_enabled())
-               printk("%s removed\n", sja_ctrl_name);
+       printk("%s removed\n", sja_ctrl_name);
 }
 
 module_init(rtcan_sja_init);
-- 
2.16.4


Reply via email to