Fixes waserror() memory leak in devwalk
authorBarret Rhoden <brho@cs.berkeley.edu>
Sun, 12 Jan 2014 22:55:02 +0000 (14:55 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 17 Jan 2014 22:57:12 +0000 (14:57 -0800)
commit1514c9fd1f4f7fdd44fd2c1242fb4462a6d0971a
tree89173f4b38f3ae010fcb73db68b4b162c5412b7f
parent89652e73499f34a921a5ba8e83dd58f8b5303b46
Fixes waserror() memory leak in devwalk

The alloc was being ignored by the compiler.  As far as it was
concerned, at the waserror point (where error jumps back to), there was
no way for alloc to not be 0.  So we never freed the chan wq->clone.

We'll definitely have issues like this in the future.  We need some way
to tell the compiler to forget anything it might have known before a
certain point; otherwise we'll need to drop lots of volatiles around.
Not sure why we need this but plan9 didn't.
kern/drivers/dev/dev.c