On Wed, Jul 03, 2024 at 02:46:42PM GMT, Varadarajan Narayanan wrote: > cpr3 code assumes that 'acc_desc' is available for SoCs > implementing CPR version 4 or less. However, IPQ9574 SoC > implements CPRv4 without ACC. This causes NULL pointer accesses > resulting in crashes. Hence, check if 'acc_desc' is populated > before using it. > > Signed-off-by: Varadarajan Narayanan <quic_varada@xxxxxxxxxxx> > --- > v4: Undo the acc_desc validation in probe function as that could > affect other SoC. > --- > drivers/pmdomain/qcom/cpr3.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/pmdomain/qcom/cpr3.c b/drivers/pmdomain/qcom/cpr3.c > index c7790a71e74f..6ceb7605f84d 100644 > --- a/drivers/pmdomain/qcom/cpr3.c > +++ b/drivers/pmdomain/qcom/cpr3.c > @@ -2399,12 +2399,12 @@ static int cpr_pd_attach_dev(struct generic_pm_domain *domain, > if (ret) > goto exit; > > - if (acc_desc->config) > + if (acc_desc && acc_desc->config) > regmap_multi_reg_write(drv->tcsr, acc_desc->config, > acc_desc->num_regs_per_fuse); > > /* Enable ACC if required */ > - if (acc_desc->enable_mask) > + if (acc_desc && acc_desc->enable_mask) > regmap_update_bits(drv->tcsr, acc_desc->enable_reg, > acc_desc->enable_mask, > acc_desc->enable_mask); Should the same fix be applied to other places which access acc_desc? For example cpr_pre_voltage() and cpr_post_voltage() which call cpr_set_acc()? -- With best wishes Dmitry