<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qemu/linux-user/hppa, branch master</title>
<subtitle>QEMU development tree</subtitle>
<id>https://git.zx2c4.com/qemu/atom/linux-user/hppa?h=master</id>
<link rel='self' href='https://git.zx2c4.com/qemu/atom/linux-user/hppa?h=master'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/'/>
<updated>2024-05-15T08:03:44Z</updated>
<entry>
<title>linux-user/hppa: Force all code addresses to PRIV_USER</title>
<updated>2024-05-15T08:03:44Z</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2024-03-27T20:54:06Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=3c13b0ffe76057e93e007bedbad3cc556146e3ed'/>
<id>urn:sha1:3c13b0ffe76057e93e007bedbad3cc556146e3ed</id>
<content type='text'>
The kernel does this along the return path to user mode.

Reviewed-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user: Move tswap_siginfo out of target code</title>
<updated>2024-03-13T11:43:52Z</updated>
<author>
<name>Gustavo Romero</name>
<email>gustavo.romero@linaro.org</email>
</author>
<published>2024-03-09T03:08:58Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=4d6d8a05a0a6d102ca94e59a43804d65309921e3'/>
<id>urn:sha1:4d6d8a05a0a6d102ca94e59a43804d65309921e3</id>
<content type='text'>
Move tswap_siginfo from target code to handle_pending_signal. This will
allow some cleanups and having the siginfo ready to be used in gdbstub.

Signed-off-by: Gustavo Romero &lt;gustavo.romero@linaro.org&gt;
Suggested-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Message-Id: &lt;20240309030901.1726211-3-gustavo.romero@linaro.org&gt;
Signed-off-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
</content>
</entry>
<entry>
<title>{linux,bsd}-user: Introduce get_task_state()</title>
<updated>2024-03-06T12:35:19Z</updated>
<author>
<name>Ilya Leoshkevich</name>
<email>iii@linux.ibm.com</email>
</author>
<published>2024-03-05T12:09:39Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=e4e5cb4a54403558defb4669a8c64cbd67713e1e'/>
<id>urn:sha1:e4e5cb4a54403558defb4669a8c64cbd67713e1e</id>
<content type='text'>
A CPU's TaskState is stored in the CPUState's void *opaque field,
accessing which is somewhat awkward due to having to use a cast.
Introduce a wrapper and use it everywhere.

