<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/net/ethernet/microchip/vcap, branch v6.6.150</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v6.6.150</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v6.6.150'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2026-07-24T14:03:27+00:00</updated>
<entry>
<title>net: microchip: vcap: fix races on the shared Super VCAP block</title>
<updated>2026-07-24T14:03:27+00:00</updated>
<author>
<name>Jens Emil Schulz Østergaard</name>
<email>jensemil.schulzostergaard@microchip.com</email>
</author>
<published>2026-06-30T12:20:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=786456d0a244bbd405dfc60e4de51f8b348b9cb1'/>
<id>urn:sha1:786456d0a244bbd405dfc60e4de51f8b348b9cb1</id>
<content type='text'>
[ Upstream commit d7a8d500d7e42837bd8dce40cb52c97c6e8706a9 ]

The VCAP instances on a chip are not independent, yet they are locked
independently. On sparx5 and lan969x the IS0 and IS2 instances are
backed by the same Super VCAP hardware block and share its cache and
command registers: every access drives the shared VCAP_SUPER_CTRL
register and moves data through the shared cache registers.

Accessing one instance therefore races with accessing another. The
per-instance admin-&gt;lock cannot prevent this, as each instance takes a
different lock.

The locking issue is mostly disguised by the fact that the core usage of
the vcap api runs under rtnl. However, the full rule dump in debugfs
decodes rules straight from hardware (a READ command followed by a cache
read) and runs outside rtnl, so it races a concurrent tc-flower rule
write to another Super VCAP instance.

Besides corrupting the dump, the read repopulates the shared cache
between the writers cache fill and its write command, so the writer
commits the wrong data and corrupts the hardware entry.

Introduce vcap_lock() and vcap_unlock() helpers and route every rule
lock site in the VCAP API and its debugfs code through them. Replace the
per-instance admin-&gt;lock with a single mutex in struct vcap_control that
serializes access to all instances. The helpers reach it through a new
admin-&gt;vctrl back-pointer, and the clients initialise and destroy the
control lock instead of a per-instance one.

No path holds more than one instance lock, so collapsing them onto a
single mutex cannot self-deadlock.

Fixes: 71c9de995260 ("net: microchip: sparx5: Add VCAP locking to protect rules")
Signed-off-by: Jens Emil Schulz Østergaard &lt;jensemil.schulzostergaard@microchip.com&gt;
Link: https://patch.msgid.link/20260630-microchip_fix_vcap_locking-v1-1-f60a4596734d@microchip.com
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: microchip: vcap: Add typegroup table terminators in kunit tests</title>
<updated>2024-12-09T09:32:32+00:00</updated>
<author>
<name>Guenter Roeck</name>
<email>linux@roeck-us.net</email>
</author>
<published>2024-11-19T21:32:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f2a30e6fcd5abb9067d1059323574d18f27514e7'/>
<id>urn:sha1:f2a30e6fcd5abb9067d1059323574d18f27514e7</id>
<content type='text'>
[ Upstream commit f164b296638d1eb1fb1c537e93ab5c8b49966546 ]

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;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: microchip: vcap api: Fix memory leaks in vcap_api_encode_rule_test()</title>
<updated>2024-10-22T13:46:20+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2024-10-14T12:19:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=20b5342de51bda794791e013b90754774003a515'/>
<id>urn:sha1:20b5342de51bda794791e013b90754774003a515</id>
<content type='text'>
commit 217a3d98d1e9891a8b1438a27dfbc64ddf01f691 upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>net: microchip: vcap: Fix use-after-free error in kunit test</title>
<updated>2024-09-12T09:11:24+00:00</updated>
<author>
<name>Jens Emil Schulz Østergaard</name>
<email>jensemil.schulzostergaard@microchip.com</email>
</author>
<published>2024-08-29T09:52:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b0804c286ccfcf5f5c004d5bf8a54c0508b5e86b'/>
<id>urn:sha1:b0804c286ccfcf5f5c004d5bf8a54c0508b5e86b</id>
<content type='text'>
commit a3c1e45156ad39f225cd7ddae0f81230a3b1e657 upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>net: microchip: sparx5: Fix possible memory leaks in vcap_api_kunit</title>
<updated>2023-09-15T06:32:35+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/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:35+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/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:35+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/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>
<entry>
<title>net: microchip: sparx5: Fix memory leak for vcap_api_rule_add_actionvalue_test()</title>
<updated>2023-09-15T06:32:35+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=39d0ccc185315408e7cecfcaf06d167927b51052'/>
<id>urn:sha1:39d0ccc185315408e7cecfcaf06d167927b51052</id>
<content type='text'>
Inject fault while probing kunit-example-test.ko, the field which
is allocated by kzalloc in vcap_rule_add_action() of
vcap_rule_add_action_bit/u32() is not freed, and it cause
the memory leaks below.

