mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
bluetooth: rfcomm_init bug fix
rfcomm tty may be used before rfcomm_tty_driver initilized, The problem is that now socket layer init before tty layer, if userspace program do socket callback right here then oops will happen. reporting in: http://marc.info/?l=linux-bluetooth&m=124404919324542&w=2 make 3 changes: 1. remove #ifdef in rfcomm/core.c, make it blank function when rfcomm tty not selected in rfcomm.h 2. tune the rfcomm_init error patch to ensure tty driver initilized before rfcomm socket usage. 3. remove __exit for rfcomm_cleanup_sockets because above change need call it in a __init function. Reported-by: Oliver Hartkopp <oliver@hartkopp.net> Tested-by: Oliver Hartkopp <oliver@hartkopp.net> Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
eb4ad82641
commit
af0d3b103b
3 changed files with 31 additions and 10 deletions
|
@ -355,7 +355,17 @@ struct rfcomm_dev_list_req {
|
|||
};
|
||||
|
||||
int rfcomm_dev_ioctl(struct sock *sk, unsigned int cmd, void __user *arg);
|
||||
|
||||
#ifdef CONFIG_BT_RFCOMM_TTY
|
||||
int rfcomm_init_ttys(void);
|
||||
void rfcomm_cleanup_ttys(void);
|
||||
|
||||
#else
|
||||
static inline int rfcomm_init_ttys(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void rfcomm_cleanup_ttys(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#endif /* __RFCOMM_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue