[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCHv5 1/2] xenbus: fix deadlock on writes to /proc/xen/xenbus
>>> On 14.11.16 at 12:12, <david.vrabel@xxxxxxxxxx> wrote: > /proc/xen/xenbus does not work correctly. A read blocked waiting for > a xenstore message holds the mutex needed for atomic file position > updates. This blocks any writes on the same file handle, which can > deadlock if the write is needed to unblock the read. > > Clear FMODE_ATOMIC_POS when opening this device to always get > character device like sematics. Interesting. I'm pretty sure that back in March/April, when I had to deal with this for our kernels, I was told the upstream kernel is unaffected. In any event I continue to think that https://patchwork.kernel.org/patch/8752901/ is the better (because more generic) solution here. > --- a/drivers/xen/xenbus/xenbus_dev_frontend.c > +++ b/drivers/xen/xenbus/xenbus_dev_frontend.c > @@ -536,6 +536,8 @@ static int xenbus_file_open(struct inode *inode, struct > file *filp) > if (xen_store_evtchn == 0) > return -ENOENT; > > + filp->f_mode &= ~FMODE_ATOMIC_POS; /* cdev-style semantics */ > + > nonseekable_open(inode, filp); In any event I think the adjustment should be placed after the call to nonseekable_open(), despite it being unlikely that the function might set the bit again. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |