Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp1797322pxb; Mon, 22 Feb 2021 11:06:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJymPxAMJDii4bhwJSAMq7YtUeY93T+FZdv7HhJhscf1B3pIq6cVDB/jc/087DsgXpnS24Wu X-Received: by 2002:a05:6402:c0a:: with SMTP id co10mr14853325edb.351.1614020802810; Mon, 22 Feb 2021 11:06:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614020802; cv=none; d=google.com; s=arc-20160816; b=eGAsTmljDkyJXUZ1AOJquuc791jGEfp5Nh3cttfTScKTbHqRESgIZLgcLqS7QAPNLV V9ht5SmRr+h3gBioA9WD8sd7PmG9koKOn4vKmYiGWi+Cup0jvC+a3fYEEoQg5yNSUSVT MIvRr4zv80DPgCpoe1S8ylfrg2+OiikcoBEqLsbwbvb24vadVs3qJbE/lLjOf9X58pup 5YynrBM6vdoxxiM9+Yf/rPvMoTjtkcd0Rk51Yyy2PY2CbUIiWCB5A5aElgiyiWX03aRb sCe6ToJ0Gvs4ohQjwSD6nwLtuJctiUq7zV+Q5jYLbMe1pDalBJMKU+dojZ6tlwzFxIeb mYJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=l7tjb/ULPTs0YK9djuSw4jI/piZzj9Be22oeBt6d4gY=; b=wYenus2u8BA3hQWPz8865E1Er8SnJx78xzE75S+YWFKxaRarn/uQFV2bGc9R+n0tJ5 7/22Zv6tO01NXh1uUTGAZ6EACSx/gW77lz973vMiNFXuGbEi186Ayv/8rUkhnkZxRmw2 T5sF0LFCCw+yP9gAQ8jdkhrQpp7y9dBNCez5HF6TEhUk9NVueZ8k+0IVe0LmfZ8eYtoa VMIzP/GIW8iWv+aJrsEGwKoUyZGLzRFYoYBaGtpOlgJrSnJPiAUFNxDW9KC9nirCmmy+ +iMJpff6OgxaDHrJmvMZKh34pswIc9PjY8WMCozWVm4l69uEh5UH8UJ93KQpop8lsTZT C5MQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=mrY2NByH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i26si11297400edr.60.2021.02.22.11.06.18; Mon, 22 Feb 2021 11:06:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=mrY2NByH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232763AbhBVTF2 (ORCPT + 99 others); Mon, 22 Feb 2021 14:05:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33544 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232606AbhBVTD2 (ORCPT ); Mon, 22 Feb 2021 14:03:28 -0500 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C0423C06174A for ; Mon, 22 Feb 2021 11:02:47 -0800 (PST) Received: by mail-lf1-x133.google.com with SMTP id j19so7357092lfr.12 for ; Mon, 22 Feb 2021 11:02:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=l7tjb/ULPTs0YK9djuSw4jI/piZzj9Be22oeBt6d4gY=; b=mrY2NByHHyaff5bYeda64M/VoEosJ32rOPg4tTipSJbWFIY8bKAiJGN3qURfIutpyz cKHTAdFT3H9fWNcQWE2vXUst95QbVQs61PEsUdkOp7sG0fP2gxNN5ic1tPrEInT/BFCC DdjFE6QkIVos4s3D0CwyGIsOIS7R2loRI6I3YgmoFTLjfYtMpCnkAXXeYXEvbzQfP7xh hZL+lMLgfhKTczJIeW/5/P43e8Jte8+AMEoZg7Zk7fIwbSVfeWZMzJi5nYZSyuhx6wB3 pa+VbIe1bTeAVIh3SXAnnnoSQJbpwwYw9zj6co1Uc5gfn4SJlHujHmfF00kn4ZC+/sb3 ikuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=l7tjb/ULPTs0YK9djuSw4jI/piZzj9Be22oeBt6d4gY=; b=loqJn2fnwL+KT6wX7OMGoJPTft8j2yUwH0U2lyq1+VLRjAPL9PBBaVpbK6iyRwDgoZ gA14UmSOhVK3Ibpw6lvNk+JVbGIjFurRdOGTq2ml5v3zFRbTDXTATjHP64Z79v5n/i2G 3U/TGx8bOeQmLFDhDQB9D1J/J/kUZCumSkN6Zq790FJCu6Q2sYiZ6KxNgG3p4vDdytP5 VfnZeSNLUMDqnEhEdecZfgvTF9lDE1l6+Q98g4EIgXRSIiooqxOqnCS9OHTyidY4B4xT ek6dXx0RFCRNXkwYUFiEm31lo/myXmfDy/QXOML/tb70+KBIziptTMMvalscnZQkkF7M c4pg== X-Gm-Message-State: AOAM5329yuo3QmdMRHHTVdTplSZt9or2oJ86iHBIlW80843lVJqU8513 wOE2BWv6ohNk0UYEJUeZs2TRBX2953nQJyDvdV8sag== X-Received: by 2002:ac2:515c:: with SMTP id q28mr5267546lfd.297.1614020566033; Mon, 22 Feb 2021 11:02:46 -0800 (PST) MIME-Version: 1.0 References: <20210211194258.4137998-1-nathan@kernel.org> In-Reply-To: <20210211194258.4137998-1-nathan@kernel.org> From: Nick Desaulniers Date: Mon, 22 Feb 2021 11:02:34 -0800 Message-ID: Subject: Re: [PATCH] qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute To: Gabriel Somlo , "Michael S. Tsirkin" Cc: Sami Tolvanen , Kees Cook , qemu-devel@nongnu.org, LKML , clang-built-linux , Nathan Chancellor Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Did this happen to get picked up already? EOM On Thu, Feb 11, 2021 at 11:43 AM Nathan Chancellor wrote: > > fw_cfg_showrev() is called by an indirect call in kobj_attr_show(), > which violates clang's CFI checking because fw_cfg_showrev()'s second > parameter is 'struct attribute', whereas the ->show() member of 'struct > kobj_structure' expects the second parameter to be of type 'struct > kobj_attribute'. > > $ cat /sys/firmware/qemu_fw_cfg/rev > 3 > > $ dmesg | grep "CFI failure" > [ 26.016832] CFI failure (target: fw_cfg_showrev+0x0/0x8): > > Fix this by converting fw_cfg_rev_attr to 'struct kobj_attribute' where > this would have been caught automatically by the incompatible pointer > types compiler warning. Update fw_cfg_showrev() accordingly. > > Fixes: 75f3e8e47f38 ("firmware: introduce sysfs driver for QEMU's fw_cfg device") > Link: https://github.com/ClangBuiltLinux/linux/issues/1299 > Signed-off-by: Nathan Chancellor > --- > drivers/firmware/qemu_fw_cfg.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/firmware/qemu_fw_cfg.c b/drivers/firmware/qemu_fw_cfg.c > index 0078260fbabe..172c751a4f6c 100644 > --- a/drivers/firmware/qemu_fw_cfg.c > +++ b/drivers/firmware/qemu_fw_cfg.c > @@ -299,15 +299,13 @@ static int fw_cfg_do_platform_probe(struct platform_device *pdev) > return 0; > } > > -static ssize_t fw_cfg_showrev(struct kobject *k, struct attribute *a, char *buf) > +static ssize_t fw_cfg_showrev(struct kobject *k, struct kobj_attribute *a, > + char *buf) > { > return sprintf(buf, "%u\n", fw_cfg_rev); > } > > -static const struct { > - struct attribute attr; > - ssize_t (*show)(struct kobject *k, struct attribute *a, char *buf); > -} fw_cfg_rev_attr = { > +static const struct kobj_attribute fw_cfg_rev_attr = { > .attr = { .name = "rev", .mode = S_IRUSR }, > .show = fw_cfg_showrev, > }; > > base-commit: 92bf22614b21a2706f4993b278017e437f7785b3 > -- > 2.30.1 > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20210211194258.4137998-1-nathan%40kernel.org. -- Thanks, ~Nick Desaulniers