summaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorChristian Gromm <christian.gromm@microchip.com>2015-12-22 10:52:56 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-02-07 17:34:58 -0800
commit6ed90e3622d1b3eff2433cc0c31fdcfc3cd2a23f (patch)
tree7fd95467ae3168af9f4a2c7eeaf340dca88bdca0 /drivers/staging
parenta0fceb1fb853585dcc7419944eb0ca385bdc497e (diff)
downloadlinux-6ed90e3622d1b3eff2433cc0c31fdcfc3cd2a23f.tar.bz2
staging: most: remove tainted flag
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>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/most/mostcore/core.c33
1 files changed, 1 insertions, 32 deletions
diff --git a/drivers/staging/most/mostcore/core.c b/drivers/staging/most/mostcore/core.c
index 782747a50477..58e288b74b1b 100644
--- a/drivers/staging/most/mostcore/core.c
+++ b/drivers/staging/most/mostcore/core.c
@@ -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);