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

Commit 2f8a2dc2 authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds
Browse files

uml: console tidying



Tidy line.c:
	The includes are more minimal
	Lots of style fixes
	All the printks have severities
	Removed some commented-out code
	Deleted a useless printk when ioctl is called
	Fixed some whitespace damage

Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c59dbcad
Loading
Loading
Loading
Loading
+114 −114
Original line number Diff line number Diff line
/*
 * Copyright (C) 2001, 2002 Jeff Dike (jdike@karaya.com)
 * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com)
 * Licensed under the GPL
 */

#include "linux/kernel.h"
#include "linux/sched.h"
#include "linux/slab.h"
#include "linux/list.h"
#include "linux/irqreturn.h"
#include "linux/kd.h"
#include "linux/interrupt.h"
#include "asm/uaccess.h"
#include "chan_kern.h"
#include "irq_kern.h"
#include "irq_user.h"
#include "line.h"
#include "kern.h"
#include "kern_util.h"
#include "os.h"
#include "irq_kern.h"

#define LINE_BUFSIZE 4096

@@ -40,7 +32,8 @@ static void line_timer_cb(struct work_struct *work)
			       line->driver->read_irq);
}

/* Returns the free space inside the ring buffer of this line.
/*
 * Returns the free space inside the ring buffer of this line.
 *
 * Should be called while holding line->lock (this does not modify datas).
 */
