All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions
@ 2021-12-10 14:30 Andy Shevchenko
  2021-12-16 15:03 ` Andy Shevchenko
  2021-12-17  8:39 ` Herbert Xu
  0 siblings, 2 replies; 5+ messages in thread
From: Andy Shevchenko @ 2021-12-10 14:30 UTC (permalink / raw)
  To: Herbert Xu, Ard Biesheuvel, Eric Biggers, Andy Shevchenko,
	linux-crypto, linux-kernel
  Cc: David S. Miller, Steffen Klassert

When kernel.h is used in the headers it adds a lot into dependency hell,
especially when there are circular dependencies are involved.

Replace kernel.h inclusion with the list of what is really being used.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 include/crypto/aead.h        | 4 +++-
 include/crypto/algapi.h      | 5 ++++-
 include/crypto/blake2b.h     | 1 -
 include/crypto/blake2s.h     | 2 +-
 include/crypto/cryptd.h      | 3 ++-
 include/crypto/engine.h      | 6 +++++-
 include/crypto/pcrypt.h      | 2 +-
 include/crypto/scatterwalk.h | 3 ++-
 include/crypto/skcipher.h    | 6 +++++-
 9 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/include/crypto/aead.h b/include/crypto/aead.h
index 5af914c1ab8e..14db3bee0519 100644
--- a/include/crypto/aead.h
+++ b/include/crypto/aead.h
@@ -8,9 +8,10 @@
 #ifndef _CRYPTO_AEAD_H
 #define _CRYPTO_AEAD_H
 
+#include <linux/container_of.h>
 #include <linux/crypto.h>
-#include <linux/kernel.h>
 #include <linux/slab.h>
+#include <linux/types.h>
 
 /**
  * DOC: Authenticated Encryption With Associated Data (AEAD) Cipher API
@@ -73,6 +74,7 @@
  */
 
 struct crypto_aead;
+struct scatterlist;
 
 /**
  *	struct aead_request - AEAD request
diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
index 5f6841c73e5a..f76ec723ceae 100644
--- a/include/crypto/algapi.h
+++ b/include/crypto/algapi.h
@@ -7,9 +7,11 @@
 #ifndef _CRYPTO_ALGAPI_H
 #define _CRYPTO_ALGAPI_H
 
+#include <linux/align.h>
 #include <linux/crypto.h>
+#include <linux/kconfig.h>
 #include <linux/list.h>
-#include <linux/kernel.h>
+#include <linux/types.h>
 
 /*
  * Maximum values for blocksize and alignmask, used to allocate
@@ -24,6 +26,7 @@
 struct crypto_aead;
 struct crypto_instance;
 struct module;
+struct notifier_block;
 struct rtattr;
 struct seq_file;
 struct sk_buff;
diff --git a/include/crypto/blake2b.h b/include/crypto/blake2b.h
index 18875f16f8ca..0c0176285349 100644
--- a/include/crypto/blake2b.h
+++ b/include/crypto/blake2b.h
@@ -5,7 +5,6 @@
 
 #include <linux/bug.h>
 #include <linux/types.h>
-#include <linux/kernel.h>
 #include <linux/string.h>
 
 enum blake2b_lengths {
diff --git a/include/crypto/blake2s.h b/include/crypto/blake2s.h
index bc3fb59442ce..df3c6c2f9553 100644
--- a/include/crypto/blake2s.h
+++ b/include/crypto/blake2s.h
@@ -7,8 +7,8 @@
 #define _CRYPTO_BLAKE2S_H
 
 #include <linux/bug.h>
+#include <linux/kconfig.h>
 #include <linux/types.h>
-#include <linux/kernel.h>
 #include <linux/string.h>
 
 enum blake2s_lengths {
diff --git a/include/crypto/cryptd.h b/include/crypto/cryptd.h
index 23169f4d87e6..796d986e58e1 100644
--- a/include/crypto/cryptd.h
+++ b/include/crypto/cryptd.h
@@ -13,7 +13,8 @@
 #ifndef _CRYPTO_CRYPT_H
 #define _CRYPTO_CRYPT_H
 
-#include <linux/kernel.h>
+#include <linux/types.h>
+
 #include <crypto/aead.h>
 #include <crypto/hash.h>
 #include <crypto/skcipher.h>
diff --git a/include/crypto/engine.h b/include/crypto/engine.h
index fd4f2fa23f51..ae133e98d813 100644
--- a/include/crypto/engine.h
+++ b/include/crypto/engine.h
@@ -9,8 +9,10 @@
 
 #include <linux/crypto.h>
 #include <linux/list.h>
-#include <linux/kernel.h>
 #include <linux/kthread.h>
+#include <linux/spinlock.h>
+#include <linux/types.h>
+
 #include <crypto/algapi.h>
 #include <crypto/aead.h>
 #include <crypto/akcipher.h>
@@ -18,6 +20,8 @@
 #include <crypto/skcipher.h>
 #include <crypto/kpp.h>
 
+struct device;
+
 #define ENGINE_NAME_LEN	30
 /*
  * struct crypto_engine - crypto hardware engine
diff --git a/include/crypto/pcrypt.h b/include/crypto/pcrypt.h
index b9bc3436196a..234d7cf3cf5e 100644
--- a/include/crypto/pcrypt.h
+++ b/include/crypto/pcrypt.h
@@ -9,8 +9,8 @@
 #ifndef _CRYPTO_PCRYPT_H
 #define _CRYPTO_PCRYPT_H
 
+#include <linux/container_of.h>
 #include <linux/crypto.h>
-#include <linux/kernel.h>
 #include <linux/padata.h>
 
 struct pcrypt_request {
diff --git a/include/crypto/scatterwalk.h b/include/crypto/scatterwalk.h
index 7af08174a721..6407b4b61350 100644
--- a/include/crypto/scatterwalk.h
+++ b/include/crypto/scatterwalk.h
@@ -12,8 +12,9 @@
 #define _CRYPTO_SCATTERWALK_H
 
 #include <crypto/algapi.h>
+
 #include <linux/highmem.h>
-#include <linux/kernel.h>
+#include <linux/mm.h>
 #include <linux/scatterlist.h>
 
 static inline void scatterwalk_crypto_chain(struct scatterlist *head,
diff --git a/include/crypto/skcipher.h b/include/crypto/skcipher.h
index ef0fc9ed4342..39f5b67c3069 100644
--- a/include/crypto/skcipher.h
+++ b/include/crypto/skcipher.h
@@ -8,9 +8,13 @@
 #ifndef _CRYPTO_SKCIPHER_H
 #define _CRYPTO_SKCIPHER_H
 
+#include <linux/container_of.h>
 #include <linux/crypto.h>
-#include <linux/kernel.h>
 #include <linux/slab.h>
+#include <linux/string.h>
+#include <linux/types.h>
+
+struct scatterlist;
 
 /**
  *	struct skcipher_request - Symmetric key cipher request
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions
  2021-12-10 14:30 [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions Andy Shevchenko
@ 2021-12-16 15:03 ` Andy Shevchenko
  2021-12-16 17:14   ` Ard Biesheuvel
  2021-12-17  2:05   ` Herbert Xu
  2021-12-17  8:39 ` Herbert Xu
  1 sibling, 2 replies; 5+ messages in thread
From: Andy Shevchenko @ 2021-12-16 15:03 UTC (permalink / raw)
  To: Herbert Xu, Ard Biesheuvel, Eric Biggers, linux-crypto, linux-kernel
  Cc: David S. Miller, Steffen Klassert

On Fri, Dec 10, 2021 at 04:30:09PM +0200, Andy Shevchenko wrote:
> When kernel.h is used in the headers it adds a lot into dependency hell,
> especially when there are circular dependencies are involved.
> 
> Replace kernel.h inclusion with the list of what is really being used.

Any comments on this?

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions
  2021-12-16 15:03 ` Andy Shevchenko
@ 2021-12-16 17:14   ` Ard Biesheuvel
  2021-12-17  2:05   ` Herbert Xu
  1 sibling, 0 replies; 5+ messages in thread
From: Ard Biesheuvel @ 2021-12-16 17:14 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Herbert Xu, Eric Biggers, Linux Crypto Mailing List,
	Linux Kernel Mailing List, David S. Miller, Steffen Klassert

On Thu, 16 Dec 2021 at 16:05, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Fri, Dec 10, 2021 at 04:30:09PM +0200, Andy Shevchenko wrote:
> > When kernel.h is used in the headers it adds a lot into dependency hell,
> > especially when there are circular dependencies are involved.
> >
> > Replace kernel.h inclusion with the list of what is really being used.
>
> Any comments on this?
>

I am not crazy about the need for forward declarations of struct
scatterlist and struct device. Other than that, I think this is an
improvement

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions
  2021-12-16 15:03 ` Andy Shevchenko
  2021-12-16 17:14   ` Ard Biesheuvel
@ 2021-12-17  2:05   ` Herbert Xu
  1 sibling, 0 replies; 5+ messages in thread
From: Herbert Xu @ 2021-12-17  2:05 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Ard Biesheuvel, Eric Biggers, linux-crypto, linux-kernel,
	David S. Miller, Steffen Klassert

On Thu, Dec 16, 2021 at 05:03:16PM +0200, Andy Shevchenko wrote:
> On Fri, Dec 10, 2021 at 04:30:09PM +0200, Andy Shevchenko wrote:
> > When kernel.h is used in the headers it adds a lot into dependency hell,
> > especially when there are circular dependencies are involved.
> > 
> > Replace kernel.h inclusion with the list of what is really being used.
> 
> Any comments on this?

I'm happy with this patch and will be applying it.

Thanks,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions
  2021-12-10 14:30 [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions Andy Shevchenko
  2021-12-16 15:03 ` Andy Shevchenko
@ 2021-12-17  8:39 ` Herbert Xu
  1 sibling, 0 replies; 5+ messages in thread
From: Herbert Xu @ 2021-12-17  8:39 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Ard Biesheuvel, Eric Biggers, linux-crypto, linux-kernel,
	David S. Miller, Steffen Klassert

On Fri, Dec 10, 2021 at 04:30:09PM +0200, Andy Shevchenko wrote:
> When kernel.h is used in the headers it adds a lot into dependency hell,
> especially when there are circular dependencies are involved.
> 
> Replace kernel.h inclusion with the list of what is really being used.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  include/crypto/aead.h        | 4 +++-
>  include/crypto/algapi.h      | 5 ++++-
>  include/crypto/blake2b.h     | 1 -
>  include/crypto/blake2s.h     | 2 +-
>  include/crypto/cryptd.h      | 3 ++-
>  include/crypto/engine.h      | 6 +++++-
>  include/crypto/pcrypt.h      | 2 +-
>  include/crypto/scatterwalk.h | 3 ++-
>  include/crypto/skcipher.h    | 6 +++++-
>  9 files changed, 23 insertions(+), 9 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-12-17  8:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-10 14:30 [PATCH v1 1/1] crypto: Replace kernel.h with the necessary inclusions Andy Shevchenko
2021-12-16 15:03 ` Andy Shevchenko
2021-12-16 17:14   ` Ard Biesheuvel
2021-12-17  2:05   ` Herbert Xu
2021-12-17  8:39 ` Herbert Xu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.