NVIDIA driver 495.46

No idea what has changed. The changelog matches the one for the previous driver.

Download.

Ran diff on it.

Added the official support for:

+ NVIDIA T1000 8GB                                 1FF0 1028 1612  J
+ NVIDIA T1000 8GB                                 1FF0 103C 1612  J
+ NVIDIA T1000 8GB                                 1FF0 10DE 1612  J
+ NVIDIA T1000 8GB                                 1FF0 17AA 1612  J
+ NVIDIA T400 4GB                                  1FF2 1028 1613  J
+ NVIDIA T400 4GB                                  1FF2 103C 1613  J
+ NVIDIA T400 4GB                                  1FF2 10DE 1613  J
+ NVIDIA T400 4GB                                  1FF2 17AA 1613  J
+ NVIDIA RTX A4500                                 2232 1028 163C  K
+ NVIDIA RTX A4500                                 2232 103C 163C  K
+ NVIDIA RTX A4500                                 2232 10DE 163C  K
+ NVIDIA RTX A4500                                 2232 17AA 163C  K
+ NVIDIA RTX A2000 12GB                            2571 1028 1611  K
+ NVIDIA RTX A2000 12GB                            2571 103C 1611  K
+ NVIDIA RTX A2000 12GB                            2571 10DE 1611  K
+ NVIDIA RTX A2000 12GB                            2571 17AA 1611  K
+ NVIDIA A2                                        25B6 10DE 157E  K

There’s a small change in nv-dma.c:

--- a/NVIDIA-Linux-x86_64-495.44/kernel/nvidia/nv-dma.c
+++ b/NVIDIA-Linux-x86_64-495.46/kernel/nvidia/nv-dma.c
@@ -224,10 +224,13 @@ NV_STATUS nv_map_dma_map_scatterlist(nv_dma_map_t *dma_map)

     NV_FOR_EACH_DMA_SUBMAP(dma_map, submap, i)
     {
-        submap->sg_map_count = dma_map_sg(dma_map->dev,
-                submap->sgt.sgl,
-                submap->sgt.orig_nents,
-                DMA_BIDIRECTIONAL);
+        /* Imported SGTs will have already been mapped by the exporter. */
+        submap->sg_map_count = submap->imported ?
+            submap->sgt.orig_nents :
+            dma_map_sg(dma_map->dev,
+                       submap->sgt.sgl,
+                       submap->sgt.orig_nents,
+                       DMA_BIDIRECTIONAL);
         if (submap->sg_map_count == 0)
         {
             status = NV_ERR_OPERATING_SYSTEM;
@@ -254,6 +257,13 @@ void nv_unmap_dma_map_scatterlist(nv_dma_map_t *dma_map)
         {
             break;
         }
+
+        if (submap->imported)
+        {
+            /* Imported SGTs will be unmapped by the exporter. */
+            continue;
+        }
+
         dma_unmap_sg(dma_map->dev, submap->sgt.sgl,
                 submap->sgt.orig_nents,
                 DMA_BIDIRECTIONAL);

In short it’s safe not to update.

1 Like

Are you sure? A small unannounced change could be security-related.

Without context, this kind of looks like a double free-type issue.

There have been no CVEs related to Linux NVIDIA drivers published recently.

CVEs tend to be reserved but the details hidden until a fix has been released and made available for deployment for a little time. This said, I have no proof that this is a security fix, but the style of release tends to be associated with one.

On my box, with a RTX 2600 Super, and having had zero trouble with nVidia drivers or upgrades, 495.46 kept me from my desktop, and I had to downgrade all the files to 495.44 in order to have a working system. Fortunately, I was running EndeavourOS, and Arch includes a powerful downgrade command.

I would arrive at the login screen, enter my password, and be returned to the login screen. The downgrade was necessary.

1 Like

That’s weird.

Are you sure you didn’t upgrade some other packages in the meanwhile?

Hello community.-

I have the same issue @user119940 described, when i update form 495.44 to 495.46 even 495.46-7 i have problems loging to my MATE desktop on Arch Linux, i just type my password and i get a loop, then i type again the password and it returns me to login again. Lots of things have been upgraded, between them Linux Kernel, but i dont know the reason for my problem. I have a NVIDIA Geforce GTX 1050 Ti graphics card