Memory controller drivers for v5.13
1. OMAP: fix unlikely but possible out of bounds read. 2. PL353: fix mask used in setting ECC page_size in config register. 3. Minor cleanup: Freescale Corenet. -----BEGIN PGP SIGNATURE----- iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmBt2HIQHGtyemtAa2Vy bmVsLm9yZwAKCRDBN2bmhouD1/soEACHEZm+1ZDL8VIFDXNwJSm422Psgc0hQk0z mJoIYfMLNaGp/rZmfDtmIwXn7UrA0iuoWjqAZTNSDWn4juX7vZpQbuFjMMmr6zEp ONZPoLcOm1FCj23kI51nn6a++qaoUUN17vsS+vnXkjp3qKL2y4HneGqFmTRJYtTi KaGHWU8ezNB5aWYdKQWvEFIfZAusGVD4VMatoND/sIlq+MXsBBnuny0Pr/1j7aTP NObiiBHGIJgxhezZa7EdmUfH8CLtLwI2tkRNOsu6NWPDV4S48nXj2PW5edDHdhzL 5YuuTrJv8LEFc6JQ8/l4QDj4cLRNVhsb37U+Gc4t9yl7t1Yq7H+geQc/ghuyyBCe 6RCcUI12GV8I60kacZE3+txjDWZFbO0YPfcmLjDKzmfDrcHEW9uH1zCa7IhnKO1i hlm04RM1bXkvPADfiPP+nm2a3Td52R2U7kDSewpvuz/30+XNqRyinjfy5HmiswNi mAYXuAYGbNJb7yORDdzSPE+tONUHjfz01+T61PSRwO+Uz7NfqrKycyxJU9MWG/2v jt5XJYJpZDHwt08fC0F/rMZmFXVWEZDwaJzDGbSwL8PFQUzwYNKHC/zco3qz5kru zBO68aqEuzH5yYOnqSELBM/rEHHwOaiJUggBXWH0A2GqxQJPNGgdAAyMz/ZCUSVA oM/y4HbofQ== =3E9A -----END PGP SIGNATURE----- Merge tag 'memory-controller-drv-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into arm/drivers Memory controller drivers for v5.13 1. OMAP: fix unlikely but possible out of bounds read. 2. PL353: fix mask used in setting ECC page_size in config register. 3. Minor cleanup: Freescale Corenet. * tag 'memory-controller-drv-5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl: memory: pl353: fix mask of ECC page_size config register memory: fsl-corenet-cf: Remove redundant dev_err call in ccf_probe() memory: gpmc: fix out of bounds read and dereference on gpmc_cs[] Link: https://lore.kernel.org/r/20210407161333.73013-1-krzysztof.kozlowski@canonical.com Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
f8e547f528
@ -192,10 +192,8 @@ static int ccf_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
ccf->regs = devm_ioremap_resource(&pdev->dev, r);
|
||||
if (IS_ERR(ccf->regs)) {
|
||||
dev_err(&pdev->dev, "%s: can't map mem resource\n", __func__);
|
||||
if (IS_ERR(ccf->regs))
|
||||
return PTR_ERR(ccf->regs);
|
||||
}
|
||||
|
||||
ccf->dev = &pdev->dev;
|
||||
ccf->info = match->data;
|
||||
|
@ -1009,8 +1009,8 @@ EXPORT_SYMBOL(gpmc_cs_request);
|
||||
|
||||
void gpmc_cs_free(int cs)
|
||||
{
|
||||
struct gpmc_cs_data *gpmc = &gpmc_cs[cs];
|
||||
struct resource *res = &gpmc->mem;
|
||||
struct gpmc_cs_data *gpmc;
|
||||
struct resource *res;
|
||||
|
||||
spin_lock(&gpmc_mem_lock);
|
||||
if (cs >= gpmc_cs_num || cs < 0 || !gpmc_cs_reserved(cs)) {
|
||||
@ -1018,6 +1018,9 @@ void gpmc_cs_free(int cs)
|
||||
spin_unlock(&gpmc_mem_lock);
|
||||
return;
|
||||
}
|
||||
gpmc = &gpmc_cs[cs];
|
||||
res = &gpmc->mem;
|
||||
|
||||
gpmc_cs_disable_mem(cs);
|
||||
if (res->flags)
|
||||
release_resource(res);
|
||||
|
@ -63,7 +63,7 @@
|
||||
/* ECC memory config register specific constants */
|
||||
#define PL353_SMC_ECC_MEMCFG_MODE_MASK 0xC
|
||||
#define PL353_SMC_ECC_MEMCFG_MODE_SHIFT 2
|
||||
#define PL353_SMC_ECC_MEMCFG_PGSIZE_MASK 0xC
|
||||
#define PL353_SMC_ECC_MEMCFG_PGSIZE_MASK 0x3
|
||||
|
||||
#define PL353_SMC_DC_UPT_NAND_REGS ((4 << 23) | /* CS: NAND chip */ \
|
||||
(2 << 21)) /* UpdateRegs operation */
|
||||
|
Loading…
x
Reference in New Issue
Block a user