Message ID | 20210524010147.94845-46-dgilbert@interlog.com (mailing list archive) |
---|---|
State | Deferred |
Headers | show |
Series | sg: add v4 interface | expand |
On 5/24/21 3:01 AM, Douglas Gilbert wrote: > Now that the sg version 4 interface is supported: > - with ioctl(SG_IO) for synchronous/blocking use > - with ioctl(SG_IOSUBMIT) and ioctl(SG_IORECEIVE) for > async/non-blocking use > Plus new ioctl(SG_IOSUBMIT_V3) and ioctl(SG_IORECEIVE_V3) > potentially replace write() and read() for the sg > version 3 interface. Bump major driver version number > from 3 to 4. > > The main new feature is the removal of the fixed 16 element > array of requests per file descriptor. It is replaced by > a xarray (eXtensible array) in their parent which is a > sg_fd object (i.e. a file descriptor). The sg_request > objects are not freed until the owning file descriptor is > closed; instead these objects are re-used when multiple > commands are sent to the same file descriptor. > > Signed-off-by: Douglas Gilbert <dgilbert@interlog.com> > --- > drivers/scsi/sg.c | 11 ++++++----- > include/uapi/scsi/sg.h | 4 ++-- > 2 files changed, 8 insertions(+), 7 deletions(-) > > diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c > index d47efed3a3ca..1f89d3d4cfbe 100644 > --- a/drivers/scsi/sg.c > +++ b/drivers/scsi/sg.c > @@ -7,13 +7,14 @@ > * > * Original driver (sg.c): > * Copyright (C) 1992 Lawrence Foard > - * Version 2 and 3 extensions to driver: > - * Copyright (C) 1998 - 2019 Douglas Gilbert > + * Version 2, 3 and 4 extensions to driver: > + * Copyright (C) 1998 - 2021 Douglas Gilbert > + * > */ > > -static int sg_version_num = 30901; /* [x]xyyzz where [x] empty when x=0 */ > -#define SG_VERSION_STR "3.9.01" /* [x]x.[y]y.zz */ > -static char *sg_version_date = "20190606"; > +static int sg_version_num = 40012; /* [x]xyyzz where [x] empty when x=0 */ > +#define SG_VERSION_STR "4.0.12" /* [x]x.[y]y.zz */ > +static char *sg_version_date = "20210522"; > > #include <linux/module.h> > > diff --git a/include/uapi/scsi/sg.h b/include/uapi/scsi/sg.h > index 6fce44607613..079ef6c57aea 100644 > --- a/include/uapi/scsi/sg.h > +++ b/include/uapi/scsi/sg.h > @@ -12,9 +12,9 @@ > * Copyright (C) 1992 Lawrence Foard > * > * Later extensions (versions 2, 3 and 4) to driver: > - * Copyright (C) 1998 - 2018 Douglas Gilbert > + * Copyright (C) 1998 - 2021 Douglas Gilbert > * > - * Version 4.0.11 (20190502) > + * Version 4.0.12 (20210111) > * This version is for Linux 4 and 5 series kernels. > * > * Documentation > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index d47efed3a3ca..1f89d3d4cfbe 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -7,13 +7,14 @@ * * Original driver (sg.c): * Copyright (C) 1992 Lawrence Foard - * Version 2 and 3 extensions to driver: - * Copyright (C) 1998 - 2019 Douglas Gilbert + * Version 2, 3 and 4 extensions to driver: + * Copyright (C) 1998 - 2021 Douglas Gilbert + * */ -static int sg_version_num = 30901; /* [x]xyyzz where [x] empty when x=0 */ -#define SG_VERSION_STR "3.9.01" /* [x]x.[y]y.zz */ -static char *sg_version_date = "20190606"; +static int sg_version_num = 40012; /* [x]xyyzz where [x] empty when x=0 */ +#define SG_VERSION_STR "4.0.12" /* [x]x.[y]y.zz */ +static char *sg_version_date = "20210522"; #include <linux/module.h> diff --git a/include/uapi/scsi/sg.h b/include/uapi/scsi/sg.h index 6fce44607613..079ef6c57aea 100644 --- a/include/uapi/scsi/sg.h +++ b/include/uapi/scsi/sg.h @@ -12,9 +12,9 @@ * Copyright (C) 1992 Lawrence Foard * * Later extensions (versions 2, 3 and 4) to driver: - * Copyright (C) 1998 - 2018 Douglas Gilbert + * Copyright (C) 1998 - 2021 Douglas Gilbert * - * Version 4.0.11 (20190502) + * Version 4.0.12 (20210111) * This version is for Linux 4 and 5 series kernels. * * Documentation
Now that the sg version 4 interface is supported: - with ioctl(SG_IO) for synchronous/blocking use - with ioctl(SG_IOSUBMIT) and ioctl(SG_IORECEIVE) for async/non-blocking use Plus new ioctl(SG_IOSUBMIT_V3) and ioctl(SG_IORECEIVE_V3) potentially replace write() and read() for the sg version 3 interface. Bump major driver version number from 3 to 4. The main new feature is the removal of the fixed 16 element array of requests per file descriptor. It is replaced by a xarray (eXtensible array) in their parent which is a sg_fd object (i.e. a file descriptor). The sg_request objects are not freed until the owning file descriptor is closed; instead these objects are re-used when multiple commands are sent to the same file descriptor. Signed-off-by: Douglas Gilbert <dgilbert@interlog.com> --- drivers/scsi/sg.c | 11 ++++++----- include/uapi/scsi/sg.h | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-)