git: ed65c80a3475 - main - Mana: report OS info to PF driver

From: Wei Hu <whu_at_FreeBSD.org>
Date: Mon, 10 Jan 2022 13:34:00 UTC
The branch main has been updated by whu:

URL: https://cgit.FreeBSD.org/src/commit/?id=ed65c80a3475a70f056bb950fba2821f4142ea84

commit ed65c80a3475a70f056bb950fba2821f4142ea84
Author:     Wei Hu <whu@FreeBSD.org>
AuthorDate: 2022-01-07 13:12:31 +0000
Commit:     Wei Hu <whu@FreeBSD.org>
CommitDate: 2022-01-10 13:32:30 +0000

    Mana: report OS info to PF driver
    
    The PF driver might use the OS info for statistical purposes.
    
    MFC after:      2 weeks
    Sponsored by:   Microsoft
---
 sys/dev/mana/gdma_main.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/sys/dev/mana/gdma_main.c b/sys/dev/mana/gdma_main.c
index 211e47368cc5..49af54f4be5d 100644
--- a/sys/dev/mana/gdma_main.c
+++ b/sys/dev/mana/gdma_main.c
@@ -1060,6 +1060,9 @@ mana_gd_destroy_queue(struct gdma_context *gc, struct gdma_queue *queue)
 	free(queue, M_DEVBUF);
 }
 
+#define OS_MAJOR_DIV		100000
+#define OS_BUILD_MOD		1000
+
 int
 mana_gd_verify_vf_version(device_t dev)
 {
@@ -1074,6 +1077,14 @@ mana_gd_verify_vf_version(device_t dev)
 	req.protocol_ver_min = GDMA_PROTOCOL_FIRST;
 	req.protocol_ver_max = GDMA_PROTOCOL_LAST;
 
+	req.drv_ver = 0;	/* Unused */
+	req.os_type = 0x30;	/* Other */
+	req.os_ver_major = osreldate / OS_MAJOR_DIV;
+	req.os_ver_minor = (osreldate % OS_MAJOR_DIV) / OS_BUILD_MOD;
+	req.os_ver_build = osreldate % OS_BUILD_MOD;
+	strncpy(req.os_ver_str1, ostype, sizeof(req.os_ver_str1) - 1);
+	strncpy(req.os_ver_str2, osrelease, sizeof(req.os_ver_str2) - 1);
+
 	err = mana_gd_send_request(gc, sizeof(req), &req, sizeof(resp), &resp);
 	if (err || resp.hdr.status) {
 		device_printf(gc->dev,