/* Copyright (C) 2009 Red Hat, Inc. * * See ../COPYING for licensing terms. */ #include #include #include #include #include /* * use_mm * Makes the calling kernel thread take on the specified * mm context. * (Note: this routine is intended to be called only * 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); #ifdef finish_arch_post_lock_switch finish_arch_post_lock_switch(); #endif 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(mm); tsk->mm = NULL; /* active_mm is still 'mm' */ enter_lazy_tlb(mm, tsk); task_unlock(tsk); } EXPORT_SYMBOL_GPL(unuse_mm); op-back net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJisheng Zhang <jszhang@marvell.com>2016-11-10 17:21:29 +0800
committerMark Brown <broonie@kernel.org>2016-11-11 15:38:08 +0000
commit09f2ba0b0b7c44ecea49cf69a708203b76ba5535 (patch)
tree042df33ac99f77d8b86ac427431e267c33561c35 /include/uapi/asm-generic/sembuf.h
parent1001354ca34179f3db924eb66672442a173147dc (diff)
regulator: gpio: properly check return value of of_get_named_gpio
The function of_get_named_gpio() could return -ENOENT, -EPROBE_DEFER -EINVAL and so on. Currently, for the optional property "enable-gpio", we only check -EPROBE_DEFER, this is not enough since there may be misconfigured "enable-gpio" in the DTB, of_get_named_gpio() will return -EINVAL in this case, we should return immediately here. And for the optional property "gpios", we didn't check the return value, the driver will continue to the point where gpio_request_array() is called, it doesn't make sense to continue if we got -EPROBE_DEFER or -EINVAL here. This patch tries to address these two issues by properly checking the return value of of_get_named_gpio. Signed-off-by: Jisheng Zhang <jszhang@marvell.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/uapi/asm-generic/sembuf.h')