2020-10-14 09:23:10

by Paraschiv, Andra-Irina

[permalink] [raw]
Subject: [PATCH v1] nitro_enclaves: Fixup type of the poll result assigned value

Update the assigned value of the poll result to be EPOLLHUP instead of
POLLHUP to match the __poll_t type.

Signed-off-by: Andra Paraschiv <[email protected]>
Reported-by: kernel test robot <[email protected]>
---
drivers/virt/nitro_enclaves/ne_misc_dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev.c b/drivers/virt/nitro_enclaves/ne_misc_dev.c
index f06622b48d69..9148566455e8 100644
--- a/drivers/virt/nitro_enclaves/ne_misc_dev.c
+++ b/drivers/virt/nitro_enclaves/ne_misc_dev.c
@@ -1508,7 +1508,7 @@ static __poll_t ne_enclave_poll(struct file *file, poll_table *wait)
if (!ne_enclave->has_event)
return mask;

- mask = POLLHUP;
+ mask = EPOLLHUP;

return mask;
}
--
2.20.1 (Apple Git-117)




Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.


2020-11-02 16:19:39

by Alexander Graf

[permalink] [raw]
Subject: Re: [PATCH v1] nitro_enclaves: Fixup type of the poll result assigned value



On 14.10.20 11:05, Andra Paraschiv wrote:
> Update the assigned value of the poll result to be EPOLLHUP instead of
> POLLHUP to match the __poll_t type.
>
> Signed-off-by: Andra Paraschiv <[email protected]>
> Reported-by: kernel test robot <[email protected]>
> ---
> drivers/virt/nitro_enclaves/ne_misc_dev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev.c b/drivers/virt/nitro_enclaves/ne_misc_dev.c
> index f06622b48d69..9148566455e8 100644
> --- a/drivers/virt/nitro_enclaves/ne_misc_dev.c
> +++ b/drivers/virt/nitro_enclaves/ne_misc_dev.c
> @@ -1508,7 +1508,7 @@ static __poll_t ne_enclave_poll(struct file *file, poll_table *wait)
> if (!ne_enclave->has_event)
> return mask;
>
> - mask = POLLHUP;
> + mask = EPOLLHUP;

That whole function looks a bit ... convoluted? How about this? I guess
you could trim it down even further, but this looks quite readable to me:

diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev.c
b/drivers/virt/nitro_enclaves/ne_misc_dev.c
index f06622b48d69..5b7f45e2eb4c 100644
--- a/drivers/virt/nitro_enclaves/ne_misc_dev.c
+++ b/drivers/virt/nitro_enclaves/ne_misc_dev.c
@@ -1505,10 +1505,8 @@ static __poll_t ne_enclave_poll(struct file
*file, poll_table *wait)

poll_wait(file, &ne_enclave->eventq, wait);

- if (!ne_enclave->has_event)
- return mask;
-
- mask = POLLHUP;
+ if (ne_enclave->has_event)
+ mask |= POLLHUP;

return mask;
}


Alex



Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879



2020-11-02 17:55:33

by Paraschiv, Andra-Irina

[permalink] [raw]
Subject: Re: [PATCH v1] nitro_enclaves: Fixup type of the poll result assigned value



On 02/11/2020 18:16, Alexander Graf wrote:
>
>
> On 14.10.20 11:05, Andra Paraschiv wrote:
>> Update the assigned value of the poll result to be EPOLLHUP instead of
>> POLLHUP to match the __poll_t type.
>>
>> Signed-off-by: Andra Paraschiv <[email protected]>
>> Reported-by: kernel test robot <[email protected]>
>> ---
>> ? drivers/virt/nitro_enclaves/ne_misc_dev.c | 2 +-
>> ? 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev.c
>> b/drivers/virt/nitro_enclaves/ne_misc_dev.c
>> index f06622b48d69..9148566455e8 100644
>> --- a/drivers/virt/nitro_enclaves/ne_misc_dev.c
>> +++ b/drivers/virt/nitro_enclaves/ne_misc_dev.c
>> @@ -1508,7 +1508,7 @@ static __poll_t ne_enclave_poll(struct file
>> *file, poll_table *wait)
>> ????? if (!ne_enclave->has_event)
>> ????????? return mask;
>> ? -??? mask = POLLHUP;
>> +??? mask = EPOLLHUP;
>
> That whole function looks a bit ... convoluted? How about this? I
> guess you could trim it down even further, but this looks quite
> readable to me:
>
> diff --git a/drivers/virt/nitro_enclaves/ne_misc_dev.c
> b/drivers/virt/nitro_enclaves/ne_misc_dev.c
> index f06622b48d69..5b7f45e2eb4c 100644
> --- a/drivers/virt/nitro_enclaves/ne_misc_dev.c
> +++ b/drivers/virt/nitro_enclaves/ne_misc_dev.c
> @@ -1505,10 +1505,8 @@ static __poll_t ne_enclave_poll(struct file
> *file, poll_table *wait)
>
> ???? poll_wait(file, &ne_enclave->eventq, wait);
>
> -??? if (!ne_enclave->has_event)
> -??????? return mask;
> -
> -??? mask = POLLHUP;
> +??? if (ne_enclave->has_event)
> +??????? mask |= POLLHUP;
>
> ???? return mask;
> ?}
>

Good point, I updated the logic and sent the v2 of the patch.

https://lore.kernel.org/lkml/[email protected]/

Thank you.

Andra




Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.