From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50015) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c9EbK-0000AS-1h for qemu-devel@nongnu.org; Tue, 22 Nov 2016 12:11:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c9EbJ-0002gn-41 for qemu-devel@nongnu.org; Tue, 22 Nov 2016 12:11:22 -0500 References: <20161118102452.5779-1-olaf@aepfle.de> <42ca6186-ca47-3c63-d2e0-54f2ed9f4be7@redhat.com> <20161118174108.GF5717@aepfle.de> <20161122161235.GA24220@aepfle.de> <1340ce97-092f-877a-d244-f0bf1b50e6e6@redhat.com> <20161122170001.GA19126@aepfle.de> From: Eric Blake Message-ID: Date: Tue, 22 Nov 2016 11:11:10 -0600 MIME-Version: 1.0 In-Reply-To: <20161122170001.GA19126@aepfle.de> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a" Subject: Re: [Qemu-devel] [PATCH] xen_disk: convert discard input to byte ranges List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Olaf Hering Cc: qemu-block@nongnu.org, Kevin Wolf , Stefano Stabellini , "open list:All patches CC here" , Max Reitz , "open list:X86" , Anthony Perard This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a From: Eric Blake To: Olaf Hering Cc: qemu-block@nongnu.org, Kevin Wolf , Stefano Stabellini , "open list:All patches CC here" , Max Reitz , "open list:X86" , Anthony Perard Message-ID: Subject: Re: [Qemu-devel] [PATCH] xen_disk: convert discard input to byte ranges References: <20161118102452.5779-1-olaf@aepfle.de> <42ca6186-ca47-3c63-d2e0-54f2ed9f4be7@redhat.com> <20161118174108.GF5717@aepfle.de> <20161122161235.GA24220@aepfle.de> <1340ce97-092f-877a-d244-f0bf1b50e6e6@redhat.com> <20161122170001.GA19126@aepfle.de> In-Reply-To: <20161122170001.GA19126@aepfle.de> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 11/22/2016 11:00 AM, Olaf Hering wrote: > On Tue, Nov 22, Eric Blake wrote: >=20 >> if (sec_start + sec_count < sec_count || >> sec_start > (INT64_MAX >> BDRV_SECTOR_BITS) - sec_count) { >> return false; >> } >=20 > My point was: how does this handle sec_start=3D0,sec_count=3DUINT64_MAX= or > sec_start=3DINT64_MAX,sec_count=3DINT64_MAX? For me this gets past the = if(). Fair enough. Your test that things didn't overflow means that you can then safely compare the sum to the limit, so go with: if (sec_start + sec_count < sec_count || sec_start + sec_count > INT64_MAX >> BDRV_SECTOR_BITS) { return false; } --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJYNHwuAAoJEKeha0olJ0NqfkMH/12V6y4ifJDh2K24lvAqyX+d EWsFw6qKyadouYseI96Uj4RdejzEZZbFZ3ZlLgZVBmnfqi2TmSw/1boGIvV/XEEH a7fmItCgxcLuBehFSoQFUIaZVqQ0ouO+K8YQ5tBvxG610P82PmkwmC1KTHACAKpC dpQ9hS5dLxh5LCLQgqvYjq6UWKcMGdg65pXmZsADei3gJvFwoHTlgs6ZtYxg/P8l a8f+a4WyRMchDrdq2/L8dzHC3MifM/FRTZeDKmxF6ciwefrD3VeD2lfwT8BUJSMP 9AjgTtnsbrLC3iRy0cKHTHPeJSrVtVkd6jMTxeFMDK9vaLzeuc9ZYGZ6jRA3VkY= =q3rk -----END PGP SIGNATURE----- --V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Blake Subject: Re: [Qemu-devel] [PATCH] xen_disk: convert discard input to byte ranges Date: Tue, 22 Nov 2016 11:11:10 -0600 Message-ID: References: <20161118102452.5779-1-olaf@aepfle.de> <42ca6186-ca47-3c63-d2e0-54f2ed9f4be7@redhat.com> <20161118174108.GF5717@aepfle.de> <20161122161235.GA24220@aepfle.de> <1340ce97-092f-877a-d244-f0bf1b50e6e6@redhat.com> <20161122170001.GA19126@aepfle.de> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a" Return-path: In-Reply-To: <20161122170001.GA19126@aepfle.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-block-bounces+gceqb-qemu-block=m.gmane.org@nongnu.org Sender: "Qemu-block" To: Olaf Hering Cc: Kevin Wolf , "open list:X86" , qemu-block@nongnu.org, "open list:All patches CC here" , Max Reitz , Stefano Stabellini , Anthony Perard List-Id: xen-devel@lists.xenproject.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a Content-Type: multipart/mixed; boundary="qSXnjR2qGexDLBpkqMju9GTQpvli62JqL"; protected-headers="v1" From: Eric Blake To: Olaf Hering Cc: qemu-block@nongnu.org, Kevin Wolf , Stefano Stabellini , "open list:All patches CC here" , Max Reitz , "open list:X86" , Anthony Perard Message-ID: Subject: Re: [Qemu-devel] [PATCH] xen_disk: convert discard input to byte ranges References: <20161118102452.5779-1-olaf@aepfle.de> <42ca6186-ca47-3c63-d2e0-54f2ed9f4be7@redhat.com> <20161118174108.GF5717@aepfle.de> <20161122161235.GA24220@aepfle.de> <1340ce97-092f-877a-d244-f0bf1b50e6e6@redhat.com> <20161122170001.GA19126@aepfle.de> In-Reply-To: <20161122170001.GA19126@aepfle.de> --qSXnjR2qGexDLBpkqMju9GTQpvli62JqL Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 11/22/2016 11:00 AM, Olaf Hering wrote: > On Tue, Nov 22, Eric Blake wrote: >=20 >> if (sec_start + sec_count < sec_count || >> sec_start > (INT64_MAX >> BDRV_SECTOR_BITS) - sec_count) { >> return false; >> } >=20 > My point was: how does this handle sec_start=3D0,sec_count=3DUINT64_MAX= or > sec_start=3DINT64_MAX,sec_count=3DINT64_MAX? For me this gets past the = if(). Fair enough. Your test that things didn't overflow means that you can then safely compare the sum to the limit, so go with: if (sec_start + sec_count < sec_count || sec_start + sec_count > INT64_MAX >> BDRV_SECTOR_BITS) { return false; } --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --qSXnjR2qGexDLBpkqMju9GTQpvli62JqL-- --V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJYNHwuAAoJEKeha0olJ0NqfkMH/12V6y4ifJDh2K24lvAqyX+d EWsFw6qKyadouYseI96Uj4RdejzEZZbFZ3ZlLgZVBmnfqi2TmSw/1boGIvV/XEEH a7fmItCgxcLuBehFSoQFUIaZVqQ0ouO+K8YQ5tBvxG610P82PmkwmC1KTHACAKpC dpQ9hS5dLxh5LCLQgqvYjq6UWKcMGdg65pXmZsADei3gJvFwoHTlgs6ZtYxg/P8l a8f+a4WyRMchDrdq2/L8dzHC3MifM/FRTZeDKmxF6ciwefrD3VeD2lfwT8BUJSMP 9AjgTtnsbrLC3iRy0cKHTHPeJSrVtVkd6jMTxeFMDK9vaLzeuc9ZYGZ6jRA3VkY= =q3rk -----END PGP SIGNATURE----- --V5W6OUwbdX7ftUQ6ktCHOv7De4EsCc38a--