Make findthread_and_lock take ihk_spinlock_t **

This commit is contained in:
Masamichi Takagi
2014-09-23 12:01:51 +09:00
parent 434597e629
commit a7b0880a8d
3 changed files with 5 additions and 5 deletions

View File

@@ -282,7 +282,7 @@ void check_need_resched(void);
void cpu_set(int cpu, cpu_set_t *cpu_set, ihk_spinlock_t *lock); void cpu_set(int cpu, cpu_set_t *cpu_set, ihk_spinlock_t *lock);
void cpu_clear(int cpu, cpu_set_t *cpu_set, ihk_spinlock_t *lock); void cpu_clear(int cpu, cpu_set_t *cpu_set, ihk_spinlock_t *lock);
struct process *findthread_and_lock(int pid, int tid, void *savelock, unsigned long *irqstate); struct process *findthread_and_lock(int pid, int tid, ihk_spinlock_t **savelock, unsigned long *irqstate);
void process_unlock(void *savelock, unsigned long irqstate); void process_unlock(void *savelock, unsigned long irqstate);
#endif #endif

View File

@@ -2066,7 +2066,7 @@ void runq_del_proc(struct process *proc, int cpu_id)
} }
struct process * struct process *
findthread_and_lock(int pid, int tid, void *savelock, unsigned long *irqstate) findthread_and_lock(int pid, int tid, ihk_spinlock_t **savelock, unsigned long *irqstate)
{ {
struct cpu_local_var *v; struct cpu_local_var *v;
struct process *p; struct process *p;
@@ -2075,11 +2075,11 @@ findthread_and_lock(int pid, int tid, void *savelock, unsigned long *irqstate)
for(i = 0; i < num_processors; i++){ for(i = 0; i < num_processors; i++){
v = get_cpu_local_var(i); v = get_cpu_local_var(i);
*(ihk_spinlock_t **)savelock = &(v->runq_lock); *savelock = &(v->runq_lock);
*irqstate = ihk_mc_spinlock_lock(&(v->runq_lock)); *irqstate = ihk_mc_spinlock_lock(&(v->runq_lock));
list_for_each_entry(p, &(v->runq), sched_list){ list_for_each_entry(p, &(v->runq), sched_list){
if(p->pid == pid && if(p->pid == pid &&
p->tid == tid){ (tid == -1 || p->tid == tid)){
return p; return p;
} }
} }

View File

@@ -200,7 +200,7 @@ void process_procfs_request(unsigned long rarg)
int rosnum, ret, pid, tid, ans = -EIO, eof = 0; int rosnum, ret, pid, tid, ans = -EIO, eof = 0;
char *buf, *p; char *buf, *p;
struct ihk_ikc_channel_desc *syscall_channel; struct ihk_ikc_channel_desc *syscall_channel;
void *savelock; ihk_spinlock_t *savelock;
unsigned long irqstate; unsigned long irqstate;
dprintf("process_procfs_request: invoked.\n"); dprintf("process_procfs_request: invoked.\n");