[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20170623.111858.1724599210974760106.davem@davemloft.net>
Date: Fri, 23 Jun 2017 11:18:58 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: pabeni@...hat.com
Cc: netdev@...r.kernel.org, hannes@...essinduktion.org,
edumazet@...gle.com, mpe@...erman.id.au,
linuxppc-dev@...ts.ozlabs.org
Subject: Re: [PATCH net-next] udp: fix poll()
From: Paolo Abeni <pabeni@...hat.com>
Date: Fri, 23 Jun 2017 14:19:51 +0200
> Michael reported an UDP breakage caused by the commit b65ac44674dd
> ("udp: try to avoid 2 cache miss on dequeue").
> The function __first_packet_length() can update the checksum bits
> of the pending skb, making the scratched area out-of-sync, and
> setting skb->csum, if the skb was previously in need of checksum
> validation.
>
> On later recvmsg() for such skb, checksum validation will be
> invoked again - due to the wrong udp_skb_csum_unnecessary()
> value - and will fail, causing the valid skb to be dropped.
>
> This change addresses the issue refreshing the scratch area in
> __first_packet_length() after the possible checksum update.
>
> Fixes: b65ac44674dd ("udp: try to avoid 2 cache miss on dequeue")
> Reported-by: Michael Ellerman <mpe@...erman.id.au>
> Signed-off-by: Hannes Frederic Sowa <hannes@...essinduktion.org>
> Signed-off-by: Paolo Abeni <pabeni@...hat.com>
Thanks for fixing this so quickly, applied.
Powered by blists - more mailing lists