linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: <Mario.Limonciello@dell.com>
To: <hch@lst.de>, <greg@kroah.com>
Cc: <dvhart@infradead.org>, <andy.shevchenko@gmail.com>,
	<linux-kernel@vger.kernel.org>,
	<platform-driver-x86@vger.kernel.org>, <luto@kernel.org>,
	<quasisec@google.com>, <pali.rohar@gmail.com>,
	<rjw@rjwysocki.net>, <mjg59@google.com>,
	<gnomes@lxorguk.ukuu.org.uk>
Subject: RE: [PATCH v10 13/15] platform/x86: wmi: create userspace      interface for drivers
Date: Fri, 20 Oct 2017 15:07:27 +0000	[thread overview]
Message-ID: <c9ceac21e74b4b37b8393ab76bb2238f@ausx13mpc120.AMER.DELL.COM> (raw)
In-Reply-To: <20171020144839.GA4550@lst.de>

> -----Original Message-----
> From: Christoph Hellwig [mailto:hch@lst.de]
> Sent: Friday, October 20, 2017 9:49 AM
> To: Limonciello, Mario <Mario_Limonciello@Dell.com>
> Cc: greg@kroah.com; dvhart@infradead.org; andy.shevchenko@gmail.com; linux-
> kernel@vger.kernel.org; platform-driver-x86@vger.kernel.org; luto@kernel.org;
> quasisec@google.com; pali.rohar@gmail.com; rjw@rjwysocki.net;
> mjg59@google.com; hch@lst.de; gnomes@lxorguk.ukuu.org.uk
> Subject: Re: [PATCH v10 13/15] platform/x86: wmi: create userspace interface for
> drivers
> 
> On Fri, Oct 20, 2017 at 01:54:36PM +0000, Mario.Limonciello@dell.com wrote:
> > > -----Original Message-----
> > > From: Greg KH [mailto:greg@kroah.com]
> > > Sent: Friday, October 20, 2017 8:22 AM
> > > To: Limonciello, Mario <Mario_Limonciello@Dell.com>
> > > Cc: dvhart@infradead.org; Andy Shevchenko <andy.shevchenko@gmail.com>;
> > > LKML <linux-kernel@vger.kernel.org>; platform-driver-x86@vger.kernel.org;
> Andy
> > > Lutomirski <luto@kernel.org>; quasisec@google.com; pali.rohar@gmail.com;
> > > rjw@rjwysocki.net; mjg59@google.com; hch@lst.de; Alan Cox
> > > <gnomes@lxorguk.ukuu.org.uk>
> > > Subject: Re: [PATCH v10 13/15] platform/x86: wmi: create userspace interface
> for
> > > drivers
> > >
> > > On Thu, Oct 19, 2017 at 12:50:16PM -0500, Mario Limonciello wrote:
> > > > +	wblock = container_of(wdev, struct wmi_block, dev);
> > > > +	if (!wblock)
> > > > +		return -ENODEV;
> > >
> > > How can container_of() ever return NULL?  If so, you have a very odd
> > > memory layout...
> > >
> >
> > I'm assuming this is from set_required_buffer_size right?
> >
> > The symbol is exported out for other drivers to use.  It's possible for another
> > driver to allocate a wmi_device structure that's not part of a wblock.
> 
> container_of can never return NULL, it does arithmetics on a pointer
> based on the type it is embedded into.
> 
> You better don't register a wmi_device that's not part of the block
> with your driver.  Which others drivers are those, btw?

No drivers do this today, it's obviously not a good idea.
I was just saying it's hypothetical.

I see that the other methods exported (wmi_evaluate_method and such) to drivers 
require that it's part of a wblock, so this seems like a reasonable expectation
from other drivers.  I'll remove this invalid check.

> > This one it's possible that a driver isn't bound to a device, and when
> > that happens wdriver is NULL.

 
> See above, no it can't.  Maybe wblock->dev.dev.driver can be NULL,
> but in that case you must not call container_of on it.

> container_of() is just pointer math.  If you pass in NULL, you will get
> a non-NULL value (incremented or decremented).  If you pass in a very
> tiny number, you might get NULL, but that's still really wrong.
> 
> In other words, these tests will _NEVER_ fail.  Go ahead, try it :)

