lkml.org 
[lkml]   [2015]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 010/107] MIPS: Fix sched_getaffinity with MT FPAFF enabled
    3.2.72-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Felix Fietkau <nbd@openwrt.org>

    commit 1d62d737555e1378eb62a8bba26644f7d97139d2 upstream.

    p->thread.user_cpus_allowed is zero-initialized and is only filled on
    the first sched_setaffinity call.

    To avoid adding overhead in the task initialization codepath, simply OR
    the returned mask in sched_getaffinity with p->cpus_allowed.

    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/10740/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    [bwh: Backported to 3.2: also convert from obsolete cpumask API]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    arch/mips/kernel/mips-mt-fpaff.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    --- a/arch/mips/kernel/mips-mt-fpaff.c
    +++ b/arch/mips/kernel/mips-mt-fpaff.c
    @@ -154,7 +154,7 @@ asmlinkage long mipsmt_sys_sched_getaffi
    unsigned long __user *user_mask_ptr)
    {
    unsigned int real_len;
    - cpumask_t mask;
    + cpumask_t allowed, mask;
    int retval;
    struct task_struct *p;

    @@ -173,7 +173,8 @@ asmlinkage long mipsmt_sys_sched_getaffi
    if (retval)
    goto out_unlock;

    - cpus_and(mask, p->thread.user_cpus_allowed, cpu_possible_map);
    + cpumask_or(&allowed, &p->thread.user_cpus_allowed, &p->cpus_allowed);
    + cpumask_and(&mask, &allowed, cpu_active_mask);

    out_unlock:
    read_unlock(&tasklist_lock);


    \
     
     \ /
      Last update: 2015-10-09 03:01    [W:4.254 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site