pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/emulators/qemu fix SCSI disk block sizes outside range...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/6d4c52bf742b
branches:  trunk
changeset: 439717:6d4c52bf742b
user:      jakllsch <jakllsch%pkgsrc.org@localhost>
date:      Sun Sep 27 21:29:57 2020 +0000

description:
fix SCSI disk block sizes outside range of 256 to 32768 in qemu

diffstat:

 emulators/qemu/Makefile                          |   4 +-
 emulators/qemu/distinfo                          |   3 +-
 emulators/qemu/patches/patch-hw_scsi_scsi-disk.c |  50 ++++++++++++++++++++++++
 3 files changed, 54 insertions(+), 3 deletions(-)

diffs (84 lines):

diff -r 7c69a098a799 -r 6d4c52bf742b emulators/qemu/Makefile
--- a/emulators/qemu/Makefile   Sun Sep 27 21:27:43 2020 +0000
+++ b/emulators/qemu/Makefile   Sun Sep 27 21:29:57 2020 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.251 2020/09/27 21:27:27 jakllsch Exp $
+# $NetBSD: Makefile,v 1.252 2020/09/27 21:29:57 jakllsch Exp $
 
 DISTNAME=      qemu-5.1.0
-PKGREVISION=   4
+PKGREVISION=   5
 CATEGORIES=    emulators
 MASTER_SITES=  https://download.qemu.org/
 EXTRACT_SUFX=  .tar.xz
diff -r 7c69a098a799 -r 6d4c52bf742b emulators/qemu/distinfo
--- a/emulators/qemu/distinfo   Sun Sep 27 21:27:43 2020 +0000
+++ b/emulators/qemu/distinfo   Sun Sep 27 21:29:57 2020 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.162 2020/08/12 18:31:27 ryoon Exp $
+$NetBSD: distinfo,v 1.163 2020/09/27 21:29:57 jakllsch Exp $
 
 SHA1 (qemu-5.1.0.tar.xz) = 8c70ce2b65349e9b42bd20c9dec2c90f8e7b960a
 RMD160 (qemu-5.1.0.tar.xz) = f5e4a20c481d7e2bf822bf6bf41667b810c3cecd
@@ -16,6 +16,7 @@
 SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420
 SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc
 SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7
+SHA1 (patch-hw_scsi_scsi-disk.c) = fdbf2f962a6dcb1a115a7f8a5b8790ff9295fb33
 SHA1 (patch-hw_usb_dev-mtp.c) = 0f9034fb3904e5d5e3b98d24b94e054181687d95
 SHA1 (patch-include_sysemu_hw__accel.h) = 852bc031a1e065f614c5c913351f3e13183e00b7
 SHA1 (patch-include_sysemu_kvm.h) = 9847abe3be70bd708a521310f5d5515e45a1a5a0
diff -r 7c69a098a799 -r 6d4c52bf742b emulators/qemu/patches/patch-hw_scsi_scsi-disk.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/emulators/qemu/patches/patch-hw_scsi_scsi-disk.c  Sun Sep 27 21:29:57 2020 +0000
@@ -0,0 +1,50 @@
+$NetBSD: patch-hw_scsi_scsi-disk.c,v 1.1 2020/09/27 21:29:57 jakllsch Exp $
+
+Fill in more of SCSI disk block size reports to guest. Allows use of
+sector sizes outside range of 256 to 32768.
+
+--- hw/scsi/scsi-disk.c.orig   2020-08-11 19:17:15.000000000 +0000
++++ hw/scsi/scsi-disk.c
+@@ -1293,9 +1293,9 @@ static int scsi_disk_emulate_mode_sense(
+         p[2] = (nb_sectors >> 8) & 0xff;
+         p[3] = nb_sectors & 0xff;
+         p[4] = 0; /* reserved */
+-        p[5] = 0; /* bytes 5-7 are the sector size in bytes */
+-        p[6] = s->qdev.blocksize >> 8;
+-        p[7] = 0;
++        p[5] = (s->qdev.blocksize >> 16) & 0xff; /* bytes 5-7 are the sector size in bytes */
++        p[6] = (s->qdev.blocksize >> 8) & 0xff;
++        p[7] = s->qdev.blocksize & 0xff;
+         p += 8;
+     }
+ 
+@@ -1993,10 +1993,10 @@ static int32_t scsi_disk_emulate_command
+         outbuf[1] = (nb_sectors >> 16) & 0xff;
+         outbuf[2] = (nb_sectors >> 8) & 0xff;
+         outbuf[3] = nb_sectors & 0xff;
+-        outbuf[4] = 0;
+-        outbuf[5] = 0;
+-        outbuf[6] = s->qdev.blocksize >> 8;
+-        outbuf[7] = 0;
++        outbuf[4] = (s->qdev.blocksize >> 24) & 0xff;;
++        outbuf[5] = (s->qdev.blocksize >> 16) & 0xff;
++        outbuf[6] = (s->qdev.blocksize >> 8) & 0xff;
++        outbuf[7] = s->qdev.blocksize & 0xff;;
+         break;
+     case REQUEST_SENSE:
+         /* Just return "NO SENSE".  */
+@@ -2062,10 +2062,10 @@ static int32_t scsi_disk_emulate_command
+             outbuf[5] = (nb_sectors >> 16) & 0xff;
+             outbuf[6] = (nb_sectors >> 8) & 0xff;
+             outbuf[7] = nb_sectors & 0xff;
+-            outbuf[8] = 0;
+-            outbuf[9] = 0;
+-            outbuf[10] = s->qdev.blocksize >> 8;
+-            outbuf[11] = 0;
++            outbuf[8] = (s->qdev.blocksize >> 24) & 0xff;
++            outbuf[9] = (s->qdev.blocksize >> 16) & 0xff;
++            outbuf[10] = (s->qdev.blocksize >> 8) & 0xff;
++            outbuf[11] = s->qdev.blocksize & 0xff;
+             outbuf[12] = 0;
+             outbuf[13] = get_physical_block_exp(&s->qdev.conf);
+ 



Home | Main Index | Thread Index | Old Index