linux/drivers/edac
Robert Richter a0a4643f18 EDAC/mc: Fix edac_mc_find() in case no device is found
[ Upstream commit 29a0c84397 ]

The function should return NULL in case no device is found, but it
always returns the last checked mc device from the list even if the
index did not match. Fix that.

I did some analysis why this did not raise any issues for about 3 years
and the reason is that edac_mc_find() is mostly used to search for
existing devices. Thus, the bug is not triggered.

 [ bp: Drop the if (mci->mc_idx > idx) test in favor of readability. ]

Fixes: c73e8833be ("EDAC, mc: Fix locking around mc_devices list")
Signed-off-by: Robert Richter <rrichter@marvell.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>
Cc: James Morse <james.morse@arm.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Link: https://lkml.kernel.org/r/20190514104838.15065-1-rrichter@marvell.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-01-27 14:50:48 +01:00
..
altera_edac.c EDAC/altera: Use the proper type for the IRQ status bits 2019-10-05 13:09:38 +02:00
altera_edac.h
amd64_edac_dbg.c
amd64_edac_inj.c
amd64_edac.c EDAC/amd64: Decode syndrome before translating address 2019-10-05 13:09:48 +02:00
amd64_edac.h
amd76x_edac.c
amd8111_edac.c
amd8111_edac.h
amd8131_edac.c
amd8131_edac.h
cell_edac.c
cpc925_edac.c
debugfs.c
e7xxx_edac.c
e752x_edac.c
edac_device_sysfs.c
edac_device.c
edac_device.h
edac_mc_sysfs.c
edac_mc.c EDAC/mc: Fix edac_mc_find() in case no device is found 2020-01-27 14:50:48 +01:00
edac_mc.h
edac_module.c
edac_module.h
edac_pci_sysfs.c
edac_pci.c
edac_pci.h
fsl_ddr_edac.c
fsl_ddr_edac.h
ghes_edac.c EDAC/ghes: Fix grain calculation 2019-12-31 16:35:58 +01:00
highbank_l2_edac.c
highbank_mc_edac.c
i7core_edac.c EDAC: Correct DIMM capacity unit symbol 2019-11-20 18:47:15 +01:00
i3000_edac.c
i3200_edac.c EDAC: Correct DIMM capacity unit symbol 2019-11-20 18:47:15 +01:00
i5000_edac.c
i5100_edac.c
i5400_edac.c
i7300_edac.c
i82443bxgx_edac.c
i82860_edac.c
i82875p_edac.c
i82975x_edac.c
ie31200_edac.c
Kconfig
layerscape_edac.c
Makefile
mce_amd.c
mce_amd.h
mpc85xx_edac.c
mpc85xx_edac.h
mv64x60_edac.c
mv64x60_edac.h
octeon_edac-l2c.c
octeon_edac-lmc.c
octeon_edac-pc.c
octeon_edac-pci.c
pasemi_edac.c
pnd2_edac.c EDAC, pnd2: Fix ioremap() size in dnv_rd_reg() 2019-10-05 13:09:39 +02:00
pnd2_edac.h
ppc4xx_edac.c
ppc4xx_edac.h
r82600_edac.c
sb_edac.c EDAC: Correct DIMM capacity unit symbol 2019-11-20 18:47:15 +01:00
skx_edac.c EDAC: Correct DIMM capacity unit symbol 2019-11-20 18:47:15 +01:00
synopsys_edac.c
thunderx_edac.c EDAC, thunderx: Fix memory leak in thunderx_l2c_threaded_isr() 2019-12-01 09:16:18 +01:00
ti_edac.c
wq.c
x38_edac.c
xgene_edac.c