From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dl1-f54.google.com (mail-dl1-f54.google.com [74.125.82.54]) (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 65CCF18A6DB for ; Wed, 1 Jul 2026 03:27:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782876444; cv=none; b=dkELudp6+jGvFDI29nbGQLsY9gBTp/49gwQ4cijydZBO8ULEkJjCjak7s3frqXONfgaiO6a1GX6ovtMtEe14+30U/AUr27fJ4e6p3pb8/Q/1tbKwvax8g+8FMj01Dfs5xbELxktNO4GE0OyFPeCoETgACVImRnttTqiolxirS9w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782876444; c=relaxed/simple; bh=w6uJpggd2cqVnat417yYxDlhCQmorhAYHla7GWhjJbQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=NMFkHEoW/4tfwL8v1oVYNNva1lg0j4n7tNiYBRjCIJZUXIi6HKUUJTj7Tr4Ixb9mEKvGDuqWg2w9BLsbUYJs4+9NToGUWpD/LrXdi+Ylc3gAiBH9bXoXTOum/fZG3GK+rm4ygWW1EByXYrxnfXsyQVc9Jt8KGsChzGnQV8z3dG4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=jjdev.com; spf=none smtp.mailfrom=jjdev.com; dkim=pass (2048-bit key) header.d=jjdev-com.20251104.gappssmtp.com header.i=@jjdev-com.20251104.gappssmtp.com header.b=CbK7iKla; arc=none smtp.client-ip=74.125.82.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=jjdev.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=jjdev.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=jjdev-com.20251104.gappssmtp.com header.i=@jjdev-com.20251104.gappssmtp.com header.b="CbK7iKla" Received: by mail-dl1-f54.google.com with SMTP id a92af1059eb24-13b2bedcf00so144911c88.0 for ; Tue, 30 Jun 2026 20:27:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jjdev-com.20251104.gappssmtp.com; s=20251104; t=1782876442; x=1783481242; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=dfP/9lqdx/Un8wwf/j5S0H3Zabu/Avogqk7M755vQso=; b=CbK7iKlaNt+WcTvN5Cbi0sVKozY0Fg6P3wk1RDSmcOsKaoh7OlzHXm2KZndijSpnP6 ofZALjjbtlAUdlq3QKPeGePMMmvfldFphPS48tOZz105Tae7kVuW7bJx2gO3JEb+VAEs Wg7cTKxkkmXFqidTzkv6FAT8ci2qaRi/WYXN0b+Vf4b1z0EleUXn50vu6vtTaU4BGLda 4PKV9GnT9CIb5J8dUUb/4DxkKujlTpizJYKmoR++t1mRm3yjK52HRAa4CNyBCEw5YptN 3YoGGyFpEAbPK9jJeBxi+Ey+lxO4fqM3MaA0fLM3F1AOuwNwTW9jTZJLtVaZ/k4HHJJ9 2zSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782876442; x=1783481242; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dfP/9lqdx/Un8wwf/j5S0H3Zabu/Avogqk7M755vQso=; b=NP4ksn0PFozDgssBmdIa96SMhaBblgxUGEkhhpX/qzn9Ls5+r/5imD0DDbyxyC3yIR Yng+RMIcyJaoh5e0DTDkhUF4VpNOc3LTRNaZCRxMXWetmHGWlY+FoClGrkqr6ywysqS/ XSXz1N/rUYKapp4hZmDEeQRQNE78sG+z5B7THACf35xDY/5Nlkk8/4h6kF5v3veTBZgg w314eKEQUZ9HEEfk3GXUlP9Z7vf1jpHiRXesfTYS2zUnzhFE6n9szMSjqNqBjBs2uagG LZsVuYnA6rMcMlw17V52UT7VVR2CGPLpdgbj7EWJsd0pJXfeisnH08LEW/cHpJgpoGjU eXvg== X-Forwarded-Encrypted: i=1; AFNElJ+8xfkKT8vCVpmScMewRzOGI5fSLUC3jEzm2xYCoyUR9zSMsRL9s9blT72GTPbQXtYzlBGXegyE3i0m0CI=@vger.kernel.org X-Gm-Message-State: AOJu0YyzRp3tgGqL+TckfsoF1/s+aTWjD7BLivlwJOVJ4u7be451apIi b2ITUB9gtuaV22mNJFRaaCPui4p15ZLS5mU5G1T4aaHV+coWjfIA5hWUyJGVQetnew== X-Gm-Gg: AfdE7cn221WIHezTRqfc7pdvGOkpGX9MvmsRs+AvScrlhpiXHd9TOf8pm95+JTD00x1 5NHARwoM1HTHuYZ1lFcHOk/LSqPcHvfrGsELOXaTfkEzO2EhfaCaCKQyJemfbw7Yq/b3IkIoaSh xLmcdIG338YkATIcmwRNXujkyyGmVqJ0R087hAGHjkEFMZVIvTnBCy7OWvVvBekiawWs+C2W7TZ 6E92OMn8117wJ5M5CWS53FTdCkllf7KYts6fqyNQbqm+ltwVVtNp2xqsbVOlbFncmP/Aucx3zSo kRt7lcOoWuraozp2SuX9UhklfbN4lTb6jRRqROUqv6l7CxbDjKM9RKQWsgtIhvGbOhFWVjdrA1J pRJiv9R5WwQH11IHcymUD0Fp16+we51bRzzLtXNVM2/66dn4+lmA1cweptC9ZB6JDEtB8Rb4RU+ woRkkpdQqdPw== X-Received: by 2002:a05:7022:fa02:b0:139:eee5:792b with SMTP id a92af1059eb24-13b2e27fd6dmr3322030c88.9.1782876442422; Tue, 30 Jun 2026 20:27:22 -0700 (PDT) Received: from jjbox.local.ftr ([47.151.31.186]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-13b309476e9sm6706762c88.8.2026.06.30.20.27.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 20:27:21 -0700 (PDT) From: John de la Garza To: gregkh@linuxfoundation.org, jirislaby@kernel.org, john@jjdev.com Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] tty: tty_jobctrl: use guard()s in tiocspgrp() Date: Tue, 30 Jun 2026 20:27:17 -0700 Message-ID: <20260701030139.3189030-1-john@jjdev.com> X-Mailer: git-send-email 2.54.0 Received: from jjbox.local.ftr ([47.151.31.186]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30ee324b197sm13240161eec.26.2026.06.30.20.01.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jun 2026 20:01:43 -0700 (PDT) X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Convert the manual spin_lock_irq()/rcu_read_lock() nesting in tiocspgrp() to scoped guard()s. This drops the out_unlock and out_unlock_ctrl labels and lets the error paths return directly. No functional change intended. Signed-off-by: John de la Garza --- drivers/tty/tty_jobctrl.c | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/drivers/tty/tty_jobctrl.c b/drivers/tty/tty_jobctrl.c index ef8741c3e662..583e2412a47b 100644 --- a/drivers/tty/tty_jobctrl.c +++ b/drivers/tty/tty_jobctrl.c @@ -506,29 +506,23 @@ static int tiocspgrp(struct tty_struct *tty, struct tty_struct *real_tty, pid_t if (pgrp_nr < 0) return -EINVAL; - spin_lock_irq(&real_tty->ctrl.lock); + guard(spinlock_irq)(&real_tty->ctrl.lock); if (!current->signal->tty || (current->signal->tty != real_tty) || - (real_tty->ctrl.session != task_session(current))) { - retval = -ENOTTY; - goto out_unlock_ctrl; - } - rcu_read_lock(); + (real_tty->ctrl.session != task_session(current))) + return -ENOTTY; + + guard(rcu)(); pgrp = find_vpid(pgrp_nr); - retval = -ESRCH; if (!pgrp) - goto out_unlock; - retval = -EPERM; + return -ESRCH; if (session_of_pgrp(pgrp) != task_session(current)) - goto out_unlock; - retval = 0; + return -EPERM; + put_pid(real_tty->ctrl.pgrp); real_tty->ctrl.pgrp = get_pid(pgrp); -out_unlock: - rcu_read_unlock(); -out_unlock_ctrl: - spin_unlock_irq(&real_tty->ctrl.lock); - return retval; + + return 0; } /** -- 2.53.0