From: Alexander Duyck Date: Thu, 19 Jul 2012 00:18:05 +0000 (+0000) Subject: ixgbevf: Fix multiple issues in ixgbevf_get/set_ringparam X-Git-Tag: v3.6-rc1~125^2~92 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb022d058f5ad48c45f1f31c36865d2c676aedc9;p=pandora-kernel.git ixgbevf: Fix multiple issues in ixgbevf_get/set_ringparam In ixgbevf_get_ringparam we could run into a NULL pointer dereference if the rings were not allocated when we attempted the call. To prevent that we can just access the tx/rx_ring_count values instead of attempting to access the rings to get the count. This change corrects a memory leak and memory corruption in ixgbevf_set_ringparam. The memory leak was due to us not freeing the resources from the ring before overwriting them. This change corrects the memory leak by making certain to call ixgbe_free_tx/rx_resources on the rings prior to freeing them. The memory corruption was because we were replacing the rings but not updating the q_vectors. It addresses the memory corruption by leaving the rings in place and instead just copying the contents of the new rings into the existing rings. Signed-off-by: Alexander Duyck Acked-by: Greg Rose Tested-by: Sibai Li Signed-off-by: Jeff Kirsher --- Reading git-diff-tree failed