On Sat, Apr 10, 2010 at 12:49:48PM +1000, matthew green wrote: > > would you try this variant? it handles the case where MEXTMALLOC() > would fail to allocate external storage, and seems to work on my > iwn(4). i'll commit this if you confirm it works. Is there any reason not to replace the implementation of iwn_alloc_rbuf() with MEXTMALLOC(), instead?
as in hide this inside iwn_alloc_rbuf()? probably. or do you mean give up the private buffer collection? in that case, i am not sure what the right solution would be, seems like a concept we want to decide for (all?) network drivers... Previously, a remote host could exhaust an iwn(4)'s private Rx buffer pool by, say, sending a ton of tiny segments to TCP sockets that already have a long backlog. Can a remote host now deplete the malloc(9) pool in the same way? i don't know. however, i'd trade that potential DoS for the actual much better working driver now... :) still, this is something worth investigating (but not enough for me to look at any time soon.) .mrg.