From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9FE1AC433EF for ; Fri, 8 Apr 2022 20:35:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=l/CUrEhhv9atFAHq7FFo/PCO0HxOA1njtwPbClalMmQ=; b=MjsWvdrAoLHfpI h9SxSYw5v7l4eu4nxwvtgyOQ+DLY9FfXY/QMrm/qDhMljOxkiM32pjBHP6QHJUK7KZduPE4MAGT1w QQ4ZLSqEbWXD9/NSgse4yduzNTUDr5iYGwI6N8R8uweVjrz0IURMQ8rKmTuZPU/5Oiuy/fFWNolPT 9aEZfDwYLkFlO03tjQiKJYhLlswermf4iSziEN9eoNEZoCe2/oz2VYSPZ4N6QzO2kcp8V6VbKZA1E qKUdLjXNtCd56dfdaKSJGyJVxoLI2L2tq8r3Um9SuvgrDrDIGDblMXKcg8MK7lGOxXElSGlYCiRxN onYcl1fPb3qhJ08PpODw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncvJD-001Cgn-R9; Fri, 08 Apr 2022 20:34:19 +0000 Received: from mail-ot1-f46.google.com ([209.85.210.46]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncvJB-001Cfg-98 for linux-arm-kernel@lists.infradead.org; Fri, 08 Apr 2022 20:34:18 +0000 Received: by mail-ot1-f46.google.com with SMTP id w17-20020a056830111100b005b22c584b93so6859839otq.11 for ; Fri, 08 Apr 2022 13:34:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1tb7nkyFqE34RRTlLRoG1km8bVnXOaIVICbmcAyGpqE=; b=f9HyY7hrO3hQZSfM2cMWGSVJd2DAdaMubz+2jdUlnkJg7/mAxxfejoZNRB4wUfCpgm D5AbCcEyTfiiUQ0ymtXy0+vSM69IAd4qkZNa9pIwEdyQXpUZVnm8QFOYIqVmBPQcKbE7 RxSjMYA89pUU4vACA9vYZTcnyM8ggAFm9rozVj8s1f3noJ1Q2dDxm2+sdFILyNpf8bfo MOpxC5SQXfC5koiZYZiYLEdcvZcoUq2GysqBXN+T3R2oUPTTlEAvoDDsUGHN0Xio0lJ9 d6UhNE6RW94tegk01hTyV/sS945twMopy6Jstl+m4v+Ke8xga/4eLBhQypfLozp21T/b 5ydg== X-Gm-Message-State: AOAM533g9TscPIWFH8+WUGUAfNALg0SiBNRgsO/rhVQCDcIl/xjus7El /cGICg/9KRrX4F85+Fn/Uw== X-Google-Smtp-Source: ABdhPJzMzXVe63JufD0lQqPJtXEdj/NUIeQfYjOCpnAqM1V6RIgd/08z+V5fG3uzYd8mxZdcPLL19w== X-Received: by 2002:a9d:51c4:0:b0:5e6:af95:d553 with SMTP id d4-20020a9d51c4000000b005e6af95d553mr4192298oth.133.1649450054362; Fri, 08 Apr 2022 13:34:14 -0700 (PDT) Received: from xps15.. (66-90-144-107.dyn.grandenetworks.net. [66.90.144.107]) by smtp.googlemail.com with ESMTPSA id l12-20020a056808020c00b002da28c240dfsm8968219oie.16.2022.04.08.13.34.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Apr 2022 13:34:14 -0700 (PDT) From: Rob Herring To: Will Deacon , Mark Rutland Cc: Al Grant , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] arm_pmu: Validate single/group leader events Date: Fri, 8 Apr 2022 15:33:30 -0500 Message-Id: <20220408203330.4014015-1-robh@kernel.org> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220408_133417_388624_025245E8 X-CRM114-Status: GOOD ( 13.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org In the case where there is only a cycle counter available (i.e. PMCR_EL0.N is 0) and an event other than CPU cycles is opened, the open should fail as the event can never possibly be scheduled. However, the event validation when an event is opened is skipped when the group leader is opened. Fix this by always validating the group leader events. Reported-by: Al Grant Cc: Will Deacon Cc: Mark Rutland Signed-off-by: Rob Herring --- drivers/perf/arm_pmu.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index 9694370651fa..59d3980b8ca2 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -400,6 +400,9 @@ validate_group(struct perf_event *event) if (!validate_event(event->pmu, &fake_pmu, leader)) return -EINVAL; + if (event == leader) + return 0; + for_each_sibling_event(sibling, leader) { if (!validate_event(event->pmu, &fake_pmu, sibling)) return -EINVAL; @@ -489,12 +492,7 @@ __hw_perf_event_init(struct perf_event *event) local64_set(&hwc->period_left, hwc->sample_period); } - if (event->group_leader != event) { - if (validate_group(event) != 0) - return -EINVAL; - } - - return 0; + return validate_group(event); } static int armpmu_event_init(struct perf_event *event) -- 2.32.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel