Author: attilio
Date: Wed Jul  6 15:09:52 2011
New Revision: 223823
URL: http://svn.freebsd.org/changeset/base/223823

Log:
  Handle a race between device_pager and devsw in a more graceful manner:
  return an error code rather than panic the kernel.
  
  Sponsored by: Sandvine Incorporated
  Reviewed by:  kib
  Tested by:    pho
  MFC after:    2 weeks

Modified:
  head/sys/vm/device_pager.c

Modified: head/sys/vm/device_pager.c
==============================================================================
--- head/sys/vm/device_pager.c  Wed Jul  6 09:43:25 2011        (r223822)
+++ head/sys/vm/device_pager.c  Wed Jul  6 15:09:52 2011        (r223823)
@@ -217,8 +217,10 @@ dev_pager_getpages(object, m, count, req
        memattr = object->memattr;
        VM_OBJECT_UNLOCK(object);
        csw = dev_refthread(dev, &ref);
-       if (csw == NULL)
-               panic("dev_pager_getpage: no cdevsw");
+       if (csw == NULL) {
+               VM_OBJECT_LOCK(object);
+               return (VM_PAGER_FAIL);
+       }
        td = curthread;
        fpop = td->td_fpop;
        td->td_fpop = NULL;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to