Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp1525670rdh; Mon, 25 Sep 2023 16:02:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHoldWOWFTZBKJd2+uAruGl41EWxPyopZvy6g/4MmUeFNE5vc9aQ5DjEctEIOGCsPwbcCDv X-Received: by 2002:a05:6358:2619:b0:134:c37f:4b5c with SMTP id l25-20020a056358261900b00134c37f4b5cmr11926239rwc.22.1695682971504; Mon, 25 Sep 2023 16:02:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695682971; cv=none; d=google.com; s=arc-20160816; b=y6BBVFq3U+TDgUON6TjCrh+6QN5xemF6HA3WJwSg89q6S4BGznj9wY/yt+bl4kfFRD OOazZF7daet88AbkugdKtEnmnkC55BziZQbdrDq0HfOUrcPzgj4Fy4AaULRs2pE/Kq3Z k2hL25xpAVNvECz/CsTcP491ruyCnn438BGrWuxYDSgiTXF8vvHoO0I7GWV7aBAnmmAP xgbinabcmrDIqnIovlZsEgn8Kjq72kcIAZGBS5cyrtOtYZPUcWDZn/YdlJMBms3K+wOw GIEAYayDbRXhslRXFn0l+pOdLGwbD17rKYXP8M2IFrrjVAEot9YciEgRmnHz4yEnW7X4 cdGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=a1F9rg4X23ujFzzgF5l8L8aKk/znEnb8MB1jEXGz6ng=; fh=7jsYsxQ0RLx9XErkbbKJzfy48EIhVhYcMsqh+iEHe34=; b=UfcrOk05Kqxq2OTU7NlC6DVBiMOeARUHrvuuYxU+aZi058QkeVkhMP5xzOeM5guA6S dPASHz49YMVIvqbScAr7hy0tnjnqJB4m+lyrKhjxdTvhtSj5j1VlpR0fiX4zyP4R80xW PZ52uRsan0IKzP1KMg9r6FxIcOU6blfFf9Rj3QG4pb8Rdn/nZ85z50tQtbiExJFlrtnX 9LObmAHGxOqeCoj8AwLFj/fSgh+Kxq2mk6Opm5kgYcqazokoERuOatbIu91kOKhlR0W4 2OZXMpTFqyRZ1HKM6WiDDsXnNSOry1znHaAfUptiamOWNyGcluToh84bao9+EntBL5Rx jyqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=g+CjNbBU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id l195-20020a633ecc000000b00578d2d19575si11213796pga.237.2023.09.25.16.02.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 16:02:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=g+CjNbBU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 03EE8801E13F; Mon, 25 Sep 2023 10:56:33 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231360AbjIYR4g (ORCPT + 99 others); Mon, 25 Sep 2023 13:56:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230319AbjIYR4e (ORCPT ); Mon, 25 Sep 2023 13:56:34 -0400 Received: from mail-oo1-xc2f.google.com (mail-oo1-xc2f.google.com [IPv6:2607:f8b0:4864:20::c2f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5A4C116; Mon, 25 Sep 2023 10:56:27 -0700 (PDT) Received: by mail-oo1-xc2f.google.com with SMTP id 006d021491bc7-57ad95c555eso3870011eaf.3; Mon, 25 Sep 2023 10:56:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695664587; x=1696269387; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=a1F9rg4X23ujFzzgF5l8L8aKk/znEnb8MB1jEXGz6ng=; b=g+CjNbBUnovRogi7wun3lBlAcEshVtBKflFUL4/Es29kOdheOO8p3chE6gXgRC3zyt AdfskP2/RRLOxSm0/zNsGlaFbDdCpsYmREZ4+Cc5w07MSZktPXUhnneL9dRDiQb/m6at zqDFzBwIfgiBrCVIgE8mHFnYqPEeSVTxvWw6uXl5z2aEqBtjePeq2+zE0v1bhBZPIpkk Ewhaw4iJ0+Rg3WP2Wr33cCbpJr3gvR7siBS01WEVw2g3f9QBOTVWIJjMppzLzcg9apVX qE5jFdC1J9rJ6IRRRS6ZP/yHm/7wD1M6Sg4wKCtIYOxPZwFkwsACs613pYtvbaYV3ZM6 RcGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695664587; x=1696269387; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a1F9rg4X23ujFzzgF5l8L8aKk/znEnb8MB1jEXGz6ng=; b=SMAU9VqdgPQV4mbS8iCFXT0kvI+RBF50xd0u5fTijODCeS1K4PFOo6IKn2ZaO7Y2s/ JalYjlgQLp4DaEExQ6V2Ix+I1T5YAeW3xNBkaCwjI2HbIwG7wFJHLY0auMZiPDcxDNAe EDb3Ubp+NDgmqtjaOQ+rMr/PhJlgj0d8ju673hptjA7JLF2+zuwICS8pLfsQDpuhrsqh YLpiriCfeeUEOZUc8bu3fnB4+lNDLUeJQfviakJUohvXHYqVqaTERAA2WPbMSv13cVra uCM3VGtsMxP37hSZhgrYb/CwD2aElLmAk8/l5i4AxqDahnb/GvrMT552v8qQa9KNkF5W 5YPg== X-Gm-Message-State: AOJu0Yz0z29CxjYW0kRzdAS0fAc4SAThVYXF32YyKXlrpNvKMt7inXo8 VTgb1mb9cYyllQFTxpNKJ1xDqVp5G1/hdj2fvUI= X-Received: by 2002:a05:6870:c227:b0:1db:3679:198a with SMTP id z39-20020a056870c22700b001db3679198amr8758871oae.24.1695664587047; Mon, 25 Sep 2023 10:56:27 -0700 (PDT) MIME-Version: 1.0 References: <20230922173110.work.084-kees@kernel.org> <20230922173216.3823169-1-keescook@chromium.org> <2635922e-f52a-4e91-40c6-4f1358972786@amd.com> <202309251051.EE3ECE7B@keescook> In-Reply-To: <202309251051.EE3ECE7B@keescook> From: Alex Deucher Date: Mon, 25 Sep 2023 13:56:16 -0400 Message-ID: Subject: Re: [PATCH 1/9] drm/amd/pm: Annotate struct smu10_voltage_dependency_table with __counted_by To: Kees Cook Cc: =?UTF-8?Q?Christian_K=C3=B6nig?= , David Airlie , Tejas Upadhyay , Emma Anholt , Tom Rix , llvm@lists.linux.dev, dri-devel@lists.freedesktop.org, Chris Wilson , Prike Liang , Huang Rui , Gerd Hoffmann , Andrzej Hajda , Marijn Suijten , Matthew Brost , Karol Herbst , Neil Armstrong , amd-gfx@lists.freedesktop.org, Kuogee Hsieh , Nathan Chancellor , VMware Graphics Reviewers , Ben Skeggs , Andi Shyti , nouveau@lists.freedesktop.org, David Airlie , virtualization@lists.linux-foundation.org, linux-hardening@vger.kernel.org, Lijo Lazar , Yifan Zhang , linux-arm-msm@vger.kernel.org, intel-gfx@lists.freedesktop.org, Kevin Wang , Abhinav Kumar , Melissa Wen , Dmitry Baryshkov , Gurchetan Singh , Maxime Ripard , Rodrigo Vivi , Evan Quan , Sean Paul , Tvrtko Ursulin , Xiaojian Du , Le Ma , freedreno@lists.freedesktop.org, Bjorn Andersson , "Pan, Xinhui" , Nick Desaulniers , linux-kernel@vger.kernel.org, Alex Deucher , Nirmoy Das , Lang Yu , John Harrison , Hawking Zhang Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Mon, 25 Sep 2023 10:56:33 -0700 (PDT) On Mon, Sep 25, 2023 at 1:52=E2=80=AFPM Kees Cook w= rote: > > On Mon, Sep 25, 2023 at 08:30:30AM +0200, Christian K=C3=B6nig wrote: > > Am 22.09.23 um 19:41 schrieb Alex Deucher: > > > On Fri, Sep 22, 2023 at 1:32=E2=80=AFPM Kees Cook wrote: > > > > Prepare for the coming implementation by GCC and Clang of the __cou= nted_by > > > > attribute. Flexible array members annotated with __counted_by can h= ave > > > > their accesses bounds-checked at run-time checking via CONFIG_UBSAN= _BOUNDS > > > > (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-f= amily > > > > functions). > > > > > > > > As found with Coccinelle[1], add __counted_by for struct smu10_volt= age_dependency_table. > > > > > > > > [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/exam= ples/counted_by.cocci > > > > > > > > Cc: Evan Quan > > > > Cc: Alex Deucher > > > > Cc: "Christian K=C3=B6nig" > > > > Cc: "Pan, Xinhui" > > > > Cc: David Airlie > > > > Cc: Daniel Vetter > > > > Cc: Xiaojian Du > > > > Cc: Huang Rui > > > > Cc: Kevin Wang > > > > Cc: amd-gfx@lists.freedesktop.org > > > > Cc: dri-devel@lists.freedesktop.org > > > > Signed-off-by: Kees Cook > > > Acked-by: Alex Deucher > > > > Mhm, I'm not sure if this is a good idea. That is a structure filled in= by > > the firmware, isn't it? > > > > That would imply that we might need to byte swap count before it is > > checkable. > > The script found this instance because of this: > > static int smu10_get_clock_voltage_dependency_table(struct pp_hwmgr *hwmg= r, > struct smu10_voltage_dependency_table **pptable, > uint32_t num_entry, const DpmClock_t *pclk_depend= ency_table) > { > uint32_t i; > struct smu10_voltage_dependency_table *ptable; > > ptable =3D kzalloc(struct_size(ptable, entries, num_entry), GFP_K= ERNEL); > if (NULL =3D=3D ptable) > return -ENOMEM; > > ptable->count =3D num_entry; > > So the implication is that it's native byte order... but you tell me! I > certainly don't want this annotation if it's going to break stuff. :) In this case, the code is for an integrated GPU in an x86 CPU so the firmware and driver endianness match. You wouldn't find a stand alone dGPU that uses this structure. In this case it's ok. False alarm. Alex