]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: reject enabling is referencing module fails and do not count it
authorKris Van Hees <kris.van.hees@oracle.com>
Thu, 17 Oct 2013 09:42:04 +0000 (05:42 -0400)
committerKris Van Hees <kris.van.hees@oracle.com>
Thu, 17 Oct 2013 09:42:04 +0000 (05:42 -0400)
Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
dtrace/include/dtrace/provider.h

index 6bc7c6b559aed696f94b8955801ea7ae0fcb4c9b..c5a3a4f252d62e1d8bcb94329f888f7b6a1ba2da 100644 (file)
@@ -809,11 +809,12 @@ extern void dtrace_probe(dtrace_id_t, uintptr_t, uintptr_t, uintptr_t,
   {                                                                    \
        int             rc = 0;                                         \
                                                                        \
-       if (name##_refc++ == 0) {                                       \
-               if ((rc = try_module_get(THIS_MODULE)) == 0)            \
-                       return 0;                                       \
+       if (name##_refc == 0) {                                         \
+               if (!try_module_get(THIS_MODULE))                       \
+                       return -EAGAIN;                                 \
        }                                                               \
                                                                        \
+       name##_refc++;                                                  \
        if ((rc  = _##name##_enable(arg, id, parg)) != 0) {             \
                if (--name##_refc == 0)                                 \
                        module_put(THIS_MODULE);                        \