Great! When I`m with kernel 16.0.4 and use DBus interfaces to query device property 'ata device', the property data cant be accessed. Also when i want to get access to ata s.m.a.r.t. data via DBus interfaces there no access. But with 6.10.5 after Revert "ata: libata-scsi: Honor the D_SENSE bit for CK_COND=1 and no error" (Niklas Cassel) the problems disappeared.
In short how to : F39 & nv.drv. 550.40.07 & kernel 6.7.3-200.fc39.x86_64
Source files of 550.40.07 nv.drv are located at /var/lib/dkms/nvidia/550.40.07/sources
Here three files must be patched // as sudo
1) nv-linux.h located in common/inc
Go to line 2076 before end of file.Press enter.Copy this piece of code & save changes:
'#if defined(CONFIG_HAVE_ARCH_PFN_VALID) || LINUX_VERSION_CODE < KERNEL_VERSION(6,1,76)
'# define nv_pfn_valid pfn_valid
'#else
'// pre-6.1.76 kernel pfn_valid version without GPL rcu_read_lock/unlock()
static inline int nv_pfn_valid(unsigned long pfn)
{
struct mem_section *ms;
if (PHYS_PFN(PFN_PHYS(pfn)) != pfn)
return 0;
if (pfn_to_section_nr(pfn) >= NR_MEM_SECTIONS)
return 0;
ms = __pfn_to_section(pfn);
if (!valid_section(ms))
return 0;
return early_section(ms) || pfn_section_valid(ms, pfn);
}
'#endif
2) nv-mmap.c & os-mlock.c located in nvidia
2.1)Open nv-mmap.c & replace line 585 with : (nv_pfn_valid(PFN_DOWN(mmap_start))))
Save changes.
2.2) open os-mlock.c & replace - line 116 with : (!nv_pfn_valid(pfn)))
& line 190 with : if (nv_pfn_valid(pfn))
Save changes.
Now go to /var/lib/dkms/nvidia/550.40.07/sources & run make command
Copy the builed files nvidia*.ko to /var/lib/dkms/nvidia/550.40.07/6.7.3-200.fc39.x86_64/x86_64/modile
If directories 6.7.3-200.fc39.x86_64/x86_64/modile do`t exist create them.
Rebuild initramfs.
Reboot.
That's it.
I confirm that patch for nvidia drivers exist and works for me. Fedora 39,GTX 1060,kernel 6.7.3,drivers version 545.29.06
@robatino : I noticed the "problem" when I switched from kernel 6.9.11 to 6.10.3 on Fedora 40. What happens between the kernel(in case of the the presence of the (S)ATA device) and DBus I could not comment on prima vista. What I am 100% sure of is that without changing anything else, after this kernel revert when I request access to a DBus object(who I might to interpret as of type UDisksDriveAta) to read data, the pointers I receive are no longer null (receiving null pointers with an available device is a bug)
Thanks for the link, I'll take a look!