<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/sparc64/kernel/entry.S, branch linux-2.6.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2006-11-06T00:51:03Z</updated>
<entry>
<title>[SPARC]: Fix robust futex syscalls and wire up migrate_pages.</title>
<updated>2006-11-06T00:51:03Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-11-06T00:51:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=59359ff87700f5e742c96a55da9cf0819984c128'/>
<id>urn:sha1:59359ff87700f5e742c96a55da9cf0819984c128</id>
<content type='text'>
When I added the entries for the robust futex syscall entries, I
forgot to bump NR_SYSCALLS.  The current situation is error-prone
because NR_SYSCALLS lives in entry.S where the system call limit
checks are enforced.  Move the definition to asm/unistd.h in order to
make this mistake much more difficult to make.

And wire up sys_migrate_pages since the powerpc folks implemented the
compat wrapper for us.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Remove obsolete #include &lt;linux/config.h&gt;</title>
<updated>2006-06-30T17:25:36Z</updated>
<author>
<name>Jörn Engel</name>
</author>
<published>2006-06-30T17:25:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ab3d5624e172c553004ecc862bfeac16d9d68b7'/>
<id>urn:sha1:6ab3d5624e172c553004ecc862bfeac16d9d68b7</id>
<content type='text'>
Signed-off-by: Jörn Engel &lt;joern@wohnheim.fh-wedel.de&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Move over to GENERIC_HARDIRQS.</title>
<updated>2006-06-20T08:23:32Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-06-20T08:23:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e18e2a00efc8352c131eb8d5a460149fb5776f1c'/>
<id>urn:sha1:e18e2a00efc8352c131eb8d5a460149fb5776f1c</id>
<content type='text'>
This is the long overdue conversion of sparc64 over to
the generic IRQ layer.

The kernel image is slightly larger, but the BSS is ~60K
smaller due to the reduced size of struct ino_bucket.

A lot of IRQ implementation details, including ino_bucket,
were moved out of asm-sparc64/irq.h and are now private to
arch/sparc64/kernel/irq.c, and most of the code in irq.c
totally disappeared.

One thing that's different at the moment is IRQ distribution,
we do it at enable_irq() time.  If the cpu mask is ALL then
we round-robin using a global rotating cpu counter, else
we pick the first cpu in the mask to support single cpu
targetting.  This is similar to what powerpc's XICS IRQ
support code does.

This works fine on my UP SB1000, and the SMP build goes
fine and runs on that machine, but lots of testing on
different setups is needed.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Send all device interrupts via one PIL.</title>
<updated>2006-06-20T08:20:00Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-06-20T08:20:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd0504c3217d6d1bc8f33f53fb536299cae8feda'/>
<id>urn:sha1:fd0504c3217d6d1bc8f33f53fb536299cae8feda</id>
<content type='text'>
This is the first in a series of cleanups that will hopefully
allow a seamless attempt at using the generic IRQ handling
infrastructure in the Linux kernel.

Define PIL_DEVICE_IRQ and vector all device interrupts through
there.

Get rid of the ugly pil0_dummy_{bucket,desc}, instead vector
the timer interrupt directly to a specific handler since the
timer interrupt is the only event that will be signaled on
PIL 14.

The irq_worklist is now in the per-cpu trap_block[].

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Fix bugs in SUN4V cpu mondo dispatch.</title>
<updated>2006-03-20T09:14:09Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-02-28T23:10:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b830ab665ad96c6b20d51a89b35cbc09ab5a2c29'/>
<id>urn:sha1:b830ab665ad96c6b20d51a89b35cbc09ab5a2c29</id>
<content type='text'>
There were several bugs in the SUN4V cpu mondo dispatch code.

In fact, if we ever got a EWOULDBLOCK or other error from
the hypervisor call, we'd potentially send a cpu mondo multiple
times to the same cpu and even worse we could loop until the
timeout resending the same mondo over and over to such cpus.

So let's bulletproof this thing as follows:

1) Implement cpu_mondo_send() and cpu_state() hypervisor calls
   in arch/sparc64/kernel/entry.S, add prototypes to asm/hypervisor.h

2) Don't build and update the cpulist using inline functions, this
   was causing the cpu mask to not get updated in the caller.

3) Disable interrupts during the entire mondo send, otherwise our
   cpu list and/or mondo block could get overwritten if we take
   an interrupt and do a cpu mondo send on the current cpu.

4) Check for all possible error return types from the cpu_mondo_send()
   hypervisor call.  In particular:

   HV_EOK) Our work is done, all cpus have received the mondo.
   HV_CPUERROR) One or more of the cpus in the cpu list we passed
                to the hypervisor are in error state.  Use cpu_state()
                calls over the entries in the cpu list to see which
		ones.  Record them in "error_mask" and report this
		after we are done sending the mondo to cpus which are
		not in error state.
   HV_EWOULDBLOCK) We need to keep trying.

   Any other error we consider fatal, we report the event and exit
   immediately.

5) We only timeout if forward progress is not made.  Forward progress
   is defined as having at least one cpu get the mondo successfully
   in a given cpu_mondo_send() call.  Otherwise we bump a counter
   and delay a little.  If the counter hits a limit, we signal an
   error and report the event.

Also, smp_call_function_mask() error handling reports the number
of cpus incorrectly.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Add sun4v_cpu_yield().</title>
<updated>2006-03-20T09:13:52Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-02-21T23:42:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f5374c91f0dd1d92408ed44c066c32bcce5ce69'/>
<id>urn:sha1:6f5374c91f0dd1d92408ed44c066c32bcce5ce69</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Fix uniprocessor IRQ targetting on SUN4V.</title>
<updated>2006-03-20T09:13:24Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-02-17T16:38:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ebd8c56c5ae154e2c6cfb7453a76a4e7265b2377'/>
<id>urn:sha1:ebd8c56c5ae154e2c6cfb7453a76a4e7265b2377</id>
<content type='text'>
We need to use the real hardware processor ID when
targetting interrupts, not the "define to 0" thing
the uniprocessor build gives us.

Also, fill in the Node-ID and Agent-ID fields properly
on sun4u/Safari.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Add sun4v_cpu_qconf() hypervisor call.</title>
<updated>2006-03-20T09:13:16Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-02-16T22:26:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=94f8762db9a80ed34252e9fe5fa38be87bb7826b'/>
<id>urn:sha1:94f8762db9a80ed34252e9fe5fa38be87bb7826b</id>
<content type='text'>
Call it from register_one_mondo().

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: do_fptrap needs to load the thread reg into %g6.</title>
<updated>2006-03-20T09:13:14Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-02-16T10:18:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8e42550c683b2ad4869fc4fa438204841fd9b7cc'/>
<id>urn:sha1:8e42550c683b2ad4869fc4fa438204841fd9b7cc</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Implement rest of generic interrupt hypervisor calls.</title>
<updated>2006-03-20T09:12:37Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-02-13T08:23:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6c0f402f6cc62314ef83b975f3430350dcb6055f'/>
<id>urn:sha1:6c0f402f6cc62314ef83b975f3430350dcb6055f</id>
<content type='text'>
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
