Commit defdfab32c for qemu.org

commit defdfab32c78e8ad134e43494a835e0b3208705b
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Wed Feb 4 17:09:35 2026 +0000

    hw/cxl: Remove register special_ops->read()

    ... this is unused, unlike its write counterpart.

    Scope needs to be added to avoid _Static_assert() immediately
    after a label. c23 makes this valid but before then it is compiler
    dependent.

    Suggested-by: Jonathan.Cameron@huawei.com
    Tested-by: Dongjoo Seo <dongjoo.seo1@samsung.com>
    Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Message-Id: <20260204170936.43959-8-Jonathan.Cameron@huawei.com>

diff --git a/hw/cxl/cxl-component-utils.c b/hw/cxl/cxl-component-utils.c
index a7d36e1128..07aabe331c 100644
--- a/hw/cxl/cxl-component-utils.c
+++ b/hw/cxl/cxl-component-utils.c
@@ -68,11 +68,7 @@ static uint64_t cxl_cache_mem_read_reg(void *opaque, hwaddr offset,
     ComponentRegisters *cregs = &cxl_cstate->crb;

     switch (size) {
-    case 4:
-        if (cregs->special_ops && cregs->special_ops->read) {
-            return cregs->special_ops->read(cxl_cstate, offset, 4);
-        }
-
+    case 4: {
         QEMU_BUILD_BUG_ON(sizeof(*cregs->cache_mem_registers) != 4);

         if (offset == A_CXL_BI_RT_STATUS ||
@@ -105,6 +101,7 @@ static uint64_t cxl_cache_mem_read_reg(void *opaque, hwaddr offset,
         }

         return cregs->cache_mem_registers[offset / 4];
+    }
     case 8:
         qemu_log_mask(LOG_UNIMP,
                       "CXL 8 byte cache mem registers not implemented\n");