From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl0-f67.google.com ([209.85.160.67]:35576 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752025AbeCNQkT (ORCPT ); Wed, 14 Mar 2018 12:40:19 -0400 Received: by mail-pl0-f67.google.com with SMTP id w22-v6so2008020pll.2 for ; Wed, 14 Mar 2018 09:40:19 -0700 (PDT) Subject: Re: [PATCH net-next 2/2] skbuff: Fix not waking applications when errors are enqueued To: Vinicius Costa Gomes , netdev@vger.kernel.org Cc: randy.e.witt@intel.com, davem@davemloft.net References: <20180313203519.8638-1-vinicius.gomes@intel.com> <20180313203519.8638-3-vinicius.gomes@intel.com> From: Eric Dumazet Message-ID: Date: Wed, 14 Mar 2018 09:40:16 -0700 MIME-Version: 1.0 In-Reply-To: <20180313203519.8638-3-vinicius.gomes@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org List-ID: On 03/13/2018 01:35 PM, Vinicius Costa Gomes wrote: > When errors are enqueued to the error queue via sock_queue_err_skb() > function, it is possible that the waiting application is not notified. > > Calling 'sk->sk_data_ready()' would not notify applications that > selected only POLLERR events in poll() (for example). > > Reported-by: Randy E. Witt > Signed-off-by: Vinicius Costa Gomes > --- > net/core/skbuff.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/core/skbuff.c b/net/core/skbuff.c > index 715c13495ba6..6def3534f509 100644 > --- a/net/core/skbuff.c > +++ b/net/core/skbuff.c > @@ -4181,7 +4181,7 @@ int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb) > > skb_queue_tail(&sk->sk_error_queue, skb); > if (!sock_flag(sk, SOCK_DEAD)) > - sk->sk_data_ready(sk); > + sk->sk_error_report(sk); > return 0; > } > EXPORT_SYMBOL(sock_queue_err_skb); > Reviewed-by: Eric Dumazet Given this bug has been there forever, there is probably no rush to get the fix in 4.16, but this looks safe enough IMO.