Comment 0 for bug 1902581

Revision history for this message
Ian May (ian-may) wrote :

[Impact]

In file included from /var/lib/dkms/openafs/1.8.4pre1/build/src/afs/afsincludes.h:28,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/crypto/hcrypto/kernel/config.h:31,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/libafs/MODLOAD-5.8.0-25-generic-SP/sha256-kernel.c:34:
/var/lib/dkms/openafs/1.8.4pre1/build/src/afs/LINUX/osi_vfs.h:73:20: error: field ‘va_atime’ has incomplete type
   73 | struct timeval va_atime;
      | ^~~~~~~~
/var/lib/dkms/openafs/1.8.4pre1/build/src/afs/LINUX/osi_vfs.h:74:20: error: field ‘va_mtime’ has incomplete type
   74 | struct timeval va_mtime;
      | ^~~~~~~~
/var/lib/dkms/openafs/1.8.4pre1/build/src/afs/LINUX/osi_vfs.h:75:20: error: field ‘va_ctime’ has incomplete type
   75 | struct timeval va_ctime;
      | ^~~~~~~~
In file included from /var/lib/dkms/openafs/1.8.4pre1/build/src/afs/afs_osi.h:440,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/rx/rx_clock.h:46,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/rx/rx.h:57,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/afs/afsincludes.h:30,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/crypto/hcrypto/kernel/config.h:31,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/libafs/MODLOAD-5.8.0-25-generic-SP/sha256-kernel.c:34:
/var/lib/dkms/openafs/1.8.4pre1/build/src/afs/LINUX/osi_machdep.h:80:15: error: unknown type name ‘time_t’
   80 | static inline time_t osi_Time(void) {
      | ^~~~~~
In file included from /var/lib/dkms/openafs/1.8.4pre1/build/src/afs/afsincludes.h:48,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/crypto/hcrypto/kernel/config.h:31,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/libafs/MODLOAD-5.8.0-25-generic-SP/sha256-kernel.c:34:
/var/lib/dkms/openafs/1.8.4pre1/build/src/afs/afs.h:310:5: error: unknown type name ‘time_t’
  310 | time_t timeout; /* data expire time, if non-zero */
      | ^~~~~~
In file included from /var/lib/dkms/openafs/1.8.4pre1/build/src/afs/afsincludes.h:57,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/crypto/hcrypto/kernel/config.h:31,
                 from /var/lib/dkms/openafs/1.8.4pre1/build/src/libafs/MODLOAD-5.8.0-25-generic-SP/sha256-kernel.c:34:
/var/lib/dkms/openafs/1.8.4pre1/build/src/afs/afs_prototypes.h:957:58: error: unknown type name ‘time_t’; did you mean ‘ktime_t’?
  957 | extern int afs_ExtractTokensForPioctl(struct tokenJar *, time_t,
      | ^~~~~~
      | ktime_t
In file included from /var/lib/dkms/openafs/1.8.4pre1/build/src/libafs/MODLOAD-5.8.0-25-generic-SP/sha256-kernel.c:34:
/var/lib/dkms/openafs/1.8.4pre1/build/src/crypto/hcrypto/kernel/config.h: In function ‘gettimeofday’:
/var/lib/dkms/openafs/1.8.4pre1/build/src/crypto/hcrypto/kernel/config.h:102:35: error: dereferencing pointer to incomplete type ‘struct timeval’
  102 | {if (tp == NULL) return -1; tp->tv_sec = osi_Time(); tp->tv_usec = 0; return 0;}
      | ^~

[Test Case]

$ sudo apt install openafs-modules-dkms

[Fix]

Adding #if directives and changes from timeval to timespec where needed.

[Regression Potential]

The source code for the 5.4 kernel remains the same, so there is no regression potential. The new changes are all conditionals and they are all applied to the 5.8 kernel.