From patchwork Thu Mar 3 18:00:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Balasubramani Vivekanandan X-Patchwork-Id: 12767880 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7F789C433EF for ; Thu, 3 Mar 2022 18:12:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 072D310EB85; Thu, 3 Mar 2022 18:12:04 +0000 (UTC) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 104AD10EB58; Thu, 3 Mar 2022 18:12:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1646331122; x=1677867122; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=ghWSYON4BNyUja3kwJN4byG4m6mHqjQHvzsx1e6HfM8=; b=QKyIRyd6fVArJVCOvpLZamJdOjmN1He+zbsLHT8Hh6/Xjs/WTCBAUI8k 9FsPttgorQODl03/Dn6qzBEeGqCSkRtH8kZ/QmWtdiQT8BpNWHsdQ1MEV XxFILg8oFvvg2ngN83nn5F3OLH8irKMXxyXT+N4nYrzj8xhW9DndhWy8E MW0H3Xej2gmI0QjZTO6E3+KslaFYei6Fhm6DsAcu9N/6BjPzg7jWrpve/ 1NNTMetiUZvChz5BBMrqwy4Lcf6okAuEdWhCHygy12LbCYXQeDq5DD9Be 4Dbg3ioiSwSfdSKpAs4E22VmjWDsNjuzq4gNAMz4quPlvyesCcyGGUXyl Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10275"; a="233724297" X-IronPort-AV: E=Sophos;i="5.90,151,1643702400"; d="scan'208";a="233724297" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2022 09:59:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,151,1643702400"; d="scan'208";a="545950300" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga007.fm.intel.com with ESMTP; 03 Mar 2022 09:59:37 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Thu, 3 Mar 2022 09:59:37 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21 via Frontend Transport; Thu, 3 Mar 2022 09:59:37 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.21; Thu, 3 Mar 2022 09:59:36 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DnQaHbXU5bqS8DSSjzNWkkErVXBn4hLfboPxqfZVgy55tBKG9o7uq8/0Lm0l3IQ/p4tkzRMtWQlFuk26YOVwq4q0XFan8cdo/L0LMUVqUjq4nnvpdLa40cC4shjld5IbK5/B+HdV//pkhwbkjopKTEiVw9LjtiOVaLbj8d48CxYSDx8Vn467v062OPdFkpzCxBAQr7pIJK/HjPhOLGeTOevq2Ehm6U1TmT/0yNTgQMIfChhmLyrTa2g4i5qR5kcWKoNogv5YL3TE8xDpHV3eOqbMD56+KrPsCUIha/LVexIS6EjwwtagIYH1uvP9zRsinG8BuZYWQCIB36hVr0HgYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=h5BpQiILXsfejoWONDIWaz2C4WC1NW2uHWq8JKDYE9A=; b=a+fGMsCzk8v5Yn+nbxWgYrTZxmzVuttNGn8zI9caTvSBv5U6TnwRlX7NMgYgCjWDzMKlWeHaCePB6pIlSX4BJL65pUwhT5IL2f7Ix2/TdELikwiNlwqs97rwaR5NDMCBEv/S2zbwmzP2MRl8P1+hlxM4b7Ax+RRKV9Up+3gWZ3DxUxSGJ8ijnORUil9jqw1vvnulsb5Rb4mYx8rKLl87UOOK14XAcWqxfrCzrmGY/myxYjugNRHMcsUKEw9HgC8CWa++9tuEzpA1rchclvJuZHuqX0m3zvd3wSH6nS5gQnKro4GakxIBj+SKCQCYb9T4J7qK61GZ07NubYf2wKVwog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from SJ0PR11MB4894.namprd11.prod.outlook.com (2603:10b6:a03:2d4::5) by DM5PR11MB1244.namprd11.prod.outlook.com (2603:10b6:3:13::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Thu, 3 Mar 2022 17:59:34 +0000 Received: from SJ0PR11MB4894.namprd11.prod.outlook.com ([fe80::d67:8a16:f4cd:b475]) by SJ0PR11MB4894.namprd11.prod.outlook.com ([fe80::d67:8a16:f4cd:b475%8]) with mapi id 15.20.5038.014; Thu, 3 Mar 2022 17:59:34 +0000 From: Balasubramani Vivekanandan To: , Subject: [PATCH v2 6/7] drm/i915/gt: Avoid direct dereferencing of io memory Date: Thu, 3 Mar 2022 23:30:12 +0530 Message-ID: <20220303180013.512219-7-balasubramani.vivekanandan@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220303180013.512219-1-balasubramani.vivekanandan@intel.com> References: <20220303180013.512219-1-balasubramani.vivekanandan@intel.com> X-ClientProxiedBy: SG2PR01CA0126.apcprd01.prod.exchangelabs.com (2603:1096:4:40::30) To SJ0PR11MB4894.namprd11.prod.outlook.com (2603:10b6:a03:2d4::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 99b947b2-eabf-4e1b-71fe-08d9fd3f9354 X-MS-TrafficTypeDiagnostic: DM5PR11MB1244:EE_ X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ESljUbb25Zw8MT289nVGxjActqb37ovvClKcI4pahejDxxGsZgfiGiDLIuyKT4hcJnXsR87vKAZSeVE28OMDfQX1ugsFvjb5wKca6JtDjqfoG7LJvr8PfIN6v5tlzjwqF0rL3GjvKGgccdFn3kGjdNECIfAqPPdDknLVnB6+OcRD2SVcB8Znv0tP9JFM5kScyLqxbsupkBiOn51/i/QaSBTN69rz1n09cHy8ZQx7f4w6Gow5t9v3jT86XVsSClhKV10rl4plI9onjzpC7ZdXFa/T017FII/jul4K93jAaLrDFTNFC0roSNVM/JlyvJAzbL73lIQVXIkYhnawsema3fUQJlKlUy2qZue9UnKbhJi/KPEwdkc0aqhGyD1kUf8+HnhzVwjvr0Z5KsZO4Jsf+4oBNVtvaght9cJu0NCqTMDzoCR1CguFRvx3ovYeqFb98stjaR0WfthNmFGBiGjD9WfqhPeLgKj1Tgpg9DLMizfM098QCBXi3f/hJt4+ilAaLfzDQxhCypUzgo9QX+zH3u5vE6l7CwxG8u3QVnWMh0vqasT5/kT+W3DIvJgIochYr+d8QOkH1hefK6eWXMjOicuU7UN4CSK6OhqzeFhMNPbxcKp/S5CXCsFOKBvmwy10MTzmmF57uitHfvM4pR/0Og== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB4894.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(508600001)(6486002)(316002)(38100700002)(66946007)(66556008)(6666004)(450100002)(66476007)(8676002)(82960400001)(86362001)(4326008)(54906003)(83380400001)(36756003)(6506007)(107886003)(1076003)(2616005)(5660300002)(2906002)(6512007)(44832011)(186003)(8936002)(26005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?TSOf67CqJxC8DiTk5BK/G/HS3j4j?= =?utf-8?q?n+oaQmyV5PcZab/JCCyBRc2R7bboD4QOpmCmeSjTX8N4EJi5MrWUVIKYq6PFAMFtl?= =?utf-8?q?+yjWxWB2x0UxQko3wYFhWDJtpFupfbr7WL4PmgwvR9HeZ9McKuwrkppRBgkM6Ibza?= =?utf-8?q?L4v4b4MwSYnP1dEmOUEdCjOWjOLToQmMfC2552VJCB4HmobD0c+Ly3DVJX0JdrWz8?= =?utf-8?q?01i04GAK8DTTS0mSpBTS5orLqSi6h6cnejQDqb9Snx9hu7FOCSYDSj+eg5w3AXv4O?= =?utf-8?q?1LcBbp82PLLryzyuTe8DyxeWGy/kWZ2odmHsdpi7U0RXyEQiJc0GrxkzNyXk7N2eC?= =?utf-8?q?NgGg1/BZVvVaS719Y93WUMPUO1VWx+Gp43U+2cHwbMPHQv372t3qoTUSXoMKzK8jP?= =?utf-8?q?YAsCTFa7MKtSFJSm3syRHzhAbRRHIFQXLh6p3ZR0XuCFNyFdC0qzbsaCoU8IfsySr?= =?utf-8?q?RwZuXOZeyCKE9MUWrC2yBaTwPkObz67+0ABPOl7v/zTiWuHhDVL6y54czXNMzEAqu?= =?utf-8?q?Xcfpsks+5x3dCE2cxWvNfY1j7u3THm7ctXeDWKK6j4yqjUWNe5Bjj23nWQcAbGqcO?= =?utf-8?q?gOT+fhGSwB17mTZhSAgkQVwUpawYlc8mpxJFkN29IiHpaVP/Oz6i2XRZEXWflxntF?= =?utf-8?q?AU97+eAsy5Qrgax1EncDopgYFVQ9g8MSABWmiZLj3wH+XfEmmTjrka++1LS2AhYrH?= =?utf-8?q?4B/dyIxTYMI65gfsjibDsbjkg3lMbc1CpKZj5ZYvDSk+4sXyCWRG7ur84kBTeum44?= =?utf-8?q?5np8LSEpLyou2dgXRza9STKOjGVGOzvy/qabkglxgfn6n4/LHPBsPaKzNe66e/6Gf?= =?utf-8?q?lRRXG3/V171nELcOd12CPmZpy6JyxqdVYvtvviFrFuwT0yJI84dbDZ94odTpjWIHG?= =?utf-8?q?5zedzg/5zr7c+o880SNBM6Z60+DG5Y/d1xEQ1tu3IBNdryC/lsFNx4mQZexpWHMsT?= =?utf-8?q?htJOKpJMpUJNThh9B5SH8UWvPDbaKL3+9X54XUqzQNWFjvsEt9UPeMGGWKbMOnozH?= =?utf-8?q?HDaE5H53TL3VNvyT8COxdaWT4JXGdBSm1nqFNR8r2+ub+1oKrZdPwiTVkIdgM8lpP?= =?utf-8?q?dHDGiUuzV2x+la+JyvRULSCJE8LFP2/rNLU66yRq1ovMkodtRsuL3CwzLFmCvEYIK?= =?utf-8?q?CWmWlXKENtL2Bdoe/DxlJPqatQ6F+7Ka4461iorKAD70f13C1f2Oa5Tbgx56dljXc?= =?utf-8?q?hWVyOPQBerekkhqawrTpGfdj6yktxKF1OHjTSMwa+/7OCNKISIfnZL1M350qMIrTq?= =?utf-8?q?0v+0jR7aQ1uFuPbweey0pR0C+/m744dOAWxIg1VQwNnu3Q4jUVEftaa49ak8O5s14?= =?utf-8?q?OFWae3K5E+o4I1/P63uaGkJNgKSH8EgPj5fIKgWz9RdiWFlsCzyv4q4QtLJUlEELP?= =?utf-8?q?b+IhlAxH1ySJCUJyihVicQeIy/uQuxD/PlvvGhnvXqN246NFQ3s2pe5+hQvAnYK9L?= =?utf-8?q?h545jT62BsnlqHnoL4biDjsPQuCCXxlUBomj0SlHiuol5eChyhCN18qLFgKsZY1wF?= =?utf-8?q?uscmmopoBpVbDkgTbgCMXleX983SnErOKp4XlYCUSi+QW0k5HwYUuSgb2kCcyQ1En?= =?utf-8?q?pcQeG+LDwbd1UoD/z2D+9JOHSTJNNMKZf1MthhTKsrMKsFLjofpNRO2bIoBWDCHAn?= =?utf-8?q?FxogmrnL6dgU8nOT69jxmJjHPb6VlxjQ=3D=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 99b947b2-eabf-4e1b-71fe-08d9fd3f9354 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB4894.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 17:59:34.7749 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9k8KPmK8iLUoNt5py/MGbielqwWcEM4P5QgAgWu5688Yj7Xso3emVmKRyySFWsJptj8Ir8xX4dfAerCDR5P1eSNKM+JiKRtg/z0BDSsoJeUeXPLVjvd4lCXpbE5gtkt2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1244 X-OriginatorOrg: intel.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Matthew Brost , michael.cheng@intel.com, Balasubramani Vivekanandan , wayne.boyer@intel.com, casey.g.bowman@intel.com, lucas.demarchi@intel.com, siva.mullati@intel.com, =?utf-8?q?Micha=C5=82_Winiarski?= Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" io mapped memory should not be directly dereferenced to ensure portability. io memory should be read/written/copied using helper functions. i915_memcpy_from_wc() function was used to copy the data from io memory to a temporary buffer and pointer to the temporary buffer was passed to CRC calculation function. But i915_memcpy_from_wc() only does a copy if the platform supports fast copy using non-temporal instructions. Otherwise the pointer to io memory was passed for CRC calculation. CRC function will directly dereference io memory and would not work properly on non-x86 platforms. To make it portable, it should be ensured always temporary buffer is used for CRC and not io memory. drm_memcpy_from_wc_vaddr() is now used for copying instead of i915_memcpy_from_wc() for 2 reasons. - i915_memcpy_from_wc() will be deprecated. - drm_memcpy_from_wc_vaddr() will not fail if the fast copy is not supported but uses memcpy_fromio as fallback for copying. Cc: Matthew Brost Cc: Michał Winiarski Signed-off-by: Balasubramani Vivekanandan --- drivers/gpu/drm/i915/gt/selftest_reset.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_reset.c b/drivers/gpu/drm/i915/gt/selftest_reset.c index 37c38bdd5f47..79d2bd7ef3b9 100644 --- a/drivers/gpu/drm/i915/gt/selftest_reset.c +++ b/drivers/gpu/drm/i915/gt/selftest_reset.c @@ -3,6 +3,7 @@ * Copyright © 2018 Intel Corporation */ +#include #include #include "gem/i915_gem_stolen.h" @@ -82,7 +83,7 @@ __igt_reset_stolen(struct intel_gt *gt, for (page = 0; page < num_pages; page++) { dma_addr_t dma = (dma_addr_t)dsm->start + (page << PAGE_SHIFT); void __iomem *s; - void *in; + struct iosys_map src_map; ggtt->vm.insert_page(&ggtt->vm, dma, ggtt->error_capture.start, @@ -98,10 +99,9 @@ __igt_reset_stolen(struct intel_gt *gt, ((page + 1) << PAGE_SHIFT) - 1)) memset_io(s, STACK_MAGIC, PAGE_SIZE); - in = (void __force *)s; - if (i915_memcpy_from_wc(tmp, in, PAGE_SIZE)) - in = tmp; - crc[page] = crc32_le(0, in, PAGE_SIZE); + iosys_map_set_vaddr_iomem(&src_map, s); + drm_memcpy_from_wc_vaddr(tmp, &src_map, PAGE_SIZE); + crc[page] = crc32_le(0, tmp, PAGE_SIZE); io_mapping_unmap(s); } @@ -122,7 +122,7 @@ __igt_reset_stolen(struct intel_gt *gt, for (page = 0; page < num_pages; page++) { dma_addr_t dma = (dma_addr_t)dsm->start + (page << PAGE_SHIFT); void __iomem *s; - void *in; + struct iosys_map src_map; u32 x; ggtt->vm.insert_page(&ggtt->vm, dma, @@ -134,10 +134,9 @@ __igt_reset_stolen(struct intel_gt *gt, ggtt->error_capture.start, PAGE_SIZE); - in = (void __force *)s; - if (i915_memcpy_from_wc(tmp, in, PAGE_SIZE)) - in = tmp; - x = crc32_le(0, in, PAGE_SIZE); + iosys_map_set_vaddr_iomem(&src_map, s); + drm_memcpy_from_wc_vaddr(tmp, &src_map, PAGE_SIZE); + x = crc32_le(0, tmp, PAGE_SIZE); if (x != crc[page] && !__drm_mm_interval_first(>->i915->mm.stolen, @@ -146,7 +145,7 @@ __igt_reset_stolen(struct intel_gt *gt, pr_debug("unused stolen page %pa modified by GPU reset\n", &page); if (count++ == 0) - igt_hexdump(in, PAGE_SIZE); + igt_hexdump(tmp, PAGE_SIZE); max = page; }