The Linxu 6.12 kernel version is now in Debian Testing, and will be the new Long-Term Stable kernel as it was the last kernel released in 2024. As a result, many Linux distributions will be upgrading to it soon, if they have not done so already (as in the case of Debian).
The failure appears to be due to a change in the function prototype of write_end() address operations function between 6.11 and 6.12:
/var/lib/dkms/parallels-tools/20.1.2.55742/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c:930:27: error: initialization of 'int (*)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct folio *, void *)' {aka 'int (*)(struct file *, struct address_space *, long long int, unsigned int, unsigned int, struct folio *, void *)'} from incompatible pointer type 'int (*)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *)' {aka 'int (*)(struct file *, struct address_space *, long long int,, unsigned int, unsigned int, struct page *, void *)'} [-Wincompatible-pointer-types]
930 | .write_end = prlfs_write_end,
| ^~~~~~~~~~~~~~~
If you are using Debian Testing, the short-term workaround is to run "sudo apt remove linux-image-6.12.6-arm64 linux-headers-6.12.6-arm64 linux-image-arm64 linux-headers-arm64". This will remove the new 6.12 Linux, to prevent you from rebooting into the 6.12 kernel since it won't have Parallels Tools support. Once Parallels updates to a new version that has 6.12 LTS support, then run "sudo apt install linux-image-arm64 linux-headers-arm64" so you can get back on the Linux kernel update track. In the short-term staying on the 6.11.10 or 6.11.4 kernel means you won't get any later security fixes, but hopefully Parallels will get this fixed soon rather than later. (Or perhaps some Linux kernel hacker will have the time to figure out how to bludgeon prl_fs/inode.c so it will compile on the latest Linux kernel.....)
The failure appears to be due to a change in the function prototype of write_end() address operations function between 6.11 and 6.12:
/var/lib/dkms/parallels-tools/20.1.2.55742/build/prl_fs/SharedFolders/Guest/Linux/prl_fs/inode.c:930:27: error: initialization of 'int (*)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct folio *, void *)' {aka 'int (*)(struct file *, struct address_space *, long long int, unsigned int, unsigned int, struct folio *, void *)'} from incompatible pointer type 'int (*)(struct file *, struct address_space *, loff_t, unsigned int, unsigned int, struct page *, void *)' {aka 'int (*)(struct file *, struct address_space *, long long int,, unsigned int, unsigned int, struct page *, void *)'} [-Wincompatible-pointer-types]
930 | .write_end = prlfs_write_end,
| ^~~~~~~~~~~~~~~
If you are using Debian Testing, the short-term workaround is to run "sudo apt remove linux-image-6.12.6-arm64 linux-headers-6.12.6-arm64 linux-image-arm64 linux-headers-arm64". This will remove the new 6.12 Linux, to prevent you from rebooting into the 6.12 kernel since it won't have Parallels Tools support. Once Parallels updates to a new version that has 6.12 LTS support, then run "sudo apt install linux-image-arm64 linux-headers-arm64" so you can get back on the Linux kernel update track. In the short-term staying on the 6.11.10 or 6.11.4 kernel means you won't get any later security fixes, but hopefully Parallels will get this fixed soon rather than later. (Or perhaps some Linux kernel hacker will have the time to figure out how to bludgeon prl_fs/inode.c so it will compile on the latest Linux kernel.....)