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 9eb895c7a2a9..3ae3cb816563 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 | ||
