Loading drivers/gpio/gpiolib.c +6 −6 Original line number Diff line number Diff line Loading @@ -830,11 +830,11 @@ static ssize_t lineevent_read(struct file *filep, loff_t *f_ps) { struct lineevent_state *le = filep->private_data; struct gpioevent_data event; struct gpioevent_data ge; ssize_t bytes_read = 0; int ret; if (count < sizeof(event)) if (count < sizeof(ge)) return -EINVAL; do { Loading @@ -858,7 +858,7 @@ static ssize_t lineevent_read(struct file *filep, } } ret = kfifo_out(&le->events, &event, 1); ret = kfifo_out(&le->events, &ge, 1); spin_unlock(&le->wait.lock); if (ret != 1) { /* Loading @@ -870,10 +870,10 @@ static ssize_t lineevent_read(struct file *filep, break; } if (copy_to_user(buf + bytes_read, &event, sizeof(event))) if (copy_to_user(buf + bytes_read, &ge, sizeof(ge))) return -EFAULT; bytes_read += sizeof(event); } while (count >= bytes_read + sizeof(event)); bytes_read += sizeof(ge); } while (count >= bytes_read + sizeof(ge)); return bytes_read; } Loading Loading
drivers/gpio/gpiolib.c +6 −6 Original line number Diff line number Diff line Loading @@ -830,11 +830,11 @@ static ssize_t lineevent_read(struct file *filep, loff_t *f_ps) { struct lineevent_state *le = filep->private_data; struct gpioevent_data event; struct gpioevent_data ge; ssize_t bytes_read = 0; int ret; if (count < sizeof(event)) if (count < sizeof(ge)) return -EINVAL; do { Loading @@ -858,7 +858,7 @@ static ssize_t lineevent_read(struct file *filep, } } ret = kfifo_out(&le->events, &event, 1); ret = kfifo_out(&le->events, &ge, 1); spin_unlock(&le->wait.lock); if (ret != 1) { /* Loading @@ -870,10 +870,10 @@ static ssize_t lineevent_read(struct file *filep, break; } if (copy_to_user(buf + bytes_read, &event, sizeof(event))) if (copy_to_user(buf + bytes_read, &ge, sizeof(ge))) return -EFAULT; bytes_read += sizeof(event); } while (count >= bytes_read + sizeof(event)); bytes_read += sizeof(ge); } while (count >= bytes_read + sizeof(ge)); return bytes_read; } Loading