From: Michael Ellerman
> Sent: 11 January 2016 09:14
> On Tue, 2015-24-11 at 10:56:18 UTC, Vaibhav Jain wrote:
> > Presently when a user-space process issues CXL_IOCTL_START_WORK ioctl we
> > store the pid of the current task_struct and use it to get pointer to
> > the mm_struct of the process, while processing page or segment faults
> > from the capi card. However this causes issues when the thread that had
> > originally issued the start-work ioctl exits in which case the stored
> > pid is no more valid and the cxl driver is unable to handle faults as
> > the mm_struct corresponding to process is no more accessible.
> >
> > This patch fixes this issue by using the mm_struct of the next alive
> > task in the thread group. This is done by iterating over all the tasks
> > in the thread group starting from thread group leader and calling
> > get_task_mm on each one of them. When a valid mm_struct is obtained the
> > pid of the associated task is stored in the context replacing the
> > exiting one for handling future faults.

I don't even claim to understand the linux model for handling process
address maps, nor what the cxl driver is doing, but the above looks
more than dodgy.

        David

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to