Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
08e6d907
Commit
08e6d907
authored
May 16, 2012
by
Gustavo Padovan
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
parents
d34c34fb
671267bf
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
45 additions
and
20 deletions
+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
No files found.
drivers/net/wireless/rtlwifi/pci.c
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment