From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57563) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UO5cV-00036E-1J for qemu-devel@nongnu.org; Fri, 05 Apr 2013 08:19:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UO5cO-0005zP-I8 for qemu-devel@nongnu.org; Fri, 05 Apr 2013 08:19:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39334) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UO5cO-0005zI-Ak for qemu-devel@nongnu.org; Fri, 05 Apr 2013 08:19:44 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r35CJh1W025231 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 5 Apr 2013 08:19:43 -0400 Date: Fri, 5 Apr 2013 14:19:41 +0200 From: Stefan Hajnoczi Message-ID: <20130405121941.GB12305@stefanha-thinkpad.redhat.com> References: <1365155461-11072-1-git-send-email-stefanha@redhat.com> <87li8xqm9k.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87li8xqm9k.fsf@blackfin.pond.sub.org> Subject: Re: [Qemu-devel] [PATCH] ide: refuse WIN_READ_NATIVE_MAX on empty device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: Kevin Wolf , qemu-devel@nongnu.org On Fri, Apr 05, 2013 at 12:56:07PM +0200, Markus Armbruster wrote: > Stefan Hajnoczi writes: > > > What is the highest addressable sector on an empty CD-ROM? Nothing is > > addressable so produce an error. > > > > This patch prevents a divide-by-zero in ide_set_sector() since > > s->sectors and s->heads would be 0. Not to mention that a sector=-1 > > argument would be nonsense. > > > > Note that WIN_READ_NATIVE_MAX can be triggered using hdparm -N 1024 > > /dev/cdrom. The LBA bit will be set to 1 though, so the only easy way > > to go down the ide_set_sector() CHS code path which divides by zero is > > to comment out the s->select & 0x40 case for testing. > > Suggests you did that. > > Have you tried the reproducer with a physical drive? Does it fail the > command when empty, too? Believe it or not, I don't have access to an ATAPI CD-ROM drive. Would you be able to try out hdparm -N 1024 /dev/cdrom? Note that READ NATIVE MAX is optional, real drives may not implement it since it seems geared towards the Host Protected Area feature which makes no sense on CD-ROMs. (The idea is a reserved area on the disk where system data can be stored and the OS will not touch it.) Stefan