On Wed, Feb 12, 2025 at 3:49 PM Josh Poimboeuf <jpoim...@kernel.org> wrote: > > On Wed, Feb 12, 2025 at 03:32:40PM -0800, Song Liu wrote: > > [ 81.250437] ------------[ cut here ]------------ > > [ 81.250818] refcount_t: saturated; leaking memory. > > [ 81.251201] WARNING: CPU: 0 PID: 95 at lib/refcount.c:22 > > refcount_warn_saturate+0x6c/0x140 > > [ 81.251841] Modules linked in: livepatch_special_static(OEK) > > [ 81.252277] CPU: 0 UID: 0 PID: 95 Comm: bash Tainted: G > > OE K 6.13.2-00321-g52d2813b4b07 #49 > > [ 81.253003] Tainted: [O]=OOT_MODULE, [E]=UNSIGNED_MODULE, [K]=LIVEPATCH > > [ 81.253503] Hardware name: linux,dummy-virt (DT) > > [ 81.253856] pstate: 634000c5 (nZCv daIF +PAN -UAO +TCO +DIT -SSBS > > BTYPE=--) > > [ 81.254383] pc : refcount_warn_saturate+0x6c/0x140 > > [ 81.254748] lr : refcount_warn_saturate+0x6c/0x140 > > [ 81.255114] sp : ffff800085a6fc00 > > [ 81.255371] x29: ffff800085a6fc00 x28: 0000000001200000 x27: > > ffff0000c2966180 > > [ 81.255918] x26: 0000000000000000 x25: ffff8000829c0000 x24: > > ffff0000c2e9b608 > > [ 81.256462] x23: ffff800083351000 x22: ffff0000c2e9af80 x21: > > ffff0000c062e140 > > [ 81.257006] x20: ffff0000c1c10c00 x19: ffff800085a6fd80 x18: > > ffffffffffffffff > > [ 81.257544] x17: 0000000000000001 x16: ffffffffffffffff x15: > > 0000000000000006 > > [ 81.258083] x14: 0000000000000000 x13: 2e79726f6d656d20 x12: > > 676e696b61656c20 > > [ 81.258625] x11: ffff8000829f7d70 x10: 0000000000000147 x9 : > > ffff8000801546b4 > > [ 81.259165] x8 : 00000000fffeffff x7 : 00000000ffff0000 x6 : > > ffff800082f77d70 > > [ 81.259709] x5 : 80000000ffff0000 x4 : 0000000000000000 x3 : > > 0000000000000001 > > [ 81.260257] x2 : ffff8000829f7a88 x1 : ffff8000829f7a88 x0 : > > 0000000000000026 > > [ 81.260824] Call trace: > > [ 81.261015] refcount_warn_saturate+0x6c/0x140 (P) > > [ 81.261387] __refcount_add.constprop.0+0x60/0x70 > > [ 81.261748] copy_process+0xfdc/0xfd58 [livepatch_special_static] > > Does that copy_process+0xfdc/0xfd58 resolve to this line in > copy_process()? > > refcount_inc(¤t->signal->sigcnt); > > Maybe the klp rela reference to 'current' is bogus, or resolving to the > wrong address somehow?
It resolves the following line. p->signal->tty = tty_kref_get(current->signal->tty); I am not quite sure how 'current' should be resolved. The size of copy_process (0xfd58) is wrong. It is only about 5.5kB in size. Also, the copy_process function in the .ko file looks very broken. I will try a few more things. Thanks, Song