From patchwork Tue Aug 7 17:32:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Whitten X-Patchwork-Id: 954596 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="g+qEGOBO"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41lM673BYdz9ryt for ; Wed, 8 Aug 2018 03:32:31 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389711AbeHGTrw (ORCPT ); Tue, 7 Aug 2018 15:47:52 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:38751 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727194AbeHGTrw (ORCPT ); Tue, 7 Aug 2018 15:47:52 -0400 Received: by mail-wr1-f66.google.com with SMTP id v14-v6so16533986wro.5 for ; Tue, 07 Aug 2018 10:32:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=6CNlwYrTrq14uqRBkuiW5Fd8XrHpXZET1NEd2r5uCAs=; b=g+qEGOBOGJKdpUJWMIIIRzCMmuFFM++7YpMQAotP0vpK1hfKDW+Q8/AGYSnz/iCyAy 7um9GrjN/2UmktTiShh64WjuJcxBuD3NO46nYbIUenfu6/drs8uE+A61aS4mMc4UdYR/ FM8OoQnXd/i8lCmCc0plGSzlhfsZcpg5A7MJSa/0QteIpJw6xwmAeeUdLqMNJZzRSFzI da7tdLUPGsubiQcdQqQDMtfW3lJ9a2/R8YbOoQxLwQ16e2YuyoAGI5eibDTxZW4IyOXz pD5mJSbBgSRh0oTSZYgKt9krfWr6QCKjjutMU7mbtYChShugUmKfDMsqT1eVO6TZq7Xe z6lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=6CNlwYrTrq14uqRBkuiW5Fd8XrHpXZET1NEd2r5uCAs=; b=jwHaSuHp+zEokrSvRjUsAA1c2VCkJjIhjiZ+VSenQjY7OjKaDy1vayL4GYjFbgr7JK 0y6IqvSxHh5U2GbyCjzrdzzd8mjHHE/EyysscqWv7xbRtS+bYF/ZMRKyLz/5pTGwgtuA tO7T6kdYKVzBCUcl6Sjuz2seiLSCpPy43cuvFD32IMkZc4xCeMuolGKp5iRmY0exPhUY AKzkFJ4NcXD2ThUk4LmyVx/85QbPGDkRDCSsvnklRt5L9OZNlMyN2wepKwUgRE86NY1X c1/BD7/20Yb/XsUl4n9mOJ7NSDLeLuBCZ5/RGboMXTu+djjd9gJ8EFKG9+IcHhP49mUB HSqQ== X-Gm-Message-State: AOUpUlH2a5nbukOFkz4oLucnhr9OlTlcvJj8Ac5n03vxCGwAYNZxytFN R3aGi22UcDYynSsO9nG1SS0= X-Google-Smtp-Source: AAOMgpcaYe/yIkfEStKa2UB37FHrT4tOazdS3gFH4JhZE0w+cf78Rlh1utMohzJASObvkFWlX2AlXQ== X-Received: by 2002:adf:f910:: with SMTP id b16-v6mr13995139wrr.28.1533663148835; Tue, 07 Aug 2018 10:32:28 -0700 (PDT) Received: from Lappy.lan (196.98.125.91.dyn.plus.net. [91.125.98.196]) by smtp.gmail.com with ESMTPSA id m207-v6sm3234263wma.31.2018.08.07.10.32.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 07 Aug 2018 10:32:27 -0700 (PDT) From: Ben Whitten To: afaerber@suse.de, starnight@g.ncu.edu.tw, hasnain.virk@arm.com Cc: netdev@vger.kernel.org, Ben Whitten Subject: [PATCH lora-next 02/10] net: lora: add methods for devm registration Date: Tue, 7 Aug 2018 18:32:03 +0100 Message-Id: <1533663131-16313-4-git-send-email-ben.whitten@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1533663131-16313-1-git-send-email-ben.whitten@gmail.com> References: <1533663131-16313-1-git-send-email-ben.whitten@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Ben Whitten Follow the devm model so that we can avoid lengthy unwind code. Signed-off-by: Ben Whitten --- drivers/net/lora/dev.c | 20 ++++++++++++++++++++ include/linux/lora/dev.h | 1 + 2 files changed, 21 insertions(+) diff --git a/drivers/net/lora/dev.c b/drivers/net/lora/dev.c index 8c01106..69a8b52 100644 --- a/drivers/net/lora/dev.c +++ b/drivers/net/lora/dev.c @@ -84,6 +84,26 @@ void free_loradev(struct net_device *dev) } EXPORT_SYMBOL_GPL(free_loradev); +static void devm_lora_unregister(struct device *dev, void *res) +{ + free_loradev(*(struct net_device **)res); +} + +int devm_lora_register_netdev(struct device *dev, struct net_device *net) +{ + struct net_device **ptr; + + ptr = devres_alloc(devm_lora_unregister, sizeof(*ptr), GFP_KERNEL); + if (!ptr) + return -ENOMEM; + + *ptr = net; + devres_add(dev, ptr); + + return 0; +} +EXPORT_SYMBOL_GPL(devm_lora_register_netdev); + static struct rtnl_link_ops lora_link_ops __read_mostly = { .kind = "lora", .setup = lora_setup, diff --git a/include/linux/lora/dev.h b/include/linux/lora/dev.h index 153f9b2..3f871c6 100644 --- a/include/linux/lora/dev.h +++ b/include/linux/lora/dev.h @@ -32,6 +32,7 @@ static inline int lora_strtoeui(const char *str, lora_eui *val) struct net_device *alloc_loradev(int sizeof_priv); void free_loradev(struct net_device *dev); +int devm_lora_register_netdev(struct device *dev, struct net_device *net); int register_loradev(struct net_device *dev); void unregister_loradev(struct net_device *dev); int open_loradev(struct net_device *dev);