From nobody Tue Sep 29 11:55:24 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 3B7FE221FB6 for ; Sat, 8 Aug 2026 13:52:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786197164; cv=none; b=t0CSxHhzMF8T+cULCWdsBBv7G9dk+7bQzeVbDPVMkbWIqfRyftvL+UcbAsWqstc4ax7wA0B2QT/pOTURRXJVGFQmjWWPZimRg9D/kZDxeblJzF6nJafS2pKzNEZofUkAcQ+sGm3Xt9Ak4FWw3ipywhmV3nrEDKu2lCah06sVDNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786197164; c=relaxed/simple; bh=0kxnQAsyrqOy4ZMlYuUneDAi5e6UpIqRGR/e1fdFWD0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Wbde6lo/RY2Qe5mhZgFoONQDLLL4acY+o5dGDlY/1CBI+0II/e1iJCO9Cnw73vdcznMCxdulkSl/G5wLf08/elykK9udoeW6IrjC/bx5CKpujHDFfOkIgb1mFRPL4JrTDOJQrmylzuOAmAFQWgJg9caGdCSZ1vxqxzmfrcPDO8E= 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=qjef5c4n; arc=none smtp.client-ip=209.85.214.171 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="qjef5c4n" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2d01663d816so3512565ad.1 for ; Sat, 08 Aug 2026 06:52:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786197162; x=1786801962; 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=LrFbJmkk2o/TaP9ZJimvbOk+XpiXXLx+TjQ8Tl79+nY=; b=qjef5c4nW1i8Ob/AIb8nHmp+IDFmDMTcWeRkz1wrttZTuFMeunFq6PQ1F16mGHtzf9 6JadfdX82wAaP8xo3EyEsM2PXb9PZy5BA552MQdXafSEts2Pbv/bfk+fbkGn+zUZUncf x1Yu/p8r/e7LaVSQ5u3yxwCYeI4aU0XryUTMq02ZbLsbfGfEHNhGuHq76HknGXNYJzn7 xm8J3gqhPr1V/z6Hvb0x0g6gfB0HDAL8My8BMJ43e91/lExGS9EIooH2dF4UT6f4d7ux XQYEQXm8y7vcqxKpPUrZCidgG9V6OMq0TTI/OoQwGz9FkmGulqbWulQo4mifTvUjeixQ kZLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786197162; x=1786801962; 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=LrFbJmkk2o/TaP9ZJimvbOk+XpiXXLx+TjQ8Tl79+nY=; b=TU78M/+qpz4SXDyoDESiZ/ReC3VdI10i/w7KIwvrCmYZre4id57VplSd4+wQoTx+v1 PPH1wNrxHVFfhKGpuilUIlkrHzKrjW5gAKKPRjg07YTUCfgAW10dvKoxkJLVM2GXCjP0 0DsKvhNuXvLcoSBjtYhXBt2VbAouJ3Rw5JKMumSkOcghMNMUEz5nVVNtUL1jyAClxtq7 UKsr/9JUNEg9XDwFQEhS2JgUEln2bZmYKgv9ZggsR1E37s2TZNmkyiKTWMcKtdd9IsoO Csk7a+kNQzvfw48ekBQv/f421sc9Spa2WnrSN6O3we35J4+X9NMcho0gyw9noOVz+kRH KQsQ== X-Forwarded-Encrypted: i=1; AHgh+RoQs+7W1372hRgTVZIUbixj/Im8J6Kh57NIVolMaKcu5/+Nuuvn6XQeAkVpyn6bOTAYBTXTfM0oF1b/8g0=@vger.kernel.org X-Gm-Message-State: AOJu0YwPBEdEdi7zWW0a+42n4KK2bV/QQHwKnyA+y3r8dECuzvoCnDsH BkBMA77Qu1wD0egua2+KRjGCrboXEQs1MI3brf8JINeG2BAT/pefsgyi X-Gm-Gg: AR+sD12pctV7N1DPUGzu1LhrE2pyLpSvj0CIZWfprzDQd/6eGhmc7iQGQSxVlKt63tA bOD0oUPYik2jwUjq6qXUGTvJS6fs/Oa82Yj3cgC5j9X1T2ULnQ4DeqEfJ7ioH3wNj8X2p+2jd3L rVq2N2o+XELFHJZ7I56DQLdbfshaH+zwNH/VbHSOGMU0sThkguDGsqgVlJMavuUdz2Q+gjQYYua EBy00O20R1ei5gxBT0a8EhyUbIgxVovjnZZHe4yXv9Y7VATlGvrCrRW1IApEp8bOJ7iOYqEEXht Pk5tQmIazoA/OL0hmZKYcotLUuPKTPAM0W01YiaFLpnKkcoJLFbcbGiI0G9TB8ew0Ah+N5iJ551 hFARsvH9evSzReC3VQHllRkqd9tyXtzugXUeK62UK5kzT1V3jjV/EonshmflrR5Zd8lIvTLmQmW QrYx1Z4HJ+x2MWrrwacYdV5O3dSrocUMJ03U7X+5Pnils= X-Received: by 2002:a17:902:c40e:b0:2c9:8f4a:90b with SMTP id d9443c01a7336-2d106a1a2f4mr165599635ad.3.1786197162537; Sat, 08 Aug 2026 06:52:42 -0700 (PDT) Received: from lgs.. ([2001:250:5800:1000::f280]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2d16c4fc743sm18861815ad.80.2026.08.08.06.52.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 08 Aug 2026 06:52:42 -0700 (PDT) From: Guangshuo Li To: Boris Brezillon , Rob Herring , Steven Price , =?UTF-8?q?Adri=C3=A1n=20Larumbe?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Tomeu Vizoso , Eric Anholt , "Marty E. Plummer" , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Guangshuo Li , stable@vger.kernel.org Subject: [PATCH] drm/panfrost: fix autosuspend cleanup during teardown Date: Sat, 8 Aug 2026 21:50:24 +0800 Message-ID: <20260808135025.2872956-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" panfrost_probe() calls pm_runtime_use_autosuspend(), but neither the probe error path nor panfrost_remove() calls the matching pm_runtime_dont_use_autosuspend() during teardown. 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 calling pm_runtime_dont_use_autosuspend() during teardown, this reference is not dropped. The documentation for pm_runtime_use_autosuspend() also notes that it is important to undo it with pm_runtime_dont_use_autosuspend() at driver exit time, unless runtime PM was initially enabled with devm_pm_runtime_enable(). Add the missing pm_runtime_dont_use_autosuspend() calls to both the probe failure and device removal paths. This issue was found by manual code inspection. Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") Cc: stable@vger.kernel.org Signed-off-by: Guangshuo Li --- drivers/gpu/drm/panfrost/panfrost_drv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panf= rost/panfrost_drv.c index 784e36d72c2b..007dcba62e62 100644 --- a/drivers/gpu/drm/panfrost/panfrost_drv.c +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c @@ -1011,6 +1011,7 @@ static int panfrost_probe(struct platform_device *pde= v) err_out2: drm_dev_unregister(&pfdev->base); err_out1: + pm_runtime_dont_use_autosuspend(pfdev->base.dev); pm_runtime_disable(pfdev->base.dev); panfrost_device_fini(pfdev); pm_runtime_set_suspended(pfdev->base.dev); @@ -1025,6 +1026,7 @@ static void panfrost_remove(struct platform_device *p= dev) drm_dev_unregister(&pfdev->base); panfrost_gem_shrinker_cleanup(&pfdev->base); =20 + pm_runtime_dont_use_autosuspend(pfdev->base.dev); pm_runtime_get_sync(pfdev->base.dev); pm_runtime_disable(pfdev->base.dev); panfrost_device_fini(pfdev); --=20 2.43.0