if (WARN_ON(!reply_wait))
return -EIO;
- poll_initwait(&pwq);
- poll_wait(ioctl_file, &conn_src->wait, &pwq.pt);
-
/*
* Block until the reply arrives. reply_wait is left untouched
* by the timeout scans that might be conducted for other,
KDBUS_ITEM_CANCEL_FD);
if (!IS_ERR(cancel_fd_item)) {
cancel_fd = fget(cancel_fd_item->fds[0]);
- if (IS_ERR(cancel_fd)) {
- poll_freewait(&pwq);
+ if (IS_ERR(cancel_fd))
return PTR_ERR(cancel_fd);
- }
if (!cancel_fd->f_op->poll) {
- poll_freewait(&pwq);
fput(cancel_fd);
return -EINVAL;
}
sigprocmask(SIG_SETMASK, &ksigmask, &ksigsaved);
}
+ poll_initwait(&pwq);
+ poll_wait(ioctl_file, &conn_src->wait, &pwq.pt);
+
for (;;) {
/*
* Any of the following conditions will stop our synchronously