Kmalloc canary debugging
authorBarret Rhoden <brho@cs.berkeley.edu>
Sat, 16 Nov 2013 21:51:59 +0000 (13:51 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 16 Jan 2014 19:42:53 +0000 (11:42 -0800)
commitb23c2f74c73fb8b58bcc4047e742866818a73b4b
tree4fe1748426f55796a8ceb7c02e2f71aa6264ca8e
parentaeda1b224cef013915ac698a0711bd82aaf6c8ed
Kmalloc canary debugging

This was originally used to fix a kmalloc bug in mntwalk.

The issue that pops up with any 9ns code doing its own walks was messing
up with the wq size:

- wq = kzmalloc(sizeof(struct walkqid) +
-       (nname - 1) * sizeof(struct qid), 0);
+ wq = kzmalloc(sizeof(struct walkqid) + (nname) * sizeof(struct qid),
+   KMALLOC_WAIT);

It seems that any plan9 walk is going to have the problem.  We had a
similar issue with devwalk, and it looked the same.  (Canary clobber in
namec for e.elems, and the clobber was due to a previous (in memory, not
in time) kmalloc).
kern/include/kmalloc.h
kern/src/kmalloc.c