Messages in this thread | | | Subject | Re: [PATCH v1 1/1] pstore/ram: Fix crash when setting number of cpus to an odd number | From | Miko Larsson <> | Date | Fri, 24 Feb 2023 08:05:01 +0100 |
| |
On Fri, 2023-02-24 at 10:36 +0800, Weichen Chen wrote: > When the number of cpu cores is adjusted to 7 or other odd numbers, > the zone size will become an odd number. > The address of the zone will become: > addr of zone0 = BASE > addr of zone1 = BASE + zone_size > addr of zone2 = BASE + zone_size*2 > ... > The address of zone1/3/5/7 will be mapped to non-alignment va. > Eventually crashes will occur when accessing these va. > > So, use ALIGN_DOWN() to make sure the zone size is even > to avoid this bug. > > Signed-off-by: Weichen Chen <weichen.chen@mediatek.com> > --- > fs/pstore/ram.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c > index ade66dbe5f39..fc57ac97e506 100644 > --- a/fs/pstore/ram.c > +++ b/fs/pstore/ram.c > @@ -528,6 +528,7 @@ static int ramoops_init_przs(const char *name, > } > > zone_sz = mem_sz / *cnt; > + zone_sz = ALIGN_DOWN(zone_sz, 2); > if (!zone_sz) { > dev_err(dev, "%s zone size == 0\n", name); > goto fail;
Might want to Cc this to the stable mailing list. -- ~miko
| |