From nobody Mon Jun 8 08:28:04 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 D65FE3451BA for ; Thu, 4 Jun 2026 15:37:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780587437; cv=none; b=ux2rCNLohX4PZOw3tSk7gZVx7QEAkuaCIHxQOIm2+k/cF50f5Fzt/Vdgxfo4IouciDkMYECmNFl2cA3Gf366J8fngZIkyiHa7Jtvj+OcMyDMyXJ3KOjyj6ykZvE2kBR5UsCehCrXSxCc0rVBr16U8k/ipvLWqVacPvH3OiABCQ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780587437; c=relaxed/simple; bh=mXJLKKXIzJUR4pEcsQEHYZm6jIvxHAXvX1kzxuwgAEU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TE8+YKI4oSU9xo0uwcA0FbI7OgyqI6Zey8Qoo5xCTx/rUdFO1wyd74QgV5x8bJScgpkDxBWDFZgujEvwOWPOQxnH+CF+iB9NUx1An364AUo/L/BiQWjx60mtZmmBBUfba5K1L6Wdn+VjCzgP6NErNdNwu6bLoafFu/nEjIhIPG0= 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=aRSai+ne; arc=none smtp.client-ip=209.85.128.47 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="aRSai+ne" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-490ac10e337so5247325e9.3 for ; Thu, 04 Jun 2026 08:37:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780587434; x=1781192234; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4tdlIKdiP9URP3E7PthXvnDVfvQrK6ms1wVhvnzOuYg=; b=aRSai+nexvqECzqgytcYPg03hpXA06sNFkw0PRk/TXlbQUC41dvvdxpKWHOKbm2HKY gCVqhfehr8sU9iPtt/ujvwxYvS+uJg62mn+/wztni+TP27ef7zgBOj/jukOv1AEOOYVz JpusrrX0TMT1E9qAcf/PSIavmcS3MMQQcEsM7ytM8ZMRBM64rr1ZIkCfifPmPlMYKjWO wRYpgly0cwU6eynuHiy350ZMVym27lbukPeOEI3eZRhQ6QweccPYyzKUZflzE0O79xXG i6L+zdGz5uht+6W+f226ElBPvKdlQo1nwZfYERz8/Pz+OwQRxTI8TdAnqyc8HnSkAUBq e13A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780587434; x=1781192234; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4tdlIKdiP9URP3E7PthXvnDVfvQrK6ms1wVhvnzOuYg=; b=s/ymtb9N8od+C+mrRZvPYy6xJ5QW4WERTptatVSuykoxuHxUEqYXgp7IHUEX9t9J8U OyCVnoRPqVYIX+5EshoZdKsiR850Vol8lO+H037OcrlHGNuIzBy48ZioUG5BrHkVFv2I maohH/j+Yr1+rHX2tDPUb1HvxZgSFOrbO1vkggoGJlEj7fKR4FZLACQvbdYTzrYtQRTE zHYfdZ/mLgfRtb5kmKQaWTmCkUWQ9ch3IbT5/aFoc/ek2q2elWoeUc/b5FVPpBCsq699 +3oIxPJVfZceuO5KosKFgKsDI8/67ocDwiPdq+LqVMOnH5OyXpJJRoh02cJ6icWZ8XmD OSiw== X-Gm-Message-State: AOJu0Yzu3EgWgg62Xy2c4DndEW5QlBwtlHtUJjT2rVif2S9Su9AdA5qT UOUEsrPWxw2NqAHaaDxTNzbzLknSdo6ry9RYoKqBKP/hSzlW0dMxHvZW X-Gm-Gg: Acq92OEPKhFbI369ZOXkaBQomphEjYq2ejNb370Ho6aFY8bkqWtNxjG3iOd0Kf3M/iZ 7sBzhphkWjFqJkVSR/nCSKNaqB1G5suIPIeqEMnJiM16J1AQTZ6e+ocMMKKnwIWJCblJC+XCvw1 B3b4WoC56HEic9Selr0RzPCYh+PqJ9LDttz3Kx9eWnTZYLN8uqZyEFvl7gF1l8lbvvCSlVauGW7 pxRnIWniGUs176QboOIXLTyGysgaSqCM1fyjPUiiIwCk/32M5O5z3QHsbtKCrxGg+ugwXtKqe0n xsKKi0blyC8G+/bvOhKDxIKzB/ys6KoVCUSsTg9Hu9tLTdq8GYIWcToXwZThprrjADNb7Tni8vH vhbWC1R++KO0FqX2z3DO+dt26HqGP38j8yc4DquW4zSjViP28NlFEM7wIp7wJu7XGIwmyOilff6 rkSmEeY06lQjFRlOXP/mDLqo4Q5SVtFcFOkLF+G9jlMpWav8LoXuMXC85QFlUuBLY= X-Received: by 2002:a05:600c:a44:b0:490:688b:ece5 with SMTP id 5b1f17b1804b1-490b60edf0cmr150223725e9.30.1780587434183; Thu, 04 Jun 2026 08:37:14 -0700 (PDT) Received: from ramin-pc ([178.19.210.170]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f35fb24sm18236914f8f.34.2026.06.04.08.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 08:37:13 -0700 (PDT) From: Ramin Moussavi To: Michal Simek Cc: linux-kernel@vger.kernel.org, Ramin Moussavi , Ramin Moussavi Subject: [PATCH 1/2] microblaze: wire up sigaltstack Date: Thu, 4 Jun 2026 17:37:11 +0200 Message-ID: <842268707ace03f5be69e70a30ff0de7a9a9d6ef.1780587199.git.lordrasmus@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" sigaltstack is wired to sys_ni_syscall - microblaze is the only architecture without it - although the microblaze signal delivery code fully supports the alternate signal stack: get_sigframe() picks the stack via sigsp(), setup_rt_frame() saves it with __save_altstack() and sys_rt_sigreturn() calls restore_altstack(). Wire it up to sys_sigaltstack. Tested on qemu petalogix-s3adsp1800 (microblazeel) with the uClibc-ng test suite: the five sigaltstack-dependent NPTL tests (tst-cancel20/21, tst-cancelx20/21, tst-signal6) pass; before this change sigaltstack() returned ENOSYS. Signed-off-by: Ramin Moussavi --- arch/microblaze/kernel/syscalls/syscall.tbl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/= kernel/syscalls/syscall.tbl index 223d26303..b4ce48e8a 100644 --- a/arch/microblaze/kernel/syscalls/syscall.tbl +++ b/arch/microblaze/kernel/syscalls/syscall.tbl @@ -193,7 +193,7 @@ 183 common getcwd sys_getcwd 184 common capget sys_capget 185 common capset sys_capset -186 common sigaltstack sys_ni_syscall +186 common sigaltstack sys_sigaltstack 187 common sendfile sys_sendfile 188 common getpmsg sys_ni_syscall 189 common putpmsg sys_ni_syscall --=20 2.53.0 From nobody Mon Jun 8 08:28:04 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.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 A4145349CF3 for ; Thu, 4 Jun 2026 15:37:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780587438; cv=none; b=uHRBL33SfdEJMDcYe8nNIwBjBOzDXkcd4GmKmQEKo4aKX8o49CMMY6NZ3GWDa9MgASN5J/vsPi3jSWetXl5sZeQcpls8/34ZMTiuR5jRe/IXJWSXYxna6q6sFcEDgFnX3Z9lJyWCF0qcCHqIkwgK8qwOFDv6X6E6NEInFzSSuHg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780587438; c=relaxed/simple; bh=OpxZd+0cbpUrCXOrzmTy6NNgQB2fAuCut/uN6dZZH1Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aFRI7zJ9mzL7IUpw7VxE67VLk9rg68FnEO2O0X9ciMDIQnsFEsKCzmOtfgjUlmJgvbENDC5DCkUSmFRRLb9kRgPTCI7eQfNrl020mAh+PV43X2yjqq9yd13VV5PKXXnu30Gnfy5ptnKRDRVKONAPThWvkBl3nLLHo4Bu2P58Cyo= 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=PJi4YsHy; arc=none smtp.client-ip=209.85.128.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="PJi4YsHy" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-490abf12f0fso4885125e9.0 for ; Thu, 04 Jun 2026 08:37:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780587435; x=1781192235; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ze+X1a8Qjyusvs474WrMLUT9M4HYqffWhgz2HLRlA4k=; b=PJi4YsHy+m7DKVHJrE4hl/2WJVbCi+xPjUEnaNYnLTjbPhbftAIgLASbvK6ekBu1U6 9GEph8w7eW7QYkQD6dgyWKBl/QFXLPqKFB2Xx7ds/zsdAWATEkYzIxLGN84OEmaeNOx6 ldV3d3YqI7k5rjVVhALhp1RWgWa+W2aAlrT9GyX7nytXmpNYjWZr0Wd0tygRdTplHy83 auyRx0TilGrKdrPPdSfC07OchRE8JRO7zpEYD+oYsxORt8ci4CpiVpsknN6vOOQrRVBx jNDMTBFRImwCONZZHxXn5BMKSOYPDG4+MXvAEx1aaZ1EebTtslLNAs4GFt8VX9eqtYYJ v0Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780587435; x=1781192235; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ze+X1a8Qjyusvs474WrMLUT9M4HYqffWhgz2HLRlA4k=; b=DKVGtOyyDEuNLcWwm7FRzGtlIH8DYgwNMRBGghkeeTwfPkUjWMJRhgARiYt2RPF74b ufYliBlFCUoGFPFdzHfW3LWo4Renn4l1hdEBTfogNFq9ngyTDuzIEmVyyG664kL3Bw3l 77+zOXT5IJz7n/FRJrsnLaDNSV4Zc8UT7clepC8YQL2KF+iWU2x3iTCmnaoJll2Fp+8V UTFeI6y5BUJnbJjsQl0b57fbrfXv1TEJy8RMaIIPxmiO3EEkcQgzWSpOIBaPU+vbO0ga C2eQgeaC2bEAhDYrw3oeQXqfum0vxbdu4PNffQIlzcXp3T6v5kTSMvtlQM4xGeB+Oyhv Yymw== X-Gm-Message-State: AOJu0Yyp2tkUdfgB7Vp4VySh3z9sk6fBBB6wv9d5mOd0ZqxQn2os6ZbO PC7hJNFPmX+OJJ+gCxPRhSa0BthZZMiZkSJuqVH4kLGwOdGDDi0E+J1N X-Gm-Gg: Acq92OF08nabCETY4S7HtSse3ftZJKO1Qh2rG8aiy3/gQYVnpKnKsNlPc1tzs/3KMfN 3haxVaP66YrHV9lRsDTiVUvIgo+qCTlIvkXN99JnUyD5Kr0l09i5DBSlmzDeHa1sUZmVFWalEKd JGRJ5XtV87EKbnurreWXXHDmDIUam+NNWnJgA7/LlSrIhw6+IUNk/4rmMnMja5VR0oJSYCjPTBW mapvcYl71jMLsgqeHuh1IM1OlrwTQ5DkfhZLkQ/e8K6QIlPUs4sQLHZgMuMZBkDspwlfLPjkXng Xel1B4TWBwwveiwV/OFm0/M4AxvlXxOecKH8OvxdWSozW9t3Zu7nSg2CjcifwHwg9rHjs8jG8r5 OTyR84GtBitB8tf0uKkjn+nNMdWolb1CRuvbahBN0NocZc/ppryyJgEb/kGgobGSMyqm28akDBn 8A4wodV9Pu0pqDtArMkme5eP/SKpeJ7g131oea7suB0PbwasyuSbojXYk3smwQrRw= X-Received: by 2002:a05:600c:5488:b0:489:32b:ac0b with SMTP id 5b1f17b1804b1-490bc4d2697mr71572155e9.6.1780587434953; Thu, 04 Jun 2026 08:37:14 -0700 (PDT) Received: from ramin-pc ([178.19.210.170]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f35fb24sm18236914f8f.34.2026.06.04.08.37.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jun 2026 08:37:14 -0700 (PDT) From: Ramin Moussavi To: Michal Simek Cc: linux-kernel@vger.kernel.org, Ramin Moussavi , Ramin Moussavi Subject: [PATCH 2/2] microblaze: reserve the ABI argument-home area in the signal frame Date: Thu, 4 Jun 2026 17:37:12 +0200 Message-ID: X-Mailer: git-send-email 2.53.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The MicroBlaze procedure call standard lets a callee store its incoming register arguments r5..r10 into the caller-provided home slots at [r1+4]..[r1+28]. When the kernel enters a signal handler it sets r1 to point at struct rt_sigframe, whose leading members are the siginfo and ucontext prepared for the handler. A handler that homes its arguments - which an unoptimised (-O0) build always does - therefore overwrites the start of siginfo/ucontext, corrupting the signal state that the handler and sys_rt_sigreturn() depend on. Reserve the home area by making an eight-word gap the first member of struct rt_sigframe, so the handler's argument stores land in scratch space instead of clobbering siginfo. Tested on qemu-system-microblazeel (petalogix-s3adsp1800) with the uClibc-ng NPTL test suite: tst-timer4, tst-timer5, tst-mqueue5 and tst-signal6 pass; before this change they failed because the handler clobbered the signal frame. Signed-off-by: Ramin Moussavi --- arch/microblaze/kernel/signal.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/microblaze/kernel/signal.c b/arch/microblaze/kernel/signa= l.c index c78a0ff48..df9c07d77 100644 --- a/arch/microblaze/kernel/signal.c +++ b/arch/microblaze/kernel/signal.c @@ -49,6 +49,13 @@ struct sigframe { }; =20 struct rt_sigframe { + /* + * Home area for the handler's register arguments: the MicroBlaze + * ABI lets the callee store r5..r10 at [r1+4]..[r1+28], and r1 + * points at this frame when the handler is entered. Without the + * gap those stores corrupt info/uc. + */ + unsigned long abi_gap[8]; struct siginfo info; struct ucontext uc; unsigned long tramp[2]; /* signal trampoline */ --=20 2.53.0