]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
firewire: nosy: Fix dma_free_coherent() size
authorThomas Fourier <fourier.thomas@gmail.com>
Tue, 16 Dec 2025 16:54:18 +0000 (17:54 +0100)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 26 Dec 2025 13:04:03 +0000 (22:04 +0900)
It looks like the buffer allocated and mapped in add_card() is done
with size RCV_BUFFER_SIZE which is 16 KB and 4KB.

Fixes: 286468210d83 ("firewire: new driver: nosy - IEEE 1394 traffic sniffer")
Co-developed-by: Thomas Fourier <fourier.thomas@gmail.com>
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
Co-developed-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/20251216165420.38355-2-fourier.thomas@gmail.com
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
drivers/firewire/nosy.c

index ea31ac7ac1ca931a569af239dbaa2052448e8df5..e59053738a432a761a4a8f29882d246f30f2adf5 100644 (file)
@@ -36,6 +36,8 @@
 
 static char driver_name[] = KBUILD_MODNAME;
 
+#define RCV_BUFFER_SIZE (16 * 1024)
+
 /* this is the physical layout of a PCL, its size is 128 bytes */
 struct pcl {
        __le32 next;
@@ -517,16 +519,14 @@ remove_card(struct pci_dev *dev)
                          lynx->rcv_start_pcl, lynx->rcv_start_pcl_bus);
        dma_free_coherent(&lynx->pci_device->dev, sizeof(struct pcl),
                          lynx->rcv_pcl, lynx->rcv_pcl_bus);
-       dma_free_coherent(&lynx->pci_device->dev, PAGE_SIZE, lynx->rcv_buffer,
-                         lynx->rcv_buffer_bus);
+       dma_free_coherent(&lynx->pci_device->dev, RCV_BUFFER_SIZE,
+                         lynx->rcv_buffer, lynx->rcv_buffer_bus);
 
        iounmap(lynx->registers);
        pci_disable_device(dev);
        lynx_put(lynx);
 }
 
-#define RCV_BUFFER_SIZE (16 * 1024)
-
 static int
 add_card(struct pci_dev *dev, const struct pci_device_id *unused)
 {
@@ -680,7 +680,7 @@ fail_deallocate_buffers:
                dma_free_coherent(&lynx->pci_device->dev, sizeof(struct pcl),
                                  lynx->rcv_pcl, lynx->rcv_pcl_bus);
        if (lynx->rcv_buffer)
-               dma_free_coherent(&lynx->pci_device->dev, PAGE_SIZE,
+               dma_free_coherent(&lynx->pci_device->dev, RCV_BUFFER_SIZE,
                                  lynx->rcv_buffer, lynx->rcv_buffer_bus);
        iounmap(lynx->registers);