staging: most: remove tainted flag
authorChristian Gromm <christian.gromm@microchip.com>
Tue, 22 Dec 2015 09:52:56 +0000 (10:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Feb 2016 01:34:58 +0000 (17:34 -0800)
This patch removes the atomic tainted flag. It is needed to get rid of
logical overhead.

Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/mostcore/core.c

index 782747a50477850cc198f9964a89de82c15b43a1..58e288b74b1b4a05010fd3e16df9983baf6b9f10 100644 (file)
@@ -74,7 +74,6 @@ struct most_c_obj {
 
 struct most_inst_obj {
        int dev_id;
-       atomic_t tainted;
        struct most_interface *iface;
        struct list_head channel_list;
        struct most_c_obj *channel[MAX_CHANNELS];
@@ -1299,18 +1298,10 @@ _exit:
  */
 int most_submit_mbo(struct mbo *mbo)
 {
-       struct most_c_obj *c;
-       struct most_inst_obj *i;
-
        if (unlikely((!mbo) || (!mbo->context))) {
                pr_err("Bad MBO or missing channel reference\n");
                return -EINVAL;
        }
-       c = mbo->context;
-       i = c->inst;
-
-       if (unlikely(atomic_read(&i->tainted)))
-               return -ENODEV;
 
        nq_hdm_mbo(mbo);
        return 0;
@@ -1436,17 +1427,8 @@ EXPORT_SYMBOL_GPL(most_get_mbo);
  */
 void most_put_mbo(struct mbo *mbo)
 {
-       struct most_c_obj *c;
-       struct most_inst_obj *i;
-
-       c = mbo->context;
-       i = c->inst;
+       struct most_c_obj *c = mbo->context;
 
-       if (unlikely(atomic_read(&i->tainted))) {
-               mbo->status = MBO_E_CLOSE;
-               trash_mbo(mbo);
-               return;
-       }
        if (c->cfg.direction == MOST_CH_TX) {
                arm_mbo(mbo);
                return;
@@ -1602,14 +1584,6 @@ int most_stop_channel(struct most_interface *iface, int id,
        c->hdm_enqueue_task = NULL;
        mutex_unlock(&c->stop_task_mutex);
 
-       mutex_lock(&deregister_mutex);
-       if (atomic_read(&c->inst->tainted)) {
-               mutex_unlock(&deregister_mutex);
-               mutex_unlock(&c->start_mutex);
-               return -ENODEV;
-       }
-       mutex_unlock(&deregister_mutex);
-
        if (iface->mod && modref) {
                module_put(iface->mod);
                modref--;
@@ -1750,7 +1724,6 @@ struct kobject *most_register_interface(struct most_interface *iface)
        INIT_LIST_HEAD(&inst->channel_list);
        inst->iface = iface;
        inst->dev_id = id;
-       atomic_set(&inst->tainted, 0);
        list_add_tail(&inst->list, &instance_list);
 
        for (i = 0; i < iface->num_channels; i++) {
@@ -1835,10 +1808,6 @@ void most_deregister_interface(struct most_interface *iface)
                c->aim1.ptr = NULL;
        }
 
-       mutex_lock(&deregister_mutex);
-       atomic_set(&i->tainted, 1);
-       mutex_unlock(&deregister_mutex);
-
        while (modref) {
                if (iface->mod && modref)
                        module_put(iface->mod);