<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/microchip/vcap, branch linux-6.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.18.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.18.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2024-11-25T00:52:13Z</updated>
<entry>
<title>net: microchip: vcap: Add typegroup table terminators in kunit tests</title>
<updated>2024-11-25T00:52:13Z</updated>
<author>
<name>Guenter Roeck</name>
<email>linux@roeck-us.net</email>
</author>
<published>2024-11-19T21:32:02Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f164b296638d1eb1fb1c537e93ab5c8b49966546'/>
<id>urn:sha1:f164b296638d1eb1fb1c537e93ab5c8b49966546</id>
<content type='text'>
VCAP API unit tests fail randomly with errors such as

   # vcap_api_iterator_init_test: EXPECTATION FAILED at drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:387
   Expected 134 + 7 == iter.offset, but
       134 + 7 == 141 (0x8d)
       iter.offset == 17214 (0x433e)
   # vcap_api_iterator_init_test: EXPECTATION FAILED at drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:388
   Expected 5 == iter.reg_idx, but
       iter.reg_idx == 702 (0x2be)
   # vcap_api_iterator_init_test: EXPECTATION FAILED at drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:389
   Expected 11 == iter.reg_bitpos, but
       iter.reg_bitpos == 15 (0xf)
   # vcap_api_iterator_init_test: pass:0 fail:1 skip:0 total:1

Comments in the code state that "A typegroup table ends with an all-zero
terminator". Add the missing terminators.

Some of the typegroups did have a terminator of ".offset = 0, .width = 0,
.value = 0,". Replace those terminators with "{ }" (no trailing ',') for
consistency and to excplicitly state "this is a terminator".

