drivers/scsi/qla4xxx/ql4_attr.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-)
According to Documentation/filesystems/sysfs.rst, the show() callback
function of kobject attributes should strictly use sysfs_emit instead
of sprintf family functions.
Issue identified using the coccinelle device_attr_show.cocci script.
Signed-off-by: Deepak R Varma <drv@mailo.com>
---
drivers/scsi/qla4xxx/ql4_attr.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/drivers/scsi/qla4xxx/ql4_attr.c b/drivers/scsi/qla4xxx/ql4_attr.c
index abfa6ef60480..773b8dbe1121 100644
--- a/drivers/scsi/qla4xxx/ql4_attr.c
+++ b/drivers/scsi/qla4xxx/ql4_attr.c
@@ -156,11 +156,11 @@ qla4xxx_fw_version_show(struct device *dev,
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
if (is_qla80XX(ha))
- return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d (%x)\n",
+ return sysfs_emit(buf, "%d.%02d.%02d (%x)\n",
ha->fw_info.fw_major, ha->fw_info.fw_minor,
ha->fw_info.fw_patch, ha->fw_info.fw_build);
else
- return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d.%02d\n",
+ return sysfs_emit(buf, "%d.%02d.%02d.%02d\n",
ha->fw_info.fw_major, ha->fw_info.fw_minor,
ha->fw_info.fw_patch, ha->fw_info.fw_build);
}
@@ -170,7 +170,7 @@ qla4xxx_serial_num_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "%s\n", ha->serial_number);
+ return sysfs_emit(buf, "%s\n", ha->serial_number);
}
static ssize_t
@@ -178,7 +178,7 @@ qla4xxx_iscsi_version_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "%d.%02d\n", ha->fw_info.iscsi_major,
+ return sysfs_emit(buf, "%d.%02d\n", ha->fw_info.iscsi_major,
ha->fw_info.iscsi_minor);
}
@@ -187,7 +187,7 @@ qla4xxx_optrom_version_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d.%02d\n",
+ return sysfs_emit(buf, "%d.%02d.%02d.%02d\n",
ha->fw_info.bootload_major, ha->fw_info.bootload_minor,
ha->fw_info.bootload_patch, ha->fw_info.bootload_build);
}
@@ -197,7 +197,7 @@ qla4xxx_board_id_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "0x%08X\n", ha->board_id);
+ return sysfs_emit(buf, "0x%08X\n", ha->board_id);
}
static ssize_t
@@ -207,7 +207,7 @@ qla4xxx_fw_state_show(struct device *dev, struct device_attribute *attr,
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
qla4xxx_get_firmware_state(ha);
- return snprintf(buf, PAGE_SIZE, "0x%08X%8X\n", ha->firmware_state,
+ return sysfs_emit(buf, "0x%08X%8X\n", ha->firmware_state,
ha->addl_fw_state);
}
@@ -220,7 +220,7 @@ qla4xxx_phy_port_cnt_show(struct device *dev, struct device_attribute *attr,
if (is_qla40XX(ha))
return -ENOSYS;
- return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->phy_port_cnt);
+ return sysfs_emit(buf, "0x%04X\n", ha->phy_port_cnt);
}
static ssize_t
@@ -232,7 +232,7 @@ qla4xxx_phy_port_num_show(struct device *dev, struct device_attribute *attr,
if (is_qla40XX(ha))
return -ENOSYS;
- return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->phy_port_num);
+ return sysfs_emit(buf, "0x%04X\n", ha->phy_port_num);
}
static ssize_t
@@ -244,7 +244,7 @@ qla4xxx_iscsi_func_cnt_show(struct device *dev, struct device_attribute *attr,
if (is_qla40XX(ha))
return -ENOSYS;
- return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->iscsi_pci_func_cnt);
+ return sysfs_emit(buf, "0x%04X\n", ha->iscsi_pci_func_cnt);
}
static ssize_t
@@ -253,7 +253,7 @@ qla4xxx_hba_model_show(struct device *dev, struct device_attribute *attr,
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "%s\n", ha->model_name);
+ return sysfs_emit(buf, "%s\n", ha->model_name);
}
static ssize_t
@@ -261,7 +261,7 @@ qla4xxx_fw_timestamp_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "%s %s\n", ha->fw_info.fw_build_date,
+ return sysfs_emit(buf, "%s %s\n", ha->fw_info.fw_build_date,
ha->fw_info.fw_build_time);
}
@@ -270,7 +270,7 @@ qla4xxx_fw_build_user_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "%s\n", ha->fw_info.fw_build_user);
+ return sysfs_emit(buf, "%s\n", ha->fw_info.fw_build_user);
}
static ssize_t
@@ -278,7 +278,7 @@ qla4xxx_fw_ext_timestamp_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
- return snprintf(buf, PAGE_SIZE, "%s\n", ha->fw_info.extended_timestamp);
+ return sysfs_emit(buf, "%s\n", ha->fw_info.extended_timestamp);
}
static ssize_t
@@ -300,7 +300,7 @@ qla4xxx_fw_load_src_show(struct device *dev, struct device_attribute *attr,
break;
}
- return snprintf(buf, PAGE_SIZE, "%s\n", load_src);
+ return sysfs_emit(buf, "%s\n", load_src);
}
static ssize_t
@@ -309,7 +309,7 @@ qla4xxx_fw_uptime_show(struct device *dev, struct device_attribute *attr,
{
struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev));
qla4xxx_about_firmware(ha);
- return snprintf(buf, PAGE_SIZE, "%u.%u secs\n", ha->fw_uptime_secs,
+ return sysfs_emit(buf, "%u.%u secs\n", ha->fw_uptime_secs,
ha->fw_uptime_msecs);
}
--
2.34.1
On Sat, Dec 10, 2022 at 02:10:24PM +0530, Deepak R Varma wrote: > According to Documentation/filesystems/sysfs.rst, the show() callback > function of kobject attributes should strictly use sysfs_emit instead > of sprintf family functions. > Issue identified using the coccinelle device_attr_show.cocci script. > > Signed-off-by: Deepak R Varma <drv@mailo.com> Hello, May I please request a review and feedback on this patch? Thank you, ./drv > --- > drivers/scsi/qla4xxx/ql4_attr.c | 32 ++++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/drivers/scsi/qla4xxx/ql4_attr.c b/drivers/scsi/qla4xxx/ql4_attr.c > index abfa6ef60480..773b8dbe1121 100644 > --- a/drivers/scsi/qla4xxx/ql4_attr.c > +++ b/drivers/scsi/qla4xxx/ql4_attr.c > @@ -156,11 +156,11 @@ qla4xxx_fw_version_show(struct device *dev, > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > if (is_qla80XX(ha)) > - return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d (%x)\n", > + return sysfs_emit(buf, "%d.%02d.%02d (%x)\n", > ha->fw_info.fw_major, ha->fw_info.fw_minor, > ha->fw_info.fw_patch, ha->fw_info.fw_build); > else > - return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d.%02d\n", > + return sysfs_emit(buf, "%d.%02d.%02d.%02d\n", > ha->fw_info.fw_major, ha->fw_info.fw_minor, > ha->fw_info.fw_patch, ha->fw_info.fw_build); > } > @@ -170,7 +170,7 @@ qla4xxx_serial_num_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->serial_number); > + return sysfs_emit(buf, "%s\n", ha->serial_number); > } > > static ssize_t > @@ -178,7 +178,7 @@ qla4xxx_iscsi_version_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > - return snprintf(buf, PAGE_SIZE, "%d.%02d\n", ha->fw_info.iscsi_major, > + return sysfs_emit(buf, "%d.%02d\n", ha->fw_info.iscsi_major, > ha->fw_info.iscsi_minor); > } > > @@ -187,7 +187,7 @@ qla4xxx_optrom_version_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > - return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d.%02d\n", > + return sysfs_emit(buf, "%d.%02d.%02d.%02d\n", > ha->fw_info.bootload_major, ha->fw_info.bootload_minor, > ha->fw_info.bootload_patch, ha->fw_info.bootload_build); > } > @@ -197,7 +197,7 @@ qla4xxx_board_id_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > - return snprintf(buf, PAGE_SIZE, "0x%08X\n", ha->board_id); > + return sysfs_emit(buf, "0x%08X\n", ha->board_id); > } > > static ssize_t > @@ -207,7 +207,7 @@ qla4xxx_fw_state_show(struct device *dev, struct device_attribute *attr, > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > qla4xxx_get_firmware_state(ha); > - return snprintf(buf, PAGE_SIZE, "0x%08X%8X\n", ha->firmware_state, > + return sysfs_emit(buf, "0x%08X%8X\n", ha->firmware_state, > ha->addl_fw_state); > } > > @@ -220,7 +220,7 @@ qla4xxx_phy_port_cnt_show(struct device *dev, struct device_attribute *attr, > if (is_qla40XX(ha)) > return -ENOSYS; > > - return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->phy_port_cnt); > + return sysfs_emit(buf, "0x%04X\n", ha->phy_port_cnt); > } > > static ssize_t > @@ -232,7 +232,7 @@ qla4xxx_phy_port_num_show(struct device *dev, struct device_attribute *attr, > if (is_qla40XX(ha)) > return -ENOSYS; > > - return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->phy_port_num); > + return sysfs_emit(buf, "0x%04X\n", ha->phy_port_num); > } > > static ssize_t > @@ -244,7 +244,7 @@ qla4xxx_iscsi_func_cnt_show(struct device *dev, struct device_attribute *attr, > if (is_qla40XX(ha)) > return -ENOSYS; > > - return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->iscsi_pci_func_cnt); > + return sysfs_emit(buf, "0x%04X\n", ha->iscsi_pci_func_cnt); > } > > static ssize_t > @@ -253,7 +253,7 @@ qla4xxx_hba_model_show(struct device *dev, struct device_attribute *attr, > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->model_name); > + return sysfs_emit(buf, "%s\n", ha->model_name); > } > > static ssize_t > @@ -261,7 +261,7 @@ qla4xxx_fw_timestamp_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > - return snprintf(buf, PAGE_SIZE, "%s %s\n", ha->fw_info.fw_build_date, > + return sysfs_emit(buf, "%s %s\n", ha->fw_info.fw_build_date, > ha->fw_info.fw_build_time); > } > > @@ -270,7 +270,7 @@ qla4xxx_fw_build_user_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->fw_info.fw_build_user); > + return sysfs_emit(buf, "%s\n", ha->fw_info.fw_build_user); > } > > static ssize_t > @@ -278,7 +278,7 @@ qla4xxx_fw_ext_timestamp_show(struct device *dev, struct device_attribute *attr, > char *buf) > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->fw_info.extended_timestamp); > + return sysfs_emit(buf, "%s\n", ha->fw_info.extended_timestamp); > } > > static ssize_t > @@ -300,7 +300,7 @@ qla4xxx_fw_load_src_show(struct device *dev, struct device_attribute *attr, > break; > } > > - return snprintf(buf, PAGE_SIZE, "%s\n", load_src); > + return sysfs_emit(buf, "%s\n", load_src); > } > > static ssize_t > @@ -309,7 +309,7 @@ qla4xxx_fw_uptime_show(struct device *dev, struct device_attribute *attr, > { > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > qla4xxx_about_firmware(ha); > - return snprintf(buf, PAGE_SIZE, "%u.%u secs\n", ha->fw_uptime_secs, > + return sysfs_emit(buf, "%u.%u secs\n", ha->fw_uptime_secs, > ha->fw_uptime_msecs); > } > > -- > 2.34.1 >
On Tue, Dec 20, 2022 at 02:23:06AM +0530, Deepak R Varma wrote: > On Sat, Dec 10, 2022 at 02:10:24PM +0530, Deepak R Varma wrote: > > According to Documentation/filesystems/sysfs.rst, the show() callback > > function of kobject attributes should strictly use sysfs_emit instead > > of sprintf family functions. > > Issue identified using the coccinelle device_attr_show.cocci script. > > > > Signed-off-by: Deepak R Varma <drv@mailo.com> > > Hello, > May I please request a review and feedback on this patch? Hello, Requesting a review and feedback on this patch proposal please. Thank you, ./drv > > Thank you, > ./drv > > > --- > > drivers/scsi/qla4xxx/ql4_attr.c | 32 ++++++++++++++++---------------- > > 1 file changed, 16 insertions(+), 16 deletions(-) > > > > diff --git a/drivers/scsi/qla4xxx/ql4_attr.c b/drivers/scsi/qla4xxx/ql4_attr.c > > index abfa6ef60480..773b8dbe1121 100644 > > --- a/drivers/scsi/qla4xxx/ql4_attr.c > > +++ b/drivers/scsi/qla4xxx/ql4_attr.c > > @@ -156,11 +156,11 @@ qla4xxx_fw_version_show(struct device *dev, > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > > > if (is_qla80XX(ha)) > > - return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d (%x)\n", > > + return sysfs_emit(buf, "%d.%02d.%02d (%x)\n", > > ha->fw_info.fw_major, ha->fw_info.fw_minor, > > ha->fw_info.fw_patch, ha->fw_info.fw_build); > > else > > - return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d.%02d\n", > > + return sysfs_emit(buf, "%d.%02d.%02d.%02d\n", > > ha->fw_info.fw_major, ha->fw_info.fw_minor, > > ha->fw_info.fw_patch, ha->fw_info.fw_build); > > } > > @@ -170,7 +170,7 @@ qla4xxx_serial_num_show(struct device *dev, struct device_attribute *attr, > > char *buf) > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->serial_number); > > + return sysfs_emit(buf, "%s\n", ha->serial_number); > > } > > > > static ssize_t > > @@ -178,7 +178,7 @@ qla4xxx_iscsi_version_show(struct device *dev, struct device_attribute *attr, > > char *buf) > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "%d.%02d\n", ha->fw_info.iscsi_major, > > + return sysfs_emit(buf, "%d.%02d\n", ha->fw_info.iscsi_major, > > ha->fw_info.iscsi_minor); > > } > > > > @@ -187,7 +187,7 @@ qla4xxx_optrom_version_show(struct device *dev, struct device_attribute *attr, > > char *buf) > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "%d.%02d.%02d.%02d\n", > > + return sysfs_emit(buf, "%d.%02d.%02d.%02d\n", > > ha->fw_info.bootload_major, ha->fw_info.bootload_minor, > > ha->fw_info.bootload_patch, ha->fw_info.bootload_build); > > } > > @@ -197,7 +197,7 @@ qla4xxx_board_id_show(struct device *dev, struct device_attribute *attr, > > char *buf) > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "0x%08X\n", ha->board_id); > > + return sysfs_emit(buf, "0x%08X\n", ha->board_id); > > } > > > > static ssize_t > > @@ -207,7 +207,7 @@ qla4xxx_fw_state_show(struct device *dev, struct device_attribute *attr, > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > > > qla4xxx_get_firmware_state(ha); > > - return snprintf(buf, PAGE_SIZE, "0x%08X%8X\n", ha->firmware_state, > > + return sysfs_emit(buf, "0x%08X%8X\n", ha->firmware_state, > > ha->addl_fw_state); > > } > > > > @@ -220,7 +220,7 @@ qla4xxx_phy_port_cnt_show(struct device *dev, struct device_attribute *attr, > > if (is_qla40XX(ha)) > > return -ENOSYS; > > > > - return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->phy_port_cnt); > > + return sysfs_emit(buf, "0x%04X\n", ha->phy_port_cnt); > > } > > > > static ssize_t > > @@ -232,7 +232,7 @@ qla4xxx_phy_port_num_show(struct device *dev, struct device_attribute *attr, > > if (is_qla40XX(ha)) > > return -ENOSYS; > > > > - return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->phy_port_num); > > + return sysfs_emit(buf, "0x%04X\n", ha->phy_port_num); > > } > > > > static ssize_t > > @@ -244,7 +244,7 @@ qla4xxx_iscsi_func_cnt_show(struct device *dev, struct device_attribute *attr, > > if (is_qla40XX(ha)) > > return -ENOSYS; > > > > - return snprintf(buf, PAGE_SIZE, "0x%04X\n", ha->iscsi_pci_func_cnt); > > + return sysfs_emit(buf, "0x%04X\n", ha->iscsi_pci_func_cnt); > > } > > > > static ssize_t > > @@ -253,7 +253,7 @@ qla4xxx_hba_model_show(struct device *dev, struct device_attribute *attr, > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > > > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->model_name); > > + return sysfs_emit(buf, "%s\n", ha->model_name); > > } > > > > static ssize_t > > @@ -261,7 +261,7 @@ qla4xxx_fw_timestamp_show(struct device *dev, struct device_attribute *attr, > > char *buf) > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "%s %s\n", ha->fw_info.fw_build_date, > > + return sysfs_emit(buf, "%s %s\n", ha->fw_info.fw_build_date, > > ha->fw_info.fw_build_time); > > } > > > > @@ -270,7 +270,7 @@ qla4xxx_fw_build_user_show(struct device *dev, struct device_attribute *attr, > > char *buf) > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->fw_info.fw_build_user); > > + return sysfs_emit(buf, "%s\n", ha->fw_info.fw_build_user); > > } > > > > static ssize_t > > @@ -278,7 +278,7 @@ qla4xxx_fw_ext_timestamp_show(struct device *dev, struct device_attribute *attr, > > char *buf) > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > - return snprintf(buf, PAGE_SIZE, "%s\n", ha->fw_info.extended_timestamp); > > + return sysfs_emit(buf, "%s\n", ha->fw_info.extended_timestamp); > > } > > > > static ssize_t > > @@ -300,7 +300,7 @@ qla4xxx_fw_load_src_show(struct device *dev, struct device_attribute *attr, > > break; > > } > > > > - return snprintf(buf, PAGE_SIZE, "%s\n", load_src); > > + return sysfs_emit(buf, "%s\n", load_src); > > } > > > > static ssize_t > > @@ -309,7 +309,7 @@ qla4xxx_fw_uptime_show(struct device *dev, struct device_attribute *attr, > > { > > struct scsi_qla_host *ha = to_qla_host(class_to_shost(dev)); > > qla4xxx_about_firmware(ha); > > - return snprintf(buf, PAGE_SIZE, "%u.%u secs\n", ha->fw_uptime_secs, > > + return sysfs_emit(buf, "%u.%u secs\n", ha->fw_uptime_secs, > > ha->fw_uptime_msecs); > > } > > > > -- > > 2.34.1 > >
On Wed, Dec 28, 2022 at 03:45:59PM +0530, Deepak R Varma wrote: > On Tue, Dec 20, 2022 at 02:23:06AM +0530, Deepak R Varma wrote: > > On Sat, Dec 10, 2022 at 02:10:24PM +0530, Deepak R Varma wrote: > > > According to Documentation/filesystems/sysfs.rst, the show() callback > > > function of kobject attributes should strictly use sysfs_emit instead > > > of sprintf family functions. > > > Issue identified using the coccinelle device_attr_show.cocci script. > > > > > > Signed-off-by: Deepak R Varma <drv@mailo.com> > > > > Hello, > > May I please request a review and feedback on this patch? > > Hello, > Requesting a review and feedback on this patch proposal please. > > Thank you, > ./drv Hello, Any comment on this patch proposal please? Thank you, ./drv > > > > > Thank you, > > ./drv > >
© 2016 - 2025 Red Hat, Inc.