Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1596008 > unrolled thread
| Started by | Michał Kępień <kernel@kempniu.pl> |
|---|---|
| First post | 2017-03-09 13:20 +0100 |
| Last post | 2017-03-13 17:20 +0100 |
| Articles | 7 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 00/14] platform/x86: remove sparse_keymap_free() calls Michał Kępień <kernel@kempniu.pl> - 2017-03-09 13:20 +0100
[PATCH 07/14] platform/x86: hp-wmi: remove sparse_keymap_free() calls Michał Kępień <kernel@kempniu.pl> - 2017-03-09 13:20 +0100
[PATCH 06/14] platform/x86: eeepc-laptop: remove sparse_keymap_free() calls Michał Kępień <kernel@kempniu.pl> - 2017-03-09 13:20 +0100
[PATCH 04/14] platform/x86: dell-wmi-aio: remove sparse_keymap_free() calls Michał Kępień <kernel@kempniu.pl> - 2017-03-09 13:20 +0100
[PATCH 10/14] platform/x86: msi-wmi: remove sparse_keymap_free() calls Michał Kępień <kernel@kempniu.pl> - 2017-03-09 13:20 +0100
[PATCH 14/14] platform/x86: toshiba_acpi: remove sparse_keymap_free() calls Michał Kępień <kernel@kempniu.pl> - 2017-03-09 13:30 +0100
Re: [PATCH 00/14] platform/x86: remove sparse_keymap_free() calls Andy Shevchenko <andy.shevchenko@gmail.com> - 2017-03-13 17:20 +0100
| From | Michał Kępień <kernel@kempniu.pl> |
|---|---|
| Date | 2017-03-09 13:20 +0100 |
| Subject | [PATCH 00/14] platform/x86: remove sparse_keymap_free() calls |
| Message-ID | <tj5cZ-523-3@gated-at.bofh.it> |
Hi everyone, This patch series removes all uses of sparse_keymap_free() in the x86 platform driver subsystem due to an upcoming change in sparse_keymap_setup() behavior wrt memory management. Specifically, sparse_keymap_setup() will use managed memory for the keymap copy it creates, which enables it to be automatically freed upon input device removal, without the need to explicitly call sparse_keymap_free(). I thought it makes sense to post all these patches as a single series. To minimize spamming, only this cover letter is addressed to all the maintainers whose drivers are affected by this series, while each of the subsequent patches will only be sent to the relevant recipients, plus the platform-driver-x86 mailing list and subsystem maintainers. Darren, Andy, all these patches should only be applied after merging an immutable branch called ib/4.10-sparse-keymap-managed from Dmitry Torokhov's git tree. drivers/platform/x86/acer-wmi.c | 5 +---- drivers/platform/x86/asus-laptop.c | 8 ++------ drivers/platform/x86/asus-wmi.c | 8 ++------ drivers/platform/x86/dell-wmi-aio.c | 6 +----- drivers/platform/x86/dell-wmi.c | 16 ++++------------ drivers/platform/x86/eeepc-laptop.c | 8 ++------ drivers/platform/x86/hp-wmi.c | 5 +---- drivers/platform/x86/ideapad-laptop.c | 5 +---- drivers/platform/x86/msi-laptop.c | 14 +++----------- drivers/platform/x86/msi-wmi.c | 9 ++------- drivers/platform/x86/panasonic-laptop.c | 18 +++--------------- drivers/platform/x86/topstar-laptop.c | 5 +---- drivers/platform/x86/toshiba-wmi.c | 5 +---- drivers/platform/x86/toshiba_acpi.c | 8 ++------ 14 files changed, 26 insertions(+), 94 deletions(-) -- 2.12.0
[toc] | [next] | [standalone]
| From | Michał Kępień <kernel@kempniu.pl> |
|---|---|
| Date | 2017-03-09 13:20 +0100 |
| Subject | [PATCH 07/14] platform/x86: hp-wmi: remove sparse_keymap_free() calls |
| Message-ID | <tj5d1-523-39@gated-at.bofh.it> |
| In reply to | #1596008 |
As sparse_keymap_setup() now uses a managed memory allocation for the
keymap copy it creates, the latter is freed automatically. Remove all
calls to sparse_keymap_free().
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
---
drivers/platform/x86/hp-wmi.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c
index 96ffda493266..7abf92d0ba81 100644
--- a/drivers/platform/x86/hp-wmi.c
+++ b/drivers/platform/x86/hp-wmi.c
@@ -673,7 +673,7 @@ static int __init hp_wmi_input_setup(void)
status = wmi_install_notify_handler(HPWMI_EVENT_GUID, hp_wmi_notify, NULL);
if (ACPI_FAILURE(status)) {
err = -EIO;
- goto err_free_keymap;
+ goto err_free_dev;
}
err = input_register_device(hp_wmi_input_dev);
@@ -684,8 +684,6 @@ static int __init hp_wmi_input_setup(void)
err_uninstall_notifier:
wmi_remove_notify_handler(HPWMI_EVENT_GUID);
- err_free_keymap:
- sparse_keymap_free(hp_wmi_input_dev);
err_free_dev:
input_free_device(hp_wmi_input_dev);
return err;
@@ -694,7 +692,6 @@ static int __init hp_wmi_input_setup(void)
static void hp_wmi_input_destroy(void)
{
wmi_remove_notify_handler(HPWMI_EVENT_GUID);
- sparse_keymap_free(hp_wmi_input_dev);
input_unregister_device(hp_wmi_input_dev);
}
--
2.12.0
[toc] | [prev] | [next] | [standalone]
| From | Michał Kępień <kernel@kempniu.pl> |
|---|---|
| Date | 2017-03-09 13:20 +0100 |
| Subject | [PATCH 06/14] platform/x86: eeepc-laptop: remove sparse_keymap_free() calls |
| Message-ID | <tj5d1-523-51@gated-at.bofh.it> |
| In reply to | #1596008 |
As sparse_keymap_setup() now uses a managed memory allocation for the
keymap copy it creates, the latter is freed automatically. Remove all
calls to sparse_keymap_free().
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
---
drivers/platform/x86/eeepc-laptop.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c
index 8cdf315f9730..6f11c51b7e60 100644
--- a/drivers/platform/x86/eeepc-laptop.c
+++ b/drivers/platform/x86/eeepc-laptop.c
@@ -1205,14 +1205,12 @@ static int eeepc_input_init(struct eeepc_laptop *eeepc)
error = input_register_device(input);
if (error) {
pr_err("Unable to register input device\n");
- goto err_free_keymap;
+ goto err_free_dev;
}
eeepc->inputdev = input;
return 0;
-err_free_keymap:
- sparse_keymap_free(input);
err_free_dev:
input_free_device(input);
return error;
@@ -1220,10 +1218,8 @@ static int eeepc_input_init(struct eeepc_laptop *eeepc)
static void eeepc_input_exit(struct eeepc_laptop *eeepc)
{
- if (eeepc->inputdev) {
- sparse_keymap_free(eeepc->inputdev);
+ if (eeepc->inputdev)
input_unregister_device(eeepc->inputdev);
- }
eeepc->inputdev = NULL;
}
--
2.12.0
[toc] | [prev] | [next] | [standalone]
| From | Michał Kępień <kernel@kempniu.pl> |
|---|---|
| Date | 2017-03-09 13:20 +0100 |
| Subject | [PATCH 04/14] platform/x86: dell-wmi-aio: remove sparse_keymap_free() calls |
| Message-ID | <tj5d1-523-45@gated-at.bofh.it> |
| In reply to | #1596008 |
As sparse_keymap_setup() now uses a managed memory allocation for the
keymap copy it creates, the latter is freed automatically. Remove all
calls to sparse_keymap_free().
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
---
drivers/platform/x86/dell-wmi-aio.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/drivers/platform/x86/dell-wmi-aio.c b/drivers/platform/x86/dell-wmi-aio.c
index dbc97a33bbc8..50c2078715d6 100644
--- a/drivers/platform/x86/dell-wmi-aio.c
+++ b/drivers/platform/x86/dell-wmi-aio.c
@@ -152,12 +152,10 @@ static int __init dell_wmi_aio_input_setup(void)
err = input_register_device(dell_wmi_aio_input_dev);
if (err) {
pr_info("Unable to register input device\n");
- goto err_free_keymap;
+ goto err_free_dev;
}
return 0;
-err_free_keymap:
- sparse_keymap_free(dell_wmi_aio_input_dev);
err_free_dev:
input_free_device(dell_wmi_aio_input_dev);
return err;
@@ -192,7 +190,6 @@ static int __init dell_wmi_aio_init(void)
err = wmi_install_notify_handler(guid, dell_wmi_aio_notify, NULL);
if (err) {
pr_err("Unable to register notify handler - %d\n", err);
- sparse_keymap_free(dell_wmi_aio_input_dev);
input_unregister_device(dell_wmi_aio_input_dev);
return err;
}
@@ -206,7 +203,6 @@ static void __exit dell_wmi_aio_exit(void)
guid = dell_wmi_aio_find();
wmi_remove_notify_handler(guid);
- sparse_keymap_free(dell_wmi_aio_input_dev);
input_unregister_device(dell_wmi_aio_input_dev);
}
--
2.12.0
[toc] | [prev] | [next] | [standalone]
| From | Michał Kępień <kernel@kempniu.pl> |
|---|---|
| Date | 2017-03-09 13:20 +0100 |
| Subject | [PATCH 10/14] platform/x86: msi-wmi: remove sparse_keymap_free() calls |
| Message-ID | <tj5d1-523-47@gated-at.bofh.it> |
| In reply to | #1596008 |
As sparse_keymap_setup() now uses a managed memory allocation for the
keymap copy it creates, the latter is freed automatically. Remove all
calls to sparse_keymap_free().
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
---
drivers/platform/x86/msi-wmi.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c
index 9a32f8627ecc..f6209b739ec0 100644
--- a/drivers/platform/x86/msi-wmi.c
+++ b/drivers/platform/x86/msi-wmi.c
@@ -281,14 +281,12 @@ static int __init msi_wmi_input_setup(void)
err = input_register_device(msi_wmi_input_dev);
if (err)
- goto err_free_keymap;
+ goto err_free_dev;
last_pressed = 0;
return 0;
-err_free_keymap:
- sparse_keymap_free(msi_wmi_input_dev);
err_free_dev:
input_free_device(msi_wmi_input_dev);
return err;
@@ -342,10 +340,8 @@ static int __init msi_wmi_init(void)
if (event_wmi)
wmi_remove_notify_handler(event_wmi->guid);
err_free_input:
- if (event_wmi) {
- sparse_keymap_free(msi_wmi_input_dev);
+ if (event_wmi)
input_unregister_device(msi_wmi_input_dev);
- }
return err;
}
@@ -353,7 +349,6 @@ static void __exit msi_wmi_exit(void)
{
if (event_wmi) {
wmi_remove_notify_handler(event_wmi->guid);
- sparse_keymap_free(msi_wmi_input_dev);
input_unregister_device(msi_wmi_input_dev);
}
backlight_device_unregister(backlight);
--
2.12.0
[toc] | [prev] | [next] | [standalone]
| From | Michał Kępień <kernel@kempniu.pl> |
|---|---|
| Date | 2017-03-09 13:30 +0100 |
| Subject | [PATCH 14/14] platform/x86: toshiba_acpi: remove sparse_keymap_free() calls |
| Message-ID | <tj5mH-56r-35@gated-at.bofh.it> |
| In reply to | #1596008 |
As sparse_keymap_setup() now uses a managed memory allocation for the
keymap copy it creates, the latter is freed automatically. Remove all
calls to sparse_keymap_free().
Signed-off-by: Michał Kępień <kernel@kempniu.pl>
---
drivers/platform/x86/toshiba_acpi.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 074bf2fa1c55..d0daf75cbed1 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -2849,7 +2849,7 @@ static int toshiba_acpi_setup_keyboard(struct toshiba_acpi_dev *dev)
error = i8042_install_filter(toshiba_acpi_i8042_filter);
if (error) {
pr_err("Error installing key filter\n");
- goto err_free_keymap;
+ goto err_free_dev;
}
dev->ntfy_supported = 1;
@@ -2880,8 +2880,6 @@ static int toshiba_acpi_setup_keyboard(struct toshiba_acpi_dev *dev)
err_remove_filter:
if (dev->ntfy_supported)
i8042_remove_filter(toshiba_acpi_i8042_filter);
- err_free_keymap:
- sparse_keymap_free(dev->hotkey_dev);
err_free_dev:
input_free_device(dev->hotkey_dev);
dev->hotkey_dev = NULL;
@@ -3018,10 +3016,8 @@ static int toshiba_acpi_remove(struct acpi_device *acpi_dev)
cancel_work_sync(&dev->hotkey_work);
}
- if (dev->hotkey_dev) {
+ if (dev->hotkey_dev)
input_unregister_device(dev->hotkey_dev);
- sparse_keymap_free(dev->hotkey_dev);
- }
backlight_device_unregister(dev->backlight_dev);
--
2.12.0
[toc] | [prev] | [next] | [standalone]
| From | Andy Shevchenko <andy.shevchenko@gmail.com> |
|---|---|
| Date | 2017-03-13 17:20 +0100 |
| Message-ID | <tkARs-34n-35@gated-at.bofh.it> |
| In reply to | #1596008 |
On Thu, Mar 9, 2017 at 2:11 PM, Michał Kępień <kernel@kempniu.pl> wrote: > Hi everyone, > > This patch series removes all uses of sparse_keymap_free() in the x86 > platform driver subsystem due to an upcoming change in > sparse_keymap_setup() behavior wrt memory management. Specifically, > sparse_keymap_setup() will use managed memory for the keymap copy it > creates, which enables it to be automatically freed upon input device > removal, without the need to explicitly call sparse_keymap_free(). > > I thought it makes sense to post all these patches as a single series. > To minimize spamming, only this cover letter is addressed to all the > maintainers whose drivers are affected by this series, while each of the > subsequent patches will only be sent to the relevant recipients, plus > the platform-driver-x86 mailing list and subsystem maintainers. > > Darren, Andy, all these patches should only be applied after merging an > immutable branch called ib/4.10-sparse-keymap-managed from Dmitry > Torokhov's git tree. Pushed to testing. If anyone has objections, please tell me as soon as possible (though we have still time to remove / revert changes which I hope not the case here). > drivers/platform/x86/acer-wmi.c | 5 +---- > drivers/platform/x86/asus-laptop.c | 8 ++------ > drivers/platform/x86/asus-wmi.c | 8 ++------ > drivers/platform/x86/dell-wmi-aio.c | 6 +----- > drivers/platform/x86/dell-wmi.c | 16 ++++------------ > drivers/platform/x86/eeepc-laptop.c | 8 ++------ > drivers/platform/x86/hp-wmi.c | 5 +---- > drivers/platform/x86/ideapad-laptop.c | 5 +---- > drivers/platform/x86/msi-laptop.c | 14 +++----------- > drivers/platform/x86/msi-wmi.c | 9 ++------- > drivers/platform/x86/panasonic-laptop.c | 18 +++--------------- > drivers/platform/x86/topstar-laptop.c | 5 +---- > drivers/platform/x86/toshiba-wmi.c | 5 +---- > drivers/platform/x86/toshiba_acpi.c | 8 ++------ > 14 files changed, 26 insertions(+), 94 deletions(-) > > -- > 2.12.0 > -- With Best Regards, Andy Shevchenko
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web