mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
soc: fsl: dpio: Use after free in dpaa2_dpio_remove()
The dpaa2_io_down(priv->io) call frees "priv->io" so I've shifted the
code around a little bit to avoid the use after free.
Fixes: 991e873223
("soc: fsl: dpio: use a cpumask to identify which cpus are unused")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
This commit is contained in:
parent
3c0d64e867
commit
c1959066ac
@ -220,12 +220,12 @@ static int dpaa2_dpio_remove(struct fsl_mc_device *dpio_dev)
|
|||||||
|
|
||||||
dev = &dpio_dev->dev;
|
dev = &dpio_dev->dev;
|
||||||
priv = dev_get_drvdata(dev);
|
priv = dev_get_drvdata(dev);
|
||||||
|
cpu = dpaa2_io_get_cpu(priv->io);
|
||||||
|
|
||||||
dpaa2_io_down(priv->io);
|
dpaa2_io_down(priv->io);
|
||||||
|
|
||||||
dpio_teardown_irqs(dpio_dev);
|
dpio_teardown_irqs(dpio_dev);
|
||||||
|
|
||||||
cpu = dpaa2_io_get_cpu(priv->io);
|
|
||||||
cpumask_set_cpu(cpu, cpus_unused_mask);
|
cpumask_set_cpu(cpu, cpus_unused_mask);
|
||||||
|
|
||||||
err = dpio_open(dpio_dev->mc_io, 0, dpio_dev->obj_desc.id,
|
err = dpio_open(dpio_dev->mc_io, 0, dpio_dev->obj_desc.id,
|
||||||
|
Loading…
Reference in New Issue
Block a user