diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
index c9662e2..7153a50 100644
--- a/crypto/pcrypt.c
+++ b/crypto/pcrypt.c
@@ -25,9 +25,11 @@
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/notifier.h>
+#include <linux/kobject.h>
 #include <crypto/pcrypt.h>
 
 struct pcrypt_instance {
+	const char *name;
 	struct padata_instance *pinst;
 	struct workqueue_struct *wq;
 
@@ -55,7 +57,7 @@
 
 static struct pcrypt_instance pencrypt;
 static struct pcrypt_instance pdecrypt;
-
+static struct kset           *pcrypt_kset;
 
 struct pcrypt_instance_ctx {
 	struct crypto_spawn spawn;
@@ -429,12 +431,25 @@
 	return 0;
 }
 
+static int pcrypt_sysfs_add(struct padata_instance *pinst, const char *name)
+{
+	int ret;
+
+	pinst->kobj.kset = pcrypt_kset;
+	ret = kobject_add(&pinst->kobj, NULL, name);
+	if (!ret)
+		kobject_uevent(&pinst->kobj, KOBJ_ADD);
+
+	return ret;
+}
+
 static int __pcrypt_init_instance(struct pcrypt_instance *pcrypt,
 				  const char *name)
 {
 	int ret = -ENOMEM;
 	struct pcrypt_cpumask *mask;
 
+	pcrypt->name = name;
 	pcrypt->wq = create_workqueue(name);
 	if (!pcrypt->wq)
 		goto err;
@@ -459,7 +474,13 @@
 	if (ret)
 		goto err_free_cpumask;
 
+	ret = pcrypt_sysfs_add(pcrypt->pinst, name);
+	if (ret)
+		goto err_unregister_notifier;
+
 	return ret;
+err_unregister_notifier:
+	padata_unregister_cpumask_notifier(pcrypt->pinst, &pcrypt->nblock);
 err_free_cpumask:
 	free_cpumask_var(mask->mask);
 	kfree(mask);
@@ -473,6 +494,7 @@
 
 static void __pcrypt_deinit_instance(struct pcrypt_instance *pcrypt)
 {
+	kobject_put(&pcrypt->pinst->kobj);
 	free_cpumask_var(pcrypt->cb_cpumask->mask);
 	kfree(pcrypt->cb_cpumask);
 
@@ -491,11 +513,15 @@
 
 static int __init pcrypt_init(void)
 {
-	int err;
+	int err = -ENOMEM;
+
+	pcrypt_kset = kset_create_and_add("pcrypt", NULL, kernel_kobj);
+	if (!pcrypt_kset)
+		goto err;
 
 	err = __pcrypt_init_instance(&pencrypt, "pencrypt");
 	if (err)
-		goto err;
+		goto err_unreg_kset;
 
 	err = __pcrypt_init_instance(&pdecrypt, "pdecrypt");
 	if (err)
@@ -508,6 +534,8 @@
 
 err_deinit_pencrypt:
 	__pcrypt_deinit_instance(&pencrypt);
+err_unreg_kset:
+	kset_unregister(pcrypt_kset);
 err:
 	return err;
 }
@@ -517,6 +545,7 @@
 	__pcrypt_deinit_instance(&pencrypt);
 	__pcrypt_deinit_instance(&pdecrypt);
 
+	kset_unregister(pcrypt_kset);
 	crypto_unregister_template(&pcrypt_tmpl);
 }
 
