kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
* debugfs question ...
@ 2019-04-30 11:45 rdq
  2019-04-30 12:07 ` Greg KH
  2019-04-30 12:11 ` Martin Christian
  0 siblings, 2 replies; 5+ messages in thread
From: rdq @ 2019-04-30 11:45 UTC (permalink / raw)
  To: kernelnewbies

Greetings,

My I2C sensor driver has a debugfs entry for development purposes.
Everything works fine with the exception of the read operation. When 'cat'
is used, the read operation is called repeatedly and indefinitely. If the
read() is changed to return 0 then, as expected, nothing is displayed. 

The pattern for the implementation is (AFAICT) right out of  the book (shown
below). 

What am I missing? Any thoughts much appreciated.

TAIA.

RDQ

static ssize_t sc031gs_reg_read_file(struct file *file, char __user
*user_buf,
				   size_t count, loff_t *ppos)
{
	char *buf = 0;
	ssize_t total = 0;
	struct sc031gs_dev *sensor = file->private_data;
	if (!sensor)
		return -EINVAL;
	if (*ppos < 0 || !count)
		return -EINVAL;
	buf = kmalloc(count, GFP_KERNEL);
	if (!buf)
		return -ENOMEM;
	total = snprintf(buf,count,"Hello world\n");
	if (total >= 0) {
		if (copy_to_user(user_buf, buf, total)) {
			kfree(buf);
			return -EFAULT;
		}
		*ppos += total;
	}
	kfree(buf);
	return total;
}


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-05-01 14:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-30 11:45 debugfs question rdq
2019-04-30 12:07 ` Greg KH
     [not found]   ` <014a01d50028$ce098580$6a1c9080$@metamail.co>
2019-05-01 14:35     ` 'Greg KH'
2019-04-30 12:11 ` Martin Christian
2019-05-01 12:06   ` rdq

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).