linux/drivers/android/binder_netlink.c
Li Li 63740349eb binder: introduce transaction reports via netlink
Introduce a generic netlink multicast event to report binder transaction
failures to userspace. This allows subscribers to monitor these events
and take appropriate actions, such as stopping a misbehaving application
that is spamming a service with huge amount of transactions.

The multicast event contains full details of the failed transactions,
including the sender/target PIDs, payload size and specific error code.
This interface is defined using a YAML spec, from which the UAPI and
kernel headers and source are auto-generated.

Signed-off-by: Li Li <dualli@google.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Link: https://lore.kernel.org/r/20250727182932.2499194-4-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-08-19 12:53:01 +02:00

31 lines
863 B
C

// SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
/* Do not edit directly, auto-generated from: */
/* Documentation/netlink/specs/binder.yaml */
/* YNL-GEN kernel source */
#include <net/netlink.h>
#include <net/genetlink.h>
#include "binder_netlink.h"
#include <uapi/linux/android/binder_netlink.h>
/* Ops table for binder */
static const struct genl_split_ops binder_nl_ops[] = {
};
static const struct genl_multicast_group binder_nl_mcgrps[] = {
[BINDER_NLGRP_REPORT] = { "report", },
};
struct genl_family binder_nl_family __ro_after_init = {
.name = BINDER_FAMILY_NAME,
.version = BINDER_FAMILY_VERSION,
.netnsok = true,
.parallel_ops = true,
.module = THIS_MODULE,
.split_ops = binder_nl_ops,
.n_split_ops = ARRAY_SIZE(binder_nl_ops),
.mcgrps = binder_nl_mcgrps,
.n_mcgrps = ARRAY_SIZE(binder_nl_mcgrps),
};