Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp720146imw; Fri, 8 Jul 2022 10:26:10 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uTWljCtsWzey4jkxl1AUx35A6u7sjcWs7yiYAMBLGFr+kmB0ASOhtaioA+IvUqHTi7yQPS X-Received: by 2002:a17:902:d642:b0:16b:d5b7:1117 with SMTP id y2-20020a170902d64200b0016bd5b71117mr4666403plh.167.1657301169770; Fri, 08 Jul 2022 10:26:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657301169; cv=none; d=google.com; s=arc-20160816; b=w1KtGXW6PuTEzsdK3a7dhYZbDs06/bMd8N4L2MRhKhPYZtnfeV2oNhh2pq90rZBrjq IOXmYddMVXIsayOHG8VFXd7lvmnrf/SwVLcq6W3ektaktIOr/HUwXyt7kWWD0om01Hjw 7RwAJSkSQiUU8qG5s/Bb5RGebdiU/Bi0opNzIB+i9YpippPXmDZVxGkX1bI/Xvd5r9bl dUQ3vcVYHXNeBj/ReXYeP+iOLnrpOy5nXwBLftCQJLH/mxavFTlfJcsr+VUq2ljswSnK g9GHoVzDiS6fTvAOZ+yronvqEfAT8yV7OT2o8pqY1OJUrWhFA6NJYvIBlFrU0HgZwg7E GJnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=2HBuSahyHNMvF03MJu9v5fOOMawQITXHXQRHirstyvY=; b=RXYzKEh6Jmc8DgiC0CabDUyh3S+rYK/EVRNJXQNWrEnp4ZeR9R9sVC+IefEXm0g93x jT1NebW6qPEKC1EM10hMtwWwVcfwnAHfWI3d90gSyBkW3UtED23McxHiUL/ivZ4v41nz nPWeqzfU9b3A95hmYEOQ04uwxHhanJYxFR6JUvMoQ9GElBF4/Ny5wj5rVszyoXwoxjq/ C/MqREshDe9ywpgT1RDVTT3PtUlN/OKwMv0lDUlONH52XcyWqvU8tR5tTgtf9VU7hNt5 jgSEBSVUR6QW202YF+qGFNMm7DNz9b1w8HuGRtKYL8oVX67AFEyzhwsLbgbiLfioq3/G /9Xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=hwRE+J5U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p16-20020a1709028a9000b001677ae609e3si8752663plo.426.2022.07.08.10.25.57; Fri, 08 Jul 2022 10:26:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=hwRE+J5U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238171AbiGHREJ (ORCPT + 99 others); Fri, 8 Jul 2022 13:04:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47772 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237944AbiGHREI (ORCPT ); Fri, 8 Jul 2022 13:04:08 -0400 Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5845226DC for ; Fri, 8 Jul 2022 10:04:07 -0700 (PDT) Received: by mail-wm1-x336.google.com with SMTP id n185so12726815wmn.4 for ; Fri, 08 Jul 2022 10:04:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=2HBuSahyHNMvF03MJu9v5fOOMawQITXHXQRHirstyvY=; b=hwRE+J5UtH0ki5YLkiBGNPWWtNX6TKj+8IzXvu9zCaoC38fW/DT1+lJjWiUx5eizKv lwVmTj4/uY/I29LhR/3am0qkIuhVmwqyP/4ThIAPNCnxkZExoeTZd+UEVv3xrk/Sh9OV pVCdBxBtg2YGIY10+bv3d6/45j4y+vph7QUSMTgLtJFv8z+BbgJ0KfqfmXeIBNKs8AoI UJIFR3kVYfV3fuAKjXZmgJ2lem3n/KVNK6okvnt0B+/vigYBFAHLrdDKa/xqkf+7+gDR eM9JgP1KkOJcVcKdmHHLNO9Gl6T4kjanccRrUUgcYYrnv/ej4xrPKUiryeuUXAxmQ0ee yauA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=2HBuSahyHNMvF03MJu9v5fOOMawQITXHXQRHirstyvY=; b=zZUhUAERrIPbwBuw3321H4/ar2QCaBYorUit4FcmovardjVEjx0CEyDO9bDEyxF4eU P6re44KhP5yM3AThk84cTp4ksQNn+yQIuiXNTAVJHuFjz7ntwHMofZ4LR8VIoc19uZcD +ZS/omImbFAahauLPsKLUWlC2UmnoTo/+jARqUdUTtugK+XZvpLshRB/7+VntwIkfGes zfqmIaYO7JLxGSO6FyiBbchZwL+CNQ7m9QCP8ay5qbnT6K2HcBwxZa5MNkUDyO/czkEp x1+xN0UpmLBsGRgr88SFWH3QNLLgMwL9xKAq33Cz62Jvua/T3QWY6GcUOhTZKBl9u4YF cROQ== X-Gm-Message-State: AJIora9z10kvuTFimtIhHKjWOdh8/NGa1hzUKyx5JBmyqQfTlLpU3O7C 8szGFhVhiaIk24IowUm4vDa2CQ== X-Received: by 2002:a05:600c:1f19:b0:3a1:8fbf:f75c with SMTP id bd25-20020a05600c1f1900b003a18fbff75cmr819680wmb.47.1657299845949; Fri, 08 Jul 2022 10:04:05 -0700 (PDT) Received: from rainbowdash.office.codethink.co.uk ([167.98.27.226]) by smtp.gmail.com with ESMTPSA id n35-20020a05600c502300b003a2d0f0ccaesm2804821wmr.34.2022.07.08.10.04.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Jul 2022 10:04:05 -0700 (PDT) From: Ben Dooks To: devicetree@vger.kernel.org, frowand.list@gmail.com Cc: linux-kernel@vger.kernel.org, robh+dt@kernel.org, Sudip Mukherjee , Jude Onyenegecha , Ben Dooks Subject: [PATCH] scripts/dtc: dma-ranges is a multiple of 3 cells Date: Fri, 8 Jul 2022 18:03:59 +0100 Message-Id: <20220708170359.270226-1-ben.dooks@sifive.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The dma-ranges property is a set 3 cells of #address-size, so don't treat it like the ranges property when generating warnings. Signed-off-by: Ben Dooks --- scripts/dtc/checks.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c index 781ba1129a8e..791b93e8e02a 100644 --- a/scripts/dtc/checks.c +++ b/scripts/dtc/checks.c @@ -823,7 +823,36 @@ static void check_ranges_format(struct check *c, struct dt_info *dti, } } WARNING(ranges_format, check_ranges_format, "ranges", &addr_size_cells); -WARNING(dma_ranges_format, check_ranges_format, "dma-ranges", &addr_size_cells); + +static void check_dma_ranges_format(struct check *c, struct dt_info *dti, + struct node *node) +{ + struct property *prop; + int c_size_cells, p_size_cells, entrylen; + const char *ranges = c->data; + + prop = get_property(node, ranges); + if (!prop) + return; + + if (!node->parent) { + FAIL_PROP(c, dti, node, prop, "Root node has a \"%s\" property", + ranges); + return; + } + + c_size_cells = node_size_cells(node); + p_size_cells = node_size_cells(node->parent); + entrylen = (p_size_cells + 2 * c_size_cells) * sizeof(cell_t); + + if (!is_multiple_of(prop->val.len, entrylen)) { + FAIL_PROP(c, dti, node, prop, "\"%s\" property has invalid length (%d bytes) " + "(parent #address-cells == %d, " + "child #address-cells == %d)", ranges, prop->val.len, + p_size_cells, c_size_cells); + } +} +WARNING(dma_ranges_format, check_dma_ranges_format, "dma-ranges", &addr_size_cells); static const struct bus_type pci_bus = { .name = "PCI", -- 2.35.1