<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/arch/s390/lib, branch v2.6.32</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>[S390] Add EX_TABLE for addressing exception in usercopy functions.</title>
<updated>2009-10-06T08:35:10+00:00</updated>
<author>
<name>Gerald Schaefer</name>
<email>gerald.schaefer@de.ibm.com</email>
</author>
<published>2009-10-06T08:34:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=af9d2ff9afaae8040dbf09238b2579f92c93579e'/>
<id>af9d2ff9afaae8040dbf09238b2579f92c93579e</id>
<content type='text'>
This patch adds an EX_TABLE entry to mvc{p|s|os} usercopy functions that
may be called with KERNEL_DS. In combination with collaborative memory
management, kernel pages marked as unused may trigger an adressing exception
in the usercopy functions. This fixes an unhandled addressing exception bug
where strncpy_from_user() is used with len &gt; strnlen and KERNEL_DS, crossing
a page boundary to an unused page.

Signed-off-by: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds an EX_TABLE entry to mvc{p|s|os} usercopy functions that
may be called with KERNEL_DS. In combination with collaborative memory
management, kernel pages marked as unused may trigger an adressing exception
in the usercopy functions. This fixes an unhandled addressing exception bug
where strncpy_from_user() is used with len &gt; strnlen and KERNEL_DS, crossing
a page boundary to an unused page.

Signed-off-by: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] Provide arch specific mdelay implementation.</title>
<updated>2009-10-06T08:35:08+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-10-06T08:34:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0cd6a403e8f86bb24975e4c16ce640a063475515'/>
<id>0cd6a403e8f86bb24975e4c16ce640a063475515</id>
<content type='text'>
Use an own implementation instead of the common code udelay loop.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use an own implementation instead of the common code udelay loop.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] Fix enabled udelay for short delays.</title>
<updated>2009-10-06T08:35:08+00:00</updated>
<author>
<name>Christian Borntraeger</name>
<email>borntraeger@de.ibm.com</email>
</author>
<published>2009-10-06T08:34:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=78d81f2f844b739b377817cfd279fb6067e191a7'/>
<id>78d81f2f844b739b377817cfd279fb6067e191a7</id>
<content type='text'>
When udelay() gets called with a delay that would expire before the
next clock event it reprograms the clock comparator.
When the interrupt happens the clock comparator won't be resetted
therefore the interrupt condition doesn't get cleared.
The result is an endless timer interrupt loop until the next clock
event would expire (stored in lowcore).
So udelay() usually would wait much longer for small delays than it
should.

Fix this by disabling the local tick which makes sure that the clock
comparator will be resetted when a timer interrupt happens.

Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When udelay() gets called with a delay that would expire before the
next clock event it reprograms the clock comparator.
When the interrupt happens the clock comparator won't be resetted
therefore the interrupt condition doesn't get cleared.
The result is an endless timer interrupt loop until the next clock
event would expire (stored in lowcore).
So udelay() usually would wait much longer for small delays than it
should.

Fix this by disabling the local tick which makes sure that the clock
comparator will be resetted when a timer interrupt happens.

Signed-off-by: Christian Borntraeger &lt;borntraeger@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] add __ucmpdi2() helper function</title>
<updated>2009-07-07T14:37:53+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-07-07T14:37:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5075baca2e95840d76210c3cfda56134007462c9'/>
<id>5075baca2e95840d76210c3cfda56134007462c9</id>
<content type='text'>
Provide __ucmpdi2() helper function on 31 bit so we don't run
again and again in compile errors like this one:

kernel/built-in.o: In function `T.689':
perf_counter.c:(.text+0x56c86): undefined reference to `__ucmpdi2'

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide __ucmpdi2() helper function on 31 bit so we don't run
again and again in compile errors like this one:

