From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 5965835AC0C for ; Thu, 11 Jun 2026 20:47:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781210824; cv=none; b=o/tVjhEzeYAAQkFkfaP0sKtxK4u3wiUk4QmWJEfjNvDCOJ6EcD02N7csTUv3N5j2c2mjLRsC6GlNOLy2uhHPpt+8/ow1EitPFNcW7VevQYaTGsu+UXto/ydNiCaaxsuUAULK7IDBrj6cYfO0YbJqq19e7mfkg8+u5gkQqjCovN8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781210824; c=relaxed/simple; bh=NR2CEXh5xK+e/ztpAa8u9zBNYtPorW9X4Su5E/3Lo/0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=aD6O3QMToMLRLj6ttaauChK5yNNDKsZegQAEZin7/mUqEqseAIkBYTyQVn2vjB7p2jMDLXDqBrmmkfOwv/WZiitSOwBru2r03Ckcw3GBs6Tcdla3jr6SYcBNKsx+lUjfa8UvDsPCcjGNgIakOWB4MbULF1L+U3BNmCKjBIvtiJE= 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=N9fHhwcP; arc=none smtp.client-ip=209.85.221.47 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="N9fHhwcP" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-45efb698ef2so121710f8f.3 for ; Thu, 11 Jun 2026 13:47:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781210822; x=1781815622; 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; bh=pW+GxXD2e5Kt5fo5tuNrCY+vGMI61nj1uaki4VCcPjg=; b=N9fHhwcPiuXQKoygv3SzCI++j3zSbplXjf6mK8ASw6D7IWA9ndIXVNAVRQICLu4Nbj YQdXkFxVVO6HQEK3A+gsAj3cBv1w4H2HtE7rrrgxyq8RJSVo8a3dv09+wVgAKd7RGz/W Ok7PQbSaQf1vR1r3LhQ6EW1S2YFBW9Z9RYPBFZR3dvZVwXfFP8tlvpak9uCDZXQFMMLR 1j5Z58V2ou1Wcuo3/fSxrR5tXExNC6OSB7JULAgnIeXM9iF+jjdpu4ulFaoBy1VqPz3H x7Jh4L0LhAoKn9QH3yoPnj3+wnsB1EupH0PAcP2q9gzJNQFb5OISV1JpZL+D5b55lonL SXsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781210822; x=1781815622; 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; bh=pW+GxXD2e5Kt5fo5tuNrCY+vGMI61nj1uaki4VCcPjg=; b=Iop20hXcWrT4XUsiBOw0/Il+yfreYgyXVmWvfzY06v/j2AzTr2Z4nCdrzCUzCeNi1Z 5WLUR3x6+kbEhO3wdbccxFn8BS1+Viqqb/FXTjqS9Z0uZaXEViBUFVCZdj4xAdBosIBE XT1lBRdy8ru160fSM2MxV4ga4tsb5jbJ5hr/f/UtZDgHhnA3W9z/sdrrGtf0MRArIKKn oN0/M7fgGG3cXKNOJIBymfC0ZGk05dsM+y0TeKzlj/D9NvzMHR8f2wwwOsvNP0vCT7O8 d5Gzwq5TqFGPdzGf+7QKGtB4L2T+6bx0Zx99yeaeLszcrXiXJ09Gz0pE37Nw7df+0VRm 3Vgw== X-Forwarded-Encrypted: i=1; AFNElJ9lQzH5RD68M871FS0nMjnX3uvs1pUL6u5WZYi3HdZEhzjm+RNkXWqmEfnIOXBhxcQ/V8nnJAgS0uQMgFU=@vger.kernel.org X-Gm-Message-State: AOJu0YzK1CnTqemvEfchehLNHfYop1z+oZfV04Frkya0dtdleBNXkOef llqDSEUSPTW4WtYBULloYQFvGIX73EK5iCEh2xYrwQBEZj7oaywEGtoN X-Gm-Gg: Acq92OGEU3yneOqLsrq1TSVk4/pkru0xFt5thd9qWRHq/HIm9alIYLlV588+UywiMkx eGjIgqiq0sgEiTqT9qNkThJsAxt0s966+TSjvxElfSQBxEUmiyYjK/IoqHi+BB5k5QwqmRThzkY RrC0uE4KjzRRtqSalO2piXvlypmyMY9Pu4L1xLzhWHxqrLybje1Eq/3OWcNRekC6Oe+IdRr0V/d dn+IsE8JY7/7nZlx2GuhIKpDthLaQDWhB3tSIld619OC8eCi8W1RCA/AFfwAkeDBRbAh6zOhblX htofJK2w/wvaF5BASRCFxCIkT94WnvlutHhcxmfYQQF31AMrMhDdzRVwDpwh6JMIYlDYNKjzBOH BZ8CwrnCkou8YkQhdMl/gAABt+ziMvsVTzhUFY7NyzRXvfiXOk78dUZ0s6tXDTa2ngodg9ZJJLM p4kG5csgCpdpk+oM/P45Gf67RcrsNgcqdH29VNS2eEugoqAgCWak6K9flRqjJhY+o2QBPUR24kh ahwnl77nqHSY/LzNChnQOlfZA1Q0LcC8Ew3+hiWuVduNeTGD4wx X-Received: by 2002:a05:6000:29ca:b0:454:35b9:803 with SMTP id ffacd0b85a97d-4606dba7668mr15811f8f.30.1781210821535; Thu, 11 Jun 2026 13:47:01 -0700 (PDT) Received: from MBP-Elazar-Leibovich.civet-hops.ts.net (bzq-85-130-200-168.static.bezeqint.net. [85.130.200.168]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4606c0d0947sm1727493f8f.16.2026.06.11.13.47.00 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 11 Jun 2026 13:47:00 -0700 (PDT) From: Elazar Leibovich To: linux-pm@vger.kernel.org Cc: "Rafael J . Wysocki" , Daniel Lezcano , linux-kernel@vger.kernel.org, Elazar Leibovich Subject: [PATCH 0/2] powercap: dtpm: Guard against missing energy model in dtpm callbacks Date: Thu, 11 Jun 2026 23:46:56 +0300 Message-ID: <20260611204658.47987-1-elazarl@gmail.com> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dtpm_cpu and dtpm_devfreq powercap drivers dereference the perf domain returned by em_cpu_get()/em_pd_get() without checking it for NULL. When the energy model is absent - for instance when a CPU becomes impossible at runtime so get_cpu_device() returns NULL, or when the device EM was never registered or has already been unregistered - the dtpm callbacks, several of which are reachable directly from sysfs via the powercap zone attributes, crash on a NULL pointer dereference. Add the missing NULL checks, mirroring the guard that already exists in get_pd_power_uw() since commit 46dc57406887 ("powercap: dtpm_cpu: Fix NULL pointer dereference in get_pd_power_uw()"). Note these patches only handle a perf domain that is already gone when the callback starts. A callback racing with em_dev_unregister_perf_domain() can still observe a non-NULL perf domain that is freed underneath it, because only the EM perf state table is RCU-protected, not struct em_perf_domain itself. Closing that race needs RCU lifetime guarantees from the EM core plus holding rcu_read_lock() across the perf domain access in the readers; this will be addressed in future patches. Sivan Zohar-Kotzer (2): powercap: dtpm_cpu: Guard em_cpu_get() against NULL return in sysfs callbacks powercap: dtpm_devfreq: Guard em_pd_get() against NULL return in callbacks drivers/powercap/dtpm_cpu.c | 6 ++++++ drivers/powercap/dtpm_devfreq.c | 9 +++++++++ 2 files changed, 15 insertions(+) -- 2.50.1 (Apple Git-155)