tree b9ae53a096b7ea3216c04009c9c085015115b96b
parent 60192db82952ad56ef7bbc4a318e2041ca65ba7d
author Akiyama, Nobuyuki <akiyama.nobuyuk@jp.fujitsu.com> 1216318921 -0700
committer Tony Luck <tony.luck@intel.com> 1216318921 -0700

    [IA64] adding parameter check to module_free()

    module_free() refers the first parameter before checking.
    But it is called like below(in kernel/kprobes). The first parameter is always NULL.
This happens when many probe points(>1024) are set by kprobes.
I encountered this with using SystemTap. It can set many probes easily.

static int __kprobes collect_one_slot(struct kprobe_insn_page *kip, int idx)
{
...
    if (kip->nused == 0) {
	    hlist_del(&kip->hlist);
	    if (hlist_empty(&kprobe_insn_pages)) {
		...
	    } else {
		    module_free(NULL, kip->insns); //<<< 1st param always NULL
		    kfree(kip);
	    }
	    return 1;
    }
    return 0;
}

Signed-off-by: Akiyama, Nobuyuki <akiyama.nobuyuk@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
