From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f73.google.com (mail-wm1-f73.google.com [209.85.128.73]) (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 CB50B3612FA for ; Mon, 23 Feb 2026 10:08:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.73 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771841318; cv=none; b=O8mN0Bv3drF1omHu0O7HWW3tJFNkQxHn4Q29M0dS//S49FZAG7MNOTZ9dgZTHzUN2+2Lko4kLh8ZhAa8jdrzYbou54X884abgz+UfUiZAKGq6/5gNsL4OCzR9lCPmeqY7FoOLVuMG825ciJmfKSlDn1BOz6GmF2cTyH8X04WeYk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771841318; c=relaxed/simple; bh=36uRj/yGgZFq6zKe4ExA/GGUiwSeasAUQSZStEmKulI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=UqmqMW69EC/+sFK+1yMeDHz4lrCOMdJqzm3IOvPV5Nd1aGZTgVmitkxanZUkrtQNVgx5+Q9w4Gs1Uet1PX+0tnMtK+u9XQscSn1+5z4TOUwCzFTbPeXAzglUVyd3UHCA2reZ1VK+PlidcTQwoENI1pEAWcfpK5knaMvig/uHimw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=x9Z6mM9a; arc=none smtp.client-ip=209.85.128.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="x9Z6mM9a" Received: by mail-wm1-f73.google.com with SMTP id 5b1f17b1804b1-4836ff58111so53233725e9.1 for ; Mon, 23 Feb 2026 02:08:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1771841315; x=1772446115; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=iqjAQx12kO7yn9LdoidneoYk/xISJkEpOFtnTwZu1xA=; b=x9Z6mM9aUeW6p7rPzDFLrbHskPS1OgEQPZTJU4Gz0DMBwWVYAuwnbvkxfrobD1OCwG 7XoaFbhR4FUyKfJvovGYgqZbb1TDQgaSSixyxrjnNoWALut6fuVbuQPdo/k9gYZ9AipO ptRu/3ovTplJFzv8xqt7V9nnD8chXi+DsUYPn848lFwin9I+sMTHnYIp9QZCxpb2Xx14 dZg4xv5ZU6sxfL5DUPekaCcefD+vqBivsri52kZk/UJ4ImZQkhZ5KJLOilsz5iLhbAG1 aF/GMOk++n6EjwCao3I/VZC/w26qoX0BZ8ZEncdHeMLGevBN8Of/okYdea1JHYsK/Fce G0DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771841315; x=1772446115; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iqjAQx12kO7yn9LdoidneoYk/xISJkEpOFtnTwZu1xA=; b=a4UdievoXy5gbYwGC5Z+jSbDu9qUW2ZYHqSxEpDgYXl2U8RAEUCb1y7jJ94om/OP1a SWHE69JvJk9439iDonLMbbFu0hMwTBlFSovUR0rjzroKnPjYoHDDx6Pu1JjbCHIUCvsK FfriOrXsrs0PBzg6xTD9w9S6RJuQKRQerKiel70OZiLQLgxUTMPlFKpFIQ9/8goQJBnc QWUDNxTsAHjOikKrd1ECE61EriZzhJeRZ5AMnJHQsN3XoWVxE9w9MS12RobhPtEwmyYa CfnIMXqHd6SfPrBSYatjVCVA/tI1LKoTpVq5x8mXKSimkBV1XzyI7abKNmshCwNaF1JX 9tHQ== X-Forwarded-Encrypted: i=1; AJvYcCXQjG20PFNMmK18hxfmMSyBkujObXs/PyYMl3sPkYCE2EYMeku6HIY/chrLKR9ym2S5S/RoOYmY614=@vger.kernel.org X-Gm-Message-State: AOJu0YzRyHMFO8ND3MoDZPSbVMd4zlV3vamJ5w7c6KSmpC9KJemTlcrm qnYQTiVbsTvokG9J1HGg6M3PvGyutdzNcMVG9NtFWT3954eUTsmlt2g6fDk/bP4ueaxRmxqkBfj KtgbHrH4NAkjiKSuxmw== X-Received: from wmqb9.prod.google.com ([2002:a05:600c:4e09:b0:483:6f09:9913]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a05:600c:34cb:b0:479:1b0f:dfff with SMTP id 5b1f17b1804b1-483a95bef2amr119187925e9.10.1771841315177; Mon, 23 Feb 2026 02:08:35 -0800 (PST) Date: Mon, 23 Feb 2026 10:08:25 +0000 In-Reply-To: <20260223-clk-send-sync-v5-0-181bf2f35652@google.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260223-clk-send-sync-v5-0-181bf2f35652@google.com> X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=1369; i=aliceryhl@google.com; h=from:subject:message-id; bh=36uRj/yGgZFq6zKe4ExA/GGUiwSeasAUQSZStEmKulI=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBpnCcgUsqqcMYjdDm7UHv8I5p4UEWxxC0fGy4J5 el4buZGr6+JAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCaZwnIAAKCRAEWL7uWMY5 RnnuD/9/liVA8UJG+WSn8bROvceJNTmyceJ6rXLYcVmGqpJOk4jTuFu1rTGNw4NmJZwjyRkr6f3 nqcjfE/k6I2/OOh5eKr4nunoY0BxzZ2n7VLcRuKU1sBKTcpCFOmLEhsYEC7BWYW8oROD3oXMJAJ VxH/5YsIZeZQYjVrRlwqkxLxT8qV0DFd5RJLhUdeaHQpwTf1lRN6PaMSkREkvM40Xamh+21zS+J /Wswc5gMzYG/bdjOQmoaunIqrs+Z6VShwf8+lVxCgh/KdXF9TwelJEw12IOpERw881MJNuGLNHW 2SnNPNWSRArfppwbyMvO+aJsiUvW5YASeJIxzeRzzppHVhDonRCKJZ98t+XrpijkTAM1u03vJJx zQWGRbXbhl8VkB913eXVDc1GozBbpqpkPcm+W2UKiqIu8IYW+DgCT0CfDPxeh+57A9oKa3AwTY/ YBTCYD2KAjkSIK7iWmd0XpCTw+Q/f2Bkrh7krhQ8PcUpi3CTNS9Dkry8ZWuduVf9A4cYQA+dI/g QTTtkf9I/u9r30jM37oq4Lp3U1UQj+21ngcbg8SuNWbDd3UuotqbNK7PXZdfFSw0SP3uun00I38 ADs08uf+SJ2rNSKDWsLURv6SjHm5roDE/3vrVODsntZ10lSlAlopUKQv0b2zGlHBnxxk8ijXqiN u67oZuhxYAK4CgQ== X-Mailer: b4 0.14.2 Message-ID: <20260223-clk-send-sync-v5-1-181bf2f35652@google.com> Subject: [PATCH v5 1/3] rust: clk: implement Send and Sync From: Alice Ryhl To: Stephen Boyd Cc: Michael Turquette , Maarten Lankhorst , Maxime Ripard , Drew Fustini , Guo Ren , Fu Wei , "=?utf-8?q?Uwe_Kleine-K=C3=B6nig?=" , Michal Wilczynski , Viresh Kumar , Miguel Ojeda , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich , Daniel Almeida , linux-clk@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-pwm@vger.kernel.org, Alice Ryhl , Boqun Feng Content-Type: text/plain; charset="utf-8" These traits are required for drivers to embed the Clk type in their own data structures because driver data structures are usually required to be Send. Since the Clk type is thread-safe, implement the relevant traits. Reviewed-by: Daniel Almeida Reviewed-by: Danilo Krummrich Acked-by: Viresh Kumar Reviewed-by: Boqun Feng Reviewed-by: Gary Guo Signed-off-by: Alice Ryhl --- rust/kernel/clk.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rust/kernel/clk.rs b/rust/kernel/clk.rs index 4059aff34d096264bc7f3c8bfcb39eb3f42725be..7abbd0767d8cff9f2561d1783a9a1d774a96d1fc 100644 --- a/rust/kernel/clk.rs +++ b/rust/kernel/clk.rs @@ -128,6 +128,13 @@ mod common_clk { #[repr(transparent)] pub struct Clk(*mut bindings::clk); + // SAFETY: It is safe to call `clk_put` on another thread than where `clk_get` was called. + unsafe impl Send for Clk {} + + // SAFETY: It is safe to call any combination of the `&self` methods in parallel, as the + // methods are synchronized internally. + unsafe impl Sync for Clk {} + impl Clk { /// Gets [`Clk`] corresponding to a [`Device`] and a connection id. /// -- 2.53.0.345.g96ddfc5eaa-goog