* [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready()
@ 2022-02-24 10:06 gavin
2022-02-24 11:05 ` bluez.test.bot
2022-02-24 13:28 ` [PATCH] " Marcel Holtmann
0 siblings, 2 replies; 6+ messages in thread
From: gavin @ 2022-02-24 10:06 UTC (permalink / raw)
To: Marcel Holtmann, Johan Hedberg, Luiz Augusto von Dentz
Cc: linux-bluetooth, Gavin Li
From: Gavin Li <gavin@matician.com>
Callers pass msg->msg_flags as flags, which contains MSG_DONTWAIT
instead of O_NONBLOCK.
Signed-off-by: Gavin Li <gavin@matician.com>
---
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)
{
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);
add_wait_queue(sk_sleep(sk), &wait);
set_current_state(TASK_INTERRUPTIBLE);
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* RE: Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready()
2022-02-24 10:06 [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready() gavin
@ 2022-02-24 11:05 ` bluez.test.bot
2022-02-24 13:28 ` [PATCH] " Marcel Holtmann
1 sibling, 0 replies; 6+ messages in thread
From: bluez.test.bot @ 2022-02-24 11:05 UTC (permalink / raw)
To: linux-bluetooth, gavin
[-- Attachment #1: Type: text/plain, Size: 1097 bytes --]
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=617495
---Test result---
Test Summary:
CheckPatch PASS 1.94 seconds
GitLint PASS 1.00 seconds
SubjectPrefix PASS 0.83 seconds
BuildKernel PASS 36.68 seconds
BuildKernel32 PASS 32.49 seconds
Incremental Build with patchesPASS 46.70 seconds
TestRunner: Setup PASS 556.83 seconds
TestRunner: l2cap-tester PASS 15.42 seconds
TestRunner: bnep-tester PASS 7.09 seconds
TestRunner: mgmt-tester PASS 118.87 seconds
TestRunner: rfcomm-tester PASS 9.20 seconds
TestRunner: sco-tester PASS 9.41 seconds
TestRunner: smp-tester PASS 9.20 seconds
TestRunner: userchan-tester PASS 7.50 seconds
---
Regards,
Linux Bluetooth
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready()
2022-02-24 10:06 [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready() gavin
2022-02-24 11:05 ` bluez.test.bot
@ 2022-02-24 13:28 ` Marcel Holtmann
2022-02-24 20:56 ` Gavin Li
1 sibling, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2022-02-24 13:28 UTC (permalink / raw)
To: gavin; +Cc: Johan Hedberg, Luiz Augusto von Dentz, linux-bluetooth
Hi Gavin,
> Callers pass msg->msg_flags as flags, which contains MSG_DONTWAIT
> instead of O_NONBLOCK.
>
> Signed-off-by: Gavin Li <gavin@matician.com>
> ---
> 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready()
2022-02-24 13:28 ` [PATCH] " Marcel Holtmann
@ 2022-02-24 20:56 ` Gavin Li
2022-03-11 13:39 ` Gavin Li
2022-03-14 15:24 ` Marcel Holtmann
0 siblings, 2 replies; 6+ messages in thread
From: Gavin Li @ 2022-02-24 20:56 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: Johan Hedberg, Luiz Augusto von Dentz, linux-bluetooth
Hi Marcel,
Thanks for reviewing this quickly.
> > 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.
I prefer keeping it as flags because all other net code also uses
flags, msg_flags only appears
in msg->msg_flags.
> > @@ -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).
It appears to be well-known in the net code that sock_sndtimeo takes a
bool, since no other
uses of it do the "!!" conversion.
Let me know what you think. I can make the changes if needed but I was
just trying my best
to match the currently existing convention.
Best,
Gavin
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready()
2022-02-24 20:56 ` Gavin Li
@ 2022-03-11 13:39 ` Gavin Li
2022-03-14 15:24 ` Marcel Holtmann
1 sibling, 0 replies; 6+ messages in thread
From: Gavin Li @ 2022-03-11 13:39 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: Johan Hedberg, Luiz Augusto von Dentz, linux-bluetooth
Hi Marcel,
Please let me know what you think with regards to the comments above.
Best,
Gavin
On Thu, Feb 24, 2022 at 12:56 PM Gavin Li <gavin@matician.com> wrote:
>
> Hi Marcel,
>
> Thanks for reviewing this quickly.
>
> > > 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.
> I prefer keeping it as flags because all other net code also uses
> flags, msg_flags only appears
> in msg->msg_flags.
>
> > > @@ -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).
> It appears to be well-known in the net code that sock_sndtimeo takes a
> bool, since no other
> uses of it do the "!!" conversion.
>
> Let me know what you think. I can make the changes if needed but I was
> just trying my best
> to match the currently existing convention.
>
> Best,
> Gavin
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready()
2022-02-24 20:56 ` Gavin Li
2022-03-11 13:39 ` Gavin Li
@ 2022-03-14 15:24 ` Marcel Holtmann
1 sibling, 0 replies; 6+ messages in thread
From: Marcel Holtmann @ 2022-03-14 15:24 UTC (permalink / raw)
To: Gavin Li; +Cc: Johan Hedberg, Luiz Augusto von Dentz, linux-bluetooth
Hi Gavin,
>>> 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.
> I prefer keeping it as flags because all other net code also uses
> flags, msg_flags only appears
> in msg->msg_flags.
while that might be true, I find it a lot clearer if the variable is msg_flags.
>>> @@ -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).
> It appears to be well-known in the net code that sock_sndtimeo takes a
> bool, since no other
> uses of it do the "!!" conversion.
>
> Let me know what you think. I can make the changes if needed but I was
> just trying my best
> to match the currently existing convention.
And other code in the kernel makes sure to clearly turn something into a bool. You get 0x00 and 0x40.
Regards
Marcel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-03-14 15:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-24 10:06 [PATCH] Bluetooth: fix incorrect nonblock bitmask in bt_sock_wait_ready() gavin
2022-02-24 11:05 ` bluez.test.bot
2022-02-24 13:28 ` [PATCH] " Marcel Holtmann
2022-02-24 20:56 ` Gavin Li
2022-03-11 13:39 ` Gavin Li
2022-03-14 15:24 ` Marcel Holtmann
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.