From patchwork Fri Jul 6 14:41:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Elliott, Robert (Servers)" X-Patchwork-Id: 940543 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=fwts-devel-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=hpe.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41Mcqd3cjsz9s4V; Sat, 7 Jul 2018 00:41:33 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1fbRvN-0000tf-5b; Fri, 06 Jul 2018 14:41:29 +0000 Received: from g2t2354.austin.hpe.com ([15.233.44.27]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1fbRvL-0000tS-NG for fwts-devel@lists.ubuntu.com; Fri, 06 Jul 2018 14:41:27 +0000 Received: from g2t2360.austin.hpecorp.net (g2t2360.austin.hpecorp.net [16.196.225.135]) by g2t2354.austin.hpe.com (Postfix) with ESMTP id 7089C83 for ; Fri, 6 Jul 2018 14:41:26 +0000 (UTC) Received: from s17.americas.hpqcorp.net (s17.americas.hpqcorp.net [16.84.27.163]) by g2t2360.austin.hpecorp.net (Postfix) with ESMTP id 487AC3F; Fri, 6 Jul 2018 14:41:26 +0000 (UTC) From: Robert Elliott To: fwts-devel@lists.ubuntu.com Subject: [PATCH 1/2] cpufreq: exit if parsing the cpufreq directory fails Date: Fri, 6 Jul 2018 09:41:05 -0500 Message-Id: <20180706144106.56937-1-elliott@hpe.com> X-Mailer: git-send-email 2.14.3 X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: fwts-devel-bounces@lists.ubuntu.com Sender: "fwts-devel" Merge the loops parsing cpufreq directory content and setting the governor to userspace so the function can exit if parsing fails. Include the CPU number in the error messages. That can happen if the kernel runs into this: [ 24.218674] cpufreq: cpufreq_online: ->get() failed and does not create /sys/devices/system/cpu/cpuNN/cpufreq. Signed-off-by: Robert Elliott Acked-by: Alex Hung Acked-by: Colin Ian King --- src/cpu/cpufreq/cpufreq.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/cpu/cpufreq/cpufreq.c b/src/cpu/cpufreq/cpufreq.c index d1e50cdf..a65b9d08 100644 --- a/src/cpu/cpufreq/cpufreq.c +++ b/src/cpu/cpufreq/cpufreq.c @@ -834,18 +834,25 @@ static int cpufreq_init(fwts_framework *fw) num_cpus = scandir(FWTS_CPU_PATH, &dirs, is_cpu_dir, versionsort); cpus = calloc(num_cpus, sizeof(*cpus)); - for (i = 0; i < num_cpus; i++) - parse_cpu_info(fw, &cpus[i], dirs[i]); - /* all test require a userspace governor */ for (i = 0; i < num_cpus; i++) { - int rc = cpu_set_governor(fw, &cpus[i], "userspace"); + int rc; + rc = parse_cpu_info(fw, &cpus[i], dirs[i]); if (rc != FWTS_OK) { - fwts_log_warning(fw, "Failed to initialize cpufreq " - "to set CPU speed"); + fwts_log_warning(fw, + "Failed to parse cpufreq for CPU %d", i); cpufreq_settable = false; - break; + return FWTS_ERROR; + } + + rc = cpu_set_governor(fw, &cpus[i], "userspace"); + + if (rc != FWTS_OK) { + fwts_log_warning(fw,"Failed to initialize cpufreq " + "to set CPU speed for CPU %d", i); + cpufreq_settable = false; + return FWTS_ERROR; } }