Annotation of /trunk/kernel-magellan/patches-3.2/0112-3.2.13-all-fixes.patch
Parent Directory | Revision Log
Revision 1713 -
(hide annotations)
(download)
Mon Mar 26 09:50:16 2012 UTC (12 years, 6 months ago) by niro
File size: 15508 byte(s)
Mon Mar 26 09:50:16 2012 UTC (12 years, 6 months ago) by niro
File size: 15508 byte(s)
-3.2.13-magellan-r1
1 | niro | 1713 | diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c |
2 | index 9b6a820..3394254 100644 | ||
3 | --- a/arch/powerpc/platforms/powermac/smp.c | ||
4 | +++ b/arch/powerpc/platforms/powermac/smp.c | ||
5 | @@ -414,7 +414,7 @@ static struct irqaction psurge_irqaction = { | ||
6 | |||
7 | static void __init smp_psurge_setup_cpu(int cpu_nr) | ||
8 | { | ||
9 | - if (cpu_nr != 0) | ||
10 | + if (cpu_nr != 0 || !psurge_start) | ||
11 | return; | ||
12 | |||
13 | /* reset the entry point so if we get another intr we won't | ||
14 | diff --git a/drivers/net/wireless/iwlegacy/iwl-3945.c b/drivers/net/wireless/iwlegacy/iwl-3945.c | ||
15 | index f7c0a74..7d1aa7c 100644 | ||
16 | --- a/drivers/net/wireless/iwlegacy/iwl-3945.c | ||
17 | +++ b/drivers/net/wireless/iwlegacy/iwl-3945.c | ||
18 | @@ -1870,11 +1870,12 @@ static void iwl3945_bg_reg_txpower_periodic(struct work_struct *work) | ||
19 | struct iwl_priv *priv = container_of(work, struct iwl_priv, | ||
20 | _3945.thermal_periodic.work); | ||
21 | |||
22 | - if (test_bit(STATUS_EXIT_PENDING, &priv->status)) | ||
23 | - return; | ||
24 | - | ||
25 | mutex_lock(&priv->mutex); | ||
26 | + if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL) | ||
27 | + goto out; | ||
28 | + | ||
29 | iwl3945_reg_txpower_periodic(priv); | ||
30 | +out: | ||
31 | mutex_unlock(&priv->mutex); | ||
32 | } | ||
33 | |||
34 | diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c | ||
35 | index 05f2ad1..b3d9f3f 100644 | ||
36 | --- a/drivers/net/wireless/iwlegacy/iwl3945-base.c | ||
37 | +++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c | ||
38 | @@ -2513,7 +2513,7 @@ static void iwl3945_bg_alive_start(struct work_struct *data) | ||
39 | container_of(data, struct iwl_priv, alive_start.work); | ||
40 | |||
41 | mutex_lock(&priv->mutex); | ||
42 | - if (test_bit(STATUS_EXIT_PENDING, &priv->status)) | ||
43 | + if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL) | ||
44 | goto out; | ||
45 | |||
46 | iwl3945_alive_start(priv); | ||
47 | diff --git a/fs/afs/internal.h b/fs/afs/internal.h | ||
48 | index d2b0888..a306bb6 100644 | ||
49 | --- a/fs/afs/internal.h | ||
50 | +++ b/fs/afs/internal.h | ||
51 | @@ -109,7 +109,7 @@ struct afs_call { | ||
52 | unsigned reply_size; /* current size of reply */ | ||
53 | unsigned first_offset; /* offset into mapping[first] */ | ||
54 | unsigned last_to; /* amount of mapping[last] */ | ||
55 | - unsigned short offset; /* offset into received data store */ | ||
56 | + unsigned offset; /* offset into received data store */ | ||
57 | unsigned char unmarshall; /* unmarshalling phase */ | ||
58 | bool incoming; /* T if incoming call */ | ||
59 | bool send_pages; /* T if data from mapping should be sent */ | ||
60 | diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c | ||
61 | index e45a323..8ad8c2a 100644 | ||
62 | --- a/fs/afs/rxrpc.c | ||
63 | +++ b/fs/afs/rxrpc.c | ||
64 | @@ -314,6 +314,7 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp, | ||
65 | struct msghdr msg; | ||
66 | struct kvec iov[1]; | ||
67 | int ret; | ||
68 | + struct sk_buff *skb; | ||
69 | |||
70 | _enter("%x,{%d},", addr->s_addr, ntohs(call->port)); | ||
71 | |||
72 | @@ -380,6 +381,8 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp, | ||
73 | |||
74 | error_do_abort: | ||
75 | rxrpc_kernel_abort_call(rxcall, RX_USER_ABORT); | ||
76 | + while ((skb = skb_dequeue(&call->rx_queue))) | ||
77 | + afs_free_skb(skb); | ||
78 | rxrpc_kernel_end_call(rxcall); | ||
79 | call->rxcall = NULL; | ||
80 | error_kill_call: | ||
81 | diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c | ||
82 | index d327140..35a8970 100644 | ||
83 | --- a/fs/nilfs2/the_nilfs.c | ||
84 | +++ b/fs/nilfs2/the_nilfs.c | ||
85 | @@ -515,6 +515,7 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs, | ||
86 | brelse(sbh[1]); | ||
87 | sbh[1] = NULL; | ||
88 | sbp[1] = NULL; | ||
89 | + valid[1] = 0; | ||
90 | swp = 0; | ||
91 | } | ||
92 | if (!valid[swp]) { | ||
93 | diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c | ||
94 | index 90f6544..769c0e9 100644 | ||
95 | --- a/net/ipv4/syncookies.c | ||
96 | +++ b/net/ipv4/syncookies.c | ||
97 | @@ -278,6 +278,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, | ||
98 | struct rtable *rt; | ||
99 | __u8 rcv_wscale; | ||
100 | bool ecn_ok = false; | ||
101 | + struct flowi4 fl4; | ||
102 | |||
103 | if (!sysctl_tcp_syncookies || !th->ack || th->rst) | ||
104 | goto out; | ||
105 | @@ -346,20 +347,16 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, | ||
106 | * hasn't changed since we received the original syn, but I see | ||
107 | * no easy way to do this. | ||
108 | */ | ||
109 | - { | ||
110 | - struct flowi4 fl4; | ||
111 | - | ||
112 | - flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk), | ||
113 | - RT_SCOPE_UNIVERSE, IPPROTO_TCP, | ||
114 | - inet_sk_flowi_flags(sk), | ||
115 | - (opt && opt->srr) ? opt->faddr : ireq->rmt_addr, | ||
116 | - ireq->loc_addr, th->source, th->dest); | ||
117 | - security_req_classify_flow(req, flowi4_to_flowi(&fl4)); | ||
118 | - rt = ip_route_output_key(sock_net(sk), &fl4); | ||
119 | - if (IS_ERR(rt)) { | ||
120 | - reqsk_free(req); | ||
121 | - goto out; | ||
122 | - } | ||
123 | + flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk), | ||
124 | + RT_SCOPE_UNIVERSE, IPPROTO_TCP, | ||
125 | + inet_sk_flowi_flags(sk), | ||
126 | + (opt && opt->srr) ? opt->faddr : ireq->rmt_addr, | ||
127 | + ireq->loc_addr, th->source, th->dest); | ||
128 | + security_req_classify_flow(req, flowi4_to_flowi(&fl4)); | ||
129 | + rt = ip_route_output_key(sock_net(sk), &fl4); | ||
130 | + if (IS_ERR(rt)) { | ||
131 | + reqsk_free(req); | ||
132 | + goto out; | ||
133 | } | ||
134 | |||
135 | /* Try to redo what tcp_v4_send_synack did. */ | ||
136 | @@ -373,5 +370,10 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, | ||
137 | ireq->rcv_wscale = rcv_wscale; | ||
138 | |||
139 | ret = get_cookie_sock(sk, skb, req, &rt->dst); | ||
140 | + /* ip_queue_xmit() depends on our flow being setup | ||
141 | + * Normal sockets get it right from inet_csk_route_child_sock() | ||
142 | + */ | ||
143 | + if (ret) | ||
144 | + inet_sk(ret)->cork.fl.u.ip4 = fl4; | ||
145 | out: return ret; | ||
146 | } | ||
147 | diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c | ||
148 | index eb90aa8..de69cec 100644 | ||
149 | --- a/net/ipv4/tcp_ipv4.c | ||
150 | +++ b/net/ipv4/tcp_ipv4.c | ||
151 | @@ -1465,9 +1465,13 @@ struct sock *tcp_v4_syn_recv_sock(struct sock *sk, struct sk_buff *skb, | ||
152 | inet_csk(newsk)->icsk_ext_hdr_len = inet_opt->opt.optlen; | ||
153 | newinet->inet_id = newtp->write_seq ^ jiffies; | ||
154 | |||
155 | - if (!dst && (dst = inet_csk_route_child_sock(sk, newsk, req)) == NULL) | ||
156 | - goto put_and_exit; | ||
157 | - | ||
158 | + if (!dst) { | ||
159 | + dst = inet_csk_route_child_sock(sk, newsk, req); | ||
160 | + if (!dst) | ||
161 | + goto put_and_exit; | ||
162 | + } else { | ||
163 | + /* syncookie case : see end of cookie_v4_check() */ | ||
164 | + } | ||
165 | sk_setup_caps(newsk, dst); | ||
166 | |||
167 | tcp_mtup_init(newsk); | ||
168 | diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c | ||
169 | index ee7839f..2257366 100644 | ||
170 | --- a/net/ipv6/mcast.c | ||
171 | +++ b/net/ipv6/mcast.c | ||
172 | @@ -257,7 +257,6 @@ static struct inet6_dev *ip6_mc_find_dev_rcu(struct net *net, | ||
173 | |||
174 | if (rt) { | ||
175 | dev = rt->rt6i_dev; | ||
176 | - dev_hold(dev); | ||
177 | dst_release(&rt->dst); | ||
178 | } | ||
179 | } else | ||
180 | diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c | ||
181 | index eba80c2..2f7073d 100644 | ||
182 | --- a/tools/perf/arch/powerpc/util/header.c | ||
183 | +++ b/tools/perf/arch/powerpc/util/header.c | ||
184 | @@ -25,7 +25,7 @@ get_cpuid(char *buffer, size_t sz) | ||
185 | |||
186 | pvr = mfspr(SPRN_PVR); | ||
187 | |||
188 | - nb = snprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr)); | ||
189 | + nb = scnprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr)); | ||
190 | |||
191 | /* look for end marker to ensure the entire data fit */ | ||
192 | if (strchr(buffer, '$')) { | ||
193 | diff --git a/tools/perf/arch/x86/util/header.c b/tools/perf/arch/x86/util/header.c | ||
194 | index f940060..146d12a 100644 | ||
195 | --- a/tools/perf/arch/x86/util/header.c | ||
196 | +++ b/tools/perf/arch/x86/util/header.c | ||
197 | @@ -48,7 +48,7 @@ get_cpuid(char *buffer, size_t sz) | ||
198 | if (family >= 0x6) | ||
199 | model += ((a >> 16) & 0xf) << 4; | ||
200 | } | ||
201 | - nb = snprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step); | ||
202 | + nb = scnprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step); | ||
203 | |||
204 | /* look for end marker to ensure the entire data fit */ | ||
205 | if (strchr(buffer, '$')) { | ||
206 | diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c | ||
207 | index 521c38a..11e46da1 100644 | ||
208 | --- a/tools/perf/util/color.c | ||
209 | +++ b/tools/perf/util/color.c | ||
210 | @@ -1,3 +1,4 @@ | ||
211 | +#include <linux/kernel.h> | ||
212 | #include "cache.h" | ||
213 | #include "color.h" | ||
214 | |||
215 | @@ -182,12 +183,12 @@ static int __color_vsnprintf(char *bf, size_t size, const char *color, | ||
216 | } | ||
217 | |||
218 | if (perf_use_color_default && *color) | ||
219 | - r += snprintf(bf, size, "%s", color); | ||
220 | - r += vsnprintf(bf + r, size - r, fmt, args); | ||
221 | + r += scnprintf(bf, size, "%s", color); | ||
222 | + r += vscnprintf(bf + r, size - r, fmt, args); | ||
223 | if (perf_use_color_default && *color) | ||
224 | - r += snprintf(bf + r, size - r, "%s", PERF_COLOR_RESET); | ||
225 | + r += scnprintf(bf + r, size - r, "%s", PERF_COLOR_RESET); | ||
226 | if (trail) | ||
227 | - r += snprintf(bf + r, size - r, "%s", trail); | ||
228 | + r += scnprintf(bf + r, size - r, "%s", trail); | ||
229 | return r; | ||
230 | } | ||
231 | |||
232 | diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c | ||
233 | index 33c17a2..2cd88c1 100644 | ||
234 | --- a/tools/perf/util/header.c | ||
235 | +++ b/tools/perf/util/header.c | ||
236 | @@ -1227,7 +1227,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir, | ||
237 | if (realname == NULL || filename == NULL || linkname == NULL) | ||
238 | goto out_free; | ||
239 | |||
240 | - len = snprintf(filename, size, "%s%s%s", | ||
241 | + len = scnprintf(filename, size, "%s%s%s", | ||
242 | debugdir, is_kallsyms ? "/" : "", realname); | ||
243 | if (mkdir_p(filename, 0755)) | ||
244 | goto out_free; | ||
245 | @@ -1242,7 +1242,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir, | ||
246 | goto out_free; | ||
247 | } | ||
248 | |||
249 | - len = snprintf(linkname, size, "%s/.build-id/%.2s", | ||
250 | + len = scnprintf(linkname, size, "%s/.build-id/%.2s", | ||
251 | debugdir, sbuild_id); | ||
252 | |||
253 | if (access(linkname, X_OK) && mkdir_p(linkname, 0755)) | ||
254 | diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c | ||
255 | index abef270..216e33a 100644 | ||
256 | --- a/tools/perf/util/hist.c | ||
257 | +++ b/tools/perf/util/hist.c | ||
258 | @@ -767,7 +767,7 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *self, char *s, | ||
259 | sep ? "%.2f" : " %6.2f%%", | ||
260 | (period * 100.0) / total); | ||
261 | else | ||
262 | - ret = snprintf(s, size, sep ? "%.2f" : " %6.2f%%", | ||
263 | + ret = scnprintf(s, size, sep ? "%.2f" : " %6.2f%%", | ||
264 | (period * 100.0) / total); | ||
265 | if (symbol_conf.show_cpu_utilization) { | ||
266 | ret += percent_color_snprintf(s + ret, size - ret, | ||
267 | @@ -790,20 +790,20 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *self, char *s, | ||
268 | } | ||
269 | } | ||
270 | } else | ||
271 | - ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); | ||
272 | + ret = scnprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period); | ||
273 | |||
274 | if (symbol_conf.show_nr_samples) { | ||
275 | if (sep) | ||
276 | - ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events); | ||
277 | + ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events); | ||
278 | else | ||
279 | - ret += snprintf(s + ret, size - ret, "%11" PRIu64, nr_events); | ||
280 | + ret += scnprintf(s + ret, size - ret, "%11" PRIu64, nr_events); | ||
281 | } | ||
282 | |||
283 | if (symbol_conf.show_total_period) { | ||
284 | if (sep) | ||
285 | - ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); | ||
286 | + ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period); | ||
287 | else | ||
288 | - ret += snprintf(s + ret, size - ret, " %12" PRIu64, period); | ||
289 | + ret += scnprintf(s + ret, size - ret, " %12" PRIu64, period); | ||
290 | } | ||
291 | |||
292 | if (pair_hists) { | ||
293 | @@ -818,25 +818,25 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *self, char *s, | ||
294 | diff = new_percent - old_percent; | ||
295 | |||
296 | if (fabs(diff) >= 0.01) | ||
297 | - snprintf(bf, sizeof(bf), "%+4.2F%%", diff); | ||
298 | + ret += scnprintf(bf, sizeof(bf), "%+4.2F%%", diff); | ||
299 | else | ||
300 | - snprintf(bf, sizeof(bf), " "); | ||
301 | + ret += scnprintf(bf, sizeof(bf), " "); | ||
302 | |||
303 | if (sep) | ||
304 | - ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf); | ||
305 | + ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf); | ||
306 | else | ||
307 | - ret += snprintf(s + ret, size - ret, "%11.11s", bf); | ||
308 | + ret += scnprintf(s + ret, size - ret, "%11.11s", bf); | ||
309 | |||
310 | if (show_displacement) { | ||
311 | if (displacement) | ||
312 | - snprintf(bf, sizeof(bf), "%+4ld", displacement); | ||
313 | + ret += scnprintf(bf, sizeof(bf), "%+4ld", displacement); | ||
314 | else | ||
315 | - snprintf(bf, sizeof(bf), " "); | ||
316 | + ret += scnprintf(bf, sizeof(bf), " "); | ||
317 | |||
318 | if (sep) | ||
319 | - ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf); | ||
320 | + ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf); | ||
321 | else | ||
322 | - ret += snprintf(s + ret, size - ret, "%6.6s", bf); | ||
323 | + ret += scnprintf(s + ret, size - ret, "%6.6s", bf); | ||
324 | } | ||
325 | } | ||
326 | |||
327 | @@ -854,7 +854,7 @@ int hist_entry__snprintf(struct hist_entry *he, char *s, size_t size, | ||
328 | if (se->elide) | ||
329 | continue; | ||
330 | |||
331 | - ret += snprintf(s + ret, size - ret, "%s", sep ?: " "); | ||
332 | + ret += scnprintf(s + ret, size - ret, "%s", sep ?: " "); | ||
333 | ret += se->se_snprintf(he, s + ret, size - ret, | ||
334 | hists__col_len(hists, se->se_width_idx)); | ||
335 | } | ||
336 | diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c | ||
337 | index 16da30d..076c9d4 100644 | ||
338 | --- a/tools/perf/util/sort.c | ||
339 | +++ b/tools/perf/util/sort.c | ||
340 | @@ -33,6 +33,9 @@ static int repsep_snprintf(char *bf, size_t size, const char *fmt, ...) | ||
341 | } | ||
342 | } | ||
343 | va_end(ap); | ||
344 | + | ||
345 | + if (n >= (int)size) | ||
346 | + return size - 1; | ||
347 | return n; | ||
348 | } | ||
349 | |||
350 | diff --git a/tools/perf/util/strbuf.c b/tools/perf/util/strbuf.c | ||
351 | index 92e0685..2eeb51b 100644 | ||
352 | --- a/tools/perf/util/strbuf.c | ||
353 | +++ b/tools/perf/util/strbuf.c | ||
354 | @@ -1,4 +1,5 @@ | ||
355 | #include "cache.h" | ||
356 | +#include <linux/kernel.h> | ||
357 | |||
358 | int prefixcmp(const char *str, const char *prefix) | ||
359 | { | ||
360 | @@ -89,14 +90,14 @@ void strbuf_addf(struct strbuf *sb, const char *fmt, ...) | ||
361 | if (!strbuf_avail(sb)) | ||
362 | strbuf_grow(sb, 64); | ||
363 | va_start(ap, fmt); | ||
364 | - len = vsnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); | ||
365 | + len = vscnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); | ||
366 | va_end(ap); | ||
367 | if (len < 0) | ||
368 | - die("your vsnprintf is broken"); | ||
369 | + die("your vscnprintf is broken"); | ||
370 | if (len > strbuf_avail(sb)) { | ||
371 | strbuf_grow(sb, len); | ||
372 | va_start(ap, fmt); | ||
373 | - len = vsnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); | ||
374 | + len = vscnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap); | ||
375 | va_end(ap); | ||
376 | if (len > strbuf_avail(sb)) { | ||
377 | die("this should not happen, your snprintf is broken"); | ||
378 | diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c | ||
379 | index d0c94b4..81c9fa5 100644 | ||
380 | --- a/tools/perf/util/ui/browsers/hists.c | ||
381 | +++ b/tools/perf/util/ui/browsers/hists.c | ||
382 | @@ -839,15 +839,15 @@ static int hists__browser_title(struct hists *self, char *bf, size_t size, | ||
383 | unsigned long nr_events = self->stats.nr_events[PERF_RECORD_SAMPLE]; | ||
384 | |||
385 | nr_events = convert_unit(nr_events, &unit); | ||
386 | - printed = snprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name); | ||
387 | + printed = scnprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name); | ||
388 | |||
389 | if (thread) | ||
390 | - printed += snprintf(bf + printed, size - printed, | ||
391 | + printed += scnprintf(bf + printed, size - printed, | ||
392 | ", Thread: %s(%d)", | ||
393 | (thread->comm_set ? thread->comm : ""), | ||
394 | thread->pid); | ||
395 | if (dso) | ||
396 | - printed += snprintf(bf + printed, size - printed, | ||
397 | + printed += scnprintf(bf + printed, size - printed, | ||
398 | ", DSO: %s", dso->short_name); | ||
399 | return printed; | ||
400 | } | ||
401 | @@ -1097,7 +1097,7 @@ static void perf_evsel_menu__write(struct ui_browser *browser, | ||
402 | HE_COLORSET_NORMAL); | ||
403 | |||
404 | nr_events = convert_unit(nr_events, &unit); | ||
405 | - printed = snprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events, | ||
406 | + printed = scnprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events, | ||
407 | unit, unit == ' ' ? "" : " ", ev_name); | ||
408 | slsmg_printf("%s", bf); | ||
409 | |||
410 | @@ -1107,8 +1107,8 @@ static void perf_evsel_menu__write(struct ui_browser *browser, | ||
411 | if (!current_entry) | ||
412 | ui_browser__set_color(browser, HE_COLORSET_TOP); | ||
413 | nr_events = convert_unit(nr_events, &unit); | ||
414 | - snprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!", nr_events, | ||
415 | - unit, unit == ' ' ? "" : " "); | ||
416 | + printed += scnprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!", | ||
417 | + nr_events, unit, unit == ' ' ? "" : " "); | ||
418 | warn = bf; | ||
419 | } | ||
420 | |||
421 | diff --git a/tools/perf/util/ui/helpline.c b/tools/perf/util/ui/helpline.c | ||
422 | index 6ef3c56..f50f81c 100644 | ||
423 | --- a/tools/perf/util/ui/helpline.c | ||
424 | +++ b/tools/perf/util/ui/helpline.c | ||
425 | @@ -65,7 +65,7 @@ int ui_helpline__show_help(const char *format, va_list ap) | ||
426 | static int backlog; | ||
427 | |||
428 | pthread_mutex_lock(&ui__lock); | ||
429 | - ret = vsnprintf(ui_helpline__last_msg + backlog, | ||
430 | + ret = vscnprintf(ui_helpline__last_msg + backlog, | ||
431 | sizeof(ui_helpline__last_msg) - backlog, format, ap); | ||
432 | backlog += ret; | ||
433 |