btf: Switch vmlinux BTF attribute to sysfs_bin_attr_simple_read()

The generic function from the sysfs core can replace the custom one.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20241228-sysfs-const-bin_attr-simple-v2-2-7c6f3f1767a3@weissschuh.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Thomas Weißschuh 2024-12-28 09:43:42 +01:00 committed by Greg Kroah-Hartman
parent 3675a926fe
commit 42369b9a1e

View File

@ -12,24 +12,16 @@
extern char __start_BTF[]; extern char __start_BTF[];
extern char __stop_BTF[]; extern char __stop_BTF[];
static ssize_t
btf_vmlinux_read(struct file *file, struct kobject *kobj,
struct bin_attribute *bin_attr,
char *buf, loff_t off, size_t len)
{
memcpy(buf, __start_BTF + off, len);
return len;
}
static struct bin_attribute bin_attr_btf_vmlinux __ro_after_init = { static struct bin_attribute bin_attr_btf_vmlinux __ro_after_init = {
.attr = { .name = "vmlinux", .mode = 0444, }, .attr = { .name = "vmlinux", .mode = 0444, },
.read = btf_vmlinux_read, .read_new = sysfs_bin_attr_simple_read,
}; };
struct kobject *btf_kobj; struct kobject *btf_kobj;
static int __init btf_vmlinux_init(void) static int __init btf_vmlinux_init(void)
{ {
bin_attr_btf_vmlinux.private = __start_BTF;
bin_attr_btf_vmlinux.size = __stop_BTF - __start_BTF; bin_attr_btf_vmlinux.size = __stop_BTF - __start_BTF;
if (bin_attr_btf_vmlinux.size == 0) if (bin_attr_btf_vmlinux.size == 0)