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

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

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2015-10-02 17:37:24
Also in: linux-input, lkml

On Wed, Sep 23, 2015 at 01:54:59PM -0400, cpaul@redhat.com wrote:
+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?
+
+	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.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help