Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 144018
b: refs/heads/master
c: b1ad171
h: refs/heads/master
v: v3
  • Loading branch information
Gerald Schaefer authored and Martin Schwidefsky committed Apr 23, 2009
1 parent 195c7b3 commit d7eb656
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3bd5f3ef290627efa3c219fa21a82eea90bc4cb0
refs/heads/master: b1ad171efa089ae26aba750d747d8149a4f860d5
32 changes: 16 additions & 16 deletions trunk/arch/s390/appldata/appldata_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ static DECLARE_WORK(appldata_work, appldata_work_fn);
/*
* Ops list
*/
static DEFINE_SPINLOCK(appldata_ops_lock);
static DEFINE_MUTEX(appldata_ops_mutex);
static LIST_HEAD(appldata_ops_list);


Expand Down Expand Up @@ -129,14 +129,14 @@ static void appldata_work_fn(struct work_struct *work)

i = 0;
get_online_cpus();
spin_lock(&appldata_ops_lock);
mutex_lock(&appldata_ops_mutex);
list_for_each(lh, &appldata_ops_list) {
ops = list_entry(lh, struct appldata_ops, list);
if (ops->active == 1) {
ops->callback(ops->data);
}
}
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);
put_online_cpus();
}

Expand Down Expand Up @@ -338,23 +338,23 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
struct list_head *lh;

found = 0;
spin_lock(&appldata_ops_lock);
mutex_lock(&appldata_ops_mutex);
list_for_each(lh, &appldata_ops_list) {
tmp_ops = list_entry(lh, struct appldata_ops, list);
if (&tmp_ops->ctl_table[2] == ctl) {
found = 1;
}
}
if (!found) {
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);
return -ENODEV;
}
ops = ctl->data;
if (!try_module_get(ops->owner)) { // protect this function
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);
return -ENODEV;
}
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);

if (!*lenp || *ppos) {
*lenp = 0;
Expand All @@ -378,11 +378,11 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
return -EFAULT;
}

spin_lock(&appldata_ops_lock);
mutex_lock(&appldata_ops_mutex);
if ((buf[0] == '1') && (ops->active == 0)) {
// protect work queue callback
if (!try_module_get(ops->owner)) {
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);
module_put(ops->owner);
return -ENODEV;
}
Expand All @@ -407,7 +407,7 @@ appldata_generic_handler(ctl_table *ctl, int write, struct file *filp,
"failed with rc=%d\n", ops->name, rc);
module_put(ops->owner);
}
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);
out:
*lenp = len;
*ppos += len;
Expand All @@ -433,9 +433,9 @@ int appldata_register_ops(struct appldata_ops *ops)
if (!ops->ctl_table)
return -ENOMEM;

spin_lock(&appldata_ops_lock);
mutex_lock(&appldata_ops_mutex);
list_add(&ops->list, &appldata_ops_list);
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);

ops->ctl_table[0].procname = appldata_proc_name;
ops->ctl_table[0].maxlen = 0;
Expand All @@ -452,9 +452,9 @@ int appldata_register_ops(struct appldata_ops *ops)
goto out;
return 0;
out:
spin_lock(&appldata_ops_lock);
mutex_lock(&appldata_ops_mutex);
list_del(&ops->list);
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);
kfree(ops->ctl_table);
return -ENOMEM;
}
Expand All @@ -466,9 +466,9 @@ int appldata_register_ops(struct appldata_ops *ops)
*/
void appldata_unregister_ops(struct appldata_ops *ops)
{
spin_lock(&appldata_ops_lock);
mutex_lock(&appldata_ops_mutex);
list_del(&ops->list);
spin_unlock(&appldata_ops_lock);
mutex_unlock(&appldata_ops_mutex);
unregister_sysctl_table(ops->sysctl_header);
kfree(ops->ctl_table);
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/s390/appldata/appldata_mem.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ static void appldata_get_mem_data(void *data)
{
/*
* don't put large structures on the stack, we are
* serialized through the appldata_ops_lock and can use static
* serialized through the appldata_ops_mutex and can use static
*/
static struct sysinfo val;
unsigned long ev[NR_VM_EVENT_ITEMS];
Expand Down

0 comments on commit d7eb656

Please sign in to comment.