All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: qemu-devel@nongnu.org
Cc: Alexander Graf <agraf@suse.de>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH 02/15] target-s390x: function to adjust the length wrt page boundary
Date: Sat, 13 Jun 2015 00:45:50 +0200	[thread overview]
Message-ID: <1434149163-16639-3-git-send-email-aurelien@aurel32.net> (raw)
In-Reply-To: <1434149163-16639-1-git-send-email-aurelien@aurel32.net>

This patch adds a function to adjust the length of a transfer so that
it doesn't cross a page boundary in softmmu mode. It does nothing in
user mode.

Cc: Alexander Graf <agraf@suse.de>
Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 target-s390x/mem_helper.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/target-s390x/mem_helper.c b/target-s390x/mem_helper.c
index b4e5d44..b8d3a5f 100644
--- a/target-s390x/mem_helper.c
+++ b/target-s390x/mem_helper.c
@@ -54,6 +54,17 @@ void tlb_fill(CPUState *cs, target_ulong addr, int is_write, int mmu_idx,
 #define HELPER_LOG(x...)
 #endif
 
+/* Reduce the length so that addr + len doesn't cross a page boundary.  */
+static inline uint64_t adj_len_to_page(uint64_t len, uint64_t addr)
+{
+#ifndef CONFIG_USER_ONLY
+    if ((addr & ~TARGET_PAGE_MASK) + len - 1 >= TARGET_PAGE_SIZE) {
+        return -addr & ~TARGET_PAGE_MASK;
+    }
+#endif
+    return len;
+}
+
 #ifndef CONFIG_USER_ONLY
 static void mvc_fast_memset(CPUS390XState *env, uint32_t l, uint64_t dest,
                             uint8_t byte)
-- 
2.1.4

  parent reply	other threads:[~2015-06-12 22:46 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-12 22:45 [Qemu-devel] [PATCH 00/15] target-s390x: add Program-Event Recording feature Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 01/15] softmmu: provide tlb_vaddr_to_host function for user mode Aurelien Jarno
2015-06-12 22:45 ` Aurelien Jarno [this message]
2015-06-12 22:45 ` [Qemu-devel] [PATCH 03/15] target-s390x: mvc_fast_memset: access memory through softmmu Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 04/15] target-s390x: mvc_fast_memmove: " Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 05/15] target-s390x: add PER related constants Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 06/15] target-s390x: add get_per_atmid function Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 07/15] target-s390x: add get_per_in_range function Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 08/15] target-s390x: basic PER event handling Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 09/15] target-s390x: PER successful-branching event support Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 10/15] target-s390x: PER instruction-fetch " Aurelien Jarno
2015-06-12 22:45 ` [Qemu-devel] [PATCH 11/15] translate-all: fix watchpoints if retranslation not possible Aurelien Jarno
2015-06-12 22:46 ` [Qemu-devel] [PATCH 12/15] target-s390x: PER storage-alteration event support Aurelien Jarno
2015-06-12 22:46 ` [Qemu-devel] [PATCH 13/15] target-s390x: PER store-using-real-address " Aurelien Jarno
2015-06-12 22:46 ` [Qemu-devel] [PATCH 14/15] target-s390x: PER instruction-fetch nullification " Aurelien Jarno
2015-06-12 22:46 ` [Qemu-devel] [PATCH 15/15] target-s390x: PER: add Breaking-Event-Address register Aurelien Jarno
2015-06-16 16:44   ` Alexander Graf
2015-06-16 17:44     ` Aurelien Jarno
2015-06-16 17:50       ` Alexander Graf
2015-06-16 17:55 ` [Qemu-devel] [PATCH 00/15] target-s390x: add Program-Event Recording feature Alexander Graf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1434149163-16639-3-git-send-email-aurelien@aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=agraf@suse.de \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.