}
 
        if(dst_ca_comm_err == RETRIES)
-               return -1;
+               return -EIO;
 
        return 0;
 }
        put_checksum(&command[0], command[0]);
        if ((dst_put_ci(state, command, sizeof(command), state->messages, GET_REPLY)) < 0) {
                dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");
-               return -1;
+               return -EIO;
        }
        dprintk(verbose, DST_CA_INFO, 1, " -->dst_put_ci SUCCESS !");
        dprintk(verbose, DST_CA_INFO, 1, " ================================ CI Module Application Info ======================================");
        put_checksum(&slot_command[0], slot_command[0]);
        if ((dst_put_ci(state, slot_command, sizeof (slot_command), state->messages, GET_REPLY)) < 0) {
                dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");
-               return -1;
+               return -EIO;
        }
        dprintk(verbose, DST_CA_INFO, 1, " -->dst_put_ci SUCCESS !");
 
        put_checksum(&slot_command[0], slot_command[0]);
        if ((dst_put_ci(state, slot_command, sizeof (slot_command), slot_cap, GET_REPLY)) < 0) {
                dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");
-               return -1;
+               return -EIO;
        }
        dprintk(verbose, DST_CA_NOTICE, 1, " -->dst_put_ci SUCCESS !");
 
        put_checksum(&slot_command[0], 7);
        if ((dst_put_ci(state, slot_command, sizeof (slot_command), slot_info, GET_REPLY)) < 0) {
                dprintk(verbose, DST_CA_ERROR, 1, " -->dst_put_ci FAILED !");
-               return -1;
+               return -EIO;
        }
        dprintk(verbose, DST_CA_INFO, 1, " -->dst_put_ci SUCCESS !");
 
        } else {
                if (length > 247) {
                        dprintk(verbose, DST_CA_ERROR, 1, " Message too long ! *** Bailing Out *** !");
-                       return -1;
+                       return -EIO;
                }
                hw_buffer->msg[0] = (length & 0xff) + 7;
                hw_buffer->msg[1] = 0x40;
                dprintk(verbose, DST_CA_ERROR, 1, " DST-CI Command failed.");
                dprintk(verbose, DST_CA_NOTICE, 1, " Resetting DST.");
                rdc_reset_state(state);
-               return -1;
+               return -EIO;
        }
        dprintk(verbose, DST_CA_NOTICE, 1, " DST-CI Command success.");
 
        if (ca_pmt_reply_test) {
                if ((ca_set_pmt(state, p_ca_message, hw_buffer, 1, GET_REPLY)) < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " ca_set_pmt.. failed !");
-                       return -1;
+                       return -EIO;
                }
 
        /*      Process CA PMT Reply            */
        if (!ca_pmt_reply_test) {
                if ((ca_set_pmt(state, p_ca_message, hw_buffer, 0, NO_REPLY)) < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " ca_set_pmt.. failed !");
-                       return -1;
+                       return -EIO;
                }
                dprintk(verbose, DST_CA_NOTICE, 1, " ca_set_pmt.. success !");
        /*      put a dummy message             */
        switch (cmd) {
        case CA_SEND_MSG:
                dprintk(verbose, DST_CA_INFO, 1, " Sending message");
-               if ((ca_send_message(state, p_ca_message, arg)) < 0) {
+               result = ca_send_message(state, p_ca_message, arg);
+
+               if (result < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " -->CA_SEND_MSG Failed !");
-                       result = -1;
                        goto free_mem_and_exit;
                }
                break;
        case CA_GET_MSG:
                dprintk(verbose, DST_CA_INFO, 1, " Getting message");
-               if ((ca_get_message(state, p_ca_message, arg)) < 0) {
+               result = ca_get_message(state, p_ca_message, arg);
+               if (result < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " -->CA_GET_MSG Failed !");
-                       result = -1;
                        goto free_mem_and_exit;
                }
                dprintk(verbose, DST_CA_INFO, 1, " -->CA_GET_MSG Success !");
                break;
        case CA_GET_SLOT_INFO:
                dprintk(verbose, DST_CA_INFO, 1, " Getting Slot info");
-               if ((ca_get_slot_info(state, p_ca_slot_info, arg)) < 0) {
+               result = ca_get_slot_info(state, p_ca_slot_info, arg);
+               if (result < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " -->CA_GET_SLOT_INFO Failed !");
                        result = -1;
                        goto free_mem_and_exit;
                break;
        case CA_GET_CAP:
                dprintk(verbose, DST_CA_INFO, 1, " Getting Slot capabilities");
-               if ((ca_get_slot_caps(state, p_ca_caps, arg)) < 0) {
+               result = ca_get_slot_caps(state, p_ca_caps, arg);
+               if (result < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " -->CA_GET_CAP Failed !");
-                       result = -1;
                        goto free_mem_and_exit;
                }
                dprintk(verbose, DST_CA_INFO, 1, " -->CA_GET_CAP Success !");
                break;
        case CA_GET_DESCR_INFO:
                dprintk(verbose, DST_CA_INFO, 1, " Getting descrambler description");
-               if ((ca_get_slot_descr(state, p_ca_message, arg)) < 0) {
+               result = ca_get_slot_descr(state, p_ca_message, arg);
+               if (result < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " -->CA_GET_DESCR_INFO Failed !");
-                       result = -1;
                        goto free_mem_and_exit;
                }
                dprintk(verbose, DST_CA_INFO, 1, " -->CA_GET_DESCR_INFO Success !");
                break;
        case CA_SET_DESCR:
                dprintk(verbose, DST_CA_INFO, 1, " Setting descrambler");
-               if ((ca_set_slot_descr()) < 0) {
+               result = ca_set_slot_descr();
+               if (result < 0) {
                        dprintk(verbose, DST_CA_ERROR, 1, " -->CA_SET_DESCR Failed !");
                        result = -1;
                        goto free_mem_and_exit;