Fixes: 67d637516fa9 ("net: microchip: sparx5: Adding KUNIT test for the VCAP API")
Cc: Steen Hegelund &lt;steen.hegelund@microchip.com&gt;
Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Reviewed-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Reviewed-by: Jacob Keller &lt;jacob.e.keller@intel.com&gt;
Link: https://patch.msgid.link/20241119213202.2884639-1-linux@roeck-us.net
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: microchip: vcap api: Fix memory leaks in vcap_api_encode_rule_test()</title>
<updated>2024-10-16T01:39:00Z</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2024-10-14T12:19:22Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=217a3d98d1e9891a8b1438a27dfbc64ddf01f691'/>
<id>urn:sha1:217a3d98d1e9891a8b1438a27dfbc64ddf01f691</id>
<content type='text'>
Commit a3c1e45156ad ("net: microchip: vcap: Fix use-after-free error in
kunit test") fixed the use-after-free error, but introduced below
memory leaks by removing necessary vcap_free_rule(), add it to fix it.

	unreferenced object 0xffffff80ca58b700 (size 192):
	  comm "kunit_try_catch", pid 1215, jiffies 4294898264
	  hex dump (first 32 bytes):
	    00 12 7a 00 05 00 00 00 0a 00 00 00 64 00 00 00  ..z.........d...
	    00 00 00 00 00 00 00 00 00 04 0b cc 80 ff ff ff  ................
	  backtrace (crc 9c09c3fe):
	    [&lt;0000000052a0be73&gt;] kmemleak_alloc+0x34/0x40
	    [&lt;0000000043605459&gt;] __kmalloc_cache_noprof+0x26c/0x2f4
	    [&lt;0000000040a01b8d&gt;] vcap_alloc_rule+0x3cc/0x9c4
	    [&lt;000000003fe86110&gt;] vcap_api_encode_rule_test+0x1ac/0x16b0
	    [&lt;00000000b3595fc4&gt;] kunit_try_run_case+0x13c/0x3ac
	    [&lt;0000000010f5d2bf&gt;] kunit_generic_run_threadfn_adapter+0x80/0xec
	    [&lt;00000000c5d82c9a&gt;] kthread+0x2e8/0x374
	    [&lt;00000000f4287308&gt;] ret_from_fork+0x10/0x20
	unreferenced object 0xffffff80cc0b0400 (size 64):
	  comm "kunit_try_catch", pid 1215, jiffies 4294898265
	  hex dump (first 32 bytes):
	    80 04 0b cc 80 ff ff ff 18 b7 58 ca 80 ff ff ff  ..........X.....
	    39 00 00 00 02 00 00 00 06 05 04 03 02 01 ff ff  9...............
	  backtrace (crc daf014e9):
	    [&lt;0000000052a0be73&gt;] kmemleak_alloc+0x34/0x40
	    [&lt;0000000043605459&gt;] __kmalloc_cache_noprof+0x26c/0x2f4
	    [&lt;000000000ff63fd4&gt;] vcap_rule_add_key+0x2cc/0x528
	    [&lt;00000000dfdb1e81&gt;] vcap_api_encode_rule_test+0x224/0x16b0
	    [&lt;00000000b3595fc4&gt;] kunit_try_run_case+0x13c/0x3ac
	    [&lt;0000000010f5d2bf&gt;] kunit_generic_run_threadfn_adapter+0x80/0xec
	    [&lt;00000000c5d82c9a&gt;] kthread+0x2e8/0x374
	    [&lt;00000000f4287308&gt;] ret_from_fork+0x10/0x20
	unreferenced object 0xffffff80cc0b0700 (size 64):
	  comm "kunit_try_catch", pid 1215, jiffies 4294898265
	  hex dump (first 32 bytes):
	    80 07 0b cc 80 ff ff ff 28 b7 58 ca 80 ff ff ff  ........(.X.....
	    3c 00 00 00 00 00 00 00 01 2f 03 b3 ec ff ff ff  &lt;......../......
	  backtrace (crc 8d877792):
	    [&lt;0000000052a0be73&gt;] kmemleak_alloc+0x34/0x40
	    [&lt;0000000043605459&gt;] __kmalloc_cache_noprof+0x26c/0x2f4
	    [&lt;000000006eadfab7&gt;] vcap_rule_add_action+0x2d0/0x52c
	    [&lt;00000000323475d1&gt;] vcap_api_encode_rule_test+0x4d4/0x16b0
	    [&lt;00000000b3595fc4&gt;] kunit_try_run_case+0x13c/0x3ac
	    [&lt;0000000010f5d2bf&gt;] kunit_generic_run_threadfn_adapter+0x80/0xec
	    [&lt;00000000c5d82c9a&gt;] kthread+0x2e8/0x374
	    [&lt;00000000f4287308&gt;] ret_from_fork+0x10/0x20
	unreferenced object 0xffffff80cc0b0900 (size 64):
	  comm "kunit_try_catch", pid 1215, jiffies 4294898266
	  hex dump (first 32 bytes):
	    80 09 0b cc 80 ff ff ff 80 06 0b cc 80 ff ff ff  ................
	    7d 00 00 00 01 00 00 00 00 00 00 00 ff 00 00 00  }...............
	  backtrace (crc 34181e56):
	    [&lt;0000000052a0be73&gt;] kmemleak_alloc+0x34/0x40
	    [&lt;0000000043605459&gt;] __kmalloc_cache_noprof+0x26c/0x2f4
	    [&lt;000000000ff63fd4&gt;] vcap_rule_add_key+0x2cc/0x528
	    [&lt;00000000991e3564&gt;] vcap_val_rule+0xcf0/0x13e8
	    [&lt;00000000fc9868e5&gt;] vcap_api_encode_rule_test+0x678/0x16b0
	    [&lt;00000000b3595fc4&gt;] kunit_try_run_case+0x13c/0x3ac
	    [&lt;0000000010f5d2bf&gt;] kunit_generic_run_threadfn_adapter+0x80/0xec
	    [&lt;00000000c5d82c9a&gt;] kthread+0x2e8/0x374
	    [&lt;00000000f4287308&gt;] ret_from_fork+0x10/0x20
	unreferenced object 0xffffff80cc0b0980 (size 64):
	  comm "kunit_try_catch", pid 1215, jiffies 4294898266
	  hex dump (first 32 bytes):
	    18 b7 58 ca 80 ff ff ff 00 09 0b cc 80 ff ff ff  ..X.............
	    67 00 00 00 00 00 00 00 01 01 74 88 c0 ff ff ff  g.........t.....
	  backtrace (crc 275fd9be):
	    [&lt;0000000052a0be73&gt;] kmemleak_alloc+0x34/0x40
	    [&lt;0000000043605459&gt;] __kmalloc_cache_noprof+0x26c/0x2f4
	    [&lt;000000000ff63fd4&gt;] vcap_rule_add_key+0x2cc/0x528
	    [&lt;000000001396a1a2&gt;] test_add_def_fields+0xb0/0x100
	    [&lt;000000006e7621f0&gt;] vcap_val_rule+0xa98/0x13e8
	    [&lt;00000000fc9868e5&gt;] vcap_api_encode_rule_test+0x678/0x16b0
	    [&lt;00000000b3595fc4&gt;] kunit_try_run_case+0x13c/0x3ac
	    [&lt;0000000010f5d2bf&gt;] kunit_generic_run_threadfn_adapter+0x80/0xec
	    [&lt;00000000c5d82c9a&gt;] kthread+0x2e8/0x374
	    [&lt;00000000f4287308&gt;] ret_from_fork+0x10/0x20
	......

Cc: stable@vger.kernel.org
Fixes: a3c1e45156ad ("net: microchip: vcap: Fix use-after-free error in kunit test")
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Reviewed-by: Jens Emil Schulz Østergaard &lt;jensemil.schulzostergaard@microchip.com&gt;
Signed-off-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Link: https://patch.msgid.link/20241014121922.1280583-1-ruanjinjie@huawei.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: microchip: vcap: Fix use-after-free error in kunit test</title>
<updated>2024-09-02T09:35:17Z</updated>
<author>
<name>Jens Emil Schulz Østergaard</name>
<email>jensemil.schulzostergaard@microchip.com</email>
</author>
<published>2024-08-29T09:52:54Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a3c1e45156ad39f225cd7ddae0f81230a3b1e657'/>
<id>urn:sha1:a3c1e45156ad39f225cd7ddae0f81230a3b1e657</id>
<content type='text'>
This is a clear use-after-free error. We remove it, and rely on checking
the return code of vcap_del_rule.

Reported-by: Dan Carpenter &lt;error27@gmail.com&gt;
Closes: https://lore.kernel.org/kernel-janitors/7bffefc6-219a-4f71-baa0-ad4526e5c198@kili.mountain/
Fixes: c956b9b318d9 ("net: microchip: sparx5: Adding KUNIT tests of key/action values in VCAP API")
Signed-off-by: Jens Emil Schulz Østergaard &lt;jensemil.schulzostergaard@microchip.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: microchip: Constify struct vcap_operations</title>
<updated>2024-06-18T13:26:39Z</updated>
<author>
<name>Christophe JAILLET</name>
<email>christophe.jaillet@wanadoo.fr</email>
</author>
<published>2024-06-16T07:57:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8c379e3ce404347acf35fbb4cf8694dd8d35f2a0'/>
<id>urn:sha1:8c379e3ce404347acf35fbb4cf8694dd8d35f2a0</id>
<content type='text'>
"struct vcap_operations" are not modified in these drivers.

Constifying this structure moves some data to a read-only section, so
increase overall security.

In order to do it, "struct vcap_control" also needs to be adjusted to this
new const qualifier.

As an example, on a x86_64, with allmodconfig:
Before:
======
   text	   data	    bss	    dec	    hex	filename
  15176	   1094	     16	  16286	   3f9e	drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.o

After:
=====
   text	   data	    bss	    dec	    hex	filename
  15268	    998	     16	  16282	   3f9a	drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.o

Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;
Reviewed-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Link: https://lore.kernel.org/r/d8e76094d2e98ebb5bfc8205799b3a9db0b46220.1718524644.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

</content>
</entry>
<entry>
<title>net: sparx5: Correct spelling in comments</title>
<updated>2024-04-26T02:13:26Z</updated>
<author>
<name>Simon Horman</name>
<email>horms@kernel.org</email>
</author>
<published>2024-04-24T15:13:26Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d896a374378a2df373e855111434bbe2b3c521da'/>
<id>urn:sha1:d896a374378a2df373e855111434bbe2b3c521da</id>
<content type='text'>
Correct spelling in comments, as flagged by codespell.

Signed-off-by: Simon Horman &lt;horms@kernel.org&gt;
Reviewed-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Link: https://lore.kernel.org/r/20240424-lan743x-confirm-v2-4-f0480542e39f@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: sparx5: add support for tc flower mirred action.</title>
<updated>2024-04-09T08:45:10Z</updated>
<author>
<name>Daniel Machon</name>
<email>daniel.machon@microchip.com</email>
</author>
<published>2024-04-05T07:44:49Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=48ba00da2eb4b54a7e6ed2ca3a9f2e575dff48c9'/>
<id>urn:sha1:48ba00da2eb4b54a7e6ed2ca3a9f2e575dff48c9</id>
<content type='text'>
Add support for tc flower mirred action. Two VCAP actions are encoded in
the rule - one for the port mask, and one for the port mask mode. When
the rule is hit, the destination mask is OR'ed with the port mask.

Also add new VCAP function for supporting 72-bit wide actions, and a tc
helper for setting the port forwarding mask.

Signed-off-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>net: microchip: sparx5: clean up error checking in vcap_show_admin()</title>
<updated>2023-10-03T14:13:32Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@linaro.org</email>
</author>
<published>2023-09-08T07:03:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=788f63c4dc1780c84deb5fe820f6446c28364a0d'/>
<id>urn:sha1:788f63c4dc1780c84deb5fe820f6446c28364a0d</id>
<content type='text'>
The vcap_decode_rule() never returns NULL.  There is no need to check
for that.  This code assumes that if it did return NULL we should
end abruptly and return success.  It is confusing.  Fix the check to
just be if (IS_ERR()) instead of if (IS_ERR_OR_NULL()).

Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Closes: https://lore.kernel.org/r/202309070831.hTvj9ekP-lkp@intel.com/
Signed-off-by: Dan Carpenter &lt;dan.carpenter@linaro.org&gt;
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Reviewed-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Link: https://lore.kernel.org/r/b88eba86-9488-4749-a896-7c7050132e7b@moroto.mountain
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: microchip: sparx5: Fix possible memory leaks in vcap_api_kunit</title>
<updated>2023-09-15T06:32:35Z</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2a2dffd911d4139258b828b9c5056cb64b826758'/>
<id>urn:sha1:2a2dffd911d4139258b828b9c5056cb64b826758</id>
<content type='text'>
Inject fault while probing kunit-example-test.ko, the duprule which
is allocated by kzalloc in vcap_dup_rule() of
test_vcap_xn_rule_creator() is not freed, and it cause the memory leaks
below. Use vcap_del_rule() to free them as other functions do it.

unreferenced object 0xffff6eb4846f6180 (size 192):
  comm "kunit_try_catch", pid 405, jiffies 4294895522 (age 880.004s)
  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 98 61 6f 84 b4 6e ff ff  .........ao..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000bd9e1f12&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;00000000d2ac4ccb&gt;] vcap_api_rule_insert_in_order_test+0xa4/0x114
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb4846f6240 (size 192):
  comm "kunit_try_catch", pid 405, jiffies 4294895524 (age 879.996s)
  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 58 62 6f 84 b4 6e ff ff  ........Xbo..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000bd9e1f12&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;0000000052e6ad35&gt;] vcap_api_rule_insert_in_order_test+0xbc/0x114
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb4846f6300 (size 192):
  comm "kunit_try_catch", pid 405, jiffies 4294895524 (age 879.996s)
  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 18 63 6f 84 b4 6e ff ff  .........co..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000bd9e1f12&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;000000001b0895d4&gt;] vcap_api_rule_insert_in_order_test+0xd4/0x114
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb4846f63c0 (size 192):
  comm "kunit_try_catch", pid 405, jiffies 4294895524 (age 880.012s)
  hex dump (first 32 bytes):
    10 27 00 00 04 00 00 00 28 00 00 00 c8 00 00 00  .'......(.......
    00 00 00 00 00 00 00 00 d8 63 6f 84 b4 6e ff ff  .........co..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000bd9e1f12&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;00000000134c151f&gt;] vcap_api_rule_insert_in_order_test+0xec/0x114
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb4845fc180 (size 192):
  comm "kunit_try_catch", pid 407, jiffies 4294895527 (age 880.000s)
  hex dump (first 32 bytes):
    10 27 00 00 04 00 00 00 14 00 00 00 c8 00 00 00  .'..............
    00 00 00 00 00 00 00 00 98 c1 5f 84 b4 6e ff ff  .........._..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000bd9e1f12&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;00000000fa5f64d3&gt;] vcap_api_rule_insert_reverse_order_test+0xc8/0x600
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb4845fc240 (size 192):
  comm "kunit_try_catch", pid 407, jiffies 4294895527 (age 880.000s)
  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 58 c2 5f 84 b4 6e ff ff  ........X._..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000453dcd80&gt;] vcap_add_rule+0x134/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;00000000a7db42de&gt;] vcap_api_rule_insert_reverse_order_test+0x108/0x600
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb4845fc300 (size 192):
  comm "kunit_try_catch", pid 407, jiffies 4294895527 (age 880.000s)
  hex dump (first 32 bytes):
    10 27 00 00 04 00 00 00 28 00 00 00 90 01 00 00  .'......(.......
    00 00 00 00 00 00 00 00 18 c3 5f 84 b4 6e ff ff  .........._..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000453dcd80&gt;] vcap_add_rule+0x134/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;00000000ea416c94&gt;] vcap_api_rule_insert_reverse_order_test+0x150/0x600
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb4845fc3c0 (size 192):
  comm "kunit_try_catch", pid 407, jiffies 4294895527 (age 880.020s)
  hex dump (first 32 bytes):
    10 27 00 00 04 00 00 00 32 00 00 00 f4 01 00 00  .'......2.......
    00 00 00 00 00 00 00 00 d8 c3 5f 84 b4 6e ff ff  .........._..n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000453dcd80&gt;] vcap_add_rule+0x134/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;00000000764a39b4&gt;] vcap_api_rule_insert_reverse_order_test+0x198/0x600
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb484cd4240 (size 192):
  comm "kunit_try_catch", pid 413, jiffies 4294895543 (age 879.956s)
  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 58 42 cd 84 b4 6e ff ff  ........XB...n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000bd9e1f12&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;0000000023976dd4&gt;] vcap_api_rule_remove_in_front_test+0x158/0x658
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff6eb484cd4300 (size 192):
  comm "kunit_try_catch", pid 413, jiffies 4294895543 (age 879.956s)
  hex dump (first 32 bytes):
    10 27 00 00 04 00 00 00 28 00 00 00 c8 00 00 00  .'......(.......
    00 00 00 00 00 00 00 00 18 43 cd 84 b4 6e ff ff  .........C...n..
  backtrace:
    [&lt;00000000f1b5b86e&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000c56cdd9a&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000046ef1b64&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008565145b&gt;] vcap_dup_rule+0x38/0x210
    [&lt;00000000bd9e1f12&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000070a539b1&gt;] test_vcap_xn_rule_creator.constprop.43+0x120/0x330
    [&lt;000000000b4760ff&gt;] vcap_api_rule_remove_in_front_test+0x170/0x658
    [&lt;000000000f88f9cb&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000e848de5a&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000058a88b6b&gt;] kthread+0x124/0x130
    [&lt;00000000891cf28a&gt;] ret_from_fork+0x10/0x20

