diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-09-06 18:49:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-09-06 18:49:39 -0400 |
commit | f75268cd6cbd24e6c70ff1390f4de5d0bb618539 (patch) | |
tree | ade569781c444bd7f0d648a38cab205d7624e286 /net/ax25/af_ax25.c | |
parent | f2c383988d68c91a7d474b7cf26c0a2df49bbafe (diff) |
[AX25]: Make ax2asc thread-proof
Ax2asc was still using a static buffer for all invocations which isn't
exactly SMP-safe. Change ax2asc to take an additional result buffer as
the argument. Change all callers to provide such a buffer.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ax25/af_ax25.c')
-rw-r--r-- | net/ax25/af_ax25.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index ea43dfb774e2..ed705ddad56b 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c | |||
@@ -1874,6 +1874,7 @@ static void ax25_info_stop(struct seq_file *seq, void *v) | |||
1874 | static int ax25_info_show(struct seq_file *seq, void *v) | 1874 | static int ax25_info_show(struct seq_file *seq, void *v) |
1875 | { | 1875 | { |
1876 | ax25_cb *ax25 = v; | 1876 | ax25_cb *ax25 = v; |
1877 | char buf[11]; | ||
1877 | int k; | 1878 | int k; |
1878 | 1879 | ||
1879 | 1880 | ||
@@ -1885,13 +1886,13 @@ static int ax25_info_show(struct seq_file *seq, void *v) | |||
1885 | seq_printf(seq, "%8.8lx %s %s%s ", | 1886 | seq_printf(seq, "%8.8lx %s %s%s ", |
1886 | (long) ax25, | 1887 | (long) ax25, |
1887 | ax25->ax25_dev == NULL? "???" : ax25->ax25_dev->dev->name, | 1888 | ax25->ax25_dev == NULL? "???" : ax25->ax25_dev->dev->name, |
1888 | ax2asc(&ax25->source_addr), | 1889 | ax2asc(buf, &ax25->source_addr), |
1889 | ax25->iamdigi? "*":""); | 1890 | ax25->iamdigi? "*":""); |
1890 | seq_printf(seq, "%s", ax2asc(&ax25->dest_addr)); | 1891 | seq_printf(seq, "%s", ax2asc(buf, &ax25->dest_addr)); |
1891 | 1892 | ||
1892 | for (k=0; (ax25->digipeat != NULL) && (k < ax25->digipeat->ndigi); k++) { | 1893 | for (k=0; (ax25->digipeat != NULL) && (k < ax25->digipeat->ndigi); k++) { |
1893 | seq_printf(seq, ",%s%s", | 1894 | seq_printf(seq, ",%s%s", |
1894 | ax2asc(&ax25->digipeat->calls[k]), | 1895 | ax2asc(buf, &ax25->digipeat->calls[k]), |
1895 | ax25->digipeat->repeated[k]? "*":""); | 1896 | ax25->digipeat->repeated[k]? "*":""); |
1896 | } | 1897 | } |
1897 | 1898 | ||