Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 95221
b: refs/heads/master
c: 76b25a5
h: refs/heads/master
i:
  95219: 931c3b7
v: v3
  • Loading branch information
Alan Cox authored and Linus Torvalds committed Apr 30, 2008
1 parent da92793 commit e8c7cca
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 257afa3cb6beaad60849655cb272d4b9de74cf63
refs/heads/master: 76b25a5509bbafdbfc7d7d6b41a3c64947d59360
9 changes: 5 additions & 4 deletions trunk/drivers/char/cyclades.c
Original file line number Diff line number Diff line change
Expand Up @@ -2814,7 +2814,7 @@ static int cy_write(struct tty_struct *tty, const unsigned char *buf, int count)
* done stuffing characters into the driver. If there is no room
* in the queue, the character is ignored.
*/
static void cy_put_char(struct tty_struct *tty, unsigned char ch)
static int cy_put_char(struct tty_struct *tty, unsigned char ch)
{
struct cyclades_port *info = tty->driver_data;
unsigned long flags;
Expand All @@ -2824,15 +2824,15 @@ static void cy_put_char(struct tty_struct *tty, unsigned char ch)
#endif

if (serial_paranoia_check(info, tty->name, "cy_put_char"))
return;
return 0;

if (!info->xmit_buf)
return;
return 0;

spin_lock_irqsave(&info->card->card_lock, flags);
if (info->xmit_cnt >= (int)(SERIAL_XMIT_SIZE - 1)) {
spin_unlock_irqrestore(&info->card->card_lock, flags);
return;
return 0;
}

info->xmit_buf[info->xmit_head++] = ch;
Expand All @@ -2841,6 +2841,7 @@ static void cy_put_char(struct tty_struct *tty, unsigned char ch)
info->idle_stats.xmit_bytes++;
info->idle_stats.xmit_idle = jiffies;
spin_unlock_irqrestore(&info->card->card_lock, flags);
return 1;
} /* cy_put_char */

/*
Expand Down
9 changes: 6 additions & 3 deletions trunk/drivers/char/esp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1156,24 +1156,27 @@ static void change_speed(struct esp_struct *info)
spin_unlock_irqrestore(&info->lock, flags);
}

static void rs_put_char(struct tty_struct *tty, unsigned char ch)
static int rs_put_char(struct tty_struct *tty, unsigned char ch)
{
struct esp_struct *info = (struct esp_struct *)tty->driver_data;
unsigned long flags;
int ret = 0;

if (serial_paranoia_check(info, tty->name, "rs_put_char"))
return;
return 0;

if (!info->xmit_buf)
return;
return 0;

spin_lock_irqsave(&info->lock, flags);
if (info->xmit_cnt < ESP_XMIT_SIZE - 1) {
info->xmit_buf[info->xmit_head++] = ch;
info->xmit_head &= ESP_XMIT_SIZE-1;
info->xmit_cnt++;
ret = 1;
}
spin_unlock_irqrestore(&info->lock, flags);
return ret;
}

static void rs_flush_chars(struct tty_struct *tty)
Expand Down
11 changes: 6 additions & 5 deletions trunk/drivers/char/generic_serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,27 +48,27 @@ static int gs_debug;
module_param(gs_debug, int, 0644);


void gs_put_char(struct tty_struct * tty, unsigned char ch)
int gs_put_char(struct tty_struct * tty, unsigned char ch)
{
struct gs_port *port;

func_enter ();

if (!tty) return;
if (!tty) return 0;

port = tty->driver_data;

if (!port) return;
if (!port) return 0;

if (! (port->flags & ASYNC_INITIALIZED)) return;
if (! (port->flags & ASYNC_INITIALIZED)) return 0;

/* Take a lock on the serial tranmit buffer! */
mutex_lock(& port->port_write_mutex);

if (port->xmit_cnt >= SERIAL_XMIT_SIZE - 1) {
/* Sorry, buffer is full, drop character. Update statistics???? -- REW */
mutex_unlock(&port->port_write_mutex);
return;
return 0;
}

port->xmit_buf[port->xmit_head++] = ch;
Expand All @@ -77,6 +77,7 @@ void gs_put_char(struct tty_struct * tty, unsigned char ch)

mutex_unlock(&port->port_write_mutex);
func_exit ();
return 1;
}


Expand Down
2 changes: 1 addition & 1 deletion trunk/include/linux/generic_serial.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ struct gs_port {
#define GS_DEBUG_WRITE 0x00000040

#ifdef __KERNEL__
void gs_put_char(struct tty_struct *tty, unsigned char ch);
int gs_put_char(struct tty_struct *tty, unsigned char ch);
int gs_write(struct tty_struct *tty,
const unsigned char *buf, int count);
int gs_write_room(struct tty_struct *tty);
Expand Down

0 comments on commit e8c7cca

Please sign in to comment.