On 1/21/26 9:55 PM, Smita Koralahalli wrote:
> Introduce dax_cxl_mode to coordinate between dax_cxl and dax_hmem when
> handling CXL tagged memory ranges.
>
> This patch defines the dax_cxl_mode enum and establishes a default policy.
> Subsequent patches will wire this into dax_cxl and dax_hmem to decide
> whether CXL tagged memory ranges should be deferred, registered or
> dropped.
Maybe give some more descriptions of what each enum means?
Maybe just fold this into the patch that first utilizes this enum?
>
> No functional changes.
>
> Signed-off-by: Smita Koralahalli <[email protected]>
> ---
> drivers/dax/bus.c | 3 +++
> drivers/dax/bus.h | 8 ++++++++
> 2 files changed, 11 insertions(+)
>
> diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c
> index fde29e0ad68b..72bc5b76f061 100644
> --- a/drivers/dax/bus.c
> +++ b/drivers/dax/bus.c
> @@ -24,6 +24,9 @@ DECLARE_RWSEM(dax_region_rwsem);
> */
> DECLARE_RWSEM(dax_dev_rwsem);
>
> +enum dax_cxl_mode dax_cxl_mode = DAX_CXL_MODE_DEFER;
> +EXPORT_SYMBOL_GPL(dax_cxl_mode);
Should this symbol only be exported to CXL?
> +
> #define DAX_NAME_LEN 30
> struct dax_id {
> struct list_head list;
> diff --git a/drivers/dax/bus.h b/drivers/dax/bus.h
> index cbbf64443098..a40cbbf1e26b 100644
> --- a/drivers/dax/bus.h
> +++ b/drivers/dax/bus.h
> @@ -41,6 +41,14 @@ struct dax_device_driver {
> void (*remove)(struct dev_dax *dev);
> };
>
> +enum dax_cxl_mode {
> + DAX_CXL_MODE_DEFER,
> + DAX_CXL_MODE_REGISTER,
> + DAX_CXL_MODE_DROP,
> +};
> +
> +extern enum dax_cxl_mode dax_cxl_mode;
> +
> int __dax_driver_register(struct dax_device_driver *dax_drv,
> struct module *module, const char *mod_name);
> #define dax_driver_register(driver) \