<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/s390/lib, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2009-03-23T21:55:24Z</updated>
<entry>
<title>S390: __div64_31 broken for CONFIG_MARCH_G5</title>
<updated>2009-03-23T21:55:24Z</updated>
<author>
<name>Martin Schwidefsky</name>
</author>
<published>2009-03-18T12:27:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cd0af9303b6953350278cbc650ad8173e8c0dc58'/>
<id>urn:sha1:cd0af9303b6953350278cbc650ad8173e8c0dc58</id>
<content type='text'>
commit 4fa81ed27781a12f6303b9263056635ae74e3e21 upstream.

The implementation of __div64_31 for G5 machines is broken. The comments
in __div64_31 are correct, only the code does not do what the comments
say. The part "If the remainder has overflown subtract base and increase
the quotient" is only partially realized, the base is subtracted correctly
but the quotient is only increased if the dividend had the last bit set.
Using the correct instruction fixes the problem.

Reported-by: Frans Pop &lt;elendil@planet.nl&gt;
Tested-by: Frans Pop &lt;elendil@planet.nl&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>[S390] Move private simple udelay function to arch/s390/lib/delay.c.</title>
<updated>2008-10-10T19:33:58Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-10-10T19:33:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a0d0e65379256b4da2c9092e197a2c761f51c01'/>
<id>urn:sha1:5a0d0e65379256b4da2c9092e197a2c761f51c01</id>
<content type='text'>
Move cio's private simple udelay function to lib/delay.c and turn it
into something much more readable. So we have all implementations
at one place.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] nohz: Fix __udelay.</title>
<updated>2008-10-03T19:55:54Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-10-03T19:54:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3d238c7744d08c36a114a59cb537d4c0c6c9a86'/>
<id>urn:sha1:d3d238c7744d08c36a114a59cb537d4c0c6c9a86</id>
<content type='text'>
This fixes a regression that came with 934b2857cc576ae53c92a66e63fce7ddcfa74691
("[S390] nohz/sclp: disable timer on synchronous waits.").
If udelay() gets called from a disabled context it sets the clock comparator
to a value where it expects the next interrupt. When the interrupt happens
the clock comparator gets not reset and therefore the interrupt condition
doesn't get cleared. The result is an endless timer interrupt loop.

In addition this patch fixes also the following:

rcutorture reveals that our __udelay implementation is still buggy,
since it might schedule tasklets, but prevents their execution:

NOHZ: local_softirq_pending 42
NOHZ: local_softirq_pending 02
NOHZ: local_softirq_pending 142
NOHZ: local_softirq_pending 02

To fix this we make sure that only the clock comparator interrupt
is enabled when the enabled wait psw is loaded.
Also no code gets called anymore which might schedule tasklets.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] nohz/sclp: disable timer on synchronous waits.</title>
<updated>2008-08-01T14:39:30Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-08-01T14:39:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=934b2857cc576ae53c92a66e63fce7ddcfa74691'/>
<id>urn:sha1:934b2857cc576ae53c92a66e63fce7ddcfa74691</id>
<content type='text'>
sclp_sync_wait wait synchronously for an sclp interrupt and disables
timer interrupts. However on the irq enter paths there is an extra
check if a timer interrupt would be due and calls the timer callback.
This would schedule softirqs in the wrong context.
So introduce local_tick_enable/disable which prevents this.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] uaccess_mvcos: #ifdef config dependent code.</title>
<updated>2008-04-30T11:38:46Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-04-30T11:38:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ccf183e469be89e065ed389da9d3f50bd2faa215'/>
<id>urn:sha1:ccf183e469be89e065ed389da9d3f50bd2faa215</id>
<content type='text'>
arch/s390/lib/uaccess_mvcos.c:166:
 warning: 'strnlen_user_mvcos' defined but not used
arch/s390/lib/uaccess_mvcos.c:186:
 warning: 'strncpy_from_user_mvcos' defined but not used

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] remove -traditional</title>
<updated>2008-04-30T11:38:44Z</updated>
<author>
<name>Mathieu Desnoyers</name>
</author>
<published>2008-04-30T11:38:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=47494f6a84cdae2740b62e1d86a1860df85d9bbb'/>
<id>urn:sha1:47494f6a84cdae2740b62e1d86a1860df85d9bbb</id>
<content type='text'>
Signed-off-by: Mathieu Desnoyers &lt;mathieu.desnoyers@polymtl.ca&gt;
CC: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] uaccess: Always access the correct address space.</title>
<updated>2008-04-17T05:47:06Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-04-17T05:46:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3f12ebce6a004c8e9bf639801842f67e578ee7c6'/>
<id>urn:sha1:3f12ebce6a004c8e9bf639801842f67e578ee7c6</id>
<content type='text'>
The current uaccess page table walk code assumes at a few places that
any access is a user space access. This is not correct if somebody
has issued a set_fs(KERNEL_DS) in advance.
Add code which checks which address space we are in and with this make
sure we access the correct address space. This way we get also rid of
the dirty
if (!currrent-mm)
	return -EFAULT;
hack in futex_atomic_cmpxchg_pt.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] Convert s390 to GENERIC_CLOCKEVENTS.</title>
<updated>2008-04-17T05:47:05Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-04-17T05:46:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a62b192196af9a798e2f2f4c6a1324e7edf2f4b'/>
<id>urn:sha1:5a62b192196af9a798e2f2f4c6a1324e7edf2f4b</id>
<content type='text'>
This way we get rid of s390's NO_IDLE_HZ and use the generic dynticks
variant instead. In addition we get high resolution timers for free.

Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] futex: let futex_atomic_cmpxchg_pt survive early functional tests.</title>
<updated>2008-03-20T16:33:46Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-03-20T16:33:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=504e75d0ed3389747e40a4aaa4b1f4e569576665'/>
<id>urn:sha1:504e75d0ed3389747e40a4aaa4b1f4e569576665</id>
<content type='text'>
a0c1e9073ef7428a14309cba010633a6cd6719ea "futex: runtime enable pi and
robust functionality" introduces a test wether futex in atomic stuff
works or not.
It does that by writing to address 0 of the kernel address space. This
will crash on older machines where addressing mode switching is enabled
but where the mvcos instruction is not available. Page table walking is
done by hand and therefore the code tries to access current-&gt;mm which
is NULL.
Therefore add an extra check, so we survive the early test.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>[S390] Fix futex_atomic_cmpxchg_std inline assembly.</title>
<updated>2008-02-19T14:29:35Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2008-02-19T14:29:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d5b02b3ff1d9a2e1074f559c84ed378cfa6fc3c0'/>
<id>urn:sha1:d5b02b3ff1d9a2e1074f559c84ed378cfa6fc3c0</id>
<content type='text'>
Add missing exception table entry so that the kernel can handle
proctection exceptions as well on the cs instruction. Currently only
specification exceptions are handled correctly.
The missing entry allows user space to crash the kernel.

Cc: stable &lt;stable@kernel.org&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
</feed>
