内核中printk打印顺序不同导致打印出错的问题

内核中我需要打印一个变量用于调试,变量为unsigned long类型的,值为4096。

当我将它和另一个变量一起的打印的时候,如果放在后面打印结果就为0,放在前面打印值就为4096。在这条打印语句之前或者之后打印结果都为4096。

代码片段:

printk("[tnfs_preload_theard]rpc_size5:%u\n",rpc_size);
printk("[tnfs_preload_theard]rpc_pos:%d %ld\n",rpc_pos,rpc_size);  
printk("[tnfs_preload_theard]rpc_size6:%u\n",rpc_size);

执行结果:

图片说明

这是什么情况?彻底懵逼了。。。
内核版本为3.10.40

https://blog.csdn.net/kunkliu/article/details/80429928