diff mbox

[v9,04/17] platform/x86: dell-wmi: allow 32k return size in the descriptor

Message ID 68ba1b833a86f80b89eedfda8417ca0cc774d321.1508259916.git.mario.limonciello@dell.com (mailing list archive)
State Superseded, archived
Delegated to: Darren Hart
Headers show

Commit Message

Limonciello, Mario Oct. 17, 2017, 6:21 p.m. UTC
Some platforms this year will be adopting 32k WMI buffer, so don't
complain when encountering those.

Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
Reviewed-by: Edward O'Callaghan <quasisec@google.com>
---
 drivers/platform/x86/dell-wmi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Pali Rohár Oct. 17, 2017, 6:46 p.m. UTC | #1
On Tuesday 17 October 2017 13:21:48 Mario Limonciello wrote:
> Some platforms this year will be adopting 32k WMI buffer, so don't
> complain when encountering those.
> 
> Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
> Reviewed-by: Edward O'Callaghan <quasisec@google.com>
> ---
>  drivers/platform/x86/dell-wmi.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> index ece2fe341f01..2578dff90a14 100644
> --- a/drivers/platform/x86/dell-wmi.c
> +++ b/drivers/platform/x86/dell-wmi.c
> @@ -624,7 +624,7 @@ static void dell_wmi_input_destroy(struct wmi_device *wdev)
>   * Vendor Signature          0       4    "DELL"
>   * Object Signature          4       4    " WMI"
>   * WMI Interface Version     8       4    <version>
> - * WMI buffer length        12       4    4096
> + * WMI buffer length        12       4    4096 or 32768
>   */
>  static int dell_wmi_check_descriptor_buffer(struct wmi_device *wdev)
>  {
> @@ -674,7 +674,7 @@ static int dell_wmi_check_descriptor_buffer(struct wmi_device *wdev)
>  		dev_warn(&wdev->dev, "Dell descriptor buffer has unknown version (%u)\n",
>  			buffer[2]);
>  
> -	if (buffer[3] != 4096)
> +	if (buffer[3] != 4096 && buffer[3] != 32768)
>  		dev_warn(&wdev->dev, "Dell descriptor buffer has invalid buffer length (%u)\n",
>  			buffer[3]);
>  

Now, when buffer size is going to be exported to userspace and userspace
would need to prepare correct request, would not it better to allow any
positive buffer size? This would allow new machines to work even if
buffer size would be increased again (or decreased).
Limonciello, Mario Oct. 17, 2017, 6:56 p.m. UTC | #2
> -----Original Message-----

> From: Pali Rohár [mailto:pali.rohar@gmail.com]

> Sent: Tuesday, October 17, 2017 1:47 PM

> 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; rjw@rjwysocki.net;

> mjg59@google.com; hch@lst.de; Greg KH <greg@kroah.com>; Alan Cox

> <gnomes@lxorguk.ukuu.org.uk>

> Subject: Re: [PATCH v9 04/17] platform/x86: dell-wmi: allow 32k return size in the

> descriptor

> 

> On Tuesday 17 October 2017 13:21:48 Mario Limonciello wrote:

> > Some platforms this year will be adopting 32k WMI buffer, so don't

> > complain when encountering those.

> >

> > Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>

> > Reviewed-by: Edward O'Callaghan <quasisec@google.com>

> > ---

> >  drivers/platform/x86/dell-wmi.c | 4 ++--

> >  1 file changed, 2 insertions(+), 2 deletions(-)

> >

> > diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c

> > index ece2fe341f01..2578dff90a14 100644

> > --- a/drivers/platform/x86/dell-wmi.c

> > +++ b/drivers/platform/x86/dell-wmi.c

> > @@ -624,7 +624,7 @@ static void dell_wmi_input_destroy(struct wmi_device

> *wdev)

> >   * Vendor Signature          0       4    "DELL"

> >   * Object Signature          4       4    " WMI"

> >   * WMI Interface Version     8       4    <version>

> > - * WMI buffer length        12       4    4096

> > + * WMI buffer length        12       4    4096 or 32768

> >   */

> >  static int dell_wmi_check_descriptor_buffer(struct wmi_device *wdev)

> >  {

> > @@ -674,7 +674,7 @@ static int dell_wmi_check_descriptor_buffer(struct

> wmi_device *wdev)

> >  		dev_warn(&wdev->dev, "Dell descriptor buffer has unknown

> version (%u)\n",

> >  			buffer[2]);

> >

> > -	if (buffer[3] != 4096)

> > +	if (buffer[3] != 4096 && buffer[3] != 32768)

> >  		dev_warn(&wdev->dev, "Dell descriptor buffer has invalid buffer

> length (%u)\n",

> >  			buffer[3]);

> >

> 

> Now, when buffer size is going to be exported to userspace and userspace

> would need to prepare correct request, would not it better to allow any

> positive buffer size? This would allow new machines to work even if

> buffer size would be increased again (or decreased).


I suppose you're right the warning isn't very useful as the data is properly
used within userspace and the rest of the drivers now.  I'll make some
adjustments to remove this warning instead.
diff mbox

Patch

diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index ece2fe341f01..2578dff90a14 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -624,7 +624,7 @@  static void dell_wmi_input_destroy(struct wmi_device *wdev)
  * Vendor Signature          0       4    "DELL"
  * Object Signature          4       4    " WMI"
  * WMI Interface Version     8       4    <version>
- * WMI buffer length        12       4    4096
+ * WMI buffer length        12       4    4096 or 32768
  */
 static int dell_wmi_check_descriptor_buffer(struct wmi_device *wdev)
 {
@@ -674,7 +674,7 @@  static int dell_wmi_check_descriptor_buffer(struct wmi_device *wdev)
 		dev_warn(&wdev->dev, "Dell descriptor buffer has unknown version (%u)\n",
 			buffer[2]);
 
-	if (buffer[3] != 4096)
+	if (buffer[3] != 4096 && buffer[3] != 32768)
 		dev_warn(&wdev->dev, "Dell descriptor buffer has invalid buffer length (%u)\n",
 			buffer[3]);