diff options
Diffstat (limited to 'kernel/taskstats.c')
-rw-r--r-- | kernel/taskstats.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/kernel/taskstats.c b/kernel/taskstats.c index f45c5e70773c..d3d28919d4b4 100644 --- a/kernel/taskstats.c +++ b/kernel/taskstats.c | |||
@@ -77,8 +77,7 @@ static int prepare_reply(struct genl_info *info, u8 cmd, struct sk_buff **skbp, | |||
77 | /* | 77 | /* |
78 | * If new attributes are added, please revisit this allocation | 78 | * If new attributes are added, please revisit this allocation |
79 | */ | 79 | */ |
80 | size = nlmsg_total_size(genlmsg_total_size(size)); | 80 | skb = genlmsg_new(size, GFP_KERNEL); |
81 | skb = nlmsg_new(size, GFP_KERNEL); | ||
82 | if (!skb) | 81 | if (!skb) |
83 | return -ENOMEM; | 82 | return -ENOMEM; |
84 | 83 | ||
@@ -86,13 +85,9 @@ static int prepare_reply(struct genl_info *info, u8 cmd, struct sk_buff **skbp, | |||
86 | int seq = get_cpu_var(taskstats_seqnum)++; | 85 | int seq = get_cpu_var(taskstats_seqnum)++; |
87 | put_cpu_var(taskstats_seqnum); | 86 | put_cpu_var(taskstats_seqnum); |
88 | 87 | ||
89 | reply = genlmsg_put(skb, 0, seq, | 88 | reply = genlmsg_put(skb, 0, seq, &family, 0, cmd); |
90 | family.id, 0, 0, | ||
91 | cmd, family.version); | ||
92 | } else | 89 | } else |
93 | reply = genlmsg_put(skb, info->snd_pid, info->snd_seq, | 90 | reply = genlmsg_put_reply(skb, info, &family, 0, cmd); |
94 | family.id, 0, 0, | ||
95 | cmd, family.version); | ||
96 | if (reply == NULL) { | 91 | if (reply == NULL) { |
97 | nlmsg_free(skb); | 92 | nlmsg_free(skb); |
98 | return -EINVAL; | 93 | return -EINVAL; |