unreferenced object 0xffff0276c496b300 (size 64):
  comm "kunit_try_catch", pid 286, jiffies 4294894224 (age 920.072s)
  hex dump (first 32 bytes):
    68 3c 62 82 00 80 ff ff 68 3c 62 82 00 80 ff ff  h&lt;b.....h&lt;b.....
    3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  &lt;...............
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008b41c84d&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;00000000ae66c16c&gt;] vcap_api_rule_add_actionvalue_test+0xa4/0x990
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c496b2c0 (size 64):
  comm "kunit_try_catch", pid 286, jiffies 4294894224 (age 920.072s)
  hex dump (first 32 bytes):
    68 3c 62 82 00 80 ff ff 68 3c 62 82 00 80 ff ff  h&lt;b.....h&lt;b.....
    3c 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00  &lt;...............
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008b41c84d&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;00000000607782aa&gt;] vcap_api_rule_add_actionvalue_test+0x100/0x990
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c496b280 (size 64):
  comm "kunit_try_catch", pid 286, jiffies 4294894224 (age 920.072s)
  hex dump (first 32 bytes):
    68 3c 62 82 00 80 ff ff 68 3c 62 82 00 80 ff ff  h&lt;b.....h&lt;b.....
    3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  &lt;...............
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008b41c84d&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;000000004e640602&gt;] vcap_api_rule_add_actionvalue_test+0x15c/0x990
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c496b240 (size 64):
  comm "kunit_try_catch", pid 286, jiffies 4294894224 (age 920.092s)
  hex dump (first 32 bytes):
    68 3c 62 82 00 80 ff ff 68 3c 62 82 00 80 ff ff  h&lt;b.....h&lt;b.....
    5a 00 00 00 01 00 00 00 32 54 76 98 00 00 00 00  Z.......2Tv.....
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008b41c84d&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;0000000011141bf8&gt;] vcap_api_rule_add_actionvalue_test+0x1bc/0x990
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c496b200 (size 64):
  comm "kunit_try_catch", pid 286, jiffies 4294894224 (age 920.092s)
  hex dump (first 32 bytes):
    68 3c 62 82 00 80 ff ff 68 3c 62 82 00 80 ff ff  h&lt;b.....h&lt;b.....
    28 00 00 00 01 00 00 00 dd cc bb aa 00 00 00 00  (...............
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;000000008b41c84d&gt;] vcap_rule_add_action+0x104/0x178
    [&lt;00000000d5ed3088&gt;] vcap_api_rule_add_actionvalue_test+0x22c/0x990
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&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>
<entry>
<title>net: microchip: sparx5: Fix memory leak for vcap_api_rule_add_keyvalue_test()</title>
<updated>2023-09-15T06:32:35+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-12T11:03:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f037fc9905ffa6fa19b89bfbc86946798cede071'/>
<id>urn:sha1:f037fc9905ffa6fa19b89bfbc86946798cede071</id>
<content type='text'>
Inject fault while probing kunit-example-test.ko, the field which
is allocated by kzalloc in vcap_rule_add_key() of
vcap_rule_add_key_bit/u32/u128() is not freed, and it cause
the memory leaks below.

