diff --git a/avoid-llseek.patch b/avoid-llseek.patch
new file mode 100644
index 0000000..18c4e8b
--- /dev/null
+++ b/avoid-llseek.patch
@@ -0,0 +1,34 @@
+commit d35b261c7a94be9e2fcad5484343544d58ff99be
+Author: Richard Henderson <rth@twiddle.net>
+Date:   Fri Jun 4 12:14:10 2010 -0700
+
+    s390x: Avoid _llseek.
+    
+    There's no _llseek on s390x either.  Replace the existing
+    test for __x86_64__ with a functional test for __NR_llseek.
+    
+    Signed-off-by: Richard Henderson <rth@twiddle.net>
+    Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
+
+diff --git a/linux-user/syscall.c b/linux-user/syscall.c
+index 8222cb9..e94f1ee 100644
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -208,7 +208,7 @@ _syscall3(int, sys_getdents, uint, fd, struct linux_dirent *, dirp, uint, count)
+ _syscall3(int, sys_getdents64, uint, fd, struct linux_dirent64 *, dirp, uint, count);
+ #endif
+ _syscall2(int, sys_getpriority, int, which, int, who);
+-#if defined(TARGET_NR__llseek) && !defined (__x86_64__)
++#if defined(TARGET_NR__llseek) && defined(__NR_llseek)
+ _syscall5(int, _llseek,  uint,  fd, ulong, hi, ulong, lo,
+           loff_t *, res, uint, wh);
+ #endif
+@@ -5933,7 +5933,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
+ #ifdef TARGET_NR__llseek /* Not on alpha */
+     case TARGET_NR__llseek:
+         {
+-#if defined (__x86_64__)
++#if !defined(__NR_llseek)
+             ret = get_errno(lseek(arg1, ((uint64_t )arg2 << 32) | arg3, arg5));
+             if (put_user_s64(ret, arg4))
+                 goto efault;
diff --git a/qemu.spec b/qemu.spec
index 88973a7..44b26b7 100644
--- a/qemu.spec
+++ b/qemu.spec
@@ -1,7 +1,7 @@
 Summary: QEMU is a FAST! processor emulator
 Name: qemu
 Version: 0.12.3
-Release: 7%{?dist}
+Release: 8%{?dist}
 # Epoch because we pushed a qemu-1.0 package
 Epoch: 2
 License: GPLv2+ and LGPLv2+ and BSD
@@ -12,6 +12,11 @@ URL: http://www.qemu.org/
 # architecture support (--with x86only):
 %define with_x86only  %{?_with_x86only:     1} %{?!_with_x86only:     0}
 
+# OOM killer breaks builds with parallel make on s390(x)
+%ifarch s390 s390x
+%define _smp_mflags %{nil}
+%endif
+
 Source0: http://downloads.sourceforge.net/sourceforge/kvm/qemu-kvm-%{version}.tar.gz
 Source1: qemu.init
 
@@ -90,6 +95,7 @@ Patch53: 0053-net-remove-NICInfo.bootable-field.patch
 Patch54: 0054-net-remove-broken-net_set_boot_mask-boot-device-vali.patch
 Patch55: 0055-boot-remove-unused-boot_devices_bitmap-variable.patch
 Patch56: block-vvfat.c-fix-warnings-with-_FORTIFY_SOURCE.patch
+Patch57: avoid-llseek.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel
@@ -337,6 +343,7 @@ such as kvmtrace and kvm_stat.
 %patch54 -p1
 %patch55 -p1
 %patch56 -p1
+%patch57 -p1
 
 %build
 # By default we build everything, but allow x86 to build a minimal version
@@ -640,6 +647,10 @@ fi
 %{_mandir}/man1/qemu-img.1*
 
 %changelog
+* Tue Jul 20 2010 Dan HorĂ¡k <dan[at]danny.cz> - 2:0.12.3-8
+- Add avoid-llseek patch from upstream needed for building on s390(x)
+- Don't use parallel make on s390(x)
+
 * Tue Jun 22 2010 Amit Shah <amit.shah@redhat.com> - 2:0.12.3-7
 - Add vvfat hardening patch from upstream (#605202)