diff -ru linux-2.6.0.rxq.applied/net/ax25/af_ax25.c linux-2.6.0.rxq/net/ax25/af_ax25.c --- linux-2.6.0.rxq.applied/net/ax25/af_ax25.c 2003-12-31 16:37:07.000000000 +0100 +++ linux-2.6.0.rxq/net/ax25/af_ax25.c 2003-12-31 16:18:04.000000000 +0100 @@ -247,6 +247,7 @@ kfree_skb(copy); } } + spin_unlock_bh(&ax25_list_lock); } /* @@ -1618,16 +1619,16 @@ if (msg->msg_namelen != 0) { struct sockaddr_ax25 *sax = (struct sockaddr_ax25 *)msg->msg_name; ax25_digi digi; - ax25_address dest; + ax25_address src; - ax25_addr_parse(skb->mac.raw+1, skb->data-skb->mac.raw-1, NULL, &dest, &digi, NULL, NULL); + ax25_addr_parse(skb->mac.raw+1, skb->data-skb->mac.raw-1, &src, NULL, &digi, NULL, NULL); sax->sax25_family = AF_AX25; /* We set this correctly, even though we may not let the application know the digi calls further down (because it did NOT ask to know them). This could get political... **/ sax->sax25_ndigis = digi.ndigi; - sax->sax25_call = dest; + sax->sax25_call = src; if (sax->sax25_ndigis != 0) { int ct;