From patchwork Mon Jul 20 14:06:40 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wolfgang Grandegger X-Patchwork-Id: 30008 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 5AD92B7080 for ; Tue, 21 Jul 2009 00:06:59 +1000 (EST) Received: by ozlabs.org (Postfix) id 4DD0FDDDA0; Tue, 21 Jul 2009 00:06:59 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id C673DDDD04 for ; Tue, 21 Jul 2009 00:06:58 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753957AbZGTOGm (ORCPT ); Mon, 20 Jul 2009 10:06:42 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753868AbZGTOGm (ORCPT ); Mon, 20 Jul 2009 10:06:42 -0400 Received: from mail-out.m-online.net ([212.18.0.10]:60775 "EHLO mail-out.m-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753780AbZGTOGk (ORCPT ); Mon, 20 Jul 2009 10:06:40 -0400 Received: from mail01.m-online.net (mail.m-online.net [192.168.3.149]) by mail-out.m-online.net (Postfix) with ESMTP id 682C41C001E1; Mon, 20 Jul 2009 16:06:39 +0200 (CEST) X-Auth-Info: 7zRkh4S09keZ23P0ZsSJDkru7DQk7z1Q3+5u+NKeilo= Received: from mail.denx.de (host-82-135-33-74.customer.m-online.net [82.135.33.74]) by smtp-auth.mnet-online.de (Postfix) with ESMTP id 3687F90242; Mon, 20 Jul 2009 16:06:39 +0200 (CEST) Received: from pollux.denx.de (pollux [192.168.1.1]) by mail.denx.de (Postfix) with ESMTP id EED5D40B3F9D; Mon, 20 Jul 2009 16:06:38 +0200 (CEST) Received: by pollux.denx.de (Postfix, from userid 504) id DA5F610118652; Mon, 20 Jul 2009 16:06:38 +0200 (CEST) Message-Id: <20090720140638.747810963@denx.de> User-Agent: quilt/0.47-1 Date: Mon, 20 Jul 2009 16:06:40 +0200 From: Wolfgang Grandegger To: netdev@vger.kernel.org Cc: socketcan-core@lists.berlios.de, Kurt Van Dijck , Wolfgang Grandegger Subject: [PATCH 2/3] can: restart device even if dev_alloc_skb() fails References: <20090720140638.342067093@denx.de> Content-Disposition: inline; filename=busoff-restart.patch Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If dev_alloc_skb() failed in can_restart(), the device was left behind in the bus-off state. This patch restarts the device nevertheless. Signed-off-by: Kurt Van Dijck Signed-off-by: Wolfgang Grandegger --- drivers/net/can/dev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 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 Index: net-next-2.6/drivers/net/can/dev.c =================================================================== --- net-next-2.6.orig/drivers/net/can/dev.c 2009-06-09 12:45:38.446934371 +0200 +++ net-next-2.6/drivers/net/can/dev.c 2009-07-20 16:03:19.129997395 +0200 @@ -346,7 +346,7 @@ skb = dev_alloc_skb(sizeof(struct can_frame)); if (skb == NULL) { err = -ENOMEM; - goto out; + goto restart; } skb->dev = dev; skb->protocol = htons(ETH_P_CAN); @@ -361,13 +361,13 @@ stats->rx_packets++; stats->rx_bytes += cf->can_dlc; +restart: dev_dbg(dev->dev.parent, "restarted\n"); priv->can_stats.restarts++; /* Now restart the device */ err = priv->do_set_mode(dev, CAN_MODE_START); -out: netif_carrier_on(dev); if (err) dev_err(dev->dev.parent, "Error %d during restart", err);