Patch "net: microchip: sparx5: Fix possible memory leaks in test_vcap_xn_rule_creator()" has been added to the 6.5-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: microchip: sparx5: Fix possible memory leaks in test_vcap_xn_rule_creator()

to the 6.5-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-microchip-sparx5-fix-possible-memory-leaks-in-te.patch
and it can be found in the queue-6.5 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 55013c2d91e269597746c7adddb35acafab51da0
Author: Jinjie Ruan <ruanjinjie@xxxxxxxxxx>
Date:   Tue Sep 12 19:03:09 2023 +0800

    net: microchip: sparx5: Fix possible memory leaks in test_vcap_xn_rule_creator()
    
    [ Upstream commit 20146fa73ab8db2ab9f4916bbaf4610646787a09 ]
    
    Inject fault while probing kunit-example-test.ko, the rule which
    is allocated by kzalloc in vcap_alloc_rule(), the field which is
    allocated by kzalloc in vcap_rule_add_action() and
    vcap_rule_add_key() is not freed, and it cause the memory leaks
    below. Use vcap_free_rule() to free them as other drivers do it.
    
    And since the return rule of test_vcap_xn_rule_creator() is not
    used, remove it and switch to void.
    
    unreferenced object 0xffff058383334240 (size 192):
      comm "kunit_try_catch", pid 309, jiffies 4294894222 (age 639.800s)
      hex dump (first 32 bytes):
        10 27 00 00 04 00 00 00 14 00 00 00 90 01 00 00  .'..............
        00 00 00 00 00 00 00 00 00 81 93 84 83 05 ff ff  ................
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000648fefae>] vcap_alloc_rule+0x17c/0x26c
        [<000000004da16164>] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
        [<00000000231b1097>] vcap_api_rule_insert_in_order_test+0xcc/0x184
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff0583849380c0 (size 64):
      comm "kunit_try_catch", pid 309, jiffies 4294894222 (age 639.800s)
      hex dump (first 32 bytes):
        40 81 93 84 83 05 ff ff 68 42 33 83 83 05 ff ff  @.......hB3.....
        22 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  "...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000ee41df9e>] vcap_rule_add_action+0x104/0x178
        [<000000001cc1bb38>] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
        [<00000000231b1097>] vcap_api_rule_insert_in_order_test+0xcc/0x184
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff058384938100 (size 64):
      comm "kunit_try_catch", pid 309, jiffies 4294894222 (age 639.800s)
      hex dump (first 32 bytes):
        80 81 93 84 83 05 ff ff 58 42 33 83 83 05 ff ff  ........XB3.....
        7d 00 00 00 01 00 00 00 02 00 00 00 ff 00 00 00  }...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<0000000043c78991>] vcap_rule_add_key+0x104/0x180
        [<00000000ba73cfbe>] vcap_add_type_keyfield+0xfc/0x128
        [<000000002b00f7df>] vcap_val_rule+0x274/0x3e8
        [<00000000e67d2ff5>] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
        [<00000000231b1097>] vcap_api_rule_insert_in_order_test+0xcc/0x184
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    
    unreferenced object 0xffff0583833b6240 (size 192):
      comm "kunit_try_catch", pid 311, jiffies 4294894225 (age 639.844s)
      hex dump (first 32 bytes):
        10 27 00 00 04 00 00 00 1e 00 00 00 2c 01 00 00  .'..........,...
        00 00 00 00 00 00 00 00 40 91 8f 84 83 05 ff ff  ........@.......
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000648fefae>] vcap_alloc_rule+0x17c/0x26c
        [<000000004da16164>] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
        [<00000000509de3f4>] vcap_api_rule_insert_reverse_order_test+0x10c/0x654
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff0583848f9100 (size 64):
      comm "kunit_try_catch", pid 311, jiffies 4294894225 (age 639.844s)
      hex dump (first 32 bytes):
        80 91 8f 84 83 05 ff ff 68 62 3b 83 83 05 ff ff  ........hb;.....
        22 00 00 00 01 00 00 00 00 00 00 00 a5 b4 ff ff  "...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000ee41df9e>] vcap_rule_add_action+0x104/0x178
        [<000000001cc1bb38>] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
        [<00000000509de3f4>] vcap_api_rule_insert_reverse_order_test+0x10c/0x654
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff0583848f9140 (size 64):
      comm "kunit_try_catch", pid 311, jiffies 4294894225 (age 639.844s)
      hex dump (first 32 bytes):
        c0 91 8f 84 83 05 ff ff 58 62 3b 83 83 05 ff ff  ........Xb;.....
        7d 00 00 00 01 00 00 00 02 00 00 00 ff 00 00 00  }...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<0000000043c78991>] vcap_rule_add_key+0x104/0x180
        [<00000000ba73cfbe>] vcap_add_type_keyfield+0xfc/0x128
        [<000000002b00f7df>] vcap_val_rule+0x274/0x3e8
        [<00000000e67d2ff5>] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
        [<00000000509de3f4>] vcap_api_rule_insert_reverse_order_test+0x10c/0x654
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    
    unreferenced object 0xffff05838264e0c0 (size 192):
      comm "kunit_try_catch", pid 313, jiffies 4294894230 (age 639.864s)
      hex dump (first 32 bytes):
        10 27 00 00 04 00 00 00 0a 00 00 00 f4 01 00 00  .'..............
        00 00 00 00 00 00 00 00 40 3a 97 84 83 05 ff ff  ........@:......
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000648fefae>] vcap_alloc_rule+0x17c/0x26c
        [<000000004da16164>] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
        [<00000000a29794d8>] vcap_api_rule_remove_at_end_test+0xbc/0xb48
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff058384973a80 (size 64):
      comm "kunit_try_catch", pid 313, jiffies 4294894230 (age 639.864s)
      hex dump (first 32 bytes):
        e8 e0 64 82 83 05 ff ff e8 e0 64 82 83 05 ff ff  ..d.......d.....
        22 00 00 00 01 00 00 00 00 00 00 00 00 80 ff ff  "...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000ee41df9e>] vcap_rule_add_action+0x104/0x178
        [<000000001cc1bb38>] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
        [<00000000a29794d8>] vcap_api_rule_remove_at_end_test+0xbc/0xb48
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff058384973a40 (size 64):
      comm "kunit_try_catch", pid 313, jiffies 4294894230 (age 639.880s)
      hex dump (first 32 bytes):
        80 39 97 84 83 05 ff ff d8 e0 64 82 83 05 ff ff  .9........d.....
        7d 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00  }...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<0000000043c78991>] vcap_rule_add_key+0x104/0x180
        [<0000000094335477>] vcap_add_type_keyfield+0xbc/0x128
        [<000000002b00f7df>] vcap_val_rule+0x274/0x3e8
        [<00000000e67d2ff5>] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
        [<00000000a29794d8>] vcap_api_rule_remove_at_end_test+0xbc/0xb48
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    
    unreferenced object 0xffff0583832fa240 (size 192):
      comm "kunit_try_catch", pid 315, jiffies 4294894233 (age 639.920s)
      hex dump (first 32 bytes):
        10 27 00 00 04 00 00 00 14 00 00 00 90 01 00 00  .'..............
        00 00 00 00 00 00 00 00 00 a1 8b 84 83 05 ff ff  ................
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000648fefae>] vcap_alloc_rule+0x17c/0x26c
        [<000000004da16164>] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
        [<00000000be638a45>] vcap_api_rule_remove_in_middle_test+0xc4/0xb80
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff0583848ba0c0 (size 64):
      comm "kunit_try_catch", pid 315, jiffies 4294894233 (age 639.920s)
      hex dump (first 32 bytes):
        40 a1 8b 84 83 05 ff ff 68 a2 2f 83 83 05 ff ff  @.......h./.....
        22 00 00 00 01 00 00 00 00 00 00 00 00 80 ff ff  "...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000ee41df9e>] vcap_rule_add_action+0x104/0x178
        [<000000001cc1bb38>] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
        [<00000000be638a45>] vcap_api_rule_remove_in_middle_test+0xc4/0xb80
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff0583848ba100 (size 64):
      comm "kunit_try_catch", pid 315, jiffies 4294894233 (age 639.920s)
      hex dump (first 32 bytes):
        80 a1 8b 84 83 05 ff ff 58 a2 2f 83 83 05 ff ff  ........X./.....
        7d 00 00 00 01 00 00 00 02 00 00 00 ff 00 00 00  }...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<0000000043c78991>] vcap_rule_add_key+0x104/0x180
        [<00000000ba73cfbe>] vcap_add_type_keyfield+0xfc/0x128
        [<000000002b00f7df>] vcap_val_rule+0x274/0x3e8
        [<00000000e67d2ff5>] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
        [<00000000be638a45>] vcap_api_rule_remove_in_middle_test+0xc4/0xb80
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    
    unreferenced object 0xffff0583827d2180 (size 192):
      comm "kunit_try_catch", pid 317, jiffies 4294894238 (age 639.956s)
      hex dump (first 32 bytes):
        10 27 00 00 04 00 00 00 14 00 00 00 90 01 00 00  .'..............
        00 00 00 00 00 00 00 00 00 e1 06 83 83 05 ff ff  ................
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000648fefae>] vcap_alloc_rule+0x17c/0x26c
        [<000000004da16164>] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
        [<00000000e1ed8350>] vcap_api_rule_remove_in_front_test+0x144/0x6c0
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff05838306e0c0 (size 64):
      comm "kunit_try_catch", pid 317, jiffies 4294894238 (age 639.956s)
      hex dump (first 32 bytes):
        40 e1 06 83 83 05 ff ff a8 21 7d 82 83 05 ff ff  @........!}.....
        22 00 00 00 01 00 00 00 00 00 00 00 00 80 ff ff  "...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<00000000ee41df9e>] vcap_rule_add_action+0x104/0x178
        [<000000001cc1bb38>] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
        [<00000000e1ed8350>] vcap_api_rule_remove_in_front_test+0x144/0x6c0
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    unreferenced object 0xffff05838306e180 (size 64):
      comm "kunit_try_catch", pid 317, jiffies 4294894238 (age 639.968s)
      hex dump (first 32 bytes):
        98 21 7d 82 83 05 ff ff 00 e1 06 83 83 05 ff ff  .!}.............
        67 00 00 00 00 00 00 00 01 01 00 00 ff 00 00 00  g...............
      backtrace:
        [<000000008585a8f7>] slab_post_alloc_hook+0xb8/0x368
        [<00000000795eba12>] __kmem_cache_alloc_node+0x174/0x290
        [<0000000061886991>] kmalloc_trace+0x40/0x164
        [<0000000043c78991>] vcap_rule_add_key+0x104/0x180
        [<000000006ce4945d>] test_add_def_fields+0x84/0x8c
        [<00000000507e0ab6>] vcap_val_rule+0x294/0x3e8
        [<00000000e67d2ff5>] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
        [<00000000e1ed8350>] vcap_api_rule_remove_in_front_test+0x144/0x6c0
        [<00000000548b559e>] kunit_try_run_case+0x50/0xac
        [<00000000663f0105>] kunit_generic_run_threadfn_adapter+0x20/0x2c
        [<00000000e646f120>] kthread+0x124/0x130
        [<000000005257599e>] ret_from_fork+0x10/0x20
    
    Fixes: dccc30cc4906 ("net: microchip: sparx5: Add KUNIT test of counters and sorted rules")
    Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx>
    Reported-by: kernel test robot <lkp@xxxxxxxxx>
    Closes: https://lore.kernel.org/oe-kbuild-all/202309090950.uOTEKQq3-lkp@xxxxxxxxx/
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
index 8c61a5dbce55f..99f04a53a442b 100644
--- a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
+++ b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
@@ -243,10 +243,9 @@ static void vcap_test_api_init(struct vcap_admin *admin)
 }
 
 /* Helper function to create a rule of a specific size */
-static struct vcap_rule *
-test_vcap_xn_rule_creator(struct kunit *test, int cid, enum vcap_user user,
-			  u16 priority,
-			  int id, int size, int expected_addr)
+static void test_vcap_xn_rule_creator(struct kunit *test, int cid,
+				      enum vcap_user user, u16 priority,
+				      int id, int size, int expected_addr)
 {
 	struct vcap_rule *rule;
 	struct vcap_rule_internal *ri;
@@ -311,7 +310,7 @@ test_vcap_xn_rule_creator(struct kunit *test, int cid, enum vcap_user user,
 	ret = vcap_add_rule(rule);
 	KUNIT_EXPECT_EQ(test, 0, ret);
 	KUNIT_EXPECT_EQ(test, expected_addr, ri->addr);
-	return rule;
+	vcap_free_rule(rule);
 }
 
 /* Prepare testing rule deletion */



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux