Mauro, Hans, The debugfs code in drivers/media/common/siano/smsdvb-debugfs.c is completely broken. No one has tested it since Dec 2022. Can we just remove it? On Mon, May 27, 2024 at 11:14:16AM +0300, Dan Carpenter wrote: > On Sat, May 25, 2024 at 05:00:59PM +0300, Andy Shevchenko wrote: > > On Thu, May 23, 2024 at 3:42 PM Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > > > > > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1110 static ssize_t hx9031as_raw_data_show(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1111 { > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1112 char buf[BUF_SIZE] = {0}; > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1113 char *p = buf; > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1114 int ii = 0; > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1115 > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1116 hx9031as_sample(); > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 1117 for (ii = 0; ii < HX9031AS_CH_NUM; ii++) { > > > 5e5a419c9407f6 Yasin Lee 2024-05-10 @1118 p += snprintf(p, PAGE_SIZE, "ch[%d]: DIFF=%-8d, RAW=%-8d, OFFSET=%-8d, BL=%-8d, LP=%-8d\n", > > > ^^^^^^^^^ > > > > > > > Also use scnprintf() instead of snprintf() unless you need to check the > > > results. > > > > This is incorrect advice. You should recommend sysfs_emit() / > > sysfs_emit_at() in this kind of case. > > No, this is not sysfs code. It's debugfs. The API is completely > different. I was going to say that if you find yourself calling sysfs_emit_at() then you're already in trouble because sysfs is supposed to be one thing per file. But then I searched and we call it almost 1000 times. The first caller I looked at was drivers/media/common/siano/smsdvb-debugfs.c from commit 2f7d0c94396e ("media: siano: Convert to use sysfs_emit_at() API") which changes debugfs code to use sysfs_emit(). And it so clearly has never been tested because debug_data->stats_data does not point to the start of a page. sysfs_emit() will refuse to print anything unless it's given a pointer to the start of a page. Ugh... regards, dan carpenter