Re: [PATCH] selftests/futex: Fix storing address of local variable

2025-11-18 Thread Ankit Khushwaha
On Tue, Nov 18, 2025 at 01:34:59PM -0300, André Almeida wrote:
> > diff --git a/tools/testing/selftests/futex/functional/robust_list.c 
> > b/tools/testing/selftests/futex/functional/robust_list.c
> > index e7d1254e18ca..d1aab1cc5a37 100644
> > --- a/tools/testing/selftests/futex/functional/robust_list.c
> > +++ b/tools/testing/selftests/futex/functional/robust_list.c
> > @@ -510,7 +510,7 @@ TEST(test_robust_list_multiple_elements)
> >   static int child_circular_list(void *arg)
> >   {
> > static struct robust_list_head head;
> > -   struct lock_struct a, b, c;
> > +   static struct lock_struct a, b, c;
> 
> I believe that the right fix here would be to drop the static from `head`
> declaration, WDYT?

Hi André,
I have tested your suggested changes.
It works fine. will send v2 patch for this.

Thanks,
-- Ankit




Re: [PATCH] selftests/futex: Fix storing address of local variable

2025-11-18 Thread André Almeida

Em 18/11/2025 13:26, Ankit Khushwaha escreveu:

In `child_circular_list()` address of local variable ‘struct lock_struct a’
is assigned to `head.list.next` raising the following warning.

robust_list.c: In function ‘child_circular_list’:
robust_list.c:522:24: warning: storing the address of local variable ‘a’
in ‘head.list.next’ [-Wdangling-pointer=]

   522 | head.list.next = &a.list;
   | ~~~^
robust_list.c:513:28: note: ‘a’ declared here
   513 | struct lock_struct a, b, c;
   |^
robust_list.c:512:40: note: ‘head’ declared here
   512 | static struct robust_list_head head;
   |^~~~

Defining the value with static keyword to fix this.

Signed-off-by: Ankit Khushwaha 
---
  tools/testing/selftests/futex/functional/robust_list.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/futex/functional/robust_list.c 
b/tools/testing/selftests/futex/functional/robust_list.c
index e7d1254e18ca..d1aab1cc5a37 100644
--- a/tools/testing/selftests/futex/functional/robust_list.c
+++ b/tools/testing/selftests/futex/functional/robust_list.c
@@ -510,7 +510,7 @@ TEST(test_robust_list_multiple_elements)
  static int child_circular_list(void *arg)
  {
static struct robust_list_head head;
-   struct lock_struct a, b, c;
+   static struct lock_struct a, b, c;


I believe that the right fix here would be to drop the static from 
`head` declaration, WDYT?




[PATCH] selftests/futex: Fix storing address of local variable

2025-11-18 Thread Ankit Khushwaha
In `child_circular_list()` address of local variable ???struct lock_struct a???
is assigned to `head.list.next` raising the following warning.

robust_list.c: In function ???child_circular_list???:
robust_list.c:522:24: warning: storing the address of local variable ???a???
in ???head.list.next??? [-Wdangling-pointer=]

  522 | head.list.next = &a.list;
  | ~~~^
robust_list.c:513:28: note: ???a??? declared here
  513 | struct lock_struct a, b, c;
  |^
robust_list.c:512:40: note: ???head??? declared here
  512 | static struct robust_list_head head;
  |^~~~

Defining the value with static keyword to fix this.

Signed-off-by: Ankit Khushwaha 
---
 tools/testing/selftests/futex/functional/robust_list.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/futex/functional/robust_list.c 
b/tools/testing/selftests/futex/functional/robust_list.c
index e7d1254e18ca..d1aab1cc5a37 100644
--- a/tools/testing/selftests/futex/functional/robust_list.c
+++ b/tools/testing/selftests/futex/functional/robust_list.c
@@ -510,7 +510,7 @@ TEST(test_robust_list_multiple_elements)
 static int child_circular_list(void *arg)
 {
static struct robust_list_head head;
-   struct lock_struct a, b, c;
+   static struct lock_struct a, b, c;
int ret;

ret = set_list(&head);
--
2.51.1