From: Jacob G. H. <ja...@me...> - 2004-04-21 17:38:55
|
hi, 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 this: void network_resume(void) { struct net_device* dev = __dev_get_by_name("eth0"); MOD_DEC_USE_COUNT; network_open(dev); } -- 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 :-( Any ideas? Jacob |