> +     len = kfifo_in_locked(dlci->fifo, skb->data, skb->len,
> &dlci->lock);
> +     len = skb->len - len;
> +     dev_kfree_skb(skb);
> +     netif_start_queue(net);
> +     gsm_dlci_data_kick(dlci);

Ok this fails in some cases. You need to ensure the ip packet goes out
as a single mux frame. Just stuffing it down the fifo and kicking it
won't do the trick as you will lose boundaries under load.

> +     skb->protocol = __constant_htons(ETH_P_IP);
> +     skb->ip_summed = CHECKSUM_UNNECESSARY;

No - there isn't any guarantee the modem checksummed the data for us,
in fact it's unlikely it did.

Otherwise all definitely heading the right way.
_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to