*/
 static int cid_of_response(char *s)
 {
-       unsigned long cid;
+       int cid;
        int rc;
 
        if (s[-1] != ';')
                return 0;       /* no CID separator */
-       rc = strict_strtoul(s, 10, &cid);
+       rc = kstrtoint(s, 10, &cid);
        if (rc)
                return 0;       /* CID not numeric */
        if (cid < 1 || cid > 65535)
                case RT_ZCAU:
                        event->parameter = -1;
                        if (curarg + 1 < params) {
-                               unsigned long type, value;
-
-                               i = strict_strtoul(argv[curarg++], 16, &type);
-                               j = strict_strtoul(argv[curarg++], 16, &value);
+                               u8 type, value;
 
-                               if (i == 0 && type < 256 &&
-                                   j == 0 && value < 256)
+                               i = kstrtou8(argv[curarg++], 16, &type);
+                               j = kstrtou8(argv[curarg++], 16, &value);
+                               if (i == 0 && j == 0)
                                        event->parameter = (type << 8) | value;
                        } else
                                curarg = params - 1;
                        break;
                case RT_NUMBER:
-                       event->parameter = -1;
-                       if (curarg < params) {
-                               unsigned long res;
-                               int rc;
-
-                               rc = strict_strtoul(argv[curarg++], 10, &res);
-                               if (rc == 0)
-                                       event->parameter = res;
-                       }
+                       if (curarg >= params ||
+                           kstrtoint(argv[curarg++], 10, &event->parameter))
+                               event->parameter = -1;
                        gig_dbg(DEBUG_EVENT, "parameter==%d", event->parameter);
                        break;
                }
 
 static ssize_t
 hysdn_log_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
 {
-       unsigned long u = 0;
        int rc;
        unsigned char valbuf[128];
        hysdn_card *card = file->private_data;
 
        valbuf[count] = 0;      /* terminating 0 */
 
-       rc = strict_strtoul(valbuf, 0, &u);
-
-       if (rc == 0) {
-               card->debug_flags = u;  /* remember debug flags */
-               hysdn_addlog(card, "debug set to 0x%lx", card->debug_flags);
-       }
+       rc = kstrtoul(valbuf, 0, &card->debug_flags);
+       if (rc < 0)
+               return rc;
+       hysdn_addlog(card, "debug set to 0x%lx", card->debug_flags);
        return (count);
 }                              /* hysdn_log_write */