Received: by 2002:ab2:69cc:0:b0:1f4:be93:e15a with SMTP id n12csp245900lqp; Fri, 12 Apr 2024 17:02:18 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUT4vVAuJTc/f+Apsq1wovtOpkK7HlGGl4LeCByY/SIz/hY9UA7ML6aoweHYNN7CEOrTiIKi16Euh8WEXZ66Fsw4a7J6j1XK7K/90QZsQ== X-Google-Smtp-Source: AGHT+IEPhDseRrLLFCl/N1j7Ry61PTDz/lI+rzV7/vFZKV/F0WZOtacwwAcBH5/mYxa20ahPjCyz X-Received: by 2002:a05:6a00:b8f:b0:6ed:d47e:625d with SMTP id g15-20020a056a000b8f00b006edd47e625dmr4693138pfj.30.1712966537843; Fri, 12 Apr 2024 17:02:17 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712966537; cv=pass; d=google.com; s=arc-20160816; b=ybNilz948h8mSEITfFUKLXGn3bSg6ssS3/fwJi1E43ixqFEZadI2YS/DbY9Ktlc5ur ea9C3yjHctBxJvHhOsUoQNbPP4QpHT9AL2bHdl+rx+ATVy4eLBf/4M356L7BCLq4pwYG geZpay6k9JRu1i6nIw2vObuh/k2bb5nRgzvofm3lHQqq3Qd9EsmG8rTYNwsGSgrdhXBh js7W+idCYK4+6hOgjMT1cdyYV4hW0HmgILqisSPpACjOGNHRIaVtSjyO8UljXCXiYDMT WbabTj5xfOaVZ63DsfUIQniGZE+HfaIiU0dyct3P05l/FzuGUmHYGBH28t28yQeQPFLb TdNg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=fUhOh0bVKDaLqZSkNpR28Fsn1uHoAo/VA1URW24J9VY=; fh=zyrsF7Q4A6pOlQyLk3Kik0r9NQE3w2ILnjCnmqyEl6M=; b=THpdxLxoR2MCbWWUTTJvi+vOBdCNITGCU4BYSOsdF5A1DIuiOOgoR6y40elssoU6YL TuDFSFpzvc+BE1q15KUZPrE/8gBB/8xObYjCyypgOn1eLFiwOQDJbw6k8chsNoiRmGh+ NS1CygrNZh6e3dtDkeeb36RT78vv1fwu8t0pps1Pl+OktUVUdggAY9XTyHPgmi8w7n1x 1GReS56lADis7cAukH2oW66oTAWa0r02brkKhX+uh4Evo3JpTEoZZNb3mEUXMxhdE1DD TKKV4uWFAMq5XZx9CEnBmXHQ1lqpJh1zE/gpVl1Z36ntaL23PnRgx+TSoT3A9Yc42zmz r1HQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=h1kHyLw9; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-143243-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-143243-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id lo11-20020a056a003d0b00b006ecfae875f7si4393617pfb.346.2024.04.12.17.02.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Apr 2024 17:02:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-143243-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=h1kHyLw9; arc=pass (i=1 dkim=pass dkdomain=intel.com dmarc=pass fromdomain=linux.intel.com); spf=pass (google.com: domain of linux-kernel+bounces-143243-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-143243-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 0CB5B286BD6 for ; Fri, 12 Apr 2024 19:14:08 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 05E0014F13E; Fri, 12 Apr 2024 19:14:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="h1kHyLw9" Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CD11C14AD37; Fri, 12 Apr 2024 19:13:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.12 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712949241; cv=none; b=dO7bnDgspknU0z1KMkTaFKMbpepyZQEtpy7/kVv6qsNK3sxwykRWEZJfbuWyMOwYWt4R/xWRFeecUlMIyRv0+E5MUQyzTXX/eh0IteLNoN6rse98KsHrOdeJDErhu6uTtnFiHLjPReM0MVhUYW4JhOZLGEWLjnLcfdIBvzZIMC8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712949241; c=relaxed/simple; bh=Eu3ZcZPFL16HSzXgIdXanfvswaxE9WSR58W60oCYX1A=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=fn9rDdSfCrDTpY5ruBgqvkWTWVpBPWhn1yvsGWjQYTQsG37QRzCLX5ojQ0+utDZAsJlxHnmB97NGFF/ROkrENKCk+/x7djdC52kq14O5HG19hmJtueWD1PQU+qJ8ZnxgcyMOU0u6HAiTWHMW+JFDCUIzRaJJ9UuDBBig2625Xt4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=none smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=h1kHyLw9; arc=none smtp.client-ip=192.198.163.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1712949240; x=1744485240; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=Eu3ZcZPFL16HSzXgIdXanfvswaxE9WSR58W60oCYX1A=; b=h1kHyLw9jG1mSlPE9pRxS8PO1Ol8XraPcLvUWYI3+oHW7hq4SeLnPDkJ PWkYbsQ4dxkWqt5zdZQ0+rJ9KQXnRqJm7TOeve1WWz5lWBFbXGKOne5k3 XANrRS1tsW4UDvPXRtWGRUr6jzBsUrykUa0tAx6yGUX7k7zg4S/UjAEuh LLzUPq9ekbAL6qmxA+gzmYolj3tFyWDwPr6hXg1S1AD4FMxBISVW/o3kd dcpsGByryf5XtT4N45WXu9amMXw1vVXBrh5tXs7b0/9GjGXbTNLJI+Yth 7m7cbotxLZZgzChAfiHAocJA3TMLY7rqryraPG9ISBCdk0NLHxEO6pPW6 w==; X-CSE-ConnectionGUID: CUOPCJzMSjGxnSz03ZpSng== X-CSE-MsgGUID: s/svFllQR7Ggv6U2TdhLCg== X-IronPort-AV: E=McAfee;i="6600,9927,11042"; a="12200342" X-IronPort-AV: E=Sophos;i="6.07,197,1708416000"; d="scan'208";a="12200342" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2024 12:13:59 -0700 X-CSE-ConnectionGUID: VQj/SEm1QCagNhACyRVF7w== X-CSE-MsgGUID: vJ5c31aURduo5abfjbOttw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,197,1708416000"; d="scan'208";a="26107097" Received: from zchen24-mobl1.amr.corp.intel.com (HELO [10.209.67.36]) ([10.209.67.36]) by orviesa004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Apr 2024 12:13:59 -0700 Message-ID: <156e1b5b-0f19-4993-b46c-7b67b91317a4@linux.intel.com> Date: Fri, 12 Apr 2024 12:13:58 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 3/3] platform/x86/intel/ifs: Disable irq during one load stage To: Jithu Joseph , ilpo.jarvinen@linux.intel.com, hdegoede@redhat.com, markgross@kernel.org Cc: linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org, ashok.raj@intel.com, tony.luck@intel.com, rostedt@goodmis.org, ravi.v.shankar@intel.com, patches@lists.linux.dev References: <20240412172349.544064-1-jithu.joseph@intel.com> <20240412172349.544064-4-jithu.joseph@intel.com> Content-Language: en-US From: Kuppuswamy Sathyanarayanan In-Reply-To: <20240412172349.544064-4-jithu.joseph@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 4/12/24 10:23 AM, Jithu Joseph wrote: > One of the stages in IFS image loading process involves loading individual > chunks (test patterns) from test image file to secure memory. > > Driver issues a WRMSR(MSR_AUTHENTICATE_AND_COPY_CHUNK) operation to do > this. This operation can take up to 5 msec, and if an interrupt occurs > in between, the AUTH_AND_COPY_CHUNK u-code implementation aborts the > operation. > > Interrupt sources such as NMI or SMI are handled by retrying. Regular > interrupts may occur frequently enough to prevent this operation from ever > completing. Disable irq on local cpu around the aforementioned WRMSR to > allow the operation to complete. > > Signed-off-by: Jithu Joseph > Reviewed-by: Tony Luck > Reviewed-by: Ashok Raj > --- Looks good to me. Reviewed-by: Kuppuswamy Sathyanarayanan > drivers/platform/x86/intel/ifs/load.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/platform/x86/intel/ifs/load.c b/drivers/platform/x86/intel/ifs/load.c > index 584c44387e10..39f19cb51749 100644 > --- a/drivers/platform/x86/intel/ifs/load.c > +++ b/drivers/platform/x86/intel/ifs/load.c > @@ -233,7 +233,9 @@ static int copy_hashes_authenticate_chunks_gen2(struct device *dev) > chunk_table[0] = starting_chunk_nr + i; > chunk_table[1] = linear_addr; > do { > + local_irq_disable(); > wrmsrl(MSR_AUTHENTICATE_AND_COPY_CHUNK, (u64)chunk_table); > + local_irq_enable(); > rdmsrl(MSR_CHUNKS_AUTHENTICATION_STATUS, chunk_status.data); > err_code = chunk_status.error_code; > } while (err_code == AUTH_INTERRUPTED_ERROR && --retry_count); -- Sathyanarayanan Kuppuswamy Linux Kernel Developer