Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
b7e04735
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b7e04735
编写于
12月 18, 2013
作者:
J
John W. Linville
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-upstream' of
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
上级
73f0b56a
1bc5ad16
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
10 deletion
+19
-10
drivers/bluetooth/ath3k.c
drivers/bluetooth/ath3k.c
+2
-0
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+1
-0
net/bluetooth/hci_sock.c
net/bluetooth/hci_sock.c
+16
-10
未找到文件。
drivers/bluetooth/ath3k.c
浏览文件 @
b7e04735
...
...
@@ -87,6 +87,7 @@ static const struct usb_device_id ath3k_table[] = {
{
USB_DEVICE
(
0x0CF3
,
0xE004
)
},
{
USB_DEVICE
(
0x0CF3
,
0xE005
)
},
{
USB_DEVICE
(
0x0930
,
0x0219
)
},
{
USB_DEVICE
(
0x0930
,
0x0220
)
},
{
USB_DEVICE
(
0x0489
,
0xe057
)
},
{
USB_DEVICE
(
0x13d3
,
0x3393
)
},
{
USB_DEVICE
(
0x0489
,
0xe04e
)
},
...
...
@@ -129,6 +130,7 @@ static const struct usb_device_id ath3k_blist_tbl[] = {
{
USB_DEVICE
(
0x0cf3
,
0xe004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0xe005
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0219
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0220
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0489
,
0xe057
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3393
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0489
,
0xe04e
),
.
driver_info
=
BTUSB_ATH3012
},
...
...
drivers/bluetooth/btusb.c
浏览文件 @
b7e04735
...
...
@@ -154,6 +154,7 @@ static const struct usb_device_id blacklist_table[] = {
{
USB_DEVICE
(
0x0cf3
,
0xe004
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0cf3
,
0xe005
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0219
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0930
,
0x0220
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0489
,
0xe057
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x13d3
,
0x3393
),
.
driver_info
=
BTUSB_ATH3012
},
{
USB_DEVICE
(
0x0489
,
0xe04e
),
.
driver_info
=
BTUSB_ATH3012
},
...
...
net/bluetooth/hci_sock.c
浏览文件 @
b7e04735
...
...
@@ -940,8 +940,22 @@ static int hci_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
bt_cb
(
skb
)
->
pkt_type
=
*
((
unsigned
char
*
)
skb
->
data
);
skb_pull
(
skb
,
1
);
if
(
hci_pi
(
sk
)
->
channel
==
HCI_CHANNEL_RAW
&&
bt_cb
(
skb
)
->
pkt_type
==
HCI_COMMAND_PKT
)
{
if
(
hci_pi
(
sk
)
->
channel
==
HCI_CHANNEL_USER
)
{
/* No permission check is needed for user channel
* since that gets enforced when binding the socket.
*
* However check that the packet type is valid.
*/
if
(
bt_cb
(
skb
)
->
pkt_type
!=
HCI_COMMAND_PKT
&&
bt_cb
(
skb
)
->
pkt_type
!=
HCI_ACLDATA_PKT
&&
bt_cb
(
skb
)
->
pkt_type
!=
HCI_SCODATA_PKT
)
{
err
=
-
EINVAL
;
goto
drop
;
}
skb_queue_tail
(
&
hdev
->
raw_q
,
skb
);
queue_work
(
hdev
->
workqueue
,
&
hdev
->
tx_work
);
}
else
if
(
bt_cb
(
skb
)
->
pkt_type
==
HCI_COMMAND_PKT
)
{
u16
opcode
=
get_unaligned_le16
(
skb
->
data
);
u16
ogf
=
hci_opcode_ogf
(
opcode
);
u16
ocf
=
hci_opcode_ocf
(
opcode
);
...
...
@@ -972,14 +986,6 @@ static int hci_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
goto
drop
;
}
if
(
hci_pi
(
sk
)
->
channel
==
HCI_CHANNEL_USER
&&
bt_cb
(
skb
)
->
pkt_type
!=
HCI_COMMAND_PKT
&&
bt_cb
(
skb
)
->
pkt_type
!=
HCI_ACLDATA_PKT
&&
bt_cb
(
skb
)
->
pkt_type
!=
HCI_SCODATA_PKT
)
{
err
=
-
EINVAL
;
goto
drop
;
}
skb_queue_tail
(
&
hdev
->
raw_q
,
skb
);
queue_work
(
hdev
->
workqueue
,
&
hdev
->
tx_work
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录