aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/scompress.c29
-rw-r--r--include/crypto/internal/scompress.h3
2 files changed, 32 insertions, 0 deletions
diff --git a/crypto/scompress.c b/crypto/scompress.c
index 6b048b36312d..ae1d3cf209e4 100644
--- a/crypto/scompress.c
+++ b/crypto/scompress.c
@@ -353,5 +353,34 @@ int crypto_unregister_scomp(struct scomp_alg *alg)
353} 353}
354EXPORT_SYMBOL_GPL(crypto_unregister_scomp); 354EXPORT_SYMBOL_GPL(crypto_unregister_scomp);
355 355
356int crypto_register_scomps(struct scomp_alg *algs, int count)
357{
358 int i, ret;
359
360 for (i = 0; i < count; i++) {
361 ret = crypto_register_scomp(&algs[i]);
362 if (ret)
363 goto err;
364 }
365
366 return 0;
367
368err:
369 for (--i; i >= 0; --i)
370 crypto_unregister_scomp(&algs[i]);
371
372 return ret;
373}
374EXPORT_SYMBOL_GPL(crypto_register_scomps);
375
376void crypto_unregister_scomps(struct scomp_alg *algs, int count)
377{
378 int i;
379
380 for (i = count - 1; i >= 0; --i)
381 crypto_unregister_scomp(&algs[i]);
382}
383EXPORT_SYMBOL_GPL(crypto_unregister_scomps);
384
356MODULE_LICENSE("GPL"); 385MODULE_LICENSE("GPL");
357MODULE_DESCRIPTION("Synchronous compression type"); 386MODULE_DESCRIPTION("Synchronous compression type");
diff --git a/include/crypto/internal/scompress.h b/include/crypto/internal/scompress.h
index 3fda3c5655a0..ccad9b2c9bd6 100644
--- a/include/crypto/internal/scompress.h
+++ b/include/crypto/internal/scompress.h
@@ -133,4 +133,7 @@ int crypto_register_scomp(struct scomp_alg *alg);
133 */ 133 */
134int crypto_unregister_scomp(struct scomp_alg *alg); 134int crypto_unregister_scomp(struct scomp_alg *alg);
135 135
136int crypto_register_scomps(struct scomp_alg *algs, int count);
137void crypto_unregister_scomps(struct scomp_alg *algs, int count);
138
136#endif 139#endif