summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/sdodin.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@centraldogma>2011-12-12 16:55:26 +0100
committercinap_lenrek <cinap_lenrek@centraldogma>2011-12-12 16:55:26 +0100
commitbf3476d661e05208b78f70cdaa5656ff77264d23 (patch)
treef5c52910b93aa74586740a54f6b2911e95ae96cc /sys/src/9/pc/sdodin.c
parent589f99915eb95d9207c08259c8880675a0a502cf (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.c8
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 */