<div dir="ltr"><div>Version:4.14-ab28d7f1e5ab9b51f5708741bd13f92e768123d4</div><div><br></div><div>1.file_ioctl.c:130</div><div><br></div><div>125 int</div><div>126 file_ioctl(struct tcb *tcp, const unsigned int code, const long arg)</div><div>127 {</div><div>128         switch (code) {</div><div>129         case FICLONE:   /* W */</div><div>130                 tprintf(", %d", (int) arg);</div><div>131                 break;</div><div><br></div><div>Why print the pointer, not the pointer point to?</div><div>I think it should like sock.c: 230:</div><div><br></div><div>230#ifdef SIOCATMARK</div><div>231<span class="gmail-Apple-tab-span" style="white-space:pre">  </span>case SIOCATMARK:</div><div>232#endif</div><div>233<span class="gmail-Apple-tab-span" style="white-space:pre">            </span>if (entering(tcp))</div><div>234<span class="gmail-Apple-tab-span" style="white-space:pre">                  </span>return 0;</div><div>235<span class="gmail-Apple-tab-span" style="white-space:pre">           </span>tprints(", ");</div><div>236<span class="gmail-Apple-tab-span" style="white-space:pre">            </span>printnum_int(tcp, arg, "%d");</div><div>237<span class="gmail-Apple-tab-span" style="white-space:pre">             </span>break;</div><div><br></div><div>2.userfaultfd.c:126</div><div><br></div><div>126         case UFFDIO_UNREGISTER:</div><div>127         case UFFDIO_WAKE: {</div><div>128                 struct uffdio_range ura;</div><div>129                 tprints(", ");</div><div>130                 if (!umove_or_printaddr(tcp, arg, &ura))</div><div>131                         tprintf_uffdio_range(&ura);</div><div>132                 return RVAL_DECODED | 1;</div><div>133         }</div><div><br></div><div>/usr/include/linux/userfaultfd.h: </div><div>51 #define UFFDIO_UNREGISTER       _IOR(UFFDIO, _UFFDIO_UNREGISTER,        \</div><div>52                                      struct uffdio_range)</div><div>53 #define UFFDIO_WAKE             _IOR(UFFDIO, _UFFDIO_WAKE,      \</div><div>54                                      struct uffdio_range)</div><div><br></div><div>UFFDIO_UNREGISTER and UFFDIO_WAKE are read data, why it get data</div><div>when entering.</div><div>I means it should replace by:</div><div><br></div><div>127         case UFFDIO_UNREGISTER:</div><div>128         case UFFDIO_WAKE: {</div><div>129                 if (entering(tcp))</div><div>130                         return 0;</div><div>131 </div><div>132                 struct uffdio_range ura;</div><div>133                 tprints(", ");</div><div>134                 if (!umove_or_printaddr(tcp, arg, &ura))</div><div>135                         tprintf_uffdio_range(&ura);</div><div>136                 return RVAL_DECODED | 1;</div><div>137         }</div></div>