mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
memory: pass MemTxAttrs to memory_access_is_direct()
We want to pass another flag that will be stored in MemTxAttrs. So pass MemTxAttrs directly. Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: David Hildenbrand <david@redhat.com> Link: https://lore.kernel.org/r/20250210084648.33798-6-david@redhat.com [peterx: Fix MacOS builds] Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
d4337aa8e2
commit
d732b5a4ac
6 changed files with 22 additions and 20 deletions
|
@ -34,7 +34,7 @@ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, false, attrs);
|
||||
if (l < 4 || !memory_access_is_direct(mr, false)) {
|
||||
if (l < 4 || !memory_access_is_direct(mr, false, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
|
||||
/* I/O case */
|
||||
|
@ -103,7 +103,7 @@ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, false, attrs);
|
||||
if (l < 8 || !memory_access_is_direct(mr, false)) {
|
||||
if (l < 8 || !memory_access_is_direct(mr, false, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
|
||||
/* I/O case */
|
||||
|
@ -170,7 +170,7 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, false, attrs);
|
||||
if (!memory_access_is_direct(mr, false)) {
|
||||
if (!memory_access_is_direct(mr, false, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
|
||||
/* I/O case */
|
||||
|
@ -207,7 +207,7 @@ static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, false, attrs);
|
||||
if (l < 2 || !memory_access_is_direct(mr, false)) {
|
||||
if (l < 2 || !memory_access_is_direct(mr, false, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
|
||||
/* I/O case */
|
||||
|
@ -277,7 +277,7 @@ void glue(address_space_stl_notdirty, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, true, attrs);
|
||||
if (l < 4 || !memory_access_is_direct(mr, true)) {
|
||||
if (l < 4 || !memory_access_is_direct(mr, true, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
|
||||
r = memory_region_dispatch_write(mr, addr1, val, MO_32, attrs);
|
||||
|
@ -314,7 +314,7 @@ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, true, attrs);
|
||||
if (l < 4 || !memory_access_is_direct(mr, true)) {
|
||||
if (l < 4 || !memory_access_is_direct(mr, true, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
r = memory_region_dispatch_write(mr, addr1, val,
|
||||
MO_32 | devend_memop(endian), attrs);
|
||||
|
@ -377,7 +377,7 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, true, attrs);
|
||||
if (!memory_access_is_direct(mr, true)) {
|
||||
if (!memory_access_is_direct(mr, true, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
r = memory_region_dispatch_write(mr, addr1, val, MO_8, attrs);
|
||||
} else {
|
||||
|
@ -410,7 +410,7 @@ static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, true, attrs);
|
||||
if (l < 2 || !memory_access_is_direct(mr, true)) {
|
||||
if (l < 2 || !memory_access_is_direct(mr, true, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
r = memory_region_dispatch_write(mr, addr1, val,
|
||||
MO_16 | devend_memop(endian), attrs);
|
||||
|
@ -474,7 +474,7 @@ static void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL,
|
|||
|
||||
RCU_READ_LOCK();
|
||||
mr = TRANSLATE(addr, &addr1, &l, true, attrs);
|
||||
if (l < 8 || !memory_access_is_direct(mr, true)) {
|
||||
if (l < 8 || !memory_access_is_direct(mr, true, attrs)) {
|
||||
release_lock |= prepare_mmio_access(mr);
|
||||
r = memory_region_dispatch_write(mr, addr1, val,
|
||||
MO_64 | devend_memop(endian), attrs);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue