[1/3] migration/postcopy: the valid condition is one less then end
diff mbox series

Message ID 20190627020822.15485-2-richardw.yang@linux.intel.com
State New
Headers show
Series
  • migration/postcopy: cleanup function postcopy_send_discard_bm_ram
Related show

Commit Message

Wei Yang June 27, 2019, 2:08 a.m. UTC
If one equals end, it means we have gone through the whole bitmap.

Use a more restrict check to skip a unnecessary condition.

Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
---
 migration/ram.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dr. David Alan Gilbert June 28, 2019, 3:09 p.m. UTC | #1
* Wei Yang (richardw.yang@linux.intel.com) wrote:
> If one equals end, it means we have gone through the whole bitmap.
> 
> Use a more restrict check to skip a unnecessary condition.
> 
> Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>

Yes, I don't think that'll break, since I think the find_next_zero_bit
will also return end, and then discard_length would be 0; still I think
it's a correct fix.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  migration/ram.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/migration/ram.c b/migration/ram.c
> index 908517fc2b..b78169e811 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -2777,7 +2777,7 @@ static int postcopy_send_discard_bm_ram(MigrationState *ms,
>      for (current = 0; current < end; ) {
>          unsigned long one = find_next_bit(unsentmap, end, current);
>  
> -        if (one <= end) {
> +        if (one < end) {
>              unsigned long zero = find_next_zero_bit(unsentmap, end, one + 1);
>              unsigned long discard_length;
>  
> -- 
> 2.19.1
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Wei Yang June 28, 2019, 11:04 p.m. UTC | #2
On Fri, Jun 28, 2019 at 04:09:50PM +0100, Dr. David Alan Gilbert wrote:
>* Wei Yang (richardw.yang@linux.intel.com) wrote:
>> If one equals end, it means we have gone through the whole bitmap.
>> 
>> Use a more restrict check to skip a unnecessary condition.
>> 
>> Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
>
>Yes, I don't think that'll break, since I think the find_next_zero_bit
>will also return end, and then discard_length would be 0; still I think
>it's a correct fix.

Yep, you are exactly right.

>
>Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>
>> ---
>>  migration/ram.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/migration/ram.c b/migration/ram.c
>> index 908517fc2b..b78169e811 100644
>> --- a/migration/ram.c
>> +++ b/migration/ram.c
>> @@ -2777,7 +2777,7 @@ static int postcopy_send_discard_bm_ram(MigrationState *ms,
>>      for (current = 0; current < end; ) {
>>          unsigned long one = find_next_bit(unsentmap, end, current);
>>  
>> -        if (one <= end) {
>> +        if (one < end) {
>>              unsigned long zero = find_next_zero_bit(unsentmap, end, one + 1);
>>              unsigned long discard_length;
>>  
>> -- 
>> 2.19.1
>> 
>--
>Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

Patch
diff mbox series

diff --git a/migration/ram.c b/migration/ram.c
index 908517fc2b..b78169e811 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2777,7 +2777,7 @@  static int postcopy_send_discard_bm_ram(MigrationState *ms,
     for (current = 0; current < end; ) {
         unsigned long one = find_next_bit(unsentmap, end, current);
 
-        if (one <= end) {
+        if (one < end) {
             unsigned long zero = find_next_zero_bit(unsentmap, end, one + 1);
             unsigned long discard_length;