From: Jacob Gorm Hansen <jacob@me...> - 2004-04-21 17:38:55
I seem to have a problem with the Linux xen-network driver leaking skbs.
This is probably my own fault, upon resumption after migration I call
struct net_device* dev = __dev_get_by_name("eth0");
-- which works fine. However, in network_open() the call to
NETOP_RESET_RINGS seems to clear all the pointers to the old skbs, and
network_alloc_rx_buffers() allocs a bunch of new ones. It suppose that
means I have just leaked a whole bunch of skbs. I know the standard
suspend/resume code performs almost a full ifup/ifdown (which I cannot
do in my case) but I don't see any skb-freeing code in that case either?
I have tried dev_kfree_skb()'ing the contents of the np->rx_skbs[1:]
array before calling network_open, but doing so just crashes Linux :-(