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.masah...@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 */

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to