From 3d387b17dbfda691aa60584d85776a2783adbe77 Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 2 Nov 1995 08:37:22 +0000 Subject: Make putc and b_to_q deal with clists with no reserved blocks in a more civilised manner than panicing. This only happens as a result of another state botch somewhere else, eg: from a tty driver calling putc or b_to_q on a closed device. Apparently, it's also been implicated in a panic with a status (^T) event on ptys. This change should pretty well be in it's final form now. --- sys/kern/subr_clist.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'sys/kern/subr_clist.c') diff --git a/sys/kern/subr_clist.c b/sys/kern/subr_clist.c index 1855e17..133ced4 100644 --- a/sys/kern/subr_clist.c +++ b/sys/kern/subr_clist.c @@ -6,7 +6,7 @@ * of this software, nor does the author assume any responsibility * for damages incurred with its use. * - * $Id: tty_subr.c,v 1.15 1995/10/31 19:00:00 peter Exp $ + * $Id: tty_subr.c,v 1.16 1995/11/01 15:59:55 peter Exp $ */ /* @@ -351,12 +351,8 @@ putc(chr, clistp) if (clistp->c_cl == NULL) { if (clistp->c_cbreserved < 1) { splx(s); - printf("putc to a clist with no reserved cblocks: data discarded.\n"); -#ifdef DIAGNOSTIC - Debugger("putc to clist with no reserved cblocks"); -#endif - /* black-hole the character */ - return (0); + printf("putc to a clist with no reserved cblocks\n"); + return (-1); /* nothing done */ } cblockp = cblock_alloc(); clistp->c_cbcount = 1; @@ -434,12 +430,8 @@ b_to_q(src, amount, clistp) if (clistp->c_cl == NULL) { if (clistp->c_cbreserved < 1) { splx(s); - printf("b_to_q to a clist with no reserved cblocks: data discarded.\n"); -#ifdef DIAGNOSTIC - Debugger("b_to_q to clist with no reserved cblocks"); -#endif - /* black-hole the characters */ - return (0); + printf("b_to_q to a clist with no reserved cblocks.\n"); + return (amount); /* nothing done */ } cblockp = cblock_alloc(); clistp->c_cbcount = 1; -- cgit v1.1