Suggested-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Signed-off-by: Ilya Leoshkevich &lt;iii@linux.ibm.com&gt;
Reviewed-by: Warner Losh &lt;imp@bsdimp.com&gt;
Reviewed-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
Message-Id: &lt;20240219141628.246823-3-iii@linux.ibm.com&gt;
Signed-off-by: Alex Bennée &lt;alex.bennee@linaro.org&gt;
Message-Id: &lt;20240305121005.3528075-4-alex.bennee@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/hppa: Drop EXCP_DUMP from handled exceptions</title>
<updated>2023-11-07T02:49:34Z</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2023-10-20T20:07:21Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=54111124fb9097635ec784131ceec26798e2ba77'/>
<id>urn:sha1:54111124fb9097635ec784131ceec26798e2ba77</id>
<content type='text'>
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/hppa: Fixes for TARGET_ABI32</title>
<updated>2023-11-07T02:49:34Z</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2023-10-17T21:09:58Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=0c01f9ba2df42cef26596f5fa0ff5e741fb3c37f'/>
<id>urn:sha1:0c01f9ba2df42cef26596f5fa0ff5e741fb3c37f</id>
<content type='text'>
Avoid target_ulong and use abi_* types.

Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>target/hppa: Implement hppa_cpu_class_by_name</title>
<updated>2023-11-07T02:49:33Z</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2023-09-18T01:42:27Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=ca4c2008f53cd08dd82789384aeba87754d15152'/>
<id>urn:sha1:ca4c2008f53cd08dd82789384aeba87754d15152</id>
<content type='text'>
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/hppa: Add vdso</title>
<updated>2023-10-30T20:41:55Z</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2021-06-18T19:01:52Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=c7bc2a8fb14650264ada7012af59d87207da590f'/>
<id>urn:sha1:c7bc2a8fb14650264ada7012af59d87207da590f</id>
<content type='text'>
Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/hppa: Fix struct target_sigcontext layout</title>
<updated>2023-10-04T18:03:54Z</updated>
<author>
<name>Richard Henderson</name>
<email>richard.henderson@linaro.org</email>
</author>
<published>2023-09-30T20:45:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=33bc4fa78b06fc4e5fe22e5576811a97707e0cc6'/>
<id>urn:sha1:33bc4fa78b06fc4e5fe22e5576811a97707e0cc6</id>
<content type='text'>
Use abi_ullong not uint64_t so that the alignment of the field
and therefore the layout of the struct is correct.

Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Signed-off-by: Richard Henderson &lt;richard.henderson@linaro.org&gt;
</content>
</entry>
<entry>
<title>linux-user/hppa: lock both words of function descriptor</title>
<updated>2023-09-19T19:12:18Z</updated>
<author>
<name>Mikulas Patocka</name>
<email>mpatocka@redhat.com</email>
</author>
<published>2023-09-16T16:32:45Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=5b1270ef1477bb7f240c3bfe2cd8b0fe4721fd51'/>
<id>urn:sha1:5b1270ef1477bb7f240c3bfe2cd8b0fe4721fd51</id>
<content type='text'>
The code in setup_rt_frame reads two words at haddr, but locks only one.
This patch fixes it to lock both.

Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
Acked-by: Helge Deller &lt;deller@gmx.de&gt;
Cc: qemu-stable@nongnu.org
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
<entry>
<title>linux-user/hppa: clear the PSW 'N' bit when delivering signals</title>
<updated>2023-09-19T19:12:18Z</updated>
<author>
<name>Mikulas Patocka</name>
<email>mpatocka@redhat.com</email>
</author>
<published>2023-09-16T13:49:42Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/qemu/commit/?id=2529497cb6b298e732e8dbe5212da7925240b4f4'/>
<id>urn:sha1:2529497cb6b298e732e8dbe5212da7925240b4f4</id>
<content type='text'>
qemu-hppa may crash when delivering a signal. It can be demonstrated with
this program. Compile the program with "hppa-linux-gnu-gcc -O2 signal.c"
and run it with "qemu-hppa -one-insn-per-tb a.out". It reports that the
address of the flag is 0xb4 and it crashes when attempting to touch it.

#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;sys/time.h&gt;
#include &lt;signal.h&gt;

sig_atomic_t flag;

void sig(int n)
{
	printf("&amp;flag: %p\n", &amp;flag);
	flag = 1;
}

int main(void)
{
	struct sigaction sa;
	struct itimerval it;

	sa.sa_handler = sig;
	sigemptyset(&amp;sa.sa_mask);
	sa.sa_flags = SA_RESTART;
	if (sigaction(SIGALRM, &amp;sa, NULL)) perror("sigaction"), exit(1);

	it.it_interval.tv_sec = 0;
	it.it_interval.tv_usec = 100;
	it.it_value.tv_sec = it.it_interval.tv_sec;
	it.it_value.tv_usec = it.it_interval.tv_usec;

	if (setitimer(ITIMER_REAL, &amp;it, NULL)) perror("setitimer"), exit(1);

	while (1) {
	}
}

The reason for the crash is that the signal handling routine doesn't clear
the 'N' flag in the PSW. If the signal interrupts a thread when the 'N'
flag is set, the flag remains set at the beginning of the signal handler
and the first instruction of the signal handler is skipped.

Signed-off-by: Mikulas Patocka &lt;mpatocka@redhat.com&gt;
Acked-by: Helge Deller &lt;deller@gmx.de&gt;
Cc: qemu-stable@nongnu.org
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
</content>
</entry>
</feed>
