diff options
author | Tomas Winkler <tomas.winkler@intel.com> | 2013-01-09 01:07:19 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-09 04:40:45 +0400 |
commit | a40b260da6d96ab5231ebdabd06e70568ca81885 (patch) | |
tree | 5f8e6d5a82f5768a69e959197473ff4a10f5e26d /drivers/misc/mei/hbm.c | |
parent | d91aaed30a938c5daae2641e6758dfab8727862e (diff) | |
download | linux-a40b260da6d96ab5231ebdabd06e70568ca81885.tar.xz |
mei: move me client storage allocation to hbm.c
rename function to mei_me_cl_allocate to match the current
names convention: mei_hbm_me_cl_allocate
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mei/hbm.c')
-rw-r--r-- | drivers/misc/mei/hbm.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/drivers/misc/mei/hbm.c b/drivers/misc/mei/hbm.c index f0c3fc4590d5..fb9e63ba3bb1 100644 --- a/drivers/misc/mei/hbm.c +++ b/drivers/misc/mei/hbm.c @@ -24,6 +24,43 @@ #include "hw-me.h" /** + * mei_hbm_me_cl_allocate - allocates storage for me clients + * + * @dev: the device structure + * + * returns none. + */ +static void mei_hbm_me_cl_allocate(struct mei_device *dev) +{ + struct mei_me_client *clients; + int b; + + /* count how many ME clients we have */ + for_each_set_bit(b, dev->me_clients_map, MEI_CLIENTS_MAX) + dev->me_clients_num++; + + if (dev->me_clients_num <= 0) + return; + + kfree(dev->me_clients); + dev->me_clients = NULL; + + dev_dbg(&dev->pdev->dev, "memory allocation for ME clients size=%zd.\n", + dev->me_clients_num * sizeof(struct mei_me_client)); + /* allocate storage for ME clients representation */ + clients = kcalloc(dev->me_clients_num, + sizeof(struct mei_me_client), GFP_KERNEL); + if (!clients) { + dev_err(&dev->pdev->dev, "memory allocation for ME clients failed.\n"); + dev->dev_state = MEI_DEV_RESETING; + mei_reset(dev, 1); + return; + } + dev->me_clients = clients; + return; +} + +/** * mei_hbm_cl_hdr - construct client hbm header * @cl: - client * @hbm_cmd: host bus message command @@ -593,7 +630,7 @@ void mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr) dev->init_clients_timer = 0; dev->me_client_presentation_num = 0; dev->me_client_index = 0; - mei_allocate_me_clients_storage(dev); + mei_hbm_me_cl_allocate(dev); dev->init_clients_state = MEI_CLIENT_PROPERTIES_MESSAGE; |