From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (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 771943C8733 for ; Tue, 23 Jun 2026 08:05:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782201945; cv=none; b=fCpzZRnhUGL8Ead+DlaJFFSfrbR9kjHLDQVAEJNYW4e4r/YbO5qpLxOGwfp/kLQPZP8ZPOIEY/Q6casqeVPDB3ySp+Ww5EeHQ22diDmMczCuIjCppdZ0Txx+t+LbNqjrbehU4XLe2AIb0Jw8RHNbEtjRG6BatAPT9/x1HAKMF34= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782201945; c=relaxed/simple; bh=l7Grnr3PmFISuxul3Ve894yunIdFyWsPBWHXEUkjAck=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FKm7ud2Bw/fQm57XUghRJj5J0P3mEwJk/tgSJhBedr0oL7gCyl1W1rR8EofCifPutcDtbjzj4a98oEKe8H00esQqzuZEE4wYsGMXu/a9s463qTAfqSZkYrbp3P1wuuQ3AX93BVapGmfNNxO8B4V21SnLrqW6Bm2RPGRJ1zzUYTk= 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=C11yMzU1; arc=none smtp.client-ip=209.85.218.53 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="C11yMzU1" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-c07a6527453so765996866b.0 for ; Tue, 23 Jun 2026 01:05:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782201943; x=1782806743; 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=gSJzQ7BvL7UAfauGXcds5wC0m0PWvmurBL/+ctg9lkA=; b=C11yMzU15eEJtUGFBdeD7ST8IAX8DL6Hs/oIzPujvZCPZN+yigz/MxrZgIA4TcFhev VdcN86q4AFLVCjJR4Q/Ceng33jjz5zZr8J12JVzeC5M2mwgvlT5fjasnf2mh2QfdWDo8 ajBRSKZv+CiQP6+nM//s7jpSohQGb6VryuO670lW+wFIvDIThMVJEKlGcI7D7ljl/EU0 SxjPYGAr2A+byv3YJQLCu0ML6G7K+AwrwAH9R4JeZAieg46tdDk2CtAECgAWOKkxgMwi R9P+rnPBQ4TNMYPZKc98ZVNj8Al7x/VJB9qLlUt+Ya3hAooQSOhR888XoppSCx/tNAAm +2cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782201943; x=1782806743; 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=gSJzQ7BvL7UAfauGXcds5wC0m0PWvmurBL/+ctg9lkA=; b=KasnlyWRzztvQufLYhlPvyc6rEio+5vgoVwHUTODBWXbgQKW+H4ZsFRjOQiAz4G/K0 Gc3tfnN9cxTgfx0LcNM4hezXZgF4ATuOYN4GivE/90mif2I9039uBo5SbnTryqYnADBv oaTUuq0rq0uVNMRMtBWuugle9uNk3zvrhSYtwsiXC9LcdtrC/b/86MADeHOpZ92XDqz6 8frqoCnuouYk3G52oQUuXYGn66u/6aomJnAoOfPW06VxahkcUcgIhCvTMzHd4akPvmZf PGrK4RrAUtQOhN9P3Kk0hYd7DiYsGpU6W4M3s5sv7oGvDk4n8L2Lqyz5EWYZOxkHqBrx mxLw== X-Forwarded-Encrypted: i=1; AFNElJ/L5DHzGmvODFZjnXhzVz3BsuLFlC7D6CMkRtqdVY+geVW2UJh9JfTVQfe63+BmdquRORsENsDfncfYhqA=@vger.kernel.org X-Gm-Message-State: AOJu0YzOqHVDzlts/8lK+ZLdANnpABIqV7CbuKcLqzZJIjZoqD5q+bOU aJ+B3wXY59Uxa/xzhxcmp/olw6W7yk2u5WN/aQtwK+UxM7RCpWJtlSh8 X-Gm-Gg: AfdE7clbSDCMQGgAHKDHWYwYVwZTRnbiQnBKwNCscnYDJdaPf40rh96sjRmN9MHNTXY j30+AqVXR9d2rQQSwzvnXnLc+7nj8O3Na3dKh42S2r0TNp/YZSYIOCr3q2TA/QfUKxAzUSV9wbz fM7p68NmjRmHQE3PDVG5T8twjuwsFBXDU3h9pz2qBFBjGoIkgME8atTM20NS/cdnejNglf/aszU G0Zzlke7DtrGqgsnhrJcAA0uviaR/TX+SELg77HZ2rMoiIsFUanHB8Shbp3KxxAIMkMrLWj45oJ Upqopn4sNPaUoK9YvpQjjxhHhi3fYUzqm4sgigiizkJq3nVT1DGAscm66HyUbNaj8JPPgjmXFSi ZSzl6W7xPI4a/54jWV/zAKr1Jn6JoSMoU9bXXtsx+PnYoD6DhOlxLhmzMyrpuHDmery8pGh0cX5 n0baszcIOhCc3yo0AMWJkb7jr/xp7T9UdQMHUdvobmRWotf8NWYVSo1CYVnkdeCf/EWFtqD+vp/ sLOSrc= X-Received: by 2002:a17:906:c14d:b0:c0d:1553:3da5 with SMTP id a640c23a62f3a-c108f0fcd14mr71897766b.35.1782201942670; Tue, 23 Jun 2026 01:05:42 -0700 (PDT) Received: from localhost.localdomain (ip-89-176-136-191.bb.vodafone.cz. [89.176.136.191]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-46667221de7sm32486503f8f.33.2026.06.23.01.05.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2026 01:05:42 -0700 (PDT) From: Petr Wozniak To: linux@armlinux.org.uk, andrew@lunn.ch, hkallweit1@gmail.com Cc: kuba@kernel.org, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, maxime.chevallier@bootlin.com, bjorn@mork.no, olek2@wp.pl, kabel@kernel.org, Petr Wozniak Subject: [PATCH net-next v3 1/2] net: phy: sfp: free mii_bus in sfp_i2c_mdiobus_destroy Date: Tue, 23 Jun 2026 10:05:37 +0200 Message-ID: <20260623080538.7646-2-petr.wozniak@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260623080538.7646-1-petr.wozniak@gmail.com> References: <20260623080538.7646-1-petr.wozniak@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: 8bit sfp_i2c_mdiobus_create() allocates the I2C MDIO bus with mdio_i2c_alloc(), a plain (non-devm) allocation, and registers it. sfp_i2c_mdiobus_destroy() only unregisters the bus and clears sfp->i2c_mii without calling mdiobus_free(). As the only reference to the bus is then cleared, the struct mii_bus is leaked. This is hit whenever a copper/RollBall SFP module that instantiated an MDIO bus is removed: sfp_sm_main() takes the global teardown path and calls sfp_i2c_mdiobus_destroy(). sfp_cleanup(), on driver unbind, frees sfp->i2c_mii directly, which is why the leak only triggered on module hot-removal and not on unbind. Free the bus in sfp_i2c_mdiobus_destroy() to match the allocation done in sfp_i2c_mdiobus_create(). Fixes: e85b1347ace6 ("net: sfp: create/destroy I2C mdiobus before PHY probe/after PHY release") Signed-off-by: Petr Wozniak --- drivers/net/phy/sfp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c index 03bfd8640db9..c4d274ab651e 100644 --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c @@ -963,6 +963,7 @@ static int sfp_i2c_mdiobus_create(struct sfp *sfp) static void sfp_i2c_mdiobus_destroy(struct sfp *sfp) { mdiobus_unregister(sfp->i2c_mii); + mdiobus_free(sfp->i2c_mii); sfp->i2c_mii = NULL; } -- 2.51.0