From nobody Tue Sep 29 08:46:21 2026 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.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 8F9403E558C for ; Wed, 12 Aug 2026 09:02:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786525358; cv=none; b=rPCmed7hp3G/efhIqmUo45TvHhAdO1+ppvxfq4dwcB/KSeRD13BrTxn5qJToGQbvAaq2zEKYvXFVNA2NFQN/riW3EwD/xbA/f5OZdhRDZVnpQIbokRAecx8btP8/7rxqpqmEXXLz8Fa7OgPMdWuOFanpkp5hGuBAmP+jsuW6Z1Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786525358; c=relaxed/simple; bh=sz7fS+0nqTxp8zreu7IIQFPHWLcP6Vu/M3gDox9nLAI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=dRfX35xu0yx5BQZTb3kzJ4eRaBupBmspj7CNRVMcd6gBRfirGi10FQ5yw6RBXjciQSz7PTODLjiXr/i68JLLE0BFwN8SCozhr0kInaJPPlZw6QjGWlJLl2+NlR1tn0aPc8cXexMY8CpGD473Pi8htzMPD8ZC6utHqZi6lFPW8pc= 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=gLNpQRjF; arc=none smtp.client-ip=209.85.216.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="gLNpQRjF" Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-38ea87caafeso627089a91.3 for ; Wed, 12 Aug 2026 02:02:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786525355; x=1787130155; 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=MMJ/zKXjUuezQHEWC5K8ovWuvaNdAhVwEtkYF+SzJVU=; b=gLNpQRjFqpZ9rKnNC1cJHYd5f4BXT6ffIIRuMzhP3GyTJD/7ndFfFKDNZ59DeC5l7r 9INza+Q/y2wTzpW+k4/n5EpgBOJQ5fdD1oeAAhnmjdYLb55VaVckljezkmyn1fD4Vi00 bFxvRa5Zz/8BFvPRs58IBaU4FKhRHBvb6u6mc5RQ9/jNp/ap+ZREl2AyuQcJDZInffjD 4f1EwQHO0UnGk2IwEOBsqk4jAniNhQHTXegtjrMelikAMt4I0/w3A/qf8lJaRTbjB+Wj 7IGWDXIC0mlzoeOgczo1jWPLxAytEPlKZ0wfS4SCy6Az7oBMCLc6xwTHXSZv/EhhvqQP z64Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786525355; x=1787130155; 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=MMJ/zKXjUuezQHEWC5K8ovWuvaNdAhVwEtkYF+SzJVU=; b=MHVbzmZSFViJzCxsx+0kqRuCs4pDJerrCjcNx8Zr+sfwr0mbJEJ6ZmZRC5UCS60c0o +kI+cg0MOwLgEs58zR59bT70B9MgzwBdRdwn/GfQ3iNDUrIJv7NDjIyy+X3MERQukklr EEWtEZ++BojxAA6g+AVGj9IESGrBdBINiAe7p+nAI6T6BcCCL1FcM7OnUQoGMovG5oB1 LXaNexpJ7FynMKhdZzbirmUiThbBV8L97aCU0PoqkAbuosZQo7vxmO5Mm0l919UHHJvP g4609YcDWT+zutc6YJzMTs8BvX7YbPLtjeaAt4/6vtSk/6FhiGLoUPJ0ki6UGSs4rq09 QdhA== X-Forwarded-Encrypted: i=1; AHgh+RoZSmOel55dQ2DuiOzIx7P6DcbHl91xgHaGbMTYMLoF5fHUW+sXae7VnQY4NW4PmkQrSkJR6NyY8lYV9FQ=@vger.kernel.org X-Gm-Message-State: AOJu0YykGdY9Nz2jaD72avbSgrxkFUYl+fMHZtYdMYYTIDQxE3ClJyZM 5OHodb4cmQJ6WxKbQUsYt5Z4CPOO7vSQv19y6DhYf3yXI7pCyFbVhSKy X-Gm-Gg: AR+sD132fZlouLVrdVnBPbEWnqBA5kznPuKTbMXCiuPfiQ6w5hbs2tF046yxvbu8NOq xXWGLWU0B2w+0mzYYcYcKtqpF/IYIPlr1MEnWzjwtzGr1akcsRdObKZMKfKMSMefQRJOD828aDo uNhgR0+V0tJXwpZScYvkKI+tE6wvvv5wfN5t/9XS3gsOSXNGBf54yDTZJmHcTO8folIqfvnu2+f RXmNMYqNxBjLXQKEUE8qR4qX60NrlTPD18TlEdFiQOsonp8GmBm0WE3E96GsfkSYJElXL2DrShd 5w+hPbHZ7T6Rx8ncYIWh6Dd0dsGkd+wuEFLOSuNW0cutiknWg6a4KoCyHoGuBKo2YQBaeuA1okx rYeIAZeCiGscy0W2ALHnGhLhB8FFxUDr5OtKEMU4Icf8NC+gLRk1aiaV7FwweHgsT5VOeGbzZ1F FlHfEHVliMwv9K8yIAlXRX930s2wO8ur40GL8KwGzxDQdgCX/WodCXyA== X-Received: by 2002:a17:90b:3948:b0:383:f52b:d616 with SMTP id 98e67ed59e1d1-393014fa36emr3633374a91.10.1786525354776; Wed, 12 Aug 2026 02:02:34 -0700 (PDT) Received: from lgs.. ([2001:250:5800:1000::f280]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-392f8893709sm2808609a91.4.2026.08.12.02.02.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2026 02:02:34 -0700 (PDT) From: Guangshuo Li To: Gregory CLEMENT , Andi Shyti , Samuel Holland , Wolfram Sang , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] i2c: mv64xxx: fix autosuspend cleanup Date: Wed, 12 Aug 2026 16:58:08 +0800 Message-ID: <20260812085808.3313948-1-lgs201920130244@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" mv64xxx_i2c_probe() calls pm_runtime_use_autosuspend(), but the probe failure and remove paths do not call the matching pm_runtime_dont_use_autosuspend() before disabling runtime PM. If the autosuspend delay is set to a negative value while autosuspend is enabled, the runtime PM core increments usage_count to prevent runtime suspend. Without undoing the autosuspend setting during teardown, this reference is not dropped and usage_count remains unbalanced. Call pm_runtime_dont_use_autosuspend() in both the probe failure and remove paths before disabling runtime PM to properly undo the autosuspend setting. This issue was found by manual code inspection. Fixes: e5c02cf54154 ("i2c: mv64xxx: Add runtime PM support") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- drivers/i2c/busses/i2c-mv64xxx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64= xxx.c index 1acba628e16c..995b0e9b7f53 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c @@ -1069,6 +1069,7 @@ mv64xxx_i2c_probe(struct platform_device *pd) exit_free_irq: free_irq(drv_data->irq, drv_data); exit_disable_pm: + pm_runtime_dont_use_autosuspend(&pd->dev); pm_runtime_disable(&pd->dev); if (!pm_runtime_status_suspended(&pd->dev)) mv64xxx_i2c_runtime_suspend(&pd->dev); @@ -1083,6 +1084,7 @@ mv64xxx_i2c_remove(struct platform_device *pd) =20 i2c_del_adapter(&drv_data->adapter); free_irq(drv_data->irq, drv_data); + pm_runtime_dont_use_autosuspend(&pd->dev); pm_runtime_disable(&pd->dev); if (!pm_runtime_status_suspended(&pd->dev)) mv64xxx_i2c_runtime_suspend(&pd->dev); --=20 2.43.0