{"id":2232486,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2232486/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-ppc/patch/0ec3e6b2d9a6961948eb27847898c2ea042cc533.1777890280.git.karolina.stolarek@oracle.com/","project":{"id":69,"url":"http://patchwork.ozlabs.org/api/1.1/projects/69/?format=json","name":"QEMU powerpc development","link_name":"qemu-ppc","list_id":"qemu-ppc.nongnu.org","list_email":"qemu-ppc@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<0ec3e6b2d9a6961948eb27847898c2ea042cc533.1777890280.git.karolina.stolarek@oracle.com>","date":"2026-05-04T13:59:41","name":"[2/5] scsi: Rename SCSIBusInfo to SCSIBusOps","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"4ae61b9d0ffda8aff6285526cde757dda3493b7b","submitter":{"id":89913,"url":"http://patchwork.ozlabs.org/api/1.1/people/89913/?format=json","name":"Karolina Stolarek","email":"karolina.stolarek@oracle.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-ppc/patch/0ec3e6b2d9a6961948eb27847898c2ea042cc533.1777890280.git.karolina.stolarek@oracle.com/mbox/","series":[{"id":502682,"url":"http://patchwork.ozlabs.org/api/1.1/series/502682/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-ppc/list/?series=502682","date":"2026-05-04T13:59:40","name":"[1/5] scsi: Split SCSIBusInfo struct","version":1,"mbox":"http://patchwork.ozlabs.org/series/502682/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2232486/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2232486/checks/","tags":{},"headers":{"Return-Path":"<qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256\n header.s=corp-2025-04-25 header.b=CQWxo3Pm;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g8QS318Hvz1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 05 May 2026 01:24:49 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-ppc-bounces@nongnu.org>)\n\tid 1wJv9w-0005Y5-P4; Mon, 04 May 2026 11:24:36 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <karolina.stolarek@oracle.com>)\n id 1wJtqJ-0004xl-QB; Mon, 04 May 2026 10:00:17 -0400","from mx0a-00069f02.pphosted.com ([205.220.165.32])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <karolina.stolarek@oracle.com>)\n id 1wJtqF-0002Ol-Rx; Mon, 04 May 2026 10:00:15 -0400","from pps.filterd (m0333521.ppops.net [127.0.0.1])\n by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 6448fT2v1628790; Mon, 4 May 2026 14:00:03 GMT","from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com\n (iadpaimrmta01.appoci.oracle.com [130.35.100.223])\n by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4dw9fraqew-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Mon, 04 May 2026 14:00:02 +0000 (GMT)","from pps.filterd\n (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])\n by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.7/8.18.1.7)\n with ESMTP id 644DuSGo014178; Mon, 4 May 2026 14:00:01 GMT","from pps.reinject (localhost [127.0.0.1])\n by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id\n 4dx5adk97m-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Mon, 04 May 2026 14:00:01 +0000 (GMT)","from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com\n (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])\n by pps.reinject (8.18.1.12/8.18.1.12) with ESMTP id 644Dxvog027094;\n Mon, 4 May 2026 14:00:00 GMT","from kstolare-e5-ol8.osdevelopmeniad.oraclevcn.com\n (kstolare-e5-ol8.allregionaliads.osdevelopmeniad.oraclevcn.com\n [100.100.254.20])\n by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id\n 4dx5adk954-3; Mon, 04 May 2026 14:00:00 +0000 (GMT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc\n :content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=\n corp-2025-04-25; bh=EaoUPJL5UmkjOz9/H0tAjANnO5w98RqS2JjUBHYJHro=; b=\n CQWxo3PmbzNQsgWhTE+Yi+JReW/Mu7XZYcjUaLDrywigCVSgnJo/V8LCk1S5bjww\n ldPTq9D/WP1EzNBC9ezg9zrEF1K6hcR5EbJR1Q5fUpasSpkQwcnb0uHgq3jPfV+b\n rUbvy5toqn3LfsmCdbJX6IsEN8CpHj44aElU+XyFI1pLdaSFTVZJrqz2En2fw4J+\n cGVVqXaPsPmFJIXAryPsfo5HtwU9yKPox0FsLOjn6vteCPGk9FFSGKD0oPfdvGBn\n uozEKGMbVAa1Uwpn7lfWFkAtqU4EoQpCsz7xakbg2cL4vWUHFMUF/5W9Zj8UXuGf\n GTsAZf5lD3WIFnSg9FD33w==","From":"Karolina Stolarek <karolina.stolarek@oracle.com>","To":"qemu-devel@nongnu.org","Cc":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n Fam Zheng <fam@euphon.net>, Paolo Bonzini <pbonzini@redhat.com>,\n \"Michael S . Tsirkin\" <mst@redhat.com>,\n \"Maciej S . Szmigiero\" <maciej.szmigiero@oracle.com>,\n Karolina Stolarek <karolina.stolarek@oracle.com>,\n Richard Henderson <richard.henderson@linaro.org>,\n Helge Deller <deller@gmx.de>, Nicholas Piggin <npiggin@gmail.com>,\n Harsh Prateek Bora <harshpb@linux.ibm.com>,\n Dmitry Fleytman <dmitry.fleytman@gmail.com>,\n Jeuk Kim <jeuk20.kim@samsung.com>, qemu-block@nongnu.org, qemu-ppc@nongnu.org","Subject":"[PATCH 2/5] scsi: Rename SCSIBusInfo to SCSIBusOps","Date":"Mon,  4 May 2026 13:59:41 +0000","Message-ID":"\n <0ec3e6b2d9a6961948eb27847898c2ea042cc533.1777890280.git.karolina.stolarek@oracle.com>","X-Mailer":"git-send-email 2.47.1","In-Reply-To":"<cover.1777890280.git.karolina.stolarek@oracle.com>","References":"<cover.1777890280.git.karolina.stolarek@oracle.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-05-04_04,2026-04-30_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=notspam policy=default score=0 suspectscore=0\n adultscore=0 lowpriorityscore=0 spamscore=0\n mlxlogscore=999 mlxscore=0\n phishscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx\n scancount=1 engine=8.19.0-2604200000 definitions=main-2605040145","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNTA0MDE0NSBTYWx0ZWRfX4m5JqUJYgp+o\n q/B8a82teFkuF99FNkN+MXJ8R/3uTypUpcE3yFRz9qjjH3WiUOBB9FKQ+2KvqZFPPaqDvMLqZtM\n BJLoOwPkNmPhxKtUF3YSeVW+wqzFwGzlZlyU/ueD6265rwH8GkpMinwdgtycJk0yFPA5EMov0Ib\n X6f4MPY+Mpt0+y3GfY2/3XSzEpLSOepUvBJhjcyMsDrKXk8KdsNFlG8XQbXXt3hP+GOXYBRDXnu\n od5Zhy9cU89ylOy0HfB3VU6+0sCMTKYFzMBDeXX8goIMcacQUFt3aQyEVdkxRIPWr2WQgDn/cPl\n GFjeBATFVJ25gPruRtWTgzBLsWzSlbRg5cWEqjDDUTpWHeLjJKRskIgpXsSOlFSy776jv0pQJWy\n b9om3C/Z5npSNj+D2zP0ux+Ebux6q3Olo2278AbViM2ccQd7IPU8zkj3TODDvLHoprbe29enIJz\n DQbFZJFQrnwi3dtiDg0nlg12Fge5mLpo0d/OkLbo=","X-Authority-Analysis":"v=2.4 cv=TZ6mcxQh c=1 sm=1 tr=0 ts=69f8a662 b=1 cx=c_pps\n a=zPCbziy225d3KhSqZt3L1A==:117\n a=zPCbziy225d3KhSqZt3L1A==:17\n a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=jiCTI4zE5U7BLdzWsZGv:22 a=x0eKOSpe3m1H3M0S9YoZ:22 a=KKAkSRfTAAAA:8\n a=pGLkceISAAAA:8 a=VnNF1IyMAAAA:8 a=hD80L64hAAAA:8 a=69wJf7TsAAAA:8\n a=yPCof4ZbAAAA:8 a=gS5mfdbYi_I4iAyqv3IA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10\n a=cvBusfyB2V15izCimMoJ:22 a=Fg1AiH1G6rFz08G2ETeA:22 cc=ntf awl=host:12306","X-Proofpoint-ORIG-GUID":"Lfd0ec0PYGg4IraVbI9cXD7ZGcz2pUzN","X-Proofpoint-GUID":"Lfd0ec0PYGg4IraVbI9cXD7ZGcz2pUzN","Received-SPF":"pass client-ip=205.220.165.32;\n envelope-from=karolina.stolarek@oracle.com; helo=mx0a-00069f02.pphosted.com","X-Spam_score_int":"-27","X-Spam_score":"-2.8","X-Spam_bar":"--","X-Spam_report":"(-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-Mailman-Approved-At":"Mon, 04 May 2026 11:24:33 -0400","X-BeenThere":"qemu-ppc@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<qemu-ppc.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-ppc>,\n <mailto:qemu-ppc-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-ppc>","List-Post":"<mailto:qemu-ppc@nongnu.org>","List-Help":"<mailto:qemu-ppc-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-ppc>,\n <mailto:qemu-ppc-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-ppc-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Align the name of the structure with its actual function.\nUpdate the checkpatch.pl script to check for SCSIBusOps\nin place of SCSIBusInfo.\n\nCc: Richard Henderson <richard.henderson@linaro.org>\nCc: Helge Deller <deller@gmx.de>\nCc: Nicholas Piggin <npiggin@gmail.com>\nCc: Harsh Prateek Bora <harshpb@linux.ibm.com>\nCc: Dmitry Fleytman <dmitry.fleytman@gmail.com>\nCc: Jeuk Kim <jeuk20.kim@samsung.com>\nCc: qemu-block@nongnu.org\nCc: qemu-ppc@nongnu.org\nSuggested-by: Alex Bennée <alex.bennee@linaro.org>\nSigned-off-by: Karolina Stolarek <karolina.stolarek@oracle.com>\n---\n hw/scsi/esp-pci.c            |  4 +--\n hw/scsi/esp.c                |  4 +--\n hw/scsi/lasi_ncr710.c        |  4 +--\n hw/scsi/lsi53c895a.c         |  4 +--\n hw/scsi/megasas.c            |  4 +--\n hw/scsi/mptsas.c             |  6 ++---\n hw/scsi/ncr53c710.c          |  4 +--\n hw/scsi/scsi-bus.c           | 48 ++++++++++++++++++------------------\n hw/scsi/spapr_vscsi.c        |  4 +--\n hw/scsi/virtio-scsi.c        |  4 +--\n hw/scsi/vmw_pvscsi.c         |  4 +--\n hw/ufs/lu.c                  |  4 +--\n hw/usb/dev-storage-bot.c     |  4 +--\n hw/usb/dev-storage-classic.c |  4 +--\n hw/usb/dev-uas.c             |  4 +--\n include/hw/scsi/scsi.h       | 14 +++++------\n scripts/checkpatch.pl        |  2 +-\n 17 files changed, 61 insertions(+), 61 deletions(-)","diff":"diff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c\nindex 34a095b73f..17ed0b186d 100644\n--- a/hw/scsi/esp-pci.c\n+++ b/hw/scsi/esp-pci.c\n@@ -379,7 +379,7 @@ static const struct SCSIBusConfig esp_pci_scsi_config = {\n     .max_lun = 7,\n };\n \n-static const struct SCSIBusInfo esp_pci_scsi_info = {\n+static const struct SCSIBusOps esp_pci_scsi_ops = {\n     .transfer_data = esp_transfer_data,\n     .complete = esp_command_complete,\n     .cancel = esp_request_cancelled,\n@@ -411,7 +411,7 @@ static void esp_pci_scsi_realize(PCIDevice *dev, Error **errp)\n     pci_register_bar(dev, 0, PCI_BASE_ADDRESS_SPACE_IO, &pci->io);\n     s->irq = qemu_allocate_irq(esp_irq_handler, pci, 0);\n \n-    scsi_bus_init(&s->bus, sizeof(s->bus), d, &esp_pci_scsi_info,\n+    scsi_bus_init(&s->bus, sizeof(s->bus), d, &esp_pci_scsi_ops,\n                   &esp_pci_scsi_config);\n }\n \ndiff --git a/hw/scsi/esp.c b/hw/scsi/esp.c\nindex 851af4d9fa..b928693ed2 100644\n--- a/hw/scsi/esp.c\n+++ b/hw/scsi/esp.c\n@@ -1564,7 +1564,7 @@ static const struct SCSIBusConfig esp_scsi_config = {\n     .max_lun = 7,\n };\n \n-static const struct SCSIBusInfo esp_scsi_info = {\n+static const struct SCSIBusOps esp_scsi_ops = {\n     .load_request = esp_load_request,\n     .transfer_data = esp_transfer_data,\n     .complete = esp_command_complete,\n@@ -1610,7 +1610,7 @@ static void sysbus_esp_realize(DeviceState *dev, Error **errp)\n \n     qdev_init_gpio_in(dev, sysbus_esp_gpio_demux, 2);\n \n-    scsi_bus_init(&s->bus, sizeof(s->bus), dev, &esp_scsi_info,\n+    scsi_bus_init(&s->bus, sizeof(s->bus), dev, &esp_scsi_ops,\n                   &esp_scsi_config);\n }\n \ndiff --git a/hw/scsi/lasi_ncr710.c b/hw/scsi/lasi_ncr710.c\nindex 7abc92b0bb..726250b9d7 100644\n--- a/hw/scsi/lasi_ncr710.c\n+++ b/hw/scsi/lasi_ncr710.c\n@@ -141,7 +141,7 @@ static const struct SCSIBusConfig lasi_ncr710_scsi_config = {\n     .max_lun = 8,  /* full LUN support */\n };\n \n-static const struct SCSIBusInfo lasi_ncr710_scsi_info = {\n+static const struct SCSIBusOps lasi_ncr710_scsi_ops = {\n     .transfer_data = lasi_ncr710_transfer_data,\n     .complete = lasi_ncr710_command_complete,\n     .cancel = lasi_ncr710_request_cancelled,\n@@ -178,7 +178,7 @@ static void lasi_ncr710_realize(DeviceState *dev, Error **errp)\n     trace_lasi_ncr710_device_realize();\n \n     scsi_bus_init(&s->ncr710.bus, sizeof(s->ncr710.bus), dev,\n-                  &lasi_ncr710_scsi_info, &lasi_ncr710_scsi_config);\n+                  &lasi_ncr710_scsi_ops, &lasi_ncr710_scsi_config);\n     s->ncr710.as = &address_space_memory;\n     s->ncr710.irq = s->lasi_irq;\n \ndiff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c\nindex da04f51cab..2de24381f3 100644\n--- a/hw/scsi/lsi53c895a.c\n+++ b/hw/scsi/lsi53c895a.c\n@@ -2333,7 +2333,7 @@ static const struct SCSIBusConfig lsi_scsi_config = {\n     .max_lun = 0,  /* LUN support is buggy */\n };\n \n-static const struct SCSIBusInfo lsi_scsi_info = {\n+static const struct SCSIBusOps lsi_scsi_ops = {\n     .transfer_data = lsi_transfer_data,\n     .complete = lsi_command_complete,\n     .cancel = lsi_request_cancelled,\n@@ -2385,7 +2385,7 @@ static void lsi_scsi_realize(PCIDevice *dev, Error **errp)\n     pci_register_bar(dev, 2, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->ram_io);\n     QTAILQ_INIT(&s->queue);\n \n-    scsi_bus_init(&s->bus, sizeof(s->bus), d, &lsi_scsi_info, &lsi_scsi_config);\n+    scsi_bus_init(&s->bus, sizeof(s->bus), d, &lsi_scsi_ops, &lsi_scsi_config);\n }\n \n static void lsi_scsi_exit(PCIDevice *dev)\ndiff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c\nindex f0824069f2..11bb843c3a 100644\n--- a/hw/scsi/megasas.c\n+++ b/hw/scsi/megasas.c\n@@ -2333,7 +2333,7 @@ static const struct SCSIBusConfig megasas_scsi_config = {\n     .max_lun = 255,\n };\n \n-static const struct SCSIBusInfo megasas_scsi_info = {\n+static const struct SCSIBusOps megasas_scsi_ops = {\n     .transfer_data = megasas_xfer_complete,\n     .get_sg_list = megasas_get_sg_list,\n     .complete = megasas_command_complete,\n@@ -2450,7 +2450,7 @@ static void megasas_scsi_realize(PCIDevice *dev, Error **errp)\n     }\n \n     scsi_bus_init(&s->bus, sizeof(s->bus), DEVICE(dev),\n-                  &megasas_scsi_info, &megasas_scsi_config);\n+                  &megasas_scsi_ops, &megasas_scsi_config);\n }\n \n static const Property megasas_properties_gen1[] = {\ndiff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c\nindex 251ad575e8..b1b960b463 100644\n--- a/hw/scsi/mptsas.c\n+++ b/hw/scsi/mptsas.c\n@@ -1238,7 +1238,7 @@ static void *mptsas_load_request(QEMUFile *f, SCSIRequest *sreq)\n     qemu_get_buffer(f, (unsigned char *)&req->scsi_io, sizeof(req->scsi_io));\n \n     n = qemu_get_be32(f);\n-    /* TODO: add a way for SCSIBusInfo's load_request to fail,\n+    /* TODO: add a way for SCSIBusOps's load_request to fail,\n      * and fail migration instead of asserting here.\n      * This is just one thing (there are probably more) that must be\n      * fixed before we can allow NDEBUG compilation.\n@@ -1265,7 +1265,7 @@ static const struct SCSIBusConfig mptsas_scsi_config = {\n     .max_lun = 1,\n };\n \n-static const struct SCSIBusInfo mptsas_scsi_info = {\n+static const struct SCSIBusOps mptsas_scsi_ops = {\n     .get_sg_list = mptsas_get_sg_list,\n     .complete = mptsas_command_complete,\n     .cancel = mptsas_request_cancelled,\n@@ -1328,7 +1328,7 @@ static void mptsas_scsi_realize(PCIDevice *dev, Error **errp)\n                                         &DEVICE(dev)->mem_reentrancy_guard);\n \n     scsi_bus_init(&s->bus, sizeof(s->bus), &dev->qdev,\n-                  &mptsas_scsi_info, &mptsas_scsi_config);\n+                  &mptsas_scsi_ops, &mptsas_scsi_config);\n }\n \n static void mptsas_scsi_uninit(PCIDevice *dev)\ndiff --git a/hw/scsi/ncr53c710.c b/hw/scsi/ncr53c710.c\nindex ba92870d9a..9a4afd17e5 100644\n--- a/hw/scsi/ncr53c710.c\n+++ b/hw/scsi/ncr53c710.c\n@@ -2271,7 +2271,7 @@ static const struct SCSIBusConfig ncr710_scsi_config = {\n     .max_lun = 8,  /* Full LUN support */\n };\n \n-static const struct SCSIBusInfo ncr710_scsi_info = {\n+static const struct SCSIBusOps ncr710_scsi_ops = {\n     .transfer_data = ncr710_transfer_data,\n     .complete = ncr710_command_complete,\n     .cancel = ncr710_request_cancelled,\n@@ -2417,7 +2417,7 @@ static void sysbus_ncr710_realize(DeviceState *dev, Error **errp)\n \n     trace_ncr710_device_realize();\n     scsi_bus_init(&s->ncr710.bus, sizeof(s->ncr710.bus), dev,\n-                  &ncr710_scsi_info, &ncr710_scsi_config);\n+                  &ncr710_scsi_ops, &ncr710_scsi_config);\n     s->ncr710.as = &address_space_memory;\n \n     ncr710_scsi_fifo_init(&s->ncr710.scsi_fifo);\ndiff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c\nindex b195007617..391b279358 100644\n--- a/hw/scsi/scsi-bus.c\n+++ b/hw/scsi/scsi-bus.c\n@@ -238,8 +238,8 @@ int scsi_bus_parse_cdb(SCSIDevice *dev, SCSICommand *cmd, uint8_t *buf,\n \n     assert(cmd->len == 0);\n     rc = scsi_req_parse_cdb(dev, cmd, buf, buf_len);\n-    if (bus->info->parse_cdb) {\n-        rc = bus->info->parse_cdb(dev, cmd, buf, buf_len, hba_private);\n+    if (bus->ops->parse_cdb) {\n+        rc = bus->ops->parse_cdb(dev, cmd, buf, buf_len, hba_private);\n     }\n     return rc;\n }\n@@ -265,12 +265,12 @@ void scsi_device_unit_attention_reported(SCSIDevice *s)\n \n /* Create a scsi bus, and attach devices to it.  */\n void scsi_bus_init_named(SCSIBus *bus, size_t bus_size, DeviceState *host,\n-                         const SCSIBusInfo *info, const SCSIBusConfig *config,\n+                         const SCSIBusOps *ops, const SCSIBusConfig *config,\n                          const char *bus_name)\n {\n     qbus_init(bus, bus_size, TYPE_SCSI_BUS, host, bus_name);\n     bus->busnr = next_scsi_bus++;\n-    bus->info = info;\n+    bus->ops = ops;\n     bus->config = config;\n     qbus_set_bus_hotplug_handler(BUS(bus));\n }\n@@ -1007,8 +1007,8 @@ static void scsi_req_enqueue_internal(SCSIRequest *req)\n {\n     assert(!req->enqueued);\n     scsi_req_ref(req);\n-    if (req->bus->info->get_sg_list) {\n-        req->sg = req->bus->info->get_sg_list(req);\n+    if (req->bus->ops->get_sg_list) {\n+        req->sg = req->bus->ops->get_sg_list(req);\n     } else {\n         req->sg = NULL;\n     }\n@@ -1491,8 +1491,8 @@ void scsi_device_report_change(SCSIDevice *dev, SCSISense sense)\n     SCSIBus *bus = DO_UPCAST(SCSIBus, qbus, dev->qdev.parent_bus);\n \n     scsi_device_set_ua(dev, sense);\n-    if (bus->info->change) {\n-        bus->info->change(bus, dev, sense);\n+    if (bus->ops->change) {\n+        bus->ops->change(bus, dev, sense);\n     }\n }\n \n@@ -1510,8 +1510,8 @@ void scsi_req_unref(SCSIRequest *req)\n         BusState *qbus = req->dev->qdev.parent_bus;\n         SCSIBus *bus = DO_UPCAST(SCSIBus, qbus, qbus);\n \n-        if (bus->info->free_request && req->hba_private) {\n-            bus->info->free_request(bus, req->hba_private);\n+        if (bus->ops->free_request && req->hba_private) {\n+            bus->ops->free_request(bus, req->hba_private);\n         }\n         if (req->ops->free_req) {\n             req->ops->free_req(req);\n@@ -1550,7 +1550,7 @@ void scsi_req_data(SCSIRequest *req, int len)\n     assert(req->cmd.mode != SCSI_XFER_NONE);\n     if (!req->sg) {\n         req->residual -= len;\n-        req->bus->info->transfer_data(req, len);\n+        req->bus->ops->transfer_data(req, len);\n         return;\n     }\n \n@@ -1607,7 +1607,7 @@ void scsi_req_complete_failed(SCSIRequest *req, int host_status)\n     assert(req->status == -1 && req->host_status == -1);\n     assert(req->ops != &reqops_unit_attention);\n \n-    if (!req->bus->info->fail) {\n+    if (!req->bus->ops->fail) {\n         status = scsi_sense_from_host_status(req->host_status, &sense);\n         if (status == CHECK_CONDITION) {\n             scsi_req_build_sense(req, sense);\n@@ -1619,7 +1619,7 @@ void scsi_req_complete_failed(SCSIRequest *req, int host_status)\n     req->host_status = host_status;\n     scsi_req_ref(req);\n     scsi_req_dequeue(req);\n-    req->bus->info->fail(req);\n+    req->bus->ops->fail(req);\n \n     /* Cancelled requests might end up being completed instead of cancelled */\n     notifier_list_notify(&req->cancel_notifiers, req);\n@@ -1648,7 +1648,7 @@ void scsi_req_complete(SCSIRequest *req, int status)\n \n     scsi_req_ref(req);\n     scsi_req_dequeue(req);\n-    req->bus->info->complete(req, req->residual);\n+    req->bus->ops->complete(req, req->residual);\n \n     /* Cancelled requests might end up being completed instead of cancelled */\n     notifier_list_notify(&req->cancel_notifiers, req);\n@@ -1659,8 +1659,8 @@ void scsi_req_complete(SCSIRequest *req, int status)\n void scsi_req_cancel_complete(SCSIRequest *req)\n {\n     assert(req->io_canceled);\n-    if (req->bus->info->cancel) {\n-        req->bus->info->cancel(req);\n+    if (req->bus->ops->cancel) {\n+        req->bus->ops->cancel(req);\n     }\n     notifier_list_notify(&req->cancel_notifiers, req);\n     scsi_req_unref(req);\n@@ -1818,8 +1818,8 @@ void scsi_device_drained_begin(SCSIDevice *sdev)\n      */\n     if (bus->drain_count++ == 0) {\n         trace_scsi_bus_drained_begin(bus, sdev);\n-        if (bus->info->drained_begin) {\n-            bus->info->drained_begin(bus);\n+        if (bus->ops->drained_begin) {\n+            bus->ops->drained_begin(bus);\n         }\n     }\n }\n@@ -1836,8 +1836,8 @@ void scsi_device_drained_end(SCSIDevice *sdev)\n \n     if (bus->drain_count-- == 1) {\n         trace_scsi_bus_drained_end(bus, sdev);\n-        if (bus->info->drained_end) {\n-            bus->info->drained_end(bus);\n+        if (bus->ops->drained_end) {\n+            bus->ops->drained_end(bus);\n         }\n     }\n }\n@@ -1880,8 +1880,8 @@ static void put_scsi_req(SCSIRequest *req, void *opaque)\n     qemu_put_buffer(f, req->cmd.buf, sizeof(req->cmd.buf));\n     qemu_put_be32s(f, &req->tag);\n     qemu_put_be32s(f, &req->lun);\n-    if (req->bus->info->save_request) {\n-        req->bus->info->save_request(f, req);\n+    if (req->bus->ops->save_request) {\n+        req->bus->ops->save_request(f, req);\n     }\n     if (req->ops->save_request) {\n         req->ops->save_request(f, req);\n@@ -1920,8 +1920,8 @@ static int get_scsi_requests(QEMUFile *f, void *pv, size_t size,\n          */\n         req = scsi_req_new(s, tag, lun, buf, sizeof(buf), NULL);\n         req->retry = (sbyte == 1);\n-        if (bus->info->load_request) {\n-            req->hba_private = bus->info->load_request(f, req);\n+        if (bus->ops->load_request) {\n+            req->hba_private = bus->ops->load_request(f, req);\n         }\n         if (req->ops->load_request) {\n             req->ops->load_request(f, req);\ndiff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c\nindex f04dbc16c6..1fdd384cfe 100644\n--- a/hw/scsi/spapr_vscsi.c\n+++ b/hw/scsi/spapr_vscsi.c\n@@ -1202,7 +1202,7 @@ static const struct SCSIBusConfig vscsi_scsi_config = {\n     .max_lun = 31,\n };\n \n-static const struct SCSIBusInfo vscsi_scsi_info = {\n+static const struct SCSIBusOps vscsi_scsi_ops = {\n     .transfer_data = vscsi_transfer_data,\n     .complete = vscsi_command_complete,\n     .cancel = vscsi_request_cancelled,\n@@ -1228,7 +1228,7 @@ static void spapr_vscsi_realize(SpaprVioDevice *dev, Error **errp)\n     dev->crq.SendFunc = vscsi_do_crq;\n \n     scsi_bus_init(&s->bus, sizeof(s->bus), DEVICE(dev),\n-                  &vscsi_scsi_info, &vscsi_scsi_config);\n+                  &vscsi_scsi_ops, &vscsi_scsi_config);\n \n     /* ibmvscsi SCSI bus does not allow hotplug. */\n     qbus_set_hotplug_handler(BUS(&s->bus), NULL);\ndiff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c\nindex f3062c08bf..8d2811d7fb 100644\n--- a/hw/scsi/virtio-scsi.c\n+++ b/hw/scsi/virtio-scsi.c\n@@ -1271,7 +1271,7 @@ static struct SCSIBusConfig virtio_scsi_scsi_config = {\n     .max_lun = VIRTIO_SCSI_MAX_LUN,\n };\n \n-static const struct SCSIBusInfo virtio_scsi_scsi_info = {\n+static const struct SCSIBusOps virtio_scsi_scsi_ops = {\n     .complete = virtio_scsi_command_complete,\n     .fail = virtio_scsi_command_failed,\n     .cancel = virtio_scsi_request_cancelled,\n@@ -1344,7 +1344,7 @@ static void virtio_scsi_device_realize(DeviceState *dev, Error **errp)\n     }\n \n     scsi_bus_init_named(&s->bus, sizeof(s->bus), dev,\n-                        &virtio_scsi_scsi_info, &virtio_scsi_scsi_config,\n+                        &virtio_scsi_scsi_ops, &virtio_scsi_scsi_config,\n                         vdev->bus_name);\n     /* override default SCSI bus hotplug-handler, with virtio-scsi's one */\n     qbus_set_hotplug_handler(BUS(&s->bus), OBJECT(dev));\ndiff --git a/hw/scsi/vmw_pvscsi.c b/hw/scsi/vmw_pvscsi.c\nindex e1310f20eb..0ed5c0490b 100644\n--- a/hw/scsi/vmw_pvscsi.c\n+++ b/hw/scsi/vmw_pvscsi.c\n@@ -1133,7 +1133,7 @@ static const struct SCSIBusConfig pvscsi_scsi_config = {\n         .max_lun = 0,\n };\n \n-static const struct SCSIBusInfo pvscsi_scsi_info = {\n+static const struct SCSIBusOps pvscsi_scsi_ops = {\n         .get_sg_list = pvscsi_get_sg_list,\n         .complete = pvscsi_command_complete,\n         .cancel = pvscsi_request_cancelled,\n@@ -1174,7 +1174,7 @@ pvscsi_realizefn(PCIDevice *pci_dev, Error **errp)\n                                                &DEVICE(pci_dev)->mem_reentrancy_guard);\n \n     scsi_bus_init(&s->bus, sizeof(s->bus), DEVICE(pci_dev),\n-                  &pvscsi_scsi_info, &pvscsi_scsi_config);\n+                  &pvscsi_scsi_ops, &pvscsi_scsi_config);\n     /* override default SCSI bus hotplug-handler, with pvscsi's one */\n     qbus_set_hotplug_handler(BUS(&s->bus), OBJECT(s));\n     pvscsi_reset_state(s);\ndiff --git a/hw/ufs/lu.c b/hw/ufs/lu.c\nindex 297b0d95f8..462d8ea465 100644\n--- a/hw/ufs/lu.c\n+++ b/hw/ufs/lu.c\n@@ -86,7 +86,7 @@ static const struct SCSIBusConfig ufs_scsi_config = {\n     .max_channel = 0,\n };\n \n-static const struct SCSIBusInfo ufs_scsi_info = {\n+static const struct SCSIBusOps ufs_scsi_ops = {\n     .get_sg_list = ufs_get_sg_list,\n     .complete = ufs_scsi_command_complete,\n };\n@@ -346,7 +346,7 @@ static void ufs_init_scsi_device(UfsLu *lu, BlockBackend *blk, Error **errp)\n     DeviceState *scsi_dev;\n \n     scsi_bus_init(&lu->bus, sizeof(lu->bus), DEVICE(lu),\n-                  &ufs_scsi_info, &ufs_scsi_config);\n+                  &ufs_scsi_ops, &ufs_scsi_config);\n \n     blk_ref(blk);\n     blk_detach_dev(blk, DEVICE(lu));\ndiff --git a/hw/usb/dev-storage-bot.c b/hw/usb/dev-storage-bot.c\nindex 91e6588e29..e98fe1bcc4 100644\n--- a/hw/usb/dev-storage-bot.c\n+++ b/hw/usb/dev-storage-bot.c\n@@ -19,7 +19,7 @@ static const struct SCSIBusConfig usb_msd_scsi_config_bot = {\n     .max_lun = 15,\n };\n \n-static const struct SCSIBusInfo usb_msd_scsi_info_bot = {\n+static const struct SCSIBusOps usb_msd_scsi_ops_bot = {\n     .transfer_data = usb_msd_transfer_data,\n     .complete = usb_msd_command_complete,\n     .cancel = usb_msd_request_cancelled,\n@@ -39,7 +39,7 @@ static void usb_msd_bot_realize(USBDevice *dev, Error **errp)\n     }\n \n     scsi_bus_init(&s->bus, sizeof(s->bus), DEVICE(dev),\n-                  &usb_msd_scsi_info_bot, &usb_msd_scsi_config_bot);\n+                  &usb_msd_scsi_ops_bot, &usb_msd_scsi_config_bot);\n     usb_msd_handle_reset(dev);\n }\n \ndiff --git a/hw/usb/dev-storage-classic.c b/hw/usb/dev-storage-classic.c\nindex 76e176dc20..4358e9a91f 100644\n--- a/hw/usb/dev-storage-classic.c\n+++ b/hw/usb/dev-storage-classic.c\n@@ -22,7 +22,7 @@ static const struct SCSIBusConfig usb_msd_scsi_config_storage = {\n     .max_lun = 0,\n };\n \n-static const struct SCSIBusInfo usb_msd_scsi_info_storage = {\n+static const struct SCSIBusOps usb_msd_scsi_ops_storage = {\n     .transfer_data = usb_msd_transfer_data,\n     .complete = usb_msd_command_complete,\n     .cancel = usb_msd_request_cancelled,\n@@ -58,7 +58,7 @@ static void usb_msd_storage_realize(USBDevice *dev, Error **errp)\n     usb_desc_init(dev);\n     dev->flags |= (1 << USB_DEV_FLAG_IS_SCSI_STORAGE);\n     scsi_bus_init(&s->bus, sizeof(s->bus), DEVICE(dev),\n-                  &usb_msd_scsi_info_storage, &usb_msd_scsi_config_storage);\n+                  &usb_msd_scsi_ops_storage, &usb_msd_scsi_config_storage);\n     scsi_dev = scsi_bus_legacy_add_drive(&s->bus, blk, 0, !!s->removable,\n                                          &s->conf, dev->serial, errp);\n     blk_unref(blk);\ndiff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c\nindex de26114f10..0627213f48 100644\n--- a/hw/usb/dev-uas.c\n+++ b/hw/usb/dev-uas.c\n@@ -624,7 +624,7 @@ static const struct SCSIBusConfig usb_uas_scsi_config = {\n     .max_lun = 255,\n };\n \n-static const struct SCSIBusInfo usb_uas_scsi_info = {\n+static const struct SCSIBusOps usb_uas_scsi_ops = {\n     .transfer_data = usb_uas_scsi_transfer_data,\n     .complete = usb_uas_scsi_command_complete,\n     .cancel = usb_uas_scsi_request_cancelled,\n@@ -942,7 +942,7 @@ static void usb_uas_realize(USBDevice *dev, Error **errp)\n \n     dev->flags |= (1 << USB_DEV_FLAG_IS_SCSI_STORAGE);\n     scsi_bus_init(&uas->bus, sizeof(uas->bus), DEVICE(dev),\n-                  &usb_uas_scsi_info, &usb_uas_scsi_config);\n+                  &usb_uas_scsi_ops, &usb_uas_scsi_config);\n }\n \n static const VMStateDescription vmstate_usb_uas = {\ndiff --git a/include/hw/scsi/scsi.h b/include/hw/scsi/scsi.h\nindex 53475effb8..85e40ef08d 100644\n--- a/include/hw/scsi/scsi.h\n+++ b/include/hw/scsi/scsi.h\n@@ -15,7 +15,7 @@\n OBJECT_DECLARE_SIMPLE_TYPE(SCSIBus, SCSI_BUS)\n \n typedef struct SCSIBusConfig SCSIBusConfig;\n-typedef struct SCSIBusInfo SCSIBusInfo;\n+typedef struct SCSIBusOps SCSIBusOps;\n typedef struct SCSIDevice SCSIDevice;\n typedef struct SCSIRequest SCSIRequest;\n typedef struct SCSIReqOps SCSIReqOps;\n@@ -143,7 +143,7 @@ struct SCSIBusConfig {\n     int max_channel, max_target, max_lun;\n };\n \n-struct SCSIBusInfo {\n+struct SCSIBusOps {\n     int (*parse_cdb)(SCSIDevice *dev, SCSICommand *cmd, uint8_t *buf,\n                      size_t buf_len, void *hba_private);\n     void (*transfer_data)(SCSIRequest *req, uint32_t arg);\n@@ -173,7 +173,7 @@ struct SCSIBus {\n     int busnr;\n \n     SCSISense unit_attention;\n-    const SCSIBusInfo *info;\n+    const SCSIBusOps *ops;\n     const SCSIBusConfig *config;\n \n     int drain_count; /* protected by BQL */\n@@ -184,7 +184,7 @@ struct SCSIBus {\n  * @bus: SCSIBus object to initialize\n  * @bus_size: size of @bus object\n  * @host: Device which owns the bus (generally the SCSI controller)\n- * @info: structure defining callbacks for the controller\n+ * @ops: structure defining callbacks for the controller\n  * @config: structure defining bus params\n  * @bus_name: Name to use for this bus\n  *\n@@ -195,7 +195,7 @@ struct SCSIBus {\n  * should use scsi_bus_init() instead.\n  */\n void scsi_bus_init_named(SCSIBus *bus, size_t bus_size, DeviceState *host,\n-                         const SCSIBusInfo *info, const SCSIBusConfig *config,\n+                         const SCSIBusOps *ops, const SCSIBusConfig *config,\n                          const char *bus_name);\n \n /**\n@@ -205,10 +205,10 @@ void scsi_bus_init_named(SCSIBus *bus, size_t bus_size, DeviceState *host,\n  * an automatically generated unique name.\n  */\n static inline void scsi_bus_init(SCSIBus *bus, size_t bus_size,\n-                                 DeviceState *host, const SCSIBusInfo *info,\n+                                 DeviceState *host, const SCSIBusOps *ops,\n                                  const SCSIBusConfig *config)\n {\n-    scsi_bus_init_named(bus, bus_size, host, info, config, NULL);\n+    scsi_bus_init_named(bus, bus_size, host, ops, config, NULL);\n }\n \n static inline SCSIBus *scsi_bus_from_device(SCSIDevice *d)\ndiff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl\nindex e1cf2ff23b..24681e5c38 100755\n--- a/scripts/checkpatch.pl\n+++ b/scripts/checkpatch.pl\n@@ -3223,7 +3223,7 @@ sub process {\n \t\t\t\tMemoryRegionOps|\n \t\t\t\tMemoryRegionPortio|\n \t\t\t\tQEMUFileOps|\n-\t\t\t\tSCSIBusInfo|\n+\t\t\t\tSCSIBusOps|\n \t\t\t\tSCSIReqOps|\n \t\t\t\tSpice[A-Z][a-zA-Z0-9]*Interface|\n \t\t\t\tTypeInfo|\n","prefixes":["2/5"]}