diff --git a/include/net/tcp.h b/include/net/tcp.h
index f857c3eff710c9d9a32349a53d26eefccb62b31b..5c5327e9a55704053dca4408d7152a1a8674e6ee 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1284,10 +1284,10 @@ static inline void tcp_unlink_write_queue(struct sk_buff *skb, struct sock *sk)
 	__skb_unlink(skb, &sk->sk_write_queue);
 }
 
-static inline int tcp_skb_is_last(const struct sock *sk,
-				  const struct sk_buff *skb)
+static inline bool tcp_skb_is_last(const struct sock *sk,
+				   const struct sk_buff *skb)
 {
-	return skb->next == (struct sk_buff *)&sk->sk_write_queue;
+	return skb_queue_is_last(&sk->sk_write_queue, skb);
 }
 
 static inline int tcp_write_queue_empty(struct sock *sk)