@@ -110,8 +103,9 @@ static int buffer_data(struct line *line, const char *buf, int len)
	if (line->buffer == NULL) {
		line->buffer = kmalloc(LINE_BUFSIZE, GFP_ATOMIC);
		if (line->buffer == NULL) {
			printk("buffer_data - atomic allocation failed\n");
			return(0);
			printk(KERN_ERR "buffer_data - atomic allocation "
			       "failed\n");
			return 0;
		}
		line->head = line->buffer;
		line->tail = line->buffer;
@@ -162,8 +156,10 @@ static int flush_buffer(struct line *line)
		if (n < 0)
			return n;
		if (n == count) {
			/* We have flushed from ->head to buffer end, now we
			 * must flush only from the beginning to ->tail.*/
			/*
			 * We have flushed from ->head to buffer end, now we
			 * must flush only from the beginning to ->tail.
			 */
			line->head = line->buffer;
		} else {
			line->head += n;
@@ -194,14 +190,13 @@ void line_flush_buffer(struct tty_struct *tty)

	spin_lock_irqsave(&line->lock, flags);
	err = flush_buffer(line);
	/*if (err == 1)
		err = 0;*/
	spin_unlock_irqrestore(&line->lock, flags);
	//return err;
}

/* We map both ->flush_chars and ->put_char (which go in pair) onto ->flush_buffer
 * and ->write. Hope it's not that bad.*/
/*
 * We map both ->flush_chars and ->put_char (which go in pair) onto
 * ->flush_buffer and ->write. Hope it's not that bad.
 */
void line_flush_chars(struct tty_struct *tty)
{
	line_flush_buffer(tty);
@@ -321,12 +316,7 @@ int line_ioctl(struct tty_struct *tty, struct file * file,
		for (i = 0; i < ARRAY_SIZE(tty_ioctls); i++)
			if (cmd == tty_ioctls[i].cmd)
				break;
		if (i < ARRAY_SIZE(tty_ioctls)) {
			if (NULL != tty_ioctls[i].level)
				printk("%s%s: %s: ioctl %s called\n",
				       tty_ioctls[i].level, __FUNCTION__,
				       tty->name, tty_ioctls[i].name);
		} else {
		if (i == ARRAY_SIZE(tty_ioctls)) {
			printk(KERN_ERR "%s: %s: unknown ioctl: 0x%x\n",
			       __FUNCTION__, tty->name, cmd);
		}
@@ -352,7 +342,8 @@ void line_unthrottle(struct tty_struct *tty)
	chan_interrupt(&line->chan_list, &line->task, tty,
		       line->driver->read_irq);

	/* Maybe there is enough stuff pending that calling the interrupt
	/*
	 * Maybe there is enough stuff pending that calling the interrupt
	 * throttles us again.  In this case, line->throttled will be 1
	 * again and we shouldn't turn the interrupt back on.
	 */
@@ -367,8 +358,10 @@ static irqreturn_t line_write_interrupt(int irq, void *data)
	struct tty_struct *tty = line->tty;
	int err;

	/* Interrupts are disabled here because we registered the interrupt with
	 * IRQF_DISABLED (see line_setup_irq).*/
	/*
	 * Interrupts are disabled here because we registered the interrupt with
	 * IRQF_DISABLED (see line_setup_irq).
	 */

	spin_lock(&line->lock);
	err = flush_buffer(line);
@@ -387,7 +380,8 @@ static irqreturn_t line_write_interrupt(int irq, void *data)
	   (tty->ldisc.write_wakeup != NULL))
		(tty->ldisc.write_wakeup)(tty);

	/* BLOCKING mode
	/*
	 * BLOCKING mode
	 * In blocking mode, everything sleeps on tty->write_wait.
	 * Sleeping in the console driver would break non-blocking
	 * writes.
@@ -417,7 +411,8 @@ int line_setup_irq(int fd, int input, int output, struct line *line, void *data)
	return err;
}

/* Normally, a driver like this can rely mostly on the tty layer
/*
 * Normally, a driver like this can rely mostly on the tty layer
 * locking, particularly when it comes to the driver structure.
 * However, in this case, mconsole requests can come in "from the
 * side", and race with opens and closes.
@@ -478,7 +473,8 @@ void line_close(struct tty_struct *tty, struct file * filp)
{
	struct line *line = tty->driver_data;

	/* If line_open fails (and tty->driver_data is never set),
	/*
	 * If line_open fails (and tty->driver_data is never set),
	 * tty_open will call line_close.  So just return in this case.
	 */
	if (line == NULL)
@@ -546,7 +542,8 @@ static int setup_one_line(struct line *lines, int n, char *init, int init_prio,
	return err;
}

/* Common setup code for both startup command line and mconsole initialization.
/*
 * Common setup code for both startup command line and mconsole initialization.
 * @lines contains the array (of size @num) to modify;
 * @init is the setup string;
 * @error_out is an error string in the case of failure;
@@ -559,8 +556,10 @@ int line_setup(struct line *lines, unsigned int num, char *init,
	char *end;

	if (*init == '=') {
		/* We said con=/ssl= instead of con#=, so we are configuring all
		 * consoles at once.*/
		/*
		 * We said con=/ssl= instead of con#=, so we are configuring all
		 * consoles at once.
		 */
		n = -1;
	}
	else {
@@ -697,8 +696,8 @@ struct tty_driver *register_lines(struct line_driver *line_driver,
	tty_set_operations(driver, ops);

	if (tty_register_driver(driver)) {
		printk("%s: can't register %s driver\n",
		       __FUNCTION__,line_driver->name);
		printk(KERN_ERR "register_lines : can't register %s driver\n",
		       line_driver->name);
		put_tty_driver(driver);
		return NULL;
	}
@@ -730,11 +729,11 @@ void lines_init(struct line *lines, int nlines, struct chan_opts *opts)

		line->init_str = kstrdup(line->init_str, GFP_KERNEL);
		if (line->init_str == NULL)
			printk("lines_init - kstrdup returned NULL\n");
			printk(KERN_ERR "lines_init - kstrdup returned NULL\n");

		if (parse_chan_pair(line->init_str, line, i, opts, &error)) {
			printk("parse_chan_pair failed for device %d : %s\n",
			       i, error);
			printk(KERN_ERR "parse_chan_pair failed for "
			       "device %d : %s\n", i, error);
			line->valid = 0;
		}
	}
@@ -776,10 +775,10 @@ static irqreturn_t winch_interrupt(int irq, void *data)
		err = generic_read(winch->fd, &c, NULL);
		if (err < 0) {
			if (err != -EAGAIN) {
				printk("winch_interrupt : read failed, "
				       "errno = %d\n", -err);
				printk("fd %d is losing SIGWINCH support\n",
				       winch->tty_fd);
				printk(KERN_ERR "winch_interrupt : "
				       "read failed, errno = %d\n", -err);
				printk(KERN_ERR "fd %d is losing SIGWINCH "
				       "support\n", winch->tty_fd);
				free_winch(winch, 0);
				return IRQ_HANDLED;
			}
@@ -806,7 +805,7 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_struct *tty,

	winch = kmalloc(sizeof(*winch), GFP_KERNEL);
	if (winch == NULL) {
		printk("register_winch_irq - kmalloc failed\n");
		printk(KERN_ERR "register_winch_irq - kmalloc failed\n");
		goto cleanup;
	}

@@ -820,7 +819,8 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_struct *tty,
	if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt,
			   IRQF_DISABLED | IRQF_SHARED | IRQF_SAMPLE_RANDOM,
			   "winch", winch) < 0) {
		printk("register_winch_irq - failed to register IRQ\n");
		printk(KERN_ERR "register_winch_irq - failed to register "
		       "IRQ\n");
		goto out_free;
	}

@@ -884,7 +884,7 @@ char *add_xterm_umid(char *base)
	len = strlen(base) + strlen(" ()") + strlen(umid) + 1;
	title = kmalloc(len, GFP_KERNEL);
	if (title == NULL) {
		printk("Failed to allocate buffer for xterm title\n");
		printk(KERN_ERR "Failed to allocate buffer for xterm title\n");
		return base;
	}