diff options
| author | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-04-14 11:00:36 -0400 |
|---|---|---|
| committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-04-14 11:00:36 -0400 |
| commit | 277a163c83d7ba93fba1e8980d29a9f8bfcfba6c (patch) | |
| tree | ccfd357d152292958957b6b8a993892e7a8cc95f /kernel/sched/stop_task.c | |
| parent | a83b93a7480441a47856dc9104bea970e84cda87 (diff) | |
| parent | c9eaa447e77efe77b7fa4c953bd62de8297fd6c5 (diff) | |
Merge tag 'v3.15-rc1' into patchwork
Linux 3.15-rc1
* tag 'v3.15-rc1': (12180 commits)
Linux 3.15-rc1
mm: Initialize error in shmem_file_aio_read()
cifs: Use min_t() when comparing "size_t" and "unsigned long"
sym53c8xx_2: Set DID_REQUEUE return code when aborting squeue
powerpc: Don't try to set LPCR unless we're in hypervisor mode
futex: update documentation for ordering guarantees
ceph: fix pr_fmt() redefinition
vti: don't allow to add the same tunnel twice
gre: don't allow to add the same tunnel twice
drivers: net: xen-netfront: fix array initialization bug
missing bits of "splice: fix racy pipe->buffers uses"
cifs: fix the race in cifs_writev()
ceph_sync_{,direct_}write: fix an oops on ceph_osdc_new_request() failure
pktgen: be friendly to LLTX devices
r8152: check RTL8152_UNPLUG
net: sun4i-emac: add promiscuous support
net/apne: replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO
blackfin: cleanup board files
bf609: clock: drop unused clock bit set/clear functions
Blackfin: bf537: rename "CONFIG_ADT75"
...
Diffstat (limited to 'kernel/sched/stop_task.c')
| -rw-r--r-- | kernel/sched/stop_task.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/kernel/sched/stop_task.c b/kernel/sched/stop_task.c index fdb6bb0b3356..d6ce65dde541 100644 --- a/kernel/sched/stop_task.c +++ b/kernel/sched/stop_task.c | |||
| @@ -23,16 +23,19 @@ check_preempt_curr_stop(struct rq *rq, struct task_struct *p, int flags) | |||
| 23 | /* we're never preempted */ | 23 | /* we're never preempted */ |
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | static struct task_struct *pick_next_task_stop(struct rq *rq) | 26 | static struct task_struct * |
| 27 | pick_next_task_stop(struct rq *rq, struct task_struct *prev) | ||
| 27 | { | 28 | { |
| 28 | struct task_struct *stop = rq->stop; | 29 | struct task_struct *stop = rq->stop; |
| 29 | 30 | ||
| 30 | if (stop && stop->on_rq) { | 31 | if (!stop || !stop->on_rq) |
| 31 | stop->se.exec_start = rq_clock_task(rq); | 32 | return NULL; |
| 32 | return stop; | ||
| 33 | } | ||
| 34 | 33 | ||
| 35 | return NULL; | 34 | put_prev_task(rq, prev); |
| 35 | |||
| 36 | stop->se.exec_start = rq_clock_task(rq); | ||
| 37 | |||
| 38 | return stop; | ||
| 36 | } | 39 | } |
| 37 | 40 | ||
| 38 | static void | 41 | static void |
