/* Note: src here is the sender, thus it's the target of the DM  */
void ax25_return_dm(struct net_device *dev, ax25_address *src, ax25_address *dest, ax25_digi *digi)
/* Note: src here is the sender, thus it's the target of the DM  */
void ax25_return_dm(struct net_device *dev, ax25_address *src, ax25_address *dest, ax25_digi *digi)
{
	struct sk_buff *skb;
	char *dptr;
	ax25_digi retdigi;
	if (dev == NULL)
		return;
	if ((skb = alloc_skb(dev->hard_header_len + 1, GFP_ATOMIC)) == NULL)
		return;
	skb_reserve(skb, dev->hard_header_len);
	skb_reset_network_header(skb);
	ax25_digi_invert(digi, &retdigi);
	dptr = skb_put(skb, 1);
	*dptr = AX25_DM | AX25_PF;
	dptr  = skb_push(skb, ax25_addr_size(digi));
	dptr += ax25_addr_build(dptr, dest, src, &retdigi, AX25_RESPONSE, AX25_MODULUS);
	ax25_queue_xmit(skb, dev);
}