diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-12-12 16:55:26 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-12-12 16:55:26 +0100 |
commit | bf3476d661e05208b78f70cdaa5656ff77264d23 (patch) | |
tree | f5c52910b93aa74586740a54f6b2911e95ae96cc /sys/src/9/pc/sdodin.c | |
parent | 589f99915eb95d9207c08259c8880675a0a502cf (diff) |
kernel: fix inproper use of malloc/smalloc
Diffstat (limited to 'sys/src/9/pc/sdodin.c')
-rw-r--r-- | sys/src/9/pc/sdodin.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/9/pc/sdodin.c b/sys/src/9/pc/sdodin.c index 9b2f716bf..3f35d7f51 100644 --- a/sys/src/9/pc/sdodin.c +++ b/sys/src/9/pc/sdodin.c @@ -2551,7 +2551,11 @@ map(Pcidev *p, int bar) static void initmem(Ctlr *c) { - c->fis = smalloc(0x800 + 0x100*16); /* §6.1.9.3 */ + c->fis = malloc(0x800 + 0x100*16); /* §6.1.9.3 */ + c->cl = malloc(nelem(c->cq)*sizeof *c->cl); + c->cmdtab = malloc(Nctlrdrv*sizeof *c->cmdtab); + if(c->fis == nil || c->cl == nil || c->cmdtab == nil) + panic("sdodin: no memory"); c->reg[Fisbase + 0] = PCIWADDR(c->fis); c->reg[Fisbase + 1] = Pciwaddrh(c->fis); c->reg[Cqbase + 0] = PCIWADDR(c->cq); @@ -2560,10 +2564,8 @@ initmem(Ctlr *c) c->reg[Dqbase + 0] = PCIWADDR(c->dq); c->reg[Dqbase + 1] = Pciwaddrh(c->dq); c->reg[Dqcfg] = Dqen | nelem(c->dq); - c->cl = smalloc(nelem(c->cq)*sizeof *c->cl); c->reg[Clbase + 0] = PCIWADDR(c->cl); c->reg[Clbase + 1] = Pciwaddrh(c->cl); - c->cmdtab = smalloc(Nctlrdrv*sizeof *c->cmdtab); } /* §5.1.2 */ |