Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56347a2e authored by Frank Pavlic's avatar Frank Pavlic Committed by Jeff Garzik
Browse files

[PATCH] s390: remove tty support from ctc network device driver [1/2]



Hi jeff,
after the first shot I sent to you did not apply I
resend  two new patches I've made today to remove tty from ctc network driver.
Please apply ....

Thank you ...

Frank

From: Peter Tiedemann <ptiedem@de.ibm.com>
        [1/2]:
        tty support code will be removed from the ctc network device driver.
        Today we have a couple of alternatives which are performing much
        better. The second thing is that ctc should be a network
        device driver only.
        We should not mix tty and networking here.
        This first patch will remove the tty code from ctcmain.c .
        It also removes the build entry from the Makefile as well as TTY
        definitions from ctcmain.h.
        The second patch will remove two files, ctctty.c and ctctty.h.

Signed-off-by: default avatarFrank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 9707b271
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# S/390 network devices
#

ctc-objs := ctcmain.o ctctty.o ctcdbug.o
ctc-objs := ctcmain.o ctcdbug.o

obj-$(CONFIG_IUCV) += iucv.o
obj-$(CONFIG_NETIUCV) += netiucv.o fsm.o
@@ -10,6 +10,7 @@ obj-$(CONFIG_SMSGIUCV) += smsgiucv.o
obj-$(CONFIG_CTC) += ctc.o fsm.o cu3088.o
obj-$(CONFIG_LCS) += lcs.o cu3088.o
obj-$(CONFIG_CLAW) += claw.o cu3088.o
obj-$(CONFIG_MPC) += ctcmpc.o fsm.o cu3088.o
qeth-y := qeth_main.o qeth_mpc.o qeth_sys.o qeth_eddp.o 
qeth-$(CONFIG_PROC_FS) += qeth_proc.o
obj-$(CONFIG_QETH) += qeth.o
+9 −36
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
 * Fixes by : Jochen Rhrig (roehrig@de.ibm.com)
 *            Arnaldo Carvalho de Melo <acme@conectiva.com.br>
	      Peter Tiedemann (ptiedem@de.ibm.com)
 * Driver Model stuff by : Cornelia Huck <huckc@de.ibm.com>
 * Driver Model stuff by : Cornelia Huck <cornelia.huck@de.ibm.com>
 *
 * Documentation used:
 *  - Principles of Operation (IBM doc#: SA22-7201-06)
@@ -65,7 +65,6 @@

#include <asm/idals.h>

#include "ctctty.h"
#include "fsm.h"
#include "cu3088.h"

@@ -479,9 +478,6 @@ ctc_unpack_skb(struct channel *ch, struct sk_buff *pskb)
		skb->dev = pskb->dev;
		skb->protocol = pskb->protocol;
		pskb->ip_summed = CHECKSUM_UNNECESSARY;
		if (ch->protocol == CTC_PROTO_LINUX_TTY)
			ctc_tty_netif_rx(skb);
		else
		netif_rx_ni(skb);
		/**
		 * Successful rx; reset logflags
@@ -557,7 +553,6 @@ ccw_unit_check(struct channel *ch, unsigned char sense)
	DBF_TEXT(trace, 5, __FUNCTION__);
	if (sense & SNS0_INTERVENTION_REQ) {
		if (sense & 0x01) {
			if (ch->protocol != CTC_PROTO_LINUX_TTY)
			ctc_pr_debug("%s: Interface disc. or Sel. reset "
					"(remote)\n", ch->id);
			fsm_event(ch->fsm, CH_EVENT_UC_RCRESET, ch);
@@ -2034,7 +2029,6 @@ static void
dev_action_chup(fsm_instance * fi, int event, void *arg)
{
	struct net_device *dev = (struct net_device *) arg;
	struct ctc_priv *privptr = dev->priv;

	DBF_TEXT(trace, 3, __FUNCTION__);
	switch (fsm_getstate(fi)) {
@@ -2049,8 +2043,6 @@ dev_action_chup(fsm_instance * fi, int event, void *arg)
				fsm_newstate(fi, DEV_STATE_RUNNING);
				ctc_pr_info("%s: connected with remote side\n",
					    dev->name);
				if (privptr->protocol == CTC_PROTO_LINUX_TTY)
					ctc_tty_setcarrier(dev, 1);
				ctc_clear_busy(dev);
			}
			break;
@@ -2059,8 +2051,6 @@ dev_action_chup(fsm_instance * fi, int event, void *arg)
				fsm_newstate(fi, DEV_STATE_RUNNING);
				ctc_pr_info("%s: connected with remote side\n",
					    dev->name);
				if (privptr->protocol == CTC_PROTO_LINUX_TTY)
					ctc_tty_setcarrier(dev, 1);
				ctc_clear_busy(dev);
			}
			break;
@@ -2086,14 +2076,10 @@ dev_action_chup(fsm_instance * fi, int event, void *arg)
static void
dev_action_chdown(fsm_instance * fi, int event, void *arg)
{
	struct net_device *dev = (struct net_device *) arg;
	struct ctc_priv *privptr = dev->priv;

	DBF_TEXT(trace, 3, __FUNCTION__);
	switch (fsm_getstate(fi)) {
		case DEV_STATE_RUNNING:
			if (privptr->protocol == CTC_PROTO_LINUX_TTY)
				ctc_tty_setcarrier(dev, 0);
			if (event == DEV_EVENT_TXDOWN)
				fsm_newstate(fi, DEV_STATE_STARTWAIT_TX);
			else
@@ -2397,8 +2383,6 @@ ctc_tx(struct sk_buff *skb, struct net_device * dev)
	 */
	if (fsm_getstate(privptr->fsm) != DEV_STATE_RUNNING) {
		fsm_event(privptr->fsm, DEV_EVENT_START, dev);
		if (privptr->protocol == CTC_PROTO_LINUX_TTY)
			return -EBUSY;
		dev_kfree_skb(skb);
		privptr->stats.tx_dropped++;
		privptr->stats.tx_errors++;
@@ -2608,20 +2592,13 @@ ctc_netdev_unregister(struct net_device * dev)
	if (!dev)
		return;
	privptr = (struct ctc_priv *) dev->priv;
	if (privptr->protocol != CTC_PROTO_LINUX_TTY)
	unregister_netdev(dev);
	else
		ctc_tty_unregister_netdev(dev);
}

static int
ctc_netdev_register(struct net_device * dev)
{
	struct ctc_priv *privptr = (struct ctc_priv *) dev->priv;
	if (privptr->protocol != CTC_PROTO_LINUX_TTY)
	return register_netdev(dev);
	else
		return ctc_tty_register_netdev(dev);
}

static void
@@ -2667,7 +2644,9 @@ ctc_proto_store(struct device *dev, struct device_attribute *attr, const char *b
	if (!priv)
		return -ENODEV;
	sscanf(buf, "%u", &value);
	if ((value < 0) || (value > CTC_PROTO_MAX))
	if (!((value == CTC_PROTO_S390)  ||
	      (value == CTC_PROTO_LINUX) ||
	      (value == CTC_PROTO_OS390)))
		return -EINVAL;
	priv->protocol = value;

@@ -2897,9 +2876,6 @@ ctc_new_device(struct ccwgroup_device *cgdev)
		goto out;
	}

	if (privptr->protocol == CTC_PROTO_LINUX_TTY)
		strlcpy(dev->name, "ctctty%d", IFNAMSIZ);
	else
	strlcpy(dev->name, "ctc%d", IFNAMSIZ);

	for (direction = READ; direction <= WRITE; direction++) {
@@ -3046,7 +3022,6 @@ ctc_exit(void)
{
	DBF_TEXT(setup, 3, __FUNCTION__);
	unregister_cu3088_discipline(&ctc_group_driver);
	ctc_tty_cleanup();
	ctc_unregister_dbf_views();
	ctc_pr_info("CTC driver unloaded\n");
}
@@ -3073,10 +3048,8 @@ ctc_init(void)
		ctc_pr_crit("ctc_init failed with ctc_register_dbf_views rc = %d\n", ret);
		return ret;
	}
	ctc_tty_init();
	ret = register_cu3088_discipline(&ctc_group_driver);
	if (ret) {
		ctc_tty_cleanup();
		ctc_unregister_dbf_views();
	}
	return ret;
+5 −7
Original line number Diff line number Diff line
@@ -35,7 +35,9 @@
#include <asm/ccwdev.h>
#include <asm/ccwgroup.h>

#include "ctctty.h"
#include <linux/skbuff.h>
#include <linux/netdevice.h>

#include "fsm.h"
#include "cu3088.h"

@@ -50,9 +52,7 @@

#define CTC_PROTO_S390          0
#define CTC_PROTO_LINUX         1
#define CTC_PROTO_LINUX_TTY     2
#define CTC_PROTO_OS390         3
#define CTC_PROTO_MAX           3

#define CTC_BUFSIZE_LIMIT       65535
#define CTC_BUFSIZE_DEFAULT     32768
@@ -257,14 +257,12 @@ static __inline__ void
ctc_clear_busy(struct net_device * dev)
{
	clear_bit(0, &(((struct ctc_priv *) dev->priv)->tbusy));
	if (((struct ctc_priv *)dev->priv)->protocol != CTC_PROTO_LINUX_TTY)
	netif_wake_queue(dev);
}

static __inline__ int
ctc_test_and_set_busy(struct net_device * dev)
{
	if (((struct ctc_priv *)dev->priv)->protocol != CTC_PROTO_LINUX_TTY)
	netif_stop_queue(dev);
	return test_and_set_bit(0, &((struct ctc_priv *) dev->priv)->tbusy);
}