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
nexedi
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