Skip to content

Commit f4b41f0

Browse files
hartkoppdavem330
authored andcommitted
net: remove noblock parameter from skb_recv_datagram()
skb_recv_datagram() has two parameters 'flags' and 'noblock' that are merged inside skb_recv_datagram() by 'flags | (noblock ? MSG_DONTWAIT : 0)' As 'flags' may contain MSG_DONTWAIT as value most callers split the 'flags' into 'flags' and 'noblock' with finally obsolete bit operations like this: skb_recv_datagram(sk, flags & ~MSG_DONTWAIT, flags & MSG_DONTWAIT, &rc); And this is not even done consistently with the 'flags' parameter. This patch removes the obsolete and costly splitting into two parameters and only performs bit operations when really needed on the caller side. One missing conversion thankfully reported by kernel test robot. I missed to enable kunit tests to build the mctp code. Reported-by: kernel test robot <[email protected]> Signed-off-by: Oliver Hartkopp <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 0b5c21b commit f4b41f0

File tree

37 files changed

+57
-70
lines changed

37 files changed

+57
-70
lines changed

drivers/isdn/mISDN/socket.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ mISDN_sock_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
121121
if (sk->sk_state == MISDN_CLOSED)
122122
return 0;
123123

124-
skb = skb_recv_datagram(sk, flags, flags & MSG_DONTWAIT, &err);
124+
skb = skb_recv_datagram(sk, flags, &err);
125125
if (!skb)
126126
return err;
127127

drivers/net/ppp/pppoe.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,8 +1011,7 @@ static int pppoe_recvmsg(struct socket *sock, struct msghdr *m,
10111011
goto end;
10121012
}
10131013

1014-
skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
1015-
flags & MSG_DONTWAIT, &error);
1014+
skb = skb_recv_datagram(sk, flags, &error);
10161015
if (error < 0)
10171016
goto end;
10181017

include/linux/skbuff.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3836,8 +3836,7 @@ struct sk_buff *__skb_try_recv_datagram(struct sock *sk,
38363836
struct sk_buff *__skb_recv_datagram(struct sock *sk,
38373837
struct sk_buff_head *sk_queue,
38383838
unsigned int flags, int *off, int *err);
3839-
struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
3840-
int *err);
3839+
struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned int flags, int *err);
38413840
__poll_t datagram_poll(struct file *file, struct socket *sock,
38423841
struct poll_table_struct *wait);
38433842
int skb_copy_datagram_iter(const struct sk_buff *from, int offset,

net/appletalk/ddp.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1753,8 +1753,7 @@ static int atalk_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
17531753
int err = 0;
17541754
struct sk_buff *skb;
17551755

1756-
skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
1757-
flags & MSG_DONTWAIT, &err);
1756+
skb = skb_recv_datagram(sk, flags, &err);
17581757
lock_sock(sk);
17591758

17601759
if (!skb)

net/atm/common.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ int vcc_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
540540
!test_bit(ATM_VF_READY, &vcc->flags))
541541
return 0;
542542

543-
skb = skb_recv_datagram(sk, flags, flags & MSG_DONTWAIT, &error);
543+
skb = skb_recv_datagram(sk, flags, &error);
544544
if (!skb)
545545
return error;
546546

net/ax25/af_ax25.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1669,8 +1669,7 @@ static int ax25_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
16691669
}
16701670

16711671
/* Now we can treat all alike */
1672-
skb = skb_recv_datagram(sk, flags & ~MSG_DONTWAIT,
1673-
flags & MSG_DONTWAIT, &err);
1672+
skb = skb_recv_datagram(sk, flags, &err);
16741673
if (skb == NULL)
16751674
goto out;
16761675

net/bluetooth/af_bluetooth.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ EXPORT_SYMBOL(bt_accept_dequeue);
251251
int bt_sock_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
252252
int flags)
253253
{
254-
int noblock = flags & MSG_DONTWAIT;
255254
struct sock *sk = sock->sk;
256255
struct sk_buff *skb;
257256
size_t copied;
@@ -263,7 +262,7 @@ int bt_sock_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
263262
if (flags & MSG_OOB)
264263
return -EOPNOTSUPP;
265264

266-
skb = skb_recv_datagram(sk, flags, noblock, &err);
265+
skb = skb_recv_datagram(sk, flags, &err);
267266
if (!skb) {
268267
if (sk->sk_shutdown & RCV_SHUTDOWN)
269268
return 0;

net/bluetooth/hci_sock.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1453,7 +1453,6 @@ static void hci_sock_cmsg(struct sock *sk, struct msghdr *msg,
14531453
static int hci_sock_recvmsg(struct socket *sock, struct msghdr *msg,
14541454
size_t len, int flags)
14551455
{
1456-
int noblock = flags & MSG_DONTWAIT;
14571456
struct sock *sk = sock->sk;
14581457
struct sk_buff *skb;
14591458
int copied, err;
@@ -1470,7 +1469,7 @@ static int hci_sock_recvmsg(struct socket *sock, struct msghdr *msg,
14701469
if (sk->sk_state == BT_CLOSED)
14711470
return 0;
14721471

1473-
skb = skb_recv_datagram(sk, flags, noblock, &err);
1472+
skb = skb_recv_datagram(sk, flags, &err);
14741473
if (!skb)
14751474
return err;
14761475

net/caif/caif_socket.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ static int caif_seqpkt_recvmsg(struct socket *sock, struct msghdr *m,
282282
if (flags & MSG_OOB)
283283
goto read_error;
284284

285-
skb = skb_recv_datagram(sk, flags, 0 , &ret);
285+
skb = skb_recv_datagram(sk, flags, &ret);
286286
if (!skb)
287287
goto read_error;
288288
copylen = skb->len;

net/can/bcm.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,12 +1632,9 @@ static int bcm_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
16321632
struct sock *sk = sock->sk;
16331633
struct sk_buff *skb;
16341634
int error = 0;
1635-
int noblock;
16361635
int err;
16371636

1638-
noblock = flags & MSG_DONTWAIT;
1639-
flags &= ~MSG_DONTWAIT;
1640-
skb = skb_recv_datagram(sk, flags, noblock, &error);
1637+
skb = skb_recv_datagram(sk, flags, &error);
16411638
if (!skb)
16421639
return error;
16431640

0 commit comments

Comments
 (0)