linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Dave Young <dyoung@redhat.com>,
	David Laight <David.Laight@aculab.com>,
	Matt Fleming <matt@codeblueprint.co.uk>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	"Tobin C. Harding" <me@tobin.cc>,
	LKML <linux-kernel@vger.kernel.org>,
	"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>
Subject: Re: [GIT PULL] hash addresses printed with %p
Date: Tue, 5 Dec 2017 09:25:07 +0000	[thread overview]
Message-ID: <CAKv+Gu9=4Rrgb3UgmP37LpTjd_xzZ2aVqA2KMAkek9Wxr8fSTA@mail.gmail.com> (raw)
In-Reply-To: <20171205085219.GA16055@kroah.com>

On 5 December 2017 at 08:52, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
> On Tue, Dec 05, 2017 at 04:45:37PM +0800, Dave Young wrote:
>> On 12/05/17 at 09:09am, Greg Kroah-Hartman wrote:
>> > On Tue, Dec 05, 2017 at 01:14:34PM +0800, Dave Young wrote:
>> > > On 12/04/17 at 03:00pm, Greg Kroah-Hartman wrote:
>> > > > On Mon, Dec 04, 2017 at 12:51:13PM +0000, David Laight wrote:
>> > > > > From: Ard Biesheuvel
>> > > > > > Sent: 04 December 2017 10:03
>> > > > > ...
>> > > > > > and uses __ATTR_RO() to emit initializers for it. __ATTR() initializes
>> > > > > > the .store member as well, which does not exists, and so it cannot be
>> > > > > > used directly.
>> > > > > >
>> > > > > > So we should either add a .store member that is always NULL, or we
>> > > > > > should add our own
>> > > > > >
>> > > > > > #define __ATTR_0400(_name) { \
>> > > > > > .attr = { .name = __stringify(_name), .mode = 0400 }, \
>> > > > > > .show = _name##_show, \
>> > > > > > }
>> > > > >
>> > > > > What about an __ATTR_RO_MODE(name, mode) that doesn't set the .store member.
>> > > > > Even if the mode allowed write, writes wouldn't happen.
>> > > >
>> > > > Ah, that might work, could you convert the other users of __ATTR() in
>> > > > the efi code to use it as well?
>> > >
>> > > $ grep __ATTR * -RI
>> > > efi.c:                    __ATTR(systab, 0400, systab_show, NULL);
>> > > efi.c:static struct kobj_attribute efi_attr_fw_vendor = __ATTR_RO(fw_vendor);
>> > > efi.c:static struct kobj_attribute efi_attr_runtime = __ATTR_RO(runtime);
>> > > efi.c:static struct kobj_attribute efi_attr_config_table = __ATTR_RO(config_table);
>> > > efi.c:    __ATTR_RO(fw_platform_size);
>> > > esrt.c:static struct esre_attribute esre_fw_class = __ATTR(fw_class, 0400,
>> > > esrt.c:static struct esre_attribute esre_##name = __ATTR(name, 0400, \
>> > > esrt.c:static struct kobj_attribute esrt_##name = __ATTR(name, 0400, \
>> > > runtime-map.c:static struct map_attribute map_type_attr = __ATTR_RO(type);
>> > > runtime-map.c:static struct map_attribute map_phys_addr_attr   = __ATTR_RO(phys_addr);
>> > > runtime-map.c:static struct map_attribute map_virt_addr_attr  = __ATTR_RO(virt_addr);
>> > > runtime-map.c:static struct map_attribute map_num_pages_attr  = __ATTR_RO(num_pages);
>> > > runtime-map.c:static struct map_attribute map_attribute_attr  = __ATTR_RO(attribute);
>> > >
>> > > Above is all the __ATTR users for drivers/firmware/efi/*, it makes sense
>> > > to update all __ATTR_RO to __ATTR_RO_MODE, so efi.c, runtime-map.c, and
>> > > drivers/firmware/dmi-sysfs.c can be updated.  But esrt.c __ATTR seems
>> > > not necessary.
>> > >
>> > > And if so __ATTR_RO_MODE(name, mode) still needs go to sysfs.h.
>> > >
>> > > I can do it but need confirm, Is this what you prefer?
>> >
>> > Yes, how about the patch below, it builds for me, haven't done anything
>> > other than that to test it :)
>>
>> Thanks! Let me do a kexec test and a boot test for esrt.
>>
>> >
>> > Also, what's with the multi-line sysfs file systab?  That's really not
>> > allowed, can you please remove it?  Also the first check for !kobj and
>> > !buf is funny, that can never happen.
>>
>> I thought to do that, but later worried about it will break things:
>> http://lists.infradead.org/pipermail/kexec/2013-December/010759.html
>
> Heh, I guess I complained about this in the past :)
>
> So what userspace tool uses it?
>

On x86, it is mostly tools that read DMI tables via /dev/mem, and use
/sys/firmware/efi/systab to locate them. dmidecode, lscpu, etc

That does mean we could investigate which entries are actually used,
and at least start removing the ones we don't need.

> Are these values all exported through sysfs already?  If not, do that
> first.
>
>> I also thought to add code comment to avoid future expanding of this
>> file. Maybe we can do this now.
>
> Please do, but it should be a separate patch.
>
> thanks,
>
> greg k-h

  reply	other threads:[~2017-12-05  9:25 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-29  4:59 [GIT PULL] hash addresses printed with %p Tobin C. Harding
2017-11-29 19:22 ` Linus Torvalds
2017-11-29 19:39   ` Linus Torvalds
2017-11-29 20:54     ` Joe Perches
2017-11-29 21:05       ` Linus Torvalds
2017-11-29 21:31     ` Kees Cook
2017-11-29 21:08   ` Tobin C. Harding
2017-11-29 21:14     ` Linus Torvalds
2017-11-29 21:28       ` Tobin C. Harding
2017-11-29 21:36       ` Linus Torvalds
2017-11-30 16:32         ` Greg Kroah-Hartman
2017-11-30 17:10           ` Greg Kroah-Hartman
2017-11-30 17:18             ` Ard Biesheuvel
2017-12-01  9:48               ` Greg Kroah-Hartman
2017-12-01  9:54                 ` Ard Biesheuvel
2017-12-01 15:34                   ` Greg Kroah-Hartman
2017-12-01 16:33                     ` Kees Cook
2017-12-02  8:51                       ` Ard Biesheuvel
2017-12-02 22:22                   ` Matt Fleming
2017-12-03  1:15                     ` Dave Young
2017-12-04  2:02                     ` Dave Young
2017-12-04  2:33                       ` Joe Perches
2017-12-04  2:39                         ` Dave Young
2017-12-04  7:36                       ` Greg Kroah-Hartman
2017-12-04  9:29                         ` Dave Young
2017-12-04  9:34                           ` Greg Kroah-Hartman
2017-12-04  9:48                             ` Ard Biesheuvel
2017-12-04  9:59                               ` Greg Kroah-Hartman
2017-12-04 10:03                                 ` Ard Biesheuvel
2017-12-04 10:11                                   ` Greg Kroah-Hartman
2017-12-04 12:51                                   ` David Laight
2017-12-04 14:00                                     ` Greg Kroah-Hartman
2017-12-05  5:14                                       ` Dave Young
2017-12-05  8:09                                         ` Greg Kroah-Hartman
2017-12-05  8:45                                           ` Dave Young
2017-12-05  8:52                                             ` Greg Kroah-Hartman
2017-12-05  9:25                                               ` Ard Biesheuvel [this message]
2017-12-05 10:15                                                 ` Greg Kroah-Hartman
2017-12-05  9:32                                               ` Dave Young
2017-12-05  9:24                                             ` Dave Young
2017-12-05 10:14                                               ` Greg Kroah-Hartman
2017-11-30 23:17             ` Linus Torvalds
2017-12-01  9:47               ` Greg Kroah-Hartman

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='CAKv+Gu9=4Rrgb3UgmP37LpTjd_xzZ2aVqA2KMAkek9Wxr8fSTA@mail.gmail.com' \
    --to=ard.biesheuvel@linaro.org \
    --cc=David.Laight@aculab.com \
    --cc=dyoung@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@codeblueprint.co.uk \
    --cc=me@tobin.cc \
    --cc=torvalds@linux-foundation.org \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).