kernel/built-in.o: In function `T.689':
perf_counter.c:(.text+0x56c86): undefined reference to `__ucmpdi2'

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] udelay: disable lockdep to avoid false positives</title>
<updated>2009-07-07T14:37:51+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-07-07T14:37:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bb8c29caffdda55d3df0315ff2485f7df7290b1d'/>
<id>bb8c29caffdda55d3df0315ff2485f7df7290b1d</id>
<content type='text'>
Our udelay implementation enables interrupts to receive a special timer
interrupt regardless of the context it is called from.
This might lead to false positive lockdep reports. Since lockdep isn't
aware of the fact that only a single interrupt source is enabled it
warns about possible deadlocks that in reality won't happen, like
the one below.
To fix this disable lockdep before enabling interrupts.

[ 254.040888] =================================
[ 254.040904] [ INFO: inconsistent lock state ]
[ 254.040910] 2.6.30 #9
[ 254.040914] ---------------------------------
[ 254.040920] inconsistent {IN-HARDIRQ-W} -&gt; {HARDIRQ-ON-W} usage.
[ 254.040927] swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
[ 254.040934] (sch-&gt;lock){?.-...}, at: [&lt;00000000002e4778&gt;] ccw_device_timeout+0x48/0x2f0
[ 254.040961] {IN-HARDIRQ-W} state was registered at:
[ 254.040969] [&lt;0000000000096f74&gt;] __lock_acquire+0x9d4/0x188c
[ 254.040985] [&lt;0000000000097f68&gt;] lock_acquire+0x13c/0x16c
[ 254.040998] [&lt;00000000004527e0&gt;] _spin_lock+0x74/0xb8
[ 254.041016] [&lt;0000000000457eb2&gt;] do_IRQ+0xde/0x208
[ 254.041031] [&lt;000000000002d190&gt;] io_return+0x0/0x8
[ 254.041049] [&lt;0000000000029faa&gt;] vtime_stop_cpu+0xbe/0x114
[ 254.041066] irq event stamp: 259629
[ 254.041076] hardirqs last enabled at (259628): [&lt;000000000045238e&gt;] _spin_unlock_irq+0x5e/0x9c
[ 254.041095] hardirqs last disabled at (259629): [&lt;000000000045292e&gt;] _spin_lock_irq+0x4a/0xc4
[ 254.041126] softirqs last enabled at (259614): [&lt;000000000006500e&gt;] __do_softirq+0x296/0x2b0
[ 254.041137] softirqs last disabled at (259619): [&lt;0000000000024cf6&gt;] do_softirq+0x102/0x108
[ 254.041147]
[ 254.041148] other info that might help us debug this:
[ 254.041153] 2 locks held by swapper/0:
[ 254.041157] #0: (&amp;priv-&gt;timer){+.-...}, at: [&lt;000000000006bf9a&gt;] run_timer_softirq+0x19a/0x340
[ 254.041170] #1: (sch-&gt;lock){?.-...}, at: [&lt;00000000002e4778&gt;] ccw_device_timeout+0x48/0x2f0
[ 254.041182]
[ 254.041310] Call Trace:
[ 254.041313] ([&lt;00000000000174fc&gt;] show_trace+0x16c/0x170)
[ 254.041321] [&lt;0000000000017578&gt;] show_stack+0x78/0x104
[ 254.041327] [&lt;000000000044d0ca&gt;] dump_stack+0xc6/0xd4
[ 254.041342] [&lt;00000000000949b4&gt;] print_usage_bug+0x1c8/0x1fc
[ 254.041353] [&lt;0000000000094e8a&gt;] mark_lock+0x4a2/0x670
[ 254.041364] [&lt;00000000000950e2&gt;] mark_held_locks+0x8a/0xb4
[ 254.041375] [&lt;0000000000095398&gt;] trace_hardirqs_on_caller+0x74/0x1ac
[ 254.041388] [&lt;00000000000954fa&gt;] trace_hardirqs_on+0x2a/0x38
[ 254.041402] [&lt;000000000025f1ec&gt;] __udelay_disabled+0xac/0xfc
[ 254.041419] [&lt;000000000025f432&gt;] __udelay+0x12a/0x148
[ 254.041433] [&lt;00000000002d64d8&gt;] cio_commit_config+0x170/0x290
[ 254.041451] [&lt;00000000002d6978&gt;] cio_disable_subchannel+0x120/0x1cc
[ 254.041468] [&lt;00000000002e32a4&gt;] ccw_device_recog_done+0x54/0x2f4
[ 254.041485] [&lt;00000000002e3638&gt;] ccw_device_sense_id_done+0x50/0x90
[ 254.041508] [&lt;00000000002e615a&gt;] snsid_callback+0xfa/0x3a8
[ 254.041515] [&lt;00000000002dd96c&gt;] ccwreq_stop+0x80/0x90
[ 254.041523] [&lt;00000000002dda8e&gt;] ccw_request_timeout+0xc2/0xd0
[ 254.041530] [&lt;00000000002e2f70&gt;] ccw_device_request_event+0x58/0x90
[ 254.041537] [&lt;00000000002e47ae&gt;] ccw_device_timeout+0x7e/0x2f0
[ 254.041555] [&lt;000000000006c02a&gt;] run_timer_softirq+0x22a/0x340
[ 254.041566] [&lt;0000000000064eb0&gt;] __do_softirq+0x138/0x2b0
[ 254.041578] [&lt;0000000000024cf6&gt;] do_softirq+0x102/0x108
[ 254.041590] [&lt;00000000000647ce&gt;] irq_exit+0xee/0x114
[ 254.041603] [&lt;0000000000457d88&gt;] do_extint+0x130/0x17c
[ 254.041617] [&lt;000000000002d41e&gt;] ext_no_vtime+0x1e/0x22
[ 254.041631] [&lt;0000000000029faa&gt;] vtime_stop_cpu+0xbe/0x114
[ 254.041646] ([&lt;0000000000029f58&gt;] vtime_stop_cpu+0x6c/0x114)
[ 254.041662] [&lt;000000000001d842&gt;] cpu_idle+0x122/0x1c0
[ 254.041679] [&lt;00000000004482c6&gt;] start_secondary+0xce/0xe0
[ 254.041696] [&lt;0000000000000000&gt;] 0x0
[ 254.041715] [&lt;0000000000000000&gt;] 0x0
[ 254.041745] INFO: lockdep is turned off.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Our udelay implementation enables interrupts to receive a special timer
interrupt regardless of the context it is called from.
This might lead to false positive lockdep reports. Since lockdep isn't
aware of the fact that only a single interrupt source is enabled it
warns about possible deadlocks that in reality won't happen, like
the one below.
To fix this disable lockdep before enabling interrupts.

