On 09/12/16 15:41, David Vrabel 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.
"semantics". I can fix this when committing. > > Signed-off-by: David Vrabel <[email protected]> Reviewed-by: Juergen Gross <[email protected]> Juergen > --- > v6: > - clear flag after calling nonseekable_open(). > --- > drivers/xen/xenbus/xenbus_dev_frontend.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/xen/xenbus/xenbus_dev_frontend.c > b/drivers/xen/xenbus/xenbus_dev_frontend.c > index 1e8be12..6c0ead4 100644 > --- a/drivers/xen/xenbus/xenbus_dev_frontend.c > +++ b/drivers/xen/xenbus/xenbus_dev_frontend.c > @@ -538,6 +538,8 @@ static int xenbus_file_open(struct inode *inode, struct > file *filp) > > nonseekable_open(inode, filp); > > + filp->f_mode &= ~FMODE_ATOMIC_POS; /* cdev-style semantics */ > + > u = kzalloc(sizeof(*u), GFP_KERNEL); > if (u == NULL) > return -ENOMEM; > _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
