diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/misc/mei/client.c | 32 | ||||
-rw-r--r-- | drivers/misc/mei/client.h | 2 |
2 files changed, 6 insertions, 28 deletions
diff --git a/drivers/misc/mei/client.c b/drivers/misc/mei/client.c index 641c1a566687..6658917be64f 100644 --- a/drivers/misc/mei/client.c +++ b/drivers/misc/mei/client.c @@ -420,31 +420,6 @@ static inline void mei_io_list_free(struct mei_cl_cb *list, struct mei_cl *cl) } /** - * mei_io_cb_alloc_buf - allocate callback buffer - * - * @cb: io callback structure - * @length: size of the buffer - * - * Return: 0 on success - * -EINVAL if cb is NULL - * -ENOMEM if allocation failed - */ -int mei_io_cb_alloc_buf(struct mei_cl_cb *cb, size_t length) -{ - if (!cb) - return -EINVAL; - - if (length == 0) - return 0; - - cb->buf.data = kmalloc(length, GFP_KERNEL); - if (!cb->buf.data) - return -ENOMEM; - cb->buf.size = length; - return 0; -} - -/** * mei_cl_alloc_cb - a convenient wrapper for allocating read cb * * @cl: host client @@ -464,10 +439,15 @@ struct mei_cl_cb *mei_cl_alloc_cb(struct mei_cl *cl, size_t length, if (!cb) return NULL; - if (mei_io_cb_alloc_buf(cb, length)) { + if (length == 0) + return cb; + + cb->buf.data = kmalloc(length, GFP_KERNEL); + if (!cb->buf.data) { mei_io_cb_free(cb); return NULL; } + cb->buf.size = length; return cb; } diff --git a/drivers/misc/mei/client.h b/drivers/misc/mei/client.h index 0d7a3a1fef78..16466aa40cbd 100644 --- a/drivers/misc/mei/client.h +++ b/drivers/misc/mei/client.h @@ -85,8 +85,6 @@ static inline u8 mei_me_cl_ver(const struct mei_me_client *me_cl) struct mei_cl_cb *mei_io_cb_init(struct mei_cl *cl, enum mei_cb_file_ops type, const struct file *fp); void mei_io_cb_free(struct mei_cl_cb *priv_cb); -int mei_io_cb_alloc_buf(struct mei_cl_cb *cb, size_t length); - /** * mei_io_list_init - Sets up a queue list. |