unreferenced object 0xffff0276c14b7240 (size 64):
  comm "kunit_try_catch", pid 284, jiffies 4294894220 (age 920.072s)
  hex dump (first 32 bytes):
    28 3c 61 82 00 80 ff ff 28 3c 61 82 00 80 ff ff  (&lt;a.....(&lt;a.....
    67 00 00 00 00 00 00 00 00 01 37 2b af ab ff ff  g.........7+....
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000059ad6bcd&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;00000000ff8002d3&gt;] vcap_api_rule_add_keyvalue_test+0x100/0xba8
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c14b7280 (size 64):
  comm "kunit_try_catch", pid 284, jiffies 4294894221 (age 920.068s)
  hex dump (first 32 bytes):
    28 3c 61 82 00 80 ff ff 28 3c 61 82 00 80 ff ff  (&lt;a.....(&lt;a.....
    67 00 00 00 00 00 00 00 01 01 37 2b af ab ff ff  g.........7+....
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000059ad6bcd&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;00000000f5ac9dc7&gt;] vcap_api_rule_add_keyvalue_test+0x168/0xba8
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c14b72c0 (size 64):
  comm "kunit_try_catch", pid 284, jiffies 4294894221 (age 920.068s)
  hex dump (first 32 bytes):
    28 3c 61 82 00 80 ff ff 28 3c 61 82 00 80 ff ff  (&lt;a.....(&lt;a.....
    67 00 00 00 00 00 00 00 00 00 37 2b af ab ff ff  g.........7+....
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000059ad6bcd&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;00000000c918ae7f&gt;] vcap_api_rule_add_keyvalue_test+0x1d0/0xba8
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c14b7300 (size 64):
  comm "kunit_try_catch", pid 284, jiffies 4294894221 (age 920.084s)
  hex dump (first 32 bytes):
    28 3c 61 82 00 80 ff ff 28 3c 61 82 00 80 ff ff  (&lt;a.....(&lt;a.....
    7d 00 00 00 01 00 00 00 32 54 76 98 ab ff 00 ff  }.......2Tv.....
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000059ad6bcd&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;0000000003352814&gt;] vcap_api_rule_add_keyvalue_test+0x240/0xba8
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&gt;] ret_from_fork+0x10/0x20
unreferenced object 0xffff0276c14b7340 (size 64):
  comm "kunit_try_catch", pid 284, jiffies 4294894221 (age 920.084s)
  hex dump (first 32 bytes):
    28 3c 61 82 00 80 ff ff 28 3c 61 82 00 80 ff ff  (&lt;a.....(&lt;a.....
    51 00 00 00 07 00 00 00 17 26 35 44 63 62 71 00  Q........&amp;5Dcbq.
  backtrace:
    [&lt;0000000028f08898&gt;] slab_post_alloc_hook+0xb8/0x368
    [&lt;00000000514b9b37&gt;] __kmem_cache_alloc_node+0x174/0x290
    [&lt;000000004620684a&gt;] kmalloc_trace+0x40/0x164
    [&lt;0000000059ad6bcd&gt;] vcap_rule_add_key+0x104/0x180
    [&lt;000000001516f109&gt;] vcap_api_rule_add_keyvalue_test+0x2cc/0xba8
    [&lt;00000000fcc5326c&gt;] kunit_try_run_case+0x50/0xac
    [&lt;00000000f5f45b20&gt;] kunit_generic_run_threadfn_adapter+0x20/0x2c
    [&lt;0000000026284079&gt;] kthread+0x124/0x130
    [&lt;0000000024d4a996&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>
<entry>
<title>net: microchip: vcap api: Fix possible memory leak for vcap_dup_rule()</title>
<updated>2023-09-10T17:51:42+00:00</updated>
<author>
<name>Jinjie Ruan</name>
<email>ruanjinjie@huawei.com</email>
</author>
<published>2023-09-07T14:03:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=281f65d29d6da1a9b6907fb0b145aaf34f4e4822'/>
<id>urn:sha1:281f65d29d6da1a9b6907fb0b145aaf34f4e4822</id>
<content type='text'>
Inject fault When select CONFIG_VCAP_KUNIT_TEST, the below memory leak
occurs. If kzalloc() for duprule succeeds, but the following
kmemdup() fails, the duprule, ckf and caf memory will be leaked. So kfree
them in the error path.

unreferenced object 0xffff122744c50600 (size 192):
  comm "kunit_try_catch", pid 346, jiffies 4294896122 (age 911.812s)
  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 06 c5 44 27 12 ff ff  ...........D'...
  backtrace:
    [&lt;00000000394b0db8&gt;] __kmem_cache_alloc_node+0x274/0x2f8
    [&lt;0000000001bedc67&gt;] kmalloc_trace+0x38/0x88
    [&lt;00000000b0612f98&gt;] vcap_dup_rule+0x50/0x460
    [&lt;000000005d2d3aca&gt;] vcap_add_rule+0x8cc/0x1038
    [&lt;00000000eef9d0f8&gt;] test_vcap_xn_rule_creator.constprop.0.isra.0+0x238/0x494
    [&lt;00000000cbda607b&gt;] vcap_api_rule_remove_in_front_test+0x1ac/0x698
    [&lt;00000000c8766299&gt;] kunit_try_run_case+0xe0/0x20c
    [&lt;00000000c4fe9186&gt;] kunit_generic_run_threadfn_adapter+0x50/0x94
    [&lt;00000000f6864acf&gt;] kthread+0x2e8/0x374
    [&lt;0000000022e639b3&gt;] ret_from_fork+0x10/0x20

Fixes: 814e7693207f ("net: microchip: vcap api: Add a storage state to a VCAP rule")
Signed-off-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
