Skip to contentSkip to conversation

Patch "vme: Fix wrong pointer utilization in ca91cx42_slave_get" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Jan 17, 2017 Stable branch

lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

vme: Fix wrong pointer utilization in ca91cx42_slave_get

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
vme-fix-wrong-pointer-utilization-in-ca91cx42_slave_get.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From c8a6a09c1c617402cc9254b2bc8da359a0347d75 Mon Sep 17 00:00:00 2001

From: Augusto Mecking Caringi <[email protected]>
Date: Tue, 10 Jan 2017 10:45:00 +0000
Subject: vme: Fix wrong pointer utilization in ca91cx42_slave_get
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

From: Augusto Mecking Caringi <[email protected]>

commit c8a6a09c1c617402cc9254b2bc8da359a0347d75 upstream.

In ca91cx42_slave_get function, the value pointed by vme_base pointer is set through:

*vme_base = ioread32(bridge->base + CA91CX42_VSI_BS[i]);

So it must be dereferenced to be used in calculation of pci_base:

*pci_base = (dma_addr_t)*vme_base + pci_offset;

This bug was caught thanks to the following gcc warning:

drivers/vme/bridges/vme_ca91cx42.c: In function ‘ca91cx42_slave_get’:
drivers/vme/bridges/vme_ca91cx42.c:467:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] *pci_base = (dma_addr_t)vme_base + pci_offset;

---
 drivers/vme/bridges/vme_ca91cx42.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/vme/bridges/vme_ca91cx42.c +1 -1
@@ -464,7 +464,7 @@ static int ca91cx42_slave_get(struct vme
 	vme_bound = ioread32(bridge->base + CA91CX42_VSI_BD[i]);
 	pci_offset = ioread32(bridge->base + CA91CX42_VSI_TO[i]);
 
-	*pci_base = (dma_addr_t)vme_base + pci_offset;
+	*pci_base = (dma_addr_t)*vme_base + pci_offset;
 	*size = (unsigned long long)((vme_bound - *vme_base) + granularity);
 
 	*enabled = 0;

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/vme-fix-wrong-pointer-utilization-in-ca91cx42_slave_get.patch