public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
From: Christian Borntraeger <borntraeger@linux.ibm.com>
To: Alexandra Winter <wintera@linux.ibm.com>,
	David Miller <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>
Cc: Randy Dunlap <rdunlap@infradead.org>,
	Simon Horman <simon.horman@corigine.com>,
	netdev@vger.kernel.org, linux-s390@vger.kernel.org,
	Heiko Carstens <hca@linux.ibm.com>
Subject: Re: [PATCH] s390/lcs: Remove FDDI option
Date: Wed, 28 Jun 2023 16:01:09 +0200	[thread overview]
Message-ID: <6282d9ad-59b0-5648-74da-7923b07843b4@linux.ibm.com> (raw)
In-Reply-To: <20230628135736.13339-1-wintera@linux.ibm.com>

Am 28.06.23 um 15:57 schrieb Alexandra Winter:
> The last s390 machine that supported FDDI was z900 ('7th generation',
> released in 2000). The oldest machine generation currently supported by
> the Linux kernel is MARCH_Z10 (released 2008). If there is still a usecase
> for connecting a Linux on s390 instance to a LAN Channel Station (LCS), it
> can only do so via Ethernet.
> 
> Randy Dunlap[1] found that LCS over FDDI has never worked, when FDDI
> was compiled as module. Instead of fixing that, remove the FDDI option
> from the lcs driver.
> 
> While at it, make the CONFIG_LCS description a bit more helpful.
> 
> References:
> [1] https://lore.kernel.org/netdev/20230621213742.8245-1-rdunlap@infradead.org/
> 
> Signed-off-by: Alexandra Winter <wintera@linux.ibm.com>

Makes perfect sense given the complexity.

Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>


> ---
>   drivers/s390/net/Kconfig |  5 ++---
>   drivers/s390/net/lcs.c   | 39 ++++++---------------------------------
>   2 files changed, 8 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/s390/net/Kconfig b/drivers/s390/net/Kconfig
> index 9c67b97faba2..74760c1a163b 100644
> --- a/drivers/s390/net/Kconfig
> +++ b/drivers/s390/net/Kconfig
> @@ -5,12 +5,11 @@ menu "S/390 network device drivers"
>   config LCS
>   	def_tristate m
>   	prompt "Lan Channel Station Interface"
> -	depends on CCW && NETDEVICES && (ETHERNET || FDDI)
> +	depends on CCW && NETDEVICES && ETHERNET
>   	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.
>   	  To compile as a module, choose M. The module name is lcs.
> -	  If you do not know what it is, it's safe to choose Y.
> +	  If you do not use LCS, choose N.
>   
>   config CTCM
>   	def_tristate m
> diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
> index 9fd8e6f07a03..a1f2acd6fb8f 100644
> --- a/drivers/s390/net/lcs.c
> +++ b/drivers/s390/net/lcs.c
> @@ -17,7 +17,6 @@
>   #include <linux/if.h>
>   #include <linux/netdevice.h>
>   #include <linux/etherdevice.h>
> -#include <linux/fddidevice.h>
>   #include <linux/inetdevice.h>
>   #include <linux/in.h>
>   #include <linux/igmp.h>
> @@ -36,10 +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,19 +1596,11 @@ lcs_startlan_auto(struct lcs_card *card)
>   	int rc;
>   
>   	LCS_DBF_TEXT(2, trace, "strtauto");
> -#ifdef 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
> -	card->lan_type = LCS_FRAME_TYPE_FDDI;
> -	rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP);
> -	if (rc == 0)
> -		return 0;
> -#endif
>   	return -EIO;
>   }
>   
> @@ -1806,22 +1793,16 @@ lcs_get_frames_cb(struct lcs_channel *channel, struct lcs_buffer *buffer)
>   			card->stats.rx_errors++;
>   			return;
>   		}
> -		/* What kind of frame is it? */
> -		if (lcs_hdr->type == LCS_FRAME_TYPE_CONTROL) {
> -			/* Control frame. */
> +		if (lcs_hdr->type == LCS_FRAME_TYPE_CONTROL)
>   			lcs_get_control(card, (struct lcs_cmd *) lcs_hdr);
> -		} else if (lcs_hdr->type == LCS_FRAME_TYPE_ENET ||
> -			   lcs_hdr->type == LCS_FRAME_TYPE_TR ||
> -			   lcs_hdr->type == LCS_FRAME_TYPE_FDDI) {
> -			/* Normal network packet. */
> +		else if (lcs_hdr->type == LCS_FRAME_TYPE_ENET)
>   			lcs_get_skb(card, (char *)(lcs_hdr + 1),
>   				    lcs_hdr->offset - offset -
>   				    sizeof(struct lcs_header));
> -		} else {
> -			/* Unknown frame type. */
> -			; // FIXME: error message ?
> -		}
> -		/* Proceed to next frame. */
> +		else
> +			dev_info_once(&card->dev->dev,
> +				      "Unknown frame type %d\n",
> +				      lcs_hdr->type);
>   		offset = lcs_hdr->offset;
>   		lcs_hdr->offset = LCS_ILLEGAL_OFFSET;
>   		lcs_hdr = (struct lcs_header *) (buffer->data + offset);
> @@ -2140,18 +2121,10 @@ lcs_new_device(struct ccwgroup_device *ccwgdev)
>   		goto netdev_out;
>   	}
>   	switch (card->lan_type) {
> -#ifdef CONFIG_ETHERNET
>   	case LCS_FRAME_TYPE_ENET:
>   		card->lan_type_trans = eth_type_trans;
>   		dev = alloc_etherdev(0);
>   		break;
> -#endif
> -#ifdef CONFIG_FDDI
> -	case LCS_FRAME_TYPE_FDDI:
> -		card->lan_type_trans = fddi_type_trans;
> -		dev = alloc_fddidev(0);
> -		break;
> -#endif
>   	default:
>   		LCS_DBF_TEXT(3, setup, "errinit");
>   		pr_err(" Initialization failed\n");

  reply	other threads:[~2023-06-28 14:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-28 13:57 [PATCH] s390/lcs: Remove FDDI option Alexandra Winter
2023-06-28 14:01 ` Christian Borntraeger [this message]
2023-06-28 20:11 ` Simon Horman
2023-06-29  7:59   ` Alexandra Winter
2023-06-29 12:08     ` Simon Horman
2023-06-29  5:12 ` Randy Dunlap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6282d9ad-59b0-5648-74da-7923b07843b4@linux.ibm.com \
    --to=borntraeger@linux.ibm.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hca@linux.ibm.com \
    --cc=kuba@kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rdunlap@infradead.org \
    --cc=simon.horman@corigine.com \
    --cc=wintera@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox