Thread (9 messages) 9 messages, 3 authors, 2011-03-01

[PATCH v6 1/1] PRUSS UIO driver support

From: TK, Pratheesh Gangadhar <hidden>
Date: 2011-03-01 21:20:32
Also in: lkml

Hi,
-----Original Message-----
From: Hans J. Koch [mailto:hjk at hansjkoch.de]
Sent: Wednesday, March 02, 2011 12:04 AM
To: TK, Pratheesh Gangadhar
Cc: Hans J. Koch; linux-kernel at vger.kernel.org; gregkh at suse.de;
tglx at linutronix.de; sshtylyov at mvista.com; arnd at arndb.de; Chatterjee, Amit;
davinci-linux-open-source at linux.davincidsp.com; linux-arm-
kernel at lists.infradead.org
Subject: Re: [PATCH v6 1/1] PRUSS UIO driver support

On Tue, Mar 01, 2011 at 10:15:27AM +0530, TK, Pratheesh Gangadhar wrote:
quoted
Hi,
quoted
-----Original Message-----
From: Hans J. Koch [mailto:hjk at hansjkoch.de]
Sent: Tuesday, March 01, 2011 2:57 AM
To: TK, Pratheesh Gangadhar
Cc: linux-kernel at vger.kernel.org; hjk at hansjkoch.de; gregkh at suse.de;
tglx at linutronix.de; sshtylyov at mvista.com; arnd at arndb.de; Chatterjee,
Amit;
quoted
quoted
davinci-linux-open-source at linux.davincidsp.com; linux-arm-
kernel at lists.infradead.org
Subject: Re: [PATCH v6 1/1] PRUSS UIO driver support

On Tue, Mar 01, 2011 at 02:31:35AM +0530, Pratheesh Gangadhar wrote:
quoted
+
+		/* Register PRUSS IRQ lines */
+		p->irq = IRQ_DA8XX_EVTOUT0 + cnt;
+		p->handler = pruss_handler;
+
+		ret = uio_register_device(&dev->dev, p);
+
+		if (ret < 0)
+			goto out_free;
+	}
+
+	spin_lock_init(&lock);
That's too late. uio_register_device() enables the irq, and your
spin_lock
quoted
quoted
is not ready at that time.
This is ok in this context as "modprobe uio_pruss" is pre-requisite for
running PRUSS firmware and without firmware running PRUSS won't
generate interrupts. Actually PRUSS INTC is not setup till we start
user application.
What if the user application is stopped, UIO driver module unloaded
and loaded again?
This is a possible scenario - may be a buggy application. Normally when
application is stopped, PRUs are stopped by exit handler.
Anyway, please don't use that kind of argumentation. The next newbie
developer might copy your work as a basis for his new driver, and there
it probably won't work.

Simply put the spin_lock_init before the loop.
Agree, will fix this in next version.

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