[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: kernel/5041: vnd panic on -current



The following reply was made to PR kernel/5041; it has been noted by GNATS.

From: Pedro Martelletto <pedro_(_at_)_ambientworks_(_dot_)_net>
To: David Hill <dhill_(_at_)_mindcry_(_dot_)_org>
Cc: gnats_(_at_)_openbsd_(_dot_)_org
Subject: Re: kernel/5041: vnd panic on -current
Date: Thu, 2 Mar 2006 21:57:19 -0300

 We are returning items back to the pool in vndiodone() from interrupt
 context, so I guess something like the diff below might be needed.
 
 Alternatively, we can tweak vnd's pool_init() call to use a interrupt
 safe allocator.
 
 -p.
 
 Index: vnd.c
 ===================================================================
 RCS file: /cvs/src/sys/dev/vnd.c,v
 retrieving revision 1.58
 diff -u -r1.58 vnd.c
 --- vnd.c	22 Jan 2006 00:40:02 -0000	1.58
 +++ vnd.c	3 Mar 2006 01:01:52 -0000
 @@ -568,7 +568,9 @@
  			    vnd->sc_vp, vp, bn, nbn, sz);
  #endif
  
 +		s = splbio();
  		nbp = getvndbuf();
 +		splx(s);
  		nbp->vb_buf.b_flags = flags;
  		nbp->vb_buf.b_bcount = sz;
  		nbp->vb_buf.b_bufsize = bp->b_bufsize;