Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 May 2025 21:37:03 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 231d36dccb82 - main - scsi/da: Export quirks as sysctl
Message-ID:  <202505072137.547Lb3Uc091878@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp:

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

commit 231d36dccb820aa874800bdcd7e3e250bbd6df79
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-05-07 16:06:52 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-05-07 21:36:53 +0000

    scsi/da: Export quirks as sysctl
    
    Differential Revision:  https://reviews.freebsd.org/D49464
    Sponsored by:           Netflix
---
 sys/cam/scsi/scsi_da.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/sys/cam/scsi/scsi_da.c b/sys/cam/scsi/scsi_da.c
index 1fd6d4919c61..71a4b0fa6b22 100644
--- a/sys/cam/scsi/scsi_da.c
+++ b/sys/cam/scsi/scsi_da.c
@@ -1496,6 +1496,7 @@ static	int		dacmdsizesysctl(SYSCTL_HANDLER_ARGS);
 static	int		dadeletemethodsysctl(SYSCTL_HANDLER_ARGS);
 static	int		dabitsysctl(SYSCTL_HANDLER_ARGS);
 static	int		daflagssysctl(SYSCTL_HANDLER_ARGS);
+static	int		daquirkssysctl(SYSCTL_HANDLER_ARGS);
 static	int		dazonemodesysctl(SYSCTL_HANDLER_ARGS);
 static	int		dazonesupsysctl(SYSCTL_HANDLER_ARGS);
 static	int		dadeletemaxsysctl(SYSCTL_HANDLER_ARGS);
@@ -2394,6 +2395,10 @@ dasysctlinit(void *context, int pending)
 	    OID_AUTO, "flags", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE,
 	    softc, 0, daflagssysctl, "A",
 	    "Flags for drive");
+	SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree),
+	    OID_AUTO, "quirks", CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE,
+	    softc, 0, daquirkssysctl, "A",
+	    "Active quirks for drive");
 	SYSCTL_ADD_PROC(&softc->sysctl_ctx, SYSCTL_CHILDREN(softc->sysctl_tree),
 	    OID_AUTO, "rotating", CTLTYPE_INT | CTLFLAG_RD | CTLFLAG_MPSAFE,
 	    &softc->flags, (u_int)DA_FLAG_ROTATING, dabitsysctl, "I",
@@ -2718,6 +2723,24 @@ daflagssysctl(SYSCTL_HANDLER_ARGS)
 	return (error);
 }
 
+static int
+daquirkssysctl(SYSCTL_HANDLER_ARGS)
+{
+	struct sbuf sbuf;
+	struct da_softc *softc = arg1;
+	int error;
+
+	sbuf_new_for_sysctl(&sbuf, NULL, 0, req);
+	if (softc->quirks != 0)
+		sbuf_printf(&sbuf, "0x%b", (unsigned)softc->quirks, DA_Q_BIT_STRING);
+	else
+		sbuf_putc(&sbuf, '0');
+	error = sbuf_finish(&sbuf);
+	sbuf_delete(&sbuf);
+
+	return (error);
+}
+
 static int
 dadeletemethodsysctl(SYSCTL_HANDLER_ARGS)
 {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202505072137.547Lb3Uc091878>