Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
08e6d907
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
08e6d907
编写于
5月 16, 2012
作者:
G
Gustavo Padovan
浏览文件
操作
浏览文件
下载
差异文件
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
上级
d34c34fb
671267bf
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
45 addition
and
20 deletion
+45
-20
drivers/net/wireless/rtlwifi/pci.c
drivers/net/wireless/rtlwifi/pci.c
+8
-8
drivers/net/wireless/rtlwifi/usb.c
drivers/net/wireless/rtlwifi/usb.c
+5
-5
include/net/bluetooth/bluetooth.h
include/net/bluetooth/bluetooth.h
+1
-0
net/bluetooth/af_bluetooth.c
net/bluetooth/af_bluetooth.c
+1
-1
net/bluetooth/hci_core.c
net/bluetooth/hci_core.c
+8
-0
net/bluetooth/hci_event.c
net/bluetooth/hci_event.c
+9
-2
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_core.c
+5
-0
net/bluetooth/l2cap_sock.c
net/bluetooth/l2cap_sock.c
+8
-4
未找到文件。
drivers/net/wireless/rtlwifi/pci.c
浏览文件 @
08e6d907
...
...
@@ -1853,14 +1853,6 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
/*like read eeprom and so on */
rtlpriv
->
cfg
->
ops
->
read_eeprom_info
(
hw
);
if
(
rtlpriv
->
cfg
->
ops
->
init_sw_vars
(
hw
))
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
"Can't init_sw_vars
\n
"
);
err
=
-
ENODEV
;
goto
fail3
;
}
rtlpriv
->
cfg
->
ops
->
init_sw_leds
(
hw
);
/*aspm */
rtl_pci_init_aspm
(
hw
);
...
...
@@ -1879,6 +1871,14 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,
goto
fail3
;
}
if
(
rtlpriv
->
cfg
->
ops
->
init_sw_vars
(
hw
))
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
"Can't init_sw_vars
\n
"
);
err
=
-
ENODEV
;
goto
fail3
;
}
rtlpriv
->
cfg
->
ops
->
init_sw_leds
(
hw
);
err
=
sysfs_create_group
(
&
pdev
->
dev
.
kobj
,
&
rtl_attribute_group
);
if
(
err
)
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
...
...
drivers/net/wireless/rtlwifi/usb.c
浏览文件 @
08e6d907
...
...
@@ -971,11 +971,6 @@ int __devinit rtl_usb_probe(struct usb_interface *intf,
rtlpriv
->
cfg
->
ops
->
read_chip_version
(
hw
);
/*like read eeprom and so on */
rtlpriv
->
cfg
->
ops
->
read_eeprom_info
(
hw
);
if
(
rtlpriv
->
cfg
->
ops
->
init_sw_vars
(
hw
))
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
"Can't init_sw_vars
\n
"
);
goto
error_out
;
}
rtlpriv
->
cfg
->
ops
->
init_sw_leds
(
hw
);
err
=
_rtl_usb_init
(
hw
);
if
(
err
)
goto
error_out
;
...
...
@@ -987,6 +982,11 @@ int __devinit rtl_usb_probe(struct usb_interface *intf,
"Can't allocate sw for mac80211
\n
"
);
goto
error_out
;
}
if
(
rtlpriv
->
cfg
->
ops
->
init_sw_vars
(
hw
))
{
RT_TRACE
(
rtlpriv
,
COMP_ERR
,
DBG_EMERG
,
"Can't init_sw_vars
\n
"
);
goto
error_out
;
}
rtlpriv
->
cfg
->
ops
->
init_sw_leds
(
hw
);
return
0
;
error_out:
...
...
include/net/bluetooth/bluetooth.h
浏览文件 @
08e6d907
...
...
@@ -195,6 +195,7 @@ struct bt_sock {
struct
list_head
accept_q
;
struct
sock
*
parent
;
u32
defer_setup
;
bool
suspended
;
};
struct
bt_sock_list
{
...
...
net/bluetooth/af_bluetooth.c
浏览文件 @
08e6d907
...
...
@@ -450,7 +450,7 @@ unsigned int bt_sock_poll(struct file *file, struct socket *sock, poll_table *wa
sk
->
sk_state
==
BT_CONFIG
)
return
mask
;
if
(
sock_writeable
(
sk
))
if
(
!
bt_sk
(
sk
)
->
suspended
&&
sock_writeable
(
sk
))
mask
|=
POLLOUT
|
POLLWRNORM
|
POLLWRBAND
;
else
set_bit
(
SOCK_ASYNC_NOSPACE
,
&
sk
->
sk_socket
->
flags
);
...
...
net/bluetooth/hci_core.c
浏览文件 @
08e6d907
...
...
@@ -2715,6 +2715,14 @@ static inline void hci_acldata_packet(struct hci_dev *hdev, struct sk_buff *skb)
if
(
conn
)
{
hci_conn_enter_active_mode
(
conn
,
BT_POWER_FORCE_ACTIVE_OFF
);
hci_dev_lock
(
hdev
);
if
(
test_bit
(
HCI_MGMT
,
&
hdev
->
dev_flags
)
&&
!
test_and_set_bit
(
HCI_CONN_MGMT_CONNECTED
,
&
conn
->
flags
))
mgmt_device_connected
(
hdev
,
&
conn
->
dst
,
conn
->
type
,
conn
->
dst_type
,
0
,
NULL
,
0
,
conn
->
dev_class
);
hci_dev_unlock
(
hdev
);
/* Send to upper protocol */
l2cap_recv_acldata
(
conn
,
skb
,
flags
);
return
;
...
...
net/bluetooth/hci_event.c
浏览文件 @
08e6d907
...
...
@@ -2062,6 +2062,12 @@ static inline void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff *
clear_bit
(
HCI_CONN_ENCRYPT_PEND
,
&
conn
->
flags
);
if
(
ev
->
status
&&
conn
->
state
==
BT_CONNECTED
)
{
hci_acl_disconn
(
conn
,
0x13
);
hci_conn_put
(
conn
);
goto
unlock
;
}
if
(
conn
->
state
==
BT_CONFIG
)
{
if
(
!
ev
->
status
)
conn
->
state
=
BT_CONNECTED
;
...
...
@@ -2072,6 +2078,7 @@ static inline void hci_encrypt_change_evt(struct hci_dev *hdev, struct sk_buff *
hci_encrypt_cfm
(
conn
,
ev
->
status
,
ev
->
encrypt
);
}
unlock:
hci_dev_unlock
(
hdev
);
}
...
...
@@ -2125,7 +2132,7 @@ static inline void hci_remote_features_evt(struct hci_dev *hdev, struct sk_buff
goto
unlock
;
}
if
(
!
ev
->
status
)
{
if
(
!
ev
->
status
&&
!
test_bit
(
HCI_CONN_MGMT_CONNECTED
,
&
conn
->
flags
)
)
{
struct
hci_cp_remote_name_req
cp
;
memset
(
&
cp
,
0
,
sizeof
(
cp
));
bacpy
(
&
cp
.
bdaddr
,
&
conn
->
dst
);
...
...
@@ -2901,7 +2908,7 @@ static inline void hci_remote_ext_features_evt(struct hci_dev *hdev, struct sk_b
if
(
conn
->
state
!=
BT_CONFIG
)
goto
unlock
;
if
(
!
ev
->
status
)
{
if
(
!
ev
->
status
&&
!
test_bit
(
HCI_CONN_MGMT_CONNECTED
,
&
conn
->
flags
)
)
{
struct
hci_cp_remote_name_req
cp
;
memset
(
&
cp
,
0
,
sizeof
(
cp
));
bacpy
(
&
cp
.
bdaddr
,
&
conn
->
dst
);
...
...
net/bluetooth/l2cap_core.c
浏览文件 @
08e6d907
...
...
@@ -4916,6 +4916,11 @@ int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
if
(
!
status
&&
(
chan
->
state
==
BT_CONNECTED
||
chan
->
state
==
BT_CONFIG
))
{
struct
sock
*
sk
=
chan
->
sk
;
bt_sk
(
sk
)
->
suspended
=
false
;
sk
->
sk_state_change
(
sk
);
l2cap_check_encryption
(
chan
,
encrypt
);
l2cap_chan_unlock
(
chan
);
continue
;
...
...
net/bluetooth/l2cap_sock.c
浏览文件 @
08e6d907
...
...
@@ -596,10 +596,14 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
sk
->
sk_state
=
BT_CONFIG
;
chan
->
state
=
BT_CONFIG
;
/* or for ACL link, under defer_setup time */
}
else
if
(
sk
->
sk_state
==
BT_CONNECT2
&&
bt_sk
(
sk
)
->
defer_setup
)
{
err
=
l2cap_chan_check_security
(
chan
);
/* or for ACL link */
}
else
if
((
sk
->
sk_state
==
BT_CONNECT2
&&
bt_sk
(
sk
)
->
defer_setup
)
||
sk
->
sk_state
==
BT_CONNECTED
)
{
if
(
!
l2cap_chan_check_security
(
chan
))
bt_sk
(
sk
)
->
suspended
=
true
;
else
sk
->
sk_state_change
(
sk
);
}
else
{
err
=
-
EINVAL
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录