Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
518eefe1
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
518eefe1
编写于
9月 05, 2012
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
上级
c6b6eedc
d8343f12
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
26 addition
and
17 deletion
+26
-17
drivers/bluetooth/ath3k.c
drivers/bluetooth/ath3k.c
+2
-0
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+7
-5
include/net/bluetooth/smp.h
include/net/bluetooth/smp.h
+1
-1
net/bluetooth/hci_conn.c
net/bluetooth/hci_conn.c
+4
-0
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_core.c
+6
-5
net/bluetooth/l2cap_sock.c
net/bluetooth/l2cap_sock.c
+1
-1
net/bluetooth/smp.c
net/bluetooth/smp.c
+5
-5
未找到文件。
drivers/bluetooth/ath3k.c
浏览文件 @
518eefe1
...
...
@@ -86,6 +86,7 @@ static struct usb_device_id ath3k_table[] = {
/* Atheros AR5BBU22 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xE03C
)
},
{
USB_DEVICE
(
0x0489
,
0xE036
)
},
{
}
/* Terminating entry */
};
...
...
@@ -109,6 +110,7 @@ static struct usb_device_id ath3k_blist_tbl[] = {
/* Atheros AR5BBU22 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xE03C
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0489
,
0xE036
),
.
driver_info
=
BTUSB_ATH3012
},
{
}
/* Terminating entry */
};
...
...
drivers/bluetooth/btusb.c
浏览文件 @
518eefe1
...
...
@@ -52,6 +52,9 @@ static struct usb_device_id btusb_table[] = {
/* Generic Bluetooth USB device */
{
USB_DEVICE_INFO
(
0xe0
,
0x01
,
0x01
)
},
/* Apple-specific (Broadcom) devices */
{
USB_VENDOR_AND_INTERFACE_INFO
(
0x05ac
,
0xff
,
0x01
,
0x01
)
},
/* Broadcom SoftSailing reporting vendor specific */
{
USB_DEVICE
(
0x0a5c
,
0x21e1
)
},
...
...
@@ -94,16 +97,14 @@ static struct usb_device_id btusb_table[] = {
/* Broadcom BCM20702A0 */
{
USB_DEVICE
(
0x0489
,
0xe042
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21e3
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21e6
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21e8
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21f3
)
},
{
USB_DEVICE
(
0x0a5c
,
0x21f4
)
},
{
USB_DEVICE
(
0x413c
,
0x8197
)
},
/* Foxconn - Hon Hai */
{
USB_DEVICE
(
0x0489
,
0xe033
)
},
/*Broadcom devices with vendor specific id */
{
USB_VENDOR_AND_INTERFACE_INFO
(
0x0a5c
,
0xff
,
0x01
,
0x01
)
},
{
}
/* Terminating entry */
};
...
...
@@ -141,6 +142,7 @@ static struct usb_device_id blacklist_table[] = {
/* Atheros AR5BBU12 with sflash firmware */
{
USB_DEVICE
(
0x0489
,
0xe03c
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0489
,
0xe036
),
.
driver_info
=
BTUSB_ATH3012
},
/* Broadcom BCM2035 */
{
USB_DEVICE
(
0x0a5c
,
0x2035
),
.
driver_info
=
BTUSB_WRONG_SCO_MTU
},
...
...
include/net/bluetooth/smp.h
浏览文件 @
518eefe1
...
...
@@ -136,7 +136,7 @@ struct smp_chan {
};
/* SMP Commands */
int
smp_conn_security
(
struct
l2cap_conn
*
con
n
,
__u8
sec_level
);
int
smp_conn_security
(
struct
hci_conn
*
hco
n
,
__u8
sec_level
);
int
smp_sig_channel
(
struct
l2cap_conn
*
conn
,
struct
sk_buff
*
skb
);
int
smp_distribute_keys
(
struct
l2cap_conn
*
conn
,
__u8
force
);
int
smp_user_confirm_reply
(
struct
hci_conn
*
conn
,
u16
mgmt_op
,
__le32
passkey
);
...
...
net/bluetooth/hci_conn.c
浏览文件 @
518eefe1
...
...
@@ -29,6 +29,7 @@
#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>
#include <net/bluetooth/a2mp.h>
#include <net/bluetooth/smp.h>
static
void
hci_le_connect
(
struct
hci_conn
*
conn
)
{
...
...
@@ -619,6 +620,9 @@ int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
{
BT_DBG
(
"hcon %p"
,
conn
);
if
(
conn
->
type
==
LE_LINK
)
return
smp_conn_security
(
conn
,
sec_level
);
/* For sdp we don't need the link key. */
if
(
sec_level
==
BT_SECURITY_SDP
)
return
1
;
...
...
net/bluetooth/l2cap_core.c
浏览文件 @
518eefe1
...
...
@@ -1199,14 +1199,15 @@ static void l2cap_le_conn_ready(struct l2cap_conn *conn)
static
void
l2cap_conn_ready
(
struct
l2cap_conn
*
conn
)
{
struct
l2cap_chan
*
chan
;
struct
hci_conn
*
hcon
=
conn
->
hcon
;
BT_DBG
(
"conn %p"
,
conn
);
if
(
!
conn
->
hcon
->
out
&&
conn
->
hcon
->
type
==
LE_LINK
)
if
(
!
hcon
->
out
&&
hcon
->
type
==
LE_LINK
)
l2cap_le_conn_ready
(
conn
);
if
(
conn
->
hcon
->
out
&&
conn
->
hcon
->
type
==
LE_LINK
)
smp_conn_security
(
conn
,
conn
->
hcon
->
pending_sec_level
);
if
(
hcon
->
out
&&
hcon
->
type
==
LE_LINK
)
smp_conn_security
(
hcon
,
hcon
->
pending_sec_level
);
mutex_lock
(
&
conn
->
chan_lock
);
...
...
@@ -1219,8 +1220,8 @@ static void l2cap_conn_ready(struct l2cap_conn *conn)
continue
;
}
if
(
conn
->
hcon
->
type
==
LE_LINK
)
{
if
(
smp_conn_security
(
con
n
,
chan
->
sec_level
))
if
(
hcon
->
type
==
LE_LINK
)
{
if
(
smp_conn_security
(
hco
n
,
chan
->
sec_level
))
l2cap_chan_ready
(
chan
);
}
else
if
(
chan
->
chan_type
!=
L2CAP_CHAN_CONN_ORIENTED
)
{
...
...
net/bluetooth/l2cap_sock.c
浏览文件 @
518eefe1
...
...
@@ -615,7 +615,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
break
;
}
if
(
smp_conn_security
(
conn
,
sec
.
level
))
if
(
smp_conn_security
(
conn
->
hcon
,
sec
.
level
))
break
;
sk
->
sk_state
=
BT_CONFIG
;
chan
->
state
=
BT_CONFIG
;
...
...
net/bluetooth/smp.c
浏览文件 @
518eefe1
...
...
@@ -267,10 +267,10 @@ static void smp_failure(struct l2cap_conn *conn, u8 reason, u8 send)
mgmt_auth_failed
(
conn
->
hcon
->
hdev
,
conn
->
dst
,
hcon
->
type
,
hcon
->
dst_type
,
reason
);
if
(
test_and_clear_bit
(
HCI_CONN_LE_SMP_PEND
,
&
conn
->
hcon
->
flags
))
{
cancel_delayed_work_sync
(
&
conn
->
security_timer
);
cancel_delayed_work_sync
(
&
conn
->
security_timer
);
if
(
test_and_clear_bit
(
HCI_CONN_LE_SMP_PEND
,
&
conn
->
hcon
->
flags
))
smp_chan_destroy
(
conn
);
}
}
#define JUST_WORKS 0x00
...
...
@@ -760,9 +760,9 @@ static u8 smp_cmd_security_req(struct l2cap_conn *conn, struct sk_buff *skb)
return
0
;
}
int
smp_conn_security
(
struct
l2cap_conn
*
con
n
,
__u8
sec_level
)
int
smp_conn_security
(
struct
hci_conn
*
hco
n
,
__u8
sec_level
)
{
struct
hci_conn
*
hcon
=
conn
->
hcon
;
struct
l2cap_conn
*
conn
=
hcon
->
l2cap_data
;
struct
smp_chan
*
smp
=
conn
->
smp_chan
;
__u8
authreq
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录