From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 59D3A372B3B for ; Wed, 24 Jun 2026 20:44:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782333845; cv=none; b=Jay6l493rM0F4qHckA2Xtzj78hR1iKhZjEt45WLlP4SftwqC4Rhh2gNzOubk8Lqflj8HHFbq/k8dWrVENtyFAT0/LJLYTQnza7pLycw67DbijLcyobV6OhZc6T0cZEdUcjs0CklAWPVOM0cnMh718KKZmIJX9b+CR158AFLW9WY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782333845; c=relaxed/simple; bh=XJ4dGsHJUWAfPP9ACdPgErGt8PvKQcaQELy9+htVawo=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=sYA3QUY0hNknWoH5LmdM3jGx0zAwpnKmZVUUBA5LvYBYnh2ONhq+sNFZ43W0D+Yg/75YMI2TUx8HBOi04R5+JB+3qjWlmjbSmxRBFlTdOeW335dTF9Igj7RE/LtaykkVlvujmIHz9ZqB+TuF28odqgeYkcekzOtMipRNx3oiUwo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=X0RZx3jI; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Yb5Wu2XC; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="X0RZx3jI"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Yb5Wu2XC" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65OJj5f84119025 for ; Wed, 24 Jun 2026 20:44:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= pLVeqNMo6k5dNQBE40/GH1tK84dI6CUW/NiULJrSHBc=; b=X0RZx3jIo5BwEFeD 0+3mtOd5Tc0wJjqGlW7c0bJeWbrzJcA1TdZDexP8cSqmwkaYfMTnPVHieExxFTiq tE2ij8nYdRsrVq51Ab0jwcAf8zzWa3JckIchG+lRMbrPAr3PkAGj3lXlc5gtjws8 o0Qi2Jo0JhRfO2SCicPzUrfF91tmBp7UbJcVGZ3Q+HYQMFcZRQhiNJkbCbi/V6Qa ap2ZjSRae0nKtu+CR121aKeLuDQghdmtyP3HHny2JA+Fz08dOsffBYn0i2SAokSt ms/A6YVQ5AhjgTiqZSTn7O2or9ORtfaDOwk0rSnzYGh6fjL3GaD5Pdc9YiiVP2/A EMi6Eg== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0apq3433-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 24 Jun 2026 20:44:03 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-915c8347cd5so244915385a.0 for ; Wed, 24 Jun 2026 13:44:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782333843; x=1782938643; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=pLVeqNMo6k5dNQBE40/GH1tK84dI6CUW/NiULJrSHBc=; b=Yb5Wu2XCWH4+qzAJE6Qc0OlReon+7DGvSWfIqVlMriLYzUpuLfrMPthn5WpRqdx9Hv GRHXVSXdD5oWqA1k61cCe6Gcz8f9YtwOd8GfBoizvVnhFAZ55PVD7t/NU0DTec2XFJtr Xjdu/gRJvNg4ZNLMrmOnz5EoB4PPv+ScPSGQ1E4fh0Pn/pDArtVd96m1mc4Z42CaWvM0 4xEx/TLF4tqVlME2HTE1hUL/cKZ63nt9oZh3Gy5tgJaprsgTfTbte583MtnJQMZnPIuX EZgS04Q33KyLMLV7QWRi+JEimSTK6OHLKXYR/YRmoA56eFWWRQTEyG3m+hk5K90LRRVJ AyjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782333843; x=1782938643; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pLVeqNMo6k5dNQBE40/GH1tK84dI6CUW/NiULJrSHBc=; b=lICZD62lwupywliCZ5DbEKNH8zHqGHKV/TXDfQ1ucyvlvxCec0wCpKdYKyPWwsM/j5 lzO9MGkZmLmkbNEjUoiOlmiE9xc/O3vbMOPyiN3wPObqBS4/XuvGLH9EDn+ZH0NuiH3I PzlkN5Z31F2eWSieGAF/tJeUaQWDBvrpBqrA8AzpryWoV1JC7wd6o2HGXlmhS1O7CNuh FN8wwYskrFpzwE5j5/9KrGlRvpHJY7c2DN158U7nhRG5/2Rjh1+Ke5NK3dWWPN8ZiF1M +mUs+6aG97eKC3/SjhhOz+IGHGCV5tGwRqKojPkp6WWbTlFe8z9WhCVv5ctxfO4UOKpG FXbQ== X-Forwarded-Encrypted: i=1; AFNElJ+7xZDB1boVqsZ/J6MuG4GynpGITRixB3fjNrl8OXz+2MJ6AtDc8EWv/PZNGptFs+tEbLF5fQgXmmzUepk=@vger.kernel.org X-Gm-Message-State: AOJu0Yylx2CsRezi8An5na/728jRW8Xfsxia2Re1XXUyTDiXqMmSHy8m o1+ZKTAUfn3j7iZjylIBw3Rri/Cdi+WQEOcP/x0oDLBXo+BQLgqHpL+e/t1tgZEedXaJ1gNCr7/ Qy9VGwc9sBZxzRguaOBly3vcf5f8J0wc88FA1WS86dELXo6GTnreNbDri9hJd0yWGSnU= X-Gm-Gg: AfdE7cllvGaPldRNmTORcG4jb9N7C6n69+FV3ahvAuUZ4mgtiwYHOnkpVZO3gEEcXC0 KacNBywxhcWP+D2xzE03Kdo2KVBWug5CxSRLsF+xXJDAM3rMX6MwBnAtLM9SOujIHB1MMrOPOe4 86qHENSjth6lkQjgtHmAv80TjKn2hIMbs8dqtRROQ6CG1oAVR4anTlBiyuRBoRYJYA7PzjxRS/B SKoUWwn7GZxSqvtVm6wPTsA1YMHwW3r3lPx82EbFBKlwSmY2gbvGtM0RIZBIlXKNcD9kF8ibVvC +Q+K5GRPupaUo19wa2xckgoPsG57PuNdhc5kOjAuTUsNLeB10gxhjJsAbw5ALxVECCitHekC/ay Xi+MLRN9Rl3UpTwMqtmYvErqsClwGmHBHWF9HCZ9si6RGTdk13Z1nLAW4pAyfbOvopt0RWQA= X-Received: by 2002:a05:620a:4406:b0:915:ab83:6963 with SMTP id af79cd13be357-9277c5ca1c8mr822958785a.15.1782333842497; Wed, 24 Jun 2026 13:44:02 -0700 (PDT) X-Received: by 2002:a05:620a:4406:b0:915:ab83:6963 with SMTP id af79cd13be357-9277c5ca1c8mr822952085a.15.1782333841973; Wed, 24 Jun 2026 13:44:01 -0700 (PDT) Received: from ?IPV6:2a05:6e02:1041:c10:fce5:aedd:3ea4:36f? ([2a05:6e02:1041:c10:fce5:aedd:3ea4:36f]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-492640332a8sm17146845e9.9.2026.06.24.13.44.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 24 Jun 2026 13:44:01 -0700 (PDT) Message-ID: Date: Wed, 24 Jun 2026 22:44:00 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/2] powercap: dtpm_cpu: Guard em_cpu_get() against NULL return in sysfs callbacks To: sivany32@gmail.com, linux-pm@vger.kernel.org Cc: rafael@kernel.org, daniel.lezcano@kernel.org, linux-kernel@vger.kernel.org, elazarl@gmail.com References: <20260611204658.47987-1-elazarl@gmail.com> <20260624203147.67528-1-sivany32@gmail.com> Content-Language: en-US From: Daniel Lezcano In-Reply-To: <20260624203147.67528-1-sivany32@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Info: AW1haW4tMjYwNjI0MDE3MyBTYWx0ZWRfX2RstLcc/sI/W pThu+sMr/LuruYCh3vqIF42ZYsQhiOOvhfZIaOYmVZfoSZ3RYqSUwuL9zarIzxKRb98L0aDd2eD JdJmrG9vNDwTvasCGmuzpJgQ0bFjORE= X-Proofpoint-GUID: W6vaH5x2fd6BOfHtWg77Clku6siPgSjE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI0MDE3MyBTYWx0ZWRfX83RrqL4xDAjJ xMMvvABV6Jgshi5BhBm0t1Q7xwXRKpzI8R7Hlg5MzdXPcw+lePMBGFgKGKHlEzb88SWMSZ34EXa 9boa7YO67JGZ7RLu2XajHBm8E9LDgfKejUMLsv9uU1yDds742Eo2b7gnkGvhpNJQWYcnP5g6aiq mA7yee7ztGLqM3FvKwp5HbGkFhPOwph9y1DyLphLbtZ/EoYC/27LvyQvuq3efBy/kVqGz1vJL3w z4S3/8y/64syZJg0Vzf9yyGop9WntwHzLtfoaeVZtU50qxZWLKeVDJMSJ/apqZ0tX5LP6qOBlwo Rd/hqhOIirK62hVouDlxRkN7C+VfPRqOZO+aJDkq7ULpiIWVFuCkfRdYC3+JvkYtSeu89lqg7Ca Itdu6PeEM+7P+tIWNFaxHr3NLB73jw== X-Authority-Analysis: v=2.4 cv=NpbhtcdJ c=1 sm=1 tr=0 ts=6a3c4193 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=pGLkceISAAAA:8 a=K0DscR3ZS1O8UFz_HAoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-ORIG-GUID: W6vaH5x2fd6BOfHtWg77Clku6siPgSjE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-24_04,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 bulkscore=0 spamscore=0 suspectscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606240173 On 6/24/26 22:31, sivany32@gmail.com wrote: > From: Sivan Zohar-Kotzer > > em_cpu_get() can return NULL when a CPU becomes impossible. Two call > sites miss the NULL test: > > 1. set_pd_power_limit() — reachable from sysfs via the powercap > constraint power_limit_uw store path. If the CPU has become > impossible then pd will be NULL, return the current power limit > unchanged (no-op) instead of crashing. Can you provide a script or a recipe spotting these issues ? > 2. update_pd_power_uw() — called from CPU hotplug handlers via > dtpm_update_power(). While reaching this with a NULL em may be > technically impossible today, the check is kept for defense in > depth against future refactoring or subtle races. > > The other sysfs-reachable path, get_pd_power_uw(), already has a NULL > guard returning 0. > > Fixes: 0e8f68d7f048 ("powercap/drivers/dtpm: Add CPU energy model based support") > Signed-off-by: Sivan Zohar-Kotzer > Co-developed-by: Elazar Leibovich > Signed-off-by: Elazar Leibovich > --- > drivers/powercap/dtpm_cpu.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/powercap/dtpm_cpu.c b/drivers/powercap/dtpm_cpu.c > index 21355db64..886cbe922 100644 > --- a/drivers/powercap/dtpm_cpu.c > +++ b/drivers/powercap/dtpm_cpu.c > @@ -47,6 +47,9 @@ static u64 set_pd_power_limit(struct dtpm *dtpm, u64 power_limit) > u64 power; > int i, nr_cpus; > > + if (!pd) > + return dtpm->power_limit; > + > nr_cpus = cpumask_weight_and(cpu_online_mask, to_cpumask(pd->cpus)); > > rcu_read_lock(); > @@ -125,6 +128,9 @@ static int update_pd_power_uw(struct dtpm *dtpm) > struct em_perf_state *table; > int nr_cpus; > > + if (!em) > + return -EINVAL; > + > nr_cpus = cpumask_weight_and(cpu_online_mask, to_cpumask(em->cpus)); > > rcu_read_lock();