Received: by 2002:a05:7412:2a8c:b0:e2:908c:2ebd with SMTP id u12csp1654871rdh; Mon, 25 Sep 2023 22:11:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE3hMyl3BR7GA2fkFiW76xtXtrOTcv7uaBC0VvM24hXaLBlfDSO0HmBtlPMx94RCAQ7vQNj X-Received: by 2002:a05:6a20:1590:b0:159:f71f:4083 with SMTP id h16-20020a056a20159000b00159f71f4083mr7819026pzj.6.1695705111800; Mon, 25 Sep 2023 22:11:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695705111; cv=none; d=google.com; s=arc-20160816; b=Q1/el9CAHQiW7L7gvMUpCZS33f/kBRKC6vxhhkCjqw7/LRifTwisQaJi1tjTEwV0O+ Clcqbyo+uhzYfaJHdkU5JlyEb39o+I6xtDLo9onVR6xWPQiCAM25iNoMEgvSyEHipyJa V8wzZTweAzo3485Hd09bwzbB0L9o1Y0SSfDBtO7FifIrFWmIrBssZawFLBNXW4w3GA3R wwQc7EDmkUrxUpjRuq5txvH9t7RmyUDMrE9UgSUhfeKOJ8MX3Qei4u08QC27cQ+5OMza AkYE2tg1DqdBLmDQOJkiXQPu0AeKuNin/be47vvo47xF3Oj0z66BplKH3tBPKsr8b9qc I3pQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature:dkim-filter; bh=QZodBqGHLOewJOW6wRe5geNAIIU82UjzOMXe88tfjPE=; fh=3LbH/7NLHcqdPAJ9xq16zrKfAcVDfvgt5cytavFcvQk=; b=RBqVcRmvECh4qeySw0S5Gq8JYPlf50qDJZ/ERalsnif076jSImFXq7fmfiefl+Uwn7 gtcI2V5l694FvXIG6M2HTU8WhrMTCdOB1dgDvCZuissuWf8Jbq7lNJM4dKNtVaqeDOcG CT5Rv5fww2Qtplx4Pbg28j8hHFwZ9L8cBM3gCAfJq6HfeyUqKq7i75ayweDxz42tqcLN T9Dd2JyaeGKZQ3w3DYJTTdNHd73JRHu0CW1GAkuDFdbZdDIg7w0Bb0XlaJ9SUfILdiP9 c+HjH90aMeSCMqYajd9FlmxS67j+Klfn//2eSs0ypLD1zO/rGBdgn/0JPEZInguCHlIV OYPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=kmTYP0lW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Return-Path: Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id bf13-20020a17090b0b0d00b00274b668b762si11498768pjb.172.2023.09.25.22.11.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Sep 2023 22:11:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=kmTYP0lW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id C6837801B7BB; Mon, 25 Sep 2023 17:07:31 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230292AbjIZAH2 (ORCPT + 99 others); Mon, 25 Sep 2023 20:07:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229495AbjIZAH0 (ORCPT ); Mon, 25 Sep 2023 20:07:26 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B3D8710E; Mon, 25 Sep 2023 17:07:19 -0700 (PDT) Received: from [10.0.0.178] (c-76-135-56-23.hsd1.wa.comcast.net [76.135.56.23]) by linux.microsoft.com (Postfix) with ESMTPSA id AA1D320B74C0; Mon, 25 Sep 2023 17:07:18 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com AA1D320B74C0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1695686839; bh=QZodBqGHLOewJOW6wRe5geNAIIU82UjzOMXe88tfjPE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=kmTYP0lWHcekOyaKUSaNB5IUOvjE7JowCi4cvfizTGz5XrByutoXC7Nn8iodtOL5S yd0NXd+7/jOmpmxv4AqC5GfNM9SbURuMj6c6nmdV1ClKyUL8JX7CCgIEW3ISjk295x lAKUsxfmyJul+OZjhzVhc6tGwAGW9CQByXb1DnKY= Message-ID: Date: Mon, 25 Sep 2023 17:07:24 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V Content-Language: en-US To: Greg KH Cc: linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org, linux-arm-kernel@lists.infradead.org, linux-arch@vger.kernel.org, patches@lists.linux.dev, mikelley@microsoft.com, kys@microsoft.com, wei.liu@kernel.org, haiyangz@microsoft.com, decui@microsoft.com, apais@linux.microsoft.com, Tianyu.Lan@microsoft.com, ssengar@linux.microsoft.com, mukeshrathor@microsoft.com, stanislav.kinsburskiy@gmail.com, jinankjain@linux.microsoft.com, vkuznets@redhat.com, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, will@kernel.org, catalin.marinas@arm.com References: <1695407915-12216-1-git-send-email-nunodasneves@linux.microsoft.com> <1695407915-12216-16-git-send-email-nunodasneves@linux.microsoft.com> <2023092342-staunch-chafe-1598@gregkh> From: Nuno Das Neves In-Reply-To: <2023092342-staunch-chafe-1598@gregkh> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 25 Sep 2023 17:07:31 -0700 (PDT) Resend in plain text instead of HTML - oops! On 9/23/2023 12:58 AM, Greg KH wrote: > On Fri, Sep 22, 2023 at 11:38:35AM -0700, Nuno Das Neves wrote: >> +static int mshv_vtl_get_vsm_regs(void) >> +{ >> + struct hv_register_assoc registers[2]; >> + union hv_input_vtl input_vtl; >> + int ret, count = 2; >> + >> + input_vtl.as_uint8 = 0; >> + registers[0].name = HV_REGISTER_VSM_CODE_PAGE_OFFSETS; >> + registers[1].name = HV_REGISTER_VSM_CAPABILITIES; >> + >> + ret = hv_call_get_vp_registers(HV_VP_INDEX_SELF, HV_PARTITION_ID_SELF, >> + count, input_vtl, registers); >> + if (ret) >> + return ret; >> + >> + mshv_vsm_page_offsets.as_uint64 = registers[0].value.reg64; >> + mshv_vsm_capabilities.as_uint64 = registers[1].value.reg64; >> + >> + pr_debug("%s: VSM code page offsets: %#016llx\n", __func__, >> + mshv_vsm_page_offsets.as_uint64); >> + pr_info("%s: VSM capabilities: %#016llx\n", __func__, >> + mshv_vsm_capabilities.as_uint64); > > When drivers are working properly, they are quiet. This is very noisy > and probably is leaking memory addresses to userspace? > I will remove these, thanks. > Also, there is NEVER a need for __func__ in a pr_debug() line, it has > that for you automatically. > Thank you, I didn't know this. > Also, drivers should never call pr_*() calls, always use the proper > dev_*() calls instead. > We only use struct device in one place in this driver, I think that is the only place it makes sense to use dev_*() over pr_*() calls. > > >> + >> + return ret; >> +} >> + >> +static int mshv_vtl_configure_vsm_partition(void) >> +{ >> + union hv_register_vsm_partition_config config; >> + struct hv_register_assoc reg_assoc; >> + union hv_input_vtl input_vtl; >> + >> + config.as_u64 = 0; >> + config.default_vtl_protection_mask = HV_MAP_GPA_PERMISSIONS_MASK; >> + config.enable_vtl_protection = 1; >> + config.zero_memory_on_reset = 1; >> + config.intercept_vp_startup = 1; >> + config.intercept_cpuid_unimplemented = 1; >> + >> + if (mshv_vsm_capabilities.intercept_page_available) { >> + pr_debug("%s: using intercept page", __func__); > > Again, __func__ is not needed, you are providing it twice here for no > real reason except to waste storage space :) > Thanks, I will review all the uses of pr_debug(). >> + config.intercept_page = 1; >> + } >> + >> + reg_assoc.name = HV_REGISTER_VSM_PARTITION_CONFIG; >> + reg_assoc.value.reg64 = config.as_u64; >> + input_vtl.as_uint8 = 0; >> + >> + return hv_call_set_vp_registers(HV_VP_INDEX_SELF, HV_PARTITION_ID_SELF, >> + 1, input_vtl, ®_assoc); > > > None of this needs to be unwound if initialization fails later on? > I think unwinding this is not needed, not 100% sure. Saurabh, can you comment? Thanks, Nuno > thanks, > > greg k-h