staging: ramster: fix range checks in zcache_autocreate_pool()
[sfrench/cifs-2.6.git] / drivers / staging / ramster / zcache-main.c
index 24b3d4a5e1767ac4c588f7c2ec86936a8a5af4d2..86e19d6d3b896c6c359fbac71433f5c8ec27d44d 100644 (file)
@@ -1338,10 +1338,10 @@ static int zcache_local_new_pool(uint32_t flags)
        return zcache_new_pool(LOCAL_CLIENT, flags);
 }
 
-int zcache_autocreate_pool(int cli_id, int pool_id, bool eph)
+int zcache_autocreate_pool(unsigned int cli_id, unsigned int pool_id, bool eph)
 {
        struct tmem_pool *pool;
-       struct zcache_client *cli = NULL;
+       struct zcache_client *cli;
        uint32_t flags = eph ? 0 : TMEM_POOL_PERSIST;
        int ret = -1;
 
@@ -1350,8 +1350,10 @@ int zcache_autocreate_pool(int cli_id, int pool_id, bool eph)
                goto out;
        if (pool_id >= MAX_POOLS_PER_CLIENT)
                goto out;
-       else if ((unsigned int)cli_id < MAX_CLIENTS)
-               cli = &zcache_clients[cli_id];
+       if (cli_id >= MAX_CLIENTS)
+               goto out;
+
+       cli = &zcache_clients[cli_id];
        if ((eph && disable_cleancache) || (!eph && disable_frontswap)) {
                pr_err("zcache_autocreate_pool: pool type disabled\n");
                goto out;