On Tue, Jul 18, 2017 at 10:49 AM, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, Jul 18, 2017 at 10:40:07AM +0200, Stephan Müller wrote: >> Am Dienstag, 18. Juli 2017, 10:30:14 CEST schrieb Greg Kroah-Hartman: >> >> Hi Greg, >> >> > > +typedef unsigned long long __u64; >> > > +typedef long long __s64; >> > >> > types.h already has these defines, don't re-typedef them again... >> >> The issue is that the C code is compiled without optimizations. Thus, the C >> code shall not depend on any other header file. > > That is very strange for a kernel file, I don't know what to say... > >> This issue was discussed during the inclusion of the Jitter RNG C code into >> the kernel. > > Ok, that was then, this is now, why not change it now? How does > including types.h change anything? I can see why the jitterentropy implementation avoids using kernel headers, the problem now is that part of it gets moved into a new header, and that already violates the original principle. >From my reading of the code, we could probably leave the structure definition in the crypto/jitterentropy.c, and have the statically allocated instance in the same file when CONFIG_LRNG is set, or provide a way to allocate an instance early (I assume you can't call jent_entropy_collector_alloc() here since you need the RNG long before kzalloc() works). Arnd