[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <089974d9-e9cd-4a46-889b-94dd595d8c13@gmail.com>
Date: Mon, 10 Feb 2025 13:15:08 +0530
From: Purva Yeshi <purvayeshi550@...il.com>
To: Kuniyuki Iwashima <kuniyu@...zon.com>
Cc: davem@...emloft.net, edumazet@...gle.com, horms@...nel.org,
kuba@...nel.org, linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
pabeni@...hat.com, skhan@...uxfoundation.org
Subject: Re: [PATCH] net: unix: Fix undefined 'other' error
On 10/02/25 05:56, Kuniyuki Iwashima wrote:
>
>> [PATCH] net: unix: Fix undefined 'other' error
>
> Please add net-next after PATCH and start with af_unix: as with
> other commits when you post v2.
>
> [PATCH net-next v2]: af_unix: ...
>
>
> From: Purva Yeshi <purvayeshi550@...il.com>
> Date: Mon, 10 Feb 2025 00:13:55 +0530
>> Fix issue detected by smatch tool:
>> An "undefined 'other'" error occur in __releases() annotation.
>>
>> The issue occurs because __releases(&unix_sk(other)->lock) is placed
>> at the function signature level, where other is not yet in scope.
>>
>> Fix this by replacing it with __releases(&u->lock), using u, a local
>> variable, which is properly defined inside the function.
>
> Tweaking an annotation with a comment for a static analyzer to fix
> a warning for yet another static analyzer is too much.
>
> Please remove sparse annotation instead.
>
> Here's the only place where sparse is used in AF_UNIX code, and we
> don't use sparse even for /proc/net/unix.
Thank you for the feedback. As per your suggestion, I have removed the
Sparse annotation instead of modifying it. I have updated the patch
accordingly and will send v2 with the corrected subject line and commit
message.
Best regards,
Purva Yeshi
>
>
>>
>> Signed-off-by: Purva Yeshi <purvayeshi550@...il.com>
>> ---
>> net/unix/af_unix.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
>> index 34945de1f..37b01605a 100644
>> --- a/net/unix/af_unix.c
>> +++ b/net/unix/af_unix.c
>> @@ -1508,7 +1508,10 @@ static int unix_dgram_connect(struct socket *sock, struct sockaddr *addr,
>> }
>>
>> static long unix_wait_for_peer(struct sock *other, long timeo)
>> - __releases(&unix_sk(other)->lock)
>> + /*
>> + * Use local variable instead of function parameter
>> + */
>> + __releases(&u->lock)
>> {
>> struct unix_sock *u = unix_sk(other);
>> int sched;
>> --
>> 2.34.1
Powered by blists - more mailing lists