kernel: better document the use_mm/unuse_mm API contract
Switch the function documentation to kerneldoc comments, and add WARN_ON_ONCE asserts that the calling thread is a kernel thread and does not have ->mm set (or has ->mm set in the case of unuse_mm). Also give the functions a kthread_ prefix to better document the use case. [hch@lst.de: fix a comment typo, cover the newly merged use_mm/unuse_mm caller in vfio] Link: http://lkml.kernel.org/r/20200416053158.586887-3-hch@lst.de [sfr@canb.auug.org.au: powerpc/vas: fix up for {un}use_mm() rename] Link: http://lkml.kernel.org/r/20200422163935.5aa93ba5@canb.auug.org.au Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Tested-by: Jens Axboe <axboe@kernel.dk> Reviewed-by: Jens Axboe <axboe@kernel.dk> Acked-by: Felix Kuehling <Felix.Kuehling@amd.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> [usb] Acked-by: Haren Myneni <haren@linux.ibm.com> Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Felipe Balbi <balbi@kernel.org> Cc: Jason Wang <jasowang@redhat.com> Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: Zhenyu Wang <zhenyuw@linux.intel.com> Cc: Zhi Wang <zhi.a.wang@intel.com> Link: http://lkml.kernel.org/r/20200404094101.672954-6-hch@lst.de Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
4dbe59a6ae
commit
f5678e7f2a
@@ -127,7 +127,7 @@ static void update_csb(struct vas_window *window,
|
||||
return;
|
||||
}
|
||||
|
||||
use_mm(window->mm);
|
||||
kthread_use_mm(window->mm);
|
||||
rc = copy_to_user(csb_addr, &csb, sizeof(csb));
|
||||
/*
|
||||
* User space polls on csb.flags (first byte). So add barrier
|
||||
@@ -139,7 +139,7 @@ static void update_csb(struct vas_window *window,
|
||||
smp_mb();
|
||||
rc = copy_to_user(csb_addr, &csb, sizeof(u8));
|
||||
}
|
||||
unuse_mm(window->mm);
|
||||
kthread_unuse_mm(window->mm);
|
||||
put_task_struct(tsk);
|
||||
|
||||
/* Success */
|
||||
|
Reference in New Issue
Block a user