From nobody Sat Jul 25 18:05:52 2026 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (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 875313B52F8 for ; Wed, 15 Jul 2026 05:21:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784092888; cv=none; b=CxdLhW9ZN2sHo9LicmRaYOg+SOA/dHYCcFXKXfkSRIq9UQb+NXqWbNUx3Kq0r9UqJ888gCbV1hxkMAHfUPZUX5XzsqSeXl6kqQZHNihtVcuhcbWgsb9/xNQfCDLU5Z4JK2QDJWxsRcodFVIMBOhJbVcCEitfWyZasjZI2AFwxWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784092888; c=relaxed/simple; bh=QAy3B3MklhFRzHR5NCSvyukg6irF2NiZNYxJpFKqBwU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=i81GD2jAibT3BDvksWUqjqx3cK2U254fndjB8pn9MBNEZf+TMJ0M39k4Ek8/DJfaEEnA/jM/dbqhY1fOFcC0PMQrSllb+1+HZi3+UBljFriuwXpa/8L8dhKClNpGOqJq+Y4pJTH/6GrvOdwhb86s8x7NwiNeoK4J9eW1B83rhHs= 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=KN3ZqK/K; arc=none smtp.client-ip=209.85.216.42 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="KN3ZqK/K" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-381018b9375so5654204a91.0 for ; Tue, 14 Jul 2026 22:21:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784092887; x=1784697687; 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:content-type; bh=xva9OEHtElI637gwa1y8PL7T5tTmT5JPvH9nn3h7WxM=; b=KN3ZqK/KEvKFR3YiDsKKJvcp/Az5Y/jLHDBXsCFVtvBn5aWnsalxjeEmRNZ5k4rWqa TgICjk9W6xtgmkH0kUWt/LwVjevWsrZP9emTXmCzL1hcXt6YjHGF7XS5i3W3UQN+kzSI vwxzIkEoVjZv7LtdLD5CSJl+PrGsNB3c8ALjm8ICkAFbviaq4tqJCISR3Zdfj3KVSoqZ oHqOme9LtjAGQMrL2OXTx+4AmZhEmRJu5D8wRqQ175bTwEcXh3hZGE/baDacvCHz7DiQ qCo7vXkoWyyDACT4us5LNzmwe5EGYElYii/K4nH8oCq1r/w2AEiEIJsXOJp92BSDZdOC YqXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784092887; x=1784697687; 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:content-type; bh=xva9OEHtElI637gwa1y8PL7T5tTmT5JPvH9nn3h7WxM=; b=Car+YcNskwjWbCnUqglyp8JYqJn/x4rlbx18UwyIe3CFWjjBRNpXM29QW5JabDqlIY BVl4aw8185CL/L8EXWM/KbFVPwB7LIN48xesGmQXWo/LRnqD2VLudvcnEupLN1fXb1vv O+OJg7O5EW1ukDWGVObZ4Qtz5o8y+FiCHGxCwTkIzcQJ73KHBeyFzNw/DLpn10eh2h1E LTs+HCDI1fhTUFK6H7QyvI2hpt8eRY8DyNKFgIxlHpjGdZPnmVbtXd2gDC4fytEpqfGi E2a5iSm6Z80AbX561HhCKvEgZFRZYjQOmK3bd/ZJl9V3IFyGwxJGjILSQAqzwzgjMQJg EFRg== X-Forwarded-Encrypted: i=1; AHgh+RoE0IV2Q0vwK0+Oo90+hjUpAUfyHm+syW1m86kNi7c2azcrSbcHRssGEPV8BhrQC4G+icaI0yXWidd2+Vk=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4St4nG2gQklUHpTyiNAXHGGVtmhlXAZTxE/3jT5HTi++/dcZG QOM3PRoar7iH1Gm44Ph19/WuKROdILtvR07uadCe6m0zHY/hVD9dshPe X-Gm-Gg: AfdE7cn6q/12lEmJWsNgoUdTeA9Nw/tuVSUYqY/hHhJUCyxZIJc0/RuhBZShAyW00zK KH9XTIanCQzHZttiYSYNERJ4wxGq2AhIi0WaHhl8CKUIhdkGKkbiWH23ofLm6p8VPLhpJ15JAI8 67lZDAC1laxLxGaCmHZXPLy/0KoYAG6rgtqTOzm+ebftYax6xf9Glng5jPc9LwOumpZJB3gSZYI ExChxlljQN3haeUvaOstuyP78KY4Dxwrx1qNZkxh0zg9S6oyOQaLbmGVFRTiBr4zDW60gwmpUox +X7mdBJkFt5VxuKRchYDPNOMeQPgdGN3DK+q9nrxPCCf3inbdg65tNcmDNDEv4DXJWfaOHiIUpQ XtynVouCsy0hfPXaVEdEwqMQqbIZC09NZvrYHkxrvwm0vH/2MeX5H5DT5ICXKwdUUbG3hliKUGm uJHCvBsg2S9EWFZxFiKg4FeWH/icLFLwIJYOY13R5PWBR6Wj8= X-Received: by 2002:a17:90b:380a:b0:36d:b9c5:e8f6 with SMTP id 98e67ed59e1d1-38e2a0016a6mr1302665a91.19.1784092886758; Tue, 14 Jul 2026 22:21:26 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38e1730acfesm2419782a91.14.2026.07.14.22.21.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jul 2026 22:21:26 -0700 (PDT) From: phucduc.bui@gmail.com To: Mark Brown , Greg Kroah-Hartman , rafael@kernel.org Cc: Danilo Krummrich , linux-kernel@vger.kernel.org, driver-core@lists.linux.dev, bui duc phuc Subject: [PATCH] regcache: Warn if regcache_sync() is called in cache_only mode Date: Wed, 15 Jul 2026 12:21:00 +0700 Message-ID: <20260715052100.24983-1-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 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" From: bui duc phuc Calling regcache_sync() while cache_only is enabled is invalid API usage, since writes are intentionally kept in the cache and cannot be synchronized to hardware. Document that callers must disable cache_only before calling regcache_sync(), and reject incorrect usage with a WARN_ON() and -EINVAL. Signed-off-by: bui duc phuc --- drivers/base/regmap/regcache.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index 96cdae25b9c4..d786cc8bf4d8 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c @@ -397,6 +397,10 @@ static int rbtree_all(const void *key, const struct rb= _node *node) * volatile. In general drivers can choose not to use the provided * syncing functionality if they so require. * + * This pushes cached changes made while cache_only (e.g. suspend) down + * to hardware. The caller must clear cache_only first, or writes will + * only update the cache. + * * Return a negative value on failure, 0 on success. */ int regcache_sync(struct regmap *map) @@ -411,6 +415,9 @@ int regcache_sync(struct regmap *map) if (WARN_ON(map->cache_type =3D=3D REGCACHE_NONE)) return -EINVAL; =20 + if (WARN_ON(map->cache_only)) + return -EINVAL; + BUG_ON(!map->cache_ops); =20 map->lock(map->lock_arg); --=20 2.43.0