Author: jhb
Date: Mon Jun  8 18:06:00 2015
New Revision: 284160
URL: https://svnweb.freebsd.org/changeset/base/284160
Log:
  Revert r284153, as I believe it breaks the dtrace sdt module.  I will
  fix the original issue a different way.

Modified:
  head/sys/kern/kern_linker.c

Modified: head/sys/kern/kern_linker.c
==============================================================================
--- head/sys/kern/kern_linker.c Mon Jun  8 17:39:25 2015        (r284159)
+++ head/sys/kern/kern_linker.c Mon Jun  8 18:06:00 2015        (r284160)
@@ -137,8 +137,6 @@ static int  linker_file_add_dependency(li
                    linker_file_t dep);
 static caddr_t linker_file_lookup_symbol_internal(linker_file_t file,
                    const char* name, int deps);
-static int     linker_file_lookup_set_locked(linker_file_t file,
-                   const char *name, void *firstp, void *lastp, int *countp);
 static int     linker_load_module(const char *kldname,
                    const char *modname, struct linker_file *parent,
                    const struct mod_depend *verinfo, struct linker_file 
**lfpp);
@@ -191,8 +189,7 @@ linker_file_sysinit(linker_file_t lf)
 
        sx_assert(&kld_sx, SA_XLOCKED);
 
-       if (linker_file_lookup_set_locked(lf, "sysinit_set", &start, &stop,
-           NULL) != 0)
+       if (linker_file_lookup_set(lf, "sysinit_set", &start, &stop, NULL) != 0)
                return;
        /*
         * Perform a bubble sort of the system initialization objects by
@@ -240,7 +237,7 @@ linker_file_sysuninit(linker_file_t lf)
 
        sx_assert(&kld_sx, SA_XLOCKED);
 
-       if (linker_file_lookup_set_locked(lf, "sysuninit_set", &start, &stop,
+       if (linker_file_lookup_set(lf, "sysuninit_set", &start, &stop,
            NULL) != 0)
                return;
 
@@ -291,8 +288,7 @@ linker_file_register_sysctls(linker_file
 
        sx_assert(&kld_sx, SA_XLOCKED);
 
-       if (linker_file_lookup_set_locked(lf, "sysctl_set", &start, &stop,
-           NULL) != 0)
+       if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
                return;
 
        sx_xunlock(&kld_sx);
@@ -313,8 +309,7 @@ linker_file_unregister_sysctls(linker_fi
 
        sx_assert(&kld_sx, SA_XLOCKED);
 
-       if (linker_file_lookup_set_locked(lf, "sysctl_set", &start, &stop,
-           NULL) != 0)
+       if (linker_file_lookup_set(lf, "sysctl_set", &start, &stop, NULL) != 0)
                return;
 
        sx_xunlock(&kld_sx);
@@ -337,7 +332,7 @@ linker_file_register_modules(linker_file
 
        sx_assert(&kld_sx, SA_XLOCKED);
 
-       if (linker_file_lookup_set_locked(lf, "modmetadata_set", &start,
+       if (linker_file_lookup_set(lf, "modmetadata_set", &start,
            &stop, NULL) != 0) {
                /*
                 * This fallback should be unnecessary, but if we get booted
@@ -747,26 +742,13 @@ linker_file_add_dependency(linker_file_t
  * This function is used in this file so we can avoid having lots of (void **)
  * casts.
  */
-static int
-linker_file_lookup_set_locked(linker_file_t file, const char *name,
-    void *firstp, void *lastp, int *countp)
-{
-
-       sx_assert(&kld_sx, SA_LOCKED);
-       return (LINKER_LOOKUP_SET(file, name, firstp, lastp, countp));
-}
-
 int
 linker_file_lookup_set(linker_file_t file, const char *name,
     void *firstp, void *lastp, int *countp)
 {
-       int error;
 
-       sx_slock(&kld_sx);
-       error = linker_file_lookup_set_locked(file, name, firstp, lastp,
-           countp);
-       sx_sunlock(&kld_sx);
-       return (error);
+       sx_assert(&kld_sx, SA_LOCKED);
+       return (LINKER_LOOKUP_SET(file, name, firstp, lastp, countp));
 }
 
 /*
@@ -1487,8 +1469,8 @@ linker_preload(void *arg)
        /*
         * First get a list of stuff in the kernel.
         */
-       if (linker_file_lookup_set_locked(linker_kernel_file, MDT_SETNAME,
-           &start, &stop, NULL) == 0)
+       if (linker_file_lookup_set(linker_kernel_file, MDT_SETNAME, &start,
+           &stop, NULL) == 0)
                linker_addmodules(linker_kernel_file, start, stop, 1);
 
        /*
@@ -1497,7 +1479,7 @@ linker_preload(void *arg)
         */
 restart:
        TAILQ_FOREACH(lf, &loaded_files, loaded) {
-               error = linker_file_lookup_set_locked(lf, MDT_SETNAME, &start,
+               error = linker_file_lookup_set(lf, MDT_SETNAME, &start,
                    &stop, NULL);
                /*
                 * First, look to see if we would successfully link with this
@@ -1591,7 +1573,7 @@ restart:
                                panic("cannot add dependency");
                }
                lf->userrefs++; /* so we can (try to) kldunload it */
-               error = linker_file_lookup_set_locked(lf, MDT_SETNAME, &start,
+               error = linker_file_lookup_set(lf, MDT_SETNAME, &start,
                    &stop, NULL);
                if (!error) {
                        for (mdp = start; mdp < stop; mdp++) {
@@ -1628,7 +1610,7 @@ restart:
                        goto fail;
                }
                linker_file_register_modules(lf);
-               if (linker_file_lookup_set_locked(lf, "sysinit_set", &si_start,
+               if (linker_file_lookup_set(lf, "sysinit_set", &si_start,
                    &si_stop, NULL) == 0)
                        sysinit_add(si_start, si_stop);
                linker_file_register_sysctls(lf);
@@ -2060,7 +2042,7 @@ linker_load_dependencies(linker_file_t l
                if (error)
                        return (error);
        }
-       if (linker_file_lookup_set_locked(lf, MDT_SETNAME, &start, &stop,
+       if (linker_file_lookup_set(lf, MDT_SETNAME, &start, &stop,
            &count) != 0)
                return (0);
        for (mdp = start; mdp < stop; mdp++) {
_______________________________________________
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