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.
[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: dkms/openafs/ 1.8.4pre1/ build/src/ afs/LINUX/ osi_vfs. h:73:20: error: field ‘va_atime’ has incomplete type dkms/openafs/ 1.8.4pre1/ build/src/ afs/LINUX/ osi_vfs. h:74:20: error: field ‘va_mtime’ has incomplete type dkms/openafs/ 1.8.4pre1/ build/src/ afs/LINUX/ osi_vfs. h:75:20: error: field ‘va_ctime’ has incomplete type 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: dkms/openafs/ 1.8.4pre1/ build/src/ afs/LINUX/ osi_machdep. h:80:15: error: unknown type name ‘time_t’ 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: dkms/openafs/ 1.8.4pre1/ build/src/ afs/afs. h:310:5: error: unknown type name ‘time_t’ 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: dkms/openafs/ 1.8.4pre1/ build/src/ afs/afs_ prototypes. h:957:58: error: unknown type name ‘time_t’; did you mean ‘ktime_t’? nsForPioctl( struct tokenJar *, time_t, dkms/openafs/ 1.8.4pre1/ build/src/ libafs/ MODLOAD- 5.8.0-25- generic- SP/sha256- kernel. c:34: dkms/openafs/ 1.8.4pre1/ build/src/ crypto/ hcrypto/ kernel/ config. h: In function ‘gettimeofday’: dkms/openafs/ 1.8.4pre1/ build/src/ crypto/ hcrypto/ kernel/ config. h:102:35: error: dereferencing pointer to incomplete type ‘struct timeval’
/var/lib/
73 | struct timeval va_atime;
| ^~~~~~~~
/var/lib/
74 | struct timeval va_mtime;
| ^~~~~~~~
/var/lib/
75 | struct timeval va_ctime;
| ^~~~~~~~
In file included from /var/lib/
/var/lib/
80 | static inline time_t osi_Time(void) {
| ^~~~~~
In file included from /var/lib/
/var/lib/
310 | time_t timeout; /* data expire time, if non-zero */
| ^~~~~~
In file included from /var/lib/
/var/lib/
957 | extern int afs_ExtractToke
| ^~~~~~
| ktime_t
In file included from /var/lib/
/var/lib/
/var/lib/
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.