tools/ttysnoop: Fix KFUNC_PROBE to support new iov_iter signature
authorSina Radmehr <sina_rad@hamravesh.com>
Fri, 10 Sep 2021 22:48:33 +0000 (03:18 +0430)
committeryonghong-song <ys114321@gmail.com>
Wed, 15 Sep 2021 15:07:53 +0000 (08:07 -0700)
Kernel commit [1] used ->iter_type and ->data_source instead of ->type

[1] 8cd54c1c8480 iov_iter: separate direction from flavour

Signed-off-by: Sina Radmehr <sina_rad@hamravesh.com>
tools/ttysnoop.py

index 237f333c7f7cff4aa1d2224cb9c24561f51b1c00..ebddb4c0cb58f5efda3603b7fd74583b8b0775b4 100755 (executable)
@@ -138,9 +138,20 @@ KFUNC_PROBE(tty_write, struct kiocb *iocb, struct iov_iter *from)
 
     if (iocb->ki_filp->f_inode->i_ino != PTS)
         return 0;
-
+/**
+ * commit 8cd54c1c8480 iov_iter: separate direction from flavour 
+ * `type` is represented by iter_type and data_source seperately
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 14, 0)
     if (from->type != (ITER_IOVEC + WRITE))
         return 0;
+#else
+    if (from->iter_type != ITER_IOVEC)
+        return 0;
+    if (from->data_source != WRITE)
+        return 0;
+#endif
+
 
     kvec  = from->kvec;
     buf   = kvec->iov_base;