Fixes: dccc30cc4906 ("net: microchip: sparx5: Add KUNIT test of counters and sorted rules")
Signed-off-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: microchip: sparx5: Fix possible memory leaks in test_vcap_xn_rule_creator()</title>
<updated>2023-09-15T06:32:35Z</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=20146fa73ab8db2ab9f4916bbaf4610646787a09'/>
<id>urn:sha1:20146fa73ab8db2ab9f4916bbaf4610646787a09</id>
<content type='text'>
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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000648fefae&gt;] vcap_alloc_rule+0x17c/0x26c
    [&lt;000000004da16164&gt;] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
    [&lt;00000000231b1097&gt;] vcap_api_rule_insert_in_order_test+0xcc/0x184
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000ee41df9e&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;000000001cc1bb38&gt;] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
    [&lt;00000000231b1097&gt;] vcap_api_rule_insert_in_order_test+0xcc/0x184
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000043c78991&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;00000000ba73cfbe&gt;] vcap_add_type_keyfield+0xfc/0x128
    [&lt;000000002b00f7df&gt;] vcap_val_rule+0x274/0x3e8
    [&lt;00000000e67d2ff5&gt;] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
    [&lt;00000000231b1097&gt;] vcap_api_rule_insert_in_order_test+0xcc/0x184
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000648fefae&gt;] vcap_alloc_rule+0x17c/0x26c
    [&lt;000000004da16164&gt;] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
    [&lt;00000000509de3f4&gt;] vcap_api_rule_insert_reverse_order_test+0x10c/0x654
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000ee41df9e&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;000000001cc1bb38&gt;] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
    [&lt;00000000509de3f4&gt;] vcap_api_rule_insert_reverse_order_test+0x10c/0x654
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000043c78991&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;00000000ba73cfbe&gt;] vcap_add_type_keyfield+0xfc/0x128
    [&lt;000000002b00f7df&gt;] vcap_val_rule+0x274/0x3e8
    [&lt;00000000e67d2ff5&gt;] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
    [&lt;00000000509de3f4&gt;] vcap_api_rule_insert_reverse_order_test+0x10c/0x654
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000648fefae&gt;] vcap_alloc_rule+0x17c/0x26c
    [&lt;000000004da16164&gt;] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
    [&lt;00000000a29794d8&gt;] vcap_api_rule_remove_at_end_test+0xbc/0xb48
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000ee41df9e&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;000000001cc1bb38&gt;] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
    [&lt;00000000a29794d8&gt;] vcap_api_rule_remove_at_end_test+0xbc/0xb48
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000043c78991&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;0000000094335477&gt;] vcap_add_type_keyfield+0xbc/0x128
    [&lt;000000002b00f7df&gt;] vcap_val_rule+0x274/0x3e8
    [&lt;00000000e67d2ff5&gt;] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
    [&lt;00000000a29794d8&gt;] vcap_api_rule_remove_at_end_test+0xbc/0xb48
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000648fefae&gt;] vcap_alloc_rule+0x17c/0x26c
    [&lt;000000004da16164&gt;] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
    [&lt;00000000be638a45&gt;] vcap_api_rule_remove_in_middle_test+0xc4/0xb80
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000ee41df9e&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;000000001cc1bb38&gt;] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
    [&lt;00000000be638a45&gt;] vcap_api_rule_remove_in_middle_test+0xc4/0xb80
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000043c78991&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;00000000ba73cfbe&gt;] vcap_add_type_keyfield+0xfc/0x128
    [&lt;000000002b00f7df&gt;] vcap_val_rule+0x274/0x3e8
    [&lt;00000000e67d2ff5&gt;] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
    [&lt;00000000be638a45&gt;] vcap_api_rule_remove_in_middle_test+0xc4/0xb80
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000648fefae&gt;] vcap_alloc_rule+0x17c/0x26c
    [&lt;000000004da16164&gt;] test_vcap_xn_rule_creator.constprop.43+0xac/0x328
    [&lt;00000000e1ed8350&gt;] vcap_api_rule_remove_in_front_test+0x144/0x6c0
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000ee41df9e&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;000000001cc1bb38&gt;] test_vcap_xn_rule_creator.constprop.43+0xd8/0x328
    [&lt;00000000e1ed8350&gt;] vcap_api_rule_remove_in_front_test+0x144/0x6c0
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] 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:
    [&lt;000000008585a8f7&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000795eba12&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000061886991&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000043c78991&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;000000006ce4945d&gt;] test_add_def_fields+0x84/0x8c
    [&lt;00000000507e0ab6&gt;] vcap_val_rule+0x294/0x3e8
    [&lt;00000000e67d2ff5&gt;] test_vcap_xn_rule_creator.constprop.43+0xf0/0x328
    [&lt;00000000e1ed8350&gt;] vcap_api_rule_remove_in_front_test+0x144/0x6c0
    [&lt;00000000548b559e&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000663f0105&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;00000000e646f120&gt;] kthread+0x124/0x130
    [&lt;000000005257599e&gt;] ret_from_fork+0x10/0x20