[ 254.040888] =================================
[ 254.040904] [ INFO: inconsistent lock state ]
[ 254.040910] 2.6.30 #9
[ 254.040914] ---------------------------------
[ 254.040920] inconsistent {IN-HARDIRQ-W} -&gt; {HARDIRQ-ON-W} usage.
[ 254.040927] swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
[ 254.040934] (sch-&gt;lock){?.-...}, at: [&lt;00000000002e4778&gt;] ccw_device_timeout+0x48/0x2f0
[ 254.040961] {IN-HARDIRQ-W} state was registered at:
[ 254.040969] [&lt;0000000000096f74&gt;] __lock_acquire+0x9d4/0x188c
[ 254.040985] [&lt;0000000000097f68&gt;] lock_acquire+0x13c/0x16c
[ 254.040998] [&lt;00000000004527e0&gt;] _spin_lock+0x74/0xb8
[ 254.041016] [&lt;0000000000457eb2&gt;] do_IRQ+0xde/0x208
[ 254.041031] [&lt;000000000002d190&gt;] io_return+0x0/0x8
[ 254.041049] [&lt;0000000000029faa&gt;] vtime_stop_cpu+0xbe/0x114
[ 254.041066] irq event stamp: 259629
[ 254.041076] hardirqs last enabled at (259628): [&lt;000000000045238e&gt;] _spin_unlock_irq+0x5e/0x9c
[ 254.041095] hardirqs last disabled at (259629): [&lt;000000000045292e&gt;] _spin_lock_irq+0x4a/0xc4
[ 254.041126] softirqs last enabled at (259614): [&lt;000000000006500e&gt;] __do_softirq+0x296/0x2b0
[ 254.041137] softirqs last disabled at (259619): [&lt;0000000000024cf6&gt;] do_softirq+0x102/0x108
[ 254.041147]
[ 254.041148] other info that might help us debug this:
[ 254.041153] 2 locks held by swapper/0:
[ 254.041157] #0: (&amp;priv-&gt;timer){+.-...}, at: [&lt;000000000006bf9a&gt;] run_timer_softirq+0x19a/0x340
[ 254.041170] #1: (sch-&gt;lock){?.-...}, at: [&lt;00000000002e4778&gt;] ccw_device_timeout+0x48/0x2f0
[ 254.041182]
[ 254.041310] Call Trace:
[ 254.041313] ([&lt;00000000000174fc&gt;] show_trace+0x16c/0x170)
[ 254.041321] [&lt;0000000000017578&gt;] show_stack+0x78/0x104
[ 254.041327] [&lt;000000000044d0ca&gt;] dump_stack+0xc6/0xd4
[ 254.041342] [&lt;00000000000949b4&gt;] print_usage_bug+0x1c8/0x1fc
[ 254.041353] [&lt;0000000000094e8a&gt;] mark_lock+0x4a2/0x670
[ 254.041364] [&lt;00000000000950e2&gt;] mark_held_locks+0x8a/0xb4
[ 254.041375] [&lt;0000000000095398&gt;] trace_hardirqs_on_caller+0x74/0x1ac
[ 254.041388] [&lt;00000000000954fa&gt;] trace_hardirqs_on+0x2a/0x38
[ 254.041402] [&lt;000000000025f1ec&gt;] __udelay_disabled+0xac/0xfc
[ 254.041419] [&lt;000000000025f432&gt;] __udelay+0x12a/0x148
[ 254.041433] [&lt;00000000002d64d8&gt;] cio_commit_config+0x170/0x290
[ 254.041451] [&lt;00000000002d6978&gt;] cio_disable_subchannel+0x120/0x1cc
[ 254.041468] [&lt;00000000002e32a4&gt;] ccw_device_recog_done+0x54/0x2f4
[ 254.041485] [&lt;00000000002e3638&gt;] ccw_device_sense_id_done+0x50/0x90
[ 254.041508] [&lt;00000000002e615a&gt;] snsid_callback+0xfa/0x3a8
[ 254.041515] [&lt;00000000002dd96c&gt;] ccwreq_stop+0x80/0x90
[ 254.041523] [&lt;00000000002dda8e&gt;] ccw_request_timeout+0xc2/0xd0
[ 254.041530] [&lt;00000000002e2f70&gt;] ccw_device_request_event+0x58/0x90
[ 254.041537] [&lt;00000000002e47ae&gt;] ccw_device_timeout+0x7e/0x2f0
[ 254.041555] [&lt;000000000006c02a&gt;] run_timer_softirq+0x22a/0x340
[ 254.041566] [&lt;0000000000064eb0&gt;] __do_softirq+0x138/0x2b0
[ 254.041578] [&lt;0000000000024cf6&gt;] do_softirq+0x102/0x108
[ 254.041590] [&lt;00000000000647ce&gt;] irq_exit+0xee/0x114
[ 254.041603] [&lt;0000000000457d88&gt;] do_extint+0x130/0x17c
[ 254.041617] [&lt;000000000002d41e&gt;] ext_no_vtime+0x1e/0x22
[ 254.041631] [&lt;0000000000029faa&gt;] vtime_stop_cpu+0xbe/0x114
[ 254.041646] ([&lt;0000000000029f58&gt;] vtime_stop_cpu+0x6c/0x114)
[ 254.041662] [&lt;000000000001d842&gt;] cpu_idle+0x122/0x1c0
[ 254.041679] [&lt;00000000004482c6&gt;] start_secondary+0xce/0xe0
[ 254.041696] [&lt;0000000000000000&gt;] 0x0
[ 254.041715] [&lt;0000000000000000&gt;] 0x0
[ 254.041745] INFO: lockdep is turned off.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Move FAULT_FLAG_xyz into handle_mm_fault() callers</title>
<updated>2009-06-21T20:08:22+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-04-10T16:01:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d06063cc221fdefcab86589e79ddfdb7c0e14b63'/>
<id>d06063cc221fdefcab86589e79ddfdb7c0e14b63</id>
<content type='text'>
This allows the callers to now pass down the full set of FAULT_FLAG_xyz
flags to handle_mm_fault().  All callers have been (mechanically)
converted to the new calling convention, there's almost certainly room
for architectures to clean up their code and then add FAULT_FLAG_RETRY
when that support is added.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows the callers to now pass down the full set of FAULT_FLAG_xyz
flags to handle_mm_fault().  All callers have been (mechanically)
converted to the new calling convention, there's almost certainly room
for architectures to clean up their code and then add FAULT_FLAG_RETRY
when that support is added.

Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] implement interrupt-enabling rwlocks</title>
<updated>2009-06-12T08:27:29+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-06-12T08:26:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ce58ae6f7f6bdd48c87472ff830a6d586ff076b2'/>
<id>ce58ae6f7f6bdd48c87472ff830a6d586ff076b2</id>
<content type='text'>
arch backend for f5f7eac41db827a47b2163330eecd7bb55ae9f12
"Allow rwlocks to re-enable interrupts".

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
arch backend for f5f7eac41db827a47b2163330eecd7bb55ae9f12
"Allow rwlocks to re-enable interrupts".

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] use compiler builtin versions of strlen/strcpy/strcat</title>
<updated>2009-03-26T14:24:24+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-03-26T14:24:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1edad85b16fdda43c8ab809e2779e8bf64ab8bb2'/>
<id>1edad85b16fdda43c8ab809e2779e8bf64ab8bb2</id>
<content type='text'>
Use builtin variants if gcc 4 or newer is used to compile the kernel.
Generates better code than the asm variants.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use builtin variants if gcc 4 or newer is used to compile the kernel.
Generates better code than the asm variants.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] move EXPORT_SYMBOLs to definitions</title>
<updated>2009-03-26T14:24:11+00:00</updated>
<author>
<name>Heiko Carstens</name>
<email>heiko.carstens@de.ibm.com</email>
</author>
<published>2009-03-26T14:24:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1485c5c88483d200c9c4c71ed7e8eef1a1e317a1'/>
<id>1485c5c88483d200c9c4c71ed7e8eef1a1e317a1</id>
<content type='text'>
Move all EXPORT_SYMBOLs to their corresponding definitions.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move all EXPORT_SYMBOLs to their corresponding definitions.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[S390] Dont check for pfn_valid() in uaccess_pt.c</title>
<updated>2009-03-18T12:28:13+00:00</updated>
<author>
<name>Gerald Schaefer</name>
<email>gerald.schaefer@de.ibm.com</email>
</author>
<published>2009-03-18T12:27:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2887fc5aa60803b9d6d38c79248805f08d8b0e28'/>
<id>2887fc5aa60803b9d6d38c79248805f08d8b0e28</id>
<content type='text'>
pfn_valid() actually checks for a valid struct page and not for a
valid pfn. Using xip mappings w/o struct pages, this will result in
-EFAULT returned by the (page table walk) user copy functions,
even though there is valid memory. Those user copy functions don't
need a struct page, so this patch just removes the pfn_valid() check.

Signed-off-by: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pfn_valid() actually checks for a valid struct page and not for a
valid pfn. Using xip mappings w/o struct pages, this will result in
-EFAULT returned by the (page table walk) user copy functions,
even though there is valid memory. Those user copy functions don't
need a struct page, so this patch just removes the pfn_valid() check.

Signed-off-by: Gerald Schaefer &lt;gerald.schaefer@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
