From: Darren Hart <dvhart@infradead.org>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org,
Gabriele Mazzotta <gabriele.mzt@gmail.com>
Subject: Re: [PATCH 1/3] dell-laptop: Clear buffer before each SMBIOS call
Date: Wed, 1 Jul 2015 17:45:44 -0700 [thread overview]
Message-ID: <20150702004544.GD27795@vmdeb7> (raw)
In-Reply-To: <1435774101-12329-1-git-send-email-pali.rohar@gmail.com>
On Wed, Jul 01, 2015 at 08:08:19PM +0200, Pali Rohár wrote:
> Make sure that before initializing SMBIOS call input buffer does not contain
> any garbage (e.g values from previous SMBIOS call). This fix problem with
> passing undefined/random parameters to SMBIOS functions.
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> ---
> drivers/platform/x86/dell-laptop.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
> index 35758cb..6728487 100644
> --- a/drivers/platform/x86/dell-laptop.c
> +++ b/drivers/platform/x86/dell-laptop.c
> @@ -310,10 +310,15 @@ static DEFINE_MUTEX(buffer_mutex);
>
> static int hwswitch_state;
>
> +static void clear_buffer(void)
> +{
> + memset(buffer, 0, sizeof(struct calling_interface_buffer));
> +}
> +
> static void get_buffer(void)
> {
> mutex_lock(&buffer_mutex);
> - memset(buffer, 0, sizeof(struct calling_interface_buffer));
> + clear_buffer();
> }
>
> static void release_buffer(void)
> @@ -557,6 +562,8 @@ static int dell_rfkill_set(void *data, bool blocked)
> !(buffer->output[1] & BIT(16)))
> disable = 1;
>
> + clear_buffer();
> +
> buffer->input[0] = (1 | (radio<<8) | (disable << 16));
> dell_send_request(buffer, 17, 11);
>
> @@ -571,6 +578,7 @@ static void dell_rfkill_update_sw_state(struct rfkill *rfkill, int radio,
> if (status & BIT(0)) {
> /* Has hw-switch, sync sw_state to BIOS */
> int block = rfkill_blocked(rfkill);
> + clear_buffer();
> buffer->input[0] = (1 | (radio << 8) | (block << 16));
> dell_send_request(buffer, 17, 11);
> } else {
> @@ -774,6 +782,7 @@ static int __init dell_setup_rfkill(void)
> dell_send_request(buffer, 17, 11);
> status = buffer->output[1];
> buffer->input[0] = 0x2;
> + clear_buffer();
> dell_send_request(buffer, 17, 11);
This clears the buffer after modifying input[0] and right before
dell_send_request... so you're sending a completely empty buffer? Is that
intentional here? I guess I would have expected the clear_buffer to be one line
earlier.
> hwswitch_state = buffer->output[1];
> release_buffer();
> --
> 1.7.9.5
>
>
--
Darren Hart
Intel Open Source Technology Center
next prev parent reply other threads:[~2015-07-02 0:45 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-21 8:39 [PATCH 0/4] Fixes for dell-laptop.c driver Pali Rohár
2015-06-21 8:39 ` Pali Rohár
2015-06-21 8:39 ` [PATCH 1/4] dell-laptop: Update information about wireless control Pali Rohár
2015-06-21 8:39 ` Pali Rohár
2015-06-22 19:06 ` Darren Hart
2015-06-22 19:06 ` Darren Hart
2015-06-21 8:39 ` [PATCH 2/4] dell-laptop: Check return value of all SMBIOS calls Pali Rohár
2015-06-21 8:39 ` Pali Rohár
2015-06-22 18:26 ` Darren Hart
2015-06-22 18:26 ` Darren Hart
2015-06-27 7:34 ` [PATCH v2] dell-laptop: Check return value of all SMBIOS calls and do not cache hwswitch state Pali Rohár
2015-06-29 23:02 ` Darren Hart
2015-07-01 18:04 ` Pali Rohár
2015-07-01 18:08 ` [PATCH 1/3] dell-laptop: Clear buffer before each SMBIOS call Pali Rohár
2015-07-01 18:08 ` [PATCH 2/3] dell-laptop: Check return value of " Pali Rohár
2015-07-01 18:08 ` [PATCH 3/3] dell-laptop: Do not cache hwswitch state Pali Rohár
2015-07-02 0:42 ` Darren Hart
2015-07-06 10:09 ` Pali Rohár
2015-07-02 0:45 ` Darren Hart [this message]
2015-07-03 8:10 ` [PATCH 1/3] dell-laptop: Clear buffer before each SMBIOS call Pali Rohár
2015-07-06 10:08 ` [PATCH v2 " Pali Rohár
2015-07-06 10:08 ` [PATCH v2 2/3] dell-laptop: Check return value of " Pali Rohár
2015-07-06 10:08 ` [PATCH v2 3/3] dell-laptop: Do not cache hwswitch state Pali Rohár
2015-07-06 22:39 ` [PATCH v2 1/3] dell-laptop: Clear buffer before each SMBIOS call Darren Hart
2015-07-07 14:04 ` Pali Rohár
2015-07-07 15:52 ` Darren Hart
2015-06-21 8:41 ` [PATCH 3/4] dell-laptop: Fix allocating & freeing SMI buffer page Pali Rohár
2015-06-21 8:41 ` Pali Rohár
2015-06-21 8:41 ` Pali Rohár
2015-06-22 8:46 ` Michal Hocko
2015-06-22 8:46 ` Michal Hocko
2015-06-22 8:46 ` Michal Hocko
2015-06-22 19:04 ` Darren Hart
2015-06-22 19:04 ` Darren Hart
2015-06-22 19:04 ` Darren Hart
2015-06-23 8:11 ` [PATCH] " Pali Rohár
2015-06-23 8:11 ` Pali Rohár
2015-06-23 8:11 ` Pali Rohár
2015-06-25 3:23 ` Darren Hart
2015-06-25 3:23 ` Darren Hart
2015-06-25 3:23 ` Darren Hart
2015-06-25 3:23 ` Darren Hart
2015-06-21 8:41 ` [PATCH 4/4] dell-laptop: Show info about WiGig and UWB in debugfs Pali Rohár
2015-06-21 8:41 ` Pali Rohár
2015-06-22 19:05 ` Darren Hart
2015-06-22 19:05 ` Darren Hart
2015-06-22 18:02 ` [PATCH 0/4] Fixes for dell-laptop.c driver Darren Hart
2015-06-22 18:02 ` Darren Hart
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=20150702004544.GD27795@vmdeb7 \
--to=dvhart@infradead.org \
--cc=gabriele.mzt@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg59@srcf.ucam.org \
--cc=pali.rohar@gmail.com \
--cc=platform-driver-x86@vger.kernel.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 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.