static DEVICE_ATTR_RW(num_hwqs);
 static DEVICE_ATTR_RW(hwq_mode);
 
-static struct device_attribute *cxlflash_host_attrs[] = {
-       &dev_attr_port0,
-       &dev_attr_port1,
-       &dev_attr_port2,
-       &dev_attr_port3,
-       &dev_attr_lun_mode,
-       &dev_attr_ioctl_version,
-       &dev_attr_port0_lun_table,
-       &dev_attr_port1_lun_table,
-       &dev_attr_port2_lun_table,
-       &dev_attr_port3_lun_table,
-       &dev_attr_irqpoll_weight,
-       &dev_attr_num_hwqs,
-       &dev_attr_hwq_mode,
+static struct attribute *cxlflash_host_attrs[] = {
+       &dev_attr_port0.attr,
+       &dev_attr_port1.attr,
+       &dev_attr_port2.attr,
+       &dev_attr_port3.attr,
+       &dev_attr_lun_mode.attr,
+       &dev_attr_ioctl_version.attr,
+       &dev_attr_port0_lun_table.attr,
+       &dev_attr_port1_lun_table.attr,
+       &dev_attr_port2_lun_table.attr,
+       &dev_attr_port3_lun_table.attr,
+       &dev_attr_irqpoll_weight.attr,
+       &dev_attr_num_hwqs.attr,
+       &dev_attr_hwq_mode.attr,
        NULL
 };
 
+ATTRIBUTE_GROUPS(cxlflash_host);
+
 /*
  * Device attributes
  */
 static DEVICE_ATTR_RO(mode);
 
-static struct device_attribute *cxlflash_dev_attrs[] = {
-       &dev_attr_mode,
+static struct attribute *cxlflash_dev_attrs[] = {
+       &dev_attr_mode.attr,
        NULL
 };
 
+ATTRIBUTE_GROUPS(cxlflash_dev);
+
 /*
  * Host template
  */
        .this_id = -1,
        .sg_tablesize = 1,      /* No scatter gather support */
        .max_sectors = CXLFLASH_MAX_SECTORS,
-       .shost_attrs = cxlflash_host_attrs,
-       .sdev_attrs = cxlflash_dev_attrs,
+       .shost_groups = cxlflash_host_groups,
+       .sdev_groups = cxlflash_dev_groups,
 };
 
 /*