svn commit: r299469 - head/sys/compat/linuxkpi/common/src
Hans Petter Selasky
hselasky at FreeBSD.org
Wed May 11 17:20:21 UTC 2016
Author: hselasky
Date: Wed May 11 17:20:20 2016
New Revision: 299469
URL: https://svnweb.freebsd.org/changeset/base/299469
Log:
Match Linux behaviour and iterate the IDR tree unlocked. The caller is
responsible the IDR tree stays unmodified while iterating.
MFC after: 1 week
Sponsored by: Mellanox Technologies
Modified:
head/sys/compat/linuxkpi/common/src/linux_idr.c
Modified: head/sys/compat/linuxkpi/common/src/linux_idr.c
==============================================================================
--- head/sys/compat/linuxkpi/common/src/linux_idr.c Wed May 11 17:17:48 2016 (r299468)
+++ head/sys/compat/linuxkpi/common/src/linux_idr.c Wed May 11 17:20:20 2016 (r299469)
@@ -593,15 +593,11 @@ idr_for_each_layer(struct idr_layer *il,
return (0);
}
+/* NOTE: It is not allowed to modify the IDR tree while it is being iterated */
int
idr_for_each(struct idr *idp, int (*f)(int id, void *p, void *data), void *data)
{
- int err;
-
- mtx_lock(&idp->lock);
- err = idr_for_each_layer(idp->top, idp->layers - 1, f, data);
- mtx_unlock(&idp->lock);
- return (err);
+ return (idr_for_each_layer(idp->top, idp->layers - 1, f, data));
}
int
More information about the svn-src-head
mailing list