Re: [PATCH v5 0/2] Return EADDRNOTAVAIL when func matches several symbols during kprobe creation
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date: 2023-10-19 12:18:50
Also in:
stable
From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Date: 2023-10-19 12:18:50
Also in:
stable
On Wed, 18 Oct 2023 13:00:42 -0400 Steven Rostedt [off-list ref] wrote:
On Wed, 18 Oct 2023 17:40:28 +0300 Francis Laniel [off-list ref] wrote:quoted
Changes since: v1: * Use EADDRNOTAVAIL instead of adding a new error code. * Correct also this behavior for sysfs kprobe. v2: * Count the number of symbols corresponding to function name and return EADDRNOTAVAIL if higher than 1. * Return ENOENT if above count is 0, as it would be returned later by while registering the kprobe. v3: * Check symbol does not contain ':' before testing its uniqueness. * Add a selftest to check this is not possible to install a kprobe for a non unique symbol. v5: * No changes, just add linux-stable as recipient.So why is this adding stable? (and as Greg's form letter states, that's not how you do that) I don't see this as a fix but a new feature.
I asked him to make this a fix since the current kprobe event' behavior is somewhat strange. It puts the probe on only the "first symbol" if user specifies a symbol name which has multiple instances. In this case, the actual probe address can not be solved by name. User must specify the probe address by unique name + offset. Unless, it can put a probe on unexpected address, especially if it specifies non-unique symbol + offset, the address may NOT be the instruction boundary. To avoid this issue, it should check the given symbol is unique. Thank you,
-- Steve
-- Masami Hiramatsu (Google) [off-list ref]