<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/pps/clients, branch v3.2.95</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v3.2.95</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v3.2.95'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2016-11-20T01:01:28+00:00</updated>
<entry>
<title>pps: do not crash when failed to register</title>
<updated>2016-11-20T01:01:28+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2016-07-20T22:45:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=634adfb0fb379706cb207beb74602c3e8108ccbb'/>
<id>urn:sha1:634adfb0fb379706cb207beb74602c3e8108ccbb</id>
<content type='text'>
commit 368301f2fe4b07e5fb71dba3cc566bc59eb6705f upstream.

With this command sequence:

  modprobe plip
  modprobe pps_parport
  rmmod pps_parport

the partport_pps modules causes this crash:

  BUG: unable to handle kernel NULL pointer dereference at (null)
  IP: parport_detach+0x1d/0x60 [pps_parport]
  Oops: 0000 [#1] SMP
  ...
  Call Trace:
    parport_unregister_driver+0x65/0xc0 [parport]
    SyS_delete_module+0x187/0x210

The sequence that builds up to this is:

 1) plip is loaded and takes the parport device for exclusive use:

    plip0: Parallel port at 0x378, using IRQ 7.

 2) pps_parport then fails to grab the device:

    pps_parport: parallel port PPS client
    parport0: cannot grant exclusive access for device pps_parport
    pps_parport: couldn't register with parport0

 3) rmmod of pps_parport is then killed because it tries to access
    pardev-&gt;name, but pardev (taken from port-&gt;cad) is NULL.

So add a check for NULL in the test there too.

Link: http://lkml.kernel.org/r/20160714115245.12651-1-jslaby@suse.cz
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Acked-by: Rodolfo Giometti &lt;giometti@enneenne.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>pps: Use pps_lookup_dev to reduce ldisc coupling</title>
<updated>2013-03-06T03:23:58+00:00</updated>
<author>
<name>George Spelvin</name>
<email>linux@horizon.com</email>
</author>
<published>2013-02-10T09:41:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=24625640fe278feac753e36888ff1d335d39964b'/>
<id>urn:sha1:24625640fe278feac753e36888ff1d335d39964b</id>
<content type='text'>
commit 03a7ffe4e542310838bac70ef85acc17536b6d7c upstream.

Now that N_TTY uses tty-&gt;disc_data for its private data,
'subclass' ldiscs cannot use -&gt;disc_data for their own private data.
(This is a regression is v3.8-rc1)

Use pps_lookup_dev to associate the tty with the pps source instead.

This fixes a crashing regression in 3.8-rc1.

Signed-off-by: George Spelvin &lt;linux@horizon.com&gt;
Acked-by: Rodolfo Giometti &lt;giometti@enneenne.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>pps gpio client: add missing dependency</title>
<updated>2011-11-02T23:07:02+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2011-11-02T20:39:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=79bc57463be2ad5020a53accbf26898e8ac04550'/>
<id>urn:sha1:79bc57463be2ad5020a53accbf26898e8ac04550</id>
<content type='text'>
Add "depends on GENERIC_HARDIRQS" to avoid compile breakage on s390:

drivers/built-in.o: In function `pps_gpio_remove':
linux-next/drivers/pps/clients/pps-gpio.c:189: undefined reference to `free_irq'

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: James Nuss &lt;jamesnuss@nanometrics.ca&gt;
Cc: Rodolfo Giometti &lt;giometti@enneenne.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pps: new client driver using GPIO</title>
<updated>2011-11-02T23:07:02+00:00</updated>
<author>
<name>James Nuss</name>
<email>jamesnuss@nanometrics.ca</email>
</author>
<published>2011-11-02T20:39:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=161520451dfacd0eb79d501933f47d3fb7464938'/>
<id>urn:sha1:161520451dfacd0eb79d501933f47d3fb7464938</id>
<content type='text'>
This client driver allows you to use a GPIO pin as a source for PPS
signals.  Platform data [1] are used to specify the GPIO pin number,
label, assert event edge type, and whether clear events are captured.

This driver is based on the work by Ricardo Martins who submitted an
initial implementation [2] of a PPS IRQ client driver to the linuxpps
mailing-list on Dec 3 2010.

[1] include/linux/pps-gpio.h
[2] http://ml.enneenne.com/pipermail/linuxpps/2010-December/004155.html

[akpm@linux-foundation.org: remove unneeded cast of void*]
Signed-off-by: James Nuss &lt;jamesnuss@nanometrics.ca&gt;
Cc: Ricardo Martins &lt;rasm@fe.up.pt&gt;
Acked-by: Rodolfo Giometti &lt;giometti@linux.it&gt;
Signed-off-by: Ricardo Martins &lt;rasm@fe.up.pt&gt;
Cc: Alexander Gordeev &lt;lasaine@lvk.cs.msu.su&gt;
Cc: Igor Plyatov &lt;plyatov@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pps: default echo function</title>
<updated>2011-11-02T23:07:02+00:00</updated>
<author>
<name>James Nuss</name>
<email>jamesnuss@nanometrics.ca</email>
</author>
<published>2011-11-02T20:39:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=437c53418616973071fd2d7c87497780944d8fdb'/>
<id>urn:sha1:437c53418616973071fd2d7c87497780944d8fdb</id>
<content type='text'>
A default echo function has been provided so it is no longer an error when
you specify PPS_ECHOASSERT or PPS_ECHOCLEAR without an explicit echo
function.  This allows some code re-use and also makes it easier to write
client drivers since the default echo function does not normally need to
change.

