On Sat, Jan 30, 2010 at 3:50 PM, David Gwynne <[email protected]> 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