Re: [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Gavin,

> Callers pass msg->msg_flags as flags, which contains MSG_DONTWAIT
> instead of O_NONBLOCK.
> 
> Signed-off-by: Gavin Li <gavin@xxxxxxxxxxxx>
> ---
> include/net/bluetooth/bluetooth.h | 2 +-
> net/bluetooth/af_bluetooth.c      | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
> index a647e5fabdbd6..87f0bba39b0f7 100644
> --- a/include/net/bluetooth/bluetooth.h
> +++ b/include/net/bluetooth/bluetooth.h
> @@ -343,7 +343,7 @@ int  bt_sock_stream_recvmsg(struct socket *sock, struct msghdr *msg,
> __poll_t bt_sock_poll(struct file *file, struct socket *sock, poll_table *wait);
> int  bt_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
> int  bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo);
> -int  bt_sock_wait_ready(struct sock *sk, unsigned long flags);
> +int  bt_sock_wait_ready(struct sock *sk, unsigned int flags);
> 
> void bt_accept_enqueue(struct sock *parent, struct sock *sk, bool bh);
> void bt_accept_unlink(struct sock *sk);
> diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c
> index ee319779781e6..69374321130e4 100644
> --- a/net/bluetooth/af_bluetooth.c
> +++ b/net/bluetooth/af_bluetooth.c
> @@ -568,7 +568,7 @@ int bt_sock_wait_state(struct sock *sk, int state, unsigned long timeo)
> EXPORT_SYMBOL(bt_sock_wait_state);
> 
> /* This function expects the sk lock to be held when called */
> -int bt_sock_wait_ready(struct sock *sk, unsigned long flags)
> +int bt_sock_wait_ready(struct sock *sk, unsigned int flags)

can we then also do s/flags/msg_flags/ then.

> {
> 	DECLARE_WAITQUEUE(wait, current);
> 	unsigned long timeo;
> @@ -576,7 +576,7 @@ int bt_sock_wait_ready(struct sock *sk, unsigned long flags)
> 
> 	BT_DBG("sk %p", sk);
> 
> -	timeo = sock_sndtimeo(sk, flags & O_NONBLOCK);
> +	timeo = sock_sndtimeo(sk, flags & MSG_DONTWAIT);

Since sock_sndtimeo() is taking a bool. This might be better !!(flags & MSG_DONTWAIT).

Regards

Marcel




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux