请教关于linux内核kstrtoint函数转整型失败的问题?

我最近在做linux内核模块开发,想在路由器上加载内核模块获取HTTP POST请求的Content-Length值并将它转为整型,但是使用 kstrtoint函数转换失败,关键部分代码如下:

data = (unsigned char *)tcp + (unsigned char)(tcp->doff) * 4;
    if(strstr(data,"Host: 192.168.0.102:8081")!=NULL)
     {
     POST=strstr(data,"POST /");
     char ContentLength[50];
     int len;
     char tmp[50];
     int a;
     if(POST!=NULL){
                     findstr(POST,ContentLength,"Content-Length: ","Origin:");
                     printk("******");
                     sprintf(tmp,"%s",ContentLength);
                     printk("%s",tmp);
                     a=kstrtoint(tmp,10,&len);
                     printk("%d",a);
                     printk("%d",len);
                     printk("##############");
                     }
     }

     其中findstr函数为自己编写的截取中间字符串的函数,确定是没有问题的,printk("%s",tmp)打印信息也表明是正确截取到了Content-Length:和Origin:之间的数值的,但是使用kstrtoint转换为整型就出错,内核printk信息如下图:
            ![图片说明](https://img-ask.csdn.net/upload/202004/04/1585992695_531746.png)

有哪位大佬帮忙解答下困惑啊,不胜感激!!!!

https://blog.csdn.net/ambercctv/article/details/53100723?utm_source=blogxgwz4