Skip to content

Commit

Permalink
staging/mei: fix check for allocating host client id
Browse files Browse the repository at this point in the history
MEI_CLIENTS_MAX is 255 and host_client_id is u8 therefore
for check to work we need to first assign the return value
of find_first_zero_bit to unsigned long variable

Fix warning

drivers/staging/mei/main.c: In function mei_open
drivers/staging/mei/main.c:260:2: warning: comparison is always false due to limited range of data type

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Tomas Winkler authored and Greg Kroah-Hartman committed Nov 27, 2011
1 parent 5b881e3 commit 6f37aca
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/staging/mei/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,9 @@ static struct mei_cl_cb *find_read_list_entry(
static int mei_open(struct inode *inode, struct file *file)
{
struct mei_cl *cl;
int err;
struct mei_device *dev;
unsigned long cl_id;
int err;

err = -ENODEV;
if (!mei_device)
Expand All @@ -255,14 +256,16 @@ static int mei_open(struct inode *inode, struct file *file)
if (dev->open_handle_count >= MEI_MAX_OPEN_HANDLE_COUNT)
goto out_unlock;

cl->host_client_id = find_first_zero_bit(dev->host_clients_map,
MEI_CLIENTS_MAX);
if (cl->host_client_id > MEI_CLIENTS_MAX)
cl_id = find_first_zero_bit(dev->host_clients_map, MEI_CLIENTS_MAX);
if (cl_id >= MEI_CLIENTS_MAX)
goto out_unlock;

cl->host_client_id = cl_id;

dev_dbg(&dev->pdev->dev, "client_id = %d\n", cl->host_client_id);

dev->open_handle_count++;

list_add_tail(&cl->link, &dev->file_list);

set_bit(cl->host_client_id, dev->host_clients_map);
Expand Down

0 comments on commit 6f37aca

Please sign in to comment.