diff options
Diffstat (limited to 'net/netlink/af_netlink.c')
-rw-r--r-- | net/netlink/af_netlink.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 9eb895c7a2a..3ae3cb81656 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c | |||
@@ -1084,6 +1084,13 @@ out: | |||
1084 | return 0; | 1084 | return 0; |
1085 | } | 1085 | } |
1086 | 1086 | ||
1087 | /** | ||
1088 | * netlink_set_err - report error to broadcast listeners | ||
1089 | * @ssk: the kernel netlink socket, as returned by netlink_kernel_create() | ||
1090 | * @pid: the PID of a process that we want to skip (if any) | ||
1091 | * @groups: the broadcast group that will notice the error | ||
1092 | * @code: error code, must be negative (as usual in kernelspace) | ||
1093 | */ | ||
1087 | void netlink_set_err(struct sock *ssk, u32 pid, u32 group, int code) | 1094 | void netlink_set_err(struct sock *ssk, u32 pid, u32 group, int code) |
1088 | { | 1095 | { |
1089 | struct netlink_set_err_data info; | 1096 | struct netlink_set_err_data info; |
@@ -1093,7 +1100,8 @@ void netlink_set_err(struct sock *ssk, u32 pid, u32 group, int code) | |||
1093 | info.exclude_sk = ssk; | 1100 | info.exclude_sk = ssk; |
1094 | info.pid = pid; | 1101 | info.pid = pid; |
1095 | info.group = group; | 1102 | info.group = group; |
1096 | info.code = code; | 1103 | /* sk->sk_err wants a positive error value */ |
1104 | info.code = -code; | ||
1097 | 1105 | ||
1098 | read_lock(&nl_table_lock); | 1106 | read_lock(&nl_table_lock); |
1099 | 1107 | ||