+/*
+ * GPL HEADER START
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 only,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License version 2 for more details (a copy is included
+ * in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License
+ * version 2 along with this program; If not, see
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ *
+ * GPL HEADER END
+ */
+/*
+ * Copyright (c) 2017, Intel Corporation.
+ * Use is subject to license terms.
+ */
+/*
+ * This file is part of Lustre, http://www.lustre.org/
+ *
+ * parallel task interface
+ */
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/cpu.h>
#include <linux/slab.h>
#include <linux/sched.h>
+#ifdef HAVE_SCHED_HEADERS
+#include <linux/sched/signal.h>
+#include <linux/sched/mm.h>
+#endif
#include <linux/moduleparam.h>
#include <linux/mmu_context.h>
{
char *pa_mask_buff, *cb_mask_buff;
- pa_mask_buff = (char *)__get_free_page(GFP_TEMPORARY);
+ pa_mask_buff = (char *)__get_free_page(GFP_KERNEL);
if (pa_mask_buff == NULL)
GOTO(err_free_par_mask, rc = -ENOMEM);
- cb_mask_buff = (char *)__get_free_page(GFP_TEMPORARY);
+ cb_mask_buff = (char *)__get_free_page(GFP_KERNEL);
if (cb_mask_buff == NULL) {
free_page((unsigned long)pa_mask_buff);
GOTO(err_free_par_mask, rc = -ENOMEM);
}
engine->pte_weight = cpumask_weight(par_mask);
- engine->pte_pinst = padata_alloc(engine->pte_wq, par_mask, all_mask);
+ engine->pte_pinst = padata_alloc_possible(engine->pte_wq);
if (engine->pte_pinst == NULL)
GOTO(err_free_par_mask, rc = -ENOMEM);
if (rc)
GOTO(err_free_padata, rc);
+ rc = cfs_ptengine_set_cpumask(engine, par_mask);
+ if (rc)
+ GOTO(err_unregister, rc);
+
rc = padata_start(engine->pte_pinst);
if (rc)
GOTO(err_unregister, rc);