From: Michal Hocko <mhocko@suse.cz>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Darren Hart <dvhart@infradead.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 3/4] dell-laptop: Fix allocating & freeing SMI buffer page
Date: Mon, 22 Jun 2015 10:46:01 +0200 [thread overview]
Message-ID: <20150622084601.GE4430@dhcp22.suse.cz> (raw)
In-Reply-To: <1434876063-13460-1-git-send-email-pali.rohar@gmail.com>
On Sun 21-06-15 10:41:03, Pali Rohár wrote:
> This commit fix kernel crash when probing for rfkill devices in dell-laptop
> driver failed. Function free_page() was incorrectly used on struct page *
> instead of virtual address of SMI buffer.
>
> This commit also simplify allocating page for SMI buffer by using
> __get_free_page() function instead of sequential call of functions
> alloc_page() and page_address().
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Looks good to me.
FWIW
Acked-by: Michal Hocko <mhocko@suse.cz>
> ---
> drivers/platform/x86/dell-laptop.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
> index aaef335..0a91599 100644
> --- a/drivers/platform/x86/dell-laptop.c
> +++ b/drivers/platform/x86/dell-laptop.c
> @@ -306,7 +306,6 @@ static const struct dmi_system_id dell_quirks[] __initconst = {
> };
>
> static struct calling_interface_buffer *buffer;
> -static struct page *bufferpage;
> static DEFINE_MUTEX(buffer_mutex);
>
> static int hwswitch_state;
> @@ -2097,12 +2096,11 @@ static int __init dell_init(void)
> * Allocate buffer below 4GB for SMI data--only 32-bit physical addr
> * is passed to SMI handler.
> */
> - bufferpage = alloc_page(GFP_KERNEL | GFP_DMA32);
> - if (!bufferpage) {
> + buffer = (void *)__get_free_page(GFP_KERNEL | GFP_DMA32);
> + if (!buffer) {
> ret = -ENOMEM;
> goto fail_buffer;
> }
> - buffer = page_address(bufferpage);
>
> ret = dell_setup_rfkill();
>
> @@ -2165,7 +2163,7 @@ static int __init dell_init(void)
> fail_backlight:
> dell_cleanup_rfkill();
> fail_rfkill:
> - free_page((unsigned long)bufferpage);
> + free_page((unsigned long)buffer);
> fail_buffer:
> platform_device_del(platform_device);
> fail_platform_device2:
> --
> 1.7.9.5
>
--
Michal Hocko
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@suse.cz>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Darren Hart <dvhart@infradead.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 3/4] dell-laptop: Fix allocating & freeing SMI buffer page
Date: Mon, 22 Jun 2015 10:46:01 +0200 [thread overview]
Message-ID: <20150622084601.GE4430@dhcp22.suse.cz> (raw)
In-Reply-To: <1434876063-13460-1-git-send-email-pali.rohar@gmail.com>
On Sun 21-06-15 10:41:03, Pali Rohar wrote:
> This commit fix kernel crash when probing for rfkill devices in dell-laptop
> driver failed. Function free_page() was incorrectly used on struct page *
> instead of virtual address of SMI buffer.
>
> This commit also simplify allocating page for SMI buffer by using
> __get_free_page() function instead of sequential call of functions
> alloc_page() and page_address().
>
> Signed-off-by: Pali Rohar <pali.rohar@gmail.com>
Looks good to me.
FWIW
Acked-by: Michal Hocko <mhocko@suse.cz>
> ---
> drivers/platform/x86/dell-laptop.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
> index aaef335..0a91599 100644
> --- a/drivers/platform/x86/dell-laptop.c
> +++ b/drivers/platform/x86/dell-laptop.c
> @@ -306,7 +306,6 @@ static const struct dmi_system_id dell_quirks[] __initconst = {
> };
>
> static struct calling_interface_buffer *buffer;
> -static struct page *bufferpage;
> static DEFINE_MUTEX(buffer_mutex);
>
> static int hwswitch_state;
> @@ -2097,12 +2096,11 @@ static int __init dell_init(void)
> * Allocate buffer below 4GB for SMI data--only 32-bit physical addr
> * is passed to SMI handler.
> */
> - bufferpage = alloc_page(GFP_KERNEL | GFP_DMA32);
> - if (!bufferpage) {
> + buffer = (void *)__get_free_page(GFP_KERNEL | GFP_DMA32);
> + if (!buffer) {
> ret = -ENOMEM;
> goto fail_buffer;
> }
> - buffer = page_address(bufferpage);
>
> ret = dell_setup_rfkill();
>
> @@ -2165,7 +2163,7 @@ static int __init dell_init(void)
> fail_backlight:
> dell_cleanup_rfkill();
> fail_rfkill:
> - free_page((unsigned long)bufferpage);
> + free_page((unsigned long)buffer);
> fail_buffer:
> platform_device_del(platform_device);
> fail_platform_device2:
> --
> 1.7.9.5
>
--
Michal Hocko
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@suse.cz>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Darren Hart <dvhart@infradead.org>,
Matthew Garrett <mjg59@srcf.ucam.org>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 3/4] dell-laptop: Fix allocating & freeing SMI buffer page
Date: Mon, 22 Jun 2015 10:46:01 +0200 [thread overview]
Message-ID: <20150622084601.GE4430@dhcp22.suse.cz> (raw)
In-Reply-To: <1434876063-13460-1-git-send-email-pali.rohar@gmail.com>
On Sun 21-06-15 10:41:03, Pali Rohár wrote:
> This commit fix kernel crash when probing for rfkill devices in dell-laptop
> driver failed. Function free_page() was incorrectly used on struct page *
> instead of virtual address of SMI buffer.
>
> This commit also simplify allocating page for SMI buffer by using
> __get_free_page() function instead of sequential call of functions
> alloc_page() and page_address().
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Looks good to me.
FWIW
Acked-by: Michal Hocko <mhocko@suse.cz>
> ---
> drivers/platform/x86/dell-laptop.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
> index aaef335..0a91599 100644
> --- a/drivers/platform/x86/dell-laptop.c
> +++ b/drivers/platform/x86/dell-laptop.c
> @@ -306,7 +306,6 @@ static const struct dmi_system_id dell_quirks[] __initconst = {
> };
>
> static struct calling_interface_buffer *buffer;
> -static struct page *bufferpage;
> static DEFINE_MUTEX(buffer_mutex);
>
> static int hwswitch_state;
> @@ -2097,12 +2096,11 @@ static int __init dell_init(void)
> * Allocate buffer below 4GB for SMI data--only 32-bit physical addr
> * is passed to SMI handler.
> */
> - bufferpage = alloc_page(GFP_KERNEL | GFP_DMA32);
> - if (!bufferpage) {
> + buffer = (void *)__get_free_page(GFP_KERNEL | GFP_DMA32);
> + if (!buffer) {
> ret = -ENOMEM;
> goto fail_buffer;
> }
> - buffer = page_address(bufferpage);
>
> ret = dell_setup_rfkill();
>
> @@ -2165,7 +2163,7 @@ static int __init dell_init(void)
> fail_backlight:
> dell_cleanup_rfkill();
> fail_rfkill:
> - free_page((unsigned long)bufferpage);
> + free_page((unsigned long)buffer);
> fail_buffer:
> platform_device_del(platform_device);
> fail_platform_device2:
> --
> 1.7.9.5
>
--
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2015-06-22 8:46 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 ` [PATCH 1/3] dell-laptop: Clear buffer before each SMBIOS call Darren Hart
2015-07-03 8:10 ` 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 [this message]
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=20150622084601.GE4430@dhcp22.suse.cz \
--to=mhocko@suse.cz \
--cc=dvhart@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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.