On Mon, Dec 11, 2017 at 05:10:17PM +0100, Takashi Iwai wrote:
> On Wed, 06 Dec 2017 16:47:00 +0100,
> Vinod Koul wrote:
> > 
> > +static int sdw_slave_read_dpn(struct sdw_slave *slave,
> > +           struct sdw_dpn_prop *dpn, int count, int ports, char *type)
> > +{
> ....
> > +           nval = fwnode_property_read_u32_array(node,
> > +                           "mipi-sdw-port-wordlength-configs", NULL, 0);
> > +           if (nval > 0)
> > +                   dpn[i].num_words = nval;
> > +
> > +           if (dpn[i].num_words) {
> > +                   dpn[i].words = devm_kcalloc(&slave->dev, nval,
> > +                           sizeof(*dpn[i].words), GFP_KERNEL);
> 
> Inconsistent checks here: nval or dpn[i].num_words.

Ah yes, we should not do allocation for less that zero case and use it
properly, will fix this and others

> 
> > +           /* TODO: Read audio mode */
> > +
> > +           i++;
> > +   }
> 
> Don't we use count argument for a sanity check?

Not really as that iterator runs on each bit:

for_each_set_bit(bit, &addr, 32) {

so it will not go on endlessly and can max out when all the bits being set
and stop.

-- 
~Vinod

Reply via email to