From patchwork Tue Jun 24 22:39:43 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Luis R. Rodriguez" X-Patchwork-Id: 363755 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 B15DC1400D5 for ; Wed, 25 Jun 2014 08:40:32 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753893AbaFXWkH (ORCPT ); Tue, 24 Jun 2014 18:40:07 -0400 Received: from mail-pd0-f178.google.com ([209.85.192.178]:33052 "EHLO mail-pd0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753799AbaFXWkE (ORCPT ); Tue, 24 Jun 2014 18:40:04 -0400 Received: by mail-pd0-f178.google.com with SMTP id r10so794852pdi.23 for ; Tue, 24 Jun 2014 15:40:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=X53Fw12+8hxo4gaGldEuFfZ0yOkrxGN29mH9RtSzW1w=; b=lBykniKp0h9iqOTlkCYHzvTfm3nyZ/4E3AU/JQBGLZt4yMRmSk1eHITQPOM3T6jNDi dU2hlT+akMC86p32eEnoWPRMe3WuX/fuSRvi9An49zsXEocy4cH/lf9RotSqdXvEImKz kitMB6vwKfxJXwuU4wtltFP7pL9Bm1TQkYggQU0fohYXj6+55XtmJ2dx4arNjaJJl0cv I9yuC4b1Si6IkhT56ygSw15SCR0FctdOcpftnGtazL/P0paZN3raVUVUgXwV6/jFlmf+ EYq9BUekUwdwQwci7chAmQtPakhfKc471fltkHCU8CN8PnAkue2Qdujbsw0rwKBBLgqg Ri6w== X-Received: by 10.68.200.10 with SMTP id jo10mr5421121pbc.143.1403649603530; Tue, 24 Jun 2014 15:40:03 -0700 (PDT) Received: from mcgrof@gmail.com (c-98-234-145-61.hsd1.ca.comcast.net. [98.234.145.61]) by mx.google.com with ESMTPSA id ei4sm2043305pbb.42.2014.06.24.15.39.59 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 24 Jun 2014 15:40:02 -0700 (PDT) Received: by mcgrof@gmail.com (sSMTP sendmail emulation); Tue, 24 Jun 2014 15:39:58 -0700 From: "Luis R. Rodriguez" To: tiwai@suse.de, chunkeey@googlemail.com, leedom@chelsio.com, cocci@systeme.lip6.fr Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org, "Luis R. Rodriguez" , linux-wireless@vger.kernel.org Subject: [PATCH 3/3] p54: use request_firmware_direct() for optional EEPROM override Date: Tue, 24 Jun 2014 15:39:43 -0700 Message-Id: <1403649583-12707-4-git-send-email-mcgrof@do-not-panic.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1403649583-12707-1-git-send-email-mcgrof@do-not-panic.com> References: <1403649583-12707-1-git-send-email-mcgrof@do-not-panic.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: "Luis R. Rodriguez" The p54 driver uses request_firmware() twice, once for actual firmware and then another time for an optional user overide on EEPROM, 3826.eeprom. The custom EEPROM is optional but if not present we'll introduce an extra lag of 60 seconds with udev present. Annotate we don't want udev nonsense here to avoid the lag in case its not present. This was found with the following SmPL patch. @ firmware_not_critical @ expression cf; expression config_file; expression dev; int ret; identifier l; statement S; @@ - ret = request_firmware(&cf, config_file, dev); + ret = request_firmware_direct(&cf, config_file, dev); if (ret < 0) { ... when != goto l; when != return ret; when any } else { ... release_firmware(cf); ... } Cc: Takashi Iwai Cc: Christian Lamparter Cc: linux-wireless@vger.kernel.org Cc: cocci@systeme.lip6.fr Signed-off-by: Luis R. Rodriguez Acked-By: Christian Lamparter --- drivers/net/wireless/p54/p54spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c index de15171..63de5ee 100644 --- a/drivers/net/wireless/p54/p54spi.c +++ b/drivers/net/wireless/p54/p54spi.c @@ -193,7 +193,7 @@ static int p54spi_request_eeprom(struct ieee80211_hw *dev) /* allow users to customize their eeprom. */ - ret = request_firmware(&eeprom, "3826.eeprom", &priv->spi->dev); + ret = request_firmware_direct(&eeprom, "3826.eeprom", &priv->spi->dev); if (ret < 0) { #ifdef CONFIG_P54_SPI_DEFAULT_EEPROM dev_info(&priv->spi->dev, "loading default eeprom...\n");