aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/quickstart/quickstart.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-12-02 12:59:11 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-12-02 12:59:11 -0800
commit94c35de9a918665d9354efe2bafc29ba4b37497a (patch)
tree09a4877133142ae8f6c58b7cb72eb5e3e06f2df0 /drivers/staging/quickstart/quickstart.c
parent8733cb29d60fd2ca6c1f50f69f9b90fbfcd1879b (diff)
parent251d380034c6c34efe75ffb89d863558ba68ec6a (diff)
Merge branch 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* 'staging-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (27 commits) Staging: rt2870: Add USB ID for Buffalo Airstation WLI-UC-GN staging: easycap needs smp_lock.h, fixes build error Staging: batman-adv: ensure that eth_type_trans gets linear memory Staging: batman-adv: Don't remove interface with spinlock held staging: brcm80211: updated maintainers contact information staging: fix winbond build, needs delay.h Staging: line6: fix up my fixup for some sysfs attribute permissions Staging: zram: fix up my fixup for some sysfs attribute permissions Staging: udlfb: fix up my fixup for some sysfs attribute permissions Staging: samsung-laptop: fix up my fixup for some sysfs attribute permissions Staging: iio: adis16220: fix up my fixup for some sysfs attribute permissions Staging: frontier: fix up my fixup for some sysfs attribute permissions Staging: asus_oled: fix up my fixup for some sysfs attribute permissions staging: spectra: fix build error Staging: intel_sst: fix memory leak Staging: rtl8712: signedness bug in init staging: rtl8187se: Change panic to warn when RF switch turned off staging: comedi: fix memory leak Staging: quickstart: free after input_unregister_device() Staging: speakup: free after input_unregister_device() ...
Diffstat (limited to 'drivers/staging/quickstart/quickstart.c')
-rw-r--r--drivers/staging/quickstart/quickstart.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/staging/quickstart/quickstart.c b/drivers/staging/quickstart/quickstart.c
index d746715d3d8..d83bec876d2 100644
--- a/drivers/staging/quickstart/quickstart.c
+++ b/drivers/staging/quickstart/quickstart.c
@@ -355,7 +355,6 @@ static int quickstart_acpi_remove(struct acpi_device *device, int type)
static void quickstart_exit(void)
{
input_unregister_device(quickstart_input);
- input_free_device(quickstart_input);
device_remove_file(&pf_device->dev, &dev_attr_pressed_button);
device_remove_file(&pf_device->dev, &dev_attr_buttons);
@@ -375,6 +374,7 @@ static int __init quickstart_init_input(void)
{
struct quickstart_btn **ptr = &quickstart_data.btn_lst;
int count;
+ int ret;
quickstart_input = input_allocate_device();
@@ -391,7 +391,13 @@ static int __init quickstart_init_input(void)
ptr = &((*ptr)->next);
}
- return input_register_device(quickstart_input);
+ ret = input_register_device(quickstart_input);
+ if (ret) {
+ input_free_device(quickstart_input);
+ return ret;
+ }
+
+ return 0;
}
static int __init quickstart_init(void)