From patchwork Fri Aug 19 22:04:20 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Schwierzeck X-Patchwork-Id: 110742 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 33DA9B6F72 for ; Sat, 20 Aug 2011 08:04:36 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755535Ab1HSWEb (ORCPT ); Fri, 19 Aug 2011 18:04:31 -0400 Received: from mail-fx0-f46.google.com ([209.85.161.46]:65469 "EHLO mail-fx0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753295Ab1HSWEa (ORCPT ); Fri, 19 Aug 2011 18:04:30 -0400 Received: by fxh19 with SMTP id 19so2199556fxh.19 for ; Fri, 19 Aug 2011 15:04:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; bh=y+QyinVsC9JrDk+X74LRvRea5ZNeGkIzDFuJ8zHyo0s=; b=PMFTZkFWkB1cCUI1Rc8E1GAceiwbLhSzB4DyZTkVbW1aJ5sjeFsj07VrfJdiPQSJA6 ScVXNq94n1n1J9um0ttgw25I9nnROwiaQjt5Cob4g3RGXpEY8H08JAuYdFcuqRCU55zN zKb6erfngpmeueTfIbSjRqBq6KwRqFeG4RF+k= Received: by 10.223.71.155 with SMTP id h27mr266893faj.126.1313791469174; Fri, 19 Aug 2011 15:04:29 -0700 (PDT) Received: from localhost.localdomain (dslb-088-073-221-150.pools.arcor-ip.net [88.73.221.150]) by mx.google.com with ESMTPS id 16sm2892672faw.42.2011.08.19.15.04.27 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 19 Aug 2011 15:04:28 -0700 (PDT) From: Daniel Schwierzeck To: netdev@vger.kernel.org Cc: stable@kernel.org, "David S . Miller" Subject: [PATCH] atm: br2684: Fix oops due to skb->dev being NULL Date: Sat, 20 Aug 2011 00:04:20 +0200 Message-Id: <1313791460-13652-1-git-send-email-daniel.schwierzeck@googlemail.com> X-Mailer: git-send-email 1.7.6 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This oops have been already fixed with commit 27141666b69f535a4d63d7bc6d9e84ee5032f82a atm: [br2684] Fix oops due to skb->dev being NULL It happens that if a packet arrives in a VC between the call to open it on the hardware and the call to change the backend to br2684, br2684_regvcc processes the packet and oopses dereferencing skb->dev because it is NULL before the call to br2684_push(). but have been introduced again with commit b6211ae7f2e56837c6a4849316396d1535606e90 atm: Use SKB queue and list helpers instead of doing it by-hand. Signed-off-by: Daniel Schwierzeck --- net/atm/br2684.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/net/atm/br2684.c b/net/atm/br2684.c index 52cfd0c..d07223c 100644 --- a/net/atm/br2684.c +++ b/net/atm/br2684.c @@ -558,12 +558,13 @@ static int br2684_regvcc(struct atm_vcc *atmvcc, void __user * arg) spin_unlock_irqrestore(&rq->lock, flags); skb_queue_walk_safe(&queue, skb, tmp) { - struct net_device *dev = skb->dev; + struct net_device *dev; + + br2684_push(atmvcc, skb); + dev = skb->dev; dev->stats.rx_bytes -= skb->len; dev->stats.rx_packets--; - - br2684_push(atmvcc, skb); } /* initialize netdev carrier state */