Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 309774
b: refs/heads/master
c: ee62c6b
h: refs/heads/master
v: v3
  • Loading branch information
Sha Zhengju authored and Linus Torvalds committed Jun 1, 2012
1 parent 7e88c89 commit cbcbb82
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 71ca97da9d027009d318d319cbacf54a72f666c1
refs/heads/master: ee62c6b2dc93c09585b51fad18449dc5edb9977f
12 changes: 4 additions & 8 deletions trunk/fs/eventfd.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,16 @@ struct eventfd_ctx {
* value, and we signal this as overflow condition by returining a POLLERR
* to poll(2).
*
* Returns @n in case of success, a non-negative number lower than @n in case
* of overflow, or the following error codes:
*
* -EINVAL : The value of @n is negative.
* Returns the amount by which the counter was incrememnted. This will be less
* than @n if the counter has overflowed.
*/
int eventfd_signal(struct eventfd_ctx *ctx, int n)
__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n)
{
unsigned long flags;

if (n < 0)
return -EINVAL;
spin_lock_irqsave(&ctx->wqh.lock, flags);
if (ULLONG_MAX - ctx->count < n)
n = (int) (ULLONG_MAX - ctx->count);
n = ULLONG_MAX - ctx->count;
ctx->count += n;
if (waitqueue_active(&ctx->wqh))
wake_up_locked_poll(&ctx->wqh, POLLIN);
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/linux/eventfd.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ void eventfd_ctx_put(struct eventfd_ctx *ctx);
struct file *eventfd_fget(int fd);
struct eventfd_ctx *eventfd_ctx_fdget(int fd);
struct eventfd_ctx *eventfd_ctx_fileget(struct file *file);
int eventfd_signal(struct eventfd_ctx *ctx, int n);
__u64 eventfd_signal(struct eventfd_ctx *ctx, __u64 n);
ssize_t eventfd_ctx_read(struct eventfd_ctx *ctx, int no_wait, __u64 *cnt);
int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_t *wait,
__u64 *cnt);
Expand Down

0 comments on commit cbcbb82

Please sign in to comment.