Roger Quadros
f3784d834c
Bluetooth: Ensure that HCI sysfs add/del is preempt safe
Use a different work_struct variables for add_conn() and del_conn() and
use single work queue instead of two for adding and deleting connections.
It eliminates the following error on a preemptible kernel:
[ 204.358032] Unable to handle kernel NULL pointer dereference at virtual address 0000000c
[ 204.370697] pgd = c0004000
[ 204.373443] [0000000c] *pgd=00000000
[ 204.378601] Internal error: Oops: 17 [#1] PREEMPT
[ 204.383361] Modules linked in: vfat fat rfcomm sco l2cap sd_mod scsi_mod iphb pvr2d drm omaplfb ps
[ 204.438537] CPU: 0 Not tainted (2.6.28-maemo2 #1)
[ 204.443664] PC is at klist_put+0x2c/0xb4
[ 204.447601] LR is at klist_put+0x18/0xb4
[ 204.451568] pc : [<c0270f08>] lr : [<c0270ef4>] psr: a0000113
[ 204.451568] sp : cf1b3f10 ip : cf1b3f10 fp : cf1b3f2c
[ 204.463104] r10: 00000000 r9 : 00000000 r8 : bf08029c
[ 204.468353] r7 : c7869200 r6 : cfbe2690 r5 : c78692c8 r4 : 00000001
[ 204.474945] r3 : 00000001 r2 : cf1b2000 r1 : 00000001 r0 : 00000000
[ 204.481506] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 204.488861] Control: 10c5387d Table: 887fc018 DAC: 00000017
[ 204.494628] Process btdelconn (pid: 515, stack limit = 0xcf1b22e0)
Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2009-04-28 09:31:38 -07:00
..
2008-10-22 18:54:47 -05:00
2009-04-28 09:31:38 -07:00
2008-12-17 15:44:58 -08:00
2008-12-25 13:39:04 +01:00
2009-04-16 18:33:01 +02:00
2009-03-25 21:05:46 +01:00
2009-01-26 21:03:35 -08:00
2009-03-21 13:41:09 -07:00
2008-09-12 16:30:20 -07:00
2008-07-14 22:42:19 -07:00
2008-01-28 15:11:17 -08:00
2009-03-24 19:49:11 -07:00
2008-11-26 15:32:27 -08:00
2008-01-31 19:27:33 -08:00
2009-01-21 14:01:59 -08:00
2008-02-12 17:53:34 -08:00
2009-03-24 23:32:03 -07:00
2009-03-27 20:13:13 -04:00
2008-11-19 15:44:53 -08:00
2009-03-28 15:01:36 +11:00
2008-07-19 22:35:47 -07:00
2008-12-21 20:09:50 -08:00
2008-11-27 00:12:47 -08:00
2008-11-27 23:04:13 -08:00
2009-03-21 19:06:54 -07:00
2008-01-28 14:55:58 -08:00
2008-11-25 17:35:18 -08:00
2008-01-31 19:27:02 -08:00
2009-03-27 00:16:21 -07:00
2008-07-05 19:01:28 -07:00
2008-11-25 17:35:18 -08:00
2008-07-05 21:26:57 -07:00
2008-11-26 15:24:32 -08:00
2008-06-03 16:36:54 -07:00
2008-07-18 04:04:22 -07:00
2009-03-27 20:12:52 -04:00
2009-03-21 13:29:05 -07:00
2008-10-07 12:41:01 -07:00
2008-04-03 14:28:30 -07:00
2008-08-28 02:53:51 -07:00
2009-02-14 22:58:35 -08:00
2009-02-26 23:13:35 -08:00
2009-02-01 12:31:33 -08:00
2008-10-01 07:46:49 -07:00
2008-11-16 19:40:17 -08:00
2008-06-11 21:00:38 -07:00
2008-03-04 13:48:30 -08:00
2008-08-14 15:33:21 -07:00
2008-06-11 21:00:38 -07:00
2008-02-05 02:54:16 -08:00
2009-02-14 22:58:35 -08:00
2009-02-15 22:43:38 -08:00
2008-07-25 02:54:40 -07:00
2008-06-11 21:00:38 -07:00
2008-10-09 12:03:17 -07:00
2009-02-14 22:58:35 -08:00
2009-02-14 22:58:35 -08:00
2008-06-16 18:50:49 -07:00
2008-11-21 11:42:55 -05:00
2008-02-29 11:46:17 -08:00
2008-03-31 21:02:47 -07:00
2008-03-31 21:02:47 -07:00
2008-03-28 16:28:36 -07:00
2009-03-27 20:13:23 -04:00
2008-04-12 13:43:22 +09:00
2009-01-04 16:04:39 -08:00
2008-11-12 00:54:54 -08:00
2009-03-03 01:14:27 -08:00
2009-01-06 11:38:15 -07:00
2008-01-28 14:53:38 -08:00
2009-03-28 15:01:37 +11:00
2009-03-25 18:26:30 +01:00
2009-01-21 14:02:01 -08:00
2008-11-16 23:01:49 -08:00
2009-02-01 01:12:42 -08:00
2009-01-08 10:40:57 -08:00
2009-03-21 19:06:50 -07:00
2008-03-22 16:56:51 -07:00
2008-01-28 14:54:29 -08:00
2008-11-21 16:45:22 -08:00
2008-06-17 17:08:32 -07:00
2008-10-01 07:35:39 -07:00
2008-04-16 00:46:52 -07:00
2009-03-20 01:33:32 -07:00
2008-11-14 11:29:12 +11:00
2008-06-11 21:00:38 -07:00
2009-02-24 03:50:29 -08:00
2008-07-05 21:25:39 -07:00
2009-04-02 16:31:44 -07:00
2008-11-21 16:45:22 -08:00
2009-02-14 22:58:35 -08:00
2009-04-11 01:53:06 -07:00
2008-10-29 01:41:45 -07:00
2008-06-16 18:32:46 -07:00
2009-01-11 00:06:32 -08:00
2009-02-27 14:52:59 -05:00
2008-11-25 18:00:48 -08:00