On Sat, Jan 30, 2010 at 3:50 PM, David Gwynne <l...@animata.net> wrote: ... > - am = malloc(sizeof(struct ami_mem), M_DEVBUF, M_NOWAIT|M_ZERO); > + am = malloc(sizeof(struct ami_mem), M_DEVBUF, M_ZERO | > + nowait ? M_NOWAIT : 0);
Oops, precedence lossage! That always passes M_NOWAIT (and never M_ZERO) to malloc(). Jeff, you tested with the above diff, right? Can you change that call to instead read am = malloc(sizeof(struct ami_mem), M_DEVBUF, M_ZERO | (nowait ? M_NOWAIT : 0)); (i.e., add parens around the ternary operation) and try again? Philip Guenther