Commit ce23f29e authored by Al Viro's avatar Al Viro
Browse files

mshv_eventfd: convert to CLASS(fd)



similar to 66635b07 ("assorted variants of irqfd setup: convert
to CLASS(fd)") a year ago...

Acked-by: default avatarWei Liu <wei.liu@kernel.org>
Reviewed-by: default avatarNuno Das Neves <nunodasneves@linux.microsoft.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d7b8f8e2
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -377,10 +377,11 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
	struct eventfd_ctx *eventfd = NULL, *resamplefd = NULL;
	struct mshv_irqfd *irqfd, *tmp;
	unsigned int events;
	struct fd f;
	int ret;
	int idx;

	CLASS(fd, f)(args->fd);

	irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL);
	if (!irqfd)
		return -ENOMEM;
@@ -390,8 +391,7 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
	INIT_WORK(&irqfd->irqfd_shutdown, mshv_irqfd_shutdown);
	seqcount_spinlock_init(&irqfd->irqfd_irqe_sc, &pt->pt_irqfds_lock);

	f = fdget(args->fd);
	if (!fd_file(f)) {
	if (fd_empty(f)) {
		ret = -EBADF;
		goto out;
	}
@@ -496,12 +496,6 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
		mshv_assert_irq_slow(irqfd);

	srcu_read_unlock(&pt->pt_irq_srcu, idx);
	/*
	 * do not drop the file until the irqfd is fully initialized, otherwise
	 * we might race against the POLLHUP
	 */
	fdput(f);

	return 0;

fail:
@@ -514,8 +508,6 @@ static int mshv_irqfd_assign(struct mshv_partition *pt,
	if (eventfd && !IS_ERR(eventfd))
		eventfd_ctx_put(eventfd);

	fdput(f);

out:
	kfree(irqfd);
	return ret;