<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/char, branch v2.6.13.4</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>[PATCH] Fix drm 'debug' sysfs permissions</title>
<updated>2005-10-10T18:50:55+00:00</updated>
<author>
<name>Dave Jones</name>
<email>davej@redhat.com</email>
</author>
<published>2005-10-07T23:43:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b17681a236a4f0faf237241dea833fc6ada997c0'/>
<id>b17681a236a4f0faf237241dea833fc6ada997c0</id>
<content type='text'>
Please consider for next 2.6.13, it is a minor security issue allowing
users to turn on drm debugging when they shouldn't...

This fell through the cracks. Until Josh pointed me at
http://bugs.gentoo.org/show_bug.cgi?id=107893

Signed-off-by: Chris Wright &lt;chrisw@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Please consider for next 2.6.13, it is a minor security issue allowing
users to turn on drm debugging when they shouldn't...

This fell through the cracks. Until Josh pointed me at
http://bugs.gentoo.org/show_bug.cgi?id=107893

Signed-off-by: Chris Wright &lt;chrisw@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] Use SA_SHIRQ in sparc specific code.</title>
<updated>2005-09-10T02:42:52+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2005-09-06T22:03:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=76739be851b4fd112f28dd7c2aaff136def09d64'/>
<id>76739be851b4fd112f28dd7c2aaff136def09d64</id>
<content type='text'>
Based upon a report from Jason Wever.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based upon a report from Jason Wever.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@osdl.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] Remove race between con_open and con_close</title>
<updated>2005-08-28T01:03:42+00:00</updated>
<author>
<name>Paul Mackerras</name>
<email>paulus@samba.org</email>
</author>
<published>2005-08-27T23:40:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f786648b89f00d4e66fe6b19beffd30e764651fc'/>
<id>f786648b89f00d4e66fe6b19beffd30e764651fc</id>
<content type='text'>
[ Same race and same patch also by Steven Rostedt &lt;rostedt@goodmis.org&gt; ]

I have a laptop (G3 powerbook) which will pretty reliably hit a race
between con_open and con_close late in the boot process and oops in
vt_ioctl due to tty-&gt;driver_data being NULL.

What happens is this: process A opens /dev/tty6; it comes into
con_open() (drivers/char/vt.c) and assign a non-NULL value to
tty-&gt;driver_data.  Then process A closes that and concurrently process
B opens /dev/tty6.  Process A gets through con_close() and clears
tty-&gt;driver_data, since tty-&gt;count == 1.  However, before process A
can decrement tty-&gt;count, we switch to process B (e.g. at the
down(&amp;tty_sem) call at drivers/char/tty_io.c line 1626).

So process B gets to run and comes into con_open with tty-&gt;count == 2,
as tty-&gt;count is incremented (in init_dev) before con_open is called.
Because tty-&gt;count != 1, we don't set tty-&gt;driver_data.  Then when the
process tries to do anything with that fd, it oopses.

The simple and effective fix for this is to test tty-&gt;driver_data
rather than tty-&gt;count in con_open.  The testing and setting of
tty-&gt;driver_data is serialized with respect to the clearing of
tty-&gt;driver_data in con_close by the console_sem.  We can't get a
situation where con_open sees tty-&gt;driver_data != NULL and then
con_close on a different fd clears tty-&gt;driver_data, because
tty-&gt;count is incremented before con_open is called.  Thus this patch
eliminates the race, and in fact with this patch my laptop doesn't
oops.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
[ Same patch
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
  in http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=112450820432121&amp;w=2 ]
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Same race and same patch also by Steven Rostedt &lt;rostedt@goodmis.org&gt; ]

I have a laptop (G3 powerbook) which will pretty reliably hit a race
between con_open and con_close late in the boot process and oops in
vt_ioctl due to tty-&gt;driver_data being NULL.

What happens is this: process A opens /dev/tty6; it comes into
con_open() (drivers/char/vt.c) and assign a non-NULL value to
tty-&gt;driver_data.  Then process A closes that and concurrently process
B opens /dev/tty6.  Process A gets through con_close() and clears
tty-&gt;driver_data, since tty-&gt;count == 1.  However, before process A
can decrement tty-&gt;count, we switch to process B (e.g. at the
down(&amp;tty_sem) call at drivers/char/tty_io.c line 1626).