Fixes: dccc30cc4906 ("net: microchip: sparx5: Add KUNIT test of counters and sorted rules")
Signed-off-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Closes: https://lore.kernel.org/oe-kbuild-all/202309090950.uOTEKQq3-lkp@intel.com/
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: microchip: sparx5: Fix possible memory leak in vcap_api_encode_rule_test()</title>
<updated>2023-09-15T06:32:35Z</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:08Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=89e3af0277388f32d56915a6715c735e4afae5d6'/>
<id>urn:sha1:89e3af0277388f32d56915a6715c735e4afae5d6</id>
<content type='text'>
Inject fault while probing kunit-example-test.ko, the duprule which
is allocated in vcap_dup_rule() and the vcap enabled port which
is allocated in vcap_enable() of vcap_enable_lookups in
vcap_api_encode_rule_test() is not freed, and it cause the memory
leaks below.

Use vcap_enable_lookups() with false arg to free the vcap enabled
port as other drivers do it. And use vcap_del_rule() to
free the duprule.

unreferenced object 0xffff677a0278bb00 (size 64):
  comm "kunit_try_catch", pid 388, jiffies 4294895987 (age 1101.840s)
  hex dump (first 32 bytes):
    18 bd a5 82 00 80 ff ff 18 bd a5 82 00 80 ff ff  ................
    40 fe c8 0e be c6 ff ff 00 00 00 00 00 00 00 00  @...............
  backtrace:
    [&lt;000000007d53023a&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;0000000076e3f654&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000034d76721&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000013380a5&gt;] vcap_enable_lookups+0x1c8/0x70c
    [&lt;00000000bbec496b&gt;] vcap_api_encode_rule_test+0x2f8/0xb18
    [&lt;000000002c2bfb7b&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000ff74642b&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;000000004af845ca&gt;] kthread+0x124/0x130
    [&lt;0000000038a000ca&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff677a027803c0 (size 192):
  comm "kunit_try_catch", pid 388, jiffies 4294895988 (age 1101.836s)
  hex dump (first 32 bytes):
    00 12 7a 00 05 00 00 00 0a 00 00 00 64 00 00 00  ..z.........d...
    00 00 00 00 00 00 00 00 d8 03 78 02 7a 67 ff ff  ..........x.zg..
  backtrace:
    [&lt;000000007d53023a&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;0000000076e3f654&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;0000000034d76721&gt;] kmalloc_trace+0x40/0x164
    [&lt;00000000c1010131&gt;] vcap_dup_rule+0x34/0x14c
    [&lt;00000000d43c54a4&gt;] vcap_add_rule+0x29c/0x32c
    [&lt;0000000073f1c26d&gt;] vcap_api_encode_rule_test+0x304/0xb18
    [&lt;000000002c2bfb7b&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000ff74642b&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;000000004af845ca&gt;] kthread+0x124/0x130
    [&lt;0000000038a000ca&gt;] ret_from_fork+0x10/0x20

Fixes: c956b9b318d9 ("net: microchip: sparx5: Adding KUNIT tests of key/action values in VCAP API")
Signed-off-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
