From bf22d4c1f95f57623b2b3030738e116d3a547284 Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Thu, 13 May 2004 19:44:33 +0000 Subject: [PATCH] malloc() flags cleanup and fixes. Get rid of M_NOWAIT in places where the malloc must succeed for proper device operation to occur, replacing with M_WAITOK or M_INTWAIT as appropriate. Use M_ZERO instead of bzero(). --- sys/dev/atm/hea/eni_buffer.c | 34 +++------------------ sys/dev/crypto/hifn/hifn7751.c | 9 ++---- sys/dev/crypto/rndtest/rndtest.c | 25 +++++++--------- sys/dev/crypto/ubsec/ubsec.c | 41 ++++++-------------------- sys/dev/disk/advansys/adwcam.c | 8 ++--- sys/dev/disk/aha/aha.c | 6 ++-- sys/dev/disk/ahb/ahb.c | 4 +-- sys/dev/disk/aic7xxx/aic79xx.c | 23 +++++++-------- sys/dev/disk/aic7xxx/aic79xx_osm.c | 4 +-- sys/dev/disk/aic7xxx/aic7xxx.c | 14 ++++----- sys/dev/disk/aic7xxx/aic7xxx_osm.c | 4 +-- sys/dev/drm/drm_memory.h | 6 ++-- sys/dev/misc/atkbdc_layer/atkbdc_isa.c | 8 ++--- sys/dev/misc/kbd/atkbd.c | 29 ++++-------------- sys/dev/misc/kbd/atkbdc.c | 9 ++---- sys/dev/misc/kbd/kbd.c | 20 ++++--------- sys/dev/misc/labpc/labpc.c | 37 ++++++++++------------- sys/dev/misc/puc/puc.c | 6 ++-- sys/dev/misc/syscons/schistory.c | 7 ++--- sys/dev/misc/syscons/scmouse.c | 5 ++-- sys/dev/misc/syscons/scvtb.c | 10 +++---- 21 files changed, 104 insertions(+), 205 deletions(-) diff --git a/sys/dev/atm/hea/eni_buffer.c b/sys/dev/atm/hea/eni_buffer.c index 76f60476ba..e0f1759f52 100644 --- a/sys/dev/atm/hea/eni_buffer.c +++ b/sys/dev/atm/hea/eni_buffer.c @@ -24,7 +24,7 @@ * notice must be reproduced on all copies. * * @(#) $FreeBSD: src/sys/dev/hea/eni_buffer.c,v 1.5 1999/08/28 00:41:43 peter Exp $ - * @(#) $DragonFly: src/sys/dev/atm/hea/eni_buffer.c,v 1.5 2003/08/27 10:35:15 rob Exp $ + * @(#) $DragonFly: src/sys/dev/atm/hea/eni_buffer.c,v 1.6 2004/05/13 19:44:28 dillon Exp $ */ /* @@ -149,12 +149,7 @@ eni_init_memory ( eup ) /* * Allocate initial element which will hold all of memory */ - if ( ( eup->eu_memmap = (Mbd *)KM_ALLOC(sizeof(Mbd), M_DEVBUF, - M_NOWAIT ) ) == NULL ) - { - /* Memory allocation error */ - return -1; - } + eup->eu_memmap = (Mbd *)KM_ALLOC(sizeof(Mbd), M_DEVBUF, M_WAITOK); /* * Test and size memory @@ -259,18 +254,7 @@ eni_allocate_buffer ( eup, size ) Mbd *etmp; /* Yep - create a new segment */ - etmp = (Mbd *)KM_ALLOC(sizeof(Mbd), M_DEVBUF, - M_NOWAIT ); - if ( etmp == (Mbd *)NULL ) { - /* - * Couldn't allocate a new descriptor. Indicate - * failure and exit now or we'll start losing - * memory. - */ - eup->eu_stats.eni_st_drv.drv_mm_nodesc++; - *size = 0; - return ( (caddr_t)NULL ); - } + etmp = (Mbd *)KM_ALLOC(sizeof(Mbd), M_DEVBUF, M_WAITOK); /* Place it in the list */ etmp->next = eptr->next; if ( etmp->next ) @@ -307,17 +291,7 @@ eni_allocate_buffer ( eup, size ) Mbd *etmp; /* larger then we need - split it */ - etmp = (Mbd *)KM_ALLOC(sizeof(Mbd), M_DEVBUF, M_NOWAIT ); - if ( etmp == (Mbd *)NULL ) { - /* - * Couldn't allocate new descriptor. Indicate - * failure and exit now or we'll start losing - * memory. - */ - eup->eu_stats.eni_st_drv.drv_mm_nodesc++; - *size = 0; - return ( (caddr_t)NULL ); - } + etmp = (Mbd *)KM_ALLOC(sizeof(Mbd), M_DEVBUF, M_WAITOK); /* Place new element in list */ etmp->next = eptr->next; if ( etmp->next ) diff --git a/sys/dev/crypto/hifn/hifn7751.c b/sys/dev/crypto/hifn/hifn7751.c index bd1e624897..1f6afc0993 100644 --- a/sys/dev/crypto/hifn/hifn7751.c +++ b/sys/dev/crypto/hifn/hifn7751.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/dev/hifn/hifn7751.c,v 1.5.2.5 2003/06/04 17:56:59 sam Exp $ */ -/* $DragonFly: src/sys/dev/crypto/hifn/hifn7751.c,v 1.5 2003/11/20 22:07:22 dillon Exp $ */ +/* $DragonFly: src/sys/dev/crypto/hifn/hifn7751.c,v 1.6 2004/05/13 19:44:31 dillon Exp $ */ /* $OpenBSD: hifn7751.c,v 1.120 2002/05/17 00:33:34 deraadt Exp $ */ /* @@ -2223,12 +2223,7 @@ hifn_process(void *arg, struct cryptop *crp, int hint) goto errout; } - cmd = malloc(sizeof(struct hifn_command), M_DEVBUF, M_NOWAIT | M_ZERO); - if (cmd == NULL) { - hifnstats.hst_nomem++; - err = ENOMEM; - goto errout; - } + cmd = malloc(sizeof(struct hifn_command), M_DEVBUF, M_INTWAIT | M_ZERO); if (crp->crp_flags & CRYPTO_F_IMBUF) { cmd->src_m = (struct mbuf *)crp->crp_buf; diff --git a/sys/dev/crypto/rndtest/rndtest.c b/sys/dev/crypto/rndtest/rndtest.c index c9051abaee..7876d9e35c 100644 --- a/sys/dev/crypto/rndtest/rndtest.c +++ b/sys/dev/crypto/rndtest/rndtest.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/dev/rndtest/rndtest.c,v 1.1.4.1 2003/06/04 17:10:30 sam Exp $ */ -/* $DragonFly: src/sys/dev/crypto/rndtest/rndtest.c,v 1.5 2004/02/13 00:40:38 joerg Exp $ */ +/* $DragonFly: src/sys/dev/crypto/rndtest/rndtest.c,v 1.6 2004/05/13 19:44:31 dillon Exp $ */ /* $OpenBSD$ */ /* @@ -86,22 +86,19 @@ rndtest_attach(device_t dev) { struct rndtest_state *rsp; - rsp = malloc(sizeof (*rsp), M_DEVBUF, M_NOWAIT); - if (rsp != NULL) { - rsp->rs_begin = rsp->rs_buf; - rsp->rs_end = rsp->rs_buf + sizeof(rsp->rs_buf); - rsp->rs_current = rsp->rs_begin; - rsp->rs_discard = 1; - rsp->rs_collect = 1; - rsp->rs_parent = dev; + rsp = malloc(sizeof (*rsp), M_DEVBUF, M_INTWAIT); + rsp->rs_begin = rsp->rs_buf; + rsp->rs_end = rsp->rs_buf + sizeof(rsp->rs_buf); + rsp->rs_current = rsp->rs_begin; + rsp->rs_discard = 1; + rsp->rs_collect = 1; + rsp->rs_parent = dev; #if defined(__DragonFly__) || __FreeBSD_version < 500000 - callout_init(&rsp->rs_to); + callout_init(&rsp->rs_to); #else - /* NB: 1 means the callout runs w/o Giant locked */ - callout_init(&rsp->rs_to, 1); + /* NB: 1 means the callout runs w/o Giant locked */ + callout_init(&rsp->rs_to, 1); #endif - } else - device_printf(dev, "rndtest_init: no memory for state block\n"); return (rsp); } diff --git a/sys/dev/crypto/ubsec/ubsec.c b/sys/dev/crypto/ubsec/ubsec.c index 0284d46bc8..5c76cf6ff2 100644 --- a/sys/dev/crypto/ubsec/ubsec.c +++ b/sys/dev/crypto/ubsec/ubsec.c @@ -1,5 +1,5 @@ /* $FreeBSD: src/sys/dev/ubsec/ubsec.c,v 1.6.2.12 2003/06/04 17:56:59 sam Exp $ */ -/* $DragonFly: src/sys/dev/crypto/ubsec/ubsec.c,v 1.4 2003/11/20 22:07:25 dillon Exp $ */ +/* $DragonFly: src/sys/dev/crypto/ubsec/ubsec.c,v 1.5 2004/05/13 19:44:31 dillon Exp $ */ /* $OpenBSD: ubsec.c,v 1.115 2002/09/24 18:33:26 jason Exp $ */ /* @@ -380,13 +380,7 @@ ubsec_attach(device_t dev) for (i = 0; i < UBS_MAX_NQUEUE; i++, dmap++) { struct ubsec_q *q; - q = (struct ubsec_q *)malloc(sizeof(struct ubsec_q), - M_DEVBUF, M_NOWAIT); - if (q == NULL) { - device_printf(dev, "cannot allocate queue buffers\n"); - break; - } - + q = malloc(sizeof(struct ubsec_q), M_DEVBUF, M_WAITOK); if (ubsec_dma_malloc(sc, sizeof(struct ubsec_dmachunk), &dmap->d_alloc, 0)) { device_printf(dev, "cannot allocate dma buffers\n"); @@ -859,10 +853,8 @@ ubsec_newsession(void *arg, u_int32_t *sidp, struct cryptoini *cri) return (EINVAL); if (sc->sc_sessions == NULL) { - ses = sc->sc_sessions = (struct ubsec_session *)malloc( - sizeof(struct ubsec_session), M_DEVBUF, M_NOWAIT); - if (ses == NULL) - return (ENOMEM); + ses = sc->sc_sessions = malloc(sizeof(struct ubsec_session), + M_DEVBUF, M_INTWAIT); sesn = 0; sc->sc_nsessions = 1; } else { @@ -875,10 +867,8 @@ ubsec_newsession(void *arg, u_int32_t *sidp, struct cryptoini *cri) if (ses == NULL) { sesn = sc->sc_nsessions; - ses = (struct ubsec_session *)malloc((sesn + 1) * - sizeof(struct ubsec_session), M_DEVBUF, M_NOWAIT); - if (ses == NULL) - return (ENOMEM); + ses = malloc((sesn + 1) * sizeof(struct ubsec_session), + M_DEVBUF, M_INTWAIT); bcopy(sc->sc_sessions, ses, sesn * sizeof(struct ubsec_session)); bzero(sc->sc_sessions, sesn * @@ -2145,12 +2135,7 @@ ubsec_kprocess_modexp_sw(struct ubsec_softc *sc, struct cryptkop *krp, int hint) int s, err = 0; u_int nbits, normbits, mbits, shiftbits, ebits; - me = (struct ubsec_q2_modexp *)malloc(sizeof *me, M_DEVBUF, M_NOWAIT); - if (me == NULL) { - err = ENOMEM; - goto errout; - } - bzero(me, sizeof *me); + me = malloc(sizeof *me, M_DEVBUF, M_INTWAIT | M_ZERO); me->me_krp = krp; me->me_q.q_type = UBS_CTXOP_MODEXP; @@ -2347,12 +2332,7 @@ ubsec_kprocess_modexp_hw(struct ubsec_softc *sc, struct cryptkop *krp, int hint) int s, err = 0; u_int nbits, normbits, mbits, shiftbits, ebits; - me = (struct ubsec_q2_modexp *)malloc(sizeof *me, M_DEVBUF, M_NOWAIT); - if (me == NULL) { - err = ENOMEM; - goto errout; - } - bzero(me, sizeof *me); + me = malloc(sizeof *me, M_DEVBUF, M_INTWAIT | M_ZERO); me->me_krp = krp; me->me_q.q_type = UBS_CTXOP_MODEXP; @@ -2579,10 +2559,7 @@ ubsec_kprocess_rsapriv(struct ubsec_softc *sc, struct cryptkop *krp, int hint) goto errout; } - rp = (struct ubsec_q2_rsapriv *)malloc(sizeof *rp, M_DEVBUF, M_NOWAIT); - if (rp == NULL) - return (ENOMEM); - bzero(rp, sizeof *rp); + rp = malloc(sizeof *rp, M_DEVBUF, M_INTWAIT | M_ZERO); rp->rpr_krp = krp; rp->rpr_q.q_type = UBS_CTXOP_RSAPRIV; diff --git a/sys/dev/disk/advansys/adwcam.c b/sys/dev/disk/advansys/adwcam.c index 075f644269..d25dcbce92 100644 --- a/sys/dev/disk/advansys/adwcam.c +++ b/sys/dev/disk/advansys/adwcam.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/advansys/adwcam.c,v 1.7.2.2 2001/03/05 13:08:55 obrien Exp $ - * $DragonFly: src/sys/dev/disk/advansys/adwcam.c,v 1.5 2004/03/15 01:10:33 dillon Exp $ + * $DragonFly: src/sys/dev/disk/advansys/adwcam.c,v 1.6 2004/05/13 19:44:31 dillon Exp $ */ /* * Ported from: @@ -163,7 +163,7 @@ adwallocsgmap(struct adw_softc *adw) { struct sg_map_node *sg_map; - sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_WAITOK); + sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_INTWAIT); /* Allocate S/G space for the next batch of ACBS */ if (bus_dmamem_alloc(adw->sg_dmat, (void **)&sg_map->sg_vaddr, @@ -821,7 +821,7 @@ adw_alloc(device_t dev, struct resource *regs, int regs_type, int regs_id) /* * Allocate a storage area for us */ - adw = malloc(sizeof(struct adw_softc), M_DEVBUF, M_WAITOK | M_ZERO); + adw = malloc(sizeof(struct adw_softc), M_DEVBUF, M_INTWAIT | M_ZERO); LIST_INIT(&adw->pending_ccbs); SLIST_INIT(&adw->sg_maps); adw->device = dev; @@ -833,7 +833,7 @@ adw_alloc(device_t dev, struct resource *regs, int regs_type, int regs_id) adw->bsh = rman_get_bushandle(regs); KKASSERT(adw->unit >= 0 && adw->unit < 100); i = adw->unit / 10; - adw->name = malloc(sizeof("adw") + i + 1, M_DEVBUF, M_WAITOK); + adw->name = malloc(sizeof("adw") + i + 1, M_DEVBUF, M_INTWAIT); sprintf(adw->name, "adw%d", adw->unit); return(adw); } diff --git a/sys/dev/disk/aha/aha.c b/sys/dev/disk/aha/aha.c index 11dbee155a..02298b5112 100644 --- a/sys/dev/disk/aha/aha.c +++ b/sys/dev/disk/aha/aha.c @@ -56,7 +56,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/aha/aha.c,v 1.34.2.1 2000/08/02 22:24:39 peter Exp $ - * $DragonFly: src/sys/dev/disk/aha/aha.c,v 1.6 2004/03/15 01:10:35 dillon Exp $ + * $DragonFly: src/sys/dev/disk/aha/aha.c,v 1.7 2004/05/13 19:44:31 dillon Exp $ */ #include @@ -222,7 +222,7 @@ aha_alloc(int unit, bus_space_tag_t tag, bus_space_handle_t bsh) } } - aha = malloc(sizeof(struct aha_softc), M_DEVBUF, M_WAITOK | M_ZERO); + aha = malloc(sizeof(struct aha_softc), M_DEVBUF, M_INTWAIT | M_ZERO); SLIST_INIT(&aha->free_aha_ccbs); LIST_INIT(&aha->pending_ccbs); SLIST_INIT(&aha->sg_maps); @@ -728,7 +728,7 @@ ahaallocccbs(struct aha_softc *aha) next_ccb = &aha->aha_ccb_array[aha->num_ccbs]; - sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_WAITOK); + sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_INTWAIT); /* Allocate S/G space for the next batch of CCBS */ if (bus_dmamem_alloc(aha->sg_dmat, (void **)&sg_map->sg_vaddr, diff --git a/sys/dev/disk/ahb/ahb.c b/sys/dev/disk/ahb/ahb.c index 66cc9872cd..499a7eda53 100644 --- a/sys/dev/disk/ahb/ahb.c +++ b/sys/dev/disk/ahb/ahb.c @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/ahb/ahb.c,v 1.18.2.3 2001/03/05 13:08:55 obrien Exp $ - * $DragonFly: src/sys/dev/disk/ahb/ahb.c,v 1.5 2004/03/15 01:10:38 dillon Exp $ + * $DragonFly: src/sys/dev/disk/ahb/ahb.c,v 1.6 2004/05/13 19:44:32 dillon Exp $ */ #include @@ -393,7 +393,7 @@ ahballoc(u_long unit, struct resource *res) /* * Allocate a storage area for us */ - ahb = malloc(sizeof(struct ahb_softc), M_DEVBUF, M_WAITOK | M_ZERO); + ahb = malloc(sizeof(struct ahb_softc), M_DEVBUF, M_INTWAIT | M_ZERO); SLIST_INIT(&ahb->free_ecbs); LIST_INIT(&ahb->pending_ccbs); ahb->unit = unit; diff --git a/sys/dev/disk/aic7xxx/aic79xx.c b/sys/dev/disk/aic7xxx/aic79xx.c index 56dc7de43b..7529497513 100644 --- a/sys/dev/disk/aic7xxx/aic79xx.c +++ b/sys/dev/disk/aic7xxx/aic79xx.c @@ -40,7 +40,7 @@ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#198 $ * * $FreeBSD: src/sys/dev/aic7xxx/aic79xx.c,v 1.3.2.5 2003/06/10 03:26:07 gibbs Exp $ - * $DragonFly: src/sys/dev/disk/aic7xxx/aic79xx.c,v 1.5 2004/03/15 01:10:42 dillon Exp $ + * $DragonFly: src/sys/dev/disk/aic7xxx/aic79xx.c,v 1.6 2004/05/13 19:44:32 dillon Exp $ */ #include "aic79xx_osm.h" @@ -2348,7 +2348,7 @@ ahd_alloc_tstate(struct ahd_softc *ahd, u_int scsi_id, char channel) && ahd->enabled_targets[scsi_id] != master_tstate) panic("%s: ahd_alloc_tstate - Target already allocated", ahd_name(ahd)); - tstate = malloc(sizeof(*tstate), M_DEVBUF, M_WAITOK); + tstate = malloc(sizeof(*tstate), M_DEVBUF, M_INTWAIT); /* * If we have allocated a master tstate, copy user settings from @@ -4778,12 +4778,12 @@ ahd_alloc(void *platform_arg, char *name) struct ahd_softc *ahd; #if !defined(__DragonFly__) && !defined(__FreeBSD__) - ahd = malloc(sizeof(*ahd), M_DEVBUF, M_WAITOK); + ahd = malloc(sizeof(*ahd), M_DEVBUF, M_INTWAIT); #else ahd = device_get_softc((device_t)platform_arg); #endif memset(ahd, 0, sizeof(*ahd)); - ahd->seep_config = malloc(sizeof(*ahd->seep_config),M_DEVBUF,M_WAITOK); + ahd->seep_config = malloc(sizeof(*ahd->seep_config),M_DEVBUF,M_INTWAIT); LIST_INIT(&ahd->pending_scbs); /* We don't know our unit number until the OSM sets it */ ahd->name = name; @@ -5590,7 +5590,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd) hscb = &((struct hardware_scb *)hscb_map->vaddr)[offset]; hscb_busaddr = hscb_map->physaddr + (offset * sizeof(*hscb)); } else { - hscb_map = malloc(sizeof(*hscb_map), M_DEVBUF, M_WAITOK); + hscb_map = malloc(sizeof(*hscb_map), M_DEVBUF, M_INTWAIT); /* Allocate the next batch of hardware SCBs */ if (ahd_dmamem_alloc(ahd, scb_data->hscb_dmat, @@ -5620,7 +5620,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd) segs = sg_map->vaddr + offset; sg_busaddr = sg_map->physaddr + offset; } else { - sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_WAITOK); + sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_INTWAIT); /* Allocate the next batch of S/G lists */ if (ahd_dmamem_alloc(ahd, scb_data->sg_dmat, @@ -5654,7 +5654,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd) sense_data = sense_map->vaddr + offset; sense_busaddr = sense_map->physaddr + offset; } else { - sense_map = malloc(sizeof(*sense_map), M_DEVBUF, M_WAITOK); + sense_map = malloc(sizeof(*sense_map), M_DEVBUF, M_INTWAIT); /* Allocate the next batch of sense buffers */ if (ahd_dmamem_alloc(ahd, scb_data->sense_dmat, @@ -5692,8 +5692,8 @@ ahd_alloc_scbs(struct ahd_softc *ahd) #ifndef __linux__ int error; #endif - next_scb = malloc(sizeof(*next_scb), M_DEVBUF, M_WAITOK); - pdata = malloc(sizeof(*pdata), M_DEVBUF, M_WAITOK); + next_scb = malloc(sizeof(*next_scb), M_DEVBUF, M_INTWAIT); + pdata = malloc(sizeof(*pdata), M_DEVBUF, M_INTWAIT); next_scb->platform_data = pdata; next_scb->hscb_map = hscb_map; next_scb->sg_map = sg_map; @@ -8182,9 +8182,8 @@ ahd_loadseq(struct ahd_softc *ahd) ahd->num_critical_sections = cs_count; if (cs_count != 0) { - cs_count *= sizeof(struct cs); - ahd->critical_sections = malloc(cs_count, M_DEVBUF, M_WAITOK); + ahd->critical_sections = malloc(cs_count, M_DEVBUF, M_INTWAIT); memcpy(ahd->critical_sections, cs_table, cs_count); } ahd_outb(ahd, SEQCTL0, PERRORDIS|FAILDIS|FASTMODE); @@ -9104,7 +9103,7 @@ ahd_handle_en_lun(struct ahd_softc *ahd, struct cam_sim *sim, union ccb *ccb) return; } } - lstate = malloc(sizeof(*lstate), M_DEVBUF, M_WAITOK | M_ZERO); + lstate = malloc(sizeof(*lstate), M_DEVBUF, M_INTWAIT | M_ZERO); status = xpt_create_path(&lstate->path, /*periph*/NULL, xpt_path_path_id(ccb->ccb_h.path), xpt_path_target_id(ccb->ccb_h.path), diff --git a/sys/dev/disk/aic7xxx/aic79xx_osm.c b/sys/dev/disk/aic7xxx/aic79xx_osm.c index 2a63a75ada..e2909454fe 100644 --- a/sys/dev/disk/aic7xxx/aic79xx_osm.c +++ b/sys/dev/disk/aic7xxx/aic79xx_osm.c @@ -32,7 +32,7 @@ * $Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aic79xx_osm.c#27 $ * * $FreeBSD: src/sys/dev/aic7xxx/aic79xx_osm.c,v 1.3.2.4 2003/06/10 03:26:07 gibbs Exp $ - * $DragonFly: src/sys/dev/disk/aic7xxx/aic79xx_osm.c,v 1.4 2004/03/15 01:10:42 dillon Exp $ + * $DragonFly: src/sys/dev/disk/aic7xxx/aic79xx_osm.c,v 1.5 2004/05/13 19:44:32 dillon Exp $ */ #include "aic79xx_osm.h" @@ -1729,7 +1729,7 @@ int ahd_platform_alloc(struct ahd_softc *ahd, void *platform_arg) { ahd->platform_data = malloc(sizeof(struct ahd_platform_data), M_DEVBUF, - M_WAITOK | M_ZERO); + M_INTWAIT | M_ZERO); return (0); } diff --git a/sys/dev/disk/aic7xxx/aic7xxx.c b/sys/dev/disk/aic7xxx/aic7xxx.c index 852cc68035..42a5d207fc 100644 --- a/sys/dev/disk/aic7xxx/aic7xxx.c +++ b/sys/dev/disk/aic7xxx/aic7xxx.c @@ -40,7 +40,7 @@ * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.c#134 $ * * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx.c,v 1.41.2.27 2003/06/10 03:26:08 gibbs Exp $ - * $DragonFly: src/sys/dev/disk/aic7xxx/aic7xxx.c,v 1.5 2004/03/15 01:10:42 dillon Exp $ + * $DragonFly: src/sys/dev/disk/aic7xxx/aic7xxx.c,v 1.6 2004/05/13 19:44:32 dillon Exp $ */ #include "aic7xxx_osm.h" @@ -1562,7 +1562,7 @@ ahc_alloc_tstate(struct ahc_softc *ahc, u_int scsi_id, char channel) && ahc->enabled_targets[scsi_id] != master_tstate) panic("%s: ahc_alloc_tstate - Target already allocated", ahc_name(ahc)); - tstate = malloc(sizeof(*tstate), M_DEVBUF, M_WAITOK); + tstate = malloc(sizeof(*tstate), M_DEVBUF, M_INTWAIT); /* * If we have allocated a master tstate, copy user settings from @@ -4244,7 +4244,7 @@ ahc_init_scbdata(struct ahc_softc *ahc) /* Allocate SCB resources */ scb_data->scbarray = malloc(sizeof(struct scb) * AHC_SCB_MAX_ALLOC, - M_DEVBUF, M_WAITOK | M_ZERO); + M_DEVBUF, M_INTWAIT | M_ZERO); /* Determine the number of hardware SCBs and initialize them */ @@ -4441,7 +4441,7 @@ ahc_alloc_scbs(struct ahc_softc *ahc) next_scb = &scb_data->scbarray[scb_data->numscbs]; - sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_WAITOK); + sg_map = malloc(sizeof(*sg_map), M_DEVBUF, M_INTWAIT); /* Allocate S/G space for the next batch of SCBS */ if (ahc_dmamem_alloc(ahc, scb_data->sg_dmat, @@ -4467,7 +4467,7 @@ ahc_alloc_scbs(struct ahc_softc *ahc) #ifndef __linux__ int error; #endif - pdata = malloc(sizeof(*pdata), M_DEVBUF, M_WAITOK); + pdata = malloc(sizeof(*pdata), M_DEVBUF, M_INTWAIT); next_scb->platform_data = pdata; next_scb->sg_map = sg_map; next_scb->sg_list = segs; @@ -6386,7 +6386,7 @@ ahc_loadseq(struct ahc_softc *ahc) ahc->num_critical_sections = cs_count; if (cs_count != 0) { cs_count *= sizeof(struct cs); - ahc->critical_sections = malloc(cs_count, M_DEVBUF, M_WAITOK); + ahc->critical_sections = malloc(cs_count, M_DEVBUF, M_INTWAIT); memcpy(ahc->critical_sections, cs_table, cs_count); } ahc_outb(ahc, SEQCTL, PERRORDIS|FAILDIS|FASTMODE); @@ -7001,7 +7001,7 @@ ahc_handle_en_lun(struct ahc_softc *ahc, struct cam_sim *sim, union ccb *ccb) return; } } - lstate = malloc(sizeof(*lstate), M_DEVBUF, M_WAITOK | M_ZERO); + lstate = malloc(sizeof(*lstate), M_DEVBUF, M_INTWAIT | M_ZERO); status = xpt_create_path(&lstate->path, /*periph*/NULL, xpt_path_path_id(ccb->ccb_h.path), xpt_path_target_id(ccb->ccb_h.path), diff --git a/sys/dev/disk/aic7xxx/aic7xxx_osm.c b/sys/dev/disk/aic7xxx/aic7xxx_osm.c index 1861188949..99eb880879 100644 --- a/sys/dev/disk/aic7xxx/aic7xxx_osm.c +++ b/sys/dev/disk/aic7xxx/aic7xxx_osm.c @@ -31,7 +31,7 @@ * $Id: //depot/aic7xxx/freebsd/dev/aic7xxx/aic7xxx_osm.c#13 $ * * $FreeBSD: src/sys/dev/aic7xxx/aic7xxx_osm.c,v 1.27.2.6 2003/06/10 03:26:09 gibbs Exp $ - * $DragonFly: src/sys/dev/disk/aic7xxx/aic7xxx_osm.c,v 1.4 2004/03/15 01:10:42 dillon Exp $ + * $DragonFly: src/sys/dev/disk/aic7xxx/aic7xxx_osm.c,v 1.5 2004/05/13 19:44:32 dillon Exp $ */ #include "aic7xxx_osm.h" @@ -1844,7 +1844,7 @@ int ahc_platform_alloc(struct ahc_softc *ahc, void *platform_arg) { ahc->platform_data = malloc(sizeof(struct ahc_platform_data), M_DEVBUF, - M_WAITOK | M_ZERO); + M_INTWAIT | M_ZERO); return (0); } diff --git a/sys/dev/drm/drm_memory.h b/sys/dev/drm/drm_memory.h index 74820a3a54..45e1159d91 100644 --- a/sys/dev/drm/drm_memory.h +++ b/sys/dev/drm/drm_memory.h @@ -29,7 +29,7 @@ * Gareth Hughes * * $FreeBSD: src/sys/dev/drm/drm_memory.h,v 1.8.2.1 2003/04/26 07:05:28 anholt Exp $ - * $DragonFly: src/sys/dev/drm/Attic/drm_memory.h,v 1.3 2004/02/13 01:23:57 joerg Exp $ + * $DragonFly: src/sys/dev/drm/Attic/drm_memory.h,v 1.4 2004/05/13 19:44:32 dillon Exp $ */ #include "dev/drm/drmP.h" @@ -147,9 +147,7 @@ int DRM(mem_info) DRM_SYSCTL_HANDLER_ARGS int ret; drm_mem_stats_t *stats; - stats = malloc(sizeof(DRM(mem_stats)), DRM(M_DRM), M_NOWAIT); - if (stats == NULL) - return ENOMEM; + stats = malloc(sizeof(DRM(mem_stats)), DRM(M_DRM), M_WAITOK); DRM_SPINLOCK(&DRM(mem_lock)); bcopy(DRM(mem_stats), stats, sizeof(DRM(mem_stats))); diff --git a/sys/dev/misc/atkbdc_layer/atkbdc_isa.c b/sys/dev/misc/atkbdc_layer/atkbdc_isa.c index 37d38ab8e6..1fb238d72b 100644 --- a/sys/dev/misc/atkbdc_layer/atkbdc_isa.c +++ b/sys/dev/misc/atkbdc_layer/atkbdc_isa.c @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/isa/atkbdc_isa.c,v 1.14.2.1 2000/03/31 12:52:05 yokota Exp $ - * $DragonFly: src/sys/dev/misc/atkbdc_layer/atkbdc_isa.c,v 1.3 2003/08/07 21:16:56 dillon Exp $ + * $DragonFly: src/sys/dev/misc/atkbdc_layer/atkbdc_isa.c,v 1.4 2004/05/13 19:44:32 dillon Exp $ */ #include "opt_kbd.h" @@ -147,10 +147,8 @@ atkbdc_add_device(device_t dev, const char *name, int unit) if (resource_int_value(name, unit, "disabled", &t) == 0 && t != 0) return; - kdev = malloc(sizeof(struct atkbdc_device), M_ATKBDDEV, M_NOWAIT); - if (!kdev) - return; - bzero(kdev, sizeof *kdev); + kdev = malloc(sizeof(struct atkbdc_device), M_ATKBDDEV, + M_WAITOK | M_ZERO); if (resource_int_value(name, unit, "irq", &t) == 0) kdev->irq = t; diff --git a/sys/dev/misc/kbd/atkbd.c b/sys/dev/misc/kbd/atkbd.c index 0bfdc232b4..82d24798e3 100644 --- a/sys/dev/misc/kbd/atkbd.c +++ b/sys/dev/misc/kbd/atkbd.c @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/kbd/atkbd.c,v 1.25.2.4 2002/04/08 19:21:38 asmodai Exp $ - * $DragonFly: src/sys/dev/misc/kbd/atkbd.c,v 1.3 2003/08/07 21:16:56 dillon Exp $ + * $DragonFly: src/sys/dev/misc/kbd/atkbd.c,v 1.4 2004/05/13 19:44:32 dillon Exp $ */ #include "opt_kbd.h" @@ -358,29 +358,12 @@ atkbd_init(int unit, keyboard_t **kbdp, void *arg, int flags) fkeymap_size = sizeof(default_fkeytab)/sizeof(default_fkeytab[0]); } else if (*kbdp == NULL) { - *kbdp = kbd = malloc(sizeof(*kbd), M_DEVBUF, M_NOWAIT); - if (kbd == NULL) - return ENOMEM; - bzero(kbd, sizeof(*kbd)); - state = malloc(sizeof(*state), M_DEVBUF, M_NOWAIT); - keymap = malloc(sizeof(key_map), M_DEVBUF, M_NOWAIT); - accmap = malloc(sizeof(accent_map), M_DEVBUF, M_NOWAIT); - fkeymap = malloc(sizeof(fkey_tab), M_DEVBUF, M_NOWAIT); + *kbdp = kbd = malloc(sizeof(*kbd), M_DEVBUF, M_WAITOK|M_ZERO); + state = malloc(sizeof(*state), M_DEVBUF, M_WAITOK|M_ZERO); + keymap = malloc(sizeof(key_map), M_DEVBUF, M_WAITOK); + accmap = malloc(sizeof(accent_map), M_DEVBUF, M_WAITOK); + fkeymap = malloc(sizeof(fkey_tab), M_DEVBUF, M_WAITOK); fkeymap_size = sizeof(fkey_tab)/sizeof(fkey_tab[0]); - if ((state == NULL) || (keymap == NULL) || (accmap == NULL) - || (fkeymap == NULL)) { - if (state != NULL) - free(state, M_DEVBUF); - if (keymap != NULL) - free(keymap, M_DEVBUF); - if (accmap != NULL) - free(accmap, M_DEVBUF); - if (fkeymap != NULL) - free(fkeymap, M_DEVBUF); - free(kbd, M_DEVBUF); - return ENOMEM; - } - bzero(state, sizeof(*state)); } else if (KBD_IS_INITIALIZED(*kbdp) && KBD_IS_CONFIGURED(*kbdp)) { return 0; } else { diff --git a/sys/dev/misc/kbd/atkbdc.c b/sys/dev/misc/kbd/atkbdc.c index 40c90bda06..316f8b73dc 100644 --- a/sys/dev/misc/kbd/atkbdc.c +++ b/sys/dev/misc/kbd/atkbdc.c @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/dev/kbd/atkbdc.c,v 1.5.2.2 2002/03/31 11:02:02 murray Exp $ - * $DragonFly: src/sys/dev/misc/kbd/atkbdc.c,v 1.3 2003/08/07 21:16:56 dillon Exp $ + * $DragonFly: src/sys/dev/misc/kbd/atkbdc.c,v 1.4 2004/05/13 19:44:32 dillon Exp $ * from kbdio.c,v 1.13 1998/09/25 11:55:46 yokota Exp */ @@ -112,11 +112,8 @@ atkbdc_softc_t return NULL; sc = atkbdc_softc[unit]; if (sc == NULL) { - sc = atkbdc_softc[unit] - = malloc(sizeof(*sc), M_DEVBUF, M_NOWAIT); - if (sc == NULL) - return NULL; - bzero(sc, sizeof(*sc)); + sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); + atkbdc_softc[unit] = sc; } return sc; } diff --git a/sys/dev/misc/kbd/kbd.c b/sys/dev/misc/kbd/kbd.c index f389103885..47bdc5d07b 100644 --- a/sys/dev/misc/kbd/kbd.c +++ b/sys/dev/misc/kbd/kbd.c @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/kbd/kbd.c,v 1.17.2.2 2001/07/30 16:46:43 yokota Exp $ - * $DragonFly: src/sys/dev/misc/kbd/kbd.c,v 1.7 2003/11/10 06:12:05 dillon Exp $ + * $DragonFly: src/sys/dev/misc/kbd/kbd.c,v 1.8 2004/05/13 19:44:32 dillon Exp $ */ #include "opt_kbd.h" @@ -84,19 +84,10 @@ kbd_realloc_array(void) s = spltty(); newsize = ((keyboards + ARRAY_DELTA)/ARRAY_DELTA)*ARRAY_DELTA; - new_kbd = malloc(sizeof(*new_kbd)*newsize, M_DEVBUF, M_NOWAIT); - if (new_kbd == NULL) { - splx(s); - return ENOMEM; - } - new_kbdsw = malloc(sizeof(*new_kbdsw)*newsize, M_DEVBUF, M_NOWAIT); - if (new_kbdsw == NULL) { - free(new_kbd, M_DEVBUF); - splx(s); - return ENOMEM; - } - bzero(new_kbd, sizeof(*new_kbd)*newsize); - bzero(new_kbdsw, sizeof(*new_kbdsw)*newsize); + new_kbd = malloc(sizeof(*new_kbd) * newsize, M_DEVBUF, + M_WAITOK | M_ZERO); + new_kbdsw = malloc(sizeof(*new_kbdsw) * newsize, M_DEVBUF, + M_WAITOK | M_ZERO); bcopy(keyboard, new_kbd, sizeof(*keyboard)*keyboards); bcopy(kbdsw, new_kbdsw, sizeof(*kbdsw)*keyboards); if (keyboards > 1) { @@ -481,7 +472,6 @@ kbd_detach(keyboard_t *kbd) if (dev->si_drv1) free(dev->si_drv1, M_DEVBUF); destroy_dev(dev); - return 0; } diff --git a/sys/dev/misc/labpc/labpc.c b/sys/dev/misc/labpc/labpc.c index cbad4f80e0..efd560b77b 100644 --- a/sys/dev/misc/labpc/labpc.c +++ b/sys/dev/misc/labpc/labpc.c @@ -39,7 +39,7 @@ * dufault@hda.com * * $FreeBSD: src/sys/i386/isa/labpc.c,v 1.35 1999/09/25 18:24:08 phk Exp $ - * $DragonFly: src/sys/dev/misc/labpc/labpc.c,v 1.5 2003/08/07 21:16:56 dillon Exp $ + * $DragonFly: src/sys/dev/misc/labpc/labpc.c,v 1.6 2004/05/13 19:44:32 dillon Exp $ * */ @@ -404,10 +404,13 @@ labpcinit(void) if (NLABPC > MAX_UNITS) return 0; - labpcs = malloc(NLABPC * sizeof(struct ctlr *), M_DEVBUF, M_NOWAIT); - if (labpcs) - { - bzero(labpcs, NLABPC * sizeof(struct ctlr *)); + labpcs = malloc(NLABPC * sizeof(struct ctlr *), M_DEVBUF, + M_WAITOK | M_ZERO); + /* + * XXX this is really odd code, adding the device only if + * the allocation fails? it could be broken. + */ + if (labpcs) { return 1; } cdevsw_add(&labpc_cdevsw); @@ -418,7 +421,7 @@ static int labpcprobe(struct isa_device *dev) { static int unit; - struct ctlr scratch, *ctlr; + struct ctlr scratch, *ctlr, *l; u_char status; if (!labpcs) @@ -460,22 +463,14 @@ labpcprobe(struct isa_device *dev) */ reset(ctlr); - if ( (labpcs[unit] = malloc(sizeof(struct ctlr), M_DEVBUF, M_NOWAIT)) ) - { - struct ctlr *l = labpcs[unit]; - - bzero(l, sizeof(struct ctlr)); - l->base = ctlr->base; - dev->id_unit = l->unit = unit; + l = malloc(sizeof(struct ctlr), M_DEVBUF, M_WAITOK | M_ZERO); + l->base = ctlr->base; + l->unit = unit; + labpcs[unit] = l; + dev->id_unit = l->unit; - unit++; - return 0x20; - } - else - { - printf("labpc%d: Can't malloc.\n", unit); - return 0; - } + unit++; + return 0x20; } /* attach: Set things in a normal state. diff --git a/sys/dev/misc/puc/puc.c b/sys/dev/misc/puc/puc.c index 56ed26e515..6d1f4e198d 100644 --- a/sys/dev/misc/puc/puc.c +++ b/sys/dev/misc/puc/puc.c @@ -1,7 +1,7 @@ /* * $NetBSD: puc.c,v 1.7 2000/07/29 17:43:38 jlam Exp $ * $FreeBSD: src/sys/dev/puc/puc.c,v 1.3.2.5 2003/04/04 08:42:17 sobomax Exp $ - * $DragonFly: src/sys/dev/misc/puc/puc.c,v 1.5 2004/02/21 06:37:06 dillon Exp $ + * $DragonFly: src/sys/dev/misc/puc/puc.c,v 1.6 2004/05/13 19:44:33 dillon Exp $ */ /*- @@ -298,9 +298,7 @@ puc_pci_attach(device_t dev) continue; } pdev = malloc(sizeof(struct puc_device), M_DEVBUF, - M_NOWAIT | M_ZERO); - if (!pdev) - continue; + M_WAITOK | M_ZERO); resource_list_init(&pdev->resources); /* First fake up an IRQ resource. */ diff --git a/sys/dev/misc/syscons/schistory.c b/sys/dev/misc/syscons/schistory.c index e695cc7b98..eb19b72f23 100644 --- a/sys/dev/misc/syscons/schistory.c +++ b/sys/dev/misc/syscons/schistory.c @@ -27,7 +27,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/syscons/schistory.c,v 1.8.2.1 2001/07/19 06:38:53 dd Exp $ - * $DragonFly: src/sys/dev/misc/syscons/schistory.c,v 1.4 2003/08/07 21:16:59 dillon Exp $ + * $DragonFly: src/sys/dev/misc/syscons/schistory.c,v 1.5 2004/05/13 19:44:33 dillon Exp $ */ #include "use_sc.h" @@ -114,9 +114,8 @@ sc_alloc_history_buffer(scr_stat *scp, int lines, int prev_ysize, int wait) } /* allocate a new buffer */ - history = (sc_vtb_t *)malloc(sizeof(*history), - M_DEVBUF, - (wait) ? M_WAITOK : M_NOWAIT); + history = malloc(sizeof(*history), M_DEVBUF, + (wait) ? M_WAITOK : M_NOWAIT); if (history != NULL) { if (lines > min_lines) extra_history_size -= lines - min_lines; diff --git a/sys/dev/misc/syscons/scmouse.c b/sys/dev/misc/syscons/scmouse.c index a506b3d7bd..ca34ab7c95 100644 --- a/sys/dev/misc/syscons/scmouse.c +++ b/sys/dev/misc/syscons/scmouse.c @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/syscons/scmouse.c,v 1.12.2.3 2001/07/28 12:51:47 yokota Exp $ - * $DragonFly: src/sys/dev/misc/syscons/scmouse.c,v 1.4 2003/08/07 21:16:59 dillon Exp $ + * $DragonFly: src/sys/dev/misc/syscons/scmouse.c,v 1.5 2004/05/13 19:44:33 dillon Exp $ */ #include "opt_syscons.h" @@ -103,8 +103,7 @@ sc_alloc_cut_buffer(scr_stat *scp, int wait) if (p != NULL) free(p, M_DEVBUF); cut_buffer_size = scp->xsize * scp->ysize + 1; - p = (u_char *)malloc(cut_buffer_size, - M_DEVBUF, (wait) ? M_WAITOK : M_NOWAIT); + p = malloc(cut_buffer_size, M_DEVBUF, (wait) ? M_WAITOK : M_NOWAIT); if (p != NULL) p[0] = '\0'; cut_buffer = p; diff --git a/sys/dev/misc/syscons/scvtb.c b/sys/dev/misc/syscons/scvtb.c index 62d9780415..b8f1a8c376 100644 --- a/sys/dev/misc/syscons/scvtb.c +++ b/sys/dev/misc/syscons/scvtb.c @@ -24,7 +24,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/syscons/scvtb.c,v 1.5.2.1 2001/07/16 05:21:23 yokota Exp $ - * $DragonFly: src/sys/dev/misc/syscons/scvtb.c,v 1.3 2003/08/07 21:16:59 dillon Exp $ + * $DragonFly: src/sys/dev/misc/syscons/scvtb.c,v 1.4 2004/05/13 19:44:33 dillon Exp $ */ #include "opt_syscons.h" @@ -57,10 +57,10 @@ sc_vtb_init(sc_vtb_t *vtb, int type, int cols, int rows, void *buf, int wait) case VTB_MEMORY: case VTB_RINGBUFFER: if ((buf == NULL) && (cols*rows != 0)) { - vtb->vtb_buffer = - (vm_offset_t)malloc(cols*rows*sizeof(u_int16_t), - M_DEVBUF, - (wait) ? M_WAITOK : M_NOWAIT); + vtb->vtb_buffer = (vm_offset_t) + malloc(cols*rows*sizeof(u_int16_t), + M_DEVBUF, + (wait) ? M_WAITOK : M_NOWAIT); if (vtb->vtb_buffer != NULL) { bzero((void *)sc_vtb_pointer(vtb, 0), cols*rows*sizeof(u_int16_t)); -- 2.41.0