Package: openafs-modules-dkms
Version: 1.8.6-5
Severity: normal
X-Debbugs-Cc: witold.bary...@gmail.com

I am pretty sure this is know issue (I was expiriencing it for probably 2
years or more), but I didn't found any open issues to track this problem.


...
checking whether kmap_atomic takes no km_type argument... no
...
...
Building in directory: MODLOAD-5.10.0-4-rt-amd64-SP
make[2]: Entering directory 
'/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP'
...
...
  CC [M]  
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.o
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:
 In function ‘afs_bypass_copy_page’:
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:311:31:
 error: ‘KM_USER0’ undeclared (first use in this function)
  311 |     address = kmap_atomic(pp, KM_USER0);
      |                               ^~~~~~~~
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:311:31:
 note: each undeclared identifier is reported only once for each function it 
appears in
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:311:15:
 error: too many arguments to function ‘kmap_atomic’
  311 |     address = kmap_atomic(pp, KM_USER0);
      |               ^~~~~~~~~~~
In file included from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/highmem.h:14,
                 from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/pagemap.h:11,
                 from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/blkdev.h:14,
                 from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/backing-dev.h:15,
                 from 
/var/lib/dkms/openafs/1.8.6/build/src/afs/sysincludes.h:126,
                 from 
/var/lib/dkms/openafs/1.8.6/build/src/afs/afs_bypasscache.h:67,
                 from 
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:64:
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/highmem-internal.h:179:21:
 note: declared here
  179 | static inline void *kmap_atomic(struct page *page)
      |                     ^~~~~~~~~~~
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:321:36:
 error: macro "kunmap_atomic" passed 2 arguments, but takes just 1
  321 |     kunmap_atomic(address, KM_USER0);
      |                                    ^
In file included from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/highmem.h:14,
                 from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/pagemap.h:11,
                 from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/blkdev.h:14,
                 from 
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/backing-dev.h:15,
                 from 
/var/lib/dkms/openafs/1.8.6/build/src/afs/sysincludes.h:126,
                 from 
/var/lib/dkms/openafs/1.8.6/build/src/afs/afs_bypasscache.h:67,
                 from 
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:64:
/usr/src/linux-headers-5.10.0-4-common-rt/include/linux/highmem-internal.h:210: 
note: macro "kunmap_atomic" defined here
  210 | #define kunmap_atomic(__addr)     \
      | 
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.c:321:5:
 error: ‘kunmap_atomic’ undeclared (first use in this function); did you mean 
‘kmap_atomic’?
  321 |     kunmap_atomic(address, KM_USER0);
      |     ^~~~~~~~~~~~~
      |     kmap_atomic
make[5]: *** 
[/usr/src/linux-headers-5.10.0-4-common-rt/scripts/Makefile.build:284: 
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP/afs_bypasscache.o]
 Error 1
make[4]: *** [/usr/src/linux-headers-5.10.0-4-common-rt/Makefile:1813: 
/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP] 
Error 2
make[3]: *** [/usr/src/linux-headers-5.10.0-4-common-rt/Makefile:185: 
__sub-make] Error 2
make[3]: Leaving directory '/usr/src/linux-headers-5.10.0-4-rt-amd64'
FAILURE: make exit code 2
make[2]: *** [Makefile.afs:279: openafs.ko] Error 1
make[2]: Leaving directory 
'/var/lib/dkms/openafs/1.8.6/build/src/libafs/MODLOAD-5.10.0-4-rt-amd64-SP'
make[1]: *** [Makefile:186: linux_compdirs] Error 2
make[1]: Leaving directory '/var/lib/dkms/openafs/1.8.6/build/src/libafs'
make: *** [Makefile:15: all] Error 2


The upstream code, as well the one shipped in Debian -dkms package, does
have provisions to detect this issue, and work, but it doesn't. Here is a
relevant part:


#if !defined(UKERNEL)
# if defined(KMAP_ATOMIC_TAKES_NO_KM_TYPE)
    address = kmap_atomic(pp);
# else
    address = kmap_atomic(pp, KM_USER0);
# endif
#else
    address = pp;
#endif
    memcpy(address + pageoff, (char *)(rxiov[iovno].iov_base) + iovoff, dolen);
#if !defined(UKERNEL)
# if defined(KMAP_ATOMIC_TAKES_NO_KM_TYPE)
    kunmap_atomic(address);
# else
    kunmap_atomic(address, KM_USER0);
# endif
#endif


The kmap_atomic signature depends if the kernel is compiled with HIGHMEM
support AFAIK, which is commonly disabled on RT kernels for various
reasons.

No sure, why the KMAP_ATOMIC_TAKES_NO_KM_TYPE is defined, as the
configure should detect this problem.

Upstream m4 macros for this are here:

http://git.openafs.org/?p=openafs.git;a=blob;f=src/cf/linux-test4.m4;h=f7699cec31ce23399294adfde2c72f6196c6a105;hb=HEAD#l714

The generated configure distributed with openafs-modules-dkms does look
to have code related to this too, so I am not sure why it doesn't
compile, when it should.


It is easy to reproduce, just install the -rt kernel packages (and
headers), no need to boot it.

Regards,
Witold


-- System Information:
Debian Release: bullseye/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-3-amd64 (SMP w/32 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_DIE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages openafs-modules-dkms depends on:
ii  dkms       2.8.4-2
ii  libc6-dev  2.31-9
ii  perl       5.32.1-3

Versions of packages openafs-modules-dkms recommends:
ii  openafs-client  1.8.6-5

openafs-modules-dkms suggests no packages.

-- no debconf information

Reply via email to