Thread (19 messages) flat view 19 messages, 4 authors, 2015-10-28

Re: [PATCH v6.1 1/1] Input: Add userio module

From: Stephen Chandler Paul <hidden>
Date: 2015-10-05 14:06:30
Also in: linux-input, lkml

On Fri, 2015-10-02 at 10:37 -0700, Dmitry Torokhov wrote:
On Wed, Sep 23, 2015 at 01:54:59PM -0400, cpaul-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org wrote:
quoted
+static int userio_device_write(struct serio *id, unsigned char
val)
+{
+	struct userio_device *userio = id->port_data;
+	unsigned long flags;
+
+	if (!userio)
+		return -1;
I still have the same question: how can this happen? Where do we
reset
port data to NULL? What happens if we set to NULL after checking?
Actually David pointed out this line was not needed, somehow it still
got left in the patch. I'll send an updated version in just a minute
with the changes.

Cheers,
	Lyude
quoted
+
+	spin_lock_irqsave(&userio->buf_lock, flags);
+
+	userio->buf[userio->head] = val;
+	userio->head = (userio->head + 1) % USERIO_BUFSIZE;
+
+	if (userio->head == userio->tail)
+		dev_warn(userio_misc.this_device,
+			 "Buffer overflowed, userio client isn't
keeping up");
+
+	spin_unlock_irqrestore(&userio->buf_lock, flags);
+
+	wake_up_interruptible(&userio->waitq);
+
+	return 0;
+}
Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help