Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp4624333pxb; Tue, 25 Jan 2022 14:49:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJxCkrdYTQG68gqO7UZlSoeP4RL60CuLSpklek75fqHCQhQGKpxeoilmencLrxGvRquZCFlL X-Received: by 2002:a17:90b:4f4a:: with SMTP id pj10mr5705829pjb.168.1643150999267; Tue, 25 Jan 2022 14:49:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643150999; cv=none; d=google.com; s=arc-20160816; b=Ri9RvPzLA7LGkMJ/WW/VaN9a3eH5dWwmiBy5WGB1qajZl2Qf89ry3HPbHbetoQ9fC1 eftZ0tM5IHWH1+ukUeWEHu6KCMLkamhDHcH1ATMH/k/CDi9LmNFYAHyYrH7gap4hat14 r4jtqqCRpsofOtY6Wvdt7SozfMMfd/rIGoiD80VRABwSEOC0oXAf+aoVn32C6LHRtX3C fhkpfoWM91ZHnOpRLoMXarsHfRl3R2WLOHEgBc04wy9+aFt3fEHTuhONm1hzYbEEjFSN eWARg20w9LXz6PSgKVeAhcX5yrxeDCuLz7uloItAdQZdopdDqZF5ldD9NWrPvVYDBjIA inzw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:dkim-signature :dkim-signature:from; bh=6xLz/KFQPrcQSXuWbgpl53d0fa2nP/lvm2qQeThafk4=; b=NZzSdz/fySeW0zzVxwJJeZP+3UXr2vUPDyCqPXQTAzvr/Ldo/lxlHy2lbYqkhBPEeg C3chT5TSYlIwEdI99J7qaCC4qfB0QJKWhCcvIfmWIziGESTM1mZpmOsheJhpyZcXRbgk E2hfib6bGSK+iiKfKCSf1fEges02uobOu75ungo+QJQnfkZu/37WNaf/POnCbnPH2nEx pZ49FwNM2ISpzVXqapUutM3Yyjy6sU32/dV/2bI1zn/QATH8Hlp7ZELGaQp9QsYX/2UP Q+Bsf1x7EXCuaygeNexNxXrZZIqla1shcSRw6BalCKEzo/vkk93EI1LXi9dFsdpEURoL B9wA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=C5CRHCNi; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=8akRmo7t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p14si20046151plf.521.2022.01.25.14.49.43; Tue, 25 Jan 2022 14:49:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=C5CRHCNi; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=8akRmo7t; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347574AbiAYPaQ (ORCPT + 99 others); Tue, 25 Jan 2022 10:30:16 -0500 Received: from Galois.linutronix.de ([193.142.43.55]:50066 "EHLO galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344600AbiAYP1N (ORCPT ); Tue, 25 Jan 2022 10:27:13 -0500 From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1643124419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6xLz/KFQPrcQSXuWbgpl53d0fa2nP/lvm2qQeThafk4=; b=C5CRHCNiIL8NoJnSyTplmuSII/XcUiBucgWr4RnrEbVqLqWk5Dzh4SEXmg0eaXutRIQtPp Hl4Pzc/zgVGwFh6QHQd8JXidKPGcmK4kEn6QgroyuzVJMwG7WMVwzE6tlcX/zPB42sveAg GNrz62fODQBajX+1+iSPWzM7rLyUpBXawJQXPrKFey2WTdIsPuem2cigyZAn6AlwzyUIhg 1rzx3k1nq0I7Ipz3r7mKJKarhp8RIB2XqWjAnmXIgZiIPNemO4KxQk7io1Xvp40lpWVdtY se3hQFwzYYSpWEhuV/rzrvUMn2aDRGH0amYvo7P4yK1zVwg9N7VjthSmRdSpog== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1643124419; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6xLz/KFQPrcQSXuWbgpl53d0fa2nP/lvm2qQeThafk4=; b=8akRmo7tr2grKpZNHAYd8lvaTO6c5JidOQH+CcHp5XfufJxZs5qeebl3PB1jnbuvQMre+6 ssHHpcpS+lES8GCQ== To: linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org Cc: Andy Lutomirski , Ben Segall , Daniel Bristot de Oliveira , Dietmar Eggemann , Ingo Molnar , Juri Lelli , Peter Zijlstra , Steven Rostedt , Thomas Gleixner , Vincent Guittot , Sebastian Andrzej Siewior Subject: [PATCH 3/8] kernel/fork, IA64: Provide a alloc_thread_stack_node() for IA64. Date: Tue, 25 Jan 2022 16:26:47 +0100 Message-Id: <20220125152652.1963111-4-bigeasy@linutronix.de> In-Reply-To: <20220125152652.1963111-1-bigeasy@linutronix.de> References: <20220125152652.1963111-1-bigeasy@linutronix.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Provide a generic alloc_thread_stack_node() for IA64/ CONFIG_ARCH_THREAD_STACK_ALLOCATOR which returns stack pointer and sets task_struct::stack so it behaves exactly like the other implementations. Rename IA64's alloc_thread_stack_node() and add the generic version to the fork code so it is in one place _and_ to drastically lower chances of fat fingering the IA64 code. Do the same for free_thread_stack(). Signed-off-by: Sebastian Andrzej Siewior --- arch/ia64/include/asm/thread_info.h | 6 +++--- kernel/fork.c | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/arch/ia64/include/asm/thread_info.h b/arch/ia64/include/asm/th= read_info.h index 51d20cb377062..1684716f08201 100644 --- a/arch/ia64/include/asm/thread_info.h +++ b/arch/ia64/include/asm/thread_info.h @@ -55,15 +55,15 @@ struct thread_info { #ifndef ASM_OFFSETS_C /* how to get the thread information struct from C */ #define current_thread_info() ((struct thread_info *) ((char *) current + = IA64_TASK_SIZE)) -#define alloc_thread_stack_node(tsk, node) \ +#define arch_alloc_thread_stack_node(tsk, node) \ ((unsigned long *) ((char *) (tsk) + IA64_TASK_SIZE)) #define task_thread_info(tsk) ((struct thread_info *) ((char *) (tsk) + IA= 64_TASK_SIZE)) #else #define current_thread_info() ((struct thread_info *) 0) -#define alloc_thread_stack_node(tsk, node) ((unsigned long *) 0) +#define arch_alloc_thread_stack_node(tsk, node) ((unsigned long *) 0) #define task_thread_info(tsk) ((struct thread_info *) 0) #endif -#define free_thread_stack(tsk) /* nothing */ +#define arch_free_thread_stack(tsk) /* nothing */ #define task_stack_page(tsk) ((void *)(tsk)) =20 #define __HAVE_THREAD_FUNCTIONS diff --git a/kernel/fork.c b/kernel/fork.c index c47dcba5d66d2..a0d58ae6fac76 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -330,6 +330,22 @@ void thread_stack_cache_init(void) } =20 # endif /* THREAD_SIZE >=3D PAGE_SIZE || defined(CONFIG_VMAP_STACK) */ +#else /* CONFIG_ARCH_THREAD_STACK_ALLOCATOR */ + +static unsigned long *alloc_thread_stack_node(struct task_struct *tsk, int= node) +{ + unsigned long *stack; + + stack =3D arch_alloc_thread_stack_node(tsk, node); + tsk->stack =3D stack; + return stack; +} + +static void free_thread_stack(struct task_struct *tsk, bool cache_only) +{ + arch_free_thread_stack(tsk); +} + #endif /* !CONFIG_ARCH_THREAD_STACK_ALLOCATOR */ =20 /* SLAB cache for signal_struct structures (tsk->signal) */ --=20 2.34.1