<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/include/asm-sparc64/ptrace.h, branch master</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2008-07-27T21:00:59+00:00</updated>
<entry>
<title>sparc, sparc64: use arch/sparc/include</title>
<updated>2008-07-27T21:00:59+00:00</updated>
<author>
<name>Sam Ravnborg</name>
<email>sam@ravnborg.org</email>
</author>
<published>2008-07-27T21:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a439fe51a1f8eb087c22dd24d69cebae4a3addac'/>
<id>urn:sha1:a439fe51a1f8eb087c22dd24d69cebae4a3addac</id>
<content type='text'>
The majority of this patch was created by the following script:

***
ASM=arch/sparc/include/asm
mkdir -p $ASM
git mv include/asm-sparc64/ftrace.h $ASM
git rm include/asm-sparc64/*
git mv include/asm-sparc/* $ASM
sed -ie 's/asm-sparc64/asm/g' $ASM/*
sed -ie 's/asm-sparc/asm/g' $ASM/*
***

The rest was an update of the top-level Makefile to use sparc
for header files when sparc64 is being build.
And a small fixlet to pick up the correct unistd.h from
sparc64 code.

Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
</content>
</entry>
<entry>
<title>sparc: join the remaining header files</title>
<updated>2008-07-18T04:55:51+00:00</updated>
<author>
<name>Sam Ravnborg</name>
<email>sam@ravnborg.org</email>
</author>
<published>2008-07-18T04:55:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f5e706ad886b6a5eb59637830110b09ccebf01c5'/>
<id>urn:sha1:f5e706ad886b6a5eb59637830110b09ccebf01c5</id>
<content type='text'>
With this commit all sparc64 header files are moved to asm-sparc.
The remaining files (71 files) were too different to be trivially
merged so divide them up in a _32.h and a _64.h file which
are both included from the file with no bit size.

The following script were used:
cd include
FILES=`wc -l asm-sparc64/*h | grep -v '^     1' | cut -b 20-`

for FILE in ${FILES}; do
  echo $FILE:
  BASE=`echo $FILE | cut -d '.' -f 1`
  FN32=${BASE}_32.h
  FN64=${BASE}_64.h
  GUARD=___ASM_SPARC_`echo $BASE | tr '-' '_' | tr [:lower:] [:upper:]`_H
  git mv asm-sparc/$FILE asm-sparc/$FN32
  git mv asm-sparc64/$FILE asm-sparc/$FN64
  echo git mv done
  printf "#ifndef %s\n" $GUARD                             &gt;   asm-sparc/$FILE
  printf "#define %s\n" $GUARD                             &gt;&gt;  asm-sparc/$FILE
  printf "#if defined(__sparc__) &amp;&amp; defined(__arch64__)\n" &gt;&gt;  asm-sparc/$FILE
  printf "#include &lt;asm-sparc/%s&gt;\n" $FN64                 &gt;&gt;  asm-sparc/$FILE
  printf "#else\n"                                         &gt;&gt;  asm-sparc/$FILE
  printf "#include &lt;asm-sparc/%s&gt;\n" $FN32                 &gt;&gt;  asm-sparc/$FILE
  printf "#endif\n"                                        &gt;&gt;  asm-sparc/$FILE
  printf "#endif\n"                                        &gt;&gt;  asm-sparc/$FILE
  git add asm-sparc/$FILE
  echo new file done
  printf "#include &lt;asm-sparc/%s&gt;\n" $FILE                 &gt;  asm-sparc64/$FILE
  git add asm-sparc64/$FILE
  echo sparc64 file done
done

The guard contains three '_' to avoid conflict with existing guards.
In additing the two Kbuild files are emptied to avoid breaking
headers_* targets.
We will reintroduce the exported header files when the necessary
kbuild changes are merged.

Signed-off-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sparc64: global_reg_snapshot is not for userspace</title>
<updated>2008-05-26T05:50:16+00:00</updated>
<author>
<name>Adrian Bunk</name>
<email>bunk@kernel.org</email>
</author>
<published>2008-05-26T05:50:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=551dec47bb5964478db594385a896eb0d4ab2b0a'/>
<id>urn:sha1:551dec47bb5964478db594385a896eb0d4ab2b0a</id>
<content type='text'>
global_reg_snapshot shouldn't be visible in our userspace headers.

Signed-off-by: Adrian Bunk &lt;bunk@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sparc64: Add global register dumping facility.</title>
<updated>2008-05-20T07:33:45+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-05-20T06:46:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=93dae5b70e7c1c8e927d22e1c20a941ca376906a'/>
<id>urn:sha1:93dae5b70e7c1c8e927d22e1c20a941ca376906a</id>
<content type='text'>
When a cpu really is stuck in the kernel, it can be often
impossible to figure out which cpu is stuck where.  The
worst case is when the stuck cpu has interrupts disabled.

Therefore, implement a global cpu state capture that uses
SMP message interrupts which are not disabled by the
normal IRQ enable/disable APIs of the kernel.

As long as we can get a sysrq 'y' to the kernel, we can
get a dump.  Even if the console interrupt cpu is wedged,
we can trigger it from userspace using /proc/sysrq-trigger

The output is made compact so that this facility is more
useful on high cpu count systems, which is where this
facility will likely find itself the most useful :)

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sparc: Fix debugger syscall restart interactions.</title>
<updated>2008-05-11T09:07:19+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-05-11T09:07:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=28e6103665301ce60634e8a77f0b657c6cc099de'/>
<id>urn:sha1:28e6103665301ce60634e8a77f0b657c6cc099de</id>
<content type='text'>
So, forever, we've had this ptrace_signal_deliver implementation
which tries to handle all of the nasties that can occur when the
debugger looks at a process about to take a signal.  It's meant
to address all of these issues inside of the kernel so that the
debugger need not be mindful of such things.

Problem is, this doesn't work.

The idea was that we should do the syscall restart business first, so
that the debugger captures that state.  Otherwise, if the debugger for
example saves the child's state, makes the child execute something
else, then restores the saved state, we won't handle the syscall
restart properly because we lose the "we're in a syscall" state.

The code here worked for most cases, but if the debugger actually
passes the signal through to the child unaltered, it's possible that
we would do a syscall restart when we shouldn't have.

In particular this breaks the case of debugging a process under a gdb
which is being debugged by yet another gdb.  gdb uses sigsuspend
to wait for SIGCHLD of the inferior, but if gdb itself is being
debugged by a top-level gdb we get a ptrace_stop().  The top-level gdb
does a PTRACE_CONT with SIGCHLD to let the inferior gdb see the
signal.  But ptrace_signal_deliver() assumed the debugger would cancel
out the signal and therefore did a syscall restart, because the return
error was ERESTARTNOHAND.

Fix this by simply making ptrace_signal_deliver() a nop, and providing
a way for the debugger to control system call restarting properly:

1) Report a "in syscall" software bit in regs-&gt;{tstate,psr}.
   It is set early on in trap entry to a system call and is fully
   visible to the debugger via ptrace() and regsets.

2) Test this bit right before doing a syscall restart.  We have
   to do a final recheck right after get_signal_to_deliver() in
   case the debugger cleared the bit during ptrace_stop().

3) Clear the bit in trap return so we don't accidently try to set
   that bit in the real register.

As a result we also get a ptrace_{is,clear}_syscall() for sparc32 just
like sparc64 has.

M68K has this same exact bug, and is now the only other user of the
ptrace_signal_deliver hook.  It needs to be fixed in the same exact
way as sparc.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sparc: Fix ptrace() detach.</title>
<updated>2008-05-11T08:59:05+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-05-11T04:11:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=986bef854fab44012df678a5b51817d5274d3ca1'/>
<id>urn:sha1:986bef854fab44012df678a5b51817d5274d3ca1</id>
<content type='text'>
Forever we had a PTRACE_SUNOS_DETACH which was unconditionally
recognized, regardless of the personality of the process.

Unfortunately, this value is what ended up in the GLIBC sys/ptrace.h
header file on sparc as PTRACE_DETACH and PT_DETACH.

So continue to recognize this old value.  Luckily, it doesn't conflict
with anything we actually care about.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sparc64: Clean up handling of pt_regs trap type encoding.</title>
<updated>2008-04-27T21:52:51+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-04-27T21:52:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=90888816ba1bf1c4eff1e7e4220c1afc802f0fd3'/>
<id>urn:sha1:90888816ba1bf1c4eff1e7e4220c1afc802f0fd3</id>
<content type='text'>
If we use this from more than one place, it's better to
have helpers instead of twiddling magic constants all
over.

Add pt_regs_trap_type(), pt_regs_clear_trap_type(), and
pt_regs_is_syscall().

Use them in do_signal().

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Store magic cookie and trap type in pt_regs.</title>
<updated>2008-04-24T06:32:20+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-04-24T05:52:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8243e40acb087fcd9e7609333f0b0551391f49fc'/>
<id>urn:sha1:8243e40acb087fcd9e7609333f0b0551391f49fc</id>
<content type='text'>
This sets us up for several simplifications and facilities:

1) The magic cookie lets us identify trap frames more
   accurately in stack backtraces.

2) The trap type lets us simplify all of the "are we in
   a syscall" state management and checks.

3) We can now see if a task off the cpu is sleeping in
   a system call or not.  In fact, we can see what
   trap it is sleeping in whatever the type.  The utrace
   guys will use this.

Based upon some discussions with Roland McGrath.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Fix sparse warnings wrt. __show_regs().</title>
<updated>2008-02-20T04:48:58+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-02-20T04:48:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3ac1da338bea2f50c24f3c0cc54881e2b432e379'/>
<id>urn:sha1:3ac1da338bea2f50c24f3c0cc54881e2b432e379</id>
<content type='text'>
arch/sparc64/kernel/process.c:219:6: warning: symbol '__show_regs' was not declared. Should it be static?

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[SPARC64]: Add regs_return_value().</title>
<updated>2008-02-19T08:31:22+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2008-02-19T08:31:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f6d091e05199e67ba79c3ea29faa5c3b51d5daf4'/>
<id>urn:sha1:f6d091e05199e67ba79c3ea29faa5c3b51d5daf4</id>
<content type='text'>
Needed for kretprobes.

Noticed by Ananth N Mavinakayanahalli.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
