Date: Wed, 6 Jul 2011 15:09:52 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r223823 - head/sys/vm Message-ID: <201107061509.p66F9qVG021370@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107061509.p66F9qVG021370>