Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3004114imm; Fri, 10 Aug 2018 02:00:37 -0700 (PDT) X-Google-Smtp-Source: AA+uWPxVImm5fgPv4zp3sgF5kykCKs96Dc7Rzau3wzmr4ci3t0J+HxKOZglBwCoS7zjSsXawDkh/ X-Received: by 2002:a62:a649:: with SMTP id t70-v6mr6201066pfe.149.1533891637697; Fri, 10 Aug 2018 02:00:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533891637; cv=none; d=google.com; s=arc-20160816; b=sc3VVL3u5NWIkD2GmB/Ej3RT7XTan5n5zYZZX0jMYs/EMD5RHbTXD1D5Fk8e1tUxwv oJCW++PE/ELVbLmziVdZl6yMVKXOBdNuIdVqpoSZpJkTlJn10c2e/jl/dXePlmhkzle4 s2Kg9gsSKBA96cjXFuPjjegzmPYUN4tple/vExkGH1v5KvkcxuM78l5A3go/t5W8dcYN D65te7mgHkVo5tnt7aX69xg+x7G6f9+QbLGQA/jsRRT11rfD2ZcXdK0oHilDOV6QTT86 8NSh9uWcO8JOzVCMLFGLB/MGVfyFDHcADxy34x9iHT11e9RzgPNKMX2rkcHi3Ae3JiCY epDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=EjOQubnQTroWVxsDBUM1JXSo0fAS57WaAUjmLBb4Sws=; b=RP2gNi1oT8rmJc42IyufBrytwU6AjugOr+lFacNVn+Yt0PaoQatep5qTc3PHt1jU+b KrD8mHtVYehb9+4bFS+tG8nVrAbITAm9+NC3V5TZO5JQL7skUhuAFzTCA9gbbti5zs/k chqIN5yj2FP3tn5XhVIUoflrlIKTdMUyKFMjcbCsUkyRaddxRuaqfFTmiHe50slve+5d DAF/DrUOQ9f5UehNjoVQQJzDLQYLhvOQ9EKO5jc2uMKlxsBnjd4VTk0qKw+mybMSnzeG KtqRUbKt4HR5GkrHz40ZkN2WxsKwSQxfQAjgVJZJ9E63k/bcpEGQkF9CydjB1YqYPbn1 4KfQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=slxAavyR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r191-v6si9493181pfr.152.2018.08.10.02.00.23; Fri, 10 Aug 2018 02:00:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=slxAavyR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728293AbeHJKer (ORCPT + 99 others); Fri, 10 Aug 2018 06:34:47 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:41078 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728263AbeHJKeq (ORCPT ); Fri, 10 Aug 2018 06:34:46 -0400 Received: by mail-wr1-f68.google.com with SMTP id j5-v6so7455717wrr.8 for ; Fri, 10 Aug 2018 01:06:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EjOQubnQTroWVxsDBUM1JXSo0fAS57WaAUjmLBb4Sws=; b=slxAavyRYIQAKAyGAcvJcsdh4bzGKFYXvueiQKixAAkrgMWIfSf1b7VJfMW8yml9CP OlkK3rH0fn7Cp+JOjH+OwKI3DlTgq14HaQgshBSfsWcCVIxRtuP1Tb8j4e1sh3PgBane I5druFmkEsk+6QWmtgkkzuNEX3y6ct8hPvQl+trAkKGjltR0bN4am01ohGLiYfWiIVHf mP1hXPsUie4ZzSKNpP0Ba5pHkzO08Gz7ktUz2eV5J29se9aqmHvVO7Z3qIYUxrUcfOlz BmrOC1ajt2D1hEHzj3h5Omy4PBimrql7pMsm5V3KdV2T1VuHIvws9axLTyMd2zvu0LW2 Lhkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=EjOQubnQTroWVxsDBUM1JXSo0fAS57WaAUjmLBb4Sws=; b=EdczBU0fgtxzC6t33jcYZrP6ttLcM2F4eoIu+j1R1FLnKOj7oIMt9teqZ8qBkdg+ge To2vwfSoYTu8D4YiiFsO0gasxiIOUEwWVZSIK1zm2EXw9wOG6YJDORMe65ne5O0unNp2 eNunmZAn4PxmWI1JhL0Y3cPuY1qtQkrjV2qC/rIFJQQpcDcsf8KpTKZE1SY18XghHmMo DUhqQl6ktKd+u28tvEbm0f/PKgfo45pluTMI7dyAFf41JsKCcMte1cN23NnUQlRgiRCl QUpRPcf4tVypfP2z6ua5Cwn2y3n+tb0DrVoZwuGdHCDQaCkDcRto6VX7Yi1RkTFM+/he +i1A== X-Gm-Message-State: AOUpUlHXfByWNcy9r4RqbdLFoHHMpsHLZR0KJETAZHxVaUIiuGIQClZP n7cHWTWwX5KQ9WzI9iIYH1m53A== X-Received: by 2002:adf:8385:: with SMTP id 5-v6mr3547900wre.13.1533888361189; Fri, 10 Aug 2018 01:06:01 -0700 (PDT) Received: from brgl-bgdev.lan (LFbn-MAR-1-609-89.w90-118.abo.wanadoo.fr. [90.118.185.89]) by smtp.gmail.com with ESMTPSA id h7-v6sm9546405wrs.8.2018.08.10.01.05.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 10 Aug 2018 01:06:00 -0700 (PDT) From: Bartosz Golaszewski To: Jonathan Corbet , Sekhar Nori , Kevin Hilman , Russell King , Arnd Bergmann , Greg Kroah-Hartman , David Woodhouse , Brian Norris , Boris Brezillon , Marek Vasut , Richard Weinberger , Grygorii Strashko , "David S . Miller" , Srinivas Kandagatla , Naren , Mauro Carvalho Chehab , Andrew Morton , Lukas Wunner , Dan Carpenter , Florian Fainelli , Ivan Khoronzhuk , Sven Van Asbroeck , Paolo Abeni , Alban Bedel , Rob Herring , David Lechner , Andrew Lunn Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org, netdev@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v2 15/29] net: split eth_platform_get_mac_address() into subroutines Date: Fri, 10 Aug 2018 10:05:12 +0200 Message-Id: <20180810080526.27207-16-brgl@bgdev.pl> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180810080526.27207-1-brgl@bgdev.pl> References: <20180810080526.27207-1-brgl@bgdev.pl> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bartosz Golaszewski We want do add more sources from which to read the MAC address. In order to avoid bloating this function too much, start by splitting it into subroutines, each of which takes care of reading the MAC from one source. Signed-off-by: Bartosz Golaszewski --- net/ethernet/eth.c | 44 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c index 7f08105402c8..d01dd55de037 100644 --- a/net/ethernet/eth.c +++ b/net/ethernet/eth.c @@ -525,22 +525,50 @@ unsigned char * __weak arch_get_platform_mac_address(void) return NULL; } -int eth_platform_get_mac_address(struct device *dev, u8 *mac_addr) +static int mac_address_from_of(struct device *dev, u8 *mac_addr) { const unsigned char *addr; - struct device_node *dp; + struct device_node *np; - dp = dev->of_node; - addr = NULL; - if (dp) - addr = of_get_mac_address(dp); - if (!addr) - addr = arch_get_platform_mac_address(); + np = dev->of_node; + if (!np) + return -ENODEV; + addr = of_get_mac_address(np); if (!addr) return -ENODEV; + if (!addr || !is_valid_ether_addr(addr)) + return -ENODEV; + ether_addr_copy(mac_addr, addr); return 0; } + +static int mac_address_from_arch(u8 *mac_addr) +{ + const unsigned char *addr; + + addr = arch_get_platform_mac_address(); + if (!addr || !is_valid_ether_addr(addr)) + return -ENODEV; + + ether_addr_copy(mac_addr, addr); + return 0; +} + +int eth_platform_get_mac_address(struct device *dev, u8 *mac_addr) +{ + int rv; + + rv = mac_address_from_of(dev, mac_addr); + if (!rv) + return 0; + + rv = mac_address_from_arch(mac_addr); + if (!rv) + return 0; + + return -ENODEV; +} EXPORT_SYMBOL(eth_platform_get_mac_address); -- 2.18.0