git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Freezer: make kernel threads nonfreezable by default
[safe/jmp/linux-2.6]
/
net
/
bluetooth
/
hidp
/
core.c
diff --git
a/net/bluetooth/hidp/core.c
b/net/bluetooth/hidp/core.c
index
ceadfcf
..
64d89ca
100644
(file)
--- a/
net/bluetooth/hidp/core.c
+++ b/
net/bluetooth/hidp/core.c
@@
-28,6
+28,7
@@
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/poll.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/poll.h>
+#include <linux/freezer.h>
#include <linux/fcntl.h>
#include <linux/skbuff.h>
#include <linux/socket.h>
#include <linux/fcntl.h>
#include <linux/skbuff.h>
#include <linux/socket.h>
@@
-547,7
+548,6
@@
static int hidp_session(void *arg)
daemonize("khidpd_%04x%04x", vendor, product);
set_user_nice(current, -15);
daemonize("khidpd_%04x%04x", vendor, product);
set_user_nice(current, -15);
- current->flags |= PF_NOFREEZE;
init_waitqueue_entry(&ctrl_wait, current);
init_waitqueue_entry(&intr_wait, current);
init_waitqueue_entry(&ctrl_wait, current);
init_waitqueue_entry(&intr_wait, current);
@@
-581,15
+581,6
@@
static int hidp_session(void *arg)
hidp_del_timer(session);
hidp_del_timer(session);
- fput(session->intr_sock->file);
-
- wait_event_timeout(*(ctrl_sk->sk_sleep),
- (ctrl_sk->sk_state == BT_CLOSED), msecs_to_jiffies(500));
-
- fput(session->ctrl_sock->file);
-
- __hidp_unlink_session(session);
-
if (session->input) {
input_unregister_device(session->input);
session->input = NULL;
if (session->input) {
input_unregister_device(session->input);
session->input = NULL;
@@
-601,6
+592,15
@@
static int hidp_session(void *arg)
hid_free_device(session->hid);
}
hid_free_device(session->hid);
}
+ fput(session->intr_sock->file);
+
+ wait_event_timeout(*(ctrl_sk->sk_sleep),
+ (ctrl_sk->sk_state == BT_CLOSED), msecs_to_jiffies(500));
+
+ fput(session->ctrl_sock->file);
+
+ __hidp_unlink_session(session);
+
up_write(&hidp_session_sem);
kfree(session);
up_write(&hidp_session_sem);
kfree(session);