All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Sumit Gupta <sumitg@nvidia.com>
Cc: <treding@nvidia.com>, <krzysztof.kozlowski@linaro.org>,
	<jonathanh@nvidia.com>, <mark.rutland@arm.com>,
	<linux-kernel@vger.kernel.org>, <linux-tegra@vger.kernel.org>,
	<amhetre@nvidia.com>, <bbasu@nvidia.com>
Subject: Re: [Patch] memory: tegra: Skip SID override from Guest VM
Date: Tue, 06 Feb 2024 12:17:52 +0000	[thread overview]
Message-ID: <86wmrh6b2n.wl-maz@kernel.org> (raw)
In-Reply-To: <20240206114852.8472-1-sumitg@nvidia.com>

Hi Sumit,

On Tue, 06 Feb 2024 11:48:52 +0000,
Sumit Gupta <sumitg@nvidia.com> wrote:
> 
> MC SID register access is restricted for Guest VM.
> So, skip the SID override programming from the Guest VM.
> 
> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
> ---
>  drivers/memory/tegra/tegra186.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/memory/tegra/tegra186.c b/drivers/memory/tegra/tegra186.c
> index 1b3183951bfe..df441896b69d 100644
> --- a/drivers/memory/tegra/tegra186.c
> +++ b/drivers/memory/tegra/tegra186.c
> @@ -10,6 +10,7 @@
>  #include <linux/of.h>
>  #include <linux/of_platform.h>
>  #include <linux/platform_device.h>
> +#include <asm/virt.h>
>  
>  #include <soc/tegra/mc.h>
>  
> @@ -118,6 +119,11 @@ static int tegra186_mc_probe_device(struct tegra_mc *mc, struct device *dev)
>  	unsigned int i, index = 0;
>  	u32 sid;
>  
> +	if (!is_kernel_in_hyp_mode()) {
> +		dev_dbg(mc->dev, "Register access not allowed\n");
> +		return 0;
> +	}
> +
>  	if (!tegra_dev_iommu_get_stream_id(dev, &sid))
>  		return 0;
>  
> @@ -146,6 +152,11 @@ static int tegra186_mc_resume(struct tegra_mc *mc)
>  #if IS_ENABLED(CONFIG_IOMMU_API)
>  	unsigned int i;
>  
> +	if (!is_kernel_in_hyp_mode()) {
> +		dev_dbg(mc->dev, "Register access not allowed\n");
> +		return 0;
> +	}
> +
>  	for (i = 0; i < mc->soc->num_clients; i++) {
>  		const struct tegra_mc_client *client = &mc->soc->clients[i];
>  

This doesn't look right. Multiple reasons:

- This helper really has nothing to do in a driver. This is
  architectural stuff that is not intended for use outside of arch
  core code.

- My own tegra186 HW doesn't have VHE, since it is ARMv8.0, and this
  helper will always return 'false'. How could this result in
  something that still works? Can I get a free CPU upgrade?

- If you assign this device to a VM and that the hypervisor doesn't
  correctly virtualise it, then it is a different device and you
  should simply advertise it something else. Or even better, fix your
  hypervisor.

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.

  parent reply	other threads:[~2024-02-06 12:17 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-06 11:48 [Patch] memory: tegra: Skip SID override from Guest VM Sumit Gupta
2024-02-06 12:00 ` Krzysztof Kozlowski
2024-02-06 12:08 ` Mark Rutland
2024-02-06 12:17 ` Marc Zyngier [this message]
2024-02-06 12:28   ` Jon Hunter
2024-02-06 12:51     ` Jon Hunter
2024-02-06 12:54       ` Marc Zyngier
2024-02-06 12:53     ` Marc Zyngier
2024-02-06 14:07       ` Thierry Reding
2024-02-06 14:54         ` Marc Zyngier
2024-02-06 17:08           ` Thierry Reding
2024-02-07 12:03             ` Marc Zyngier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86wmrh6b2n.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=amhetre@nvidia.com \
    --cc=bbasu@nvidia.com \
    --cc=jonathanh@nvidia.com \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=sumitg@nvidia.com \
    --cc=treding@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.