Skip to content

Commit

Permalink
physmem: Reduce local variable scope in flatview_read/write_continue()
Browse files Browse the repository at this point in the history
Precursor to factoring out the inner loops for reuse.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Link: https://lore.kernel.org/r/20240307153710.30907-3-Jonathan.Cameron@huawei.com
Signed-off-by: Peter Xu <peterx@redhat.com>
  • Loading branch information
jic23 authored and xzpeter committed Mar 11, 2024
1 parent 4c7c856 commit bcfd8ba
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions system/physmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -2688,18 +2688,17 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
hwaddr len, hwaddr mr_addr,
hwaddr l, MemoryRegion *mr)
{
uint8_t *ram_ptr;
uint64_t val;
MemTxResult result = MEMTX_OK;
bool release_lock = false;
const uint8_t *buf = ptr;

for (;;) {
if (!flatview_access_allowed(mr, attrs, mr_addr, l)) {
result |= MEMTX_ACCESS_ERROR;
/* Keep going. */
} else if (!memory_access_is_direct(mr, true)) {
release_lock |= prepare_mmio_access(mr);
uint64_t val;
bool release_lock = prepare_mmio_access(mr);

l = memory_access_size(mr, l, mr_addr);
/* XXX: could force current_cpu to NULL to avoid
potential bugs */
Expand All @@ -2717,18 +2716,21 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
val = ldn_he_p(buf, l);
result |= memory_region_dispatch_write(mr, mr_addr, val,
size_memop(l), attrs);
if (release_lock) {
bql_unlock();
}


} else {
/* RAM case */
ram_ptr = qemu_ram_ptr_length(mr->ram_block, mr_addr, &l, false);

uint8_t *ram_ptr = qemu_ram_ptr_length(mr->ram_block, mr_addr, &l,
false);

memmove(ram_ptr, buf, l);
invalidate_and_set_dirty(mr, mr_addr, l);
}

if (release_lock) {
bql_unlock();
release_lock = false;
}

len -= l;
buf += l;
addr += l;
Expand Down Expand Up @@ -2767,10 +2769,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
hwaddr len, hwaddr mr_addr, hwaddr l,
MemoryRegion *mr)
{
uint8_t *ram_ptr;
uint64_t val;
MemTxResult result = MEMTX_OK;
bool release_lock = false;
uint8_t *buf = ptr;

fuzz_dma_read_cb(addr, len, mr);
Expand All @@ -2780,7 +2779,9 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
/* Keep going. */
} else if (!memory_access_is_direct(mr, false)) {
/* I/O case */
release_lock |= prepare_mmio_access(mr);
uint64_t val;
bool release_lock = prepare_mmio_access(mr);

l = memory_access_size(mr, l, mr_addr);
result |= memory_region_dispatch_read(mr, mr_addr, &val,
size_memop(l), attrs);
Expand All @@ -2796,17 +2797,16 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
(l == 8 && len >= 8));
#endif
stn_he_p(buf, l, val);
if (release_lock) {
bql_unlock();
}
} else {
/* RAM case */
ram_ptr = qemu_ram_ptr_length(mr->ram_block, mr_addr, &l, false);
uint8_t *ram_ptr = qemu_ram_ptr_length(mr->ram_block, mr_addr, &l,
false);
memcpy(buf, ram_ptr, l);
}

if (release_lock) {
bql_unlock();
release_lock = false;
}

len -= l;
buf += l;
addr += l;
Expand Down

0 comments on commit bcfd8ba

Please sign in to comment.