Message ID | 20191226095141.30352-2-yamada.masahiro@socionext.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] iommu/arm-smmu-v3: constify arm_smmu_options[] | expand |
On 26/12/2019 9:51 am, Masahiro Yamada wrote: > Using ARRAY_SIZE() instead of the sentinel is slightly simpler, IMHO. Given that it's fairly well-decided that we don't want to add any more of these anyway, I'd be inclined to lose the array/loop machinery altogether. As it is we'd need a lot more options for it to actually offer any kind of code size saving. Robin. > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > drivers/iommu/arm-smmu-v3.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c > index ed9933960370..b27489b7f9d8 100644 > --- a/drivers/iommu/arm-smmu-v3.c > +++ b/drivers/iommu/arm-smmu-v3.c > @@ -676,7 +676,6 @@ struct arm_smmu_option_prop { > static const struct arm_smmu_option_prop arm_smmu_options[] = { > { ARM_SMMU_OPT_SKIP_PREFETCH, "hisilicon,broken-prefetch-cmd" }, > { ARM_SMMU_OPT_PAGE0_REGS_ONLY, "cavium,cn9900-broken-page1-regspace"}, > - { 0, NULL}, > }; > > static inline void __iomem *arm_smmu_page1_fixup(unsigned long offset, > @@ -696,16 +695,16 @@ static struct arm_smmu_domain *to_smmu_domain(struct iommu_domain *dom) > > static void parse_driver_options(struct arm_smmu_device *smmu) > { > - int i = 0; > + int i; > > - do { > + for (i = 0; i < ARRAY_SIZE(arm_smmu_options); i++) { > if (of_property_read_bool(smmu->dev->of_node, > arm_smmu_options[i].prop)) { > smmu->options |= arm_smmu_options[i].opt; > dev_notice(smmu->dev, "option %s\n", > arm_smmu_options[i].prop); > } > - } while (arm_smmu_options[++i].opt); > + }; > } > > /* Low-level queue manipulation functions */ >
diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index ed9933960370..b27489b7f9d8 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -676,7 +676,6 @@ struct arm_smmu_option_prop { static const struct arm_smmu_option_prop arm_smmu_options[] = { { ARM_SMMU_OPT_SKIP_PREFETCH, "hisilicon,broken-prefetch-cmd" }, { ARM_SMMU_OPT_PAGE0_REGS_ONLY, "cavium,cn9900-broken-page1-regspace"}, - { 0, NULL}, }; static inline void __iomem *arm_smmu_page1_fixup(unsigned long offset, @@ -696,16 +695,16 @@ static struct arm_smmu_domain *to_smmu_domain(struct iommu_domain *dom) static void parse_driver_options(struct arm_smmu_device *smmu) { - int i = 0; + int i; - do { + for (i = 0; i < ARRAY_SIZE(arm_smmu_options); i++) { if (of_property_read_bool(smmu->dev->of_node, arm_smmu_options[i].prop)) { smmu->options |= arm_smmu_options[i].opt; dev_notice(smmu->dev, "option %s\n", arm_smmu_options[i].prop); } - } while (arm_smmu_options[++i].opt); + }; } /* Low-level queue manipulation functions */
Using ARRAY_SIZE() instead of the sentinel is slightly simpler, IMHO. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- drivers/iommu/arm-smmu-v3.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)