[PATCH 1/2] firmware: arm_scmi: Keep the discrete clock rates sorted

Dien Pham dien.pham.ry at renesas.com
Thu Jul 9 04:53:44 EDT 2020


Dear Sudeep-san,

> > >+}
> > >+
> > > static int
> > > scmi_clock_describe_rates_get(const struct scmi_handle *handle, u32 clk_id,
> > > 			      struct scmi_clock_info *clk) @@ -184,8 +193,10 @@ 
> > >scmi_clock_describe_rates_get(const struct scmi_handle *handle, u32 clk_id,
> > > 		 */
> > > 	} while (num_returned && num_remaining);
> > >
> > >-	if (rate_discrete)
> > >+	if (rate_discrete) {
> > > 		clk->list.num_rates = tot_rate_cnt;
> > >+		sort(rate, tot_rate_cnt, sizeof(*rate), rate_cmp_func, NULL);
> >
> > About warning of above line, I think it relates to below snip of code:
> >                 if (tot_rate_cnt + num_returned > SCMI_MAX_NUM_RATES) {
> >                         dev_err(handle->dev, "No. of rates > MAX_NUM_RATES");
> >                         break;
> >                 }
> >
> 
> I don't understand your comment and relation to above warning.

I'd like to mention about below warning.

>drivers/firmware/arm_scmi/clock.c: In function 'scmi_clock_protocol_init':
>drivers/firmware/arm_scmi/clock.c:197:3: warning: 'rate' may be used uninitialized in this function [-Wmaybe-uninitialized]
>  sort(rate, tot_rate_cnt, sizeof(*rate), rate_cmp_func, NULL);

The warning for line
> > >+		sort(rate, tot_rate_cnt, sizeof(*rate), rate_cmp_func, NULL);

But, I think that it is affected by 'break' of below line. And for fixing this warning, I think we should fix inside this 'if' block.
> >                 if (tot_rate_cnt + num_returned > SCMI_MAX_NUM_RATES) {
> >                         dev_err(handle->dev, "No. of rates > MAX_NUM_RATES");
> >                         break;
> >                 }

Best regard,
DIEN Pham



More information about the linux-arm-kernel mailing list