From: Atish Patra <atish.patra@linux.dev>
To: "Clément Léger" <cleger@rivosinc.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Anup Patel" <anup@brainfault.org>,
"Atish Patra" <atishp@atishpatra.org>,
"Shuah Khan" <shuah@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, kvm@vger.kernel.org,
kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org
Cc: Samuel Holland <samuel.holland@sifive.com>,
Andrew Jones <ajones@ventanamicro.com>,
Deepak Gupta <debug@rivosinc.com>
Subject: Re: [PATCH v6 04/14] riscv: sbi: add FWFT extension interface
Date: Mon, 12 May 2025 11:00:21 -0700 [thread overview]
Message-ID: <f27b0506-4841-4650-a0ee-0fe1643fdf37@linux.dev> (raw)
In-Reply-To: <fe9d801b-007d-476d-97fe-96d0f3d218cd@rivosinc.com>
On 5/12/25 1:14 AM, Clément Léger wrote:
>
> On 09/05/2025 02:18, Atish Patra wrote:
>> On 4/24/25 10:31 AM, Clément Léger wrote:
>>> This SBI extensions enables supervisor mode to control feature that are
>>> under M-mode control (For instance, Svadu menvcfg ADUE bit, Ssdbltrp
>>> DTE, etc). Add an interface to set local features for a specific cpu
>>> mask as well as for the online cpu mask.
>>>
>>> Signed-off-by: Clément Léger <cleger@rivosinc.com>
>>> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
>>> ---
>>> arch/riscv/include/asm/sbi.h | 17 +++++++++++
>>> arch/riscv/kernel/sbi.c | 57 ++++++++++++++++++++++++++++++++++++
>>> 2 files changed, 74 insertions(+)
>>>
>>> diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h
>>> index 7ec249fea880..3bbef56bcefc 100644
>>> --- a/arch/riscv/include/asm/sbi.h
>>> +++ b/arch/riscv/include/asm/sbi.h
>>> @@ -503,6 +503,23 @@ int sbi_remote_hfence_vvma_asid(const struct
>>> cpumask *cpu_mask,
>>> unsigned long asid);
>>> long sbi_probe_extension(int ext);
>>> +int sbi_fwft_set(u32 feature, unsigned long value, unsigned long
>>> flags);
>>> +int sbi_fwft_set_cpumask(const cpumask_t *mask, u32 feature,
>>> + unsigned long value, unsigned long flags);
>>> +/**
>>> + * sbi_fwft_set_online_cpus() - Set a feature on all online cpus
>>> + * @feature: The feature to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +static inline int sbi_fwft_set_online_cpus(u32 feature, unsigned long
>>> value,
>>> + unsigned long flags)
>>> +{
>>> + return sbi_fwft_set_cpumask(cpu_online_mask, feature, value, flags);
>>> +}
>>> +
>>> /* Check if current SBI specification version is 0.1 or not */
>>> static inline int sbi_spec_is_0_1(void)
>>> {
>>> diff --git a/arch/riscv/kernel/sbi.c b/arch/riscv/kernel/sbi.c
>>> index 1d44c35305a9..d57e4dae7dac 100644
>>> --- a/arch/riscv/kernel/sbi.c
>>> +++ b/arch/riscv/kernel/sbi.c
>>> @@ -299,6 +299,63 @@ static int __sbi_rfence_v02(int fid, const struct
>>> cpumask *cpu_mask,
>>> return 0;
>>> }
>>> +/**
>>> + * sbi_fwft_set() - Set a feature on the local hart
>>> + * @feature: The feature ID to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +int sbi_fwft_set(u32 feature, unsigned long value, unsigned long flags)
>>> +{
>>> + return -EOPNOTSUPP;
>>> +}
>>> +
>>> +struct fwft_set_req {
>>> + u32 feature;
>>> + unsigned long value;
>>> + unsigned long flags;
>>> + atomic_t error;
>>> +};
>>> +
>>> +static void cpu_sbi_fwft_set(void *arg)
>>> +{
>>> + struct fwft_set_req *req = arg;
>>> + int ret;
>>> +
>>> + ret = sbi_fwft_set(req->feature, req->value, req->flags);
>>> + if (ret)
>>> + atomic_set(&req->error, ret);
>> What happens when cpuX executed first reported an error but cpuY
>> executed this function later and report success.
>>
>> The error will be masked in that case.
> We actually only set the bit if an error happened (consider it as a
> sticky error bit). So if CPUy reports success, it won't clear the bit.
Ahh yes. I missed that.
> Thanks,
>
> Clément
>
>>> +}
>>> +
>>> +/**
>>> + * sbi_fwft_set_cpumask() - Set a feature for the specified cpumask
>>> + * @mask: CPU mask of cpus that need the feature to be set
>>> + * @feature: The feature ID to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +int sbi_fwft_set_cpumask(const cpumask_t *mask, u32 feature,
>>> + unsigned long value, unsigned long flags)
>>> +{
>>> + struct fwft_set_req req = {
>>> + .feature = feature,
>>> + .value = value,
>>> + .flags = flags,
>>> + .error = ATOMIC_INIT(0),
>>> + };
>>> +
>>> + if (feature & SBI_FWFT_GLOBAL_FEATURE_BIT)
>>> + return -EINVAL;
>>> +
>>> + on_each_cpu_mask(mask, cpu_sbi_fwft_set, &req, 1);
>>> +
>>> + return atomic_read(&req.error);
>>> +}
>>> +
>>> /**
>>> * sbi_set_timer() - Program the timer for next timer event.
>>> * @stime_value: The value after which next timer event should fire.
--
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Atish Patra <atish.patra@linux.dev>
To: "Clément Léger" <cleger@rivosinc.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Anup Patel" <anup@brainfault.org>,
"Atish Patra" <atishp@atishpatra.org>,
"Shuah Khan" <shuah@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, kvm@vger.kernel.org,
kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org
Cc: Samuel Holland <samuel.holland@sifive.com>,
Andrew Jones <ajones@ventanamicro.com>,
Deepak Gupta <debug@rivosinc.com>
Subject: Re: [PATCH v6 04/14] riscv: sbi: add FWFT extension interface
Date: Mon, 12 May 2025 11:00:21 -0700 [thread overview]
Message-ID: <f27b0506-4841-4650-a0ee-0fe1643fdf37@linux.dev> (raw)
In-Reply-To: <fe9d801b-007d-476d-97fe-96d0f3d218cd@rivosinc.com>
On 5/12/25 1:14 AM, Clément Léger wrote:
>
> On 09/05/2025 02:18, Atish Patra wrote:
>> On 4/24/25 10:31 AM, Clément Léger wrote:
>>> This SBI extensions enables supervisor mode to control feature that are
>>> under M-mode control (For instance, Svadu menvcfg ADUE bit, Ssdbltrp
>>> DTE, etc). Add an interface to set local features for a specific cpu
>>> mask as well as for the online cpu mask.
>>>
>>> Signed-off-by: Clément Léger <cleger@rivosinc.com>
>>> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
>>> ---
>>> arch/riscv/include/asm/sbi.h | 17 +++++++++++
>>> arch/riscv/kernel/sbi.c | 57 ++++++++++++++++++++++++++++++++++++
>>> 2 files changed, 74 insertions(+)
>>>
>>> diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h
>>> index 7ec249fea880..3bbef56bcefc 100644
>>> --- a/arch/riscv/include/asm/sbi.h
>>> +++ b/arch/riscv/include/asm/sbi.h
>>> @@ -503,6 +503,23 @@ int sbi_remote_hfence_vvma_asid(const struct
>>> cpumask *cpu_mask,
>>> unsigned long asid);
>>> long sbi_probe_extension(int ext);
>>> +int sbi_fwft_set(u32 feature, unsigned long value, unsigned long
>>> flags);
>>> +int sbi_fwft_set_cpumask(const cpumask_t *mask, u32 feature,
>>> + unsigned long value, unsigned long flags);
>>> +/**
>>> + * sbi_fwft_set_online_cpus() - Set a feature on all online cpus
>>> + * @feature: The feature to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +static inline int sbi_fwft_set_online_cpus(u32 feature, unsigned long
>>> value,
>>> + unsigned long flags)
>>> +{
>>> + return sbi_fwft_set_cpumask(cpu_online_mask, feature, value, flags);
>>> +}
>>> +
>>> /* Check if current SBI specification version is 0.1 or not */
>>> static inline int sbi_spec_is_0_1(void)
>>> {
>>> diff --git a/arch/riscv/kernel/sbi.c b/arch/riscv/kernel/sbi.c
>>> index 1d44c35305a9..d57e4dae7dac 100644
>>> --- a/arch/riscv/kernel/sbi.c
>>> +++ b/arch/riscv/kernel/sbi.c
>>> @@ -299,6 +299,63 @@ static int __sbi_rfence_v02(int fid, const struct
>>> cpumask *cpu_mask,
>>> return 0;
>>> }
>>> +/**
>>> + * sbi_fwft_set() - Set a feature on the local hart
>>> + * @feature: The feature ID to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +int sbi_fwft_set(u32 feature, unsigned long value, unsigned long flags)
>>> +{
>>> + return -EOPNOTSUPP;
>>> +}
>>> +
>>> +struct fwft_set_req {
>>> + u32 feature;
>>> + unsigned long value;
>>> + unsigned long flags;
>>> + atomic_t error;
>>> +};
>>> +
>>> +static void cpu_sbi_fwft_set(void *arg)
>>> +{
>>> + struct fwft_set_req *req = arg;
>>> + int ret;
>>> +
>>> + ret = sbi_fwft_set(req->feature, req->value, req->flags);
>>> + if (ret)
>>> + atomic_set(&req->error, ret);
>> What happens when cpuX executed first reported an error but cpuY
>> executed this function later and report success.
>>
>> The error will be masked in that case.
> We actually only set the bit if an error happened (consider it as a
> sticky error bit). So if CPUy reports success, it won't clear the bit.
Ahh yes. I missed that.
> Thanks,
>
> Clément
>
>>> +}
>>> +
>>> +/**
>>> + * sbi_fwft_set_cpumask() - Set a feature for the specified cpumask
>>> + * @mask: CPU mask of cpus that need the feature to be set
>>> + * @feature: The feature ID to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +int sbi_fwft_set_cpumask(const cpumask_t *mask, u32 feature,
>>> + unsigned long value, unsigned long flags)
>>> +{
>>> + struct fwft_set_req req = {
>>> + .feature = feature,
>>> + .value = value,
>>> + .flags = flags,
>>> + .error = ATOMIC_INIT(0),
>>> + };
>>> +
>>> + if (feature & SBI_FWFT_GLOBAL_FEATURE_BIT)
>>> + return -EINVAL;
>>> +
>>> + on_each_cpu_mask(mask, cpu_sbi_fwft_set, &req, 1);
>>> +
>>> + return atomic_read(&req.error);
>>> +}
>>> +
>>> /**
>>> * sbi_set_timer() - Program the timer for next timer event.
>>> * @stime_value: The value after which next timer event should fire.
WARNING: multiple messages have this Message-ID (diff)
From: Atish Patra <atish.patra@linux.dev>
To: "Clément Léger" <cleger@rivosinc.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Anup Patel" <anup@brainfault.org>,
"Atish Patra" <atishp@atishpatra.org>,
"Shuah Khan" <shuah@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, kvm@vger.kernel.org,
kvm-riscv@lists.infradead.org, linux-kselftest@vger.kernel.org
Cc: Samuel Holland <samuel.holland@sifive.com>,
Andrew Jones <ajones@ventanamicro.com>,
Deepak Gupta <debug@rivosinc.com>
Subject: Re: [PATCH v6 04/14] riscv: sbi: add FWFT extension interface
Date: Mon, 12 May 2025 11:00:21 -0700 [thread overview]
Message-ID: <f27b0506-4841-4650-a0ee-0fe1643fdf37@linux.dev> (raw)
In-Reply-To: <fe9d801b-007d-476d-97fe-96d0f3d218cd@rivosinc.com>
On 5/12/25 1:14 AM, Clément Léger wrote:
>
> On 09/05/2025 02:18, Atish Patra wrote:
>> On 4/24/25 10:31 AM, Clément Léger wrote:
>>> This SBI extensions enables supervisor mode to control feature that are
>>> under M-mode control (For instance, Svadu menvcfg ADUE bit, Ssdbltrp
>>> DTE, etc). Add an interface to set local features for a specific cpu
>>> mask as well as for the online cpu mask.
>>>
>>> Signed-off-by: Clément Léger <cleger@rivosinc.com>
>>> Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
>>> ---
>>> arch/riscv/include/asm/sbi.h | 17 +++++++++++
>>> arch/riscv/kernel/sbi.c | 57 ++++++++++++++++++++++++++++++++++++
>>> 2 files changed, 74 insertions(+)
>>>
>>> diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h
>>> index 7ec249fea880..3bbef56bcefc 100644
>>> --- a/arch/riscv/include/asm/sbi.h
>>> +++ b/arch/riscv/include/asm/sbi.h
>>> @@ -503,6 +503,23 @@ int sbi_remote_hfence_vvma_asid(const struct
>>> cpumask *cpu_mask,
>>> unsigned long asid);
>>> long sbi_probe_extension(int ext);
>>> +int sbi_fwft_set(u32 feature, unsigned long value, unsigned long
>>> flags);
>>> +int sbi_fwft_set_cpumask(const cpumask_t *mask, u32 feature,
>>> + unsigned long value, unsigned long flags);
>>> +/**
>>> + * sbi_fwft_set_online_cpus() - Set a feature on all online cpus
>>> + * @feature: The feature to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +static inline int sbi_fwft_set_online_cpus(u32 feature, unsigned long
>>> value,
>>> + unsigned long flags)
>>> +{
>>> + return sbi_fwft_set_cpumask(cpu_online_mask, feature, value, flags);
>>> +}
>>> +
>>> /* Check if current SBI specification version is 0.1 or not */
>>> static inline int sbi_spec_is_0_1(void)
>>> {
>>> diff --git a/arch/riscv/kernel/sbi.c b/arch/riscv/kernel/sbi.c
>>> index 1d44c35305a9..d57e4dae7dac 100644
>>> --- a/arch/riscv/kernel/sbi.c
>>> +++ b/arch/riscv/kernel/sbi.c
>>> @@ -299,6 +299,63 @@ static int __sbi_rfence_v02(int fid, const struct
>>> cpumask *cpu_mask,
>>> return 0;
>>> }
>>> +/**
>>> + * sbi_fwft_set() - Set a feature on the local hart
>>> + * @feature: The feature ID to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +int sbi_fwft_set(u32 feature, unsigned long value, unsigned long flags)
>>> +{
>>> + return -EOPNOTSUPP;
>>> +}
>>> +
>>> +struct fwft_set_req {
>>> + u32 feature;
>>> + unsigned long value;
>>> + unsigned long flags;
>>> + atomic_t error;
>>> +};
>>> +
>>> +static void cpu_sbi_fwft_set(void *arg)
>>> +{
>>> + struct fwft_set_req *req = arg;
>>> + int ret;
>>> +
>>> + ret = sbi_fwft_set(req->feature, req->value, req->flags);
>>> + if (ret)
>>> + atomic_set(&req->error, ret);
>> What happens when cpuX executed first reported an error but cpuY
>> executed this function later and report success.
>>
>> The error will be masked in that case.
> We actually only set the bit if an error happened (consider it as a
> sticky error bit). So if CPUy reports success, it won't clear the bit.
Ahh yes. I missed that.
> Thanks,
>
> Clément
>
>>> +}
>>> +
>>> +/**
>>> + * sbi_fwft_set_cpumask() - Set a feature for the specified cpumask
>>> + * @mask: CPU mask of cpus that need the feature to be set
>>> + * @feature: The feature ID to be set
>>> + * @value: The feature value to be set
>>> + * @flags: FWFT feature set flags
>>> + *
>>> + * Return: 0 on success, appropriate linux error code otherwise.
>>> + */
>>> +int sbi_fwft_set_cpumask(const cpumask_t *mask, u32 feature,
>>> + unsigned long value, unsigned long flags)
>>> +{
>>> + struct fwft_set_req req = {
>>> + .feature = feature,
>>> + .value = value,
>>> + .flags = flags,
>>> + .error = ATOMIC_INIT(0),
>>> + };
>>> +
>>> + if (feature & SBI_FWFT_GLOBAL_FEATURE_BIT)
>>> + return -EINVAL;
>>> +
>>> + on_each_cpu_mask(mask, cpu_sbi_fwft_set, &req, 1);
>>> +
>>> + return atomic_read(&req.error);
>>> +}
>>> +
>>> /**
>>> * sbi_set_timer() - Program the timer for next timer event.
>>> * @stime_value: The value after which next timer event should fire.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-05-12 18:12 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-24 17:31 [PATCH v6 00/14] riscv: add SBI FWFT misaligned exception delegation support Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` [PATCH v6 01/14] riscv: sbi: add Firmware Feature (FWFT) SBI extensions definitions Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-05-08 20:17 ` Atish Patra
2025-05-08 20:17 ` Atish Patra
2025-05-08 20:17 ` Atish Patra
2025-04-24 17:31 ` [PATCH v6 02/14] riscv: sbi: remove useless parenthesis Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-25 7:46 ` Andrew Jones
2025-04-25 7:46 ` Andrew Jones
2025-04-25 7:46 ` Andrew Jones
2025-05-08 20:18 ` Atish Patra
2025-05-08 20:18 ` Atish Patra
2025-05-08 20:18 ` Atish Patra
2025-04-24 17:31 ` [PATCH v6 03/14] riscv: sbi: add new SBI error mappings Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-05-08 20:18 ` Atish Patra
2025-05-08 20:18 ` Atish Patra
2025-05-08 20:18 ` Atish Patra
2025-04-24 17:31 ` [PATCH v6 04/14] riscv: sbi: add FWFT extension interface Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-05-08 22:52 ` Atish Patra
2025-05-08 22:52 ` Atish Patra
2025-05-08 22:52 ` Atish Patra
2025-05-09 0:18 ` Atish Patra
2025-05-09 0:18 ` Atish Patra
2025-05-09 0:18 ` Atish Patra
2025-05-12 8:14 ` Clément Léger
2025-05-12 8:14 ` Clément Léger
2025-05-12 8:14 ` Clément Léger
2025-05-12 18:00 ` Atish Patra [this message]
2025-05-12 18:00 ` Atish Patra
2025-05-12 18:00 ` Atish Patra
2025-04-24 17:31 ` [PATCH v6 05/14] riscv: sbi: add SBI FWFT extension calls Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-05-08 23:01 ` Atish Patra
2025-05-08 23:01 ` Atish Patra
2025-05-08 23:01 ` Atish Patra
2025-04-24 17:31 ` [PATCH v6 06/14] riscv: misaligned: request misaligned exception from SBI Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` [PATCH v6 07/14] riscv: misaligned: use on_each_cpu() for scalar misaligned access probing Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` [PATCH v6 08/14] riscv: misaligned: use correct CONFIG_ ifdef for misaligned_access_speed Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` [PATCH v6 09/14] riscv: misaligned: move emulated access uniformity check in a function Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` [PATCH v6 10/14] riscv: misaligned: add a function to check misalign trap delegability Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 18:18 ` ALOK TIWARI
2025-04-24 18:18 ` ALOK TIWARI
2025-04-24 18:18 ` ALOK TIWARI
2025-04-24 17:31 ` [PATCH v6 11/14] RISC-V: KVM: add SBI extension init()/deinit() functions Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-05-08 17:27 ` Palmer Dabbelt
2025-05-08 17:27 ` Palmer Dabbelt
2025-05-08 17:27 ` Palmer Dabbelt
2025-05-09 3:20 ` Anup Patel
2025-05-09 3:20 ` Anup Patel
2025-05-09 3:20 ` Anup Patel
2025-05-09 0:26 ` Atish Patra
2025-05-09 0:26 ` Atish Patra
2025-05-09 0:26 ` Atish Patra
2025-04-24 17:31 ` [PATCH v6 12/14] RISC-V: KVM: add SBI extension reset callback Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-04-24 17:31 ` Clément Léger
2025-05-09 0:28 ` Atish Patra
2025-05-09 0:28 ` Atish Patra
2025-05-09 0:28 ` Atish Patra
2025-04-24 17:32 ` [PATCH v6 13/14] RISC-V: KVM: add support for FWFT SBI extension Clément Léger
2025-04-24 17:32 ` Clément Léger
2025-04-24 17:32 ` Clément Léger
2025-05-09 18:49 ` Atish Patra
2025-05-09 18:49 ` Atish Patra
2025-05-09 18:49 ` Atish Patra
2025-04-24 17:32 ` [PATCH v6 14/14] RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG Clément Léger
2025-04-24 17:32 ` Clément Léger
2025-04-24 17:32 ` Clément Léger
2025-05-09 18:09 ` Atish Patra
2025-05-09 18:09 ` Atish Patra
2025-05-09 18:09 ` Atish Patra
2025-05-12 8:28 ` Clément Léger
2025-05-12 8:28 ` Clément Léger
2025-05-12 8:28 ` Clément Léger
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=f27b0506-4841-4650-a0ee-0fe1643fdf37@linux.dev \
--to=atish.patra@linux.dev \
--cc=ajones@ventanamicro.com \
--cc=anup@brainfault.org \
--cc=atishp@atishpatra.org \
--cc=cleger@rivosinc.com \
--cc=corbet@lwn.net \
--cc=debug@rivosinc.com \
--cc=kvm-riscv@lists.infradead.org \
--cc=kvm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=samuel.holland@sifive.com \
--cc=shuah@kernel.org \
/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.