From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E08503CEBAF; Wed, 11 Mar 2026 15:06:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773241599; cv=none; b=CA8ukcxNKsXuy2fWeQeTJDO6haByKSzARfB8YOvpy+eWdlX0LYfCvmqZW0RiWT1D6KXx5ullfD3XAM1LBikrVG+uxEBx7/vMd2HyksphchDivyilxSzQhnPfCrgnYeZ+ZaKzeHUjeLJDgWhyYCfMdf8hMtJg/Usdb6Uhl+FSbEA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773241599; c=relaxed/simple; bh=zBo7dnZBqpPdvvQOM0M1QJsAw8E1ZGy2JgdpANolUdM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Lq2mQaksxN38WVi4wfzNL5fhO4GS5ljPdW1uUBLddOlEuDbeSTQHFzEhQ9KH2Rz8mo3+NA7PJby/ECkq3ICCo6iLdT+JQxSuUXgy8ScjIE6+NmwGW4VQhZq+GZIVuRGqZOPzJJXfYF5LlhmG7Shc0FcxxIdUVoTFRulJzxSBuE8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gxlwhJtf; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gxlwhJtf" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3DF21C19424; Wed, 11 Mar 2026 15:06:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773241598; bh=zBo7dnZBqpPdvvQOM0M1QJsAw8E1ZGy2JgdpANolUdM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=gxlwhJtffN4HWCqfjvu1OelaAxP7oGwgVBp8k3PNppJvfiXJ+kQa/xDm52HZrFCph 3icH1rgxdi+fTEFZhelwOmCvhHv5n9Opt2MHrrZ8uCNFlkhx2K7Msrw9PzUQTRxj7b /HNwyE0A8ScMtE/0sXxb9pa96FTA++2Bg7u/8gV12SUsyiEzNBZPt+ef+D/5oKmZIR wBtF0IXEtPdFaQVIXyrH+b0yd9zpz2uEhjiT1p7nzNFVFCJFFgYLiaJpebYZbWVMj9 7Lh0r04G0EysCpGg9A8MB+TXd17awvRnb74zb8iqUYg1kA4t6H0Sf+PwjNUi5yXgvL YSydxfyXY7BZw== Date: Wed, 11 Mar 2026 09:06:36 -0600 From: Keith Busch To: Jens Axboe Cc: io-uring@vger.kernel.org, asml.silence@gmail.com, naup96721@gmail.com, stable@vger.kernel.org Subject: Re: [PATCH 1/2] io_uring: ensure ctx->rings is stable for task work flags manipulation Message-ID: References: <20260311131336.197028-1-axboe@kernel.dk> <20260311131336.197028-2-axboe@kernel.dk> Precedence: bulk X-Mailing-List: io-uring@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260311131336.197028-2-axboe@kernel.dk> On Wed, Mar 11, 2026 at 07:11:55AM -0600, Jens Axboe wrote: > +/* > + * Sets IORING_SQ_TASKRUN in the sq_flags shared with userspace, using the > + * RCU protected rings pointer to be safe against concurrent ring resizing. > + * Must be called inside an RCU read-side critical section. You can make the rcu requirement explicit in the code with: ASSERT(rcu_read_lock_held()); And debug kernels will catch misuse, too. > + */ > +static void io_ctx_mark_taskrun(struct io_ring_ctx *ctx) > +{ > + if (ctx->flags & IORING_SETUP_TASKRUN_FLAG) { > + struct io_rings *rings = rcu_dereference(ctx->rings_rcu); > + > + atomic_or(IORING_SQ_TASKRUN, &rings->sq_flags); > + } > +}