[PATCH v2 16/17] drivers/firmware/sdei: Retrieve event signaled property on registration

Gavin Shan gshan at redhat.com
Mon Jul 27 06:03:32 EDT 2020


Hi Jonathan,

On 7/27/20 7:04 PM, Jonathan Cameron wrote:
> On Mon, 27 Jul 2020 10:53:27 +1000
> Gavin Shan <gshan at redhat.com> wrote:
>> On 7/24/20 1:24 AM, Jonathan Cameron wrote:
>>> On Wed, 22 Jul 2020 19:57:39 +1000
>>> Gavin Shan <gshan at redhat.com> wrote:
>>>    
>>>> This retrieves the event signaled property when it's created for the
>>>> first time. The property will be needed when SDEI virtualization is
>>>> supported.
>>>>
>>>> Signed-off-by: Gavin Shan <gshan at redhat.com>
>>>
>>> These last two patches are probably fine but hard to tell without a user.
>>>    
>>
>> Good question. Let me explain the background and please let me know
>> if you have more questions. SDEI was suggested by Marc to deliver
>> the notification during the asynchronous page fault, so that the
>> process can be rescheduled in guest. Unfortunately, we don't have
>> SDEI (or virtualized SDEI) supported yet. So the additional event
>> information is needed when SDEI virtualization is supported.
>>
>> The code of SDEI virtualization can be checked out from github:
>>
>> https://github.com/gwshan/linux/tree/sdei (branch: "sdei")
> Thanks.
> 
> I'd be tempted to move these two patches to the next series
> that includes the users.
> 
> I forgot to say, I'm fine with all the patches I didn't comment on.
> 

Yes, it's fine to move the last two patches to where we need
them. Thanks for your review and comments. May I have your
reviewed-by on those patches you didn't comment on? I would
like to pick the reviwed-by in v3 :)

>>    
>>>> ---
>>>>    drivers/firmware/arm_sdei.c | 6 ++++++
>>>>    include/linux/arm_sdei.h    | 1 +
>>>>    2 files changed, 7 insertions(+)
>>>>
>>>> diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
>>>> index cf10fec57f2a..7518d3febf53 100644
>>>> --- a/drivers/firmware/arm_sdei.c
>>>> +++ b/drivers/firmware/arm_sdei.c
>>>> @@ -204,6 +204,12 @@ static struct sdei_event *sdei_event_create(u32 event_num,
>>>>    		goto fail;
>>>>    	event->type = result;
>>>>    
>>>> +	err = sdei_api_event_get_info(event_num, SDEI_EVENT_INFO_EV_SIGNALED,
>>>> +				      &result);
>>>> +	if (err)
>>>> +		goto fail;
>>>> +	event->signaled = result;
>>>> +
>>>>    	if (event->type == SDEI_EVENT_TYPE_SHARED) {
>>>>    		reg = kzalloc(sizeof(*reg), GFP_KERNEL);
>>>>    		if (!reg) {
>>>> diff --git a/include/linux/arm_sdei.h b/include/linux/arm_sdei.h
>>>> index 11af6410dd52..7f3ed7e4b680 100644
>>>> --- a/include/linux/arm_sdei.h
>>>> +++ b/include/linux/arm_sdei.h
>>>> @@ -51,6 +51,7 @@ struct sdei_event {
>>>>    	u32			event_num;
>>>>    	u8			type;
>>>>    	u8			priority;
>>>> +	u8			signaled;
>>>>    
>>>>    	/* This pointer is handed to firmware as the event argument. */
>>>>    	union {
>>

Thanks,
Gavin




More information about the linux-arm-kernel mailing list