From patchwork Thu Jan 24 01:45:06 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 215093 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 75A512C0080 for ; Thu, 24 Jan 2013 12:45:18 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752884Ab3AXBpN (ORCPT ); Wed, 23 Jan 2013 20:45:13 -0500 Received: from mail-pb0-f47.google.com ([209.85.160.47]:41572 "EHLO mail-pb0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752531Ab3AXBpK (ORCPT ); Wed, 23 Jan 2013 20:45:10 -0500 Received: by mail-pb0-f47.google.com with SMTP id wz17so5070808pbc.6 for ; Wed, 23 Jan 2013 17:45:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:subject:from:to:cc:in-reply-to:references:content-type :date:message-id:mime-version:x-mailer:content-transfer-encoding; bh=dk7scGK5haAp/Xw4HXmOij8yzKzpDAGn9Vp2gkG7+wU=; b=dqC27Ig48CKlFj3rLXmeykA8eO+wCqqliRhXbkkL5D17i7VGwZQ+0gVVVG43hSyC6c q7VAuYcYzF2/R+nmBcMtj4Kz1L6kdUe3bdxWRE0jIVmcWAPm5T0ggsEYwT0lUtbtu85v qLhcD5jB74N8ayjXZb52SkkVJEOJT6mhUFIJNJXxq42Jd5tqVewALO83JDNqY+60IF8Q RsxB7tcYndoYjVlxB410CmxnFZTYrhYb35A5CvsaFNJPANhuta42JG00vF2LPnGScOrw +K/V11z+gtdEWlq2N+7fB6VH9+Gb7jU0DkHRcDfrz9QZjG1t7jXPX+OgRsSMcLw9KctV MYFg== X-Received: by 10.68.204.135 with SMTP id ky7mr732816pbc.24.1358991909448; Wed, 23 Jan 2013 17:45:09 -0800 (PST) Received: from [172.29.160.193] ([172.29.160.193]) by mx.google.com with ESMTPS id sg7sm13814408pbb.3.2013.01.23.17.45.07 (version=SSLv3 cipher=RC4-SHA bits=128/128); Wed, 23 Jan 2013 17:45:08 -0800 (PST) Subject: Re: 3.7.3+: Bad paging request in ip_rcv_finish while running NFS traffic. From: Eric Dumazet To: Ben Greear Cc: netdev In-Reply-To: <1358989843.12374.1334.camel@edumazet-glaptop> References: <50FDADF4.3060601@candelatech.com> <50FDDE35.7070806@candelatech.com> <1358829606.3464.3151.camel@edumazet-glaptop> <50FE2A57.3040804@candelatech.com> <50FEC796.5090404@candelatech.com> <1358875020.3464.4006.camel@edumazet-glaptop> <1358875607.3464.4020.camel@edumazet-glaptop> <50FF102F.2050008@candelatech.com> <50FF4BC9.1060206@candelatech.com> <5100785D.8040101@candelatech.com> <1358985688.12374.1247.camel@edumazet-glaptop> <51007CA8.2050105@candelatech.com> <1358987031.12374.1276.camel@edumazet-glaptop> <51008294.2010201@candelatech.com> <1358988358.12374.1303.camel@edumazet-glaptop> <51008598.4000603@candelatech.com> <1358989242.12374.1323.camel@edumazet-glaptop> <51008900.2010803@candelatech.com> <1358989843.12374.1334.camel@edumazet-glaptop> Date: Wed, 23 Jan 2013 17:45:06 -0800 Message-ID: <1358991906.12374.1356.camel@edumazet-glaptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Wed, 2013-01-23 at 17:10 -0800, Eric Dumazet wrote: > Excellent, thats the bug. > > I'll send a fix asap, thanks ! loopback device doesnt have a qdisc, and unsets IFF_XMIT_DST_RELEASE Its hard to believe such an old bug never hit us in the past. Probably because most of the time, the packet given to netif_rx() is immediately processed (and loopback device is hard wired ?) Tested-By: Ben Greear --- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c index 81f8f9e..fcbf680 100644 --- a/drivers/net/loopback.c +++ b/drivers/net/loopback.c @@ -77,6 +77,11 @@ static netdev_tx_t loopback_xmit(struct sk_buff *skb, skb_orphan(skb); + /* Before queueing this packet to netif_rx(), + * make sure dst is refcounted. + */ + skb_dst_force(skb); + skb->protocol = eth_type_trans(skb, dev); /* it's OK to use per_cpu_ptr() because BHs are off */