err = wait_for_completion_killable(&larval->completion);
        WARN_ON(err);
+       if (!err)
+               crypto_probing_notify(CRYPTO_MSG_ALG_LOADED, larval);
 
 out:
        crypto_larval_kill(&larval->alg);
 
                return cryptomgr_schedule_probe(data);
        case CRYPTO_MSG_ALG_REGISTER:
                return cryptomgr_schedule_test(data);
+       case CRYPTO_MSG_ALG_LOADED:
+               break;
        }
 
        return NOTIFY_DONE;
 
 #include <linux/rwsem.h>
 #include <linux/slab.h>
 
-/* Crypto notification events. */
-enum {
-       CRYPTO_MSG_ALG_REQUEST,
-       CRYPTO_MSG_ALG_REGISTER,
-};
-
 struct crypto_instance;
 struct crypto_template;
 
 void *crypto_alloc_tfm(const char *alg_name,
                       const struct crypto_type *frontend, u32 type, u32 mask);
 
-int crypto_register_notifier(struct notifier_block *nb);
-int crypto_unregister_notifier(struct notifier_block *nb);
 int crypto_probing_notify(unsigned long val, void *v);
 
 unsigned int crypto_alg_extsize(struct crypto_alg *alg);
 
 #endif
 }
 
+int crypto_register_notifier(struct notifier_block *nb);
+int crypto_unregister_notifier(struct notifier_block *nb);
+
+/* Crypto notification events. */
+enum {
+       CRYPTO_MSG_ALG_REQUEST,
+       CRYPTO_MSG_ALG_REGISTER,
+       CRYPTO_MSG_ALG_LOADED,
+};
+
 #endif /* _CRYPTO_ALGAPI_H */