Re: [Qemu-devel] [PATCH] memory: bug 1720969: Make operations using MemoryRegionIoeventfd struct pass by pointer.
On 29/05/2018 05:04, Tristan Burgess wrote: > This changes the functions memory_region_ioeventfd_equal, > memory_region_ioeventfd_before, and their callers, > to pass the MemoryRegionIoeventfd struct via pointer, instead of directly > passing the struct. This saves on stack space > and is considered safe practice. > > Signed-off-by: Tristan Burgess > --- > memory.c | 44 ++-- > 1 file changed, 22 insertions(+), 22 deletions(-) > > diff --git a/memory.c b/memory.c > index fc7f9b782b..a2b9bb88f3 100644 > --- a/memory.c > +++ b/memory.c > @@ -173,38 +173,38 @@ struct MemoryRegionIoeventfd { > EventNotifier *e; > }; > > -static bool memory_region_ioeventfd_before(MemoryRegionIoeventfd a, > - MemoryRegionIoeventfd b) > +static bool memory_region_ioeventfd_before(MemoryRegionIoeventfd *a, > + MemoryRegionIoeventfd *b) > { > -if (int128_lt(a.addr.start, b.addr.start)) { > +if (int128_lt(a->addr.start, b->addr.start)) { > return true; > -} else if (int128_gt(a.addr.start, b.addr.start)) { > +} else if (int128_gt(a->addr.start, b->addr.start)) { > return false; > -} else if (int128_lt(a.addr.size, b.addr.size)) { > +} else if (int128_lt(a->addr.size, b->addr.size)) { > return true; > -} else if (int128_gt(a.addr.size, b.addr.size)) { > +} else if (int128_gt(a->addr.size, b->addr.size)) { > return false; > -} else if (a.match_data < b.match_data) { > +} else if (a->match_data < b->match_data) { > return true; > -} else if (a.match_data > b.match_data) { > +} else if (a->match_data > b->match_data) { > return false; > -} else if (a.match_data) { > -if (a.data < b.data) { > +} else if (a->match_data) { > +if (a->data < b->data) { > return true; > -} else if (a.data > b.data) { > +} else if (a->data > b->data) { > return false; > } > } > -if (a.e < b.e) { > +if (a->e < b->e) { > return true; > -} else if (a.e > b.e) { > +} else if (a->e > b->e) { > return false; > } > return false; > } > > -static bool memory_region_ioeventfd_equal(MemoryRegionIoeventfd a, > - MemoryRegionIoeventfd b) > +static bool memory_region_ioeventfd_equal(MemoryRegionIoeventfd *a, > + MemoryRegionIoeventfd *b) > { > return !memory_region_ioeventfd_before(a, b) > && !memory_region_ioeventfd_before(b, a); > @@ -791,8 +791,8 @@ static void address_space_add_del_ioeventfds(AddressSpace > *as, > while (iold < fds_old_nb || inew < fds_new_nb) { > if (iold < fds_old_nb > && (inew == fds_new_nb > -|| memory_region_ioeventfd_before(fds_old[iold], > - fds_new[inew]))) { > +|| memory_region_ioeventfd_before(_old[iold], > + _new[inew]))) { > fd = _old[iold]; > section = (MemoryRegionSection) { > .fv = address_space_to_flatview(as), > @@ -804,8 +804,8 @@ static void address_space_add_del_ioeventfds(AddressSpace > *as, > ++iold; > } else if (inew < fds_new_nb > && (iold == fds_old_nb > - || memory_region_ioeventfd_before(fds_new[inew], > - fds_old[iold]))) { > + || memory_region_ioeventfd_before(_new[inew], > + _old[iold]))) { > fd = _new[inew]; > section = (MemoryRegionSection) { > .fv = address_space_to_flatview(as), > @@ -1443,7 +1443,7 @@ static bool > memory_region_dispatch_write_eventfds(MemoryRegion *mr, > ioeventfd.match_data = mr->ioeventfds[i].match_data; > ioeventfd.e = mr->ioeventfds[i].e; > > -if (memory_region_ioeventfd_equal(ioeventfd, mr->ioeventfds[i])) { > +if (memory_region_ioeventfd_equal(, >ioeventfds[i])) { > event_notifier_set(ioeventfd.e); > return true; > } > @@ -2213,7 +2213,7 @@ void memory_region_add_eventfd(MemoryRegion *mr, > } > memory_region_transaction_begin(); > for (i = 0; i < mr->ioeventfd_nb; ++i) { > -if (memory_region_ioeventfd_before(mrfd, mr->ioeventfds[i])) { > +if (memory_region_ioeventfd_before(, >ioeventfds[i])) { > break; > } > } > @@ -2248,7 +2248,7 @@ void memory_region_del_eventfd(MemoryRegion *mr, > } > memory_region_transaction_begin(); > for (i = 0; i < mr->ioeventfd_nb; ++i) { > -if (memory_region_ioeventfd_equal(mrfd, mr->ioeventfds[i])) { > +if
[Qemu-devel] [PATCH] memory: bug 1720969: Make operations using MemoryRegionIoeventfd struct pass by pointer.
This changes the functions memory_region_ioeventfd_equal, memory_region_ioeventfd_before, and their callers, to pass the MemoryRegionIoeventfd struct via pointer, instead of directly passing the struct. This saves on stack space and is considered safe practice. Signed-off-by: Tristan Burgess --- memory.c | 44 ++-- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/memory.c b/memory.c index fc7f9b782b..a2b9bb88f3 100644 --- a/memory.c +++ b/memory.c @@ -173,38 +173,38 @@ struct MemoryRegionIoeventfd { EventNotifier *e; }; -static bool memory_region_ioeventfd_before(MemoryRegionIoeventfd a, - MemoryRegionIoeventfd b) +static bool memory_region_ioeventfd_before(MemoryRegionIoeventfd *a, + MemoryRegionIoeventfd *b) { -if (int128_lt(a.addr.start, b.addr.start)) { +if (int128_lt(a->addr.start, b->addr.start)) { return true; -} else if (int128_gt(a.addr.start, b.addr.start)) { +} else if (int128_gt(a->addr.start, b->addr.start)) { return false; -} else if (int128_lt(a.addr.size, b.addr.size)) { +} else if (int128_lt(a->addr.size, b->addr.size)) { return true; -} else if (int128_gt(a.addr.size, b.addr.size)) { +} else if (int128_gt(a->addr.size, b->addr.size)) { return false; -} else if (a.match_data < b.match_data) { +} else if (a->match_data < b->match_data) { return true; -} else if (a.match_data > b.match_data) { +} else if (a->match_data > b->match_data) { return false; -} else if (a.match_data) { -if (a.data < b.data) { +} else if (a->match_data) { +if (a->data < b->data) { return true; -} else if (a.data > b.data) { +} else if (a->data > b->data) { return false; } } -if (a.e < b.e) { +if (a->e < b->e) { return true; -} else if (a.e > b.e) { +} else if (a->e > b->e) { return false; } return false; } -static bool memory_region_ioeventfd_equal(MemoryRegionIoeventfd a, - MemoryRegionIoeventfd b) +static bool memory_region_ioeventfd_equal(MemoryRegionIoeventfd *a, + MemoryRegionIoeventfd *b) { return !memory_region_ioeventfd_before(a, b) && !memory_region_ioeventfd_before(b, a); @@ -791,8 +791,8 @@ static void address_space_add_del_ioeventfds(AddressSpace *as, while (iold < fds_old_nb || inew < fds_new_nb) { if (iold < fds_old_nb && (inew == fds_new_nb -|| memory_region_ioeventfd_before(fds_old[iold], - fds_new[inew]))) { +|| memory_region_ioeventfd_before(_old[iold], + _new[inew]))) { fd = _old[iold]; section = (MemoryRegionSection) { .fv = address_space_to_flatview(as), @@ -804,8 +804,8 @@ static void address_space_add_del_ioeventfds(AddressSpace *as, ++iold; } else if (inew < fds_new_nb && (iold == fds_old_nb - || memory_region_ioeventfd_before(fds_new[inew], - fds_old[iold]))) { + || memory_region_ioeventfd_before(_new[inew], + _old[iold]))) { fd = _new[inew]; section = (MemoryRegionSection) { .fv = address_space_to_flatview(as), @@ -1443,7 +1443,7 @@ static bool memory_region_dispatch_write_eventfds(MemoryRegion *mr, ioeventfd.match_data = mr->ioeventfds[i].match_data; ioeventfd.e = mr->ioeventfds[i].e; -if (memory_region_ioeventfd_equal(ioeventfd, mr->ioeventfds[i])) { +if (memory_region_ioeventfd_equal(, >ioeventfds[i])) { event_notifier_set(ioeventfd.e); return true; } @@ -2213,7 +2213,7 @@ void memory_region_add_eventfd(MemoryRegion *mr, } memory_region_transaction_begin(); for (i = 0; i < mr->ioeventfd_nb; ++i) { -if (memory_region_ioeventfd_before(mrfd, mr->ioeventfds[i])) { +if (memory_region_ioeventfd_before(, >ioeventfds[i])) { break; } } @@ -2248,7 +2248,7 @@ void memory_region_del_eventfd(MemoryRegion *mr, } memory_region_transaction_begin(); for (i = 0; i < mr->ioeventfd_nb; ++i) { -if (memory_region_ioeventfd_equal(mrfd, mr->ioeventfds[i])) { +if (memory_region_ioeventfd_equal(, >ioeventfds[i])) { break; } } -- 2.17.0