From 302cf5869a01441a53d0a92a92e7fa39bd802f19 Mon Sep 17 00:00:00 2001 From: John Dyson Date: Tue, 8 Aug 1995 05:14:40 +0000 Subject: [PATCH] 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. --- sys/dev/syscons/syscons.c | 12 ++++++------ sys/i386/isa/syscons.c | 12 ++++++------ sys/isa/syscons.c | 12 ++++++------ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index 74c4002f8ec9..0b7724017753 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 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) 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); diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c index 74c4002f8ec9..0b7724017753 100644 --- a/sys/i386/isa/syscons.c +++ b/sys/i386/isa/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 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) 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); diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c index 74c4002f8ec9..0b7724017753 100644 --- a/sys/isa/syscons.c +++ b/sys/isa/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 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) 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);