> -----Original Message----- > From: Greg KH [mailto:g...@kroah.com] > Sent: Saturday, October 7, 2017 1:54 AM > To: Limonciello, Mario <mario_limoncie...@dell.com> > Cc: dvh...@infradead.org; Andy Shevchenko <andy.shevche...@gmail.com>; > LKML <linux-kernel@vger.kernel.org>; platform-driver-...@vger.kernel.org; > Andy Lutomirski <l...@kernel.org>; quasi...@google.com; > pali.ro...@gmail.com; r...@rjwysocki.net; mj...@google.com; h...@lst.de > Subject: Re: [PATCH v5 08/14] platform/x86: dell-smbios: Add a sysfs > interface for > SMBIOS tokens > > On Fri, Oct 06, 2017 at 11:59:52PM -0500, Mario Limonciello wrote: > > Currently userspace tools can access system tokens via the dcdbas > > kernel module and a SMI call that will cause the platform to execute > > SMM code. > > > > With a goal in mind of deprecating the dcdbas kernel module a different > > method for accessing these tokens from userspace needs to be created. > > > > This is intentionally marked to only be readable as root as it can > > contain sensitive information about the platform's configuration. > > > > MAINTAINERS was missing for this driver. Add myself and Pali to > > maintainers list for it. > > > > Signed-off-by: Mario Limonciello <mario.limoncie...@dell.com> > > --- > > .../ABI/testing/sysfs-platform-dell-smbios | 16 ++++++ > > MAINTAINERS | 7 +++ > > drivers/platform/x86/dell-smbios.c | 64 > > ++++++++++++++++++++++ > > 3 files changed, 87 insertions(+) > > create mode 100644 Documentation/ABI/testing/sysfs-platform-dell-smbios > > > > diff --git a/Documentation/ABI/testing/sysfs-platform-dell-smbios > b/Documentation/ABI/testing/sysfs-platform-dell-smbios > > new file mode 100644 > > index 000000000000..d97f4bd5bd91 > > --- /dev/null > > +++ b/Documentation/ABI/testing/sysfs-platform-dell-smbios > > @@ -0,0 +1,16 @@ > > +What: /sys/devices/platform/<platform>/tokens > > +Date: November 2017 > > +KernelVersion: 4.15 > > +Contact: "Mario Limonciello" <mario.limoncie...@dell.com> > > +Description: > > + A read-only description of Dell platform tokens > > + available on the machine. > > + > > + The tokens will be displayed in the following > > + machine readable format with each token on a > > + new line: > > + > > + ID Location value > > + > > + For example token: > > + 5 5 3 > > That's more than "one value per file" which is what sysfs requires, so > this isn't acceptable, sorry.
What's more acceptable to you to relay this information? Binary sysfs attribute and export the structure format in a uapi? or a collection of sysfs files? Eg: tokens/$x/id tokens/$x/location tokens/$s/value I'm guessing the latter is the better way to go. > > > +static ssize_t tokens_show(struct device *dev, > > + struct device_attribute *attr, char *buf) > > +{ > > + size_t off = 0; > > + int to_print; > > + int i; > > + > > + to_print = min(da_num_tokens, (int)(PAGE_SIZE - 1) / 15); > > + for (i = 0; i < to_print; i++) { > > + off += scnprintf(buf+off, PAGE_SIZE-off, "%04x\t%04x\t%04x\n", > > + da_tokens[i].tokenID, da_tokens[i].location, > > + da_tokens[i].value); > > Huge hint, if you are checking for the max size of the buffer for sysfs, > something is really wrong, and you need to redo your design. > > thanks, > > greg k-h