From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755299AbbJUOjT (ORCPT ); Wed, 21 Oct 2015 10:39:19 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:60904 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751092AbbJUOjP (ORCPT ); Wed, 21 Oct 2015 10:39:15 -0400 From: Arnd Bergmann To: Guenter Roeck Cc: "David S. Miller" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH -next] net: hisilicon: Never build on SPARC Date: Wed, 21 Oct 2015 16:39:02 +0200 Message-ID: <5587575.y3COavlu1k@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <1445437773-23261-1-git-send-email-linux@roeck-us.net> References: <1445437773-23261-1-git-send-email-linux@roeck-us.net> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:h28M4P+OpcpW6AI5asr4uCHAamjcoH5Sm81u7hBxylUCrtcMzy/ r1lJlaj1LrKOnOfAnWV2GdbA8mu8ecUjC3eFZAhdKlgnzumORdt0rDTgsbugqeOQbNdKLPC 1CQn3I7yF+Z9IxPpkIbVxMk5O60nm+DvUnWiyHcRN0YOC4qGWkcYa0+v7OdAFWM4+/D4aj0 LgiccwhRCAKM6jP8qrAEA== X-UI-Out-Filterresults: notjunk:1;V01:K0:ydAH/wWV5oA=:7KttbJxRfKga7Hj42NXLY2 g3N2aBq+P7g6awp9d4BrcmPlynqg5iYGuhjTVSMhQ4gCycxChNUg4gufS7xKkwWfvu1m6TVnd Mf77GMen+sC+OIo95yOY4BZiCGJWMp9EvGk0WfkQZ1KfwgfPgO7/OohTtTD5ceSlDmWaIOFEB Tdci1eEYudLASCoc+T55FY7EdG+ArYfRYs1nwXMPypXaymSjRFI9R2PEksjyTB9zT05wMfCZB qFC4ZDq3OHdfbm6yDgPjBjl5c8omt/ezrTtG/SzYIp5okfNzddAInLva6vZlj0Cs4t7DsMyMr jnuUcwEwhof52P9K/1WgRRbFxfPK7p6WA8LC6vaEg9xwS4qTmNdKKmlUcnoYm8ebJ26Ayub8q Gtf9qhiTG48LVkh/XaxbagPJJxR3qNNk43YXHQtEB9pyeec2Q4dXuTkvj2DCeHSrI6F3QbbyI ++d/54CdXS8ayxa/ZVRITWKLGtTw34vtuhLOZLbMLz6R3VHK5lZPLJs0zizwey2QlIHpq5nwV 3LkK9eNJib0lmcpJWGDja5bhPQaLSirsoOTr6yPFp7nyCZMgaX2NMcgs25Jpjo2ZBT37JQ0cM DFfr+kBt1pgqisI5dYoDxagX77eSZCv2EnXrX2efZIN3YROPlH2fqMp8vG0j/9FCirUelVPWx bKpqL5F3+vVMo4QjLWXNQlYZjwvgtAKGrZybFwdND5ooLzuxfNS0UCHXz+TZ+9vpHzS61mhlQ nobwr9cWALzGdez0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wednesday 21 October 2015 07:29:33 Guenter Roeck wrote: > The Hisilicon network driver does not build for Sparc. Enabling > COMPILE_TEST for it causes Sparc allmodconfig/allyesconfig builds > to fail with > > drivers/net/ethernet/hisilicon/hns_mdio.c: In function 'hns_mdio_bus_name': > drivers/net/ethernet/hisilicon/hns_mdio.c:409:3: error: > implicit declaration of function 'of_translate_address' I see. > Fixes: 876133d3161d ("net: hisilicon: add OF dependency") > Cc: Arnd Bergmann > Signed-off-by: Guenter Roeck > --- > drivers/net/ethernet/hisilicon/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/hisilicon/Kconfig b/drivers/net/ethernet/hisilicon/Kconfig > index f250dec488fd..413935085591 100644 > --- a/drivers/net/ethernet/hisilicon/Kconfig > +++ b/drivers/net/ethernet/hisilicon/Kconfig > @@ -5,7 +5,7 @@ > config NET_VENDOR_HISILICON > bool "Hisilicon devices" > default y > - depends on OF && (ARM || ARM64 || COMPILE_TEST) > + depends on OF && (ARM || ARM64 || COMPILE_TEST) && !SPARC > ---help--- > If you have a network (Ethernet) card belonging to this class, say Y. This looks fragile to me. Checking the declaration of of_translate_address, I see now that it actually depends on CONFIG_OF_ADDRESS, which is defined using "depends on !SPARC && HAS_IOMEM". This means we would get the same problem on SCORE, Tile, and UML. How about this version? diff --git a/include/linux/of_address.h b/include/linux/of_address.h index d88e81be6368..f2f7986cac45 100644 --- a/include/linux/of_address.h +++ b/include/linux/of_address.h @@ -57,6 +57,11 @@ extern int of_dma_get_range(struct device_node *np, u64 *dma_addr, u64 *paddr, u64 *size); extern bool of_dma_is_coherent(struct device_node *np); #else /* CONFIG_OF_ADDRESS */ +static inline u64 of_translate_address(struct device_node *np, const __be32 *addr) +{ + return 0; +} + static inline struct device_node *of_find_matching_node_by_address( struct device_node *from, const struct of_device_id *matches, It looks like it's in line with the other wrappers here. Alternatively, we could decide to use CONFIG_OF_ADDRESS instead of CONFIG_OF as the dependency. Arnd