rpms/kernel/devel git-bluetooth.patch, 1.2, 1.3 kernel.spec, 1.1919, 1.1920

Kyle McMartin kyle at fedoraproject.org
Sun Feb 7 02:23:39 UTC 2010


Author: kyle

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv1032

Modified Files:
	git-bluetooth.patch kernel.spec 
Log Message:
* Sat Feb 06 2010 Kyle McMartin <kyle at redhat.com>
- git-bluetooth.patch: selection of backports from next for hadess.
  (rhbz#562245)


git-bluetooth.patch:
 drivers/hid/hid-core.c        |    1 
 drivers/hid/hid-sony.c        |   21 ++++++++++++-
 drivers/hid/hid-wacom.c       |   28 +++++++++++++++++
 drivers/hid/hidraw.c          |    2 -
 drivers/hid/usbhid/hid-core.c |    5 +--
 include/linux/hid.h           |    2 -
 net/bluetooth/hidp/core.c     |   66 ++++++++++++++++++++++++------------------
 net/bluetooth/hidp/hidp.h     |    4 +-
 8 files changed, 94 insertions(+), 35 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.2 -r 1.3 git-bluetooth.patchIndex: git-bluetooth.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/git-bluetooth.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- git-bluetooth.patch	4 Mar 2009 15:34:03 -0000	1.2
+++ git-bluetooth.patch	7 Feb 2010 02:23:38 -0000	1.3
@@ -1,3344 +1,374 @@
-commit b1fb06830dc870d862f7f80e276130c0ab84d59f
-Author: Wei Yongjun <yjwei at cn.fujitsu.com>
-Date:   Wed Feb 25 18:09:33 2009 +0800
-
-    Bluetooth: Remove some pointless conditionals before kfree_skb()
-    
-    Remove some pointless conditionals before kfree_skb().
-    
-    Signed-off-by: Wei Yongjun <yjwei at cn.fujitsu.com>
-    Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
-
-commit 7585b97a48180f754ebdade1be94092e36bef365
-Author: Wei Yongjun <yjwei at cn.fujitsu.com>
-Date:   Wed Feb 25 18:29:52 2009 +0800
-
-    Bluetooth: Remove some pointless conditionals before kfree_skb()
-    
-    Remove some pointless conditionals before kfree_skb().
-    
-    Signed-off-by: Wei Yongjun <yjwei at cn.fujitsu.com>
-    Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
-
-commit 2ae9a6be5f476f3512839a4d11a8f432bfd2914c
-Author: Dave Young <hidave.darkstar at gmail.com>
-Date:   Sat Feb 21 16:13:34 2009 +0800
-
-    Bluetooth: Move hci_conn_del_sysfs() back to avoid device destruct too early
-    
-    The following commit introduce a regression:
-    
-    	commit 7d0db0a373195385a2e0b19d1f5e4b186fdcffac
-    	Author: Marcel Holtmann <marcel at holtmann.org>
-    	Date:   Mon Jul 14 20:13:51 2008 +0200
-    
-    		[Bluetooth] Use a more unique bus name for connections
-    
-    I get panic as following (by netconsole):
-    
-    [ 2709.344034] usb 5-1: new full speed USB device using uhci_hcd and address 4
-    [ 2709.505776] usb 5-1: configuration #1 chosen from 1 choice
-    [ 2709.569207] Bluetooth: Generic Bluetooth USB driver ver 0.4
-    [ 2709.570169] usbcore: registered new interface driver btusb
-    [ 2845.742781] BUG: unable to handle kernel paging request at 6b6b6c2f
-    [ 2845.742958] IP: [<c015515c>] __lock_acquire+0x6c/0xa80
-    [ 2845.743087] *pde = 00000000
-    [ 2845.743206] Oops: 0002 [#1] SMP
-    [ 2845.743377] last sysfs file: /sys/class/bluetooth/hci0/hci0:6/type
-    [ 2845.743742] Modules linked in: btusb netconsole snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss rfcomm l2cap bluetooth vfat fuse snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm pl2303 snd_timer psmouse usbserial snd 3c59x e100 serio_raw soundcore i2c_i801 intel_agp mii agpgart snd_page_alloc rtc_cmos rtc_core thermal processor rtc_lib button thermal_sys sg evdev
-    [ 2845.743742]
-    [ 2845.743742] Pid: 0, comm: swapper Not tainted (2.6.29-rc5-smp #54) Dell DM051
-    [ 2845.743742] EIP: 0060:[<c015515c>] EFLAGS: 00010002 CPU: 0
-    [ 2845.743742] EIP is at __lock_acquire+0x6c/0xa80
-    [ 2845.743742] EAX: 00000046 EBX: 00000046 ECX: 6b6b6b6b EDX: 00000002
-    [ 2845.743742] ESI: 6b6b6b6b EDI: 00000000 EBP: c064fd14 ESP: c064fcc8
-    [ 2845.743742]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
-    [ 2845.743742] Process swapper (pid: 0, ti=c064e000 task=c05d1400 task.ti=c064e000)
-    [ 2845.743742] Stack:
-    [ 2845.743742]  c05d1400 00000002 c05d1400 00000001 00000002 00000000 f65388dc c05d1400
-    [ 2845.743742]  6b6b6b6b 00000292 c064fd0c c0153732 00000000 00000000 00000001 f700fa50
-    [ 2845.743742]  00000046 00000000 00000000 c064fd40 c0155be6 00000000 00000002 00000001
-    [ 2845.743742] Call Trace:
-    [ 2845.743742]  [<c0153732>] ? trace_hardirqs_on_caller+0x72/0x1c0
-    [ 2845.743742]  [<c0155be6>] ? lock_acquire+0x76/0xa0
-    [ 2845.743742]  [<c03e1aad>] ? skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c046c885>] ? _spin_lock_irqsave+0x45/0x80
-    [ 2845.743742]  [<c03e1aad>] ? skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c03e1aad>] ? skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c03e1f94>] ? skb_queue_purge+0x14/0x20
-    [ 2845.743742]  [<f8171f5a>] ? hci_conn_del+0x10a/0x1c0 [bluetooth]
-    [ 2845.743742]  [<f81399c9>] ? l2cap_disconn_ind+0x59/0xb0 [l2cap]
-    [ 2845.743742]  [<f81795ce>] ? hci_conn_del_sysfs+0x8e/0xd0 [bluetooth]
-    [ 2845.743742]  [<f8175758>] ? hci_event_packet+0x5f8/0x31c0 [bluetooth]
-    [ 2845.743742]  [<c03dfe19>] ? sock_def_readable+0x59/0x80
-    [ 2845.743742]  [<c046c14d>] ? _read_unlock+0x1d/0x20
-    [ 2845.743742]  [<f8178aa9>] ? hci_send_to_sock+0xe9/0x1d0 [bluetooth]
-    [ 2845.743742]  [<c015388b>] ? trace_hardirqs_on+0xb/0x10
-    [ 2845.743742]  [<f816fa6a>] ? hci_rx_task+0x2ba/0x490 [bluetooth]
-    [ 2845.743742]  [<c0133661>] ? tasklet_action+0x31/0xc0
-    [ 2845.743742]  [<c013367c>] ? tasklet_action+0x4c/0xc0
-    [ 2845.743742]  [<c0132eb7>] ? __do_softirq+0xa7/0x170
-    [ 2845.743742]  [<c0116dec>] ? ack_apic_level+0x5c/0x1c0
-    [ 2845.743742]  [<c0132fd7>] ? do_softirq+0x57/0x60
-    [ 2845.743742]  [<c01333dc>] ? irq_exit+0x7c/0x90
-    [ 2845.743742]  [<c01055bb>] ? do_IRQ+0x4b/0x90
-    [ 2845.743742]  [<c01333d5>] ? irq_exit+0x75/0x90
-    [ 2845.743742]  [<c010392c>] ? common_interrupt+0x2c/0x34
-    [ 2845.743742]  [<c010a14f>] ? mwait_idle+0x4f/0x70
-    [ 2845.743742]  [<c0101c05>] ? cpu_idle+0x65/0xb0
-    [ 2845.743742]  [<c045731e>] ? rest_init+0x4e/0x60
-    [ 2845.743742] Code: 0f 84 69 02 00 00 83 ff 07 0f 87 1e 06 00 00 85 ff 0f 85 08 05 00 00 8b 4d cc 8b 49 04 85 c9 89 4d d4 0f 84 f7 04 00 00 8b 75 d4 <f0> ff 86 c4 00 00 00 89 f0 e8 56 a9 ff ff 85 c0 0f 85 6e 03 00
-    [ 2845.743742] EIP: [<c015515c>] __lock_acquire+0x6c/0xa80 SS:ESP 0068:c064fcc8
-    [ 2845.743742] ---[ end trace 4c985b38f022279f ]---
-    [ 2845.743742] Kernel panic - not syncing: Fatal exception in interrupt
-    [ 2845.743742] ------------[ cut here ]------------
-    [ 2845.743742] WARNING: at kernel/smp.c:329 smp_call_function_many+0x151/0x200()
-    [ 2845.743742] Hardware name: Dell DM051
-    [ 2845.743742] Modules linked in: btusb netconsole snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss rfcomm l2cap bluetooth vfat fuse snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm pl2303 snd_timer psmouse usbserial snd 3c59x e100 serio_raw soundcore i2c_i801 intel_agp mii agpgart snd_page_alloc rtc_cmos rtc_core thermal processor rtc_lib button thermal_sys sg evdev
-    [ 2845.743742] Pid: 0, comm: swapper Tainted: G      D    2.6.29-rc5-smp #54
-    [ 2845.743742] Call Trace:
-    [ 2845.743742]  [<c012e076>] warn_slowpath+0x86/0xa0
-    [ 2845.743742]  [<c015041b>] ? trace_hardirqs_off+0xb/0x10
-    [ 2845.743742]  [<c0146384>] ? up+0x14/0x40
-    [ 2845.743742]  [<c012e661>] ? release_console_sem+0x31/0x1e0
-    [ 2845.743742]  [<c046c8ab>] ? _spin_lock_irqsave+0x6b/0x80
-    [ 2845.743742]  [<c015041b>] ? trace_hardirqs_off+0xb/0x10
-    [ 2845.743742]  [<c046c900>] ? _read_lock_irqsave+0x40/0x80
-    [ 2845.743742]  [<c012e7f2>] ? release_console_sem+0x1c2/0x1e0
-    [ 2845.743742]  [<c0146384>] ? up+0x14/0x40
-    [ 2845.743742]  [<c015041b>] ? trace_hardirqs_off+0xb/0x10
-    [ 2845.743742]  [<c046a3d7>] ? __mutex_unlock_slowpath+0x97/0x160
-    [ 2845.743742]  [<c046a563>] ? mutex_trylock+0xb3/0x180
-    [ 2845.743742]  [<c046a4a8>] ? mutex_unlock+0x8/0x10
-    [ 2845.743742]  [<c015b991>] smp_call_function_many+0x151/0x200
-    [ 2845.743742]  [<c010a1a0>] ? stop_this_cpu+0x0/0x40
-    [ 2845.743742]  [<c015ba61>] smp_call_function+0x21/0x30
-    [ 2845.743742]  [<c01137ae>] native_smp_send_stop+0x1e/0x50
-    [ 2845.743742]  [<c012e0f5>] panic+0x55/0x110
-    [ 2845.743742]  [<c01065a8>] oops_end+0xb8/0xc0
-    [ 2845.743742]  [<c010668f>] die+0x4f/0x70
-    [ 2845.743742]  [<c011a8c9>] do_page_fault+0x269/0x610
-    [ 2845.743742]  [<c011a660>] ? do_page_fault+0x0/0x610
-    [ 2845.743742]  [<c046cbaf>] error_code+0x77/0x7c
-    [ 2845.743742]  [<c015515c>] ? __lock_acquire+0x6c/0xa80
-    [ 2845.743742]  [<c0153732>] ? trace_hardirqs_on_caller+0x72/0x1c0
-    [ 2845.743742]  [<c0155be6>] lock_acquire+0x76/0xa0
-    [ 2845.743742]  [<c03e1aad>] ? skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c046c885>] _spin_lock_irqsave+0x45/0x80
-    [ 2845.743742]  [<c03e1aad>] ? skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c03e1aad>] skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c03e1f94>] skb_queue_purge+0x14/0x20
-    [ 2845.743742]  [<f8171f5a>] hci_conn_del+0x10a/0x1c0 [bluetooth]
-    [ 2845.743742]  [<f81399c9>] ? l2cap_disconn_ind+0x59/0xb0 [l2cap]
-    [ 2845.743742]  [<f81795ce>] ? hci_conn_del_sysfs+0x8e/0xd0 [bluetooth]
-    [ 2845.743742]  [<f8175758>] hci_event_packet+0x5f8/0x31c0 [bluetooth]
-    [ 2845.743742]  [<c03dfe19>] ? sock_def_readable+0x59/0x80
-    [ 2845.743742]  [<c046c14d>] ? _read_unlock+0x1d/0x20
-    [ 2845.743742]  [<f8178aa9>] ? hci_send_to_sock+0xe9/0x1d0 [bluetooth]
-    [ 2845.743742]  [<c015388b>] ? trace_hardirqs_on+0xb/0x10
-    [ 2845.743742]  [<f816fa6a>] hci_rx_task+0x2ba/0x490 [bluetooth]
-    [ 2845.743742]  [<c0133661>] ? tasklet_action+0x31/0xc0
-    [ 2845.743742]  [<c013367c>] tasklet_action+0x4c/0xc0
-    [ 2845.743742]  [<c0132eb7>] __do_softirq+0xa7/0x170
-    [ 2845.743742]  [<c0116dec>] ? ack_apic_level+0x5c/0x1c0
-    [ 2845.743742]  [<c0132fd7>] do_softirq+0x57/0x60
-    [ 2845.743742]  [<c01333dc>] irq_exit+0x7c/0x90
-    [ 2845.743742]  [<c01055bb>] do_IRQ+0x4b/0x90
-    [ 2845.743742]  [<c01333d5>] ? irq_exit+0x75/0x90
-    [ 2845.743742]  [<c010392c>] common_interrupt+0x2c/0x34
-    [ 2845.743742]  [<c010a14f>] ? mwait_idle+0x4f/0x70
-    [ 2845.743742]  [<c0101c05>] cpu_idle+0x65/0xb0
-    [ 2845.743742]  [<c045731e>] rest_init+0x4e/0x60
-    [ 2845.743742] ---[ end trace 4c985b38f02227a0 ]---
-    [ 2845.743742] ------------[ cut here ]------------
-    [ 2845.743742] WARNING: at kernel/smp.c:226 smp_call_function_single+0x8e/0x110()
-    [ 2845.743742] Hardware name: Dell DM051
-    [ 2845.743742] Modules linked in: btusb netconsole snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss rfcomm l2cap bluetooth vfat fuse snd_hda_codec_idt snd_hda_intel snd_hda_codec snd_hwdep snd_pcm pl2303 snd_timer psmouse usbserial snd 3c59x e100 serio_raw soundcore i2c_i801 intel_agp mii agpgart snd_page_alloc rtc_cmos rtc_core thermal processor rtc_lib button thermal_sys sg evdev
-    [ 2845.743742] Pid: 0, comm: swapper Tainted: G      D W  2.6.29-rc5-smp #54
-    [ 2845.743742] Call Trace:
-    [ 2845.743742]  [<c012e076>] warn_slowpath+0x86/0xa0
-    [ 2845.743742]  [<c012e000>] ? warn_slowpath+0x10/0xa0
-    [ 2845.743742]  [<c015041b>] ? trace_hardirqs_off+0xb/0x10
-    [ 2845.743742]  [<c0146384>] ? up+0x14/0x40
-    [ 2845.743742]  [<c012e661>] ? release_console_sem+0x31/0x1e0
-    [ 2845.743742]  [<c046c8ab>] ? _spin_lock_irqsave+0x6b/0x80
-    [ 2845.743742]  [<c015041b>] ? trace_hardirqs_off+0xb/0x10
-    [ 2845.743742]  [<c046c900>] ? _read_lock_irqsave+0x40/0x80
-    [ 2845.743742]  [<c012e7f2>] ? release_console_sem+0x1c2/0x1e0
-    [ 2845.743742]  [<c0146384>] ? up+0x14/0x40
-    [ 2845.743742]  [<c015b7be>] smp_call_function_single+0x8e/0x110
-    [ 2845.743742]  [<c010a1a0>] ? stop_this_cpu+0x0/0x40
-    [ 2845.743742]  [<c026d23f>] ? cpumask_next_and+0x1f/0x40
-    [ 2845.743742]  [<c015b95a>] smp_call_function_many+0x11a/0x200
-    [ 2845.743742]  [<c010a1a0>] ? stop_this_cpu+0x0/0x40
-    [ 2845.743742]  [<c015ba61>] smp_call_function+0x21/0x30
-    [ 2845.743742]  [<c01137ae>] native_smp_send_stop+0x1e/0x50
-    [ 2845.743742]  [<c012e0f5>] panic+0x55/0x110
-    [ 2845.743742]  [<c01065a8>] oops_end+0xb8/0xc0
-    [ 2845.743742]  [<c010668f>] die+0x4f/0x70
-    [ 2845.743742]  [<c011a8c9>] do_page_fault+0x269/0x610
-    [ 2845.743742]  [<c011a660>] ? do_page_fault+0x0/0x610
-    [ 2845.743742]  [<c046cbaf>] error_code+0x77/0x7c
-    [ 2845.743742]  [<c015515c>] ? __lock_acquire+0x6c/0xa80
-    [ 2845.743742]  [<c0153732>] ? trace_hardirqs_on_caller+0x72/0x1c0
-    [ 2845.743742]  [<c0155be6>] lock_acquire+0x76/0xa0
-    [ 2845.743742]  [<c03e1aad>] ? skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c046c885>] _spin_lock_irqsave+0x45/0x80
-    [ 2845.743742]  [<c03e1aad>] ? skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c03e1aad>] skb_dequeue+0x1d/0x70
-    [ 2845.743742]  [<c03e1f94>] skb_queue_purge+0x14/0x20
-    [ 2845.743742]  [<f8171f5a>] hci_conn_del+0x10a/0x1c0 [bluetooth]
-    [ 2845.743742]  [<f81399c9>] ? l2cap_disconn_ind+0x59/0xb0 [l2cap]
[...3288 lines suppressed...]
-+	if (level != SOL_BLUETOOTH)
-+		return -ENOPROTOOPT;
-+
-+	if (get_user(len, optlen))
-+		return -EFAULT;
-+
-+	lock_sock(sk);
-+
-+	switch (optname) {
-+	case BT_SECURITY:
-+		if (sk->sk_type != SOCK_STREAM) {
-+			err = -EINVAL;
-+			break;
-+		}
-+
-+		sec.level = rfcomm_pi(sk)->sec_level;
-+
-+		len = min_t(unsigned int, len, sizeof(sec));
-+		if (copy_to_user(optval, (char *) &sec, len))
-+			err = -EFAULT;
-+
-+		break;
-+
-+	case BT_DEFER_SETUP:
-+		if (sk->sk_state != BT_BOUND && sk->sk_state != BT_LISTEN) {
-+			err = -EINVAL;
-+			break;
-+		}
-+
-+		if (put_user(bt_sk(sk)->defer_setup, (u32 __user *) optval))
-+			err = -EFAULT;
-+
-+		break;
-+
-+	default:
-+		err = -ENOPROTOOPT;
-+		break;
+ 	hid = hid_allocate_device();
+-	if (IS_ERR(hid))
+-		return PTR_ERR(hid);
++	if (IS_ERR(hid)) {
++		err = PTR_ERR(hid);
++		goto fault;
 +	}
-+
-+	release_sock(sk);
-+	return err;
-+}
-+
- static int rfcomm_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
- {
- 	struct sock *sk __maybe_unused = sock->sk;
-@@ -888,6 +1053,10 @@ int rfcomm_connect_ind(struct rfcomm_session *s, u8 channel, struct rfcomm_dlc *
  
- done:
- 	bh_unlock_sock(parent);
-+
-+	if (bt_sk(parent)->defer_setup)
-+		parent->sk_state_change(parent);
+ 	session->hid = hid;
+-	session->req = req;
 +
- 	return result;
- }
- 
-diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
-index 46fd8bf..51ae0c3 100644
---- a/net/bluetooth/sco.c
-+++ b/net/bluetooth/sco.c
-@@ -195,7 +195,7 @@ static int sco_connect(struct sock *sk)
- 	else
- 		type = SCO_LINK;
- 
--	hcon = hci_connect(hdev, type, dst, HCI_AT_NO_BONDING);
-+	hcon = hci_connect(hdev, type, dst, BT_SECURITY_LOW, HCI_AT_NO_BONDING);
- 	if (!hcon)
- 		goto done;
+ 	hid->driver_data = session;
  
-@@ -668,7 +668,7 @@ static int sco_sock_setsockopt(struct socket *sock, int level, int optname, char
- 	return err;
- }
+ 	baswap(&src, &bt_sk(session->ctrl_sock->sk)->src);
+@@ -806,6 +809,10 @@ failed:
+ 	hid_destroy_device(hid);
+ 	session->hid = NULL;
  
--static int sco_sock_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen)
-+static int sco_sock_getsockopt_old(struct socket *sock, int optname, char __user *optval, int __user *optlen)
- {
- 	struct sock *sk = sock->sk;
- 	struct sco_options opts;
-@@ -723,6 +723,31 @@ static int sco_sock_getsockopt(struct socket *sock, int level, int optname, char
++fault:
++	kfree(session->rd_data);
++	session->rd_data = NULL;
++
  	return err;
  }
  
-+static int sco_sock_getsockopt(struct socket *sock, int level, int optname, char __user *optval, int __user *optlen)
-+{
-+	struct sock *sk = sock->sk;
-+	int len, err = 0;
-+
-+	BT_DBG("sk %p", sk);
-+
-+	if (level == SOL_SCO)
-+		return sco_sock_getsockopt_old(sock, optname, optval, optlen);
-+
-+	if (get_user(len, optlen))
-+		return -EFAULT;
-+
-+	lock_sock(sk);
-+
-+	switch (optname) {
-+	default:
-+		err = -ENOPROTOOPT;
-+		break;
-+	}
-+
-+	release_sock(sk);
-+	return err;
-+}
-+
- static int sco_sock_release(struct socket *sock)
- {
- 	struct sock *sk = sock->sk;
-@@ -832,10 +857,30 @@ done:
- /* ----- SCO interface with lower layer (HCI) ----- */
- static int sco_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr, __u8 type)
- {
-+	register struct sock *sk;
-+	struct hlist_node *node;
-+	int lm = 0;
-+
-+	if (type != SCO_LINK && type != ESCO_LINK)
-+		return 0;
-+
- 	BT_DBG("hdev %s, bdaddr %s", hdev->name, batostr(bdaddr));
+@@ -900,6 +907,9 @@ unlink:
+ 		session->hid = NULL;
+ 	}
  
--	/* Always accept connection */
--	return HCI_LM_ACCEPT;
-+	/* Find listening sockets */
-+	read_lock(&sco_sk_list.lock);
-+	sk_for_each(sk, node, &sco_sk_list.head) {
-+		if (sk->sk_state != BT_LISTEN)
-+			continue;
-+
-+		if (!bacmp(&bt_sk(sk)->src, &hdev->bdaddr) ||
-+				!bacmp(&bt_sk(sk)->src, BDADDR_ANY)) {
-+			lm |= HCI_LM_ACCEPT;
-+			break;
-+		}
-+	}
-+	read_unlock(&sco_sk_list.lock);
++	kfree(session->rd_data);
++	session->rd_data = NULL;
 +
-+	return lm;
- }
- 
- static int sco_connect_cfm(struct hci_conn *hcon, __u8 status)
-@@ -857,7 +902,7 @@ static int sco_connect_cfm(struct hci_conn *hcon, __u8 status)
- 	return 0;
- }
- 
--static int sco_disconn_ind(struct hci_conn *hcon, __u8 reason)
-+static int sco_disconn_cfm(struct hci_conn *hcon, __u8 reason)
- {
- 	BT_DBG("hcon %p reason %d", hcon, reason);
- 
-@@ -940,7 +985,7 @@ static struct hci_proto sco_hci_proto = {
- 	.id		= HCI_PROTO_SCO,
- 	.connect_ind	= sco_connect_ind,
- 	.connect_cfm	= sco_connect_cfm,
--	.disconn_ind	= sco_disconn_ind,
-+	.disconn_cfm	= sco_disconn_cfm,
- 	.recv_scodata	= sco_recv_scodata
+ purge:
+ 	skb_queue_purge(&session->ctrl_transmit);
+ 	skb_queue_purge(&session->intr_transmit);
+diff --git a/net/bluetooth/hidp/hidp.h b/net/bluetooth/hidp/hidp.h
+index faf3d74..a4e215d 100644
+--- a/net/bluetooth/hidp/hidp.h
++++ b/net/bluetooth/hidp/hidp.h
+@@ -154,7 +154,9 @@ struct hidp_session {
+ 	struct sk_buff_head ctrl_transmit;
+ 	struct sk_buff_head intr_transmit;
+ 
+-	struct hidp_connadd_req *req;
++	/* Report descriptor */
++	__u8 *rd_data;
++	uint rd_size;
  };
  
+ static inline void hidp_schedule(struct hidp_session *session)


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1919
retrieving revision 1.1920
diff -u -p -r1.1919 -r1.1920
--- kernel.spec	6 Feb 2010 23:14:41 -0000	1.1919
+++ kernel.spec	7 Feb 2010 02:23:38 -0000	1.1920
@@ -1138,7 +1138,7 @@ ApplyOptionalPatch linux-2.6-compile-fix
 ApplyOptionalPatch linux-2.6-upstream-reverts.patch -R
 
 #ApplyPatch git-cpufreq.patch
-#ApplyPatch git-bluetooth.patch
+ApplyPatch git-bluetooth.patch
 
 ApplyPatch linux-2.6-hotfixes.patch
 
@@ -1983,6 +1983,10 @@ fi
 # and build.
 
 %changelog
+* Sat Feb 06 2010 Kyle McMartin <kyle at redhat.com>
+- git-bluetooth.patch: selection of backports from next for hadess.
+  (rhbz#562245)
+
 * Sat Feb 06 2010 Kyle McMartin <kyle at redhat.com> 2.6.33-0.36.rc7.git0
 - Linux 2.6.33-rc7 (oops, jumped the gun on -git6 I guess. :)
 



More information about the scm-commits mailing list