msm: pcie: Adding check before accessing src_virt_addr
The Pointer 'src_vir_addr' is returned from call to function 'ioremap'. 'src_vir_addr' may be NULL & can be passed to 'get_random_bytes' api causing NULL pointer dereference issue. Hence, adding a check before accessing the 'src_vir_addr'. Change-Id: I9911f2f5f52a1bd53f6e53271ca740584538f3a1 Signed-off-by: Naga Rashmi Ayiluri <quic_nayiluri@quicinc.com>
This commit is contained in:
parent
eb85447897
commit
49db5e565e
@ -1714,7 +1714,7 @@ static void msm_pcie_loopback(struct msm_pcie_dev_t *dev, bool local)
|
||||
/* PCIe DBI base + 8MB as initial PCIe address to be translated to target address */
|
||||
phys_addr_t loopback_lbar_phy =
|
||||
dev->res[MSM_PCIE_RES_DM_CORE].resource->start + SZ_8M;
|
||||
u8 *src_vir_addr = (u8 *) ioremap(loopback_lbar_phy, SZ_4K);
|
||||
u8 *src_vir_addr;
|
||||
void __iomem *iatu_base_vir;
|
||||
u32 dbi_base_addr = dev->res[MSM_PCIE_RES_DM_CORE].resource->start;
|
||||
u32 iatu_base_phy, iatu_ctrl1_offset, iatu_ctrl2_offset, iatu_lbar_offset, iatu_ubar_offset,
|
||||
@ -1728,6 +1728,12 @@ static void msm_pcie_loopback(struct msm_pcie_dev_t *dev, bool local)
|
||||
bool loopback_test_fail = false;
|
||||
int i = 0;
|
||||
|
||||
src_vir_addr = (u8 *)ioremap(loopback_lbar_phy, SZ_4K);
|
||||
if (!src_vir_addr) {
|
||||
PCIE_ERR(dev, "PCIe: RC%d: ioremap fails for loopback_lbar_phy\n", dev->rc_idx);
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Use platform dev to get buffer. Doing so will
|
||||
* require change in PCIe platform devicetree to have SMMU/IOMMU tied to
|
||||
|
Loading…
Reference in New Issue
Block a user