[PATCH v7 2/2] drivers: soc: Add LLCC driver
From: Andy Shevchenko <hidden>
Date: 2018-05-22 20:46:11
Also in:
linux-arm-msm, linux-devicetree, lkml
On Tue, May 22, 2018 at 11:40 PM, [off-list ref] wrote:
On 2018-05-22 12:38, Andy Shevchenko wrote:quoted
On Tue, May 22, 2018 at 9:33 PM, [off-list ref] wrote:quoted
On 2018-05-18 14:01, Andy Shevchenko wrote:
quoted
quoted
quoted
quoted
+struct llcc_slice_desc *llcc_slice_getd(u32 uid) +{ + const struct llcc_slice_config *cfg; + struct llcc_slice_desc *desc; + u32 sz, count = 0; + + cfg = drv_data->cfg; + sz = drv_data->cfg_size; +quoted
+ while (cfg && count < sz) { + if (cfg->usecase_id == uid) + break; + cfg++; + count++; + } + if (cfg == NULL || count == sz) + return ERR_PTR(-ENODEV);
quoted
quoted
quoted
if (!cfg) return ERR_PTR(-ENODEV); while (cfg->... != uid) { cfg++; count++; } if (count == sz) return ... Though I would rather put it to for () loop.In each while loop iteration the cfg pointer needs to be checked for NULL. What if the usecase id never matches the uid passed by client and we keep iterating. At some point it will crash.
quoted
do { if (!cfg || count == sz) return ...(-ENODEV); ... } while (...); Though, as I said for-loop will look slightly better I think.Is this fine? for (count = 0; count < sz; count++) { if (!cfg) return ERR_PTR(-ENODEV); if (cfg->usecase_id == uid) break; cfg++; } if (count == sz) return ERR_PTR(-ENODEV);
for (count = 0; cfg && count < sz; count++, cfg++)
if (_id == uid)
break;
if (!cfg || count == sz)
return ERR_PTR(-ENODEV);
Simpler ?
--
With Best Regards,
Andy Shevchenko