Re: [PATCH net-next v13 04/13] net: pse-pd: Add support for PSE power domains
From: Jakub Kicinski
Date: Sat Jun 14 2025 - 15:13:43 EST
On Tue, 10 Jun 2025 10:11:38 +0200 Kory Maincent wrote:
> +static void __pse_pw_d_release(struct kref *kref)
> +{
> + struct pse_power_domain *pw_d = container_of(kref,
> + struct pse_power_domain,
> + refcnt);
> +
> + regulator_put(pw_d->supply);
> + xa_erase(&pse_pw_d_map, pw_d->id);
> +}
> +
> +/**
> + * pse_flush_pw_ds - flush all PSE power domains of a PSE
> + * @pcdev: a pointer to the initialized PSE controller device
> + */
> +static void pse_flush_pw_ds(struct pse_controller_dev *pcdev)
> +{
> + struct pse_power_domain *pw_d;
> + int i;
> +
> + for (i = 0; i < pcdev->nr_lines; i++) {
> + if (!pcdev->pi[i].pw_d)
> + continue;
> +
> + pw_d = xa_load(&pse_pw_d_map, pcdev->pi[i].pw_d->id);
> + if (!pw_d)
> + continue;
> +
> + kref_put_mutex(&pw_d->refcnt, __pse_pw_d_release,
> + &pse_pw_d_mutex);
> + }
> +}
AFAIU the release function (__pse_pw_d_release) is supposed to release
the mutex.