I was seeing failures (with NULL) when I tested with some drivers unbound, 
but I now understand my check is definitely wrong.  I'll adjust the check and make 
sure it's valid.

Thank you both for your feedback here.

  reply	other threads:[~2017-10-20 15:07 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-19 17:50 [PATCH v10 00/15] Introduce support for Dell SMBIOS over WMI Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 01/15] platform/x86: wmi: Add new method wmidev_evaluate_method Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 02/15] platform/x86: dell-wmi: increase severity of some failures Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 03/15] platform/x86: dell-wmi: clean up wmi descriptor check Mario Limonciello
2017-10-19 17:55   ` Pali Rohár
2017-10-19 17:50 ` [PATCH v10 04/15] platform/x86: dell-wmi: don't check length returned Mario Limonciello
2017-10-19 17:56   ` Pali Rohár
2017-10-19 17:50 ` [PATCH v10 05/15] platform/x86: dell-wmi-descriptor: split WMI descriptor into it's own driver Mario Limonciello
2017-10-19 18:06   ` Pali Rohár
2017-10-19 17:50 ` [PATCH v10 06/15] platform/x86: wmi: Don't allow drivers to get each other's GUIDs Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 07/15] platform/x86: dell-smbios: only run if proper oem string is detected Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 08/15] platform/x86: dell-smbios: Add a sysfs interface for SMBIOS tokens Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 09/15] platform/x86: dell-smbios: Introduce dispatcher for SMM calls Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 10/15] platform/x86: dell-smbios-wmi: Add new WMI dispatcher driver Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 11/15] platform/x86: dell-smbios-smm: test for WSMT Mario Limonciello
2017-10-19 18:09   ` Pali Rohár
2017-10-19 18:12     ` Mario.Limonciello
2017-10-19 22:46       ` Darren Hart
2017-10-19 17:50 ` [PATCH v10 12/15] platform/x86: dell-smbios: Add filtering support Mario Limonciello
2018-01-05 11:13   ` Pali Rohár
2018-01-05 14:32     ` Mario.Limonciello
2018-01-05 14:44       ` Pali Rohár
2018-01-05 14:48         ` Mario.Limonciello
2018-01-27 14:51           ` Pali Rohár
2018-01-29 16:22             ` Mario.Limonciello
2018-01-29 16:44               ` Pali Rohár
2018-01-05 14:44       ` Andy Shevchenko
2017-10-19 17:50 ` [PATCH v10 13/15] platform/x86: wmi: create userspace interface for drivers Mario Limonciello
2017-10-20 13:21   ` Greg KH
2017-10-20 13:54     ` Mario.Limonciello
2017-10-20 14:48       ` Christoph Hellwig
2017-10-20 15:07         ` Mario.Limonciello [this message]
2017-10-20 15:08           ` Christoph Hellwig
2017-10-20 15:31             ` Mario.Limonciello
2017-10-20 14:57       ` Greg KH
2017-10-20 13:22   ` Greg KH
2017-10-20 13:54     ` Mario.Limonciello
2017-10-20 13:23   ` Greg KH
2017-10-20 14:15     ` Mario.Limonciello
2017-10-19 17:50 ` [PATCH v10 14/15] platform/x86: dell-smbios-wmi: introduce userspace interface Mario Limonciello
2017-10-19 17:50 ` [PATCH v10 15/15] tools/wmi: add a sample for dell smbios communication over WMI Mario Limonciello
2017-11-09  9:52 ` [PATCH v10 00/15] Introduce support for Dell SMBIOS " Pavel Machek

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=c9ceac21e74b4b37b8393ab76bb2238f@ausx13mpc120.AMER.DELL.COM \
    --to=mario.limonciello@dell.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=dvhart@infradead.org \
    --cc=gnomes@lxorguk.ukuu.org.uk \
    --cc=greg@kroah.com \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mjg59@google.com \
    --cc=pali.rohar@gmail.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=quasisec@google.com \
    --cc=rjw@rjwysocki.net \
    /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).