mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
[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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
f2c383988d
commit
f75268cd6c
10 changed files with 39 additions and 24 deletions
|
|
@ -1261,6 +1261,7 @@ static int nr_info_show(struct seq_file *seq, void *v)
|
|||
struct net_device *dev;
|
||||
struct nr_sock *nr;
|
||||
const char *devname;
|
||||
char buf[11];
|
||||
|
||||
if (v == SEQ_START_TOKEN)
|
||||
seq_puts(seq,
|
||||
|
|
@ -1276,11 +1277,11 @@ static int nr_info_show(struct seq_file *seq, void *v)
|
|||
else
|
||||
devname = dev->name;
|
||||
|
||||
seq_printf(seq, "%-9s ", ax2asc(&nr->user_addr));
|
||||
seq_printf(seq, "%-9s ", ax2asc(&nr->dest_addr));
|
||||
seq_printf(seq, "%-9s ", ax2asc(buf, &nr->user_addr));
|
||||
seq_printf(seq, "%-9s ", ax2asc(buf, &nr->dest_addr));
|
||||
seq_printf(seq,
|
||||
"%-9s %-3s %02X/%02X %02X/%02X %2d %3d %3d %3d %3lu/%03lu %2lu/%02lu %3lu/%03lu %3lu/%03lu %2d/%02d %3d %5d %5d %ld\n",
|
||||
ax2asc(&nr->source_addr),
|
||||
ax2asc(buf, &nr->source_addr),
|
||||
devname,
|
||||
nr->my_index,
|
||||
nr->my_id,
|
||||
|
|
|
|||
|
|
@ -881,6 +881,7 @@ static void nr_node_stop(struct seq_file *seq, void *v)
|
|||
|
||||
static int nr_node_show(struct seq_file *seq, void *v)
|
||||
{
|
||||
char buf[11];
|
||||
int i;
|
||||
|
||||
if (v == SEQ_START_TOKEN)
|
||||
|
|
@ -890,7 +891,7 @@ static int nr_node_show(struct seq_file *seq, void *v)
|
|||
struct nr_node *nr_node = v;
|
||||
nr_node_lock(nr_node);
|
||||
seq_printf(seq, "%-9s %-7s %d %d",
|
||||
ax2asc(&nr_node->callsign),
|
||||
ax2asc(buf, &nr_node->callsign),
|
||||
(nr_node->mnemonic[0] == '\0') ? "*" : nr_node->mnemonic,
|
||||
nr_node->which + 1,
|
||||
nr_node->count);
|
||||
|
|
@ -964,6 +965,7 @@ static void nr_neigh_stop(struct seq_file *seq, void *v)
|
|||
|
||||
static int nr_neigh_show(struct seq_file *seq, void *v)
|
||||
{
|
||||
char buf[11];
|
||||
int i;
|
||||
|
||||
if (v == SEQ_START_TOKEN)
|
||||
|
|
@ -973,7 +975,7 @@ static int nr_neigh_show(struct seq_file *seq, void *v)
|
|||
|
||||
seq_printf(seq, "%05d %-9s %-4s %3d %d %3d %3d",
|
||||
nr_neigh->number,
|
||||
ax2asc(&nr_neigh->callsign),
|
||||
ax2asc(buf, &nr_neigh->callsign),
|
||||
nr_neigh->dev ? nr_neigh->dev->name : "???",
|
||||
nr_neigh->quality,
|
||||
nr_neigh->locked,
|
||||
|
|
@ -983,7 +985,7 @@ static int nr_neigh_show(struct seq_file *seq, void *v)
|
|||
if (nr_neigh->digipeat != NULL) {
|
||||
for (i = 0; i < nr_neigh->digipeat->ndigi; i++)
|
||||
seq_printf(seq, " %s",
|
||||
ax2asc(&nr_neigh->digipeat->calls[i]));
|
||||
ax2asc(buf, &nr_neigh->digipeat->calls[i]));
|
||||
}
|
||||
|
||||
seq_puts(seq, "\n");
|
||||
|
|
|
|||
Loading…
Reference in a new issue