From nobody Sun Feb 8 23:03:50 2026 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (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 718C739A7F7 for ; Fri, 16 Jan 2026 18:47:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768589263; cv=none; b=W+tbv+DR8clY18jwLsEkfAo2QTsOdvEgYQtummgUsF889KITu0tcrqyoIxMDD39rk9mrws7Mdh0N3ZiEOfDMvVehxOkQYX24qfBtWMc+xHkCDtN9yLarYlEXYOxlmanRKqc0VZLaGfS43OmIhecIiF1EqS2pqZPEh/aIw2OidrU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768589263; c=relaxed/simple; bh=XxNX360PZ31DvDwTv8LH/6CSxpDwbOOmonqAqKS/KEc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UyK+rouVri9kznBzEcbaElDrIbkprDU9SWA1RcPvJkKPX6I88ui4mJMWVI5bQGA88xp1brAxdW5xnKhvprBB4xQDId44slyW4AW2k0m4dLCN4qSP558CHLD+bOjHjeagPwO8SB+DyYq2jNrfwiJeJfyspQRV6wX41iYPtPxp3co= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=fXW6fLtu; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="fXW6fLtu" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1768589261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YTGhk+hV+F1CSgbBLuiGAGbMn3uvOBxQPXGYGDZ20m8=; b=fXW6fLtu58VHQlsFwTDccjjt8Ufhv0hqmc/J1KvLSTs1VabOYaOJJPo2k8zQE4T6uEX1r4 3LWX8zhNryDTdJBZQmvFjK5upaed9dnAKE88iBi+K2f2vivbe/fUD2BrdqD+9eCchhQo4Z PRiqObryqXh+CpStVfwX7+ghUi8wSzQ= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-70-q6go9SCgPXmf5qQLPBePGw-1; Fri, 16 Jan 2026 13:47:37 -0500 X-MC-Unique: q6go9SCgPXmf5qQLPBePGw-1 X-Mimecast-MFC-AGG-ID: q6go9SCgPXmf5qQLPBePGw_1768589254 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1331918005AE; Fri, 16 Jan 2026 18:47:34 +0000 (UTC) Received: from p16v.luc.cera.cz (unknown [10.44.34.71]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 5CE961955F67; Fri, 16 Jan 2026 18:47:26 +0000 (UTC) From: Ivan Vecera To: netdev@vger.kernel.org Cc: Alexander Lobakin , Andrew Lunn , Arkadiusz Kubalewski , Conor Dooley , "David S. Miller" , Eric Dumazet , Grzegorz Nitka , Jakub Kicinski , Jiri Pirko , Jonathan Lemon , Krzysztof Kozlowski , Leon Romanovsky , Mark Bloch , Michal Schmidt , Paolo Abeni , Petr Oros , Prathosh Satish , Przemek Kitszel , Richard Cochran , Rob Herring , Saeed Mahameed , Saravana Kannan , Tariq Toukan , Tony Nguyen , Vadim Fedorenko , devicetree@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org Subject: [PATCH net-next v2 09/12] dpll: Prevent duplicate registrations Date: Fri, 16 Jan 2026 19:46:07 +0100 Message-ID: <20260116184610.147591-10-ivecera@redhat.com> In-Reply-To: <20260116184610.147591-1-ivecera@redhat.com> References: <20260116184610.147591-1-ivecera@redhat.com> 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 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 Content-Type: text/plain; charset="utf-8" Modify the internal registration helpers dpll_xa_ref_{dpll,pin}_add() to reject duplicate registration attempts. Previously, if a caller attempted to register the same pin multiple times (with the same ops, priv, and cookie) on the same device, the core silently increments the reference count and return success. This behavior is incorrect because if the caller makes these duplicate registrations then for the first one dpll_pin_registration is allocated and for others the associated dpll_pin_ref.refcount is incremented. During the first unregistration the associated dpll_pin_registration is freed and for others WARN is fired. Fix this by updating the logic to return `-EEXIST` if a matching registration is found to enforce a strict "register once" policy. Signed-off-by: Ivan Vecera Reviewed-by: Aleksandr Loktionov --- drivers/dpll/dpll_core.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/dpll/dpll_core.c b/drivers/dpll/dpll_core.c index f2a77eb1b9916..8616d6285c646 100644 --- a/drivers/dpll/dpll_core.c +++ b/drivers/dpll/dpll_core.c @@ -161,10 +161,8 @@ dpll_xa_ref_pin_add(struct xarray *xa_pins, struct dpl= l_pin *pin, if (ref->pin !=3D pin) continue; reg =3D dpll_pin_registration_find(ref, ops, priv, cookie); - if (reg) { - refcount_inc(&ref->refcount); - return 0; - } + if (reg) + return -EEXIST; ref_exists =3D true; break; } @@ -244,10 +242,8 @@ dpll_xa_ref_dpll_add(struct xarray *xa_dplls, struct d= pll_device *dpll, if (ref->dpll !=3D dpll) continue; reg =3D dpll_pin_registration_find(ref, ops, priv, cookie); - if (reg) { - refcount_inc(&ref->refcount); - return 0; - } + if (reg) + return -EEXIST; ref_exists =3D true; break; } --=20 2.52.0