physmem: Reduce local variable scope in flatview_read/write_continue()
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>
This commit is contained in:
parent
4c7c856319
commit
bcfd8ba4f5
@ -2688,10 +2688,7 @@ 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 (;;) {
|
||||
@ -2699,7 +2696,9 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
|
||||
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 */
|
||||
@ -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;
|
||||
@ -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);
|
||||
@ -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);
|
||||
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user