Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2220426/?format=api
{ "id": 2220426, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2220426/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260407083247.831143104@kernel.org/", "project": { "id": 26, "url": "http://patchwork.ozlabs.org/api/1.1/projects/26/?format=api", "name": "Netfilter Development", "link_name": "netfilter-devel", "list_id": "netfilter-devel.vger.kernel.org", "list_email": "netfilter-devel@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260407083247.831143104@kernel.org>", "date": "2026-04-07T08:54:38", "name": "[05/12] posix-timers: Handle the timer_[re]arm() return value", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "e2f05d2b14e9886ec3c38758ce60efe2644698e4", "submitter": { "id": 92397, "url": "http://patchwork.ozlabs.org/api/1.1/people/92397/?format=api", "name": "Thomas Gleixner", "email": "tglx@kernel.org" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/netfilter-devel/patch/20260407083247.831143104@kernel.org/mbox/", "series": [ { "id": 498944, "url": "http://patchwork.ozlabs.org/api/1.1/series/498944/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netfilter-devel/list/?series=498944", "date": "2026-04-07T08:54:12", "name": "hrtimers: Prevent hrtimer interrupt starvation", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498944/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2220426/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2220426/checks/", "tags": {}, "headers": { "Return-Path": "\n <netfilter-devel+bounces-11647-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "netfilter-devel@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=Dc+oyp3H;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=netfilter-devel+bounces-11647-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"Dc+oyp3H\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201" ], "Received": [ "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqg7q1qsfz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 18:57:43 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id A8D0A305E128\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 7 Apr 2026 08:54:42 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id EE36039B4BF;\n\tTue, 7 Apr 2026 08:54:41 +0000 (UTC)", "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 6C1B039A800;\n\tTue, 7 Apr 2026 08:54:41 +0000 (UTC)", "by smtp.kernel.org (Postfix) with ESMTPSA id B3577C116C6;\n\tTue, 7 Apr 2026 08:54:40 +0000 (UTC)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775552081; cv=none;\n b=pnSfIM0qHDT+gmIXKOekO1B7V2wsG9INdCW27+5QXskyUez5ctP0QZ7vDWaJ5tl72QZHXXZ1uiEs0pFmRqJK+O91IN3fT4pt16fjkSsfCv37ccKOQbXsvMuMbMLAzQet+UkyH0y4jt986rfO4gaV0XMUw6w2nbdNveM2uRyyCuE=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775552081; c=relaxed/simple;\n\tbh=UL+6LCFKPk7yFRK5fJynV3ISPtCdF2Q7VprzdKpG5nY=;\n\th=Date:Message-ID:From:To:Cc:Subject:References:MIME-Version:\n\t Content-Type;\n b=XJinogf5mieRT8HeTB34aYb9g8qBj31p4O9yWrLowDKfBSpYOgu9N5lndr3OmOSLB3nkeAmng/drdZToeEtnlbnMOoHd7yoGIaO+h3SeoKolcxq80BoryjZJc2FBGPttnmUoBYRL09klh1CQMclZ9EdXTwhgbsmaPYz2iSnpq/M=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=Dc+oyp3H; arc=none smtp.client-ip=10.30.226.201", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1775552081;\n\tbh=UL+6LCFKPk7yFRK5fJynV3ISPtCdF2Q7VprzdKpG5nY=;\n\th=Date:From:To:Cc:Subject:References:From;\n\tb=Dc+oyp3HDzq2W0AHQxB+zsNiplHE4y7RN7NfWpV/DCznDKnLMSQoWq+MVs9GN00i2\n\t opR4INWui9lEgMqTXmR1Wy0Hyq75xHwCuQHQzImwLD9EcSWfw0VAWXreqxOmXgh/dV\n\t rdyQnC9PpKDAoPf5P7f1IX0/LKeswUNawNvRa4bdrMDdCRZQ05MjKxtSBRYoICXPl4\n\t ysgI13NMqf2MFyEk1AUXbxA1MN9Bjci2QkTtBnfZgWK28EKi+F8zBNbdYSfQ8CG0b4\n\t e/VoJ3R6R/945cQUaZjaqyPOWQRkgM6U19oZNIi3+sO2cJH1nvIV49ex/x1XNiTTmA\n\t VkVtbr80y39TQ==", "Date": "Tue, 07 Apr 2026 10:54:38 +0200", "Message-ID": "<20260407083247.831143104@kernel.org>", "User-Agent": "quilt/0.68", "From": "Thomas Gleixner <tglx@kernel.org>", "To": "LKML <linux-kernel@vger.kernel.org>", "Cc": "Anna-Maria Behnsen <anna-maria@linutronix.de>,\n Frederic Weisbecker <frederic@kernel.org>,\n Calvin Owens <calvin@wbinvd.org>,\n Peter Zijlstra <peterz@infradead.org>,\n Ingo Molnar <mingo@kernel.org>,\n John Stultz <jstultz@google.com>,\n Stephen Boyd <sboyd@kernel.org>,\n Alexander Viro <viro@zeniv.linux.org.uk>,\n Christian Brauner <brauner@kernel.org>,\n Jan Kara <jack@suse.cz>,\n linux-fsdevel@vger.kernel.org,\n Sebastian Reichel <sre@kernel.org>,\n linux-pm@vger.kernel.org,\n Pablo Neira Ayuso <pablo@netfilter.org>,\n Florian Westphal <fw@strlen.de>,\n Phil Sutter <phil@nwl.cc>,\n netfilter-devel@vger.kernel.org,\n coreteam@netfilter.org", "Subject": "[patch 05/12] posix-timers: Handle the timer_[re]arm() return value", "References": "<20260407083219.478203185@kernel.org>", "Precedence": "bulk", "X-Mailing-List": "netfilter-devel@vger.kernel.org", "List-Id": "<netfilter-devel.vger.kernel.org>", "List-Subscribe": "<mailto:netfilter-devel+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:netfilter-devel+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8" }, "content": "The [re]arm callbacks will return true when the timer was queued and false\nif it was already expired at enqueue time.\n\nIn both cases the call sites can trivially queue the signal right there,\nwhen the timer was already expired.\n\nSigned-off-by: Thomas Gleixner <tglx@kernel.org>\nCc: Anna-Maria Behnsen <anna-maria@linutronix.de>\nCc: Frederic Weisbecker <frederic@kernel.org>\n---\n kernel/time/posix-timers.c | 22 +++++++++++++++++-----\n 1 file changed, 17 insertions(+), 5 deletions(-)", "diff": "--- a/kernel/time/posix-timers.c\n+++ b/kernel/time/posix-timers.c\n@@ -299,6 +299,8 @@ static bool common_hrtimer_rearm(struct\n \n static bool __posixtimer_deliver_signal(struct kernel_siginfo *info, struct k_itimer *timr)\n {\n+\tbool queued;\n+\n \tguard(spinlock)(&timr->it_lock);\n \n \t/*\n@@ -312,12 +314,18 @@ static bool __posixtimer_deliver_signal(\n \tif (!timr->it_interval || WARN_ON_ONCE(timr->it_status != POSIX_TIMER_REQUEUE_PENDING))\n \t\treturn true;\n \n-\ttimr->kclock->timer_rearm(timr);\n-\ttimr->it_status = POSIX_TIMER_ARMED;\n+\t/* timer_rearm() updates timr::it_overrun */\n+\tqueued = timr->kclock->timer_rearm(timr);\n+\n \ttimr->it_overrun_last = timr->it_overrun;\n \ttimr->it_overrun = -1LL;\n \t++timr->it_signal_seq;\n \tinfo->si_overrun = timer_overrun_to_int(timr);\n+\n+\tif (queued)\n+\t\ttimr->it_status = POSIX_TIMER_ARMED;\n+\telse\n+\t\tposix_timer_queue_signal(timr);\n \treturn true;\n }\n \n@@ -905,9 +913,13 @@ int common_timer_set(struct k_itimer *ti\n \t\texpires = timens_ktime_to_host(timr->it_clock, expires);\n \tsigev_none = timr->it_sigev_notify == SIGEV_NONE;\n \n-\tkc->timer_arm(timr, expires, flags & TIMER_ABSTIME, sigev_none);\n-\tif (!sigev_none)\n-\t\ttimr->it_status = POSIX_TIMER_ARMED;\n+\tif (kc->timer_arm(timr, expires, flags & TIMER_ABSTIME, sigev_none)) {\n+\t\tif (!sigev_none)\n+\t\t\ttimr->it_status = POSIX_TIMER_ARMED;\n+\t} else {\n+\t\t/* Timer was already expired, queue the signal */\n+\t\tposix_timer_queue_signal(timr);\n+\t}\n \treturn 0;\n }\n \n", "prefixes": [ "05/12" ] }