- s390x/sclp: Simplify get_sclp_device() - target/ppc: Remove msr_pr macro - docs/system/target-arm: Re-alphabetize board list - migration: Extend query-migrate to provide dirty page limit info - migration: Implement dirty-limit convergence algo - migration: Put the detection logic before auto-converge checking - migration: Refactor auto-converge capability logic - migration: Introduce dirty-limit capability - qapi/migration: Introduce vcpu-dirty-limit parameters - qapi/migration: Introduce x-vcpu-dirty-limit-period parameter - Change the value of no_ged from true to false - Allow UNIX socket option for VNC websocket - tpm_emulator: Avoid double initialization during - chardev/char-socket: Update AF_UNIX for Windows - KVM: dirty ring: add missing memory barrier - i386: reset KVM nested state upon CPU reset - esp: Handle CMD_BUSRESET by resetting the SCSI bus - dbus-vmstate: Restrict error checks to registered proxies in dbus_get_proxies - vfio/pci: Add Ascend310b scend910b support - target/i386: Export RFDS bit to guests - target/i386: Add new CPU model SierraForest - target/i386: Introduce Icelake-Server-v7 to enable TSX - hw/virtio: handle un-configured shutdown in virtio-pci - target/s390x: display deprecation status in '-cpu help' - target/i386: display deprecation status in '-cpu help' - pc-bios/s390-ccw: Fix booting with logical block size < physical block size Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
From 3f186cb242429e6d19f95e259e226658f0d605a9 Mon Sep 17 00:00:00 2001
|
|
From: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
|
|
Date: Tue, 14 May 2024 09:53:37 +0000
|
|
Subject: [PATCH] esp: Handle CMD_BUSRESET by resetting the SCSI bus mainline
|
|
inclusion commit c6e51f1bb28ed762d2039c063cbb71a8ad29762d category: bugfix
|
|
|
|
---------------------------------------------------------------
|
|
|
|
Per investigation on the linked ticket, SunOS issues a SCSI bus reset
|
|
to the ESP as part of its boot sequence. If this ESP command doesn't
|
|
cause devices to assert sense flag UNIT ATTENTION, SunOS will consider
|
|
the CD-ROM device to be non-compliant with Common Command Set (CCS).
|
|
In this condition, the SunOS installer's early userspace doesn't set
|
|
the installation source location to sr0 and the miniroot copy fails.
|
|
|
|
Signed-off-by: John Millikin <john@john-millikin.com>
|
|
Suggested-by: Bill Paul <noisetube@gmail.com>
|
|
Buglink: https://gitlab.com/qemu-project/qemu/-/issues/1127
|
|
Message-Id: <20220817053846.699310-1-john@john-millikin.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
Signed-off-by: tangbinzy <tangbin_yewu@cmss.chinamobile.com>
|
|
---
|
|
hw/scsi/esp.c | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c
|
|
index 435a81bbfd..9f071e7218 100644
|
|
--- a/hw/scsi/esp.c
|
|
+++ b/hw/scsi/esp.c
|
|
@@ -912,6 +912,11 @@ static void esp_soft_reset(ESPState *s)
|
|
esp_hard_reset(s);
|
|
}
|
|
|
|
+static void esp_bus_reset(ESPState *s)
|
|
+{
|
|
+ qbus_reset_all(BUS(&s->bus));
|
|
+}
|
|
+
|
|
static void parent_esp_reset(ESPState *s, int irq, int level)
|
|
{
|
|
if (level) {
|
|
@@ -1040,6 +1045,7 @@ void esp_reg_write(ESPState *s, uint32_t saddr, uint64_t val)
|
|
break;
|
|
case CMD_BUSRESET:
|
|
trace_esp_mem_writeb_cmd_bus_reset(val);
|
|
+ esp_bus_reset(s);
|
|
if (!(s->wregs[ESP_CFG1] & CFG1_RESREPT)) {
|
|
s->rregs[ESP_RINTR] |= INTR_RST;
|
|
esp_raise_irq(s);
|
|
--
|
|
2.27.0
|
|
|