Can mm_struct of a process be null?
Hi, I happen to find this code snippet in the kernel source : **/*struct mm_struct *mm=current->mm**;** ** /* some other code */ ** if(mm){ /*<==Why is **this here? */** ** /*read the contents by locking*/** ** } */The/if /checks whether the mm_struct of the current process is NULL or not. That means the mm_struct of a process can become NULL. How can that happen?
On Fri, Nov 15, 2013 at 6:24 PM, Paul Davies C <pauldaviesc@gmail.com> wrote:
Hi, I happen to find this code snippet in the kernel source :
struct mm_struct *mm=current->mm;
/* some other code */
if(mm){ /*<==Why is this here? */ /*read the contents by locking*/ }
The if checks whether the mm_struct of the current process is NULL or not. That means the mm_struct of a process can become NULL. How can that happen?
mm_struct points to a process address space. It is NULL for kernel threads. Daniel.
Yes, current->mm points to user space context for the current process. Now for a kernel threads there is no user space context and for them current->mm would be NULL. Thanks, Chetan Nanda On Fri, Nov 15, 2013 at 9:54 PM, Paul Davies C <pauldaviesc@gmail.com>wrote:
Hi, I happen to find this code snippet in the kernel source :
*struct mm_struct *mm=current->mm; /* some other code */ if(mm){ /*<==Why is this here? */ /*read the contents by locking*/ } * The* if *checks whether the mm_struct of the current process is NULL or not. That means the mm_struct of a process can become NULL. How can that happen?
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (3)
-
Chetan Nanda -
Daniel Baluta -
Paul Davies C