[PKT_SCHED] ematch: tcf_em_destroy robustness

Make the code in tcf_em_tree_destroy more robust and cleaner:
* Don't need to cast pointer to kfree() or avoid passing NULL.
* After freeing the tree, clear the pointer to avoid possible problems
from repeated free.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Stephen Hemminger and committed by David S. Miller 954415e3 ed7af3b3

+3 -2
+3 -2
net/sched/ematch.c
··· 409 409 if (em->ops) { 410 410 if (em->ops->destroy) 411 411 em->ops->destroy(tp, em); 412 - else if (!tcf_em_is_simple(em) && em->data) 413 - kfree((void *) em->data); 412 + else if (!tcf_em_is_simple(em)) 413 + kfree(em->data); 414 414 module_put(em->ops->owner); 415 415 } 416 416 } 417 417 418 418 tree->hdr.nmatches = 0; 419 419 kfree(tree->matches); 420 + tree->matches = NULL; 420 421 } 421 422 EXPORT_SYMBOL(tcf_em_tree_destroy); 422 423