Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp18880326rwd; Wed, 28 Jun 2023 01:50:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7ai43SGtRae1Aq8+0+e6Z30gS7Y1n+Cv8jWgbalB5it0fJuB6yvjBzXFlt/Wg+On2sB0r2 X-Received: by 2002:a17:907:2682:b0:977:4b64:f5e8 with SMTP id bn2-20020a170907268200b009774b64f5e8mr30715364ejc.57.1687942248211; Wed, 28 Jun 2023 01:50:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687942248; cv=none; d=google.com; s=arc-20160816; b=Exm9QIe965fc2/JVg6MTVCaEfToqYCs9gS/TL7m2p+627Wgb/6dptUqjb99WegOfYQ MGXKfHn8lCr87DrdYBupG4YGqVMo2gN6KAY5cPNabHu2s585cavQk0gJnqwRm7Jb/PGM BOX1mr/bHA5nrHqF5PHmJ/C7WbDx8EdDx41jkQ+M2Ig3XpUeBwyRYJtVGO3/fgCIt5/e jnHCp1Hz+8GxMbzl/FUd1PMLKgFihRBdoXIkSbzuejK42gTykxiQSAoj2j6XsEBV+NNX bNOy0HFIyS5xNp8wV4f/Dh3c9aNiHqlMipmcoWCNwKyLm/f463YDRx0rgEt9qDlg6dty HTww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:references :cc:to:from:content-language:subject:user-agent:mime-version:date :message-id:dkim-signature; bh=hVxHcQDl4192w9qi7Ylg1NcjDzorbdlRCndnD2dfwgQ=; fh=Yi2j9BkFmdE0Ulf4s+9chD/eEVxjSA9zJNdosEjStm4=; b=C+yJAn9T97EgtxlmZx2f+cEIVVlRNnU1f9nP4vPUSxr2d8E3G0apeMAU0cjeJEw1sn wAo/lS2Tw1zj2hK9ykdLx7uTMxV8jSiQZ2OIuG5hZL4hp3VbJ18iUHu/HmpLP+jnnsLI gsdUdB4WS0UeNr4Eh0dVXoESxgNWUnFFkRLT7S4ppTG5Wj5LZa7nt6Z5vpAfgiEMpHz1 IzSypIaTbLRF4HC6ntfuAA6RxpgV32DEEu5rjY/7wppH8iOqWiGLoopu4RSvmitQLJbQ 8Tt6y/5dd90y4zwr+B3zEVUvEuvcJ0KMYOYz8tSP0RtXIus38pmD1tS0UOZ8HzG5YcyD djQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=vmfnbxTt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id g22-20020a170906595600b0098e16f844f5si4579931ejr.715.2023.06.28.01.50.24; Wed, 28 Jun 2023 01:50:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=vmfnbxTt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231160AbjF1H4s (ORCPT + 99 others); Wed, 28 Jun 2023 03:56:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34002 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230295AbjF1Hyk (ORCPT ); Wed, 28 Jun 2023 03:54:40 -0400 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB2D52D72; Wed, 28 Jun 2023 00:54:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:References:Cc:To:From:Subject:MIME-Version:Date: Message-ID:Sender:Reply-To:Content-ID:Content-Description; bh=hVxHcQDl4192w9qi7Ylg1NcjDzorbdlRCndnD2dfwgQ=; b=vmfnbxTtOhtOhGHRjex1Rz+I7Z I/2VKIGIH73E60M8aqp169FEN9Bd4ii/ZTTB0jVb7bj8xJO1eoOEG3w/i6GhsRSAMvLOuPAjK2DWf jym6TL2Ysxzyh576Vz98Pyz0fxXGQ3bdeEDtvpThWMWLqdigWzGZ+tjLSTUfAcGFxSq8rXI1elKdV tQo8qYyIP6qXzhagvJXsg95FOHA+CLdTXdR8UocGW/mCyQZIdyaubInOl3M8A3MhCVGJxIq950PkN QJ3wW4bcQEamrZum50yKwXV8svYgk37SBUNl9SUkbmcvdlxlIdJZSiHzdtOj/qXQFJWqaqvfgR5Zh MwBzIUwg==; Received: from [2601:1c2:980:9ec0::2764] by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1qENNr-00EqSq-0y; Wed, 28 Jun 2023 05:06:27 +0000 Message-ID: <510b6216-35e5-5ea1-525f-5fab35b901e0@infradead.org> Date: Tue, 27 Jun 2023 22:06:26 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.2 Subject: Re: [PATCH] s390/net: lcs: fix build errors when FDDI is a loadable module Content-Language: en-US From: Randy Dunlap To: Alexandra Winter , Simon Horman Cc: linux-kernel@vger.kernel.org, kernel test robot , Wenjia Zhang , linux-s390@vger.kernel.org, netdev@vger.kernel.org, Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman References: <20230621213742.8245-1-rdunlap@infradead.org> <98375832-3d29-1f03-145f-8d6e763dd2d2@linux.ibm.com> <3da03251-21ac-b41f-593d-cbc9ac9f86f6@linux.ibm.com> <7f585168-7296-58aa-7fdb-c2aa08f346f4@infradead.org> In-Reply-To: <7f585168-7296-58aa-7fdb-c2aa08f346f4@infradead.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Alexandra, Simon, others, Here is v2 of this patch. I will send it formally after the merge window closes. Thanks for all of your help. --- From: Randy Dunlap Subject: [PATCH v2 net] s390/net: lcs: use IS_ENABLED() for kconfig detection When CONFIG_ETHERNET is disabled and CONFIG_FDDI=m, lcs.s has build errors or warnings: ../drivers/s390/net/lcs.c:40:2: error: #error Cannot compile lcs.c without some net devices switched on. 40 | #error Cannot compile lcs.c without some net devices switched on. ../drivers/s390/net/lcs.c: In function 'lcs_startlan_auto': ../drivers/s390/net/lcs.c:1601:13: warning: unused variable 'rc' [-Wunused-variable] 1601 | int rc; Solve this by using IS_ENABLED(CONFIG_symbol) instead of ifdef CONFIG_symbol. The latter only works for builtin (=y) values while IS_ENABLED() works for builtin or modular values. Modify the LCS Kconfig entry to allow combinations of builtin and modular drivers to work as long as LCS <= FDDI (where n < m < y) if FDDI is enabled. If FDDI is not enabled, ETHERNET must be =y, so LCS can be builtin or modular since ETHERNET is a bool. Remove the #error directive in the source file since the Kconfig modification prevents that error combination. Tested successfully with all possible combinations of ETHERNET, FDDI, and LCS. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Randy Dunlap Suggested-by: Alexandra Winter Cc: Wenjia Zhang Cc: linux-s390@vger.kernel.org Cc: netdev@vger.kernel.org Cc: Heiko Carstens Cc: Vasily Gorbik Cc: Alexander Gordeev Cc: Christian Borntraeger Cc: Sven Schnelle Cc: Simon Horman Cc: David S. Miller Cc: Eric Dumazet Cc: Jakub Kicinski Cc: Paolo Abeni --- drivers/s390/net/Kconfig | 1 + drivers/s390/net/lcs.c | 13 ++++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff -- a/drivers/s390/net/Kconfig b/drivers/s390/net/Kconfig --- a/drivers/s390/net/Kconfig +++ b/drivers/s390/net/Kconfig @@ -6,6 +6,7 @@ config LCS def_tristate m prompt "Lan Channel Station Interface" depends on CCW && NETDEVICES && (ETHERNET || FDDI) + depends on FDDI || FDDI=n help Select this option if you want to use LCS networking on IBM System z. This device driver supports FDDI (IEEE 802.7) and Ethernet. diff -- a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c --- a/drivers/s390/net/lcs.c +++ b/drivers/s390/net/lcs.c @@ -35,11 +35,6 @@ #include "lcs.h" - -#if !defined(CONFIG_ETHERNET) && !defined(CONFIG_FDDI) -#error Cannot compile lcs.c without some net devices switched on. -#endif - /* * initialization string for output */ @@ -1601,14 +1596,14 @@ lcs_startlan_auto(struct lcs_card *card) int rc; LCS_DBF_TEXT(2, trace, "strtauto"); -#ifdef CONFIG_ETHERNET +#if IS_ENABLED(CONFIG_ETHERNET) card->lan_type = LCS_FRAME_TYPE_ENET; rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP); if (rc == 0) return 0; #endif -#ifdef CONFIG_FDDI +#if IS_ENABLED(CONFIG_FDDI) card->lan_type = LCS_FRAME_TYPE_FDDI; rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP); if (rc == 0) @@ -2140,13 +2135,13 @@ lcs_new_device(struct ccwgroup_device *c goto netdev_out; } switch (card->lan_type) { -#ifdef CONFIG_ETHERNET +#if IS_ENABLED(CONFIG_ETHERNET) case LCS_FRAME_TYPE_ENET: card->lan_type_trans = eth_type_trans; dev = alloc_etherdev(0); break; #endif -#ifdef CONFIG_FDDI +#if IS_ENABLED(CONFIG_FDDI) case LCS_FRAME_TYPE_FDDI: card->lan_type_trans = fddi_type_trans; dev = alloc_fddidev(0);