Skip to content

Commit c8a6a09

Browse files
caringigregkh
authored andcommitted
vme: Fix wrong pointer utilization in ca91cx42_slave_get
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; Signed-off-by: Augusto Mecking Caringi <[email protected]> Acked-By: Martyn Welch <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 546cf3e commit c8a6a09

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/vme/bridges/vme_ca91cx42.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ static int ca91cx42_slave_get(struct vme_slave_resource *image, int *enabled,
464464
vme_bound = ioread32(bridge->base + CA91CX42_VSI_BD[i]);
465465
pci_offset = ioread32(bridge->base + CA91CX42_VSI_TO[i]);
466466

467-
*pci_base = (dma_addr_t)vme_base + pci_offset;
467+
*pci_base = (dma_addr_t)*vme_base + pci_offset;
468468
*size = (unsigned long long)((vme_bound - *vme_base) + granularity);
469469

470470
*enabled = 0;

0 commit comments

Comments
 (0)