From patchwork Mon Apr 4 12:33:24 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulrich Weber X-Patchwork-Id: 89620 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 67957B6F14 for ; Mon, 4 Apr 2011 22:47:49 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751450Ab1DDMro (ORCPT ); Mon, 4 Apr 2011 08:47:44 -0400 Received: from dhost002-45.dex002.intermedia.net ([64.78.21.137]:18373 "EHLO dhost002-45.dex002.intermedia.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751288Ab1DDMrn (ORCPT ); Mon, 4 Apr 2011 08:47:43 -0400 X-Greylist: delayed 849 seconds by postgrey-1.27 at vger.kernel.org; Mon, 04 Apr 2011 08:47:43 EDT Received: from MISD002-3.dex002.intermedia.net ([64.78.61.45]) by dhost002-45.dex002.intermedia.net with Microsoft SMTPSVC(6.0.3790.4675); Mon, 4 Apr 2011 05:33:32 -0700 Received: from babylon ([213.144.15.3]) by MISD002-3.dex002.intermedia.net over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Mon, 4 Apr 2011 05:33:31 -0700 Date: Mon, 4 Apr 2011 14:33:24 +0200 From: Ulrich Weber To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH] pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev Message-ID: <20110404123324.GA12662@babylon> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-OriginalArrivalTime: 04 Apr 2011 12:33:32.0017 (UTC) FILETIME=[8215CE10:01CBF2C4] Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org otherwise we loop forever if a PPPoE socket was set to PPPOX_ZOMBIE state by a PADT message when the ethernet device is going down afterwards. Signed-off-by: Ulrich Weber --- drivers/net/pppoe.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c index 78c0e3c..71b1d8f 100644 --- a/drivers/net/pppoe.c +++ b/drivers/net/pppoe.c @@ -317,7 +317,7 @@ static void pppoe_flush_dev(struct net_device *dev) lock_sock(sk); if (po->pppoe_dev == dev && - sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND)) { + sk->sk_state & (PPPOX_CONNECTED | PPPOX_BOUND | PPPOX_ZOMBIE)) { pppox_unbind_sock(sk); sk->sk_state = PPPOX_ZOMBIE; sk->sk_state_change(sk);