From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 832323D349F for ; Fri, 22 May 2026 11:12:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779448364; cv=none; b=N6/KGxHBZw6UHhXeHFCyUv9ubT6/Qp+kg378d/xcRQfXO94aReQbLJIPCFR7qfo0aKGZmVFFjqPc+gjLxioLscNOrRUBgxi8MVJgoOjKIOsfXtIcDpoLLcNkLEWuqZY0w4CCzg4bQzzGWOhU1Ol93gbMorpbtlQFzZ/A/sotf6w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779448364; c=relaxed/simple; bh=X92en1o9/v9M+Glv+/uETGz0xp8NSZmyNoN9p3Jmj4I=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Og8e08f84twH0XKhAPb/2O6bg14mj4XU2Pmyncj+awtViFmTqWPLbZQZ21AVmm1RCM3yKpsm/sVw1ccDEuhNCiICARqP+/Xx6+hvOS9X6pic2a9kx2W6RbAm18xwZzm7zw1ljYfvlojGj42Nxt1zY2Fiz8bvNxlFuJBe5sEz9/w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QPcOgsqZ; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QPcOgsqZ" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-44a5174670eso4229822f8f.1 for ; Fri, 22 May 2026 04:12:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779448361; x=1780053161; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=hxiCU8aDWzrapopsqW7zZ9IgDHHwDUg4WsiEl2eBhns=; b=QPcOgsqZqgMbK2FXIGxgPlx0ZBny5fgC2S1UX/BOAz+IOH5kfpPenoRK6uuo2Ofcf9 AgADGrzPPUhcetDK4tg95SBk9egNPCjjHxgf5cnX1SJk2A+W+Nbe17Li1+JDnt8UlWYN BkbRmsp448JC3uVcJB+45jD0OE9K41q5PW9fbshVekxvqrdjsU4mG/4YEGFHTGuME+8k jfCJDuefeXxwEnR8pKmx05wxCG62lm7yQson/vTP4vEKemuSxZt77M3verXgVCkpoGHc Cb847NZY4Z6KeDXSy9y96X0tuR2n5fa1PyJfpk93gtW+BIWOxza8gQKLYUYb2f3EWKmz Y6gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779448361; x=1780053161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hxiCU8aDWzrapopsqW7zZ9IgDHHwDUg4WsiEl2eBhns=; b=D6Aw4CxClN4Vk1aWBcqkbdIb4sERG0t7cMupcxARC6deUKyldslnrT+8WZB63yBmrB iiWWjc6zTwTpeLsA6zWKvQ7p5tDQYXZOG0LYNnc1tIOeu9qxY5HPdqkUTd1vK/R6hL8/ yI1lyTqthmVhJXZswqbKItdswjYrxTy83tMJFQ+m4QJ0N4DWdESORmCS/Ca2slzmgl+T DAinpsHpVM9wVSoiZetMz3qVlBNnA94I27uFheNspQPsHN8Je0pLUAGEfFhq4qXfgBd3 XqPKN4bNC8uQwtOj1gcnOg101LWX72/Mw0fCaN8g4DPIhwh0Y2+wac1ZCmq/tTpzHAsc fLmw== X-Forwarded-Encrypted: i=1; AFNElJ8w5oPO905BsAbOLB7M6a34/P0sHHzpGytG6RXt4AUDnzk7OzOQTm0erBhJR+flvUYFFqZ7euA8R5AIuYU=@vger.kernel.org X-Gm-Message-State: AOJu0YwsFJ96wpyDWxQVuXSW+GNSiaiuQ3RIjCaWFEfhtiYT0fT5QZae JtWeYnCQi/Nywe4bHBoYDqv4TuZa45FRrHMUqWdNqp84cEkwveblJRtI X-Gm-Gg: Acq92OGqTo6bYpmxncUSYfoUsIqLm2dmr9+GpHy6rjrCTabZj/S1cZEg83x7uZlprrA AVERLa9Dh6MHsa9JSDDMXLz3gi+2baoQk70gaqv8dTEzWnnZpm67xJ6vq63oZIHgBYwzg1JV72v 7KteJn0xTgBVYr/HEQ3l/hGfcLS4YCx34wlYSUYRfqt+pZXkqGbhhDu3vLsT9visbqQOtEgh/mH Jes6mVK/9MhTZpWuGzSKCdX7L2ygb/Dq07FaWgAGSf+/DtnYeo8WVCJfa0BMvdPqzk/3PpxeX2t P4Exux475tlt/hcmuku944BYi5oYrDalOXj/lEab1PpLNGHWjCXWS5yNk00gcbhNFZvJYMpAei2 esXtldKHYcK/L2lyUGVUz+2S+v2dLqHUaUPkoZwk8qvY/fcH+l2j7RFe4C5Xt+5WSW3KcdOF0wS aPHs60ikx16u4G0OBefZYPDMfLaMUlTq/oRAiGtosIot/Yj6gvYetVeMgIg8bufXGP X-Received: by 2002:a05:600c:4510:b0:48f:e230:c3fa with SMTP id 5b1f17b1804b1-490428ddc9fmr40864605e9.32.1779448360558; Fri, 22 May 2026 04:12:40 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490454dedd9sm30995645e9.6.2026.05.22.04.12.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 04:12:40 -0700 (PDT) Date: Fri, 22 May 2026 12:12:37 +0100 From: David Laight To: "Christophe Leroy (CS GROUP)" Cc: Michael Ellerman , Nicholas Piggin , Madhavan Srinivasan , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v1 2/8] powerpc/signal64: Untangle setup_tm_sigcontexts() and user_access_begin() Message-ID: <20260522121237.3089276f@pumpkin> In-Reply-To: <7c83fe5a596514a02fde37da987a48d638d0d097.1779441786.git.chleroy@kernel.org> References: <7c83fe5a596514a02fde37da987a48d638d0d097.1779441786.git.chleroy@kernel.org> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Fri, 22 May 2026 11:56:02 +0200 "Christophe Leroy (CS GROUP)" wrote: > Call setup_tm_sigcontexts() before opening user access to avoid > having to close and open again. > > Signed-off-by: Christophe Leroy (CS GROUP) > --- > arch/powerpc/kernel/signal_64.c | 22 +++++++++------------- > 1 file changed, 9 insertions(+), 13 deletions(-) > > diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c > index 86bb5bb4c143..3849af21e1d8 100644 > --- a/arch/powerpc/kernel/signal_64.c > +++ b/arch/powerpc/kernel/signal_64.c > @@ -873,6 +873,15 @@ int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, > if (!MSR_TM_ACTIVE(msr)) > prepare_setup_sigcontext(tsk); > > +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM > + if (MSR_TM_ACTIVE(msr)) Can't that be done without the ugly #ifdef? I assume MSR_TM_ACTIVE() will be zero - so it will all get optimised away. -- David > + err |= setup_tm_sigcontexts(&frame->uc.uc_mcontext, > + &frame->uc_transact.uc_mcontext, > + tsk, ksig->sig, NULL, > + (unsigned long)ksig->ka.sa.sa_handler, > + msr); > + > +#endif > if (!user_write_access_begin(frame, sizeof(*frame))) > goto badframe; > > @@ -889,19 +898,6 @@ int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, > * ucontext_t (for transactional state) with its uc_link ptr. > */ > unsafe_put_user(&frame->uc_transact, &frame->uc.uc_link, badframe_block); > - > - user_write_access_end(); > - > - err |= setup_tm_sigcontexts(&frame->uc.uc_mcontext, > - &frame->uc_transact.uc_mcontext, > - tsk, ksig->sig, NULL, > - (unsigned long)ksig->ka.sa.sa_handler, > - msr); > - > - if (!user_write_access_begin(&frame->uc.uc_sigmask, > - sizeof(frame->uc.uc_sigmask))) > - goto badframe; > - > #endif > } else { > unsafe_put_user(0, &frame->uc.uc_link, badframe_block);