svn commit: r245460 - stable/8/sys/libkern
Kevin Lo
kevlo at FreeBSD.org
Tue Jan 15 15:29:29 UTC 2013
Author: kevlo
Date: Tue Jan 15 15:29:28 2013
New Revision: 245460
URL: http://svnweb.freebsd.org/changeset/base/245460
Log:
MFC r236899:
Fix unloading of libiconv module.
Previously it would either loop infinitely or exit with error leaking a lock.
Modified:
stable/8/sys/libkern/iconv.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/libkern/ (props changed)
Modified: stable/8/sys/libkern/iconv.c
==============================================================================
--- stable/8/sys/libkern/iconv.c Tue Jan 15 14:35:35 2013 (r245459)
+++ stable/8/sys/libkern/iconv.c Tue Jan 15 15:29:28 2013 (r245460)
@@ -90,9 +90,11 @@ iconv_mod_unload(void)
struct iconv_cspair *csp;
sx_xlock(&iconv_lock);
- while ((csp = TAILQ_FIRST(&iconv_cslist)) != NULL) {
- if (csp->cp_refcount)
+ TAILQ_FOREACH(csp, &iconv_cslist, cp_link) {
+ if (csp->cp_refcount) {
+ sx_xunlock(&iconv_lock);
return EBUSY;
+ }
}
while ((csp = TAILQ_FIRST(&iconv_cslist)) != NULL)
More information about the svn-src-stable
mailing list