aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/ibmasm/module.c
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2009-03-10 15:55:55 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-03-10 18:55:11 -0400
commitd58ab5cf09679d8cb4824e22cae900c0eab5ab31 (patch)
tree090e82a516fe8db760a1b7514ed072bb458c1e2f /drivers/misc/ibmasm/module.c
parent9c1e8a4ebcc04226cb6f3a1bf1d72f4cafd6b089 (diff)
mtd: physmap: fix NULL pointer dereference in error path
commit e480814f138cd5d78a8efe397756ba6b6518fdb6 ("[MTD] [MAPS] physmap: fix wrong free and del_mtd_{partition,device}") introduces a NULL pointer dereference in physmap_flash_remove when called from the error path in physmap_flash_probe (if map_probe failed). Call del_mtd_{partition,device} only if info->cmtd was not NULL. Reported-by: pHilipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Cc: David Woodhouse <dwmw2@infradead.org> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc/ibmasm/module.c')
0 files changed, 0 insertions, 0 deletions
* from a kernel thread context) */ void use_mm(struct mm_struct *mm) { struct mm_struct *active_mm; struct task_struct *tsk = current; task_lock(tsk); active_mm = tsk->active_mm; if (active_mm != mm) { atomic_inc(&mm->mm_count); tsk->active_mm = mm; } tsk->mm = mm; switch_mm(active_mm, mm, tsk); task_unlock(tsk); if (active_mm != mm) mmdrop(active_mm); } EXPORT_SYMBOL_GPL(use_mm); /* * unuse_mm * Reverses the effect of use_mm, i.e. releases the * specified mm context which was earlier taken on * by the calling kernel thread * (Note: this routine is intended to be called only * from a kernel thread context) */ void unuse_mm(struct mm_struct *mm) { struct task_struct *tsk = current; task_lock(tsk); sync_mm_rss(tsk, mm); tsk->mm = NULL; /* active_mm is still 'mm' */ enter_lazy_tlb(mm, tsk); task_unlock(tsk); } EXPORT_SYMBOL_GPL(unuse_mm);