SHA256
1
0
forked from pool/qemu
qemu/0025-linux-user-Fake-proc-cpuinfo.patch.patch
Andreas Färber 2f3efc407e Accepting request 143323 from home:a_faerber:branches:Virtualization
Update to v1.3.0-rc1 plus an OOM workaround. Since SPICE v0.12.0 doesn't build on 11.4 due to a missing build dependency, enable SPICE only from 12.1 on.

OBS-URL: https://build.opensuse.org/request/show/143323
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=119
2012-11-27 20:42:06 +00:00

57 lines
1.8 KiB
Diff

From 83ca3d1bae2e358de6b61a969fbbfc15f8453593 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 23 Jul 2012 10:24:14 +0200
Subject: [PATCH] linux-user: Fake /proc/cpuinfo
Fedora 17 for ARM reads /proc/cpuinfo and fails if it doesn't contain
ARM related contents. This patch implements a quick hack to expose real
/proc/cpuinfo data taken from a real world machine.
The real fix would be to generate at least the flags automatically based
on the selected CPU. Please do not submit this patch upstream until this
has happened.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
linux-user/syscall.c | 20 ++++++++++++++++++++
1 Datei geändert, 20 Zeilen hinzugefügt(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5295afb..034cd5a 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5083,6 +5083,25 @@ static int open_self_stat(void *cpu_env, int fd)
return 0;
}
+static int open_cpuinfo(void *cpu_env, int fd)
+{
+ dprintf(fd,
+"Processor : ARMv7 Processor rev 5 (v7l)\n"
+"BogoMIPS : 799.53\n"
+"Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3\n"
+"CPU implementer : 0x41\n"
+"CPU architecture: 7\n"
+"CPU variant : 0x2\n"
+"CPU part : 0xc08\n"
+"CPU revision : 5\n"
+"\n"
+"Hardware : Genesi Efika MX (Smarttop)\n"
+"Revision : 51030\n"
+"Serial : 0000000000000000\n");
+
+ return 0;
+}
+
static int open_self_auxv(void *cpu_env, int fd)
{
TaskState *ts = ((CPUArchState *)cpu_env)->opaque;
@@ -5123,6 +5142,7 @@ static int do_open(void *cpu_env, const char *pathname, int flags, mode_t mode)
{ "/proc/self/maps", open_self_maps },
{ "/proc/self/stat", open_self_stat },
{ "/proc/self/auxv", open_self_auxv },
+ { "/proc/cpuinfo", open_cpuinfo },
{ NULL, NULL }
};