diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-14 19:13:00 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-14 19:13:00 -0500 |
| commit | bb0a05d7560084091032504ec3a574a00a110e52 (patch) | |
| tree | fc949aaed9b279d0315b63d560985011a9994aae /drivers/misc | |
| parent | 8ba74517e4cc30e6fd92925fd134b820cbeb9249 (diff) | |
| parent | bf7471038840547c9328291b4d9d91c55581dcb8 (diff) | |
Merge tag 'char-misc-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc
Pull char/misc fixes from Greg KH:
"Here are some small char/misc driver fixes, along with some
documentation updates, for 3.14-rc3. Nothing major, just a number of
fixes for reported issues"
* tag 'char-misc-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
Revert "misc: eeprom: sunxi: Add new compatibles"
Revert "ARM: sunxi: dt: Convert to the new SID compatibles"
misc: mic: fix possible signed underflow (undefined behavior) in userspace API
ARM: sunxi: dt: Convert to the new SID compatibles
misc: eeprom: sunxi: Add new compatibles
misc: genwqe: Fix potential memory leak when pinning memory
Documentation:Update Documentation/zh_CN/arm64/memory.txt
Documentation:Update Documentation/zh_CN/arm64/booting.txt
Documentation:Chinese translation of Documentation/arm64/tagged-pointers.txt
raw: set range for MAX_RAW_DEVS
raw: test against runtime value of max_raw_minors
Drivers: hv: vmbus: Don't timeout during the initial connection with host
Drivers: hv: vmbus: Specify the target CPU that should receive notification
VME: Correct read/write alignment algorithm
mei: don't unset read cb ptr on reset
mei: clear write cb from waiting list on reset
Diffstat (limited to 'drivers/misc')
| -rw-r--r-- | drivers/misc/genwqe/card_dev.c | 1 | ||||
| -rw-r--r-- | drivers/misc/mei/client.c | 11 | ||||
| -rw-r--r-- | drivers/misc/mic/host/mic_virtio.c | 3 |
3 files changed, 12 insertions, 3 deletions
diff --git a/drivers/misc/genwqe/card_dev.c b/drivers/misc/genwqe/card_dev.c index 8f8a6b327cdb..2c2c9cc75231 100644 --- a/drivers/misc/genwqe/card_dev.c +++ b/drivers/misc/genwqe/card_dev.c | |||
| @@ -787,6 +787,7 @@ static int genwqe_pin_mem(struct genwqe_file *cfile, struct genwqe_mem *m) | |||
| 787 | if (rc != 0) { | 787 | if (rc != 0) { |
| 788 | dev_err(&pci_dev->dev, | 788 | dev_err(&pci_dev->dev, |
| 789 | "[%s] genwqe_user_vmap rc=%d\n", __func__, rc); | 789 | "[%s] genwqe_user_vmap rc=%d\n", __func__, rc); |
| 790 | kfree(dma_map); | ||
| 790 | return rc; | 791 | return rc; |
| 791 | } | 792 | } |
| 792 | 793 | ||
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c index 1ee2b9492a82..9b809cfc2899 100644 --- a/drivers/misc/mei/client.c +++ b/drivers/misc/mei/client.c | |||
| @@ -908,7 +908,6 @@ void mei_cl_all_disconnect(struct mei_device *dev) | |||
| 908 | list_for_each_entry_safe(cl, next, &dev->file_list, link) { | 908 | list_for_each_entry_safe(cl, next, &dev->file_list, link) { |
| 909 | cl->state = MEI_FILE_DISCONNECTED; | 909 | cl->state = MEI_FILE_DISCONNECTED; |
| 910 | cl->mei_flow_ctrl_creds = 0; | 910 | cl->mei_flow_ctrl_creds = 0; |
| 911 | cl->read_cb = NULL; | ||
| 912 | cl->timer_count = 0; | 911 | cl->timer_count = 0; |
| 913 | } | 912 | } |
| 914 | } | 913 | } |
| @@ -942,8 +941,16 @@ void mei_cl_all_wakeup(struct mei_device *dev) | |||
| 942 | void mei_cl_all_write_clear(struct mei_device *dev) | 941 | void mei_cl_all_write_clear(struct mei_device *dev) |
| 943 | { | 942 | { |
| 944 | struct mei_cl_cb *cb, *next; | 943 | struct mei_cl_cb *cb, *next; |
| 944 | struct list_head *list; | ||
| 945 | 945 | ||
| 946 | list_for_each_entry_safe(cb, next, &dev->write_list.list, list) { | 946 | list = &dev->write_list.list; |
| 947 | list_for_each_entry_safe(cb, next, list, list) { | ||
| 948 | list_del(&cb->list); | ||
| 949 | mei_io_cb_free(cb); | ||
| 950 | } | ||
| 951 | |||
| 952 | list = &dev->write_waiting_list.list; | ||
| 953 | list_for_each_entry_safe(cb, next, list, list) { | ||
| 947 | list_del(&cb->list); | 954 | list_del(&cb->list); |
| 948 | mei_io_cb_free(cb); | 955 | mei_io_cb_free(cb); |
| 949 | } | 956 | } |
diff --git a/drivers/misc/mic/host/mic_virtio.c b/drivers/misc/mic/host/mic_virtio.c index 752ff873f891..7e1ef0ebbb80 100644 --- a/drivers/misc/mic/host/mic_virtio.c +++ b/drivers/misc/mic/host/mic_virtio.c | |||
| @@ -156,7 +156,8 @@ static int mic_vringh_copy(struct mic_vdev *mvdev, struct vringh_kiov *iov, | |||
| 156 | static int _mic_virtio_copy(struct mic_vdev *mvdev, | 156 | static int _mic_virtio_copy(struct mic_vdev *mvdev, |
| 157 | struct mic_copy_desc *copy) | 157 | struct mic_copy_desc *copy) |
| 158 | { | 158 | { |
| 159 | int ret = 0, iovcnt = copy->iovcnt; | 159 | int ret = 0; |
| 160 | u32 iovcnt = copy->iovcnt; | ||
| 160 | struct iovec iov; | 161 | struct iovec iov; |
| 161 | struct iovec __user *u_iov = copy->iov; | 162 | struct iovec __user *u_iov = copy->iov; |
| 162 | void __user *ubuf = NULL; | 163 | void __user *ubuf = NULL; |
