]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
cxl/region: Test CXL_DECODER_F_NORMALIZED_ADDRESSING as a bitmask
authorAlison Schofield <alison.schofield@intel.com>
Mon, 23 Feb 2026 19:13:40 +0000 (11:13 -0800)
committerDave Jiang <dave.jiang@intel.com>
Tue, 24 Feb 2026 15:33:30 +0000 (08:33 -0700)
The CXL decoder flags are defined as bitmasks, not bit indices.
Using test_bit() to check them interprets the mask value as a bit
index, which is the wrong test.

For CXL_DECODER_F_NORMALIZED_ADDRESSING the test reads beyond the
flags word, making the flag sometimes appear set and blocking creation
of CXL region debugfs attributes that support poison operations.

Replace test_bit() with a bitmask check.

Found with cxl-test.

Fixes: 208f432406b7 ("cxl: Disable HPA/SPA translation handlers for Normalized Addressing")
Signed-off-by: Alison Schofield <alison.schofield@intel.com>
Reviewed-by: Gregory Price <gourry@gourry.net>
Tested-by: Gregory Price <gourry@gourry.net>
Link: https://patch.msgid.link/63fe4a6203e40e404347f1cdc7a1c55cb4959b86.1771873256.git.alison.schofield@intel.com
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
drivers/cxl/core/region.c

index 780ec947ecf242eabac59603f853849fcc37a549..42874948b589b95a498230a93f5951f30317c0eb 100644 (file)
@@ -1105,7 +1105,7 @@ static void cxl_region_setup_flags(struct cxl_region *cxlr,
                clear_bit(CXL_REGION_F_NEEDS_RESET, &cxlr->flags);
        }
 
-       if (test_bit(CXL_DECODER_F_NORMALIZED_ADDRESSING, &cxld->flags))
+       if (cxld->flags & CXL_DECODER_F_NORMALIZED_ADDRESSING)
                set_bit(CXL_REGION_F_NORMALIZED_ADDRESSING, &cxlr->flags);
 }