Skip to content

Commit fafbad4

Browse files
committed
Merge tag 'pmdomain-v6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm
Pull pmdomain fixes from Ulf Hansson: - qcom: Fix enabled_corner aggregation for rpmhpd - arm: Fix NULL dereference on scmi_perf_domain removal * tag 'pmdomain-v6.8-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: pmdomain: qcom: rpmhpd: Fix enabled_corner aggregation pmdomain: arm: Fix NULL dereference on scmi_perf_domain removal
2 parents 2bbb54b + 2a93c6c commit fafbad4

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

drivers/pmdomain/arm/scmi_perf_domain.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ static void scmi_perf_domain_remove(struct scmi_device *sdev)
159159
struct genpd_onecell_data *scmi_pd_data = dev_get_drvdata(dev);
160160
int i;
161161

162+
if (!scmi_pd_data)
163+
return;
164+
162165
of_genpd_del_provider(dev->of_node);
163166

164167
for (i = 0; i < scmi_pd_data->num_domains; i++)

drivers/pmdomain/qcom/rpmhpd.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -692,6 +692,7 @@ static int rpmhpd_aggregate_corner(struct rpmhpd *pd, unsigned int corner)
692692
unsigned int active_corner, sleep_corner;
693693
unsigned int this_active_corner = 0, this_sleep_corner = 0;
694694
unsigned int peer_active_corner = 0, peer_sleep_corner = 0;
695+
unsigned int peer_enabled_corner;
695696

696697
if (pd->state_synced) {
697698
to_active_sleep(pd, corner, &this_active_corner, &this_sleep_corner);
@@ -701,9 +702,11 @@ static int rpmhpd_aggregate_corner(struct rpmhpd *pd, unsigned int corner)
701702
this_sleep_corner = pd->level_count - 1;
702703
}
703704

704-
if (peer && peer->enabled)
705-
to_active_sleep(peer, peer->corner, &peer_active_corner,
705+
if (peer && peer->enabled) {
706+
peer_enabled_corner = max(peer->corner, peer->enable_corner);
707+
to_active_sleep(peer, peer_enabled_corner, &peer_active_corner,
706708
&peer_sleep_corner);
709+
}
707710

708711
active_corner = max(this_active_corner, peer_active_corner);
709712

0 commit comments

Comments
 (0)