Re: [PATCH v8 0/9] dax/hmem, cxl: Coordinate Soft Reserved handling with CXL and HMEM

From: Tomasz Wolski

Date: Thu Apr 16 2026 - 19:49:08 EST


One additional remark:
I observed one isue unrelated to this patch during tests
on our AMD machine with two CXL physical cards installed.
Region teardown with "destroy-region" fails with "Operation not permitted":

cxl region: destroy_region: region1: failed to reset decode: Operation not permitted
cxl region: decoder_region_action: region1: failed: Operation not permitted
cxl region: region_action: one or more failures, last failure: Operation not permitted
cxl region: cmd_destroy_region: destroyed 0 regions

Region lock is now correctly set by a fix "cxl: Test decoder flags as bitmasks"
(commit 0a70b7cd397e545e926c93715ff6366b67c716f6) but I cannot see any option
how it can be unlocked to proceed with the teardown?

Without the lock I'm able to destroy regions:

>static void cxl_region_setup_flags(struct cxl_region *cxlr,
> struct cxl_decoder *cxld)
>{
> if (cxld->flags & CXL_DECODER_F_LOCK) {
> dev_err(&cxlr->dev, "cxl_region_setup_flags: would lock, flags: %04lx\n", cxld->flags);
> }
> if (test_bit(CXL_DECODER_F_LOCK, &cxld->flags)) {
> dev_err(&cxlr->dev, "cxl_region_setup_flags: setting CXL_DECODER_F_LOCK, flags: %04lx\n", cxld->flags);
> set_bit(CXL_REGION_F_LOCK, &cxlr->flags);
> clear_bit(CXL_REGION_F_NEEDS_RESET, &cxlr->flags);
> }
>
> if (cxld->flags & CXL_DECODER_F_NORMALIZED_ADDRESSING)
> set_bit(CXL_REGION_F_NORMALIZED_ADDRESSING, &cxlr->flags);
>}


[ 5.155997] [ T12] cxl region0: cxl_region_setup_flags: would lock, flags: 0030
..
[ 5.130070] [ T12] cxl region1: cxl_region_setup_flags: would lock, flags: 0030