mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
A missing bit of 66635b0776 ("assorted variants of irqfd setup:
convert to CLASS(fd)") a year ago - mshv_eventfd would've been
covered by that, but it had forked slightly before that series
and got merged into mainline later.
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQQqUNBr3gm4hGXdBJlZ7Krx/gZQ6wUCaIRNHgAKCRBZ7Krx/gZQ
66NpAQCqVYE230nARjNQmpjVyJ8L+ncRHNzWpaFwA9f2LMzYEwD+OTkNvpqtyLQb
qMo71qocHKdfL3euO647Swp20cOgigc=
=XO4e
-----END PGP SIGNATURE-----
Merge tag 'pull-fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull CLASS(fd) update from Al Viro:
"A missing bit of commit 66635b0776 ("assorted variants of irqfd
setup: convert to CLASS(fd)") from a year ago.
mshv_eventfd would've been covered by that, but it had forked slightly
before that series and got merged into mainline later"
* tag 'pull-fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
mshv_eventfd: convert to CLASS(fd)
This commit is contained in:
commit
953e117bf4
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user