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 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id F160FC433F5 for ; Fri, 8 Apr 2022 20:34:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239532AbiDHUgX (ORCPT ); Fri, 8 Apr 2022 16:36:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232768AbiDHUgU (ORCPT ); Fri, 8 Apr 2022 16:36:20 -0400 Received: from mail-ot1-f48.google.com (mail-ot1-f48.google.com [209.85.210.48]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1901DB20 for ; Fri, 8 Apr 2022 13:34:15 -0700 (PDT) Received: by mail-ot1-f48.google.com with SMTP id e25-20020a0568301e5900b005b236d5d74fso6918514otj.0 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=qf9hwC2ZAJUrQGucNvdkwy9P94NQ8YUJKTc9ftTiIAGVg717G2CRCsPSbCJ6QXaTXD Tfik5F8Aj4fWdkSr6sqTytj3f1nNXEl68b/Omv/Z0IVPiIvoaj8yu1XUunLvc7vIDCy7 WLS2UOttB/CajtlOwArqft/vqJADfdcI2w/oJ7lavxpUUBs8qPjllbYetqPL+qKS3m0G LTvU8HnLXpA4CHfIK8aOJD18DAhupXBkF38Gs5CsKD+uztRVHTS7+aAX+6N40pfTtYMO HkaO1YkTBu8JCTMtGYHJlwdf4omD+PZiC9s25xrG2JylL3BkdUajNJy91RrzFXVD+ynp wglg== X-Gm-Message-State: AOAM5312g33euLzxTMWECruGgSuPISuy0sz713BzFNzHKaYCoU46Lze5 Pfn6+AcQXJWnsTiDVM2CpeL50Ul9Yg== 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 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.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