4 * Copyright (C) 2009 Dan Carpenter.
6 * Licensed under the Open Software License version 1.1
14 static void match_free(const char *fn
, struct expression
*expr
, void *data
)
16 struct expression
*arg_expr
;
21 arg_expr
= get_argument_from_call_expr(expr
->args
, 0);
22 name
= get_variable_from_expr(arg_expr
, &sym
);
25 type
= get_ptr_type(arg_expr
);
26 if (type
&& type
->ident
&& !strcmp("sk_buff", type
->ident
->name
))
27 sm_msg("error: use kfree_skb() here instead of kfree()");
32 void check_type(int id
)
38 add_function_hook("kfree", &match_free
, NULL
);