So process B gets to run and comes into con_open with tty-&gt;count == 2,
as tty-&gt;count is incremented (in init_dev) before con_open is called.
Because tty-&gt;count != 1, we don't set tty-&gt;driver_data.  Then when the
process tries to do anything with that fd, it oopses.

The simple and effective fix for this is to test tty-&gt;driver_data
rather than tty-&gt;count in con_open.  The testing and setting of
tty-&gt;driver_data is serialized with respect to the clearing of
tty-&gt;driver_data in con_close by the console_sem.  We can't get a
situation where con_open sees tty-&gt;driver_data != NULL and then
con_close on a different fd clears tty-&gt;driver_data, because
tty-&gt;count is incremented before con_open is called.  Thus this patch
eliminates the race, and in fact with this patch my laptop doesn't
oops.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
[ Same patch
Signed-off-by: Steven Rostedt &lt;rostedt@goodmis.org&gt;
  in http://marc.theaimsgroup.com/?l=linux-kernel&amp;m=112450820432121&amp;w=2 ]
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] Kconfig fix (sparc32 drivers/char dependencies)</title>
<updated>2005-08-24T01:43:43+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@www.linux.org.uk</email>
</author>
<published>2005-08-23T21:46:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a238b563502a7f458624b9c6404742e441b2f9e8'/>
<id>a238b563502a7f458624b9c6404742e441b2f9e8</id>
<content type='text'>
since sparc32 Kconfig includes drivers/char/Kconfig (instead of duplicating
its parts) we need several new dependencies there to exclude the stuff
broken on sparc32 and not excluded by existing dependencies.

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
since sparc32 Kconfig includes drivers/char/Kconfig (instead of duplicating
its parts) we need several new dependencies there to exclude the stuff
broken on sparc32 and not excluded by existing dependencies.

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] Kconfig fix (m32r genrtc)</title>
<updated>2005-08-24T01:43:40+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@www.linux.org.uk</email>
</author>
<published>2005-08-23T21:45:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=253a9c3308dd931e35f8527d9bda7dba591601d3'/>
<id>253a9c3308dd931e35f8527d9bda7dba591601d3</id>
<content type='text'>
genrtc is not for m32r; marked as such.  Probably ought to put that into
arch/* - list of "don't build it on &lt;platform&gt;" is getting too long.

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
genrtc is not for m32r; marked as such.  Probably ought to put that into
arch/* - list of "don't build it on &lt;platform&gt;" is getting too long.

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] Kconfig fix (epca on 64bit)</title>
<updated>2005-08-24T01:43:39+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@www.linux.org.uk</email>
</author>
<published>2005-08-23T21:45:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e9bcb173dd1747075214a1ccdb65dc6320cae49d'/>
<id>e9bcb173dd1747075214a1ccdb65dc6320cae49d</id>
<content type='text'>
epca is broken on 64bit; marked as such

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
epca is broken on 64bit; marked as such

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix up mmap of /dev/kmem</title>
<updated>2005-08-13T21:22:59+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@g5.osdl.org</email>
</author>
<published>2005-08-13T21:22:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4bb82551e165f887448f6f61055d7bcd90aefa2a'/>
<id>4bb82551e165f887448f6f61055d7bcd90aefa2a</id>
<content type='text'>
This leaves the issue of whether we should deprecate the whole thing (or
if we should check the whole mmap range, for that matter) open. Just do
the minimal fix for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This leaves the issue of whether we should deprecate the whole thing (or
if we should check the whole mmap range, for that matter) open. Just do
the minimal fix for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] i8xx_tco.c: arm watchdog only when started</title>
<updated>2005-08-09T19:08:21+00:00</updated>
<author>
<name>Wim Van Sebroeck</name>
<email>wim@iguana.be</email>
</author>
<published>2005-08-09T17:07:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=01df0e3a79d3913df178e9a1047ade425a7c118f'/>
<id>01df0e3a79d3913df178e9a1047ade425a7c118f</id>
<content type='text'>
i8xx_tco.c v0.08: only "arm" the watchdog when the watchdog has been
started.  (Kernel Bug 4251: system reset when battery is read and i8xx_tco
driver loaded)

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
i8xx_tco.c v0.08: only "arm" the watchdog when the watchdog has been
started.  (Kernel Bug 4251: system reset when battery is read and i8xx_tco
driver loaded)

Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] tpm_infineon: Support for new TPM 1.2 and PNPACPI</title>
<updated>2005-08-05T19:22:37+00:00</updated>
<author>
<name>Marcel Selhorst</name>
<email>selhorst@crypto.rub.de</email>
</author>
<published>2005-08-05T18:59:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f9abb020405c94edb0717315f1510086b1574a22'/>
<id>f9abb020405c94edb0717315f1510086b1574a22</id>
<content type='text'>
This patch includes support for the new Infineon Trusted Platform Module
SLB 9635 TT 1.2 and does further include ACPI-support for both chip
versions (SLD 9630 TT 1.1 and SLB9635 TT 1.2).  Since the ioports and
configuration registers are not correctly set on some machines, the
configuration is now done via PNPACPI, which reads out the correct values
out of the DSDT-table.  Note that you have to have CONFIG_PNP,
CONFIG_ACPI_BUS and CONFIG_PNPACPI enabled to run this driver (assuming
that mainboards including a TPM do have the need for ACPI anyway).

Signed-off-by: Marcel Selhorst &lt;selhorst@crypto.rub.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch includes support for the new Infineon Trusted Platform Module
SLB 9635 TT 1.2 and does further include ACPI-support for both chip
versions (SLD 9630 TT 1.1 and SLB9635 TT 1.2).  Since the ioports and
configuration registers are not correctly set on some machines, the
configuration is now done via PNPACPI, which reads out the correct values
out of the DSDT-table.  Note that you have to have CONFIG_PNP,
CONFIG_ACPI_BUS and CONFIG_PNPACPI enabled to run this driver (assuming
that mainboards including a TPM do have the need for ACPI anyway).

Signed-off-by: Marcel Selhorst &lt;selhorst@crypto.rub.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] rtc: msleep() cannot be used from interrupt</title>
<updated>2005-08-05T13:57:44+00:00</updated>
<author>
<name>Petr Vandrovec</name>
<email>vandrove@vc.cvut.cz</email>
</author>
<published>2005-08-05T13:50:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=403fe5ae57c831968c3dbbaba291ae825a1c5aaa'/>
<id>403fe5ae57c831968c3dbbaba291ae825a1c5aaa</id>
<content type='text'>
Since the beginning of July my Opteron box was randomly crashing and
being rebooted by hardware watchdog.  Today it finally did it in front
of me, and this patch will hopefully fix it.

The problem is that at the end of June (the 28th, to be exact: commit
47f176fdaf8924bc83fddcf9658f2fd3ef60d573, "[PATCH] Using msleep()
instead of HZ") rtc_get_rtc_time was converted to use msleep() instead
of busy waiting.  But rtc_get_rtc_time is used by hpet_rtc_interrupt,
and scheduling is not allowed during interrupt.  So I'm reverting this
part of original change, replacing msleep() back with busy loop.

The original code was busy waiting for up to 20ms, but on my hardware in
the worst case update-in-progress bit was asserted for at most 363
passes through loop (on 2GHz dual Opteron), much less than even one
jiffie, not even talking about 20ms.  So I changed code to just wait
only as long as necessary.  Otherwise when RTC was set to generate
8192Hz timer, it stopped doing anything for 20ms (160 pulses were
skipped!) from time to time, and this is rather suboptimal as far as I
can tell.

Signed-off-by: Petr Vandrovec &lt;vandrove@vc.cvut.cz&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since the beginning of July my Opteron box was randomly crashing and
being rebooted by hardware watchdog.  Today it finally did it in front
of me, and this patch will hopefully fix it.

The problem is that at the end of June (the 28th, to be exact: commit
47f176fdaf8924bc83fddcf9658f2fd3ef60d573, "[PATCH] Using msleep()
instead of HZ") rtc_get_rtc_time was converted to use msleep() instead
of busy waiting.  But rtc_get_rtc_time is used by hpet_rtc_interrupt,
and scheduling is not allowed during interrupt.  So I'm reverting this
part of original change, replacing msleep() back with busy loop.

The original code was busy waiting for up to 20ms, but on my hardware in
the worst case update-in-progress bit was asserted for at most 363
passes through loop (on 2GHz dual Opteron), much less than even one
jiffie, not even talking about 20ms.  So I changed code to just wait
only as long as necessary.  Otherwise when RTC was set to generate
8192Hz timer, it stopped doing anything for 20ms (160 pulses were
skipped!) from time to time, and this is rather suboptimal as far as I
can tell.

Signed-off-by: Petr Vandrovec &lt;vandrove@vc.cvut.cz&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
