Loading drivers/bluetooth/hci_vhci.c +8 −14 Original line number Diff line number Diff line Loading @@ -160,13 +160,11 @@ static int vhci_create_device(struct vhci_data *data, __u8 opcode) } static inline ssize_t vhci_get_user(struct vhci_data *data, const struct iovec *iov, unsigned long count) struct iov_iter *from) { size_t len = iov_length(iov, count); size_t len = iov_iter_count(from); struct sk_buff *skb; __u8 pkt_type, opcode; unsigned long i; int ret; if (len < 2 || len > HCI_MAX_FRAME_SIZE) Loading @@ -176,13 +174,10 @@ static inline ssize_t vhci_get_user(struct vhci_data *data, if (!skb) return -ENOMEM; for (i = 0; i < count; i++) { if (copy_from_user(skb_put(skb, iov[i].iov_len), iov[i].iov_base, iov[i].iov_len)) { if (copy_from_iter(skb_put(skb, len), len, from) != len) { kfree_skb(skb); return -EFAULT; } } pkt_type = *((__u8 *) skb->data); skb_pull(skb, 1); Loading Loading @@ -294,13 +289,12 @@ static ssize_t vhci_read(struct file *file, return ret; } static ssize_t vhci_write(struct kiocb *iocb, const struct iovec *iov, unsigned long count, loff_t pos) static ssize_t vhci_write(struct kiocb *iocb, struct iov_iter *from) { struct file *file = iocb->ki_filp; struct vhci_data *data = file->private_data; return vhci_get_user(data, iov, count); return vhci_get_user(data, from); } static unsigned int vhci_poll(struct file *file, poll_table *wait) Loading Loading @@ -365,7 +359,7 @@ static int vhci_release(struct inode *inode, struct file *file) static const struct file_operations vhci_fops = { .owner = THIS_MODULE, .read = vhci_read, .aio_write = vhci_write, .write_iter = vhci_write, .poll = vhci_poll, .open = vhci_open, .release = vhci_release, Loading Loading
drivers/bluetooth/hci_vhci.c +8 −14 Original line number Diff line number Diff line Loading @@ -160,13 +160,11 @@ static int vhci_create_device(struct vhci_data *data, __u8 opcode) } static inline ssize_t vhci_get_user(struct vhci_data *data, const struct iovec *iov, unsigned long count) struct iov_iter *from) { size_t len = iov_length(iov, count); size_t len = iov_iter_count(from); struct sk_buff *skb; __u8 pkt_type, opcode; unsigned long i; int ret; if (len < 2 || len > HCI_MAX_FRAME_SIZE) Loading @@ -176,13 +174,10 @@ static inline ssize_t vhci_get_user(struct vhci_data *data, if (!skb) return -ENOMEM; for (i = 0; i < count; i++) { if (copy_from_user(skb_put(skb, iov[i].iov_len), iov[i].iov_base, iov[i].iov_len)) { if (copy_from_iter(skb_put(skb, len), len, from) != len) { kfree_skb(skb); return -EFAULT; } } pkt_type = *((__u8 *) skb->data); skb_pull(skb, 1); Loading Loading @@ -294,13 +289,12 @@ static ssize_t vhci_read(struct file *file, return ret; } static ssize_t vhci_write(struct kiocb *iocb, const struct iovec *iov, unsigned long count, loff_t pos) static ssize_t vhci_write(struct kiocb *iocb, struct iov_iter *from) { struct file *file = iocb->ki_filp; struct vhci_data *data = file->private_data; return vhci_get_user(data, iov, count); return vhci_get_user(data, from); } static unsigned int vhci_poll(struct file *file, poll_table *wait) Loading Loading @@ -365,7 +359,7 @@ static int vhci_release(struct inode *inode, struct file *file) static const struct file_operations vhci_fops = { .owner = THIS_MODULE, .read = vhci_read, .aio_write = vhci_write, .write_iter = vhci_write, .poll = vhci_poll, .open = vhci_open, .release = vhci_release, Loading