Signed-off-by: James Nuss &lt;jamesnuss@nanometrics.ca&gt;
Reviewed-by: Ben Gardiner &lt;bengardiner@nanometrics.ca&gt;
Acked-by: Rodolfo Giometti &lt;giometti@linux.it&gt;
Cc: Ricardo Martins &lt;rasm@fe.up.pt&gt;
Cc: Alexander Gordeev &lt;lasaine@lvk.cs.msu.su&gt;
Cc: Igor Plyatov &lt;plyatov@gmail.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pps: change to new flag variable</title>
<updated>2011-03-17T13:05:35+00:00</updated>
<author>
<name>matt mooney</name>
<email>mfm@muteddisk.com</email>
</author>
<published>2011-01-14T14:12:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=26a082dc5334ee003167bb9feeee681c150e5b11'/>
<id>urn:sha1:26a082dc5334ee003167bb9feeee681c150e5b11</id>
<content type='text'>
Replace EXTRA_CFLAGS with ccflags-y.

Signed-off-by: matt mooney &lt;mfm@muteddisk.com&gt;
Acked-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Michal Marek &lt;mmarek@suse.cz&gt;
</content>
</entry>
<entry>
<title>pps: claim parallel port exclusively</title>
<updated>2011-01-26T00:50:00+00:00</updated>
<author>
<name>Alexander Gordeev</name>
<email>lasaine@lvk.cs.msu.su</email>
</author>
<published>2011-01-25T23:07:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4f542e3dd90a96ee0f8fcb8173cb4104f5f753e6'/>
<id>urn:sha1:4f542e3dd90a96ee0f8fcb8173cb4104f5f753e6</id>
<content type='text'>
Both pps_parport and pps_gen_parport are written in a way that they
can't share a port with any other driver.  This can result in locking up
the process that loads modules or even the whole kernel if the modules
are compiled in.  Use PARPORT_FLAG_EXCL to indicate this.

Signed-off-by: Alexander Gordeev &lt;lasaine@lvk.cs.msu.su&gt;
Cc: Alexander Gordeev &lt;lasaine@lvk.cs.msu.su&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pps ktimer: remove noisy message</title>
<updated>2011-01-26T00:49:59+00:00</updated>
<author>
<name>Rodolfo Giometti</name>
<email>giometti@linux.it</email>
</author>
<published>2011-01-25T23:07:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a783ac4453405b579ab7732ba3c0efc07a4b7a61'/>
<id>urn:sha1:a783ac4453405b579ab7732ba3c0efc07a4b7a61</id>
<content type='text'>
Signed-off-by: Rodolfo Giometti &lt;giometti@linux.it&gt;
Reported-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Alexander Gordeev &lt;lasaine@lvk.cs.msu.su&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pps: add parallel port PPS client</title>
<updated>2011-01-13T16:03:21+00:00</updated>
<author>
<name>Alexander Gordeev</name>
<email>lasaine@lvk.cs.msu.su</email>
</author>
<published>2011-01-13T01:00:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=a10203c691eac287664f531b149ddc23056c2f61'/>
<id>urn:sha1:a10203c691eac287664f531b149ddc23056c2f61</id>
<content type='text'>
Add parallel port PPS client.  It uses a standard method for capturing
timestamps for assert edge transitions: getting a timestamp soon after an
interrupt has happened.

This is not a very precise source of time information due to interrupt
handling delays.  However, timestamps for clear edge transitions are much
more precise because the interrupt handler continuously polls hardware
port until the transition is done.

Hardware port operations require only about 1us so the maximum error
should not exceed this value.  This was my primary goal when developing
this client.

Clear edge capture could be disabled using clear_wait parameter.

Signed-off-by: Alexander Gordeev &lt;lasaine@lvk.cs.msu.su&gt;
Acked-by: Rodolfo Giometti &lt;giometti@linux.it&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>pps: timestamp is always passed to dcd_change()</title>
<updated>2011-01-13T16:03:20+00:00</updated>
<author>
<name>Alexander Gordeev</name>
<email>lasaine@lvk.cs.msu.su</email>
</author>
<published>2011-01-13T01:00:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=12f9b1f9c11700893a7b453705d95b260d78f268'/>
<id>urn:sha1:12f9b1f9c11700893a7b453705d95b260d78f268</id>
<content type='text'>
Remove the code that gatheres timestamp in pps_tty_dcd_change() in case
passed ts parameter is NULL because it never happens in the current code.
Fix comments as well.

Signed-off-by: Alexander Gordeev &lt;lasaine@lvk.cs.msu.su&gt;
Acked-by: Rodolfo Giometti &lt;giometti@linux.it&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
