Received: by 2002:a05:6358:4e97:b0:b3:742d:4702 with SMTP id ce23csp2691178rwb; Mon, 15 Aug 2022 09:39:23 -0700 (PDT) X-Google-Smtp-Source: AA6agR7HXyZfhiCEYsl2auU0IpaFha4mlDFBmIdTaFSXmxBxfW74hWHT3bph1CYt4kUuj/Gk9z68 X-Received: by 2002:a17:907:1361:b0:732:fefd:a25c with SMTP id yo1-20020a170907136100b00732fefda25cmr11052193ejb.669.1660581563030; Mon, 15 Aug 2022 09:39:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660581563; cv=none; d=google.com; s=arc-20160816; b=rGusbD5wAwUw6TlfMlJ21XRsjsOMC3LkF0fUZecCT0RZR6mv+wdwOPJs474YNPu63L Q/R/H17Q2ELb0qB8Hrv36XvbSfDDbc3MJNpq0P6nD9qQ2S547jW8eagCim2FUOQcy16W ep3/ydoHRBRym7MIlvj5bBKj/b4q7l2rJEHeN9ydMPZ2uEK5fOiCbuXPm0/ua0ZJEeqJ RiV5+0lJhMhDRuAdI7UqMNacmgR6AUtztfNs5DuqhV8sPbAt/2gB0bTceO0O2qbF1xGS nn2iW91t9ZcKypU01m36XwLnb7WubfoprthIEpVGj8e/5/Tx+vT60IxBEP995adBM5dv mgNA== 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; bh=9WN0xKMFWlUZuBiXgkksTna1QOofyqLCKR98jaX86A8=; b=t4zFBdca7ovEmqrFFkuz7iDFsuhCjz1037HQt1uZ63YI3SN+CkMUtb+c7jqUFcSc3Q BndSeLlAyI+k3R4IIAK3FBG4zFheCu1lE5ba9tA5ylGLZE9ZJpfSy8NgCv+zTQMILdna FbKWxJLdnz0VJD1LjTQL1koymyqmPaxXXpYSMzVzq9tEAM7Xmb9Ep5fHlA4KXTBCDsu6 jv0wl60i9p0lW1FTzMQ2gQJ/OGySRwphrixIjeCqnL4ngVyMAjlK5KyOwh9ObiwGCOxz k231P6JDmJrj3U8eAjHzr4zPmv2WXtCfqzD0K2ODtDa9emvIm6yoi+yv78KZlDgOM4GT LeUQ== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w5-20020a50d785000000b0043bbb19a3b4si7190454edi.174.2022.08.15.09.38.57; Mon, 15 Aug 2022 09:39:23 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232193AbiHOQRn (ORCPT + 99 others); Mon, 15 Aug 2022 12:17:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231135AbiHOQQE (ORCPT ); Mon, 15 Aug 2022 12:16:04 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4AD94EE00 for ; Mon, 15 Aug 2022 09:16:03 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id C3B691063; Mon, 15 Aug 2022 09:16:03 -0700 (PDT) Received: from e121345-lin.cambridge.arm.com (e121345-lin.cambridge.arm.com [10.1.196.40]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 19D003F70D; Mon, 15 Aug 2022 09:16:01 -0700 (PDT) From: Robin Murphy To: will@kernel.org Cc: joro@8bytes.org, iommu@lists.linux.dev, subkhankulov@ispras.ru, khoroshilov@ispras.ru, linux-kernel@vger.kernel.org Subject: [PATCH] iommu/io-pgtable-arm: Remove iommu_dev==NULL special case Date: Mon, 15 Aug 2022 17:15:55 +0100 Message-Id: X-Mailer: git-send-email 2.36.1.dirty MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_NONE,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 special case to allow iommu_dev==NULL in __arm_lpae_alloc_pages() is confusing to static checkers (and possibly readers in general), since it's not obvious that that is only intended for the selftests. However it only serves to get around the dev_to_node() call, and we can easily fake up enough to make that work anyway, so let's simply remove this consideration from the normal flow and punt the responsibility over to the test harness itself. Reported-by: Rustam Subkhankulov Signed-off-by: Robin Murphy --- drivers/iommu/io-pgtable-arm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c index 94ff319ae8ac..873a92bbd80c 100644 --- a/drivers/iommu/io-pgtable-arm.c +++ b/drivers/iommu/io-pgtable-arm.c @@ -200,8 +200,7 @@ static void *__arm_lpae_alloc_pages(size_t size, gfp_t gfp, void *pages; VM_BUG_ON((gfp & __GFP_HIGHMEM)); - p = alloc_pages_node(dev ? dev_to_node(dev) : NUMA_NO_NODE, - gfp | __GFP_ZERO, order); + p = alloc_pages_node(dev_to_node(dev), gfp | __GFP_ZERO, order); if (!p) return NULL; @@ -1343,12 +1342,17 @@ static int __init arm_lpae_do_selftests(void) }; int i, j, pass = 0, fail = 0; + struct device dev; struct io_pgtable_cfg cfg = { .tlb = &dummy_tlb_ops, .oas = 48, .coherent_walk = true, + .iommu_dev = &dev, }; + /* __arm_lpae_alloc_pages() merely needs dev_to_node() to work */ + set_dev_node(&dev, NUMA_NO_NODE); + for (i = 0; i < ARRAY_SIZE(pgsize); ++i) { for (j = 0; j < ARRAY_SIZE(ias); ++j) { cfg.pgsize_bitmap = pgsize[i]; -- 2.36.1.dirty