return requestq_count;
 }
 
-static long zcrypt_unlocked_ioctl(struct file *filp, unsigned int cmd,
-                                 unsigned long arg)
+static int icarsamodexpo_ioctl(struct ap_perms *perms, unsigned long arg)
 {
        int rc;
-       struct ap_perms *perms =
-               (struct ap_perms *) filp->private_data;
+       struct ica_rsa_modexpo mex;
+       struct ica_rsa_modexpo __user *umex = (void __user *) arg;
 
-       rc = zcrypt_check_ioctl(perms, cmd);
-       if (rc)
-               return rc;
-
-       switch (cmd) {
-       case ICARSAMODEXPO: {
-               struct ica_rsa_modexpo __user *umex = (void __user *) arg;
-               struct ica_rsa_modexpo mex;
-
-               if (copy_from_user(&mex, umex, sizeof(mex)))
-                       return -EFAULT;
+       if (copy_from_user(&mex, umex, sizeof(mex)))
+               return -EFAULT;
+       do {
+               rc = zcrypt_rsa_modexpo(perms, &mex);
+       } while (rc == -EAGAIN);
+       /* on failure: retry once again after a requested rescan */
+       if ((rc == -ENODEV) && (zcrypt_process_rescan()))
                do {
                        rc = zcrypt_rsa_modexpo(perms, &mex);
                } while (rc == -EAGAIN);
-               /* on failure: retry once again after a requested rescan */
-               if ((rc == -ENODEV) && (zcrypt_process_rescan()))
-                       do {
-                               rc = zcrypt_rsa_modexpo(perms, &mex);
-                       } while (rc == -EAGAIN);
-               if (rc) {
-                       ZCRYPT_DBF(DBF_DEBUG, "ioctl ICARSAMODEXPO rc=%d\n", rc);
-                       return rc;
-               }
-               return put_user(mex.outputdatalength, &umex->outputdatalength);
+       if (rc) {
+               ZCRYPT_DBF(DBF_DEBUG, "ioctl ICARSAMODEXPO rc=%d\n", rc);
+               return rc;
        }
-       case ICARSACRT: {
-               struct ica_rsa_modexpo_crt __user *ucrt = (void __user *) arg;
-               struct ica_rsa_modexpo_crt crt;
+       return put_user(mex.outputdatalength, &umex->outputdatalength);
+}
 
-               if (copy_from_user(&crt, ucrt, sizeof(crt)))
-                       return -EFAULT;
+static int icarsacrt_ioctl(struct ap_perms *perms, unsigned long arg)
+{
+       int rc;
+       struct ica_rsa_modexpo_crt crt;
+       struct ica_rsa_modexpo_crt __user *ucrt = (void __user *) arg;
+
+       if (copy_from_user(&crt, ucrt, sizeof(crt)))
+               return -EFAULT;
+       do {
+               rc = zcrypt_rsa_crt(perms, &crt);
+       } while (rc == -EAGAIN);
+       /* on failure: retry once again after a requested rescan */
+       if ((rc == -ENODEV) && (zcrypt_process_rescan()))
                do {
                        rc = zcrypt_rsa_crt(perms, &crt);
                } while (rc == -EAGAIN);
-               /* on failure: retry once again after a requested rescan */
-               if ((rc == -ENODEV) && (zcrypt_process_rescan()))
-                       do {
-                               rc = zcrypt_rsa_crt(perms, &crt);
-                       } while (rc == -EAGAIN);
-               if (rc) {
-                       ZCRYPT_DBF(DBF_DEBUG, "ioctl ICARSACRT rc=%d\n", rc);
-                       return rc;
-               }
-               return put_user(crt.outputdatalength, &ucrt->outputdatalength);
+       if (rc) {
+               ZCRYPT_DBF(DBF_DEBUG, "ioctl ICARSACRT rc=%d\n", rc);
+               return rc;
        }
-       case ZSECSENDCPRB: {
-               struct ica_xcRB __user *uxcRB = (void __user *) arg;
-               struct ica_xcRB xcRB;
+       return put_user(crt.outputdatalength, &ucrt->outputdatalength);
+}
 
-               if (copy_from_user(&xcRB, uxcRB, sizeof(xcRB)))
-                       return -EFAULT;
+static int zsecsendcprb_ioctl(struct ap_perms *perms, unsigned long arg)
+{
+       int rc;
+       struct ica_xcRB xcRB;
+       struct ica_xcRB __user *uxcRB = (void __user *) arg;
+
+       if (copy_from_user(&xcRB, uxcRB, sizeof(xcRB)))
+               return -EFAULT;
+       do {
+               rc = _zcrypt_send_cprb(perms, &xcRB);
+       } while (rc == -EAGAIN);
+       /* on failure: retry once again after a requested rescan */
+       if ((rc == -ENODEV) && (zcrypt_process_rescan()))
                do {
                        rc = _zcrypt_send_cprb(perms, &xcRB);
                } while (rc == -EAGAIN);
-               /* on failure: retry once again after a requested rescan */
-               if ((rc == -ENODEV) && (zcrypt_process_rescan()))
-                       do {
-                               rc = _zcrypt_send_cprb(perms, &xcRB);
-                       } while (rc == -EAGAIN);
-               if (rc)
-                       ZCRYPT_DBF(DBF_DEBUG, "ioctl ZSENDCPRB rc=%d status=0x%x\n",
-                                  rc, xcRB.status);
-               if (copy_to_user(uxcRB, &xcRB, sizeof(xcRB)))
-                       return -EFAULT;
-               return rc;
-       }
-       case ZSENDEP11CPRB: {
-               struct ep11_urb __user *uxcrb = (void __user *)arg;
-               struct ep11_urb xcrb;
+       if (rc)
+               ZCRYPT_DBF(DBF_DEBUG, "ioctl ZSENDCPRB rc=%d status=0x%x\n",
+                          rc, xcRB.status);
+       if (copy_to_user(uxcRB, &xcRB, sizeof(xcRB)))
+               return -EFAULT;
+       return rc;
+}
 
-               if (copy_from_user(&xcrb, uxcrb, sizeof(xcrb)))
-                       return -EFAULT;
+static int zsendep11cprb_ioctl(struct ap_perms *perms, unsigned long arg)
+{
+       int rc;
+       struct ep11_urb xcrb;
+       struct ep11_urb __user *uxcrb = (void __user *)arg;
+
+       if (copy_from_user(&xcrb, uxcrb, sizeof(xcrb)))
+               return -EFAULT;
+       do {
+               rc = _zcrypt_send_ep11_cprb(perms, &xcrb);
+       } while (rc == -EAGAIN);
+       /* on failure: retry once again after a requested rescan */
+       if ((rc == -ENODEV) && (zcrypt_process_rescan()))
                do {
                        rc = _zcrypt_send_ep11_cprb(perms, &xcrb);
                } while (rc == -EAGAIN);
-               /* on failure: retry once again after a requested rescan */
-               if ((rc == -ENODEV) && (zcrypt_process_rescan()))
-                       do {
-                               rc = _zcrypt_send_ep11_cprb(perms, &xcrb);
-                       } while (rc == -EAGAIN);
-               if (rc)
-                       ZCRYPT_DBF(DBF_DEBUG, "ioctl ZSENDEP11CPRB rc=%d\n", rc);
-               if (copy_to_user(uxcrb, &xcrb, sizeof(xcrb)))
-                       return -EFAULT;
+       if (rc)
+               ZCRYPT_DBF(DBF_DEBUG, "ioctl ZSENDEP11CPRB rc=%d\n", rc);
+       if (copy_to_user(uxcrb, &xcrb, sizeof(xcrb)))
+               return -EFAULT;
+       return rc;
+}
+
+static long zcrypt_unlocked_ioctl(struct file *filp, unsigned int cmd,
+                                 unsigned long arg)
+{
+       int rc;
+       struct ap_perms *perms =
+               (struct ap_perms *) filp->private_data;
+
+       rc = zcrypt_check_ioctl(perms, cmd);
+       if (rc)
                return rc;
-       }
+
+       switch (cmd) {
+       case ICARSAMODEXPO:
+               return icarsamodexpo_ioctl(perms, arg);
+       case ICARSACRT:
+               return icarsacrt_ioctl(perms, arg);
+       case ZSECSENDCPRB:
+               return zsecsendcprb_ioctl(perms, arg);
+       case ZSENDEP11CPRB:
+               return zsendep11cprb_ioctl(perms, arg);
        case ZCRYPT_DEVICE_STATUS: {
                struct zcrypt_device_status_ext *device_status;
                size_t total_size = MAX_ZDEV_ENTRIES_EXT