Message ID | 20210311073051.1548-1-Zhiqiang.Hou@nxp.com |
---|---|
State | Accepted |
Commit | ae5cbc43b361cc78040aa4fbb1cacd375eb2db04 |
Delegated to: | Priyanka Jain |
Headers | show |
Series | pci: layerscape: Change to allocate zeroed memery for struct ls_pcie | expand |
On Thu, Mar 11, 2021 at 03:30:51PM +0800, Zhiqiang Hou wrote: > From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> > > As on some incipient Layerscape platforms (LS1043A series) there isn't > separate PF control register block, these registers reside in the LUT > register block, so when the driver detected there isn't 'ctrl', it will > assign the 'lut' address to the ls_pcie->ctrl. > > The current code allocate memory for the struct ls_pcie with random > contents, this can result in skipping to assign the ls_pcie->ctrl with > the 'lut' address, then further crash with the incorrect address. > > Fixes: 118e58e26eba ("pci: layerscape: Split the EP and RC driver") > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com> > --- Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
diff --git a/drivers/pci/pcie_layerscape_ep.c b/drivers/pci/pcie_layerscape_ep.c index 14983cce4f..c7231635e4 100644 --- a/drivers/pci/pcie_layerscape_ep.c +++ b/drivers/pci/pcie_layerscape_ep.c @@ -244,7 +244,7 @@ static int ls_pcie_ep_probe(struct udevice *dev) int ret; u32 svr; - pcie = devm_kmalloc(dev, sizeof(*pcie), GFP_KERNEL); + pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) return -ENOMEM; diff --git a/drivers/pci/pcie_layerscape_rc.c b/drivers/pci/pcie_layerscape_rc.c index b055ed5165..bd2c19f7f0 100644 --- a/drivers/pci/pcie_layerscape_rc.c +++ b/drivers/pci/pcie_layerscape_rc.c @@ -254,7 +254,7 @@ static int ls_pcie_probe(struct udevice *dev) pcie_rc->bus = dev; - pcie = devm_kmalloc(dev, sizeof(*pcie), GFP_KERNEL); + pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL); if (!pcie) return -ENOMEM;