Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1337592pxu; Fri, 27 Nov 2020 05:16:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJz+K39/SsH9PjeFTRBw81l6y84dXI55z0wKwnWMDNItnKtsjoQFssbPCewk6k4mGt2neoog X-Received: by 2002:a05:6402:22ab:: with SMTP id cx11mr7512415edb.98.1606482979061; Fri, 27 Nov 2020 05:16:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606482979; cv=none; d=google.com; s=arc-20160816; b=ZF0Vb8NUOwC4H3/fpokkUFsZAve5bDvF4myJq7VScLvYfgosh1c/lNPVPXHvwUP76H pLX5lUeHxQgu77fUK72zvitv4c1XGYqJhu6HyOq1pcRqB+lKSqvhc1dbMYlg5fecB+vq ZcDo8G5epYhE2B/7rBVbWuHUeCkq5Ee7f8TRrbwR2EUgcmWhe84jtgWNL8Rd3tXPSo4U 4SaysoMqPB7tlCiNXaReIeJnxIgKYbD0TLh8wIzrgSrspSM8cESfVu9DTb1SDMnY8AxL uW1z2RazMvHdTdzZDA9p5n59SeYTaAsf6ezI6+5G2eQLsL/h5T6rg9Uz1Jsvd7sNf6tR 6hQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=k2Zi9uPKAh3BL5bcHv3teH9rli2sGuIDGmGjmmlagX4=; b=RmBloXucaL2F1SXl0GgNjDiOExOA6W82f5Y7Ewi6IeZKFiGnaUF4TgxsgfAu0wgz1Y exTb4TYYQnmlDcKrOpf6OcoF0edy8Hto1CneyFuQ2QAYy2txrA+jQ4odC2I+7Snn7giu qNTyZwlBdeOVsCbQ/ukZh5odo7O9TBs89DKtya/kPsGUi41RUMdmY7ZvQMZnIeLIvUmf OgFscXSVuwv+I7gBpnZf8skZMhv/1zPFZBffRkmTvrK+UyzLPNSbxf0ige+XvOsSQn4N Wm3oXXoa3hcHcibgPBnN8bwF9soKQP+qX2VX+PHlinrxzWwyBnMfoIHF7X+zr8JHIgoo i7sQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t20si4918607eju.40.2020.11.27.05.15.56; Fri, 27 Nov 2020 05:16:19 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730097AbgK0NMX (ORCPT + 99 others); Fri, 27 Nov 2020 08:12:23 -0500 Received: from foss.arm.com ([217.140.110.172]:41224 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729913AbgK0NMW (ORCPT ); Fri, 27 Nov 2020 08:12:22 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 07A0C30E; Fri, 27 Nov 2020 05:12:22 -0800 (PST) Received: from e107158-lin.cambridge.arm.com (unknown [10.1.194.78]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id C9A4E3F70D; Fri, 27 Nov 2020 05:12:19 -0800 (PST) Date: Fri, 27 Nov 2020 13:12:17 +0000 From: Qais Yousef To: Will Deacon Cc: linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Catalin Marinas , Marc Zyngier , Greg Kroah-Hartman , Peter Zijlstra , Morten Rasmussen , Suren Baghdasaryan , Quentin Perret , Tejun Heo , Li Zefan , Johannes Weiner , Ingo Molnar , Juri Lelli , Vincent Guittot , kernel-team@android.com Subject: Re: [PATCH v4 04/14] arm64: Kill 32-bit applications scheduled on 64-bit-only CPUs Message-ID: <20201127131217.skekrybqjdidm5ki@e107158-lin.cambridge.arm.com> References: <20201124155039.13804-1-will@kernel.org> <20201124155039.13804-5-will@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20201124155039.13804-5-will@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/24/20 15:50, Will Deacon wrote: > Scheduling a 32-bit application on a 64-bit-only CPU is a bad idea. > > Ensure that 32-bit applications always take the slow-path when returning > to userspace on a system with mismatched support at EL0, so that we can > avoid trying to run on a 64-bit-only CPU and force a SIGKILL instead. > > Signed-off-by: Will Deacon > --- nit: We drop this patch at the end. Can't we avoid it altogether instead? [...] > diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c > index a8184cad8890..bcb6ca2d9a7c 100644 > --- a/arch/arm64/kernel/signal.c > +++ b/arch/arm64/kernel/signal.c > @@ -911,6 +911,19 @@ static void do_signal(struct pt_regs *regs) > restore_saved_sigmask(); > } > > +static bool cpu_affinity_invalid(struct pt_regs *regs) > +{ > + if (!compat_user_mode(regs)) > + return false; Silly question. Is there an advantage of using compat_user_mode() vs is_compat_task()? I see the latter used in the file although struct pt_regs *regs is passed to the functions calling it. Nothing's wrong with it, just curious. Thanks -- Qais Yousef > + > + /* > + * We're preemptible, but a reschedule will cause us to check the > + * affinity again. > + */ > + return !cpumask_test_cpu(raw_smp_processor_id(), > + system_32bit_el0_cpumask()); > +}