From d424380fe62351358d21406280bc7588d795209c Mon Sep 17 00:00:00 2001 From: Ciro Santilli Date: Fri, 26 May 2017 09:09:24 +0100 Subject: [PATCH] Fix fops write buf printk bug, improve fops file name further --- kernel_module/fops.c | 4 ++-- rootfs_overlay/fops.sh | 18 +++++++++--------- rootfs_overlay/kgdb-mod.sh | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/kernel_module/fops.c b/kernel_module/fops.c index 2a4d93f..c8ca1bc 100644 --- a/kernel_module/fops.c +++ b/kernel_module/fops.c @@ -83,11 +83,11 @@ static ssize_t fop_write(struct file *file, const char __user *buf, size_t len, ret = -EFAULT; } else { ret = len; + printk(KERN_INFO "buf = %.*s\n", (int)len, data + *off); *off += ret; } } } - printk(KERN_INFO "buf = %.*s\n", (int)len, data + *off); printk(KERN_INFO "ret = %lld\n", (long long)ret); return ret; } @@ -144,7 +144,7 @@ int init_module(void) printk(KERN_ALERT "debugfs_create_dir failed"); return -1; } - file = debugfs_create_file("fops", 0666, dir, NULL, &fops); + file = debugfs_create_file("f", 0666, dir, NULL, &fops); if (!file) { printk(KERN_ALERT "debugfs_create_file failed"); return -1; diff --git a/rootfs_overlay/fops.sh b/rootfs_overlay/fops.sh index 9cc2216..3651f4a 100755 --- a/rootfs_overlay/fops.sh +++ b/rootfs_overlay/fops.sh @@ -5,7 +5,7 @@ insmod /fops.ko cd /sys/kernel/debug/lkmc_fops ## Basic read. -cat fops +cat f # => abcd # dmesg => open # dmesg => read @@ -14,14 +14,14 @@ cat fops ## Basic write -printf '01' >fops +printf '01' >f # dmesg => open # dmesg => write # dmesg => len = 1 # dmesg => buf = a # dmesg => close -cat fops +cat f # => 01cd # dmesg => open # dmesg => read @@ -29,15 +29,15 @@ cat fops # dmesg => close ## ENOSPC -printf '1234' >fops -printf '12345' >fops +printf '1234' >f +printf '12345' >f echo "$?" # => 8 -cat fops +cat f # => 1234 ## seek -printf '1234' >fops -printf 'z' | dd bs=1 of=fops seek=2 -cat fops +printf '1234' >f +printf 'z' | dd bs=1 of=f seek=2 +cat f # => 12z4 diff --git a/rootfs_overlay/kgdb-mod.sh b/rootfs_overlay/kgdb-mod.sh index 2aab725..d96a5b4 100755 --- a/rootfs_overlay/kgdb-mod.sh +++ b/rootfs_overlay/kgdb-mod.sh @@ -3,7 +3,7 @@ insmod /fops.ko cd /sys/kernel/debug/lkmc_fops i=0 while true; do - printf "$i" >fops + printf "$i" >f i=$(($i+1)) done & /kgdb.sh