From patchwork Sat Jul 10 11:01:44 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kulikov Vasiliy X-Patchwork-Id: 58471 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 2BC82B6F10 for ; Sat, 10 Jul 2010 21:02:14 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754637Ab0GJLCJ (ORCPT ); Sat, 10 Jul 2010 07:02:09 -0400 Received: from mail-qy0-f181.google.com ([209.85.216.181]:47364 "EHLO mail-qy0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754287Ab0GJLCH (ORCPT ); Sat, 10 Jul 2010 07:02:07 -0400 Received: by qyk38 with SMTP id 38so3566278qyk.19 for ; Sat, 10 Jul 2010 04:02:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=y9pNEAdglnLuVym5XfVuxC+saJc5/+wEBa2zMX+C4Ns=; b=EarqCis5w5R63VMpnspwFWHxyi0hW3XWLAGzcv3EOr3L3aDWIgS+mB+GQqsQU8M3oY SerBO/z+6UFB+ouaRqdUKmwQZlTQTejdyg4uD++i2N3YivzboniNJOM+4abW7j/tKwqF gpaLrDbq4ZTv4feSeo1Yy4zOa0n32hHYgEtv8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=KI4A8QCiumekGZllHKjnTczE2RlrL+hrdr4Nuzsdtt6kHaPJ5exBADi463jMAKxj69 /jMXUYiS6F5j32aFpT/iPJbeM0rgiChWoNlG9ZITHKIg2bJEnnu8m2vHk7UrOTPRLc/A hjSuqn4U7eD3Mw9Lp860oRXZNMci2ZpfS/DOY= Received: by 10.224.90.139 with SMTP id i11mr1783867qam.327.1278759726249; Sat, 10 Jul 2010 04:02:06 -0700 (PDT) Received: from localhost ([213.87.87.76]) by mx.google.com with ESMTPS id m24sm8713514qck.41.2010.07.10.04.01.55 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 10 Jul 2010 04:02:05 -0700 (PDT) From: Kulikov Vasiliy To: kernel-janitors@vger.kernel.org Cc: "David S. Miller" , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Tejun Heo , Joe Perches , netdev@vger.kernel.org Subject: [PATCH 3/3] xtsonic: free irq if sonic_open() fails Date: Sat, 10 Jul 2010 15:01:44 +0400 Message-Id: <1278759704-7777-1-git-send-email-segooon@gmail.com> X-Mailer: git-send-email 1.7.0.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org xtsonic_open() doesn't check sonic_open() return code. If it is error we must free requested IRQ. Signed-off-by: Kulikov Vasiliy --- drivers/net/xtsonic.c | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/xtsonic.c b/drivers/net/xtsonic.c index fdba9cb..9f12026 100644 --- a/drivers/net/xtsonic.c +++ b/drivers/net/xtsonic.c @@ -93,12 +93,20 @@ static unsigned short known_revisions[] = static int xtsonic_open(struct net_device *dev) { - if (request_irq(dev->irq,sonic_interrupt,IRQF_DISABLED,"sonic",dev)) { + int retval; + + retval = request_irq(dev->irq, sonic_interrupt, IRQF_DISABLED, + "sonic", dev); + if (retval) { printk(KERN_ERR "%s: unable to get IRQ %d.\n", dev->name, dev->irq); return -EAGAIN; } - return sonic_open(dev); + + retval = sonic_open(dev); + if (retval) + free_irq(dev->irq, dev); + return retval; } static int xtsonic_close(struct net_device *dev)