diff options
author | dyson <dyson@FreeBSD.org> | 1995-08-08 05:14:40 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1995-08-08 05:14:40 +0000 |
commit | f24102e64034c8c99982bb036a618a94040fcf76 (patch) | |
tree | 43d1c4eb49e7b7693147fded6f9df76ce6df87a4 /sys/dev/syscons/syscons.c | |
parent | 87fdf08e35609c4f79780184279bb09237fd5865 (diff) | |
download | FreeBSD-src-f24102e64034c8c99982bb036a618a94040fcf76.zip FreeBSD-src-f24102e64034c8c99982bb036a618a94040fcf76.tar.gz |
Fixed a problem that malloc(..,..,M_NOWAIT) was being called without checking
for return values. It just so happens that in the cases where it is likely
to fail, it is okay to change the M_NOWAIT to M_WAITOK -- and all will
be well. This problem was manfest as a panic very regularly on a 4MB
system right after bootup.
Diffstat (limited to 'sys/dev/syscons/syscons.c')
-rw-r--r-- | sys/dev/syscons/syscons.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 74c4002..0b77240 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.121 1995/07/22 01:30:05 bde Exp $ + * $Id: syscons.c,v 1.122 1995/07/31 21:01:13 bde Exp $ */ #include "sc.h" @@ -545,7 +545,7 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) scp->history_size *= scp->xsize; scp->history_head = scp->history_pos = scp->history = (u_short *)malloc(scp->history_size*sizeof(u_short), - M_DEVBUF, M_NOWAIT); + M_DEVBUF, M_WAITOK); bzero(scp->history_head, scp->history_size*sizeof(u_short)); } return 0; @@ -704,7 +704,7 @@ set_mouse_pos: scp->status &= ~UNKNOWN_MODE; /* text mode */ free(scp->scr_buf, M_DEVBUF); scp->scr_buf = (u_short *)malloc(scp->xsize*scp->ysize*sizeof(u_short), - M_DEVBUF, M_NOWAIT); + M_DEVBUF, M_WAITOK); if (scp == cur_console) set_mode(scp); clear_screen(scp); @@ -2022,14 +2022,14 @@ static scr_stat { scr_stat *scp; - scp = (scr_stat *)malloc(sizeof(scr_stat), M_DEVBUF, M_NOWAIT); + scp = (scr_stat *)malloc(sizeof(scr_stat), M_DEVBUF, M_WAITOK); init_scp(scp); scp->scr_buf = scp->cursor_pos = scp->scr_buf = scp->mouse_pos = (u_short *)malloc(scp->xsize*scp->ysize*sizeof(u_short), - M_DEVBUF, M_NOWAIT); + M_DEVBUF, M_WAITOK); scp->history_head = scp->history_pos = scp->history = (u_short *)malloc(scp->history_size*sizeof(u_short), - M_DEVBUF, M_NOWAIT); + M_DEVBUF, M_WAITOK); bzero(scp->history_head, scp->history_size*sizeof(u_short)); if (crtc_vga && video_mode_ptr) set_mode(scp); |