From: Nathan Chancellor <nathan@kernel.org> To: Nick Desaulniers <ndesaulniers@google.com> Cc: Gabriel Somlo <somlo@cmu.edu>, "Michael S. Tsirkin" <mst@redhat.com>, Sami Tolvanen <samitolvanen@google.com>, Kees Cook <keescook@chromium.org>, qemu-devel@nongnu.org, LKML <linux-kernel@vger.kernel.org>, clang-built-linux <clang-built-linux@googlegroups.com> Subject: Re: [PATCH] qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute Date: Mon, 22 Feb 2021 12:08:06 -0700 [thread overview] Message-ID: <20210222190806.GA41637@24bbad8f3778> (raw) In-Reply-To: <CAKwvOdkJfJ+LDspz04tsjd=55LxF5rgTOAXt0cPxTyCCUBqgBw@mail.gmail.com> On Mon, Feb 22, 2021 at 11:02:34AM -0800, Nick Desaulniers wrote: > Did this happen to get picked up already? EOM I have not gotten an email saying it has been picked up nor does it appear to be in -next. Cheers, Nathan > On Thu, Feb 11, 2021 at 11:43 AM Nathan Chancellor <nathan@kernel.org> 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 <nathan@kernel.org> > > --- > > 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 > >
WARNING: multiple messages have this Message-ID (diff)
From: Nathan Chancellor <nathan@kernel.org> To: Nick Desaulniers <ndesaulniers@google.com> Cc: Kees Cook <keescook@chromium.org>, "Michael S. Tsirkin" <mst@redhat.com>, Gabriel Somlo <somlo@cmu.edu>, qemu-devel@nongnu.org, LKML <linux-kernel@vger.kernel.org>, clang-built-linux <clang-built-linux@googlegroups.com>, Sami Tolvanen <samitolvanen@google.com> Subject: Re: [PATCH] qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute Date: Mon, 22 Feb 2021 12:08:06 -0700 [thread overview] Message-ID: <20210222190806.GA41637@24bbad8f3778> (raw) In-Reply-To: <CAKwvOdkJfJ+LDspz04tsjd=55LxF5rgTOAXt0cPxTyCCUBqgBw@mail.gmail.com> On Mon, Feb 22, 2021 at 11:02:34AM -0800, Nick Desaulniers wrote: > Did this happen to get picked up already? EOM I have not gotten an email saying it has been picked up nor does it appear to be in -next. Cheers, Nathan > On Thu, Feb 11, 2021 at 11:43 AM Nathan Chancellor <nathan@kernel.org> 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 <nathan@kernel.org> > > --- > > 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 > >
next prev parent reply other threads:[~2021-02-22 19:23 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-11 19:42 [PATCH] qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute Nathan Chancellor 2021-02-11 19:42 ` Nathan Chancellor 2021-02-11 20:41 ` Sami Tolvanen 2021-02-11 20:41 ` Sami Tolvanen 2021-02-24 18:08 ` Sedat Dilek 2021-02-24 18:08 ` Sedat Dilek 2021-02-22 19:02 ` Nick Desaulniers 2021-02-22 19:02 ` Nick Desaulniers 2021-02-22 19:08 ` Nathan Chancellor [this message] 2021-02-22 19:08 ` Nathan Chancellor 2021-02-25 4:57 ` Kees Cook 2021-02-25 4:57 ` Kees Cook 2021-02-25 10:41 ` Philippe Mathieu-Daudé 2021-02-25 10:41 ` Philippe Mathieu-Daudé 2021-02-25 21:25 ` Kees Cook 2021-02-25 21:25 ` Kees Cook 2021-04-02 6:42 ` Sedat Dilek 2021-04-02 6:42 ` Sedat Dilek 2021-04-02 18:25 ` Kees Cook 2021-04-02 18:25 ` Kees Cook 2021-04-02 18:31 ` Nathan Chancellor 2021-04-02 18:31 ` Nathan Chancellor 2021-04-02 18:44 ` Sedat Dilek 2021-04-02 18:44 ` Sedat Dilek
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210222190806.GA41637@24bbad8f3778 \ --to=nathan@kernel.org \ --cc=clang-built-linux@googlegroups.com \ --cc=keescook@chromium.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mst@redhat.com \ --cc=ndesaulniers@google.com \ --cc=qemu-devel@nongnu.org \ --cc=samitolvanen@google.com \ --cc=somlo@cmu.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.