From nobody Sun Feb 8 15:58:40 2026 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 84C9B2BEFE3 for ; Thu, 18 Dec 2025 02:59:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766026787; cv=none; b=RD7hxSf4zPFWfL4ofkQOyoxZt7N+q8SqFBlu0Ckxgy42U789GhmC6CeWswTrbJ9tJODIHdpIbaoxHI/FFzIvgYoNRrYIm+mKswVYqwj8DkSqXWRfObf7pKFWwctJU+50qbAnm4JEs+3rnBn2vBGOpuobKIIhuGYdwc5w+lx4AXo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766026787; c=relaxed/simple; bh=WyvPve5LAklKO1fh6O+R/c1D7j2AerWk5OXJqsIwmsw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZR9HkvMtJj2SsFl+4yP4Y2rcD4R5a3TeyO0508gPMdIPBvvzUioek0FyBmHkUmtngC9KOUoz+y/81I1khuM+ZGBsHr0V3kjn2x2kHjykAjDUBzHDTVhuy+RXpOPFirhWH7Yl9rKlCJA3bgFE7Oby652jrwmA+Y4vtZmQ59tJPNw= 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=HR68igvG; arc=none smtp.client-ip=209.85.210.179 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="HR68igvG" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-7d481452588so15908b3a.3 for ; Wed, 17 Dec 2025 18:59:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766026786; x=1766631586; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7Ue5x/b3wE4VR3QWVURKRvM1AZio0rSlcZc+u9XE/0k=; b=HR68igvGDvwNSFIYkmtguxQl1/Vx5asDPIGt5adBK10eJS/PxJ0oXVlYENeO69BtK0 GtsPMRqLgkbX5jzqOlW/fAWTsbcNyEDGfygWzUxXgoDKxSo09KwQTxrnm3YVkh1/2wwL 2GaB7VMS5ZnCWU3PJXmEorAw/FD0c8nzUJZUd69fxBI2adAJjoXQOXtj6npIAotH6jZA 5bf9vd4SlHn+kGbXJYs8b1Hk6MRNPvKCYv7GiaEB3lLkgKKA/QX8JZM4MZo193YHIz6k 7VIMyaHuGk8S7ROoebHc188c4bMXtIGTNR9oG48A4lMTcLzeMG5S+snbpz1zW8Ce1AHp G30A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766026786; x=1766631586; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7Ue5x/b3wE4VR3QWVURKRvM1AZio0rSlcZc+u9XE/0k=; b=LkGH3ECEmQrPFK0hzhA1El1YpRkjcR1c1JzNMzlCcmcJ5KWd17fdirz/ixozG9Fkw/ O/lP8B/HBQO06lVpgFQcNEebNznxFnhR5BxxBONXEy3Uc5ug6Ac13zZnAWdTJpJjrK4C GBuGOX1MqzGdyE9vm16QGgpZIUGx+13KYE/Hj4t4Wt1zTPBGAEYtkY4vCRVYDGODJCsC hvc5BRKmV1dUO5vh10onz3pcZ+nBBuijcBPipNFlp2cyEmZUtR+NcCGn+HzfNirLvNCc eoYtJagDdFZWx+MMPt7bILokgvXZvc8CbTVCwYB0pmlNQFm8EjIUxjyLRDYpPXjixTKQ jbNw== X-Forwarded-Encrypted: i=1; AJvYcCUK0ig05aMyf4rahZ82pxsg6173FWbe14LhqyuYmvNdkIHS7+gDos4R1jgBfNbKkvBm5CvaDI0KH8hG8d0=@vger.kernel.org X-Gm-Message-State: AOJu0YyYOKoUXgGPkQgAFwsmrnBTqAqiNicn2snbZgh/Y95x7G0SFsdp T51QM9eGatUVniQC1UWY5pwD0dTlxpdcfR49yrxIG5ndTAcdaxpKBLyG X-Gm-Gg: AY/fxX4ya161veil8mclLo9kL3hwa+DpWzmlwFX1Cvie7SPFY4HTYMZG3KT3eYObrDU hkqCRg19V1QW2VpDeIIuZ84CkoOdeTRkX0ddOduPjrjKYoSOxv9JEcyn2l6M+0EZAji8mY89etK 5xMGfv8KFpBC/bsSn+RH5e/ddEjMjYxypGfv6cISSS/ikGmBXazdTlnTPSfMiqQOpNeHpbI+0Vv kCf4BaqazlnjUXQzuKMBYu+yRvqLRFU7eCyK0dVjns4EiAuc5WyN9vGG8mwyM85n4ce9BxugX7n X3kxSpulGX5Jjk1SnZLTiw+HSuRxhiYOfutqkHRS6gbcbS+mWgYapyW9TLUXCO0HWBcK58wefzd SIK6Ccry1lsdYMhIPsPWyX9CbkxwmmeWq/qaH9W/P/VUD6Q/RsflLQP+FMvALvi37B/d08UhyGu lt4m8akiuoDH2fulHCmaxQgUdQqHqHJ2NW6iLx5IRB1fJkx7uFCJ1qn8yXn/Y+ff26IuPY7jlv X-Google-Smtp-Source: AGHT+IGeJ+I3A3UGPKjnq4HN6ND6861/cZnOg8n9srw8IdydNPC11hCj3XY9cF8qTnRop/yukfUIkQ== X-Received: by 2002:a05:6a00:989:b0:7a2:855f:f88b with SMTP id d2e1a72fcca58-7fe53bbbe23mr551826b3a.3.1766026785647; Wed, 17 Dec 2025 18:59:45 -0800 (PST) Received: from poi.localdomain (KD118158218050.ppp-bb.dion.ne.jp. [118.158.218.50]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7fe14a5727fsm800985b3a.69.2025.12.17.18.59.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 18:59:45 -0800 (PST) From: Qianchang Zhao To: netdev@vger.kernel.org Cc: Krzysztof Kozlowski , Paolo Abeni , Jakub Kicinski , "David S. Miller" , Eric Dumazet , Simon Horman , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Zhitong Liu , Qianchang Zhao Subject: [PATCH v3 1/2] nfc: llcp: avoid double release/put on LLCP_CLOSED in nfc_llcp_recv_disc() Date: Thu, 18 Dec 2025 11:59:22 +0900 Message-Id: <20251218025923.22101-2-pioooooooooip@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251218025923.22101-1-pioooooooooip@gmail.com> References: <20251218025923.22101-1-pioooooooooip@gmail.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 Content-Type: text/plain; charset="utf-8" nfc_llcp_sock_get() takes a reference on the LLCP socket via sock_hold(). In nfc_llcp_recv_disc(), when the socket is already in LLCP_CLOSED state, the code used to perform release_sock() and nfc_llcp_sock_put() in the CLOSED branch but then continued execution and later performed the same cleanup again on the common exit path. This results in refcount imbalance (double put) and unbalanced lock release. Remove the redundant CLOSED-branch cleanup so that release_sock() and nfc_llcp_sock_put() are performed exactly once via the common exit path,=20 while keeping the existing DM_DISC reply behavior. Fixes: d646960f7986 ("NFC: Initial LLCP support") Cc: stable@vger.kernel.org Signed-off-by: Qianchang Zhao --- net/nfc/llcp_core.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/net/nfc/llcp_core.c b/net/nfc/llcp_core.c index beeb3b4d2..ed37604ed 100644 --- a/net/nfc/llcp_core.c +++ b/net/nfc/llcp_core.c @@ -1177,11 +1177,6 @@ static void nfc_llcp_recv_disc(struct nfc_llcp_local= *local, =20 nfc_llcp_socket_purge(llcp_sock); =20 - if (sk->sk_state =3D=3D LLCP_CLOSED) { - release_sock(sk); - nfc_llcp_sock_put(llcp_sock); - } - if (sk->sk_state =3D=3D LLCP_CONNECTED) { nfc_put_device(local->dev); sk->sk_state =3D LLCP_CLOSED; --=20 2.34.1