@@ -547,7 +547,7 @@ __poll_t tcp_poll(struct file *file, struct socket *sock, poll_table *wait)
547547 int target = sock_rcvlowat (sk , 0 , INT_MAX );
548548 u16 urg_data = READ_ONCE (tp -> urg_data );
549549
550- if (urg_data &&
550+ if (unlikely ( urg_data ) &&
551551 READ_ONCE (tp -> urg_seq ) == READ_ONCE (tp -> copied_seq ) &&
552552 !sock_flag (sk , SOCK_URGINLINE ))
553553 target ++ ;
@@ -1633,7 +1633,7 @@ int tcp_read_sock(struct sock *sk, read_descriptor_t *desc,
16331633
16341634 len = skb -> len - offset ;
16351635 /* Stop reading if we hit a patch of urgent data */
1636- if (tp -> urg_data ) {
1636+ if (unlikely ( tp -> urg_data ) ) {
16371637 u32 urg_offset = tp -> urg_seq - seq ;
16381638 if (urg_offset < len )
16391639 len = urg_offset ;
@@ -2326,7 +2326,7 @@ static int tcp_recvmsg_locked(struct sock *sk, struct msghdr *msg, size_t len,
23262326 u32 offset ;
23272327
23282328 /* Are we at urgent data? Stop if we have read anything or have SIGURG pending. */
2329- if (tp -> urg_data && tp -> urg_seq == * seq ) {
2329+ if (unlikely ( tp -> urg_data ) && tp -> urg_seq == * seq ) {
23302330 if (copied )
23312331 break ;
23322332 if (signal_pending (current )) {
@@ -2431,7 +2431,7 @@ static int tcp_recvmsg_locked(struct sock *sk, struct msghdr *msg, size_t len,
24312431 used = len ;
24322432
24332433 /* Do we have urgent data here? */
2434- if (tp -> urg_data ) {
2434+ if (unlikely ( tp -> urg_data ) ) {
24352435 u32 urg_offset = tp -> urg_seq - * seq ;
24362436 if (urg_offset < used ) {
24372437 if (!urg_offset ) {
@@ -2465,7 +2465,7 @@ static int tcp_recvmsg_locked(struct sock *sk, struct msghdr *msg, size_t len,
24652465 tcp_rcv_space_adjust (sk );
24662466
24672467skip_copy :
2468- if (tp -> urg_data && after (tp -> copied_seq , tp -> urg_seq )) {
2468+ if (unlikely ( tp -> urg_data ) && after (tp -> copied_seq , tp -> urg_seq )) {
24692469 WRITE_ONCE (tp -> urg_data , 0 );
24702470 tcp_fast_path_check (sk );
24712471 }
0 commit comments